diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz
index a81fe964..dca6697d 100644
Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ
diff --git a/docs/api/public-api/@devvit/namespaces/Devvit/README.md b/docs/api/public-api/@devvit/namespaces/Devvit/README.md
index e9d813e3..0d27e0e2 100644
--- a/docs/api/public-api/@devvit/namespaces/Devvit/README.md
+++ b/docs/api/public-api/@devvit/namespaces/Devvit/README.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/Devvit/type-aliases/Context.md b/docs/api/public-api/@devvit/namespaces/Devvit/type-aliases/Context.md
index 3ea5329e..d7b86dd3 100644
--- a/docs/api/public-api/@devvit/namespaces/Devvit/type-aliases/Context.md
+++ b/docs/api/public-api/@devvit/namespaces/Devvit/type-aliases/Context.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/README.md b/docs/api/public-api/@devvit/namespaces/EventTypes/README.md
index 345dde2d..0cdd32bb 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/README.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/README.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/enumerations/DeletionReason.md b/docs/api/public-api/@devvit/namespaces/EventTypes/enumerations/DeletionReason.md
index 6b7dc5a5..8ef331fb 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/enumerations/DeletionReason.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/enumerations/DeletionReason.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/enumerations/EventSource.md b/docs/api/public-api/@devvit/namespaces/EventTypes/enumerations/EventSource.md
index 52a97c10..12f02622 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/enumerations/EventSource.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/enumerations/EventSource.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/functions/deletionReasonFromJSON.md b/docs/api/public-api/@devvit/namespaces/EventTypes/functions/deletionReasonFromJSON.md
index 4716402e..149fc4e3 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/functions/deletionReasonFromJSON.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/functions/deletionReasonFromJSON.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/functions/deletionReasonToJSON.md b/docs/api/public-api/@devvit/namespaces/EventTypes/functions/deletionReasonToJSON.md
index 6cd0876e..83bcc51c 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/functions/deletionReasonToJSON.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/functions/deletionReasonToJSON.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/functions/eventSourceFromJSON.md b/docs/api/public-api/@devvit/namespaces/EventTypes/functions/eventSourceFromJSON.md
index f12745a5..a12b24f6 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/functions/eventSourceFromJSON.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/functions/eventSourceFromJSON.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/functions/eventSourceToJSON.md b/docs/api/public-api/@devvit/namespaces/EventTypes/functions/eventSourceToJSON.md
index 04c2cb35..c6f13d0d 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/functions/eventSourceToJSON.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/functions/eventSourceToJSON.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AccountDelete.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AccountDelete.md
index 4407153c..3b8b7684 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AccountDelete.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AccountDelete.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AppInstall.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AppInstall.md
index a039a2ce..03dfb57d 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AppInstall.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AppInstall.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AppUpgrade.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AppUpgrade.md
index 30ad4752..591a662a 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AppUpgrade.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AppUpgrade.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AutomoderatorFilterComment.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AutomoderatorFilterComment.md
index 386d277c..36aba266 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AutomoderatorFilterComment.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AutomoderatorFilterComment.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AutomoderatorFilterPost.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AutomoderatorFilterPost.md
index b597b28b..fab4fde1 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AutomoderatorFilterPost.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/AutomoderatorFilterPost.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentApprove.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentApprove.md
index d50d520d..b669fa7d 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentApprove.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentApprove.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentCreate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentCreate.md
index 34f04f8e..30a18329 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentCreate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentCreate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentDelete.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentDelete.md
index 7cc24cd9..464b3547 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentDelete.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentDelete.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentReport.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentReport.md
index dabcbc88..e3756bb2 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentReport.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentReport.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentSubmit.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentSubmit.md
index 1a834d79..c8d14735 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentSubmit.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentSubmit.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentUpdate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentUpdate.md
index 3b81cf9f..cf4fa2a4 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentUpdate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/CommentUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/MentionInCommentCreate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/MentionInCommentCreate.md
index 0cbf722a..f57b19a1 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/MentionInCommentCreate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/MentionInCommentCreate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostApprove.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostApprove.md
index 06a6b7de..8f053a90 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostApprove.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostApprove.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostCreate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostCreate.md
index c2cee87a..4a4c5543 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostCreate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostCreate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostDelete.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostDelete.md
index 426bc96a..7b3317ba 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostDelete.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostDelete.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostFlairUpdate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostFlairUpdate.md
index 98c5292d..e24eb5dd 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostFlairUpdate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostFlairUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostNsfwUpdate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostNsfwUpdate.md
index 8b5ca40b..12c49909 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostNsfwUpdate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostNsfwUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostReport.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostReport.md
index fb44e032..d970e732 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostReport.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostReport.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostSpoilerUpdate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostSpoilerUpdate.md
index a0e74341..71f829d9 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostSpoilerUpdate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostSpoilerUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostSubmit.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostSubmit.md
index 58bf9dce..467de76b 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostSubmit.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostSubmit.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostUpdate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostUpdate.md
index 711adbd0..ef7507a8 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostUpdate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/PostUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/SubredditSubscribe.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/SubredditSubscribe.md
index 4d281520..0611b0ee 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/SubredditSubscribe.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/SubredditSubscribe.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/Vote.md b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/Vote.md
index ed1bbc71..5065eb2d 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/Vote.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/interfaces/Vote.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AccountDelete.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AccountDelete.md
index c101f0d2..c619bbba 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AccountDelete.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AccountDelete.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AppInstall.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AppInstall.md
index 9dfbe8c9..1370cc47 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AppInstall.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AppInstall.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AppUpgrade.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AppUpgrade.md
index 5abd6ed8..6de7ea38 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AppUpgrade.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AppUpgrade.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AutomoderatorFilterComment.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AutomoderatorFilterComment.md
index 7a5f9ab6..31c5a3ab 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AutomoderatorFilterComment.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AutomoderatorFilterComment.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AutomoderatorFilterPost.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AutomoderatorFilterPost.md
index 202b225c..9c22ad5d 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AutomoderatorFilterPost.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/AutomoderatorFilterPost.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentApprove.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentApprove.md
index 73240fd2..89ad9bc8 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentApprove.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentApprove.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentCreate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentCreate.md
index 22b94df2..524b60b3 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentCreate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentCreate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentDelete.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentDelete.md
index 6b587d81..c2e88b32 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentDelete.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentDelete.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentReport.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentReport.md
index cf92c94b..4860e2a7 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentReport.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentReport.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentSubmit.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentSubmit.md
index 584d8f14..a78d8f9d 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentSubmit.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentSubmit.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentUpdate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentUpdate.md
index b76ea47e..61514260 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentUpdate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/CommentUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/MentionInCommentCreate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/MentionInCommentCreate.md
index 7f47f9e4..482900a9 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/MentionInCommentCreate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/MentionInCommentCreate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostApprove.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostApprove.md
index 4faefd72..d46c0d38 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostApprove.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostApprove.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostCreate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostCreate.md
index f3dc88c4..6e2c00ae 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostCreate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostCreate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostDelete.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostDelete.md
index 608bc1be..06843b99 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostDelete.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostDelete.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostFlairUpdate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostFlairUpdate.md
index 5e48e521..e96402e2 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostFlairUpdate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostFlairUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostNsfwUpdate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostNsfwUpdate.md
index cbbb9b54..76d23ac9 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostNsfwUpdate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostNsfwUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostReport.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostReport.md
index 2cf0a2e4..16d3629a 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostReport.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostReport.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostSpoilerUpdate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostSpoilerUpdate.md
index 7859cf99..67567d6b 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostSpoilerUpdate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostSpoilerUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostSubmit.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostSubmit.md
index eb6aa96a..3800dc8e 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostSubmit.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostSubmit.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostUpdate.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostUpdate.md
index 8d4fcda4..a3429066 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostUpdate.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/PostUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/SubredditSubscribe.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/SubredditSubscribe.md
index b9dfbfc4..75c81192 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/SubredditSubscribe.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/SubredditSubscribe.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/Vote.md b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/Vote.md
index 9c801442..ffb0c1f0 100644
--- a/docs/api/public-api/@devvit/namespaces/EventTypes/variables/Vote.md
+++ b/docs/api/public-api/@devvit/namespaces/EventTypes/variables/Vote.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../../../../README.md)
***
diff --git a/docs/api/public-api/README.md b/docs/api/public-api/README.md
index ff3d3d4a..a8016222 100644
--- a/docs/api/public-api/README.md
+++ b/docs/api/public-api/README.md
@@ -1,8 +1,8 @@
-**@devvit/public-api v0.13.11-dev**
+**@devvit/public-api v0.13.12-dev**
***
-# @devvit/public-api v0.13.11-dev
+# @devvit/public-api v0.13.12-dev
## Namespaces
@@ -11,50 +11,159 @@
## Enumerations
+- [AboutLocations](enumerations/AboutLocations.md)
- [DeletionReason](enumerations/DeletionReason.md)
+- [EntrypointHeight](enumerations/EntrypointHeight.md)
- [EventSource](enumerations/EventSource.md)
+- [FlairType](enumerations/FlairType.md)
+- [FormattingFlag](enumerations/FormattingFlag.md)
+- [ModMailActionType](enumerations/ModMailActionType.md)
+- [ModMailConversationState](enumerations/ModMailConversationState.md)
- [SettingScope](enumerations/SettingScope.md)
+- [SocialLinkType](enumerations/SocialLinkType.md)
+- [WikiPagePermissionLevel](enumerations/WikiPagePermissionLevel.md)
## Classes
+- [AuthorFlairSettings](classes/AuthorFlairSettings.md)
+- [ButtonWidget](classes/ButtonWidget.md)
+- [CalendarWidget](classes/CalendarWidget.md)
+- [Comment](classes/Comment.md)
+- [CommunityListWidget](classes/CommunityListWidget.md)
+- [CustomWidget](classes/CustomWidget.md)
- [Devvit](classes/Devvit.md)
+- [Flair](classes/Flair.md)
+- [FlairTemplate](classes/FlairTemplate.md)
+- [ImageWidget](classes/ImageWidget.md)
+- [Listing](classes/Listing.md)
+- [ModMailService](classes/ModMailService.md)
+- [ModNote](classes/ModNote.md)
+- [Post](classes/Post.md)
+- [PostFlairSettings](classes/PostFlairSettings.md)
+- [PostFlairWidget](classes/PostFlairWidget.md)
+- [PrivateMessage](classes/PrivateMessage.md)
+- [RedditAPIClient](classes/RedditAPIClient.md)
+- [RedditClient](classes/RedditClient.md)
- [RichTextBuilder](classes/RichTextBuilder.md)
+- [Rule](classes/Rule.md)
+- [SettingsClient](classes/SettingsClient.md)
+- [Subreddit](classes/Subreddit.md)
+- [SubredditBannedUser](classes/SubredditBannedUser.md)
+- [SubredditContributorUser](classes/SubredditContributorUser.md)
+- [SubredditDescription](classes/SubredditDescription.md)
+- [SubredditModeratorUser](classes/SubredditModeratorUser.md)
+- [SubredditMutedUser](classes/SubredditMutedUser.md)
+- [SubredditRulesWidget](classes/SubredditRulesWidget.md)
+- [SubredditWikiBannedUser](classes/SubredditWikiBannedUser.md)
+- [SubredditWikiContributorUser](classes/SubredditWikiContributorUser.md)
+- [SubredditWikiSettings](classes/SubredditWikiSettings.md)
+- [TextAreaWidget](classes/TextAreaWidget.md)
+- [User](classes/User.md)
+- [Widget](classes/Widget.md)
+- [WikiPage](classes/WikiPage.md)
+- [WikiPageRevision](classes/WikiPageRevision.md)
+- [WikiPageSettings](classes/WikiPageSettings.md)
## Interfaces
+- [BlockQuoteContext](interfaces/BlockQuoteContext.md)
+- [CodeBlockContext](interfaces/CodeBlockContext.md)
+- [HeadingContext](interfaces/HeadingContext.md)
+- [ListContext](interfaces/ListContext.md)
+- [ListItemContext](interfaces/ListItemContext.md)
+- [ModAction](interfaces/ModAction.md)
+- [ParagraphContext](interfaces/ParagraphContext.md)
+- [SpoilerContext](interfaces/SpoilerContext.md)
+- [TableCellContext](interfaces/TableCellContext.md)
+- [TableContext](interfaces/TableContext.md)
+- [TableRowContext](interfaces/TableRowContext.md)
- [TxClientLike](interfaces/TxClientLike.md)
## Type Aliases
+- [AboutSubredditTypes](type-aliases/AboutSubredditTypes.md)
+- [AddRemovalNoteOptions](type-aliases/AddRemovalNoteOptions.md)
+- [AddWidgetData](type-aliases/AddWidgetData.md)
+- [AllowableFlairContent](type-aliases/AllowableFlairContent.md)
+- [AnimatedImage](type-aliases/AnimatedImage.md)
- [AppInstall](type-aliases/AppInstall.md)
- [AppInstallDefinition](type-aliases/AppInstallDefinition.md)
- [AppUpgrade](type-aliases/AppUpgrade.md)
- [AppUpgradeDefinition](type-aliases/AppUpgradeDefinition.md)
- [AutomoderatorFilterComment](type-aliases/AutomoderatorFilterComment.md)
- [AutomoderatorFilterPost](type-aliases/AutomoderatorFilterPost.md)
+- [BackgroundImagePosition](type-aliases/BackgroundImagePosition.md)
+- [BannerHeight](type-aliases/BannerHeight.md)
+- [BanUserOptions](type-aliases/BanUserOptions.md)
+- [BanWikiContributorOptions](type-aliases/BanWikiContributorOptions.md)
- [BaseContext](type-aliases/BaseContext.md)
- [BaseField](type-aliases/BaseField.md)
- [BitfieldCommand](type-aliases/BitfieldCommand.md)
+- [BlockQuote](type-aliases/BlockQuote.md)
+- [BlockQuoteContainer](type-aliases/BlockQuoteContainer.md)
+- [BlockQuoteNode](type-aliases/BlockQuoteNode.md)
+- [BlockQuoteOptions](type-aliases/BlockQuoteOptions.md)
- [BooleanField](type-aliases/BooleanField.md)
- [CancelJob](type-aliases/CancelJob.md)
+- [CodeBlock](type-aliases/CodeBlock.md)
+- [CodeBlockContainer](type-aliases/CodeBlockContainer.md)
+- [CodeBlockOptions](type-aliases/CodeBlockOptions.md)
+- [ColumnAlignment](type-aliases/ColumnAlignment.md)
- [CommentCreate](type-aliases/CommentCreate.md)
- [CommentCreateDefinition](type-aliases/CommentCreateDefinition.md)
- [CommentDelete](type-aliases/CommentDelete.md)
- [CommentDeleteDefinition](type-aliases/CommentDeleteDefinition.md)
+- [CommentLink](type-aliases/CommentLink.md)
+- [CommentLinkOptions](type-aliases/CommentLinkOptions.md)
+- [CommentMediaTypes](type-aliases/CommentMediaTypes.md)
- [CommentReport](type-aliases/CommentReport.md)
- [CommentReportDefinition](type-aliases/CommentReportDefinition.md)
+- [CommentSort](type-aliases/CommentSort.md)
+- [CommentSubmissionOptions](type-aliases/CommentSubmissionOptions.md)
- [CommentSubmit](type-aliases/CommentSubmit.md)
- [CommentSubmitDefinition](type-aliases/CommentSubmitDefinition.md)
- [CommentUpdate](type-aliases/CommentUpdate.md)
- [CommentUpdateDefinition](type-aliases/CommentUpdateDefinition.md)
+- [CommonFlair](type-aliases/CommonFlair.md)
+- [CommonSubmitPostOptions](type-aliases/CommonSubmitPostOptions.md)
+- [CommunityNameFormat](type-aliases/CommunityNameFormat.md)
- [Configuration](type-aliases/Configuration.md)
- [Context](type-aliases/Context.md)
- [ContextAPIClients](type-aliases/ContextAPIClients.md)
- [ContextDebugInfo](type-aliases/ContextDebugInfo.md)
+- [ConversationData](type-aliases/ConversationData.md)
+- [ConversationResponse](type-aliases/ConversationResponse.md)
+- [ConversationStateFilter](type-aliases/ConversationStateFilter.md)
+- [ConversationUserData](type-aliases/ConversationUserData.md)
+- [CreateFlairTemplateOptions](type-aliases/CreateFlairTemplateOptions.md)
+- [CreateModNoteOptions](type-aliases/CreateModNoteOptions.md)
+- [CreateRelationshipOptions](type-aliases/CreateRelationshipOptions.md)
+- [CreateRuleOptions](type-aliases/CreateRuleOptions.md)
+- [CreateWikiPageOptions](type-aliases/CreateWikiPageOptions.md)
+- [CrosspostOptions](type-aliases/CrosspostOptions.md)
+- [CrowdControlLevel](type-aliases/CrowdControlLevel.md)
+- [CustomizationFlag](type-aliases/CustomizationFlag.md)
+- [CustomPostRichTextFallback](type-aliases/CustomPostRichTextFallback.md)
+- [CustomPostTextFallbackOptions](type-aliases/CustomPostTextFallbackOptions.md)
- [~~Data~~](type-aliases/Data.md)
+- [DeleteNotesOptions](type-aliases/DeleteNotesOptions.md)
- [DevvitDebug](type-aliases/DevvitDebug.md)
- [Dispatch](type-aliases/Dispatch.md)
+- [Document](type-aliases/Document.md)
+- [DocumentNode](type-aliases/DocumentNode.md)
+- [EditCommentOptions](type-aliases/EditCommentOptions.md)
+- [EditFlairTemplateOptions](type-aliases/EditFlairTemplateOptions.md)
+- [Embed](type-aliases/Embed.md)
+- [EmbedContainer](type-aliases/EmbedContainer.md)
+- [EmbedOptions](type-aliases/EmbedOptions.md)
+- [EnrichedThumbnail](type-aliases/EnrichedThumbnail.md)
+- [FlairBackgroundColor](type-aliases/FlairBackgroundColor.md)
+- [FlairSettings](type-aliases/FlairSettings.md)
+- [FlairTextColor](type-aliases/FlairTextColor.md)
- [Form](type-aliases/Form.md)
+- [FormatOptions](type-aliases/FormatOptions.md)
+- [FormatRange](type-aliases/FormatRange.md)
+- [FormattingSpecification](type-aliases/FormattingSpecification.md)
- [FormDefinition](type-aliases/FormDefinition.md)
- [FormField](type-aliases/FormField.md)
- [FormFieldGroup](type-aliases/FormFieldGroup.md)
@@ -64,13 +173,66 @@
- [FormOnSubmitEventHandler](type-aliases/FormOnSubmitEventHandler.md)
- [FormToFormValues](type-aliases/FormToFormValues.md)
- [FormValues](type-aliases/FormValues.md)
+- [GalleryMedia](type-aliases/GalleryMedia.md)
+- [GalleryMediaStatus](type-aliases/GalleryMediaStatus.md)
+- [GetBestPostsOptions](type-aliases/GetBestPostsOptions.md)
+- [GetCommentsByUserOptions](type-aliases/GetCommentsByUserOptions.md)
+- [GetCommentsOptions](type-aliases/GetCommentsOptions.md)
+- [GetConversationResponse](type-aliases/GetConversationResponse.md)
+- [GetConversationsRequest](type-aliases/GetConversationsRequest.md)
+- [GetConversationsResponse](type-aliases/GetConversationsResponse.md)
+- [GetDuplicatesOptions](type-aliases/GetDuplicatesOptions.md)
+- [GetHotPostsOptions](type-aliases/GetHotPostsOptions.md)
+- [GetModerationLogOptions](type-aliases/GetModerationLogOptions.md)
+- [GetModNotesOptions](type-aliases/GetModNotesOptions.md)
+- [GetPageRevisionsOptions](type-aliases/GetPageRevisionsOptions.md)
+- [GetPostsByUserOptions](type-aliases/GetPostsByUserOptions.md)
+- [GetPostsOptions](type-aliases/GetPostsOptions.md)
+- [GetPostsOptionsWithTimeframe](type-aliases/GetPostsOptionsWithTimeframe.md)
+- [GetPrivateMessagesOptions](type-aliases/GetPrivateMessagesOptions.md)
+- [GetSortedPostsOptions](type-aliases/GetSortedPostsOptions.md)
+- [GetSubredditUsersByTypeOptions](type-aliases/GetSubredditUsersByTypeOptions.md)
+- [GetSubscribedSubredditsForCurrentUserOptions](type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md)
+- [GetUserFlairBySubredditOptions](type-aliases/GetUserFlairBySubredditOptions.md)
+- [GetUserFlairBySubredditResponse](type-aliases/GetUserFlairBySubredditResponse.md)
+- [GetUserFlairOptions](type-aliases/GetUserFlairOptions.md)
+- [GetUserOverviewOptions](type-aliases/GetUserOverviewOptions.md)
+- [Heading](type-aliases/Heading.md)
+- [HeadingContainer](type-aliases/HeadingContainer.md)
+- [HeadingLevel](type-aliases/HeadingLevel.md)
+- [HeadingOptions](type-aliases/HeadingOptions.md)
+- [HeadingText](type-aliases/HeadingText.md)
+- [HorizontalRule](type-aliases/HorizontalRule.md)
+- [HorizontalRuleContainer](type-aliases/HorizontalRuleContainer.md)
+- [Image](type-aliases/Image.md)
+- [ImageContainer](type-aliases/ImageContainer.md)
- [ImageField](type-aliases/ImageField.md)
+- [ImageOptions](type-aliases/ImageOptions.md)
+- [ImagePosition](type-aliases/ImagePosition.md)
+- [InternalSetPostFlairOptions](type-aliases/InternalSetPostFlairOptions.md)
- [JobContext](type-aliases/JobContext.md)
- [JSONArray](type-aliases/JSONArray.md)
- [JSONObject](type-aliases/JSONObject.md)
- [JSONPrimitive](type-aliases/JSONPrimitive.md)
- [JSONValue](type-aliases/JSONValue.md)
+- [LineBreak](type-aliases/LineBreak.md)
+- [LineBreakContainer](type-aliases/LineBreakContainer.md)
+- [Link](type-aliases/Link.md)
+- [LinkContainer](type-aliases/LinkContainer.md)
+- [~~LinkFlair~~](type-aliases/LinkFlair.md)
+- [LinkOptions](type-aliases/LinkOptions.md)
+- [List](type-aliases/List.md)
+- [ListChild](type-aliases/ListChild.md)
+- [ListContainer](type-aliases/ListContainer.md)
+- [ListingFetchOptions](type-aliases/ListingFetchOptions.md)
+- [ListingFetchResponse](type-aliases/ListingFetchResponse.md)
+- [ListItem](type-aliases/ListItem.md)
+- [ListItemContainer](type-aliases/ListItemContainer.md)
+- [ListOptions](type-aliases/ListOptions.md)
+- [Media](type-aliases/Media.md)
- [MediaAsset](type-aliases/MediaAsset.md)
+- [MediaAssetId](type-aliases/MediaAssetId.md)
+- [MediaOptions](type-aliases/MediaOptions.md)
- [MediaPlugin](type-aliases/MediaPlugin.md)
- [MentionInCommentCreate](type-aliases/MentionInCommentCreate.md)
- [MentionInCommentCreateDefinition](type-aliases/MentionInCommentCreateDefinition.md)
@@ -79,29 +241,52 @@
- [MenuItemOnPressEvent](type-aliases/MenuItemOnPressEvent.md)
- [MenuItemPostFilter](type-aliases/MenuItemPostFilter.md)
- [MenuItemUserType](type-aliases/MenuItemUserType.md)
+- [MenuPosition](type-aliases/MenuPosition.md)
+- [MessageData](type-aliases/MessageData.md)
- [Metadata](type-aliases/Metadata.md)
+- [ModActionData](type-aliases/ModActionData.md)
- [ModActionDefinition](type-aliases/ModActionDefinition.md)
+- [ModActionTarget](type-aliases/ModActionTarget.md)
- [ModActionTrigger](type-aliases/ModActionTrigger.md)
+- [ModActionType](type-aliases/ModActionType.md)
+- [ModeratorPermission](type-aliases/ModeratorPermission.md)
+- [ModeratorReport](type-aliases/ModeratorReport.md)
+- [ModLogOptions](type-aliases/ModLogOptions.md)
- [ModMailDefinition](type-aliases/ModMailDefinition.md)
- [ModMailTrigger](type-aliases/ModMailTrigger.md)
+- [ModNoteType](type-aliases/ModNoteType.md)
+- [MoreObject](type-aliases/MoreObject.md)
- [MultiTriggerDefinition](type-aliases/MultiTriggerDefinition.md)
- [NumberField](type-aliases/NumberField.md)
+- [ObfuscationReason](type-aliases/ObfuscationReason.md)
+- [Oembed](type-aliases/Oembed.md)
- [OnAutomoderatorFilterCommentDefinition](type-aliases/OnAutomoderatorFilterCommentDefinition.md)
- [OnAutomoderatorFilterPostDefinition](type-aliases/OnAutomoderatorFilterPostDefinition.md)
- [OnTriggerRequest](type-aliases/OnTriggerRequest.md)
- [OnValidateHandler](type-aliases/OnValidateHandler.md)
+- [Paragraph](type-aliases/Paragraph.md)
+- [ParagraphContainer](type-aliases/ParagraphContainer.md)
+- [ParagraphContentNode](type-aliases/ParagraphContentNode.md)
- [ParagraphField](type-aliases/ParagraphField.md)
- [PartialJSONArray](type-aliases/PartialJSONArray.md)
- [PartialJSONObject](type-aliases/PartialJSONObject.md)
- [PartialJSONPrimitive](type-aliases/PartialJSONPrimitive.md)
- [PartialJSONValue](type-aliases/PartialJSONValue.md)
+- [Participant](type-aliases/Participant.md)
+- [PlainText](type-aliases/PlainText.md)
- [PluginSettings](type-aliases/PluginSettings.md)
+- [PollData](type-aliases/PollData.md)
+- [PollOption](type-aliases/PollOption.md)
+- [PositionedImagePosition](type-aliases/PositionedImagePosition.md)
+- [PostCapabilities](type-aliases/PostCapabilities.md)
- [PostCreate](type-aliases/PostCreate.md)
- [PostCreateDefinition](type-aliases/PostCreateDefinition.md)
- [PostDelete](type-aliases/PostDelete.md)
- [PostDeleteDefinition](type-aliases/PostDeleteDefinition.md)
- [PostFlairUpdate](type-aliases/PostFlairUpdate.md)
- [PostFlairUpdateDefinition](type-aliases/PostFlairUpdateDefinition.md)
+- [PostLink](type-aliases/PostLink.md)
+- [PostLinkOptions](type-aliases/PostLinkOptions.md)
- [PostNsfwUpdate](type-aliases/PostNsfwUpdate.md)
- [PostNsfwUpdateDefinition](type-aliases/PostNsfwUpdateDefinition.md)
- [PostReport](type-aliases/PostReport.md)
@@ -110,9 +295,25 @@
- [PostSpoilerUpdateDefinition](type-aliases/PostSpoilerUpdateDefinition.md)
- [PostSubmit](type-aliases/PostSubmit.md)
- [PostSubmitDefinition](type-aliases/PostSubmitDefinition.md)
+- [PostSuggestedCommentSort](type-aliases/PostSuggestedCommentSort.md)
+- [PostTextOptions](type-aliases/PostTextOptions.md)
+- [PostType](type-aliases/PostType.md)
- [PostUpdate](type-aliases/PostUpdate.md)
- [PostUpdateDefinition](type-aliases/PostUpdateDefinition.md)
+- [PrefixedRedditLinkOptions](type-aliases/PrefixedRedditLinkOptions.md)
+- [RawText](type-aliases/RawText.md)
+- [RawTextContainer](type-aliases/RawTextContainer.md)
+- [RawTextOptions](type-aliases/RawTextOptions.md)
+- [RedditLink](type-aliases/RedditLink.md)
+- [RedditLinkContainer](type-aliases/RedditLinkContainer.md)
+- [RedditPermalinkOptions](type-aliases/RedditPermalinkOptions.md)
+- [RedditVideo](type-aliases/RedditVideo.md)
- [RedisClient](type-aliases/RedisClient.md)
+- [RelationshipType](type-aliases/RelationshipType.md)
+- [RemovalReason](type-aliases/RemovalReason.md)
+- [RemoveRelationshipOptions](type-aliases/RemoveRelationshipOptions.md)
+- [ReplyToCommentOptions](type-aliases/ReplyToCommentOptions.md)
+- [RichTextContent](type-aliases/RichTextContent.md)
- [RunJob](type-aliases/RunJob.md)
- [ScheduledCronJob](type-aliases/ScheduledCronJob.md)
- [ScheduledCronJobOptions](type-aliases/ScheduledCronJobOptions.md)
@@ -122,29 +323,141 @@
- [ScheduledJobOptions](type-aliases/ScheduledJobOptions.md)
- [ScheduledJobType](type-aliases/ScheduledJobType.md)
- [Scheduler](type-aliases/Scheduler.md)
+- [SecureMedia](type-aliases/SecureMedia.md)
- [SelectField](type-aliases/SelectField.md)
+- [SendPrivateMessageAsSubredditOptions](type-aliases/SendPrivateMessageAsSubredditOptions.md)
+- [SendPrivateMessageOptions](type-aliases/SendPrivateMessageOptions.md)
+- [SetFlairOptions](type-aliases/SetFlairOptions.md)
- [SetOptions](type-aliases/SetOptions.md)
-- [SettingsClient](type-aliases/SettingsClient.md)
+- [SetPostFlairOptions](type-aliases/SetPostFlairOptions.md)
- [SettingScopeType](type-aliases/SettingScopeType.md)
- [SettingsFormField](type-aliases/SettingsFormField.md)
- [SettingsFormFieldGroup](type-aliases/SettingsFormFieldGroup.md)
- [SettingsFormFieldValidatorEvent](type-aliases/SettingsFormFieldValidatorEvent.md)
- [SettingsValues](type-aliases/SettingsValues.md)
+- [SetUserFlairBatchConfig](type-aliases/SetUserFlairBatchConfig.md)
+- [SetUserFlairOptions](type-aliases/SetUserFlairOptions.md)
+- [SpoilerContainer](type-aliases/SpoilerContainer.md)
+- [SpoilerText](type-aliases/SpoilerText.md)
- [StringField](type-aliases/StringField.md)
+- [SubmitCustomPostOptions](type-aliases/SubmitCustomPostOptions.md)
+- [SubmitLinkOptions](type-aliases/SubmitLinkOptions.md)
+- [SubmitMediaOptions](type-aliases/SubmitMediaOptions.md)
+- [SubmitPostOptions](type-aliases/SubmitPostOptions.md)
+- [SubmitSelfPostOptions](type-aliases/SubmitSelfPostOptions.md)
+- [SubredditData](type-aliases/SubredditData.md)
+- [SubredditInfo](type-aliases/SubredditInfo.md)
+- [SubredditLeaderboard](type-aliases/SubredditLeaderboard.md)
+- [SubredditLeaderboardSummary](type-aliases/SubredditLeaderboardSummary.md)
+- [SubredditLeaderboardSummaryRow](type-aliases/SubredditLeaderboardSummaryRow.md)
+- [SubredditLink](type-aliases/SubredditLink.md)
+- [SubredditLinkOptions](type-aliases/SubredditLinkOptions.md)
+- [SubredditOptions](type-aliases/SubredditOptions.md)
+- [SubredditSettings](type-aliases/SubredditSettings.md)
+- [SubredditSettingsOptions](type-aliases/SubredditSettingsOptions.md)
+- [SubredditStyles](type-aliases/SubredditStyles.md)
+- [SubredditType](type-aliases/SubredditType.md)
+- [Table](type-aliases/Table.md)
+- [TableCell](type-aliases/TableCell.md)
+- [TableCellContainer](type-aliases/TableCellContainer.md)
+- [TableCellText](type-aliases/TableCellText.md)
+- [TableContainer](type-aliases/TableContainer.md)
+- [TableContentContainer](type-aliases/TableContentContainer.md)
+- [TableHeaderCell](type-aliases/TableHeaderCell.md)
+- [TableHeaderCellContext](type-aliases/TableHeaderCellContext.md)
+- [TableHeaderCellOptions](type-aliases/TableHeaderCellOptions.md)
+- [TableHeaderRow](type-aliases/TableHeaderRow.md)
+- [TableRow](type-aliases/TableRow.md)
+- [Text](type-aliases/Text.md)
+- [TextContainer](type-aliases/TextContainer.md)
+- [TextNode](type-aliases/TextNode.md)
+- [TextOptions](type-aliases/TextOptions.md)
- [Toast](type-aliases/Toast.md)
- [TriggerContext](type-aliases/TriggerContext.md)
- [TriggerDefinition](type-aliases/TriggerDefinition.md)
- [TriggerEvent](type-aliases/TriggerEvent.md)
- [TriggerEventType](type-aliases/TriggerEventType.md)
- [TriggerOnEventHandler](type-aliases/TriggerOnEventHandler.md)
+- [Trophy](type-aliases/Trophy.md)
- [UIClient](type-aliases/UIClient.md)
+- [UnreadCountResponse](type-aliases/UnreadCountResponse.md)
+- [UpdatePageSettingsOptions](type-aliases/UpdatePageSettingsOptions.md)
+- [UpdateRuleOptions](type-aliases/UpdateRuleOptions.md)
+- [UpdateWidgetData](type-aliases/UpdateWidgetData.md)
+- [UpdateWikiPageOptions](type-aliases/UpdateWikiPageOptions.md)
- [UploadMediaOptions](type-aliases/UploadMediaOptions.md)
+- [UrlString](type-aliases/UrlString.md)
+- [UserFlair](type-aliases/UserFlair.md)
+- [UserFlairPageOptions](type-aliases/UserFlairPageOptions.md)
+- [UserLink](type-aliases/UserLink.md)
+- [UserLinkOptions](type-aliases/UserLinkOptions.md)
+- [UserMention](type-aliases/UserMention.md)
+- [UserMentionOptions](type-aliases/UserMentionOptions.md)
+- [UserNote](type-aliases/UserNote.md)
+- [UserNoteLabel](type-aliases/UserNoteLabel.md)
+- [UserSocialLink](type-aliases/UserSocialLink.md)
- [ValidatedBooleanField](type-aliases/ValidatedBooleanField.md)
- [ValidatedFormField](type-aliases/ValidatedFormField.md)
- [ValidatedNumberField](type-aliases/ValidatedNumberField.md)
- [ValidatedParagraphField](type-aliases/ValidatedParagraphField.md)
- [ValidatedSelectField](type-aliases/ValidatedSelectField.md)
- [ValidatedStringField](type-aliases/ValidatedStringField.md)
+- [Vault](type-aliases/Vault.md)
+- [Video](type-aliases/Video.md)
+- [VideoContainer](type-aliases/VideoContainer.md)
+- [VideoOptions](type-aliases/VideoOptions.md)
+- [Visibility](type-aliases/Visibility.md)
+- [WikiEditMode](type-aliases/WikiEditMode.md)
+- [WikiPageRevisionId](type-aliases/WikiPageRevisionId.md)
+- [WithUserData](type-aliases/WithUserData.md)
- [ZMember](type-aliases/ZMember.md)
- [ZRangeByScoreOptions](type-aliases/ZRangeByScoreOptions.md)
- [ZRangeOptions](type-aliases/ZRangeOptions.md)
+
+## Variables
+
+- [ANIMATED\_IMAGE\_ELEMENT](variables/ANIMATED_IMAGE_ELEMENT.md)
+- [BLOCK\_QUOTE\_ELEMENT](variables/BLOCK_QUOTE_ELEMENT.md)
+- [CODE\_BLOCK\_ELEMENT](variables/CODE_BLOCK_ELEMENT.md)
+- [COLUMN\_ALIGN\_CENTER](variables/COLUMN_ALIGN_CENTER.md)
+- [COLUMN\_ALIGN\_LEFT](variables/COLUMN_ALIGN_LEFT.md)
+- [COLUMN\_ALIGN\_RIGHT](variables/COLUMN_ALIGN_RIGHT.md)
+- [COMMENT\_LINK\_ELEMENT](variables/COMMENT_LINK_ELEMENT.md)
+- [EMBED\_ELEMENT](variables/EMBED_ELEMENT.md)
+- [GalleryMediaStatus](variables/GalleryMediaStatus.md)
+- [HEADING\_ELEMENT](variables/HEADING_ELEMENT.md)
+- [HORIZONTAL\_RULE\_ELEMENT](variables/HORIZONTAL_RULE_ELEMENT.md)
+- [IMAGE\_ELEMENT](variables/IMAGE_ELEMENT.md)
+- [LINEBREAK\_ELEMENT](variables/LINEBREAK_ELEMENT.md)
+- [LINK\_ELEMENT](variables/LINK_ELEMENT.md)
+- [LIST\_ELEMENT](variables/LIST_ELEMENT.md)
+- [LIST\_ITEM\_ELEMENT](variables/LIST_ITEM_ELEMENT.md)
+- [PARAGRAPH\_ELEMENT](variables/PARAGRAPH_ELEMENT.md)
+- [POST\_LINK\_ELEMENT](variables/POST_LINK_ELEMENT.md)
+- [RAW\_TEXT\_ELEMENT](variables/RAW_TEXT_ELEMENT.md)
+- [reddit](variables/reddit.md)
+- [SPOILER\_TEXT\_ELEMENT](variables/SPOILER_TEXT_ELEMENT.md)
+- [SUBREDDIT\_LINK\_ELEMENT](variables/SUBREDDIT_LINK_ELEMENT.md)
+- [TABLE\_ELEMENT](variables/TABLE_ELEMENT.md)
+- [TEXT\_ELEMENT](variables/TEXT_ELEMENT.md)
+- [USER\_LINK\_ELEMENT](variables/USER_LINK_ELEMENT.md)
+- [USER\_MENTION\_ELEMENT](variables/USER_MENTION_ELEMENT.md)
+- [VIDEO\_ELEMENT](variables/VIDEO_ELEMENT.md)
+
+## Functions
+
+- [getModerationLog](functions/getModerationLog.md)
+- [getSubredditInfoById](functions/getSubredditInfoById.md)
+- [getSubredditInfoByName](functions/getSubredditInfoByName.md)
+- [getSubredditLeaderboard](functions/getSubredditLeaderboard.md)
+- [getSubredditStyles](functions/getSubredditStyles.md)
+- [getVaultByAddress](functions/getVaultByAddress.md)
+- [getVaultByUserId](functions/getVaultByUserId.md)
+
+## References
+
+
+
+### OEmbed
+
+Renames and re-exports [Oembed](type-aliases/Oembed.md)
diff --git a/docs/api/public-api/classes/AuthorFlairSettings.md b/docs/api/public-api/classes/AuthorFlairSettings.md
new file mode 100644
index 00000000..94b4aed2
--- /dev/null
+++ b/docs/api/public-api/classes/AuthorFlairSettings.md
@@ -0,0 +1,33 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: AuthorFlairSettings
+
+## Constructors
+
+
+
+### new AuthorFlairSettings()
+
+> **new AuthorFlairSettings**(): `AuthorFlairSettings`
+
+#### Returns
+
+`AuthorFlairSettings`
+
+## Properties
+
+
+
+### isEnabled?
+
+> `optional` **isEnabled**: `boolean`
+
+***
+
+
+
+### isSelfAssignabled?
+
+> `optional` **isSelfAssignabled**: `boolean`
diff --git a/docs/api/public-api/classes/ButtonWidget.md b/docs/api/public-api/classes/ButtonWidget.md
new file mode 100644
index 00000000..05c75b02
--- /dev/null
+++ b/docs/api/public-api/classes/ButtonWidget.md
@@ -0,0 +1,163 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: ButtonWidget
+
+## Extends
+
+- [`Widget`](Widget.md)
+
+## Constructors
+
+
+
+### new ButtonWidget()
+
+> **new ButtonWidget**(`widgetData`, `subredditName`): `ButtonWidget`
+
+#### Parameters
+
+##### widgetData
+
+`GetWidgetsResponse_WidgetItem`
+
+##### subredditName
+
+`string`
+
+#### Returns
+
+`ButtonWidget`
+
+#### Overrides
+
+[`Widget`](Widget.md).[`constructor`](Widget.md#constructor)
+
+## Accessors
+
+
+
+### buttons
+
+#### Get Signature
+
+> **get** **buttons**(): `WidgetButton`[]
+
+##### Returns
+
+`WidgetButton`[]
+
+***
+
+
+
+### description
+
+#### Get Signature
+
+> **get** **description**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`id`](Widget.md#id)
+
+***
+
+
+
+### name
+
+#### Get Signature
+
+> **get** **name**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`name`](Widget.md#name)
+
+***
+
+
+
+### styles
+
+#### Get Signature
+
+> **get** **styles**(): `WidgetStyles`
+
+##### Returns
+
+`WidgetStyles`
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`subredditName`](Widget.md#subredditname)
+
+## Methods
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`delete`](Widget.md#delete)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`ButtonWidget`, `"description"` \| `"styles"` \| `"buttons"`\>
+
+#### Returns
+
+`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`ButtonWidget`, `"description"` \| `"styles"` \| `"buttons"`\>
+
+#### Overrides
+
+[`Widget`](Widget.md).[`toJSON`](Widget.md#tojson)
diff --git a/docs/api/public-api/classes/CalendarWidget.md b/docs/api/public-api/classes/CalendarWidget.md
new file mode 100644
index 00000000..23856025
--- /dev/null
+++ b/docs/api/public-api/classes/CalendarWidget.md
@@ -0,0 +1,163 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: CalendarWidget
+
+## Extends
+
+- [`Widget`](Widget.md)
+
+## Constructors
+
+
+
+### new CalendarWidget()
+
+> **new CalendarWidget**(`widgetData`, `subredditName`): `CalendarWidget`
+
+#### Parameters
+
+##### widgetData
+
+`GetWidgetsResponse_WidgetItem`
+
+##### subredditName
+
+`string`
+
+#### Returns
+
+`CalendarWidget`
+
+#### Overrides
+
+[`Widget`](Widget.md).[`constructor`](Widget.md#constructor)
+
+## Accessors
+
+
+
+### configuration
+
+#### Get Signature
+
+> **get** **configuration**(): `CalendarWidgetConfiguration`
+
+##### Returns
+
+`CalendarWidgetConfiguration`
+
+***
+
+
+
+### googleCalendarId
+
+#### Get Signature
+
+> **get** **googleCalendarId**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`id`](Widget.md#id)
+
+***
+
+
+
+### name
+
+#### Get Signature
+
+> **get** **name**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`name`](Widget.md#name)
+
+***
+
+
+
+### styles
+
+#### Get Signature
+
+> **get** **styles**(): `WidgetStyles`
+
+##### Returns
+
+`WidgetStyles`
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`subredditName`](Widget.md#subredditname)
+
+## Methods
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`delete`](Widget.md#delete)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`CalendarWidget`, `"googleCalendarId"` \| `"configuration"` \| `"styles"`\>
+
+#### Returns
+
+`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`CalendarWidget`, `"googleCalendarId"` \| `"configuration"` \| `"styles"`\>
+
+#### Overrides
+
+[`Widget`](Widget.md).[`toJSON`](Widget.md#tojson)
diff --git a/docs/api/public-api/classes/Comment.md b/docs/api/public-api/classes/Comment.md
new file mode 100644
index 00000000..60c3e516
--- /dev/null
+++ b/docs/api/public-api/classes/Comment.md
@@ -0,0 +1,835 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: Comment
+
+## Constructors
+
+
+
+### new Comment()
+
+> **new Comment**(): `Comment`
+
+#### Returns
+
+`Comment`
+
+## Accessors
+
+
+
+### approved
+
+#### Get Signature
+
+> **get** **approved**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### approvedAtUtc
+
+#### Get Signature
+
+> **get** **approvedAtUtc**(): `number`
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### authorFlair
+
+#### Get Signature
+
+> **get** **authorFlair**(): `undefined` \| [`CommonFlair`](../type-aliases/CommonFlair.md)
+
+##### Returns
+
+`undefined` \| [`CommonFlair`](../type-aliases/CommonFlair.md)
+
+***
+
+
+
+### authorId
+
+#### Get Signature
+
+> **get** **authorId**(): `undefined` \| `` `t2_${string}` ``
+
+##### Returns
+
+`undefined` \| `` `t2_${string}` ``
+
+***
+
+
+
+### authorName
+
+#### Get Signature
+
+> **get** **authorName**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### bannedAtUtc
+
+#### Get Signature
+
+> **get** **bannedAtUtc**(): `number`
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### body
+
+#### Get Signature
+
+> **get** **body**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### collapsedBecauseCrowdControl
+
+#### Get Signature
+
+> **get** **collapsedBecauseCrowdControl**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### createdAt
+
+#### Get Signature
+
+> **get** **createdAt**(): `Date`
+
+##### Returns
+
+`Date`
+
+***
+
+
+
+### distinguishedBy
+
+#### Get Signature
+
+> **get** **distinguishedBy**(): `undefined` \| `string`
+
+##### Returns
+
+`undefined` \| `string`
+
+***
+
+
+
+### edited
+
+#### Get Signature
+
+> **get** **edited**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `` `t1_${string}` ``
+
+##### Returns
+
+`` `t1_${string}` ``
+
+***
+
+
+
+### ignoringReports
+
+#### Get Signature
+
+> **get** **ignoringReports**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### locked
+
+#### Get Signature
+
+> **get** **locked**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### modReportReasons
+
+#### Get Signature
+
+> **get** **modReportReasons**(): `string`[]
+
+##### Deprecated
+
+Use [modReports](#modreports) to retain each report's author.
+
+##### Returns
+
+`string`[]
+
+***
+
+
+
+### modReports
+
+#### Get Signature
+
+> **get** **modReports**(): [`ModeratorReport`](../type-aliases/ModeratorReport.md)[]
+
+##### Returns
+
+[`ModeratorReport`](../type-aliases/ModeratorReport.md)[]
+
+***
+
+
+
+### numReports
+
+#### Get Signature
+
+> **get** **numReports**(): `number`
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### parentId
+
+#### Get Signature
+
+> **get** **parentId**(): `` `t3_${string}` `` \| `` `t1_${string}` ``
+
+##### Returns
+
+`` `t3_${string}` `` \| `` `t1_${string}` ``
+
+***
+
+
+
+### permalink
+
+#### Get Signature
+
+> **get** **permalink**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### postId
+
+#### Get Signature
+
+> **get** **postId**(): `` `t3_${string}` ``
+
+##### Returns
+
+`` `t3_${string}` ``
+
+***
+
+
+
+### removed
+
+#### Get Signature
+
+> **get** **removed**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### replies
+
+#### Get Signature
+
+> **get** **replies**(): [`Listing`](Listing.md)\<`Comment`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<`Comment`\>
+
+***
+
+
+
+### score
+
+#### Get Signature
+
+> **get** **score**(): `number`
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### spam
+
+#### Get Signature
+
+> **get** **spam**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### stickied
+
+#### Get Signature
+
+> **get** **stickied**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### subredditId
+
+#### Get Signature
+
+> **get** **subredditId**(): `` `t5_${string}` ``
+
+##### Returns
+
+`` `t5_${string}` ``
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### url
+
+#### Get Signature
+
+> **get** **url**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### userReportReasons
+
+#### Get Signature
+
+> **get** **userReportReasons**(): `string`[]
+
+##### Returns
+
+`string`[]
+
+## Methods
+
+
+
+### addRemovalNote()
+
+> **addRemovalNote**(`opts`): `Promise`\<`void`\>
+
+Add a mod note for why the comment was removed
+
+#### Parameters
+
+##### opts
+
+###### modNote?
+
+`string`
+
+###### reasonId
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### approve()
+
+> **approve**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### distinguish()
+
+> **distinguish**(`makeSticky`?): `Promise`\<`void`\>
+
+#### Parameters
+
+##### makeSticky?
+
+`boolean`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### distinguishAsAdmin()
+
+> **distinguishAsAdmin**(`makeSticky`?): `Promise`\<`void`\>
+
+#### Parameters
+
+##### makeSticky?
+
+`boolean`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### edit()
+
+> **edit**(`opts`): `Promise`\<`Comment`\>
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`CommentSubmissionOptions`](../type-aliases/CommentSubmissionOptions.md)\>
+
+#### Returns
+
+`Promise`\<`Comment`\>
+
+***
+
+
+
+### filter()
+
+> **filter**(`options`?): `Promise`\<`void`\>
+
+**`Experimental`**
+
+Filters the comment. When a comment is filtered, it is added to the ModQueue for review, and in addition:
+- if
+
+#### Parameters
+
+##### options?
+
+`FilterOptions`
+
+The options for this filter action.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A Promise that resolves if the comment was filtered successfully.
+
+***
+
+
+
+### getAuthor()
+
+> **getAuthor**(): `Promise`\<`undefined` \| [`User`](User.md)\>
+
+#### Returns
+
+`Promise`\<`undefined` \| [`User`](User.md)\>
+
+***
+
+
+
+### ignoreReports()
+
+> **ignoreReports**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### isApproved()
+
+> **isApproved**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isDistinguished()
+
+> **isDistinguished**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isEdited()
+
+> **isEdited**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isIgnoringReports()
+
+> **isIgnoringReports**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isLocked()
+
+> **isLocked**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isRemoved()
+
+> **isRemoved**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isSpam()
+
+> **isSpam**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isStickied()
+
+> **isStickied**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### lock()
+
+> **lock**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### remove()
+
+> **remove**(`isSpam`?): `Promise`\<`void`\>
+
+#### Parameters
+
+##### isSpam?
+
+`boolean`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### reply()
+
+> **reply**(`opts`): `Promise`\<`Comment`\>
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`CommentSubmissionOptions`](../type-aliases/CommentSubmissionOptions.md)\>
+
+#### Returns
+
+`Promise`\<`Comment`\>
+
+***
+
+
+
+### showComment()
+
+> **showComment**(): `Promise`\<`void`\>
+
+Marks that this comment should not be collapsed by the crowd control system.
+It can still be collapsed for other reasons.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### snoozeReports()
+
+> **snoozeReports**(`reason`): `Promise`\<`void`\>
+
+Snooze subsequent reports with the given reason from the same users for the next 7 days.
+Only works for free-form reports.
+
+#### Parameters
+
+##### reason
+
+`string`
+
+The report reason to snooze.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<`Comment`, `"postId"` \| `"subredditName"` \| `"id"` \| `"subredditId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"authorName"` \| `"body"` \| `"score"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"edited"` \| `"locked"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"parentId"` \| `"replies"` \| `"numReports"` \| `"collapsedBecauseCrowdControl"`\>
+
+#### Returns
+
+`Pick`\<`Comment`, `"postId"` \| `"subredditName"` \| `"id"` \| `"subredditId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"authorName"` \| `"body"` \| `"score"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"edited"` \| `"locked"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"parentId"` \| `"replies"` \| `"numReports"` \| `"collapsedBecauseCrowdControl"`\>
+
+***
+
+
+
+### undistinguish()
+
+> **undistinguish**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unignoreReports()
+
+> **unignoreReports**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unlock()
+
+> **unlock**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unsnoozeReports()
+
+> **unsnoozeReports**(`reason`): `Promise`\<`void`\>
+
+Unsnooze reports with the given reason.
+Only works for free-form reports.
+
+#### Parameters
+
+##### reason
+
+`string`
+
+The report reason to unsnooze.
+
+#### Returns
+
+`Promise`\<`void`\>
diff --git a/docs/api/public-api/classes/CommunityListWidget.md b/docs/api/public-api/classes/CommunityListWidget.md
new file mode 100644
index 00000000..221c6428
--- /dev/null
+++ b/docs/api/public-api/classes/CommunityListWidget.md
@@ -0,0 +1,149 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: CommunityListWidget
+
+## Extends
+
+- [`Widget`](Widget.md)
+
+## Constructors
+
+
+
+### new CommunityListWidget()
+
+> **new CommunityListWidget**(`widgetData`, `subredditName`): `CommunityListWidget`
+
+#### Parameters
+
+##### widgetData
+
+`GetWidgetsResponse_WidgetItem`
+
+##### subredditName
+
+`string`
+
+#### Returns
+
+`CommunityListWidget`
+
+#### Overrides
+
+[`Widget`](Widget.md).[`constructor`](Widget.md#constructor)
+
+## Accessors
+
+
+
+### communities
+
+#### Get Signature
+
+> **get** **communities**(): `CommunityListWidget_CommunityData`[]
+
+##### Returns
+
+`CommunityListWidget_CommunityData`[]
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`id`](Widget.md#id)
+
+***
+
+
+
+### name
+
+#### Get Signature
+
+> **get** **name**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`name`](Widget.md#name)
+
+***
+
+
+
+### styles
+
+#### Get Signature
+
+> **get** **styles**(): `WidgetStyles`
+
+##### Returns
+
+`WidgetStyles`
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`subredditName`](Widget.md#subredditname)
+
+## Methods
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`delete`](Widget.md#delete)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`CommunityListWidget`, `"styles"` \| `"communities"`\>
+
+#### Returns
+
+`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`CommunityListWidget`, `"styles"` \| `"communities"`\>
+
+#### Overrides
+
+[`Widget`](Widget.md).[`toJSON`](Widget.md#tojson)
diff --git a/docs/api/public-api/classes/CustomWidget.md b/docs/api/public-api/classes/CustomWidget.md
new file mode 100644
index 00000000..12009b9a
--- /dev/null
+++ b/docs/api/public-api/classes/CustomWidget.md
@@ -0,0 +1,191 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: CustomWidget
+
+## Extends
+
+- [`Widget`](Widget.md)
+
+## Constructors
+
+
+
+### new CustomWidget()
+
+> **new CustomWidget**(`widgetData`, `subredditName`): `CustomWidget`
+
+#### Parameters
+
+##### widgetData
+
+`GetWidgetsResponse_WidgetItem`
+
+##### subredditName
+
+`string`
+
+#### Returns
+
+`CustomWidget`
+
+#### Overrides
+
+[`Widget`](Widget.md).[`constructor`](Widget.md#constructor)
+
+## Accessors
+
+
+
+### css
+
+#### Get Signature
+
+> **get** **css**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### height
+
+#### Get Signature
+
+> **get** **height**(): `number`
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`id`](Widget.md#id)
+
+***
+
+
+
+### images
+
+#### Get Signature
+
+> **get** **images**(): `WidgetImage`[]
+
+##### Returns
+
+`WidgetImage`[]
+
+***
+
+
+
+### name
+
+#### Get Signature
+
+> **get** **name**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`name`](Widget.md#name)
+
+***
+
+
+
+### stylesheetUrl
+
+#### Get Signature
+
+> **get** **stylesheetUrl**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`subredditName`](Widget.md#subredditname)
+
+***
+
+
+
+### text
+
+#### Get Signature
+
+> **get** **text**(): `string`
+
+##### Returns
+
+`string`
+
+## Methods
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`delete`](Widget.md#delete)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`CustomWidget`, `"text"` \| `"images"` \| `"stylesheetUrl"` \| `"height"` \| `"css"`\>
+
+#### Returns
+
+`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`CustomWidget`, `"text"` \| `"images"` \| `"stylesheetUrl"` \| `"height"` \| `"css"`\>
+
+#### Overrides
+
+[`Widget`](Widget.md).[`toJSON`](Widget.md#tojson)
diff --git a/docs/api/public-api/classes/Devvit.md b/docs/api/public-api/classes/Devvit.md
index 00b8c5ad..8a0466e8 100644
--- a/docs/api/public-api/classes/Devvit.md
+++ b/docs/api/public-api/classes/Devvit.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/classes/Flair.md b/docs/api/public-api/classes/Flair.md
new file mode 100644
index 00000000..2ccccab2
--- /dev/null
+++ b/docs/api/public-api/classes/Flair.md
@@ -0,0 +1,17 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: Flair
+
+## Constructors
+
+
+
+### new Flair()
+
+> **new Flair**(): `Flair`
+
+#### Returns
+
+`Flair`
diff --git a/docs/api/public-api/classes/FlairTemplate.md b/docs/api/public-api/classes/FlairTemplate.md
new file mode 100644
index 00000000..831617ad
--- /dev/null
+++ b/docs/api/public-api/classes/FlairTemplate.md
@@ -0,0 +1,179 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: FlairTemplate
+
+## Constructors
+
+
+
+### new FlairTemplate()
+
+> **new FlairTemplate**(): `FlairTemplate`
+
+#### Returns
+
+`FlairTemplate`
+
+## Accessors
+
+
+
+### allowableContent
+
+#### Get Signature
+
+> **get** **allowableContent**(): [`AllowableFlairContent`](../type-aliases/AllowableFlairContent.md)
+
+The flair template's allowable content. Either 'all', 'emoji', or 'text'.
+
+##### Returns
+
+[`AllowableFlairContent`](../type-aliases/AllowableFlairContent.md)
+
+***
+
+
+
+### allowUserEdits
+
+#### Get Signature
+
+> **get** **allowUserEdits**(): `boolean`
+
+Does the flair template allow users to edit their flair?
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### backgroundColor
+
+#### Get Signature
+
+> **get** **backgroundColor**(): [`FlairBackgroundColor`](../type-aliases/FlairBackgroundColor.md)
+
+The flair template's background color. Either 'transparent' or a hex color code. e.g. #FFC0CB
+
+##### Returns
+
+[`FlairBackgroundColor`](../type-aliases/FlairBackgroundColor.md)
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `string`
+
+The flair template's ID
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### maxEmojis
+
+#### Get Signature
+
+> **get** **maxEmojis**(): `number`
+
+The flair template's maximum number of emojis.
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### modOnly
+
+#### Get Signature
+
+> **get** **modOnly**(): `boolean`
+
+Is the flair template only available to moderators?
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### text
+
+#### Get Signature
+
+> **get** **text**(): `string`
+
+The flair template's text
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### textColor
+
+#### Get Signature
+
+> **get** **textColor**(): [`FlairTextColor`](../type-aliases/FlairTextColor.md)
+
+The flair template's text color. Either 'dark' or 'light'.
+
+##### Returns
+
+[`FlairTextColor`](../type-aliases/FlairTextColor.md)
+
+## Methods
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+Delete this flair template
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### edit()
+
+> **edit**(`options`): `Promise`\<`FlairTemplate`\>
+
+Edit this flair template
+
+#### Parameters
+
+##### options
+
+`Partial`\<`Omit`\<[`EditFlairTemplateOptions`](../type-aliases/EditFlairTemplateOptions.md), `"subredditName"` \| `"id"`\>\>
+
+#### Returns
+
+`Promise`\<`FlairTemplate`\>
diff --git a/docs/api/public-api/classes/ImageWidget.md b/docs/api/public-api/classes/ImageWidget.md
new file mode 100644
index 00000000..faf0ca58
--- /dev/null
+++ b/docs/api/public-api/classes/ImageWidget.md
@@ -0,0 +1,135 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: ImageWidget
+
+## Extends
+
+- [`Widget`](Widget.md)
+
+## Constructors
+
+
+
+### new ImageWidget()
+
+> **new ImageWidget**(`widgetData`, `subredditName`): `ImageWidget`
+
+#### Parameters
+
+##### widgetData
+
+`GetWidgetsResponse_WidgetItem`
+
+##### subredditName
+
+`string`
+
+#### Returns
+
+`ImageWidget`
+
+#### Overrides
+
+[`Widget`](Widget.md).[`constructor`](Widget.md#constructor)
+
+## Accessors
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`id`](Widget.md#id)
+
+***
+
+
+
+### images
+
+#### Get Signature
+
+> **get** **images**(): `WidgetImage`[]
+
+##### Returns
+
+`WidgetImage`[]
+
+***
+
+
+
+### name
+
+#### Get Signature
+
+> **get** **name**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`name`](Widget.md#name)
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`subredditName`](Widget.md#subredditname)
+
+## Methods
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`delete`](Widget.md#delete)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`ImageWidget`, `"images"`\>
+
+#### Returns
+
+`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`ImageWidget`, `"images"`\>
+
+#### Overrides
+
+[`Widget`](Widget.md).[`toJSON`](Widget.md#tojson)
diff --git a/docs/api/public-api/classes/Listing.md b/docs/api/public-api/classes/Listing.md
new file mode 100644
index 00000000..bdec5a6e
--- /dev/null
+++ b/docs/api/public-api/classes/Listing.md
@@ -0,0 +1,133 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: Listing\
+
+## Type Parameters
+
+### T
+
+`T`
+
+## Constructors
+
+
+
+### new Listing()
+
+> **new Listing**\<`T`\>(): `Listing`\<`T`\>
+
+#### Returns
+
+`Listing`\<`T`\>
+
+## Properties
+
+
+
+### children
+
+> **children**: `T`[]
+
+***
+
+
+
+### limit
+
+> **limit**: `number`
+
+***
+
+
+
+### pageSize
+
+> **pageSize**: `number`
+
+## Accessors
+
+
+
+### hasMore
+
+#### Get Signature
+
+> **get** **hasMore**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+## Methods
+
+
+
+### \[asyncIterator\]()
+
+> **\[asyncIterator\]**(): `AsyncIterator`\<`T`\>
+
+#### Returns
+
+`AsyncIterator`\<`T`\>
+
+***
+
+
+
+### all()
+
+> **all**(): `Promise`\<`T`[]\>
+
+#### Returns
+
+`Promise`\<`T`[]\>
+
+***
+
+
+
+### get()
+
+> **get**(`count`): `Promise`\<`T`[]\>
+
+#### Parameters
+
+##### count
+
+`number`
+
+#### Returns
+
+`Promise`\<`T`[]\>
+
+***
+
+
+
+### preventInitialFetch()
+
+> **preventInitialFetch**(): `void`
+
+#### Returns
+
+`void`
+
+***
+
+
+
+### setMore()
+
+> **setMore**(`more`): `void`
+
+#### Parameters
+
+##### more
+
+`undefined` | [`MoreObject`](../type-aliases/MoreObject.md)
+
+#### Returns
+
+`void`
diff --git a/docs/api/public-api/classes/ModMailService.md b/docs/api/public-api/classes/ModMailService.md
new file mode 100644
index 00000000..07505945
--- /dev/null
+++ b/docs/api/public-api/classes/ModMailService.md
@@ -0,0 +1,838 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: ModMailService
+
+Class providing the methods for working with Mod Mail
+
+## Constructors
+
+
+
+### new ModMailService()
+
+> **new ModMailService**(): `ModMailService`
+
+#### Returns
+
+`ModMailService`
+
+## Properties
+
+
+
+### notificationSubjectPrefix
+
+> `readonly` **notificationSubjectPrefix**: `"[notification]"` = `"[notification]"`
+
+## Methods
+
+
+
+### approveConversation()
+
+> **approveConversation**(`conversationId`): `Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+Approve the non mod user associated with a particular conversation.
+
+#### Parameters
+
+##### conversationId
+
+`string`
+
+Id of a modmail conversation
+
+#### Returns
+
+`Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+#### Example
+
+```ts
+await reddit.modMail.approveConversation('abcdef');
+```
+
+***
+
+
+
+### archiveConversation()
+
+> **archiveConversation**(`conversationId`): `Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md)\>
+
+Marks a conversation as archived
+
+#### Parameters
+
+##### conversationId
+
+`string`
+
+Id of a modmail conversation
+
+#### Returns
+
+`Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md)\>
+
+#### Example
+
+```ts
+await reddit.modMail.archive('abcdef');
+```
+
+***
+
+
+
+### bulkReadConversations()
+
+> **bulkReadConversations**(`subreddits`, `state`): `Promise`\<`string`[]\>
+
+Marks all conversations read for a particular conversation state within the passed list of subreddits.
+
+#### Parameters
+
+##### subreddits
+
+`string`[]
+
+Array of subreddit names
+
+##### state
+
+[`ConversationStateFilter`](../type-aliases/ConversationStateFilter.md)
+
+One of the possible conversation states ('all' to read all conversations)
+
+#### Returns
+
+`Promise`\<`string`[]\>
+
+conversationIds
+
+#### Example
+
+```ts
+const conversationIds = await reddit.modMail.bulkReadConversations(
+ ['askReddit', 'myAwesomeSubreddit'],
+ 'filtered'
+);
+```
+
+***
+
+
+
+### createConversation()
+
+> **createConversation**(`params`): `Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+Creates a new conversation for a particular SR.
+
+This endpoint will create a ModmailConversation object
+as well as the first ModmailMessage within the ModmailConversation object.
+
+#### Parameters
+
+##### params
+
+###### body
+
+`string`
+
+markdown text
+
+###### isAuthorHidden?
+
+`boolean`
+
+is author hidden? (default: false)
+
+###### subject
+
+`string`
+
+subject of the conversation. max 100 characters
+
+###### subredditName
+
+`string`
+
+subreddit name
+
+###### to?
+
+`null` \| `string`
+
+a user (e.g. u/username), a subreddit (e.g. r/subreddit) or null
+
+#### Returns
+
+`Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+#### Note
+
+Note on {param.to}:
+The to field for this endpoint is somewhat confusing. It can be:
+- A User, passed like "username" or "u/username"
+- A Subreddit, passed like "r/subreddit"
+- null, meaning an internal moderator discussion
+
+In this way to is a bit of a misnomer in modmail conversations.
+What it really means is the participant of the conversation who is not a mod of the subreddit.
+
+If you plan to send a message to the app-account or a moderator of the subreddit, use [ModMailService.createModDiscussionConversation](#createmoddiscussionconversation), [ModMailService.createModInboxConversation](#createmodinboxconversation), or [ModMailService.createModNotification](#createmodnotification) instead.
+Otherwise, messages sent to the app-account or moderator will automatically be routed to Mod Discussions.
+
+#### Example
+
+```ts
+const { conversation, messages, modActions } = await reddit.modMail.createConversation({
+ subredditName: 'askReddit',
+ subject: 'Test conversation',
+ body: 'Lorem ipsum sit amet',
+ to: null,
+});
+```
+
+***
+
+
+
+### createModDiscussionConversation()
+
+> **createModDiscussionConversation**(`params`): `Promise`\<`string`\>
+
+Creates a conversation in Mod Discussions with the moderators of the given subredditId.
+
+Note: The app must be installed in the subreddit in order to create a conversation in Mod Discussions.
+
+#### Parameters
+
+##### params
+
+###### bodyMarkdown
+
+`string`
+
+The body of the message in Markdown format, e.g. `Hello world \n\n **Have a great day**`.
+
+###### subject
+
+`string`
+
+The subject of the message.
+
+###### subredditId
+
+`` `t5_${string}` ``
+
+The ID (starting with `t5_`) of the subreddit to which to send the message, e.g. `t5_2qjpg`.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+A Promise that resolves a string representing the conversationId of the message.
+
+#### Example
+
+```ts
+const conversationId = await reddit.modMail.createModDiscussionConversation({
+ subject: 'Test conversation',
+ bodyMarkdown: '**Hello there** \n\n _Have a great day!_',
+ subredditId: context.subredditId
+});
+```
+
+***
+
+
+
+### createModInboxConversation()
+
+> **createModInboxConversation**(`params`): `Promise`\<`string`\>
+
+Creates a conversation in the Modmail Inbox with the moderators of the given subredditId.
+
+#### Parameters
+
+##### params
+
+###### bodyMarkdown
+
+`string`
+
+The body of the message in Markdown format, e.g. `Hello world \n\n **Have a great day**`.
+
+###### subject
+
+`string`
+
+The subject of the message.
+
+###### subredditId
+
+`` `t5_${string}` ``
+
+The ID (starting with `t5_`) of the subreddit to which to send the message, e.g. `t5_2qjpg`.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+A Promise that resolves a string representing the conversationId of the message.
+
+#### Example
+
+```ts
+const conversationId = await reddit.modMail.createModInboxConversation({
+ subject: 'Test conversation',
+ bodyMarkdown: '**Hello there** \n\n _Have a great day!_',
+ subredditId: context.subredditId
+});
+```
+
+***
+
+
+
+### createModNotification()
+
+> **createModNotification**(`params`): `Promise`\<`string`\>
+
+Creates a notification in the Modmail Inbox.
+This function is different from [ModMailService.createModInboxConversation](#createmodinboxconversation) in that the conversation also appears in the "Notifications" section of Modmail.
+
+#### Parameters
+
+##### params
+
+###### bodyMarkdown
+
+`string`
+
+The body of the message in Markdown format, e.g. `Hello world \n\n **Have a great day**`.
+
+###### subject
+
+`string`
+
+The subject of the message.
+
+###### subredditId
+
+`` `t5_${string}` ``
+
+The ID (starting with `t5_`) of the subreddit to which to send the message, e.g. `t5_2qjpg`.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+A Promise that resolves a string representing the conversationId of the message.
+
+#### Example
+
+```ts
+const conversationId = await reddit.modMail.createModNotification({
+ subject: 'Test notification',
+ bodyMarkdown: '**Hello there** \n\n _This is a notification!_',
+ subredditId: context.subredditId
+});
+```
+
+***
+
+
+
+### disapproveConversation()
+
+> **disapproveConversation**(`conversationId`): `Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+Disapprove the non mod user associated with a particular conversation.
+
+#### Parameters
+
+##### conversationId
+
+`string`
+
+Id of a modmail conversation
+
+#### Returns
+
+`Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+#### Example
+
+```ts
+await reddit.modMail.disapproveConversation('abcdef');
+```
+
+***
+
+
+
+### getConversation()
+
+> **getConversation**(`params`): `Promise`\<[`GetConversationResponse`](../type-aliases/GetConversationResponse.md)\>
+
+Returns all messages, mod actions and conversation metadata for a given conversation id
+
+#### Parameters
+
+##### params
+
+###### conversationId
+
+`string`
+
+a modmail conversation id
+
+###### markRead?
+
+`boolean`
+
+mark read?
+
+#### Returns
+
+`Promise`\<[`GetConversationResponse`](../type-aliases/GetConversationResponse.md)\>
+
+#### Example
+
+```ts
+const { conversation, messages, modActions, user } = await reddit.modMail.getConversation({ conversationId: 'abcdef', markRead: true });
+```
+
+***
+
+
+
+### getConversations()
+
+> **getConversations**(`params`): `Promise`\<[`GetConversationsResponse`](../type-aliases/GetConversationsResponse.md)\>
+
+Get conversations for a logged in user or subreddits
+
+#### Parameters
+
+##### params
+
+[`GetConversationsRequest`](../type-aliases/GetConversationsRequest.md)
+
+#### Returns
+
+`Promise`\<[`GetConversationsResponse`](../type-aliases/GetConversationsResponse.md)\>
+
+#### Example
+
+```ts
+const {viewerId, conversations} = await reddit.modMail.getConversations({
+ after: 'abcdef',
+ limit: 42
+});
+
+const arrayOfConversations = Object.values(conversations);
+```
+
+***
+
+
+
+### getSubreddits()
+
+> **getSubreddits**(): `Promise`\<\{\}\>
+
+Returns a list of Subreddits that the user moderates with mail permission
+
+#### Returns
+
+`Promise`\<\{\}\>
+
+#### Example
+
+```ts
+const subredditsData = await reddit.modMail.getSubreddits();
+
+for (const subreddit of Object.values(subreddits)) {
+ console.log(subreddit.id);
+ console.log(subreddit.name);
+}
+```
+
+***
+
+
+
+### getUnreadCount()
+
+> **getUnreadCount**(): `Promise`\<[`UnreadCountResponse`](../type-aliases/UnreadCountResponse.md)\>
+
+Endpoint to retrieve the unread conversation count by conversation state.
+
+#### Returns
+
+`Promise`\<[`UnreadCountResponse`](../type-aliases/UnreadCountResponse.md)\>
+
+#### Example
+
+```ts
+const response = await reddit.modMail.getUnreadCount();
+
+console.log(response.highlighted);
+console.log(response.new);
+```
+
+***
+
+
+
+### getUserConversations()
+
+> **getUserConversations**(`conversationId`): `Promise`\<[`ConversationUserData`](../type-aliases/ConversationUserData.md)\>
+
+Returns recent posts, comments and modmail conversations for a given user.
+
+#### Parameters
+
+##### conversationId
+
+`string`
+
+Id of a modmail conversation
+
+#### Returns
+
+`Promise`\<[`ConversationUserData`](../type-aliases/ConversationUserData.md)\>
+
+#### Example
+
+```ts
+const data = await reddit.modMail.getUserConversations('abcdef');
+
+console.log(data.recentComments);
+console.log(data.recentPosts);
+```
+
+***
+
+
+
+### highlightConversation()
+
+> **highlightConversation**(`conversationId`): `Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md)\>
+
+Marks a conversation as highlighted.
+
+#### Parameters
+
+##### conversationId
+
+`string`
+
+Id of a modmail conversation
+
+#### Returns
+
+`Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md)\>
+
+#### Example
+
+```ts
+await reddit.modMail.highlightConversation('abcdef');
+```
+
+***
+
+
+
+### muteConversation()
+
+> **muteConversation**(`params`): `Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+Marks a conversation as read for the user.
+
+#### Parameters
+
+##### params
+
+###### conversationId
+
+`string`
+
+Id of a modmail conversation
+
+###### numHours
+
+`72` \| `168` \| `672`
+
+For how many hours the conversation needs to be muted. Must be one of 72, 168, or 672 hours
+
+#### Returns
+
+`Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+#### Example
+
+```ts
+await reddit.modMail.muteConversation({ conversationId: 'abcdef', numHours: 72 });
+```
+
+***
+
+
+
+### readConversations()
+
+> **readConversations**(`conversationIds`): `Promise`\<`void`\>
+
+Marks a conversations as read for the user.
+
+#### Parameters
+
+##### conversationIds
+
+`string`[]
+
+An array of ids
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Example
+
+```ts
+await reddit.modMail.readConversations(['abcdef', 'qwerty']);
+```
+
+***
+
+
+
+### reply()
+
+> **reply**(`params`): `Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+Creates a new message for a particular conversation.
+
+#### Parameters
+
+##### params
+
+###### body
+
+`string`
+
+markdown text
+
+###### conversationId
+
+`string`
+
+Id of a modmail conversation
+
+###### isAuthorHidden?
+
+`boolean`
+
+is author hidden? (default: false)
+
+###### isInternal?
+
+`boolean`
+
+is internal message? (default: false)
+
+#### Returns
+
+`Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+#### Example
+
+```ts
+await reddit.modMail.reply({
+ body: 'Lorem ipsum sit amet',
+ conversationId: 'abcdef',
+});
+```
+
+***
+
+
+
+### tempBanConversation()
+
+> **tempBanConversation**(`params`): `Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+Temporary ban (switch from permanent to temporary ban) the non mod user associated with a particular conversation.
+
+#### Parameters
+
+##### params
+
+###### conversationId
+
+`string`
+
+a modmail conversation id
+
+###### duration
+
+`number`
+
+duration in days, max 999
+
+#### Returns
+
+`Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+#### Example
+
+```ts
+await reddit.modMail.tempBanConversation({ conversationId: 'abcdef', duration: 42 });
+```
+
+***
+
+
+
+### unarchiveConversation()
+
+> **unarchiveConversation**(`conversationId`): `Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md)\>
+
+Marks conversation as unarchived.
+
+#### Parameters
+
+##### conversationId
+
+`string`
+
+Id of a modmail conversation
+
+#### Returns
+
+`Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md)\>
+
+#### Example
+
+```ts
+await reddit.modMail.unarchiveConversation('abcdef');
+```
+
+***
+
+
+
+### unbanConversation()
+
+> **unbanConversation**(`conversationId`): `Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+Unban the non mod user associated with a particular conversation.
+
+#### Parameters
+
+##### conversationId
+
+`string`
+
+a modmail conversation id
+
+#### Returns
+
+`Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+#### Example
+
+```ts
+await reddit.modMail.unbanConversation('abcdef');
+```
+
+***
+
+
+
+### unhighlightConversation()
+
+> **unhighlightConversation**(`conversationId`): `Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md)\>
+
+Removes a highlight from a conversation.
+
+#### Parameters
+
+##### conversationId
+
+`string`
+
+Id of a modmail conversation
+
+#### Returns
+
+`Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md)\>
+
+#### Example
+
+```ts
+await reddit.modMail.unhighlightConversation('abcdef');
+```
+
+***
+
+
+
+### unmuteConversation()
+
+> **unmuteConversation**(`conversationId`): `Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+Unmutes the non mod user associated with a particular conversation.
+
+#### Parameters
+
+##### conversationId
+
+`string`
+
+Id of a modmail conversation
+
+#### Returns
+
+`Promise`\<[`ConversationResponse`](../type-aliases/ConversationResponse.md) & [`WithUserData`](../type-aliases/WithUserData.md)\>
+
+#### Example
+
+```ts
+await reddit.modMail.unmuteConversation('abcdef');
+```
+
+***
+
+
+
+### unreadConversations()
+
+> **unreadConversations**(`conversationIds`): `Promise`\<`void`\>
+
+Marks conversations as unread for the user.
+
+#### Parameters
+
+##### conversationIds
+
+`string`[]
+
+An array of ids
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Example
+
+```ts
+await reddit.modMail.unreadConversations(['abcdef', 'qwerty']);
+```
diff --git a/docs/api/public-api/classes/ModNote.md b/docs/api/public-api/classes/ModNote.md
new file mode 100644
index 00000000..c85a9347
--- /dev/null
+++ b/docs/api/public-api/classes/ModNote.md
@@ -0,0 +1,105 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: ModNote
+
+## Constructors
+
+
+
+### new ModNote()
+
+> **new ModNote**(): `ModNote`
+
+#### Returns
+
+`ModNote`
+
+## Properties
+
+
+
+### createdAt
+
+> **createdAt**: `Date`
+
+***
+
+
+
+### id
+
+> **id**: `string`
+
+***
+
+
+
+### modAction?
+
+> `optional` **modAction**: [`ModAction`](../interfaces/ModAction.md)
+
+***
+
+
+
+### operator
+
+> **operator**: `object`
+
+#### id?
+
+> `optional` **id**: `` `t2_${string}` ``
+
+#### name?
+
+> `optional` **name**: `string`
+
+***
+
+
+
+### subreddit
+
+> **subreddit**: `object`
+
+#### id?
+
+> `optional` **id**: `` `t5_${string}` ``
+
+#### name?
+
+> `optional` **name**: `string`
+
+***
+
+
+
+### type
+
+> **type**: [`ModNoteType`](../type-aliases/ModNoteType.md)
+
+***
+
+
+
+### user
+
+> **user**: `object`
+
+#### id?
+
+> `optional` **id**: `` `t2_${string}` ``
+
+#### name?
+
+> `optional` **name**: `string`
+
+***
+
+
+
+### userNote?
+
+> `optional` **userNote**: [`UserNote`](../type-aliases/UserNote.md)
diff --git a/docs/api/public-api/classes/Post.md b/docs/api/public-api/classes/Post.md
new file mode 100644
index 00000000..fb05c979
--- /dev/null
+++ b/docs/api/public-api/classes/Post.md
@@ -0,0 +1,1482 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: Post
+
+## Constructors
+
+
+
+### new Post()
+
+> **new Post**(): `Post`
+
+#### Returns
+
+`Post`
+
+## Accessors
+
+
+
+### approved
+
+#### Get Signature
+
+> **get** **approved**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### approvedAtUtc
+
+#### Get Signature
+
+> **get** **approvedAtUtc**(): `number`
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### archived
+
+#### Get Signature
+
+> **get** **archived**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### authorFlair
+
+#### Get Signature
+
+> **get** **authorFlair**(): `undefined` \| [`CommonFlair`](../type-aliases/CommonFlair.md)
+
+##### Returns
+
+`undefined` \| [`CommonFlair`](../type-aliases/CommonFlair.md)
+
+***
+
+
+
+### authorId
+
+#### Get Signature
+
+> **get** **authorId**(): `undefined` \| `` `t2_${string}` ``
+
+##### Returns
+
+`undefined` \| `` `t2_${string}` ``
+
+***
+
+
+
+### authorName
+
+#### Get Signature
+
+> **get** **authorName**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### bannedAtUtc
+
+#### Get Signature
+
+> **get** **bannedAtUtc**(): `number`
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### body
+
+#### Get Signature
+
+> **get** **body**(): `undefined` \| `string`
+
+##### Returns
+
+`undefined` \| `string`
+
+***
+
+
+
+### bodyHtml
+
+#### Get Signature
+
+> **get** **bodyHtml**(): `undefined` \| `string`
+
+##### Returns
+
+`undefined` \| `string`
+
+***
+
+
+
+### comments
+
+#### Get Signature
+
+> **get** **comments**(): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+***
+
+
+
+### createdAt
+
+#### Get Signature
+
+> **get** **createdAt**(): `Date`
+
+##### Returns
+
+`Date`
+
+***
+
+
+
+### crosspostParentId
+
+#### Get Signature
+
+> **get** **crosspostParentId**(): `undefined` \| `` `t3_${string}` ``
+
+The ID of the original post this was crossposted from. Undefined if this post is not a crosspost.
+
+##### Returns
+
+`undefined` \| `` `t3_${string}` ``
+
+***
+
+
+
+### distinguishedBy
+
+#### Get Signature
+
+> **get** **distinguishedBy**(): `undefined` \| `string`
+
+##### Returns
+
+`undefined` \| `string`
+
+***
+
+
+
+### edited
+
+#### Get Signature
+
+> **get** **edited**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### flair
+
+#### Get Signature
+
+> **get** **flair**(): `undefined` \| [`CommonFlair`](../type-aliases/CommonFlair.md)
+
+##### Returns
+
+`undefined` \| [`CommonFlair`](../type-aliases/CommonFlair.md)
+
+***
+
+
+
+### gallery
+
+#### Get Signature
+
+> **get** **gallery**(): [`GalleryMedia`](../type-aliases/GalleryMedia.md)[]
+
+Get the media in the post. Empty if the post doesn't have any media.
+
+##### Returns
+
+[`GalleryMedia`](../type-aliases/GalleryMedia.md)[]
+
+***
+
+
+
+### hidden
+
+#### Get Signature
+
+> **get** **hidden**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `` `t3_${string}` ``
+
+##### Returns
+
+`` `t3_${string}` ``
+
+***
+
+
+
+### ignoringReports
+
+#### Get Signature
+
+> **get** **ignoringReports**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### locked
+
+#### Get Signature
+
+> **get** **locked**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### modReportReasons
+
+#### Get Signature
+
+> **get** **modReportReasons**(): `string`[]
+
+##### Deprecated
+
+Use [modReports](#modreports) to retain each report's author.
+
+##### Returns
+
+`string`[]
+
+***
+
+
+
+### modReports
+
+#### Get Signature
+
+> **get** **modReports**(): [`ModeratorReport`](../type-aliases/ModeratorReport.md)[]
+
+##### Returns
+
+[`ModeratorReport`](../type-aliases/ModeratorReport.md)[]
+
+***
+
+
+
+### nsfw
+
+#### Get Signature
+
+> **get** **nsfw**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### numberOfComments
+
+#### Get Signature
+
+> **get** **numberOfComments**(): `number`
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### numberOfReports
+
+#### Get Signature
+
+> **get** **numberOfReports**(): `number`
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### permalink
+
+#### Get Signature
+
+> **get** **permalink**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### pollData
+
+#### Get Signature
+
+> **get** **pollData**(): `undefined` \| [`PollData`](../type-aliases/PollData.md)
+
+Poll data for the post, if the post is a poll. Undefined otherwise.
+
+##### Returns
+
+`undefined` \| [`PollData`](../type-aliases/PollData.md)
+
+***
+
+
+
+### quarantined
+
+#### Get Signature
+
+> **get** **quarantined**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### removed
+
+#### Get Signature
+
+> **get** **removed**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### removedBy
+
+#### Get Signature
+
+> **get** **removedBy**(): `undefined` \| `string`
+
+Who removed this object (username)
+
+##### Returns
+
+`undefined` \| `string`
+
+***
+
+
+
+### removedByCategory
+
+#### Get Signature
+
+> **get** **removedByCategory**(): `undefined` \| `string`
+
+who/what removed this object. It will return one of the following:
+- "anti_evil_ops": object is removed by a aeops member
+- "author": object is removed by author of the post
+- "automod_filtered": object is filtered by automod
+- "community_ops": object is removed by a community team member
+- "content_takedown": object is removed due to content violation
+- "copyright_takedown": object is removed due to copyright violation
+- "deleted": object is deleted
+- "moderator": object is removed by a mod of the sub
+- "reddit": object is removed by anyone else
+- undefined: object is not removed
+
+##### Returns
+
+`undefined` \| `string`
+
+***
+
+
+
+### score
+
+#### Get Signature
+
+> **get** **score**(): `number`
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### secureMedia
+
+#### Get Signature
+
+> **get** **secureMedia**(): `undefined` \| [`SecureMedia`](../type-aliases/SecureMedia.md)
+
+##### Returns
+
+`undefined` \| [`SecureMedia`](../type-aliases/SecureMedia.md)
+
+***
+
+
+
+### spam
+
+#### Get Signature
+
+> **get** **spam**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### spoiler
+
+#### Get Signature
+
+> **get** **spoiler**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### stickied
+
+#### Get Signature
+
+> **get** **stickied**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### subredditId
+
+#### Get Signature
+
+> **get** **subredditId**(): `` `t5_${string}` ``
+
+##### Returns
+
+`` `t5_${string}` ``
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### thumbnail
+
+#### Get Signature
+
+> **get** **thumbnail**(): `undefined` \| \{ `height`: `number`; `url`: `string`; `width`: `number`; \}
+
+##### Returns
+
+`undefined` \| \{ `height`: `number`; `url`: `string`; `width`: `number`; \}
+
+***
+
+
+
+### title
+
+#### Get Signature
+
+> **get** **title**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### url
+
+#### Get Signature
+
+> **get** **url**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### userReportReasons
+
+#### Get Signature
+
+> **get** **userReportReasons**(): `string`[]
+
+##### Returns
+
+`string`[]
+
+## Methods
+
+
+
+### addComment()
+
+> **addComment**(`opts`): `Promise`\<[`Comment`](Comment.md)\>
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`CommentSubmissionOptions`](../type-aliases/CommentSubmissionOptions.md)\>
+
+#### Returns
+
+`Promise`\<[`Comment`](Comment.md)\>
+
+***
+
+
+
+### addRemovalNote()
+
+> **addRemovalNote**(`opts`): `Promise`\<`void`\>
+
+Add a mod note for why the post was removed
+
+#### Parameters
+
+##### opts
+
+###### modNote?
+
+`string`
+
+###### reasonId
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### approve()
+
+> **approve**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### crosspost()
+
+> **crosspost**(`opts`): `Promise`\<`Post`\>
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<`Omit`\<[`CrosspostOptions`](../type-aliases/CrosspostOptions.md), `"postId"`\>\>
+
+#### Returns
+
+`Promise`\<`Post`\>
+
+***
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### distinguish()
+
+> **distinguish**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### distinguishAsAdmin()
+
+> **distinguishAsAdmin**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### edit()
+
+> **edit**(`opts`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`PostTextOptions`](../type-aliases/PostTextOptions.md)\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### filter()
+
+> **filter**(`options`?): `Promise`\<`void`\>
+
+**`Experimental`**
+
+Filters a post. When a post is filtered, it is added to the ModQueue for review, and in addition:
+- if
+
+#### Parameters
+
+##### options?
+
+`FilterOptions`
+
+The options for this filter action.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A Promise that resolves if the post was filtered successfully.
+
+***
+
+
+
+### getAuthor()
+
+> **getAuthor**(): `Promise`\<`undefined` \| [`User`](User.md)\>
+
+#### Returns
+
+`Promise`\<`undefined` \| [`User`](User.md)\>
+
+***
+
+
+
+### getCurrentUserPollOption()
+
+> **getCurrentUserPollOption**(): `Promise`\<`undefined` \| [`PollOption`](../type-aliases/PollOption.md)\>
+
+Get the poll option the authenticated user selected for this post.
+Returns undefined if the post is not a poll or the user has not voted.
+
+This method will get the poll option for the app account by default.
+To get the poll option for a user, please contact Reddit.
+
+#### Returns
+
+`Promise`\<`undefined` \| [`PollOption`](../type-aliases/PollOption.md)\>
+
+***
+
+
+
+### getCustomPostStyles()
+
+> **getCustomPostStyles**(): `Promise`\<`StrictRequired`\<`CustomPostStylesInput`\>\>
+
+**`Experimental`**
+
+Get the custom styles for a custom post.
+
+#### Returns
+
+`Promise`\<`StrictRequired`\<`CustomPostStylesInput`\>\>
+
+***
+
+
+
+### getDuplicates()
+
+> **getDuplicates**(`opts`?): [`Listing`](Listing.md)\<`Post`\>
+
+#### Parameters
+
+##### opts?
+
+`Omit`\<[`GetDuplicatesOptions`](../type-aliases/GetDuplicatesOptions.md), `"postId"`\>
+
+#### Returns
+
+[`Listing`](Listing.md)\<`Post`\>
+
+***
+
+
+
+### getEnrichedThumbnail()
+
+> **getEnrichedThumbnail**(): `Promise`\<`undefined` \| [`EnrichedThumbnail`](../type-aliases/EnrichedThumbnail.md)\>
+
+Get a thumbnail that contains a preview image and also contains a blurred preview for
+NSFW images. The thumbnail returned has higher resolution than Post.thumbnail.
+Returns undefined if the post doesn't have a thumbnail
+
+#### Returns
+
+`Promise`\<`undefined` \| [`EnrichedThumbnail`](../type-aliases/EnrichedThumbnail.md)\>
+
+#### Throws
+
+Throws an error if the thumbnail could not be fetched
+
+#### Example
+
+```ts
+// from a menu action, form, scheduler, trigger, custom post click event, etc
+const post = await context.reddit.getPostById(context.postId);
+const enrichedThumbnail = await post.getEnrichedThumbnail();
+```
+
+***
+
+
+
+### getPostData()
+
+> **getPostData**(): `Promise`\<`undefined` \| [`JSONObject`](../type-aliases/JSONObject.md)\>
+
+Get the postData for the custom post.
+
+#### Returns
+
+`Promise`\<`undefined` \| [`JSONObject`](../type-aliases/JSONObject.md)\>
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+const postData = await post.getPostData();
+```
+
+***
+
+
+
+### hide()
+
+> **hide**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### ignoreReports()
+
+> **ignoreReports**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### isApproved()
+
+> **isApproved**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isArchived()
+
+> **isArchived**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isDistinguishedBy()
+
+> **isDistinguishedBy**(): `undefined` \| `string`
+
+#### Returns
+
+`undefined` \| `string`
+
+***
+
+
+
+### isEdited()
+
+> **isEdited**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isHidden()
+
+> **isHidden**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isIgnoringReports()
+
+> **isIgnoringReports**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isLocked()
+
+> **isLocked**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isNsfw()
+
+> **isNsfw**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isQuarantined()
+
+> **isQuarantined**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isRemoved()
+
+> **isRemoved**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isSpam()
+
+> **isSpam**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isSpoiler()
+
+> **isSpoiler**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### isStickied()
+
+> **isStickied**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+***
+
+
+
+### lock()
+
+> **lock**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### markAsNsfw()
+
+> **markAsNsfw**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### markAsSpoiler()
+
+> **markAsSpoiler**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### mergePostData()
+
+> **mergePostData**(`postData`): `Promise`\<`void`\>
+
+Merge the postData on a custom post with the postData specified in the input. This performs a shallow merge.
+
+#### Parameters
+
+##### postData
+
+[`JSONObject`](../type-aliases/JSONObject.md)
+
+Represents the postData to be merged with the existing postData.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the postData could not be merged.
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+
+// Existing postData: { currentScore: 55, settings: { theme: 'dark', fontSize: 12 } }
+
+await post.mergePostData({ settings: { fontSize: 14 } });
+// Result: { currentScore: 55, settings: { fontSize: 14 } }
+```
+
+***
+
+
+
+### remove()
+
+> **remove**(`isSpam`?): `Promise`\<`void`\>
+
+#### Parameters
+
+##### isSpam?
+
+`boolean`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### setCustomPostStyles()
+
+> **setCustomPostStyles**(`styles`): `Promise`\<`void`\>
+
+**`Experimental`**
+
+Set the custom styles for a custom post.
+
+#### Parameters
+
+##### styles
+
+The styles to set for the post. If a value isn't specified, its previous value
+ will be preserved. If `undefined` is passed, all custom styles will be removed.
+
+`undefined` | `CustomPostStylesInput`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### setPostData()
+
+> **setPostData**(`postData`): `Promise`\<`void`\>
+
+Set the postData for the custom post. This will replace the existing
+postData with the postData specified in the input.
+
+#### Parameters
+
+##### postData
+
+[`JSONObject`](../type-aliases/JSONObject.md)
+
+Represents the postData to be set, eg: { currentScore: 55, secretWord: 'barbeque' }
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the postData could not be set.
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+
+// Existing postData: { settings: { theme: 'dark', fontSize: 12 } }
+
+await post.setPostData({
+ currentScore: 55,
+ secretWord: 'barbeque',
+});
+// Result: { currentScore: 55, secretWord: 'barbeque' }
+```
+
+***
+
+
+
+### setSuggestedCommentSort()
+
+> **setSuggestedCommentSort**(`suggestedSort`): `Promise`\<`void`\>
+
+Set the suggested sort for comments on a Post.
+
+#### Parameters
+
+##### suggestedSort
+
+[`PostSuggestedCommentSort`](../type-aliases/PostSuggestedCommentSort.md)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the suggested sort could not be set.
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+await post.setSuggestedCommentSort("NEW");
+```
+
+***
+
+
+
+### setTextFallback()
+
+> **setTextFallback**(`opts`): `Promise`\<`void`\>
+
+Set a text fallback for the custom post.
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`CustomPostTextFallbackOptions`](../type-aliases/CustomPostTextFallbackOptions.md)\>
+
+A text or a richtext to render in a fallback
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the fallback could not be set.
+
+#### Example
+
+```ts
+// from a menu action, form, scheduler, trigger, custom post click event, etc
+const newTextFallback = { text: 'This is an updated text fallback' };
+const post = await context.reddit.getPostById(context.postId);
+await post.setTextFallback(newTextFallback);
+```
+
+***
+
+
+
+### snoozeReports()
+
+> **snoozeReports**(`reason`): `Promise`\<`void`\>
+
+Snooze subsequent reports with the given reason from the same users for the next 7 days.
+Only works for free-form reports.
+
+#### Parameters
+
+##### reason
+
+`string`
+
+The report reason to snooze.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### sticky()
+
+> **sticky**(`position`?): `Promise`\<`void`\>
+
+#### Parameters
+
+##### position?
+
+`1` | `2` | `3` | `4`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<`Post`, `"subredditName"` \| `"title"` \| `"nsfw"` \| `"spoiler"` \| `"id"` \| `"subredditId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"authorId"` \| `"authorName"` \| `"body"` \| `"bodyHtml"` \| `"thumbnail"` \| `"score"` \| `"numberOfComments"` \| `"numberOfReports"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"removedBy"` \| `"removedByCategory"` \| `"archived"` \| `"edited"` \| `"locked"` \| `"quarantined"` \| `"hidden"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"flair"` \| `"authorFlair"` \| `"secureMedia"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"crosspostParentId"`\>
+
+#### Returns
+
+`Pick`\<`Post`, `"subredditName"` \| `"title"` \| `"nsfw"` \| `"spoiler"` \| `"id"` \| `"subredditId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"authorId"` \| `"authorName"` \| `"body"` \| `"bodyHtml"` \| `"thumbnail"` \| `"score"` \| `"numberOfComments"` \| `"numberOfReports"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"removedBy"` \| `"removedByCategory"` \| `"archived"` \| `"edited"` \| `"locked"` \| `"quarantined"` \| `"hidden"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"flair"` \| `"authorFlair"` \| `"secureMedia"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"crosspostParentId"`\>
+
+***
+
+
+
+### undistinguish()
+
+> **undistinguish**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unhide()
+
+> **unhide**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unignoreReports()
+
+> **unignoreReports**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unlock()
+
+> **unlock**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unmarkAsNsfw()
+
+> **unmarkAsNsfw**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unmarkAsSpoiler()
+
+> **unmarkAsSpoiler**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unsnoozeReports()
+
+> **unsnoozeReports**(`reason`): `Promise`\<`void`\>
+
+Unsnooze reports with the given reason.
+Only works for free-form reports.
+
+#### Parameters
+
+##### reason
+
+`string`
+
+The report reason to unsnooze.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unsticky()
+
+> **unsticky**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### updateCrowdControlLevel()
+
+> **updateCrowdControlLevel**(`level`): `Promise`\<`void`\>
+
+Updates the crowd control level of the post to hide comments accordingly.
+
+#### Parameters
+
+##### level
+
+[`CrowdControlLevel`](../type-aliases/CrowdControlLevel.md)
+
+The crowd control level to set. See [CrowdControlLevel](../type-aliases/CrowdControlLevel.md) for more information.
+
+#### Returns
+
+`Promise`\<`void`\>
diff --git a/docs/api/public-api/classes/PostFlairSettings.md b/docs/api/public-api/classes/PostFlairSettings.md
new file mode 100644
index 00000000..77268881
--- /dev/null
+++ b/docs/api/public-api/classes/PostFlairSettings.md
@@ -0,0 +1,33 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: PostFlairSettings
+
+## Constructors
+
+
+
+### new PostFlairSettings()
+
+> **new PostFlairSettings**(): `PostFlairSettings`
+
+#### Returns
+
+`PostFlairSettings`
+
+## Properties
+
+
+
+### isEnabled?
+
+> `optional` **isEnabled**: `boolean`
+
+***
+
+
+
+### isSelfAssignabled?
+
+> `optional` **isSelfAssignabled**: `boolean`
diff --git a/docs/api/public-api/classes/PostFlairWidget.md b/docs/api/public-api/classes/PostFlairWidget.md
new file mode 100644
index 00000000..fd9cabac
--- /dev/null
+++ b/docs/api/public-api/classes/PostFlairWidget.md
@@ -0,0 +1,163 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: PostFlairWidget
+
+## Extends
+
+- [`Widget`](Widget.md)
+
+## Constructors
+
+
+
+### new PostFlairWidget()
+
+> **new PostFlairWidget**(`widgetData`, `subredditName`): `PostFlairWidget`
+
+#### Parameters
+
+##### widgetData
+
+`GetWidgetsResponse_WidgetItem`
+
+##### subredditName
+
+`string`
+
+#### Returns
+
+`PostFlairWidget`
+
+#### Overrides
+
+[`Widget`](Widget.md).[`constructor`](Widget.md#constructor)
+
+## Accessors
+
+
+
+### display
+
+#### Get Signature
+
+> **get** **display**(): `"list"` \| `"cloud"`
+
+##### Returns
+
+`"list"` \| `"cloud"`
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`id`](Widget.md#id)
+
+***
+
+
+
+### name
+
+#### Get Signature
+
+> **get** **name**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`name`](Widget.md#name)
+
+***
+
+
+
+### styles
+
+#### Get Signature
+
+> **get** **styles**(): `WidgetStyles`
+
+##### Returns
+
+`WidgetStyles`
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`subredditName`](Widget.md#subredditname)
+
+***
+
+
+
+### templates
+
+#### Get Signature
+
+> **get** **templates**(): `GetWidgetsResponse_WidgetItem_PostFlairTemplate`[]
+
+##### Returns
+
+`GetWidgetsResponse_WidgetItem_PostFlairTemplate`[]
+
+## Methods
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`delete`](Widget.md#delete)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`PostFlairWidget`, `"styles"` \| `"templates"` \| `"display"`\>
+
+#### Returns
+
+`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`PostFlairWidget`, `"styles"` \| `"templates"` \| `"display"`\>
+
+#### Overrides
+
+[`Widget`](Widget.md).[`toJSON`](Widget.md#tojson)
diff --git a/docs/api/public-api/classes/PrivateMessage.md b/docs/api/public-api/classes/PrivateMessage.md
new file mode 100644
index 00000000..6bebf2f7
--- /dev/null
+++ b/docs/api/public-api/classes/PrivateMessage.md
@@ -0,0 +1,99 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: PrivateMessage
+
+## Constructors
+
+
+
+### new PrivateMessage()
+
+> **new PrivateMessage**(): `PrivateMessage`
+
+#### Returns
+
+`PrivateMessage`
+
+## Accessors
+
+
+
+### body
+
+#### Get Signature
+
+> **get** **body**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### bodyHtml
+
+#### Get Signature
+
+> **get** **bodyHtml**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### created
+
+#### Get Signature
+
+> **get** **created**(): `Date`
+
+##### Returns
+
+`Date`
+
+***
+
+
+
+### from
+
+#### Get Signature
+
+> **get** **from**(): `PrivateMessageAuthor`
+
+##### Returns
+
+`PrivateMessageAuthor`
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `Tid`
+
+##### Returns
+
+`Tid`
+
+## Methods
+
+
+
+### markAsRead()
+
+> **markAsRead**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
diff --git a/docs/api/public-api/classes/RedditAPIClient.md b/docs/api/public-api/classes/RedditAPIClient.md
new file mode 100644
index 00000000..9534f97a
--- /dev/null
+++ b/docs/api/public-api/classes/RedditAPIClient.md
@@ -0,0 +1,4075 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: RedditAPIClient
+
+The Reddit API Client
+
+To use the Reddit API Client, add it to the plugin configuration at the top of the file.
+
+## Example
+
+```ts
+
+Devvit.configure({
+ redditAPI: true,
+ // other plugins
+})
+
+// use within one of our capability handlers e.g. Menu Actions, Triggers, Scheduled Job Type, etc
+async (event, context) => {
+ const subreddit = await context.reddit.getSubredditById(context.subredditId);
+ context.reddit.submitPost({
+ subredditName: subreddit.name,
+ title: 'test post',
+ text: 'test body',
+ })
+ // additional code
+}
+```
+
+## Extends
+
+- [`RedditClient`](RedditClient.md)
+
+## Constructors
+
+
+
+### new RedditAPIClient()
+
+> **new RedditAPIClient**(): `RedditAPIClient`
+
+#### Returns
+
+`RedditAPIClient`
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`constructor`](RedditClient.md#constructor)
+
+## Accessors
+
+
+
+### modMail
+
+#### Get Signature
+
+> **get** **modMail**(): [`ModMailService`](ModMailService.md)
+
+Get ModMail API object
+
+##### Example
+
+```ts
+await reddit.modMail.reply({
+ body: "Here is my message",
+ conversationId: "abcd42";
+})
+```
+
+##### Returns
+
+[`ModMailService`](ModMailService.md)
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`modMail`](RedditClient.md#modmail)
+
+## Methods
+
+
+
+### addEditorToWikiPage()
+
+> **addEditorToWikiPage**(`subredditName`, `page`, `username`): `Promise`\<`void`\>
+
+Add an editor to a wiki page.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit the wiki is in.
+
+##### page
+
+`string`
+
+The name of the wiki page to add the editor to.
+
+##### username
+
+`string`
+
+The username of the user to add as an editor.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`addEditorToWikiPage`](RedditClient.md#addeditortowikipage)
+
+***
+
+
+
+### addModNote()
+
+> **addModNote**(`options`): `Promise`\<[`ModNote`](ModNote.md)\>
+
+Add a mod note.
+
+#### Parameters
+
+##### options
+
+`Prettify`
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`ModNote`](ModNote.md)\>
+
+A Promise that resolves if the mod note was successfully added.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`addModNote`](RedditClient.md#addmodnote)
+
+***
+
+
+
+### addRemovalNote()
+
+> **addRemovalNote**(`options`): `Promise`\<`void`\>
+
+Add a mod note for why a post or comment was removed
+
+#### Parameters
+
+##### options
+
+`Prettify`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`addRemovalNote`](RedditClient.md#addremovalnote)
+
+***
+
+
+
+### addSubredditRemovalReason()
+
+> **addSubredditRemovalReason**(`subredditName`, `options`): `Promise`\<`string`\>
+
+Add a removal reason to a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+Name of the subreddit (the 'r/' prefix is optional).
+
+##### options
+
+Options.
+
+###### message
+
+`string`
+
+The message associated with the removal reason.
+
+###### title
+
+`string`
+
+The title of the removal reason.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+Removal Reason ID
+
+#### Example
+
+```ts
+const newReason = await reddit.addSubredditRemovalReasons(
+ 'askReddit',
+ {
+ title: 'Spam',
+ message: 'This is spam!'
+ }
+);
+console.log(newReason.id)
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`addSubredditRemovalReason`](RedditClient.md#addsubredditremovalreason)
+
+***
+
+
+
+### addWidget()
+
+> **addWidget**(`widgetData`): `Promise`\<[`Widget`](Widget.md)\>
+
+Add a widget to a subreddit.
+
+#### Parameters
+
+##### widgetData
+
+[`AddWidgetData`](../type-aliases/AddWidgetData.md)
+
+The data for the widget to add.
+
+#### Returns
+
+`Promise`\<[`Widget`](Widget.md)\>
+
+- The added Widget object.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`addWidget`](RedditClient.md#addwidget)
+
+***
+
+
+
+### addWikiContributor()
+
+> **addWikiContributor**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Add a user as a wiki contributor for a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to add as a wiki contributor. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to add the user as a wiki contributor. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`addWikiContributor`](RedditClient.md#addwikicontributor)
+
+***
+
+
+
+### approve()
+
+> **approve**(`id`): `Promise`\<`void`\>
+
+Approve a post or comment.
+
+#### Parameters
+
+##### id
+
+`string`
+
+The id of the post (t3_) or comment (t1_) to approve.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Example
+
+```ts
+await reddit.approve('t3_123456');
+await reddit.approve('t1_123456');
+```
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`approve`](RedditClient.md#approve)
+
+***
+
+
+
+### approveUser()
+
+> **approveUser**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Approve a user to post in a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to approve. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to approve the user in. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`approveUser`](RedditClient.md#approveuser)
+
+***
+
+
+
+### banUser()
+
+> **banUser**(`options`): `Promise`\<`void`\>
+
+Ban a user from a subreddit.
+
+#### Parameters
+
+##### options
+
+[`BanUserOptions`](../type-aliases/BanUserOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`banUser`](RedditClient.md#banuser)
+
+***
+
+
+
+### banWikiContributor()
+
+> **banWikiContributor**(`options`): `Promise`\<`void`\>
+
+Ban a user from contributing to the wiki on a subreddit.
+
+#### Parameters
+
+##### options
+
+[`BanWikiContributorOptions`](../type-aliases/BanWikiContributorOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`banWikiContributor`](RedditClient.md#banwikicontributor)
+
+***
+
+
+
+### createPostFlairTemplate()
+
+> **createPostFlairTemplate**(`options`): `Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+Create a post flair template for a subreddit.
+
+#### Parameters
+
+##### options
+
+[`CreateFlairTemplateOptions`](../type-aliases/CreateFlairTemplateOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+The created FlairTemplate object.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`createPostFlairTemplate`](RedditClient.md#createpostflairtemplate)
+
+***
+
+
+
+### createRule()
+
+> **createRule**(`subredditName`, `options`): `Promise`\<`void`\>
+
+Create a new rule in a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to add the rule to.
+
+##### options
+
+[`CreateRuleOptions`](../type-aliases/CreateRuleOptions.md)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`createRule`](RedditClient.md#createrule)
+
+***
+
+
+
+### createShareUrl()
+
+> **createShareUrl**(`url`): `Promise`\<`string`\>
+
+Create a short share URL for a Reddit location.
+
+Valid inputs:
+- Absolute Reddit URLs without a query string (e.g., https://reddit.com/r/gamesonreddit)
+- URLs with a query string limited to: utm_source, utm_medium, devvitshare
+
+#### Parameters
+
+##### url
+
+`string`
+
+Full Reddit URL to shorten. Must be absolute and either have no query string or only the allowed query params.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+The shortened share URL (e.g., 'https://reddit.com/s/abc123').
+
+#### Note
+
+old.reddit.com URLs can be shortened but they will redirect to reddit.com.
+
+#### Throws
+
+If the input URL is invalid, contains unsupported query parameters, or the share URL cannot be created.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`createShareUrl`](RedditClient.md#createshareurl)
+
+***
+
+
+
+### createUserFlairTemplate()
+
+> **createUserFlairTemplate**(`options`): `Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+Create a user flair template for a subreddit.
+
+#### Parameters
+
+##### options
+
+[`CreateFlairTemplateOptions`](../type-aliases/CreateFlairTemplateOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+The created FlairTemplate object.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`createUserFlairTemplate`](RedditClient.md#createuserflairtemplate)
+
+***
+
+
+
+### createWikiPage()
+
+> **createWikiPage**(`options`): `Promise`\<[`WikiPage`](WikiPage.md)\>
+
+Create a new wiki page for a subreddit.
+
+#### Parameters
+
+##### options
+
+[`CreateWikiPageOptions`](../type-aliases/CreateWikiPageOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`WikiPage`](WikiPage.md)\>
+
+- The created WikiPage object.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`createWikiPage`](RedditClient.md#createwikipage)
+
+***
+
+
+
+### crosspost()
+
+> **crosspost**(`options`): `Promise`\<[`Post`](Post.md)\>
+
+Crossposts a post to a subreddit.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`CrosspostOptions`](../type-aliases/CrosspostOptions.md), `"postId"`\> & `object`
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+- A Promise that resolves to a Post object.
+
+#### See
+
+ - [()\|submitPost()](RedditClient.md#submitpost)
+ - [()\|submitCustomPost()](RedditClient.md#submitcustompost)
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`crosspost`](RedditClient.md#crosspost)
+
+***
+
+
+
+### deleteFlairTemplate()
+
+> **deleteFlairTemplate**(`subredditName`, `flairTemplateId`): `Promise`\<`void`\>
+
+Delete a flair template from a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to delete the flair template from.
+
+##### flairTemplateId
+
+`string`
+
+The ID of the flair template to delete.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`deleteFlairTemplate`](RedditClient.md#deleteflairtemplate)
+
+***
+
+
+
+### deleteModNote()
+
+> **deleteModNote**(`options`): `Promise`\<`boolean`\>
+
+Delete a mod note.
+
+#### Parameters
+
+##### options
+
+`Prettify`
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+True if it was deleted successfully; false otherwise.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`deleteModNote`](RedditClient.md#deletemodnote)
+
+***
+
+
+
+### deleteSubredditRemovalReason()
+
+> **deleteSubredditRemovalReason**(`subredditName`, `reasonId`): `Promise`\<`void`\>
+
+Delete a removal reason from a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+Name of the subreddit (the 'r/' prefix is optional).
+
+##### reasonId
+
+`string`
+
+ID of the removal reason (from get or add).
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Example
+
+```ts
+await reddit.deleteSubredditRemovalReason('askReddit', 'uuid-abc');
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`deleteSubredditRemovalReason`](RedditClient.md#deletesubredditremovalreason)
+
+***
+
+
+
+### deleteWidget()
+
+> **deleteWidget**(`subredditName`, `widgetId`): `Promise`\<`void`\>
+
+Delete a widget from a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to delete the widget from.
+
+##### widgetId
+
+`string`
+
+The ID of the widget to delete.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`deleteWidget`](RedditClient.md#deletewidget)
+
+***
+
+
+
+### editFlairTemplate()
+
+> **editFlairTemplate**(`options`): `Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+Edit a flair template for a subreddit. This can be either a post or user flair template.
+Note: If you leave any of the options fields as undefined, they will reset to their default values.
+
+#### Parameters
+
+##### options
+
+[`EditFlairTemplateOptions`](../type-aliases/EditFlairTemplateOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+The edited FlairTemplate object.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`editFlairTemplate`](RedditClient.md#editflairtemplate)
+
+***
+
+
+
+### filter()
+
+> **filter**(`id`, `options`?): `Promise`\<`void`\>
+
+**`Experimental`**
+
+Filters a post or comment. When a post or comment is filtered, it is added to the ModQueue for review, and in addition:
+- if
+
+#### Parameters
+
+##### id
+
+The id of the post (t3_) or comment (t1_) to filter.
+
+`` `t3_${string}` `` | `` `t1_${string}` ``
+
+##### options?
+
+`FilterOptions`
+
+The options for this filter action.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A Promise that resolves if the post or comment was filtered successfully.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`filter`](RedditClient.md#filter)
+
+***
+
+
+
+### getApprovedUsers()
+
+> **getApprovedUsers**(`options`): [`Listing`](Listing.md)\<[`SubredditContributorUser`](SubredditContributorUser.md)\>
+
+Get a list of users who have been approved to post in a subreddit.
+
+#### Parameters
+
+##### options
+
+`GetSubredditUsersOptions`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditContributorUser`](SubredditContributorUser.md)\>
+
+A Listing of SubredditContributorUser objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getApprovedUsers`](RedditClient.md#getapprovedusers)
+
+***
+
+
+
+### getAppUser()
+
+> **getAppUser**(): `Promise`\<[`User`](User.md)\>
+
+Get the user that the app runs as on the provided metadata.
+
+#### Returns
+
+`Promise`\<[`User`](User.md)\>
+
+A Promise that resolves to a User object.
+
+#### Example
+
+```ts
+const user = await reddit.getAppUser(metadata);
+```
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`getAppUser`](RedditClient.md#getappuser)
+
+***
+
+
+
+### getBannedUsers()
+
+> **getBannedUsers**(`options`): [`Listing`](Listing.md)\<[`SubredditBannedUser`](SubredditBannedUser.md)\>
+
+Get a list of users who are banned from a subreddit.
+
+#### Parameters
+
+##### options
+
+`GetSubredditUsersOptions`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditBannedUser`](SubredditBannedUser.md)\>
+
+A Listing of SubredditBannedUser objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getBannedUsers`](RedditClient.md#getbannedusers)
+
+***
+
+
+
+### getBannedWikiContributors()
+
+> **getBannedWikiContributors**(`options`): [`Listing`](Listing.md)\<[`SubredditWikiBannedUser`](SubredditWikiBannedUser.md)\>
+
+Get a list of users who are banned from contributing to the wiki on a subreddit.
+
+#### Parameters
+
+##### options
+
+`GetSubredditUsersOptions`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditWikiBannedUser`](SubredditWikiBannedUser.md)\>
+
+A Listing of SubredditWikiBannedUser objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getBannedWikiContributors`](RedditClient.md#getbannedwikicontributors)
+
+***
+
+
+
+### getBestPosts()
+
+> **getBestPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of best posts from the front page.
+This method will get the front page for the app account by default.
+To get the front page for a user, please contact Reddit.
+
+#### Parameters
+
+##### options
+
+[`ListingFetchOptions`](../type-aliases/ListingFetchOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const posts = await reddit.getBestPosts({
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getBestPosts`](RedditClient.md#getbestposts)
+
+***
+
+
+
+### getCommentById()
+
+> **getCommentById**(`id`): `Promise`\<[`Comment`](Comment.md)\>
+
+Get a [Comment](Comment.md) object by ID
+
+#### Parameters
+
+##### id
+
+`string`
+
+The ID (starting with t1_) of the comment to retrieve. e.g. t1_1qjpg
+
+#### Returns
+
+`Promise`\<[`Comment`](Comment.md)\>
+
+A Promise that resolves to a Comment object.
+
+#### Example
+
+```ts
+const comment = await reddit.getCommentById('t1_1qjpg');
+```
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`getCommentById`](RedditClient.md#getcommentbyid)
+
+***
+
+
+
+### getComments()
+
+> **getComments**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Get a list of comments from a specific post or comment.
+
+#### Parameters
+
+##### options
+
+[`GetCommentsOptions`](../type-aliases/GetCommentsOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+A Listing of Comment objects.
+
+#### Example
+
+```ts
+const comments = await reddit.getComments({
+ postId: 't3_1qjpg',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getComments`](RedditClient.md#getcomments)
+
+***
+
+
+
+### getCommentsAndPostsByUser()
+
+> **getCommentsAndPostsByUser**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Get a list of posts and comments from a specific user.
+
+#### Parameters
+
+##### options
+
+[`GetUserOverviewOptions`](../type-aliases/GetUserOverviewOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+A Listing of `Post` and `Comment` objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getCommentsAndPostsByUser`](RedditClient.md#getcommentsandpostsbyuser)
+
+***
+
+
+
+### getCommentsByUser()
+
+> **getCommentsByUser**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Get a list of comments by a specific user.
+
+#### Parameters
+
+##### options
+
+[`GetCommentsByUserOptions`](../type-aliases/GetCommentsByUserOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+A Listing of Comment objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getCommentsByUser`](RedditClient.md#getcommentsbyuser)
+
+***
+
+
+
+### getControversialPosts()
+
+> **getControversialPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of controversial posts from a specific subreddit.
+
+#### Parameters
+
+##### options
+
+[`GetPostsOptionsWithTimeframe`](../type-aliases/GetPostsOptionsWithTimeframe.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const posts = await reddit.getControversialPosts({
+ subredditName: 'memes',
+ timeframe: 'day',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getControversialPosts`](RedditClient.md#getcontroversialposts)
+
+***
+
+
+
+### getCurrentSubreddit()
+
+> **getCurrentSubreddit**(): `Promise`\<[`Subreddit`](Subreddit.md)\>
+
+Retrieves the current subreddit.
+
+#### Returns
+
+`Promise`\<[`Subreddit`](Subreddit.md)\>
+
+A Promise that resolves a Subreddit object.
+
+#### Example
+
+```ts
+const currentSubreddit = await reddit.getCurrentSubreddit();
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getCurrentSubreddit`](RedditClient.md#getcurrentsubreddit)
+
+***
+
+
+
+### getCurrentSubredditName()
+
+> **getCurrentSubredditName**(): `Promise`\<`string`\>
+
+Retrieves the name of the current subreddit.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+A Promise that resolves a string representing the current subreddit's name.
+
+#### Example
+
+```ts
+const currentSubredditName = await reddit.getCurrentSubredditName();
+```
+
+***
+
+
+
+### getCurrentUser()
+
+> **getCurrentUser**(): `Promise`\<`undefined` \| [`User`](User.md)\>
+
+Get the current calling user.
+Resolves to undefined for logged-out custom post renders.
+
+#### Returns
+
+`Promise`\<`undefined` \| [`User`](User.md)\>
+
+A Promise that resolves to a User object or undefined
+
+#### Example
+
+```ts
+const user = await reddit.getCurrentUser();
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getCurrentUser`](RedditClient.md#getcurrentuser)
+
+***
+
+
+
+### getCurrentUsername()
+
+> **getCurrentUsername**(): `Promise`\<`undefined` \| `string`\>
+
+Get the current calling user's username.
+Resolves to undefined for logged-out custom post renders.
+
+#### Returns
+
+`Promise`\<`undefined` \| `string`\>
+
+A Promise that resolves to a string representing the username or undefined
+
+#### Example
+
+```ts
+const username = await reddit.getCurrentUsername();
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getCurrentUsername`](RedditClient.md#getcurrentusername)
+
+***
+
+
+
+### getDuplicatesForPost()
+
+> **getDuplicatesForPost**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get posts that shared the same link as the given post.
+
+#### Parameters
+
+##### options
+
+[`GetDuplicatesOptions`](../type-aliases/GetDuplicatesOptions.md)
+
+Options for the request. Post ID is required, eveything else is optional.
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const duplicates = await reddit.getDuplicatesForPost({
+ postId: 't3_abc123',
+ sort: 'num_comments',
+ limit: 100
+}).all();
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getDuplicatesForPost`](RedditClient.md#getduplicatesforpost)
+
+***
+
+
+
+### getEdited()
+
+#### Call Signature
+
+> **getEdited**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things that have been edited recently.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getEdited();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getEdited({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getEdited`](RedditClient.md#getedited)
+
+#### Call Signature
+
+> **getEdited**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things that have been edited recently.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getEdited();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getEdited({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getEdited`](RedditClient.md#getedited)
+
+#### Call Signature
+
+> **getEdited**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things that have been edited recently.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getEdited();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getEdited({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getEdited`](RedditClient.md#getedited)
+
+***
+
+
+
+### getHotPosts()
+
+> **getHotPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of hot posts from a specific subreddit.
+
+#### Parameters
+
+##### options
+
+[`GetHotPostsOptions`](../type-aliases/GetHotPostsOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const posts = await reddit.getHotPosts({
+ subredditName: 'memes',
+ timeframe: 'day',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getHotPosts`](RedditClient.md#gethotposts)
+
+***
+
+
+
+### getMessages()
+
+> **getMessages**(`options`): `Promise`\<[`Listing`](Listing.md)\<[`PrivateMessage`](PrivateMessage.md)\>\>
+
+Get private messages sent to the currently authenticated user.
+
+#### Parameters
+
+##### options
+
+`Prettify`
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`Listing`](Listing.md)\<[`PrivateMessage`](PrivateMessage.md)\>\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getMessages`](RedditClient.md#getmessages)
+
+***
+
+
+
+### getModerationLog()
+
+> **getModerationLog**(`options`): [`Listing`](Listing.md)\<[`ModAction`](../interfaces/ModAction.md)\>
+
+Get the moderation log for a subreddit.
+
+#### Parameters
+
+##### options
+
+[`GetModerationLogOptions`](../type-aliases/GetModerationLogOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`ModAction`](../interfaces/ModAction.md)\>
+
+A Listing of ModAction objects.
+
+#### Example
+
+```ts
+const modActions = await reddit.getModerationLog({
+ subredditName: 'memes',
+ moderatorUsernames: ['spez'],
+ type: 'banuser',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getModerationLog`](RedditClient.md#getmoderationlog)
+
+***
+
+
+
+### getModerators()
+
+> **getModerators**(`options`): [`Listing`](Listing.md)\<[`SubredditModeratorUser`](SubredditModeratorUser.md)\>
+
+Get a list of users who are moderators for a subreddit.
+
+#### Parameters
+
+##### options
+
+`GetSubredditUsersOptions`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditModeratorUser`](SubredditModeratorUser.md)\>
+
+A Listing of SubredditModeratorUser objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getModerators`](RedditClient.md#getmoderators)
+
+***
+
+
+
+### getModNotes()
+
+> **getModNotes**(`options`): [`Listing`](Listing.md)\<[`ModNote`](ModNote.md)\>
+
+Get a list of mod notes related to a user in a subreddit.
+
+#### Parameters
+
+##### options
+
+`Prettify`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`ModNote`](ModNote.md)\>
+
+A listing of ModNote objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getModNotes`](RedditClient.md#getmodnotes)
+
+***
+
+
+
+### getModQueue()
+
+#### Call Signature
+
+> **getModQueue**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things requiring moderator review, such as reported things and items.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getModQueue();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getModQueue({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getModQueue`](RedditClient.md#getmodqueue)
+
+#### Call Signature
+
+> **getModQueue**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things requiring moderator review, such as reported things and items.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getModQueue();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getModQueue({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getModQueue`](RedditClient.md#getmodqueue)
+
+#### Call Signature
+
+> **getModQueue**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things requiring moderator review, such as reported things and items.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getModQueue();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getModQueue({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getModQueue`](RedditClient.md#getmodqueue)
+
+***
+
+
+
+### getMutedUsers()
+
+> **getMutedUsers**(`options`): [`Listing`](Listing.md)\<[`SubredditMutedUser`](SubredditMutedUser.md)\>
+
+Get a list of users who are muted in a subreddit.
+
+#### Parameters
+
+##### options
+
+`GetSubredditUsersOptions`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditMutedUser`](SubredditMutedUser.md)\>
+
+A listing of SubredditMutedUser objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getMutedUsers`](RedditClient.md#getmutedusers)
+
+***
+
+
+
+### getNewPosts()
+
+> **getNewPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of new posts from a specific subreddit.
+
+#### Parameters
+
+##### options
+
+[`GetPostsOptions`](../type-aliases/GetPostsOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const posts = await reddit.getNewPosts({
+ subredditName: 'memes',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getNewPosts`](RedditClient.md#getnewposts)
+
+***
+
+
+
+### getPostById()
+
+> **getPostById**(`id`): `Promise`\<[`Post`](Post.md)\>
+
+Gets a [Post](Post.md) object by ID
+
+#### Parameters
+
+##### id
+
+`string`
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+A Promise that resolves to a Post object.
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`getPostById`](RedditClient.md#getpostbyid)
+
+***
+
+
+
+### getPostData()
+
+> **getPostData**(`id`): `Promise`\<`undefined` \| [`JSONObject`](../type-aliases/JSONObject.md)\>
+
+Returns PostData, if any, for the post specified by ID.
+
+#### Parameters
+
+##### id
+
+`` `t3_${string}` ``
+
+#### Returns
+
+`Promise`\<`undefined` \| [`JSONObject`](../type-aliases/JSONObject.md)\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getPostData`](RedditClient.md#getpostdata)
+
+***
+
+
+
+### getPostFlairTemplates()
+
+> **getPostFlairTemplates**(`subredditName`): `Promise`\<[`FlairTemplate`](FlairTemplate.md)[]\>
+
+Get the list of post flair templates for a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to get the post flair templates for.
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)[]\>
+
+A Promise that resolves with an array of FlairTemplate objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getPostFlairTemplates`](RedditClient.md#getpostflairtemplates)
+
+***
+
+
+
+### getPostsByUser()
+
+> **getPostsByUser**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of posts from a specific user.
+
+#### Parameters
+
+##### options
+
+[`GetPostsByUserOptions`](../type-aliases/GetPostsByUserOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getPostsByUser`](RedditClient.md#getpostsbyuser)
+
+***
+
+
+
+### getPostStyles()
+
+> **getPostStyles**(`id`): `Promise`\<`StrictRequired`\<`CustomPostStylesInput`\>\>
+
+**`Experimental`**
+
+Get the custom styles for a custom post.
+
+#### Parameters
+
+##### id
+
+`` `t3_${string}` ``
+
+The ID of the post to get styles for.
+
+#### Returns
+
+`Promise`\<`StrictRequired`\<`CustomPostStylesInput`\>\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getPostStyles`](RedditClient.md#getpoststyles)
+
+***
+
+
+
+### getReports()
+
+#### Call Signature
+
+> **getReports**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things that have been reported.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getReports();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getReports({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getReports`](RedditClient.md#getreports)
+
+#### Call Signature
+
+> **getReports**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things that have been reported.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getReports();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getReports({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getReports`](RedditClient.md#getreports)
+
+#### Call Signature
+
+> **getReports**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things that have been reported.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getReports();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getReports({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getReports`](RedditClient.md#getreports)
+
+***
+
+
+
+### getRisingPosts()
+
+> **getRisingPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of hot posts from a specific subreddit.
+
+#### Parameters
+
+##### options
+
+[`GetPostsOptions`](../type-aliases/GetPostsOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const posts = await reddit.getRisingPosts({
+ subredditName: 'memes',
+ timeframe: 'day',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getRisingPosts`](RedditClient.md#getrisingposts)
+
+***
+
+
+
+### getRules()
+
+> **getRules**(`subredditName`): `Promise`\<[`Rule`](Rule.md)[]\>
+
+Get the rules for a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to get the rules for.
+
+#### Returns
+
+`Promise`\<[`Rule`](Rule.md)[]\>
+
+An array of Rule objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getRules`](RedditClient.md#getrules)
+
+***
+
+
+
+### getSnoovatarUrl()
+
+> **getSnoovatarUrl**(`username`): `Promise`\<`undefined` \| `string`\>
+
+Get the snoovatar URL for a given username.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the snoovatar to retrieve
+
+#### Returns
+
+`Promise`\<`undefined` \| `string`\>
+
+A Promise that resolves to a URL of the snoovatar image if it exists.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getSnoovatarUrl`](RedditClient.md#getsnoovatarurl)
+
+***
+
+
+
+### getSpam()
+
+#### Call Signature
+
+> **getSpam**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things that have been marked as spam or otherwise removed.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getSpam();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getSpam({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getSpam`](RedditClient.md#getspam)
+
+#### Call Signature
+
+> **getSpam**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things that have been marked as spam or otherwise removed.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getSpam();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getSpam({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getSpam`](RedditClient.md#getspam)
+
+#### Call Signature
+
+> **getSpam**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things that have been marked as spam or otherwise removed.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getSpam();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getSpam({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getSpam`](RedditClient.md#getspam)
+
+***
+
+
+
+### ~~getSubredditById()~~
+
+> **getSubredditById**(`id`): `Promise`\<`undefined` \| [`Subreddit`](Subreddit.md)\>
+
+Gets a [Subreddit](Subreddit.md) object by ID
+
+#### Parameters
+
+##### id
+
+`string`
+
+The ID (starting with t5_) of the subreddit to retrieve. e.g. t5_2qjpg
+
+#### Returns
+
+`Promise`\<`undefined` \| [`Subreddit`](Subreddit.md)\>
+
+A Promise that resolves a Subreddit object.
+
+#### Deprecated
+
+Use [getSubredditInfoById](RedditClient.md#getsubredditinfobyid) instead.
+
+#### Example
+
+```ts
+const memes = await reddit.getSubredditById('t5_2qjpg');
+```
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`getSubredditById`](RedditClient.md#getsubredditbyid)
+
+***
+
+
+
+### ~~getSubredditByName()~~
+
+> **getSubredditByName**(`name`): `Promise`\<[`Subreddit`](Subreddit.md)\>
+
+Gets a [Subreddit](Subreddit.md) object by name
+
+#### Parameters
+
+##### name
+
+`string`
+
+The name of a subreddit omitting the r/. This is case insensitive.
+
+#### Returns
+
+`Promise`\<[`Subreddit`](Subreddit.md)\>
+
+A Promise that resolves a Subreddit object.
+
+#### Deprecated
+
+Use [getSubredditInfoByName](RedditClient.md#getsubredditinfobyname) instead.
+
+#### Example
+
+```ts
+const askReddit = await reddit.getSubredditByName('askReddit');
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getSubredditByName`](RedditClient.md#getsubredditbyname)
+
+***
+
+
+
+### getSubredditInfoById()
+
+> **getSubredditInfoById**(`id`): `Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+
+Gets a [SubredditInfo](../type-aliases/SubredditInfo.md) object by ID
+
+#### Parameters
+
+##### id
+
+`string`
+
+The ID (starting with t5_) of the subreddit to retrieve. e.g. t5_2qjpg
+
+#### Returns
+
+`Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+
+A Promise that resolves a SubredditInfo object.
+
+#### Example
+
+```ts
+const memes = await reddit.getSubredditInfoById('t5_2qjpg');
+```
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`getSubredditInfoById`](RedditClient.md#getsubredditinfobyid)
+
+***
+
+
+
+### getSubredditInfoByName()
+
+> **getSubredditInfoByName**(`name`): `Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+
+Gets a [SubredditInfo](../type-aliases/SubredditInfo.md) object by name
+
+#### Parameters
+
+##### name
+
+`string`
+
+The name of a subreddit omitting the r/. This is case insensitive.
+
+#### Returns
+
+`Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+
+A Promise that resolves a SubredditInfo object.
+
+#### Example
+
+```ts
+const askReddit = await reddit.getSubredditInfoByName('askReddit');
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getSubredditInfoByName`](RedditClient.md#getsubredditinfobyname)
+
+***
+
+
+
+### getSubredditLeaderboard()
+
+> **getSubredditLeaderboard**(`subredditId`): `Promise`\<[`SubredditLeaderboard`](../type-aliases/SubredditLeaderboard.md)\>
+
+Returns a leaderboard for a given subreddit ID.
+
+#### Parameters
+
+##### subredditId
+
+`string`
+
+ID of the subreddit for which the leaderboard is being queried.
+
+#### Returns
+
+`Promise`\<[`SubredditLeaderboard`](../type-aliases/SubredditLeaderboard.md)\>
+
+Leaderboard for the given subreddit.
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`getSubredditLeaderboard`](RedditClient.md#getsubredditleaderboard)
+
+***
+
+
+
+### getSubredditRemovalReasons()
+
+> **getSubredditRemovalReasons**(`subredditName`): `Promise`\<[`RemovalReason`](../type-aliases/RemovalReason.md)[]\>
+
+Get the list of subreddit's removal reasons (ordered).
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+Name of the subreddit (the 'r/' prefix is optional).
+
+#### Returns
+
+`Promise`\<[`RemovalReason`](../type-aliases/RemovalReason.md)[]\>
+
+Ordered array of Removal Reasons
+
+#### Example
+
+```ts
+const reasons = await reddit.getSubredditRemovalReasons('askReddit');
+
+for (let reason of reasons) {
+ console.log(reason.id, reason.message, reason.title)
+}
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getSubredditRemovalReasons`](RedditClient.md#getsubredditremovalreasons)
+
+***
+
+
+
+### getSubredditStyles()
+
+> **getSubredditStyles**(`subredditId`): `Promise`\<[`SubredditStyles`](../type-aliases/SubredditStyles.md)\>
+
+Returns the styles for a given subreddit ID.
+
+#### Parameters
+
+##### subredditId
+
+`string`
+
+ID of the subreddit from which to retrieve the styles.
+
+#### Returns
+
+`Promise`\<[`SubredditStyles`](../type-aliases/SubredditStyles.md)\>
+
+Styles for the given subreddit.
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`getSubredditStyles`](RedditClient.md#getsubredditstyles)
+
+***
+
+
+
+### getSubscribedSubredditsForCurrentUser()
+
+> **getSubscribedSubredditsForCurrentUser**(`options`): [`Listing`](Listing.md)\<[`Subreddit`](Subreddit.md)\>
+
+Returns a listing of subreddits that the current user is subscribed to.
+This method will execute as the app account by default.
+To execute this on behalf of a user, please contact Reddit.
+
+#### Parameters
+
+##### options
+
+[`GetSubscribedSubredditsForCurrentUserOptions`](../type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md)
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Subreddit`](Subreddit.md)\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getSubscribedSubredditsForCurrentUser`](RedditClient.md#getsubscribedsubredditsforcurrentuser)
+
+***
+
+
+
+### getTopPosts()
+
+> **getTopPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of controversial posts from a specific subreddit.
+
+#### Parameters
+
+##### options
+
+[`GetPostsOptionsWithTimeframe`](../type-aliases/GetPostsOptionsWithTimeframe.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const posts = await reddit.getControversialPosts({
+ subredditName: 'memes',
+ timeframe: 'day',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getTopPosts`](RedditClient.md#gettopposts)
+
+***
+
+
+
+### getUnmoderated()
+
+#### Call Signature
+
+> **getUnmoderated**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things that have yet to be approved/removed by a mod.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getUnmoderated();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getUnmoderated({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getUnmoderated`](RedditClient.md#getunmoderated)
+
+#### Call Signature
+
+> **getUnmoderated**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things that have yet to be approved/removed by a mod.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getUnmoderated();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getUnmoderated({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getUnmoderated`](RedditClient.md#getunmoderated)
+
+#### Call Signature
+
+> **getUnmoderated**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things that have yet to be approved/removed by a mod.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getUnmoderated();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getUnmoderated({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+##### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getUnmoderated`](RedditClient.md#getunmoderated)
+
+***
+
+
+
+### getUserById()
+
+> **getUserById**(`id`): `Promise`\<`undefined` \| [`User`](User.md)\>
+
+Gets a [User](User.md) object by ID
+
+#### Parameters
+
+##### id
+
+`string`
+
+The ID (starting with t2_) of the user to retrieve. e.g. t2_1qjpg
+
+#### Returns
+
+`Promise`\<`undefined` \| [`User`](User.md)\>
+
+A Promise that resolves to a User object.
+
+#### Example
+
+```ts
+const user = await reddit.getUserById('t2_1qjpg');
+```
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`getUserById`](RedditClient.md#getuserbyid)
+
+***
+
+
+
+### getUserByUsername()
+
+> **getUserByUsername**(`username`): `Promise`\<`undefined` \| [`User`](User.md)\>
+
+Gets a [User](User.md) object by username
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user omitting the u/. e.g. 'devvit'
+
+#### Returns
+
+`Promise`\<`undefined` \| [`User`](User.md)\>
+
+A Promise that resolves to a User object or undefined if user is
+ not found (user doesn't exist, account suspended, etc).
+
+#### Example
+
+```ts
+const user = await reddit.getUserByUsername('devvit');
+if (user) {
+ console.log(user)
+}
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getUserByUsername`](RedditClient.md#getuserbyusername)
+
+***
+
+
+
+### getUserFlairTemplates()
+
+> **getUserFlairTemplates**(`subredditName`): `Promise`\<[`FlairTemplate`](FlairTemplate.md)[]\>
+
+Get the list of user flair templates for a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to get the user flair templates for.
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)[]\>
+
+A Promise that resolves with an array of FlairTemplate objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getUserFlairTemplates`](RedditClient.md#getuserflairtemplates)
+
+***
+
+
+
+### getUserKarmaFromCurrentSubreddit()
+
+> **getUserKarmaFromCurrentSubreddit**(`username`): `Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+Returns the karma for a given user in the current subreddit.
+The user making the request must be a moderator of the subreddit to read another user's karma in the subreddit.
+An exception is if the specified user is the same as the user making the request.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to get the karma for. e.g. 'spez'
+
+#### Returns
+
+`Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+The GetUserKarmaForSubredditResponse, containing the user's karma for posts and comments in the subreddit.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getUserKarmaFromCurrentSubreddit`](RedditClient.md#getuserkarmafromcurrentsubreddit)
+
+***
+
+
+
+### getVaultByAddress()
+
+> **getVaultByAddress**(`address`): `Promise`\<[`Vault`](../type-aliases/Vault.md)\>
+
+Gets a [Vault](../type-aliases/Vault.md) for the specified address.
+
+#### Parameters
+
+##### address
+
+`string`
+
+The address (starting with 0x) of the Vault.
+
+#### Returns
+
+`Promise`\<[`Vault`](../type-aliases/Vault.md)\>
+
+#### Example
+
+```ts
+const vault = await reddit.getVaultByAddress('0x205ee28744456bDBf180A0Fa7De51e0F116d54Ed');
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getVaultByAddress`](RedditClient.md#getvaultbyaddress)
+
+***
+
+
+
+### getVaultByUserId()
+
+> **getVaultByUserId**(`userId`): `Promise`\<[`Vault`](../type-aliases/Vault.md)\>
+
+Gets a [Vault](../type-aliases/Vault.md) for the specified user.
+
+#### Parameters
+
+##### userId
+
+`string`
+
+The ID (starting with t2_) of the Vault owner.
+
+#### Returns
+
+`Promise`\<[`Vault`](../type-aliases/Vault.md)\>
+
+#### Example
+
+```ts
+const vault = await reddit.getVaultByUserId('t2_1w72');
+```
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`getVaultByUserId`](RedditClient.md#getvaultbyuserid)
+
+***
+
+
+
+### getWidgets()
+
+> **getWidgets**(`subredditName`): `Promise`\<[`Widget`](Widget.md)[]\>
+
+Get the widgets for a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to get the widgets for.
+
+#### Returns
+
+`Promise`\<[`Widget`](Widget.md)[]\>
+
+- An array of Widget objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getWidgets`](RedditClient.md#getwidgets)
+
+***
+
+
+
+### getWikiContributors()
+
+> **getWikiContributors**(`options`): [`Listing`](Listing.md)\<[`SubredditWikiContributorUser`](SubredditWikiContributorUser.md)\>
+
+Get a list of users who are wiki contributors of a subreddit.
+
+#### Parameters
+
+##### options
+
+`GetSubredditUsersOptions`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditWikiContributorUser`](SubredditWikiContributorUser.md)\>
+
+A Listing of SubredditWikiContributorUser objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getWikiContributors`](RedditClient.md#getwikicontributors)
+
+***
+
+
+
+### getWikiPage()
+
+> **getWikiPage**(`subredditName`, `page`, `revisionId`?): `Promise`\<[`WikiPage`](WikiPage.md)\>
+
+Get a wiki page from a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to get the wiki page from.
+
+##### page
+
+`string`
+
+The name of the wiki page to get.
+
+##### revisionId?
+
+`` `${string}-${string}-${string}-${string}-${string}` ``
+
+The revision ID of the wiki page version to get. Setting this value will return the wiki page
+version at that revision, and leaving it empty will return the latest version.
+
+#### Returns
+
+`Promise`\<[`WikiPage`](WikiPage.md)\>
+
+The requested WikiPage object.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getWikiPage`](RedditClient.md#getwikipage)
+
+***
+
+
+
+### getWikiPageRevisions()
+
+> **getWikiPageRevisions**(`options`): [`Listing`](Listing.md)\<[`WikiPageRevision`](WikiPageRevision.md)\>
+
+Get the revisions for a wiki page.
+
+#### Parameters
+
+##### options
+
+[`GetPageRevisionsOptions`](../type-aliases/GetPageRevisionsOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`WikiPageRevision`](WikiPageRevision.md)\>
+
+A Listing of WikiPageRevision objects.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getWikiPageRevisions`](RedditClient.md#getwikipagerevisions)
+
+***
+
+
+
+### getWikiPages()
+
+> **getWikiPages**(`subredditName`): `Promise`\<`string`[]\>
+
+Get the wiki pages for a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to get the wiki pages from.
+
+#### Returns
+
+`Promise`\<`string`[]\>
+
+A list of the wiki page names for the subreddit.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getWikiPages`](RedditClient.md#getwikipages)
+
+***
+
+
+
+### getWikiPageSettings()
+
+> **getWikiPageSettings**(`subredditName`, `page`): `Promise`\<[`WikiPageSettings`](WikiPageSettings.md)\>
+
+Get the settings for a wiki page.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit the wiki is in.
+
+##### page
+
+`string`
+
+The name of the wiki page to get the settings for.
+
+#### Returns
+
+`Promise`\<[`WikiPageSettings`](WikiPageSettings.md)\>
+
+A WikiPageSettings object.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`getWikiPageSettings`](RedditClient.md#getwikipagesettings)
+
+***
+
+
+
+### inviteModerator()
+
+> **inviteModerator**(`options`): `Promise`\<`void`\>
+
+Invite a user to become a moderator of a subreddit.
+
+#### Parameters
+
+##### options
+
+`InviteModeratorOptions`
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`inviteModerator`](RedditClient.md#invitemoderator)
+
+***
+
+
+
+### markAllMessagesAsRead()
+
+> **markAllMessagesAsRead**(): `Promise`\<`void`\>
+
+Mark all private messages as read.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`markAllMessagesAsRead`](RedditClient.md#markallmessagesasread)
+
+***
+
+
+
+### mergePostData()
+
+> **mergePostData**(`postId`, `postData`): `Promise`\<`void`\>
+
+Merge the postData on a custom post with the postData specified in the input. This performs a shallow merge.
+
+#### Parameters
+
+##### postId
+
+`` `t3_${string}` ``
+
+##### postData
+
+[`JSONObject`](../type-aliases/JSONObject.md)
+
+Represents the postData to be merged with the existing postData.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the postData could not be merged.
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+
+// Existing postData: { currentScore: 55, settings: { theme: 'dark', fontSize: 12 } }
+
+await post.mergePostData({ settings: { fontSize: 14 } });
+// Result: { currentScore: 55, settings: { fontSize: 14 } }
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`mergePostData`](RedditClient.md#mergepostdata)
+
+***
+
+
+
+### muteUser()
+
+> **muteUser**(`options`): `Promise`\<`void`\>
+
+Mute a user in a subreddit. Muting a user prevents them from sending modmail.
+
+#### Parameters
+
+##### options
+
+`MuteUserOptions`
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`muteUser`](RedditClient.md#muteuser)
+
+***
+
+
+
+### remove()
+
+> **remove**(`id`, `isSpam`): `Promise`\<`void`\>
+
+Remove a post or comment.
+
+#### Parameters
+
+##### id
+
+`string`
+
+The id of the post (t3_) or comment (t1_) to remove.
+
+##### isSpam
+
+`boolean`
+
+Is the post or comment being removed because it's spam?
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Example
+
+```ts
+await reddit.remove('t3_123456', false);
+await reddit.remove('t1_123456', true);
+```
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`remove`](RedditClient.md#remove)
+
+***
+
+
+
+### removeEditorFromWikiPage()
+
+> **removeEditorFromWikiPage**(`subredditName`, `page`, `username`): `Promise`\<`void`\>
+
+Remove an editor from a wiki page.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit the wiki is in.
+
+##### page
+
+`string`
+
+The name of the wiki page to remove the editor from.
+
+##### username
+
+`string`
+
+The username of the user to remove as an editor.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`removeEditorFromWikiPage`](RedditClient.md#removeeditorfromwikipage)
+
+***
+
+
+
+### removeModerator()
+
+> **removeModerator**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Remove a user as a moderator of a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to remove as a moderator. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to remove the user as a moderator from. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`removeModerator`](RedditClient.md#removemoderator)
+
+***
+
+
+
+### removePostFlair()
+
+> **removePostFlair**(`subredditName`, `postId`): `Promise`\<`void`\>
+
+Remove the flair for a post in a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to remove the flair from.
+
+##### postId
+
+`string`
+
+The ID of the post to remove the flair from.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`removePostFlair`](RedditClient.md#removepostflair)
+
+***
+
+
+
+### removeUser()
+
+> **removeUser**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Remove a user's approval to post in a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to remove approval from. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to remove the user's approval from. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`removeUser`](RedditClient.md#removeuser)
+
+***
+
+
+
+### removeUserFlair()
+
+> **removeUserFlair**(`subredditName`, `username`): `Promise`\<`void`\>
+
+Remove the flair for a user in a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to remove the flair from.
+
+##### username
+
+`string`
+
+The username of the user to remove the flair from.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`removeUserFlair`](RedditClient.md#removeuserflair)
+
+***
+
+
+
+### removeWikiContributor()
+
+> **removeWikiContributor**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Remove a user's wiki contributor status for a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to remove wiki contributor status from. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to remove the user's wiki contributor status from. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`removeWikiContributor`](RedditClient.md#removewikicontributor)
+
+***
+
+
+
+### reorderRules()
+
+> **reorderRules**(`subredditName`, `rules`): `Promise`\<`void`\>
+
+Reorder the rules in a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to reorder the rules for.
+
+##### rules
+
+[`Rule`](Rule.md)[]
+
+Array of Rule objects in the desired order (order is determined by array position).
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`reorderRules`](RedditClient.md#reorderrules)
+
+***
+
+
+
+### reorderWidgets()
+
+> **reorderWidgets**(`subredditName`, `orderByIds`): `Promise`\<`void`\>
+
+Reorder the widgets for a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to reorder the widgets for.
+
+##### orderByIds
+
+`string`[]
+
+An array of widget IDs in the order that they should be displayed.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`reorderWidgets`](RedditClient.md#reorderwidgets)
+
+***
+
+
+
+### report()
+
+> **report**(`thing`, `options`): `Promise`\<`JsonStatus`\>
+
+Report a Post or Comment
+
+The report is sent to the moderators of the subreddit for review.
+
+#### Parameters
+
+##### thing
+
+Post or Comment
+
+[`Post`](Post.md) | [`Comment`](Comment.md)
+
+##### options
+
+Options
+
+###### reason
+
+`string`
+
+Why the thing is reported
+
+#### Returns
+
+`Promise`\<`JsonStatus`\>
+
+#### Example
+
+```ts
+await reddit.report(post, {
+ reason: 'This is spam!',
+})
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`report`](RedditClient.md#report)
+
+***
+
+
+
+### revertWikiPage()
+
+> **revertWikiPage**(`subredditName`, `page`, `revisionId`): `Promise`\<`void`\>
+
+Revert a wiki page to a previous revision.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit the wiki is in.
+
+##### page
+
+`string`
+
+The name of the wiki page to revert.
+
+##### revisionId
+
+`string`
+
+The ID of the revision to revert to.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`revertWikiPage`](RedditClient.md#revertwikipage)
+
+***
+
+
+
+### revokeModeratorInvite()
+
+> **revokeModeratorInvite**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Revoke a moderator invite for a user to a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to revoke the invite for. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to revoke the invite for. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`revokeModeratorInvite`](RedditClient.md#revokemoderatorinvite)
+
+***
+
+
+
+### sendPrivateMessage()
+
+> **sendPrivateMessage**(`options`): `Promise`\<`void`\>
+
+Sends a private message to a user.
+
+#### Parameters
+
+##### options
+
+[`SendPrivateMessageOptions`](../type-aliases/SendPrivateMessageOptions.md)
+
+The options for sending the message.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A Promise that resolves if the private message was successfully sent.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`sendPrivateMessage`](RedditClient.md#sendprivatemessage)
+
+***
+
+
+
+### ~~sendPrivateMessageAsSubreddit()~~
+
+> **sendPrivateMessageAsSubreddit**(`options`): `Promise`\<`void`\>
+
+Sends a private message to a user on behalf of a subreddit.
+
+#### Parameters
+
+##### options
+
+[`SendPrivateMessageAsSubredditOptions`](../type-aliases/SendPrivateMessageAsSubredditOptions.md)
+
+The options for sending the message as a subreddit.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A Promise that resolves if the private message was successfully sent.
+
+#### Deprecated
+
+No longer working as expected. Use modMail.createConversation with `isAuthorHidden: true` instead
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`sendPrivateMessageAsSubreddit`](RedditClient.md#sendprivatemessageassubreddit)
+
+***
+
+
+
+### setModeratorPermissions()
+
+> **setModeratorPermissions**(`username`, `subredditName`, `permissions`): `Promise`\<`void`\>
+
+Update the permissions of a moderator of a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to update the permissions for. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit. e.g. 'memes'
+
+##### permissions
+
+[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]
+
+The permissions to give the user. e.g ['posts', 'wiki']
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`setModeratorPermissions`](RedditClient.md#setmoderatorpermissions)
+
+***
+
+
+
+### setPostData()
+
+> **setPostData**(`postId`, `postData`): `Promise`\<`void`\>
+
+Set the postData for a custom post. This will replace the existing postData with the postData specified in the input.
+
+#### Parameters
+
+##### postId
+
+`` `t3_${string}` ``
+
+The ID of the post to set the postData for.
+
+##### postData
+
+[`JSONObject`](../type-aliases/JSONObject.md)
+
+Represents the postData to be set, eg: { currentScore: 55, secretWord: 'barbeque' }
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the postData could not be set.
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+
+// Existing postData: { settings: { theme: 'dark', fontSize: 12 } }
+
+await post.setPostData({
+ currentScore: 55,
+ secretWord: 'barbeque',
+});
+// Result: { currentScore: 55, secretWord: 'barbeque' }
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`setPostData`](RedditClient.md#setpostdata)
+
+***
+
+
+
+### setPostFlair()
+
+> **setPostFlair**(`options`): `Promise`\<`void`\>
+
+Set the flair for a post in a subreddit.
+
+#### Parameters
+
+##### options
+
+[`SetPostFlairOptions`](../type-aliases/SetPostFlairOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`setPostFlair`](RedditClient.md#setpostflair)
+
+***
+
+
+
+### setPostStyles()
+
+> **setPostStyles**(`id`, `styles`): `Promise`\<`void`\>
+
+**`Experimental`**
+
+Set the custom styles for a custom post.
+
+#### Parameters
+
+##### id
+
+`` `t3_${string}` ``
+
+The ID of the post to set styles for.
+
+##### styles
+
+The styles to set for the post. If a value isn't specified, its previous value
+ will be preserved. If `undefined` is passed, all styles will be removed and reset to defaults.
+
+`undefined` | `CustomPostStylesInput`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`setPostStyles`](RedditClient.md#setpoststyles)
+
+***
+
+
+
+### setUserFlair()
+
+> **setUserFlair**(`options`): `Promise`\<`void`\>
+
+Set the flair for a user in a subreddit.
+
+#### Parameters
+
+##### options
+
+[`SetUserFlairOptions`](../type-aliases/SetUserFlairOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`setUserFlair`](RedditClient.md#setuserflair)
+
+***
+
+
+
+### setUserFlairBatch()
+
+> **setUserFlairBatch**(`subredditName`, `flairs`): `Promise`\<`FlairCsvResult`[]\>
+
+Set the flair of multiple users in the same subreddit with a single API call.
+Can process up to 100 entries at once.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to edit flairs in.
+
+##### flairs
+
+[`SetUserFlairBatchConfig`](../type-aliases/SetUserFlairBatchConfig.md)[]
+
+Array of user flair configuration objects. If both text and cssClass are empty for a given user the flair will be cleared.
+
+#### Returns
+
+`Promise`\<`FlairCsvResult`[]\>
+
+- Array of statuses for each entry provided.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`setUserFlairBatch`](RedditClient.md#setuserflairbatch)
+
+***
+
+
+
+### submitComment()
+
+> **submitComment**(`options`): `Promise`\<[`Comment`](Comment.md)\>
+
+Submit a new comment to a post or comment.
+
+#### Parameters
+
+##### options
+
+[`CommentSubmissionOptions`](../type-aliases/CommentSubmissionOptions.md) & `object`
+
+You must provide either `options.text` or `options.richtext` but not both.
+
+#### Returns
+
+`Promise`\<[`Comment`](Comment.md)\>
+
+A Promise that resolves to a Comment object.
+
+#### Example
+
+```ts
+const comment = await reddit.submitComment({
+ id: 't1_1qgif',
+ text: 'Hello world!',
+ runAs: 'APP',
+})
+```
+
+#### Overrides
+
+[`RedditClient`](RedditClient.md).[`submitComment`](RedditClient.md#submitcomment)
+
+***
+
+
+
+### submitCustomPost()
+
+> **submitCustomPost**(`opts`): `Promise`\<[`Post`](Post.md)\>
+
+Submits a new custom post to a subreddit.
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`SubredditOptions`](../type-aliases/SubredditOptions.md) & [`CommonSubmitPostOptions`](../type-aliases/CommonSubmitPostOptions.md) & `object`\>
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+#### Examples
+
+```ts
+const post = await reddit.submitCustomPost({
+ subredditName: 'devvit',
+ title: 'Hello World',
+});
+```
+
+By default, `submitCustomPost()` creates a Post on behalf of the App account, but it may be called on behalf of the User making the request by setting the option `runAs: 'USER'`.
+When using `runAs: 'USER'` to create an experience Post, you must specify the `userGeneratedContent` option. For example:
+
+```ts
+const post = await reddit.submitCustomPost({
+ title: 'My Devvit Post',
+ runAs: 'USER',
+ userGeneratedContent: {
+ text: "hello there",
+ imageUrls: ["https://styles.redditmedia.com/t5_5wa5ww/styles/communityIcon_wyopomb2xb0a1.png", "https://styles.redditmedia.com/t5_49fkib/styles/bannerBackgroundImage_5a4axis7cku61.png"]
+ },
+ subredditName: context.subredditName,
+ textFallback: {
+ text: 'This is a Devvit post!',
+ },
+});
+```
+
+#### See
+
+ - [()\|submitPost()](RedditClient.md#submitpost)
+ - [()\|crosspost()](RedditClient.md#crosspost)
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`submitCustomPost`](RedditClient.md#submitcustompost)
+
+***
+
+
+
+### submitPost()
+
+> **submitPost**(`opts`): `Promise`\<[`Post`](Post.md)\>
+
+Submits a new post to a subreddit.
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`SubredditOptions`](../type-aliases/SubredditOptions.md) & [`SubmitPostOptions`](../type-aliases/SubmitPostOptions.md)\>
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+#### Example
+
+```ts
+const post = await reddit.submitPost({
+ subredditName: 'devvit',
+ title: 'Hello World',
+ richtext: new RichTextBuilder()
+ .heading({ level: 1 }, (h) => {
+ h.rawText('Hello world');
+ })
+ .codeBlock({}, (cb) => cb.rawText('This post was created via the Devvit API'))
+ .build()
+});
+```
+
+#### See
+
+ - [()\|submitCustomPost()](RedditClient.md#submitcustompost)
+ - [()\|crosspost()](RedditClient.md#crosspost)
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`submitPost`](RedditClient.md#submitpost)
+
+***
+
+
+
+### subscribeToCurrentSubreddit()
+
+> **subscribeToCurrentSubreddit**(): `Promise`\<`void`\>
+
+Subscribes to the subreddit in which the app is installed. No-op if the user is already subscribed.
+This method will run as user by default. Therefore, you must include SUBSCRIBE_TO_SUBREDDIT
+in `permissions.reddit.asUser` in your devvit.json file.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`subscribeToCurrentSubreddit`](RedditClient.md#subscribetocurrentsubreddit)
+
+***
+
+
+
+### unbanUser()
+
+> **unbanUser**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Unban a user from a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to unban. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to unban the user from. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`unbanUser`](RedditClient.md#unbanuser)
+
+***
+
+
+
+### unbanWikiContributor()
+
+> **unbanWikiContributor**(`username`, `subredditName`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to unban. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to unban the user from contributing to the wiki on. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`unbanWikiContributor`](RedditClient.md#unbanwikicontributor)
+
+***
+
+
+
+### unmuteUser()
+
+> **unmuteUser**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Unmute a user in a subreddit. Unmuting a user allows them to send modmail.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to unmute. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to unmute the user in. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`unmuteUser`](RedditClient.md#unmuteuser)
+
+***
+
+
+
+### unsubscribeFromCurrentSubreddit()
+
+> **unsubscribeFromCurrentSubreddit**(): `Promise`\<`void`\>
+
+Unsubscribes from the subreddit in which the app is installed. No-op if the user isn't subscribed.
+This method will execute as the app account by default.
+To unsubscribe on behalf of a user, please contact Reddit.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`unsubscribeFromCurrentSubreddit`](RedditClient.md#unsubscribefromcurrentsubreddit)
+
+***
+
+
+
+### updateSubredditRemovalReason()
+
+> **updateSubredditRemovalReason**(`subredditName`, `reasonId`, `options`): `Promise`\<`void`\>
+
+Update an existing removal reason in a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+Name of the subreddit (the 'r/' prefix is optional).
+
+##### reasonId
+
+`string`
+
+ID of the removal reason (from get or add).
+
+##### options
+
+Options.
+
+###### message
+
+`string`
+
+The message associated with the removal reason.
+
+###### title
+
+`string`
+
+The title of the removal reason.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Example
+
+```ts
+await reddit.updateSubredditRemovalReason('askReddit', 'uuid-abc', {
+ title: 'Spam',
+ message: 'This post was removed for spam.'
+});
+```
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`updateSubredditRemovalReason`](RedditClient.md#updatesubredditremovalreason)
+
+***
+
+
+
+### updateWidget()
+
+> **updateWidget**(`widgetData`): `Promise`\<[`Widget`](Widget.md)\>
+
+Update a widget for a subreddit.
+
+#### Parameters
+
+##### widgetData
+
+[`UpdateWidgetData`](../type-aliases/UpdateWidgetData.md)
+
+The data for the widget to update.
+
+#### Returns
+
+`Promise`\<[`Widget`](Widget.md)\>
+
+- The updated Widget object.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`updateWidget`](RedditClient.md#updatewidget)
+
+***
+
+
+
+### updateWikiPage()
+
+> **updateWikiPage**(`options`): `Promise`\<[`WikiPage`](WikiPage.md)\>
+
+Update a wiki page.
+
+#### Parameters
+
+##### options
+
+[`UpdateWikiPageOptions`](../type-aliases/UpdateWikiPageOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`WikiPage`](WikiPage.md)\>
+
+The updated WikiPage object.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`updateWikiPage`](RedditClient.md#updatewikipage)
+
+***
+
+
+
+### updateWikiPageSettings()
+
+> **updateWikiPageSettings**(`options`): `Promise`\<[`WikiPageSettings`](WikiPageSettings.md)\>
+
+Update the settings for a wiki page.
+
+#### Parameters
+
+##### options
+
+[`UpdatePageSettingsOptions`](../type-aliases/UpdatePageSettingsOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`WikiPageSettings`](WikiPageSettings.md)\>
+
+A WikiPageSettings object.
+
+#### Inherited from
+
+[`RedditClient`](RedditClient.md).[`updateWikiPageSettings`](RedditClient.md#updatewikipagesettings)
diff --git a/docs/api/public-api/classes/RedditClient.md b/docs/api/public-api/classes/RedditClient.md
new file mode 100644
index 00000000..8005922e
--- /dev/null
+++ b/docs/api/public-api/classes/RedditClient.md
@@ -0,0 +1,3555 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: RedditClient
+
+The Reddit API Client
+
+To use the Reddit API Client, add it to the plugin configuration at the top of the file.
+
+## Example
+
+```ts
+
+Devvit.configure({
+ redditAPI: true,
+ // other plugins
+})
+
+// use within one of our capability handlers e.g. Menu Actions, Triggers, Scheduled Job Type, etc
+async (event, context) => {
+ const subreddit = await context.reddit.getSubredditById(context.subredditId);
+ context.reddit.submitPost({
+ subredditName: subreddit.name,
+ title: 'test post',
+ text: 'test body',
+ })
+ // additional code
+}
+```
+
+## Extended by
+
+- [`RedditAPIClient`](RedditAPIClient.md)
+
+## Constructors
+
+
+
+### new RedditClient()
+
+> **new RedditClient**(): `RedditClient`
+
+#### Returns
+
+`RedditClient`
+
+## Accessors
+
+
+
+### modMail
+
+#### Get Signature
+
+> **get** **modMail**(): [`ModMailService`](ModMailService.md)
+
+Get ModMail API object
+
+##### Example
+
+```ts
+await reddit.modMail.reply({
+ body: "Here is my message",
+ conversationId: "abcd42";
+})
+```
+
+##### Returns
+
+[`ModMailService`](ModMailService.md)
+
+## Methods
+
+
+
+### addEditorToWikiPage()
+
+> **addEditorToWikiPage**(`subredditName`, `page`, `username`): `Promise`\<`void`\>
+
+Add an editor to a wiki page.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit the wiki is in.
+
+##### page
+
+`string`
+
+The name of the wiki page to add the editor to.
+
+##### username
+
+`string`
+
+The username of the user to add as an editor.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### addModNote()
+
+> **addModNote**(`options`): `Promise`\<[`ModNote`](ModNote.md)\>
+
+Add a mod note.
+
+#### Parameters
+
+##### options
+
+`Prettify`
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`ModNote`](ModNote.md)\>
+
+A Promise that resolves if the mod note was successfully added.
+
+***
+
+
+
+### addRemovalNote()
+
+> **addRemovalNote**(`options`): `Promise`\<`void`\>
+
+Add a mod note for why a post or comment was removed
+
+#### Parameters
+
+##### options
+
+`Prettify`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### addSubredditRemovalReason()
+
+> **addSubredditRemovalReason**(`subredditName`, `options`): `Promise`\<`string`\>
+
+Add a removal reason to a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+Name of the subreddit (the 'r/' prefix is optional).
+
+##### options
+
+Options.
+
+###### message
+
+`string`
+
+The message associated with the removal reason.
+
+###### title
+
+`string`
+
+The title of the removal reason.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+Removal Reason ID
+
+#### Example
+
+```ts
+const newReason = await reddit.addSubredditRemovalReasons(
+ 'askReddit',
+ {
+ title: 'Spam',
+ message: 'This is spam!'
+ }
+);
+console.log(newReason.id)
+```
+
+***
+
+
+
+### addWidget()
+
+> **addWidget**(`widgetData`): `Promise`\<[`Widget`](Widget.md)\>
+
+Add a widget to a subreddit.
+
+#### Parameters
+
+##### widgetData
+
+[`AddWidgetData`](../type-aliases/AddWidgetData.md)
+
+The data for the widget to add.
+
+#### Returns
+
+`Promise`\<[`Widget`](Widget.md)\>
+
+- The added Widget object.
+
+***
+
+
+
+### addWikiContributor()
+
+> **addWikiContributor**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Add a user as a wiki contributor for a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to add as a wiki contributor. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to add the user as a wiki contributor. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### approve()
+
+> **approve**(`id`): `Promise`\<`void`\>
+
+Approve a post or comment.
+
+#### Parameters
+
+##### id
+
+The id of the post (t3_) or comment (t1_) to approve.
+
+`` `t3_${string}` `` | `` `t1_${string}` ``
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Example
+
+```ts
+await reddit.approve('t3_123456');
+await reddit.approve('t1_123456');
+```
+
+***
+
+
+
+### approveUser()
+
+> **approveUser**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Approve a user to post in a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to approve. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to approve the user in. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### banUser()
+
+> **banUser**(`options`): `Promise`\<`void`\>
+
+Ban a user from a subreddit.
+
+#### Parameters
+
+##### options
+
+[`BanUserOptions`](../type-aliases/BanUserOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### banWikiContributor()
+
+> **banWikiContributor**(`options`): `Promise`\<`void`\>
+
+Ban a user from contributing to the wiki on a subreddit.
+
+#### Parameters
+
+##### options
+
+[`BanWikiContributorOptions`](../type-aliases/BanWikiContributorOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### createPostFlairTemplate()
+
+> **createPostFlairTemplate**(`options`): `Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+Create a post flair template for a subreddit.
+
+#### Parameters
+
+##### options
+
+[`CreateFlairTemplateOptions`](../type-aliases/CreateFlairTemplateOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+The created FlairTemplate object.
+
+***
+
+
+
+### createRule()
+
+> **createRule**(`subredditName`, `options`): `Promise`\<`void`\>
+
+Create a new rule in a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to add the rule to.
+
+##### options
+
+[`CreateRuleOptions`](../type-aliases/CreateRuleOptions.md)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### createShareUrl()
+
+> **createShareUrl**(`url`): `Promise`\<`string`\>
+
+Create a short share URL for a Reddit location.
+
+Valid inputs:
+- Absolute Reddit URLs without a query string (e.g., https://reddit.com/r/gamesonreddit)
+- URLs with a query string limited to: utm_source, utm_medium, devvitshare
+
+#### Parameters
+
+##### url
+
+`string`
+
+Full Reddit URL to shorten. Must be absolute and either have no query string or only the allowed query params.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+The shortened share URL (e.g., 'https://reddit.com/s/abc123').
+
+#### Note
+
+old.reddit.com URLs can be shortened but they will redirect to reddit.com.
+
+#### Throws
+
+If the input URL is invalid, contains unsupported query parameters, or the share URL cannot be created.
+
+***
+
+
+
+### createUserFlairTemplate()
+
+> **createUserFlairTemplate**(`options`): `Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+Create a user flair template for a subreddit.
+
+#### Parameters
+
+##### options
+
+[`CreateFlairTemplateOptions`](../type-aliases/CreateFlairTemplateOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+The created FlairTemplate object.
+
+***
+
+
+
+### createWikiPage()
+
+> **createWikiPage**(`options`): `Promise`\<[`WikiPage`](WikiPage.md)\>
+
+Create a new wiki page for a subreddit.
+
+#### Parameters
+
+##### options
+
+[`CreateWikiPageOptions`](../type-aliases/CreateWikiPageOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`WikiPage`](WikiPage.md)\>
+
+- The created WikiPage object.
+
+***
+
+
+
+### crosspost()
+
+> **crosspost**(`opts`): `Promise`\<[`Post`](Post.md)\>
+
+Crossposts a post to a subreddit.
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`SubredditOptions`](../type-aliases/SubredditOptions.md) & [`CommonSubmitPostOptions`](../type-aliases/CommonSubmitPostOptions.md) & `Required`\<[`SubredditOptions`](../type-aliases/SubredditOptions.md)\> & `object`\>
+
+Options for crossposting a post
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+- A Promise that resolves to a Post object.
+
+#### See
+
+ - [()\|submitPost()](#submitpost)
+ - [()\|submitCustomPost()](#submitcustompost)
+
+***
+
+
+
+### deleteFlairTemplate()
+
+> **deleteFlairTemplate**(`subredditName`, `flairTemplateId`): `Promise`\<`void`\>
+
+Delete a flair template from a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to delete the flair template from.
+
+##### flairTemplateId
+
+`string`
+
+The ID of the flair template to delete.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### deleteModNote()
+
+> **deleteModNote**(`options`): `Promise`\<`boolean`\>
+
+Delete a mod note.
+
+#### Parameters
+
+##### options
+
+`Prettify`
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+True if it was deleted successfully; false otherwise.
+
+***
+
+
+
+### deleteSubredditRemovalReason()
+
+> **deleteSubredditRemovalReason**(`subredditName`, `reasonId`): `Promise`\<`void`\>
+
+Delete a removal reason from a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+Name of the subreddit (the 'r/' prefix is optional).
+
+##### reasonId
+
+`string`
+
+ID of the removal reason (from get or add).
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Example
+
+```ts
+await reddit.deleteSubredditRemovalReason('askReddit', 'uuid-abc');
+```
+
+***
+
+
+
+### deleteWidget()
+
+> **deleteWidget**(`subredditName`, `widgetId`): `Promise`\<`void`\>
+
+Delete a widget from a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to delete the widget from.
+
+##### widgetId
+
+`string`
+
+The ID of the widget to delete.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### editFlairTemplate()
+
+> **editFlairTemplate**(`options`): `Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+Edit a flair template for a subreddit. This can be either a post or user flair template.
+Note: If you leave any of the options fields as undefined, they will reset to their default values.
+
+#### Parameters
+
+##### options
+
+[`EditFlairTemplateOptions`](../type-aliases/EditFlairTemplateOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+The edited FlairTemplate object.
+
+***
+
+
+
+### filter()
+
+> **filter**(`id`, `options`?): `Promise`\<`void`\>
+
+**`Experimental`**
+
+Filters a post or comment. When a post or comment is filtered, it is added to the ModQueue for review, and in addition:
+- if
+
+#### Parameters
+
+##### id
+
+The id of the post (t3_) or comment (t1_) to filter.
+
+`` `t3_${string}` `` | `` `t1_${string}` ``
+
+##### options?
+
+`FilterOptions`
+
+The options for this filter action.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A Promise that resolves if the post or comment was filtered successfully.
+
+***
+
+
+
+### getApprovedUsers()
+
+> **getApprovedUsers**(`options`): [`Listing`](Listing.md)\<[`SubredditContributorUser`](SubredditContributorUser.md)\>
+
+Get a list of users who have been approved to post in a subreddit.
+
+#### Parameters
+
+##### options
+
+`GetSubredditUsersOptions`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditContributorUser`](SubredditContributorUser.md)\>
+
+A Listing of SubredditContributorUser objects.
+
+***
+
+
+
+### getAppUser()
+
+> **getAppUser**(): `Promise`\<`undefined` \| [`User`](User.md)\>
+
+Get the user that the app runs as on the provided metadata.
+
+#### Returns
+
+`Promise`\<`undefined` \| [`User`](User.md)\>
+
+A Promise that resolves to a User object.
+
+#### Example
+
+```ts
+const user = await reddit.getAppUser(metadata);
+```
+
+***
+
+
+
+### getBannedUsers()
+
+> **getBannedUsers**(`options`): [`Listing`](Listing.md)\<[`SubredditBannedUser`](SubredditBannedUser.md)\>
+
+Get a list of users who are banned from a subreddit.
+
+#### Parameters
+
+##### options
+
+`GetSubredditUsersOptions`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditBannedUser`](SubredditBannedUser.md)\>
+
+A Listing of SubredditBannedUser objects.
+
+***
+
+
+
+### getBannedWikiContributors()
+
+> **getBannedWikiContributors**(`options`): [`Listing`](Listing.md)\<[`SubredditWikiBannedUser`](SubredditWikiBannedUser.md)\>
+
+Get a list of users who are banned from contributing to the wiki on a subreddit.
+
+#### Parameters
+
+##### options
+
+`GetSubredditUsersOptions`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditWikiBannedUser`](SubredditWikiBannedUser.md)\>
+
+A Listing of SubredditWikiBannedUser objects.
+
+***
+
+
+
+### getBestPosts()
+
+> **getBestPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of best posts from the front page.
+This method will get the front page for the app account by default.
+To get the front page for a user, please contact Reddit.
+
+#### Parameters
+
+##### options
+
+[`ListingFetchOptions`](../type-aliases/ListingFetchOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const posts = await reddit.getBestPosts({
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+***
+
+
+
+### getCommentById()
+
+> **getCommentById**(`id`): `Promise`\<[`Comment`](Comment.md)\>
+
+Get a [Comment](Comment.md) object by ID
+
+#### Parameters
+
+##### id
+
+`` `t1_${string}` ``
+
+The ID (starting with t1_) of the comment to retrieve. e.g. t1_1qjpg
+
+#### Returns
+
+`Promise`\<[`Comment`](Comment.md)\>
+
+A Promise that resolves to a Comment object.
+
+#### Example
+
+```ts
+const comment = await reddit.getCommentById('t1_1qjpg');
+```
+
+***
+
+
+
+### getComments()
+
+> **getComments**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Get a list of comments from a specific post or comment.
+
+#### Parameters
+
+##### options
+
+[`GetCommentsOptions`](../type-aliases/GetCommentsOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+A Listing of Comment objects.
+
+#### Example
+
+```ts
+const comments = await reddit.getComments({
+ postId: 't3_1qjpg',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+***
+
+
+
+### getCommentsAndPostsByUser()
+
+> **getCommentsAndPostsByUser**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Get a list of posts and comments from a specific user.
+
+#### Parameters
+
+##### options
+
+[`GetUserOverviewOptions`](../type-aliases/GetUserOverviewOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+A Listing of `Post` and `Comment` objects.
+
+***
+
+
+
+### getCommentsByUser()
+
+> **getCommentsByUser**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Get a list of comments by a specific user.
+
+#### Parameters
+
+##### options
+
+[`GetCommentsByUserOptions`](../type-aliases/GetCommentsByUserOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+A Listing of Comment objects.
+
+***
+
+
+
+### getControversialPosts()
+
+> **getControversialPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of controversial posts from a specific subreddit.
+
+#### Parameters
+
+##### options
+
+[`GetPostsOptionsWithTimeframe`](../type-aliases/GetPostsOptionsWithTimeframe.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const posts = await reddit.getControversialPosts({
+ subredditName: 'memes',
+ timeframe: 'day',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+***
+
+
+
+### getCurrentSubreddit()
+
+> **getCurrentSubreddit**(): `Promise`\<[`Subreddit`](Subreddit.md)\>
+
+Retrieves the current subreddit.
+
+#### Returns
+
+`Promise`\<[`Subreddit`](Subreddit.md)\>
+
+A Promise that resolves a Subreddit object.
+
+#### Example
+
+```ts
+const currentSubreddit = await reddit.getCurrentSubreddit();
+```
+
+***
+
+
+
+### getCurrentUser()
+
+> **getCurrentUser**(): `Promise`\<`undefined` \| [`User`](User.md)\>
+
+Get the current calling user.
+Resolves to undefined for logged-out custom post renders.
+
+#### Returns
+
+`Promise`\<`undefined` \| [`User`](User.md)\>
+
+A Promise that resolves to a User object or undefined
+
+#### Example
+
+```ts
+const user = await reddit.getCurrentUser();
+```
+
+***
+
+
+
+### getCurrentUsername()
+
+> **getCurrentUsername**(): `Promise`\<`undefined` \| `string`\>
+
+Get the current calling user's username.
+Resolves to undefined for logged-out custom post renders.
+
+#### Returns
+
+`Promise`\<`undefined` \| `string`\>
+
+A Promise that resolves to a string representing the username or undefined
+
+#### Example
+
+```ts
+const username = await reddit.getCurrentUsername();
+```
+
+***
+
+
+
+### getDuplicatesForPost()
+
+> **getDuplicatesForPost**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get posts that shared the same link as the given post.
+
+#### Parameters
+
+##### options
+
+[`GetDuplicatesOptions`](../type-aliases/GetDuplicatesOptions.md)
+
+Options for the request. Post ID is required, eveything else is optional.
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const duplicates = await reddit.getDuplicatesForPost({
+ postId: 't3_abc123',
+ sort: 'num_comments',
+ limit: 100
+}).all();
+```
+
+***
+
+
+
+### getEdited()
+
+#### Call Signature
+
+> **getEdited**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things that have been edited recently.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getEdited();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getEdited({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getEdited**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things that have been edited recently.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getEdited();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getEdited({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getEdited**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things that have been edited recently.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getEdited();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getEdited({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+***
+
+
+
+### getHotPosts()
+
+> **getHotPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of hot posts from a specific subreddit.
+
+#### Parameters
+
+##### options
+
+[`GetHotPostsOptions`](../type-aliases/GetHotPostsOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const posts = await reddit.getHotPosts({
+ subredditName: 'memes',
+ timeframe: 'day',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+***
+
+
+
+### getMessages()
+
+> **getMessages**(`options`): `Promise`\<[`Listing`](Listing.md)\<[`PrivateMessage`](PrivateMessage.md)\>\>
+
+Get private messages sent to the currently authenticated user.
+
+#### Parameters
+
+##### options
+
+`Prettify`
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`Listing`](Listing.md)\<[`PrivateMessage`](PrivateMessage.md)\>\>
+
+***
+
+
+
+### getModerationLog()
+
+> **getModerationLog**(`options`): [`Listing`](Listing.md)\<[`ModAction`](../interfaces/ModAction.md)\>
+
+Get the moderation log for a subreddit.
+
+#### Parameters
+
+##### options
+
+[`GetModerationLogOptions`](../type-aliases/GetModerationLogOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`ModAction`](../interfaces/ModAction.md)\>
+
+A Listing of ModAction objects.
+
+#### Example
+
+```ts
+const modActions = await reddit.getModerationLog({
+ subredditName: 'memes',
+ moderatorUsernames: ['spez'],
+ type: 'banuser',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+***
+
+
+
+### getModerators()
+
+> **getModerators**(`options`): [`Listing`](Listing.md)\<[`SubredditModeratorUser`](SubredditModeratorUser.md)\>
+
+Get a list of users who are moderators for a subreddit.
+
+#### Parameters
+
+##### options
+
+`GetSubredditUsersOptions`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditModeratorUser`](SubredditModeratorUser.md)\>
+
+A Listing of SubredditModeratorUser objects.
+
+***
+
+
+
+### getModNotes()
+
+> **getModNotes**(`options`): [`Listing`](Listing.md)\<[`ModNote`](ModNote.md)\>
+
+Get a list of mod notes related to a user in a subreddit.
+
+#### Parameters
+
+##### options
+
+`Prettify`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`ModNote`](ModNote.md)\>
+
+A listing of ModNote objects.
+
+***
+
+
+
+### getModQueue()
+
+#### Call Signature
+
+> **getModQueue**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things requiring moderator review, such as reported things and items.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getModQueue();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getModQueue({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getModQueue**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things requiring moderator review, such as reported things and items.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getModQueue();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getModQueue({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getModQueue**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things requiring moderator review, such as reported things and items.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getModQueue();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getModQueue({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+***
+
+
+
+### getMutedUsers()
+
+> **getMutedUsers**(`options`): [`Listing`](Listing.md)\<[`SubredditMutedUser`](SubredditMutedUser.md)\>
+
+Get a list of users who are muted in a subreddit.
+
+#### Parameters
+
+##### options
+
+`GetSubredditUsersOptions`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditMutedUser`](SubredditMutedUser.md)\>
+
+A listing of SubredditMutedUser objects.
+
+***
+
+
+
+### getNewPosts()
+
+> **getNewPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of new posts from a specific subreddit.
+
+#### Parameters
+
+##### options
+
+[`GetPostsOptions`](../type-aliases/GetPostsOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const posts = await reddit.getNewPosts({
+ subredditName: 'memes',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+***
+
+
+
+### getPostById()
+
+> **getPostById**(`id`): `Promise`\<[`Post`](Post.md)\>
+
+Gets a [Post](Post.md) object by ID
+
+#### Parameters
+
+##### id
+
+`` `t3_${string}` ``
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+A Promise that resolves to a Post object.
+
+***
+
+
+
+### getPostData()
+
+> **getPostData**(`id`): `Promise`\<`undefined` \| [`JSONObject`](../type-aliases/JSONObject.md)\>
+
+Returns PostData, if any, for the post specified by ID.
+
+#### Parameters
+
+##### id
+
+`` `t3_${string}` ``
+
+#### Returns
+
+`Promise`\<`undefined` \| [`JSONObject`](../type-aliases/JSONObject.md)\>
+
+***
+
+
+
+### getPostFlairTemplates()
+
+> **getPostFlairTemplates**(`subredditName`): `Promise`\<[`FlairTemplate`](FlairTemplate.md)[]\>
+
+Get the list of post flair templates for a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to get the post flair templates for.
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)[]\>
+
+A Promise that resolves with an array of FlairTemplate objects.
+
+***
+
+
+
+### getPostsByUser()
+
+> **getPostsByUser**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of posts from a specific user.
+
+#### Parameters
+
+##### options
+
+[`GetPostsByUserOptions`](../type-aliases/GetPostsByUserOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+***
+
+
+
+### getPostStyles()
+
+> **getPostStyles**(`id`): `Promise`\<`StrictRequired`\<`CustomPostStylesInput`\>\>
+
+**`Experimental`**
+
+Get the custom styles for a custom post.
+
+#### Parameters
+
+##### id
+
+`` `t3_${string}` ``
+
+The ID of the post to get styles for.
+
+#### Returns
+
+`Promise`\<`StrictRequired`\<`CustomPostStylesInput`\>\>
+
+***
+
+
+
+### getReports()
+
+#### Call Signature
+
+> **getReports**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things that have been reported.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getReports();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getReports({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getReports**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things that have been reported.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getReports();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getReports({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getReports**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things that have been reported.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getReports();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getReports({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+***
+
+
+
+### getRisingPosts()
+
+> **getRisingPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of hot posts from a specific subreddit.
+
+#### Parameters
+
+##### options
+
+[`GetPostsOptions`](../type-aliases/GetPostsOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const posts = await reddit.getRisingPosts({
+ subredditName: 'memes',
+ timeframe: 'day',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+***
+
+
+
+### getRules()
+
+> **getRules**(`subredditName`): `Promise`\<[`Rule`](Rule.md)[]\>
+
+Get the rules for a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to get the rules for.
+
+#### Returns
+
+`Promise`\<[`Rule`](Rule.md)[]\>
+
+An array of Rule objects.
+
+***
+
+
+
+### getSnoovatarUrl()
+
+> **getSnoovatarUrl**(`username`): `Promise`\<`undefined` \| `string`\>
+
+Get the snoovatar URL for a given username.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the snoovatar to retrieve
+
+#### Returns
+
+`Promise`\<`undefined` \| `string`\>
+
+A Promise that resolves to a URL of the snoovatar image if it exists.
+
+***
+
+
+
+### getSpam()
+
+#### Call Signature
+
+> **getSpam**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things that have been marked as spam or otherwise removed.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getSpam();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getSpam({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getSpam**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things that have been marked as spam or otherwise removed.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getSpam();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getSpam({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getSpam**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things that have been marked as spam or otherwise removed.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getSpam();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getSpam({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+***
+
+
+
+### ~~getSubredditById()~~
+
+> **getSubredditById**(`id`): `Promise`\<`undefined` \| [`Subreddit`](Subreddit.md)\>
+
+Gets a [Subreddit](Subreddit.md) object by ID
+
+#### Parameters
+
+##### id
+
+`` `t5_${string}` ``
+
+The ID (starting with t5_) of the subreddit to retrieve. e.g. t5_2qjpg
+
+#### Returns
+
+`Promise`\<`undefined` \| [`Subreddit`](Subreddit.md)\>
+
+A Promise that resolves a Subreddit object.
+
+#### Deprecated
+
+Use [getSubredditInfoById](#getsubredditinfobyid) instead.
+
+#### Example
+
+```ts
+const memes = await reddit.getSubredditById('t5_2qjpg');
+```
+
+***
+
+
+
+### ~~getSubredditByName()~~
+
+> **getSubredditByName**(`name`): `Promise`\<[`Subreddit`](Subreddit.md)\>
+
+Gets a [Subreddit](Subreddit.md) object by name
+
+#### Parameters
+
+##### name
+
+`string`
+
+The name of a subreddit omitting the r/. This is case insensitive.
+
+#### Returns
+
+`Promise`\<[`Subreddit`](Subreddit.md)\>
+
+A Promise that resolves a Subreddit object.
+
+#### Deprecated
+
+Use [getSubredditInfoByName](#getsubredditinfobyname) instead.
+
+#### Example
+
+```ts
+const askReddit = await reddit.getSubredditByName('askReddit');
+```
+
+***
+
+
+
+### getSubredditInfoById()
+
+> **getSubredditInfoById**(`id`): `Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+
+Gets a [SubredditInfo](../type-aliases/SubredditInfo.md) object by ID
+
+#### Parameters
+
+##### id
+
+`` `t5_${string}` ``
+
+The ID (starting with t5_) of the subreddit to retrieve. e.g. t5_2qjpg
+
+#### Returns
+
+`Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+
+A Promise that resolves a SubredditInfo object.
+
+#### Example
+
+```ts
+const memes = await reddit.getSubredditInfoById('t5_2qjpg');
+```
+
+***
+
+
+
+### getSubredditInfoByName()
+
+> **getSubredditInfoByName**(`name`): `Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+
+Gets a [SubredditInfo](../type-aliases/SubredditInfo.md) object by name
+
+#### Parameters
+
+##### name
+
+`string`
+
+The name of a subreddit omitting the r/. This is case insensitive.
+
+#### Returns
+
+`Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+
+A Promise that resolves a SubredditInfo object.
+
+#### Example
+
+```ts
+const askReddit = await reddit.getSubredditInfoByName('askReddit');
+```
+
+***
+
+
+
+### getSubredditLeaderboard()
+
+> **getSubredditLeaderboard**(`subredditId`): `Promise`\<[`SubredditLeaderboard`](../type-aliases/SubredditLeaderboard.md)\>
+
+Returns a leaderboard for a given subreddit ID.
+
+#### Parameters
+
+##### subredditId
+
+`` `t5_${string}` ``
+
+ID of the subreddit for which the leaderboard is being queried.
+
+#### Returns
+
+`Promise`\<[`SubredditLeaderboard`](../type-aliases/SubredditLeaderboard.md)\>
+
+Leaderboard for the given subreddit.
+
+***
+
+
+
+### getSubredditRemovalReasons()
+
+> **getSubredditRemovalReasons**(`subredditName`): `Promise`\<[`RemovalReason`](../type-aliases/RemovalReason.md)[]\>
+
+Get the list of subreddit's removal reasons (ordered).
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+Name of the subreddit (the 'r/' prefix is optional).
+
+#### Returns
+
+`Promise`\<[`RemovalReason`](../type-aliases/RemovalReason.md)[]\>
+
+Ordered array of Removal Reasons
+
+#### Example
+
+```ts
+const reasons = await reddit.getSubredditRemovalReasons('askReddit');
+
+for (let reason of reasons) {
+ console.log(reason.id, reason.message, reason.title)
+}
+```
+
+***
+
+
+
+### getSubredditStyles()
+
+> **getSubredditStyles**(`subredditId`): `Promise`\<[`SubredditStyles`](../type-aliases/SubredditStyles.md)\>
+
+Returns the styles for a given subreddit ID.
+
+#### Parameters
+
+##### subredditId
+
+`` `t5_${string}` ``
+
+ID of the subreddit from which to retrieve the styles.
+
+#### Returns
+
+`Promise`\<[`SubredditStyles`](../type-aliases/SubredditStyles.md)\>
+
+Styles for the given subreddit.
+
+***
+
+
+
+### getSubscribedSubredditsForCurrentUser()
+
+> **getSubscribedSubredditsForCurrentUser**(`options`): [`Listing`](Listing.md)\<[`Subreddit`](Subreddit.md)\>
+
+Returns a listing of subreddits that the current user is subscribed to.
+This method will execute as the app account by default.
+To execute this on behalf of a user, please contact Reddit.
+
+#### Parameters
+
+##### options
+
+[`GetSubscribedSubredditsForCurrentUserOptions`](../type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md)
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Subreddit`](Subreddit.md)\>
+
+***
+
+
+
+### getTopPosts()
+
+> **getTopPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get a list of controversial posts from a specific subreddit.
+
+#### Parameters
+
+##### options
+
+[`GetPostsOptionsWithTimeframe`](../type-aliases/GetPostsOptionsWithTimeframe.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Example
+
+```ts
+const posts = await reddit.getControversialPosts({
+ subredditName: 'memes',
+ timeframe: 'day',
+ limit: 1000,
+ pageSize: 100
+}).all();
+```
+
+***
+
+
+
+### getUnmoderated()
+
+#### Call Signature
+
+> **getUnmoderated**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things that have yet to be approved/removed by a mod.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getUnmoderated();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getUnmoderated({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getUnmoderated**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things that have yet to be approved/removed by a mod.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getUnmoderated();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getUnmoderated({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getUnmoderated**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things that have yet to be approved/removed by a mod.
+
+##### Parameters
+
+###### options
+
+[`ModLogOptions`](../type-aliases/ModLogOptions.md)\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getUnmoderated();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getUnmoderated({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+***
+
+
+
+### getUserById()
+
+> **getUserById**(`id`): `Promise`\<`undefined` \| [`User`](User.md)\>
+
+Gets a [User](User.md) object by ID
+
+#### Parameters
+
+##### id
+
+`` `t2_${string}` ``
+
+The ID (starting with t2_) of the user to retrieve. e.g. t2_1qjpg
+
+#### Returns
+
+`Promise`\<`undefined` \| [`User`](User.md)\>
+
+A Promise that resolves to a User object.
+
+#### Example
+
+```ts
+const user = await reddit.getUserById('t2_1qjpg');
+```
+
+***
+
+
+
+### getUserByUsername()
+
+> **getUserByUsername**(`username`): `Promise`\<`undefined` \| [`User`](User.md)\>
+
+Gets a [User](User.md) object by username
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user omitting the u/. e.g. 'devvit'
+
+#### Returns
+
+`Promise`\<`undefined` \| [`User`](User.md)\>
+
+A Promise that resolves to a User object or undefined if user is
+ not found (user doesn't exist, account suspended, etc).
+
+#### Example
+
+```ts
+const user = await reddit.getUserByUsername('devvit');
+if (user) {
+ console.log(user)
+}
+```
+
+***
+
+
+
+### getUserFlairTemplates()
+
+> **getUserFlairTemplates**(`subredditName`): `Promise`\<[`FlairTemplate`](FlairTemplate.md)[]\>
+
+Get the list of user flair templates for a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to get the user flair templates for.
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)[]\>
+
+A Promise that resolves with an array of FlairTemplate objects.
+
+***
+
+
+
+### getUserKarmaFromCurrentSubreddit()
+
+> **getUserKarmaFromCurrentSubreddit**(`username`): `Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+Returns the karma for a given user in the current subreddit.
+The user making the request must be a moderator of the subreddit to read another user's karma in the subreddit.
+An exception is if the specified user is the same as the user making the request.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to get the karma for. e.g. 'spez'
+
+#### Returns
+
+`Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+The GetUserKarmaForSubredditResponse, containing the user's karma for posts and comments in the subreddit.
+
+***
+
+
+
+### getVaultByAddress()
+
+> **getVaultByAddress**(`address`): `Promise`\<[`Vault`](../type-aliases/Vault.md)\>
+
+Gets a [Vault](../type-aliases/Vault.md) for the specified address.
+
+#### Parameters
+
+##### address
+
+`string`
+
+The address (starting with 0x) of the Vault.
+
+#### Returns
+
+`Promise`\<[`Vault`](../type-aliases/Vault.md)\>
+
+#### Example
+
+```ts
+const vault = await reddit.getVaultByAddress('0x205ee28744456bDBf180A0Fa7De51e0F116d54Ed');
+```
+
+***
+
+
+
+### getVaultByUserId()
+
+> **getVaultByUserId**(`userId`): `Promise`\<[`Vault`](../type-aliases/Vault.md)\>
+
+Gets a [Vault](../type-aliases/Vault.md) for the specified user.
+
+#### Parameters
+
+##### userId
+
+`` `t2_${string}` ``
+
+The ID (starting with t2_) of the Vault owner.
+
+#### Returns
+
+`Promise`\<[`Vault`](../type-aliases/Vault.md)\>
+
+#### Example
+
+```ts
+const vault = await reddit.getVaultByUserId('t2_1w72');
+```
+
+***
+
+
+
+### getWidgets()
+
+> **getWidgets**(`subredditName`): `Promise`\<[`Widget`](Widget.md)[]\>
+
+Get the widgets for a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to get the widgets for.
+
+#### Returns
+
+`Promise`\<[`Widget`](Widget.md)[]\>
+
+- An array of Widget objects.
+
+***
+
+
+
+### getWikiContributors()
+
+> **getWikiContributors**(`options`): [`Listing`](Listing.md)\<[`SubredditWikiContributorUser`](SubredditWikiContributorUser.md)\>
+
+Get a list of users who are wiki contributors of a subreddit.
+
+#### Parameters
+
+##### options
+
+`GetSubredditUsersOptions`
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditWikiContributorUser`](SubredditWikiContributorUser.md)\>
+
+A Listing of SubredditWikiContributorUser objects.
+
+***
+
+
+
+### getWikiPage()
+
+> **getWikiPage**(`subredditName`, `page`, `revisionId`?): `Promise`\<[`WikiPage`](WikiPage.md)\>
+
+Get a wiki page from a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to get the wiki page from.
+
+##### page
+
+`string`
+
+The name of the wiki page to get.
+
+##### revisionId?
+
+`` `${string}-${string}-${string}-${string}-${string}` ``
+
+The revision ID of the wiki page version to get. Setting this value will return the wiki page
+version at that revision, and leaving it empty will return the latest version.
+
+#### Returns
+
+`Promise`\<[`WikiPage`](WikiPage.md)\>
+
+The requested WikiPage object.
+
+***
+
+
+
+### getWikiPageRevisions()
+
+> **getWikiPageRevisions**(`options`): [`Listing`](Listing.md)\<[`WikiPageRevision`](WikiPageRevision.md)\>
+
+Get the revisions for a wiki page.
+
+#### Parameters
+
+##### options
+
+[`GetPageRevisionsOptions`](../type-aliases/GetPageRevisionsOptions.md)
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`WikiPageRevision`](WikiPageRevision.md)\>
+
+A Listing of WikiPageRevision objects.
+
+***
+
+
+
+### getWikiPages()
+
+> **getWikiPages**(`subredditName`): `Promise`\<`string`[]\>
+
+Get the wiki pages for a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to get the wiki pages from.
+
+#### Returns
+
+`Promise`\<`string`[]\>
+
+A list of the wiki page names for the subreddit.
+
+***
+
+
+
+### getWikiPageSettings()
+
+> **getWikiPageSettings**(`subredditName`, `page`): `Promise`\<[`WikiPageSettings`](WikiPageSettings.md)\>
+
+Get the settings for a wiki page.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit the wiki is in.
+
+##### page
+
+`string`
+
+The name of the wiki page to get the settings for.
+
+#### Returns
+
+`Promise`\<[`WikiPageSettings`](WikiPageSettings.md)\>
+
+A WikiPageSettings object.
+
+***
+
+
+
+### inviteModerator()
+
+> **inviteModerator**(`options`): `Promise`\<`void`\>
+
+Invite a user to become a moderator of a subreddit.
+
+#### Parameters
+
+##### options
+
+`InviteModeratorOptions`
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### markAllMessagesAsRead()
+
+> **markAllMessagesAsRead**(): `Promise`\<`void`\>
+
+Mark all private messages as read.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### mergePostData()
+
+> **mergePostData**(`postId`, `postData`): `Promise`\<`void`\>
+
+Merge the postData on a custom post with the postData specified in the input. This performs a shallow merge.
+
+#### Parameters
+
+##### postId
+
+`` `t3_${string}` ``
+
+##### postData
+
+[`JSONObject`](../type-aliases/JSONObject.md)
+
+Represents the postData to be merged with the existing postData.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the postData could not be merged.
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+
+// Existing postData: { currentScore: 55, settings: { theme: 'dark', fontSize: 12 } }
+
+await post.mergePostData({ settings: { fontSize: 14 } });
+// Result: { currentScore: 55, settings: { fontSize: 14 } }
+```
+
+***
+
+
+
+### muteUser()
+
+> **muteUser**(`options`): `Promise`\<`void`\>
+
+Mute a user in a subreddit. Muting a user prevents them from sending modmail.
+
+#### Parameters
+
+##### options
+
+`MuteUserOptions`
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### remove()
+
+> **remove**(`id`, `isSpam`): `Promise`\<`void`\>
+
+Remove a post or comment.
+
+#### Parameters
+
+##### id
+
+The id of the post (t3_) or comment (t1_) to remove.
+
+`` `t3_${string}` `` | `` `t1_${string}` ``
+
+##### isSpam
+
+`boolean`
+
+Is the post or comment being removed because it's spam?
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Example
+
+```ts
+await reddit.remove('t3_123456', false);
+await reddit.remove('t1_123456', true);
+```
+
+***
+
+
+
+### removeEditorFromWikiPage()
+
+> **removeEditorFromWikiPage**(`subredditName`, `page`, `username`): `Promise`\<`void`\>
+
+Remove an editor from a wiki page.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit the wiki is in.
+
+##### page
+
+`string`
+
+The name of the wiki page to remove the editor from.
+
+##### username
+
+`string`
+
+The username of the user to remove as an editor.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### removeModerator()
+
+> **removeModerator**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Remove a user as a moderator of a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to remove as a moderator. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to remove the user as a moderator from. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### removePostFlair()
+
+> **removePostFlair**(`subredditName`, `postId`): `Promise`\<`void`\>
+
+Remove the flair for a post in a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to remove the flair from.
+
+##### postId
+
+`` `t3_${string}` ``
+
+The ID of the post to remove the flair from.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### removeUser()
+
+> **removeUser**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Remove a user's approval to post in a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to remove approval from. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to remove the user's approval from. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### removeUserFlair()
+
+> **removeUserFlair**(`subredditName`, `username`): `Promise`\<`void`\>
+
+Remove the flair for a user in a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to remove the flair from.
+
+##### username
+
+`string`
+
+The username of the user to remove the flair from.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### removeWikiContributor()
+
+> **removeWikiContributor**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Remove a user's wiki contributor status for a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to remove wiki contributor status from. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to remove the user's wiki contributor status from. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### reorderRules()
+
+> **reorderRules**(`subredditName`, `rules`): `Promise`\<`void`\>
+
+Reorder the rules in a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to reorder the rules for.
+
+##### rules
+
+[`Rule`](Rule.md)[]
+
+Array of Rule objects in the desired order (order is determined by array position).
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### reorderWidgets()
+
+> **reorderWidgets**(`subredditName`, `orderByIds`): `Promise`\<`void`\>
+
+Reorder the widgets for a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to reorder the widgets for.
+
+##### orderByIds
+
+`string`[]
+
+An array of widget IDs in the order that they should be displayed.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### report()
+
+> **report**(`thing`, `options`): `Promise`\<`JsonStatus`\>
+
+Report a Post or Comment
+
+The report is sent to the moderators of the subreddit for review.
+
+#### Parameters
+
+##### thing
+
+Post or Comment
+
+[`Post`](Post.md) | [`Comment`](Comment.md)
+
+##### options
+
+Options
+
+###### reason
+
+`string`
+
+Why the thing is reported
+
+#### Returns
+
+`Promise`\<`JsonStatus`\>
+
+#### Example
+
+```ts
+await reddit.report(post, {
+ reason: 'This is spam!',
+})
+```
+
+***
+
+
+
+### revertWikiPage()
+
+> **revertWikiPage**(`subredditName`, `page`, `revisionId`): `Promise`\<`void`\>
+
+Revert a wiki page to a previous revision.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit the wiki is in.
+
+##### page
+
+`string`
+
+The name of the wiki page to revert.
+
+##### revisionId
+
+`string`
+
+The ID of the revision to revert to.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### revokeModeratorInvite()
+
+> **revokeModeratorInvite**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Revoke a moderator invite for a user to a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to revoke the invite for. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to revoke the invite for. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### sendPrivateMessage()
+
+> **sendPrivateMessage**(`options`): `Promise`\<`void`\>
+
+Sends a private message to a user.
+
+#### Parameters
+
+##### options
+
+[`SendPrivateMessageOptions`](../type-aliases/SendPrivateMessageOptions.md)
+
+The options for sending the message.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A Promise that resolves if the private message was successfully sent.
+
+***
+
+
+
+### ~~sendPrivateMessageAsSubreddit()~~
+
+> **sendPrivateMessageAsSubreddit**(`options`): `Promise`\<`void`\>
+
+Sends a private message to a user on behalf of a subreddit.
+
+#### Parameters
+
+##### options
+
+[`SendPrivateMessageAsSubredditOptions`](../type-aliases/SendPrivateMessageAsSubredditOptions.md)
+
+The options for sending the message as a subreddit.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A Promise that resolves if the private message was successfully sent.
+
+#### Deprecated
+
+No longer working as expected. Use modMail.createConversation with `isAuthorHidden: true` instead
+
+***
+
+
+
+### setModeratorPermissions()
+
+> **setModeratorPermissions**(`username`, `subredditName`, `permissions`): `Promise`\<`void`\>
+
+Update the permissions of a moderator of a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to update the permissions for. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit. e.g. 'memes'
+
+##### permissions
+
+[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]
+
+The permissions to give the user. e.g ['posts', 'wiki']
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### setPostData()
+
+> **setPostData**(`postId`, `postData`): `Promise`\<`void`\>
+
+Set the postData for a custom post. This will replace the existing postData with the postData specified in the input.
+
+#### Parameters
+
+##### postId
+
+`` `t3_${string}` ``
+
+The ID of the post to set the postData for.
+
+##### postData
+
+[`JSONObject`](../type-aliases/JSONObject.md)
+
+Represents the postData to be set, eg: { currentScore: 55, secretWord: 'barbeque' }
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the postData could not be set.
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+
+// Existing postData: { settings: { theme: 'dark', fontSize: 12 } }
+
+await post.setPostData({
+ currentScore: 55,
+ secretWord: 'barbeque',
+});
+// Result: { currentScore: 55, secretWord: 'barbeque' }
+```
+
+***
+
+
+
+### setPostFlair()
+
+> **setPostFlair**(`options`): `Promise`\<`void`\>
+
+Set the flair for a post in a subreddit.
+
+#### Parameters
+
+##### options
+
+[`SetPostFlairOptions`](../type-aliases/SetPostFlairOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### setPostStyles()
+
+> **setPostStyles**(`id`, `styles`): `Promise`\<`void`\>
+
+**`Experimental`**
+
+Set the custom styles for a custom post.
+
+#### Parameters
+
+##### id
+
+`` `t3_${string}` ``
+
+The ID of the post to set styles for.
+
+##### styles
+
+The styles to set for the post. If a value isn't specified, its previous value
+ will be preserved. If `undefined` is passed, all styles will be removed and reset to defaults.
+
+`undefined` | `CustomPostStylesInput`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### setUserFlair()
+
+> **setUserFlair**(`options`): `Promise`\<`void`\>
+
+Set the flair for a user in a subreddit.
+
+#### Parameters
+
+##### options
+
+[`SetUserFlairOptions`](../type-aliases/SetUserFlairOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### setUserFlairBatch()
+
+> **setUserFlairBatch**(`subredditName`, `flairs`): `Promise`\<`FlairCsvResult`[]\>
+
+Set the flair of multiple users in the same subreddit with a single API call.
+Can process up to 100 entries at once.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to edit flairs in.
+
+##### flairs
+
+[`SetUserFlairBatchConfig`](../type-aliases/SetUserFlairBatchConfig.md)[]
+
+Array of user flair configuration objects. If both text and cssClass are empty for a given user the flair will be cleared.
+
+#### Returns
+
+`Promise`\<`FlairCsvResult`[]\>
+
+- Array of statuses for each entry provided.
+
+***
+
+
+
+### submitComment()
+
+> **submitComment**(`options`): `Promise`\<[`Comment`](Comment.md)\>
+
+Submit a new comment to a post or comment.
+
+#### Parameters
+
+##### options
+
+[`CommentSubmissionOptions`](../type-aliases/CommentSubmissionOptions.md) & `object`
+
+You must provide either `options.text` or `options.richtext` but not both.
+
+#### Returns
+
+`Promise`\<[`Comment`](Comment.md)\>
+
+A Promise that resolves to a Comment object.
+
+#### Example
+
+```ts
+const comment = await reddit.submitComment({
+ id: 't1_1qgif',
+ text: 'Hello world!',
+ runAs: 'APP',
+})
+```
+
+***
+
+
+
+### submitCustomPost()
+
+> **submitCustomPost**(`opts`): `Promise`\<[`Post`](Post.md)\>
+
+Submits a new custom post to a subreddit.
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`SubredditOptions`](../type-aliases/SubredditOptions.md) & [`CommonSubmitPostOptions`](../type-aliases/CommonSubmitPostOptions.md) & `object`\>
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+#### Examples
+
+```ts
+const post = await reddit.submitCustomPost({
+ subredditName: 'devvit',
+ title: 'Hello World',
+});
+```
+
+By default, `submitCustomPost()` creates a Post on behalf of the App account, but it may be called on behalf of the User making the request by setting the option `runAs: 'USER'`.
+When using `runAs: 'USER'` to create an experience Post, you must specify the `userGeneratedContent` option. For example:
+
+```ts
+const post = await reddit.submitCustomPost({
+ title: 'My Devvit Post',
+ runAs: 'USER',
+ userGeneratedContent: {
+ text: "hello there",
+ imageUrls: ["https://styles.redditmedia.com/t5_5wa5ww/styles/communityIcon_wyopomb2xb0a1.png", "https://styles.redditmedia.com/t5_49fkib/styles/bannerBackgroundImage_5a4axis7cku61.png"]
+ },
+ subredditName: context.subredditName,
+ textFallback: {
+ text: 'This is a Devvit post!',
+ },
+});
+```
+
+#### See
+
+ - [()\|submitPost()](#submitpost)
+ - [()\|crosspost()](#crosspost)
+
+***
+
+
+
+### submitPost()
+
+> **submitPost**(`opts`): `Promise`\<[`Post`](Post.md)\>
+
+Submits a new post to a subreddit.
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`SubredditOptions`](../type-aliases/SubredditOptions.md) & [`SubmitPostOptions`](../type-aliases/SubmitPostOptions.md)\>
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+#### Example
+
+```ts
+const post = await reddit.submitPost({
+ subredditName: 'devvit',
+ title: 'Hello World',
+ richtext: new RichTextBuilder()
+ .heading({ level: 1 }, (h) => {
+ h.rawText('Hello world');
+ })
+ .codeBlock({}, (cb) => cb.rawText('This post was created via the Devvit API'))
+ .build()
+});
+```
+
+#### See
+
+ - [()\|submitCustomPost()](#submitcustompost)
+ - [()\|crosspost()](#crosspost)
+
+***
+
+
+
+### subscribeToCurrentSubreddit()
+
+> **subscribeToCurrentSubreddit**(): `Promise`\<`void`\>
+
+Subscribes to the subreddit in which the app is installed. No-op if the user is already subscribed.
+This method will run as user by default. Therefore, you must include SUBSCRIBE_TO_SUBREDDIT
+in `permissions.reddit.asUser` in your devvit.json file.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unbanUser()
+
+> **unbanUser**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Unban a user from a subreddit.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to unban. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to unban the user from. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unbanWikiContributor()
+
+> **unbanWikiContributor**(`username`, `subredditName`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to unban. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to unban the user from contributing to the wiki on. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unmuteUser()
+
+> **unmuteUser**(`username`, `subredditName`): `Promise`\<`void`\>
+
+Unmute a user in a subreddit. Unmuting a user allows them to send modmail.
+
+#### Parameters
+
+##### username
+
+`string`
+
+The username of the user to unmute. e.g. 'spez'
+
+##### subredditName
+
+`string`
+
+The name of the subreddit to unmute the user in. e.g. 'memes'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unsubscribeFromCurrentSubreddit()
+
+> **unsubscribeFromCurrentSubreddit**(): `Promise`\<`void`\>
+
+Unsubscribes from the subreddit in which the app is installed. No-op if the user isn't subscribed.
+This method will execute as the app account by default.
+To unsubscribe on behalf of a user, please contact Reddit.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### updateSubredditRemovalReason()
+
+> **updateSubredditRemovalReason**(`subredditName`, `reasonId`, `options`): `Promise`\<`void`\>
+
+Update an existing removal reason in a subreddit.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+Name of the subreddit (the 'r/' prefix is optional).
+
+##### reasonId
+
+`string`
+
+ID of the removal reason (from get or add).
+
+##### options
+
+Options.
+
+###### message
+
+`string`
+
+The message associated with the removal reason.
+
+###### title
+
+`string`
+
+The title of the removal reason.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Example
+
+```ts
+await reddit.updateSubredditRemovalReason('askReddit', 'uuid-abc', {
+ title: 'Spam',
+ message: 'This post was removed for spam.'
+});
+```
+
+***
+
+
+
+### updateWidget()
+
+> **updateWidget**(`widgetData`): `Promise`\<[`Widget`](Widget.md)\>
+
+Update a widget for a subreddit.
+
+#### Parameters
+
+##### widgetData
+
+[`UpdateWidgetData`](../type-aliases/UpdateWidgetData.md)
+
+The data for the widget to update.
+
+#### Returns
+
+`Promise`\<[`Widget`](Widget.md)\>
+
+- The updated Widget object.
+
+***
+
+
+
+### updateWikiPage()
+
+> **updateWikiPage**(`options`): `Promise`\<[`WikiPage`](WikiPage.md)\>
+
+Update a wiki page.
+
+#### Parameters
+
+##### options
+
+[`UpdateWikiPageOptions`](../type-aliases/UpdateWikiPageOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`WikiPage`](WikiPage.md)\>
+
+The updated WikiPage object.
+
+***
+
+
+
+### updateWikiPageSettings()
+
+> **updateWikiPageSettings**(`options`): `Promise`\<[`WikiPageSettings`](WikiPageSettings.md)\>
+
+Update the settings for a wiki page.
+
+#### Parameters
+
+##### options
+
+[`UpdatePageSettingsOptions`](../type-aliases/UpdatePageSettingsOptions.md)
+
+Options for the request
+
+#### Returns
+
+`Promise`\<[`WikiPageSettings`](WikiPageSettings.md)\>
+
+A WikiPageSettings object.
diff --git a/docs/api/public-api/classes/RichTextBuilder.md b/docs/api/public-api/classes/RichTextBuilder.md
index 102ef115..7fda65dd 100644
--- a/docs/api/public-api/classes/RichTextBuilder.md
+++ b/docs/api/public-api/classes/RichTextBuilder.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
@@ -46,16 +46,16 @@ VideoContainer
## Implements
-- `ParagraphContainer`\<`RichTextBuilder`\>
-- `HeadingContainer`\<`RichTextBuilder`\>
-- `HorizontalRuleContainer`\<`RichTextBuilder`\>
-- `BlockQuoteContainer`\<`RichTextBuilder`\>
-- `CodeBlockContainer`\<`RichTextBuilder`\>
-- `EmbedContainer`\<`RichTextBuilder`\>
-- `ListContainer`\<`RichTextBuilder`\>
-- `TableContainer`\<`RichTextBuilder`\>
-- `ImageContainer`\<`RichTextBuilder`\>
-- `VideoContainer`\<`RichTextBuilder`\>
+- [`ParagraphContainer`](../type-aliases/ParagraphContainer.md)\<`RichTextBuilder`\>
+- [`HeadingContainer`](../type-aliases/HeadingContainer.md)\<`RichTextBuilder`\>
+- [`HorizontalRuleContainer`](../type-aliases/HorizontalRuleContainer.md)\<`RichTextBuilder`\>
+- [`BlockQuoteContainer`](../type-aliases/BlockQuoteContainer.md)\<`RichTextBuilder`\>
+- [`CodeBlockContainer`](../type-aliases/CodeBlockContainer.md)\<`RichTextBuilder`\>
+- [`EmbedContainer`](../type-aliases/EmbedContainer.md)\<`RichTextBuilder`\>
+- [`ListContainer`](../type-aliases/ListContainer.md)\<`RichTextBuilder`\>
+- [`TableContainer`](../type-aliases/TableContainer.md)\<`RichTextBuilder`\>
+- [`ImageContainer`](../type-aliases/ImageContainer.md)\<`RichTextBuilder`\>
+- [`VideoContainer`](../type-aliases/VideoContainer.md)\<`RichTextBuilder`\>
## Constructors
@@ -83,7 +83,7 @@ Append an Animated Image
##### \_opts
-`MediaOptions`
+[`MediaOptions`](../type-aliases/MediaOptions.md)
#### Returns
@@ -107,7 +107,7 @@ Append a Block Quote element
##### \_opts
-`BlockQuoteOptions`
+[`BlockQuoteOptions`](../type-aliases/BlockQuoteOptions.md)
##### \_cb
@@ -149,7 +149,7 @@ Append a Code Block element
##### \_opts
-`CodeBlockOptions`
+[`CodeBlockOptions`](../type-aliases/CodeBlockOptions.md)
##### \_cb
@@ -177,7 +177,7 @@ Append an embedded iframe
##### \_opts
-`EmbedOptions`
+[`EmbedOptions`](../type-aliases/EmbedOptions.md)
#### Returns
@@ -201,7 +201,7 @@ Append a Heading
##### \_opts
-`HeadingOptions`
+[`HeadingOptions`](../type-aliases/HeadingOptions.md)
##### \_cb
@@ -247,7 +247,7 @@ Append an Image
##### \_opts
-`MediaOptions`
+[`MediaOptions`](../type-aliases/MediaOptions.md)
#### Returns
@@ -271,7 +271,7 @@ Append a List
##### \_opts
-`ListOptions`
+[`ListOptions`](../type-aliases/ListOptions.md)
##### \_cb
@@ -347,7 +347,7 @@ Append a Video
##### \_opts
-`VideoOptions`
+[`VideoOptions`](../type-aliases/VideoOptions.md)
#### Returns
diff --git a/docs/api/public-api/classes/Rule.md b/docs/api/public-api/classes/Rule.md
new file mode 100644
index 00000000..0bfc0b91
--- /dev/null
+++ b/docs/api/public-api/classes/Rule.md
@@ -0,0 +1,283 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: Rule
+
+## Constructors
+
+
+
+### new Rule()
+
+> **new Rule**(`ruleData`, `subredditName`): `Rule`
+
+#### Parameters
+
+##### ruleData
+
+`SubredditAboutRulesResponse_SubredditRule`
+
+##### subredditName
+
+`string`
+
+#### Returns
+
+`Rule`
+
+## Accessors
+
+
+
+### createdUtc
+
+#### Get Signature
+
+> **get** **createdUtc**(): `number`
+
+The Unix timestamp of when the rule was created.
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### description
+
+#### Get Signature
+
+> **get** **description**(): `string`
+
+The full description of the rule. This appears on your subreddit's sidebar.
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### descriptionHtml
+
+#### Get Signature
+
+> **get** **descriptionHtml**(): `undefined` \| `string`
+
+##### Returns
+
+`undefined` \| `string`
+
+***
+
+
+
+### kind
+
+#### Get Signature
+
+> **get** **kind**(): `"comment"` \| `"all"` \| `"link"`
+
+Which Reddit objects this rule applies to. One of "all", "link" (AKA posts), "comment".
+
+##### Returns
+
+`"comment"` \| `"all"` \| `"link"`
+
+***
+
+
+
+### priority
+
+#### Get Signature
+
+> **get** **priority**(): `number`
+
+The zero-indexed rank of the rule on the subreddit sidebar. Lower numbers appear on top.
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### shortName
+
+#### Get Signature
+
+> **get** **shortName**(): `string`
+
+The name for the rule.
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+The name (without r/ prefix) of the subreddit the rule belongs to.
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### violationReason
+
+#### Get Signature
+
+> **get** **violationReason**(): `string`
+
+Text to show users when reporting content due to this rule. Defaults to the shortName.
+
+##### Returns
+
+`string`
+
+## Methods
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<`Rule`, `"subredditName"` \| `"description"` \| `"kind"` \| `"violationReason"` \| `"shortName"` \| `"priority"` \| `"createdUtc"`\> & `object`
+
+#### Returns
+
+`Pick`\<`Rule`, `"subredditName"` \| `"description"` \| `"kind"` \| `"violationReason"` \| `"shortName"` \| `"priority"` \| `"createdUtc"`\> & `object`
+
+***
+
+
+
+### update()
+
+> **update**(`options`): `Promise`\<`void`\>
+
+Update an existing rule.
+
+#### Parameters
+
+##### options
+
+`Readonly`\<[`UpdateRuleOptions`](../type-aliases/UpdateRuleOptions.md)\>
+
+New values for an existing rule. All fields are optional. If a field is not provided, the existing value will not be changed.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### createRule()
+
+> `static` **createRule**(`subredditName`, `options`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+##### options
+
+`Readonly`\<[`CreateRuleOptions`](../type-aliases/CreateRuleOptions.md)\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### delete()
+
+> `static` **delete**(`subredditName`, `shortName`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+##### shortName
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### getRules()
+
+> `static` **getRules**(`subredditName`): `Promise`\<`Rule`[]\>
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+#### Returns
+
+`Promise`\<`Rule`[]\>
+
+***
+
+
+
+### reorderRules()
+
+> `static` **reorderRules**(`subredditName`, `rules`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+##### rules
+
+`Rule`[]
+
+#### Returns
+
+`Promise`\<`void`\>
diff --git a/docs/api/public-api/classes/SettingsClient.md b/docs/api/public-api/classes/SettingsClient.md
new file mode 100644
index 00000000..a79a0a60
--- /dev/null
+++ b/docs/api/public-api/classes/SettingsClient.md
@@ -0,0 +1,59 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: SettingsClient
+
+## Constructors
+
+
+
+### new SettingsClient()
+
+> **new SettingsClient**(): `SettingsClient`
+
+#### Returns
+
+`SettingsClient`
+
+## Methods
+
+
+
+### get()
+
+> **get**\<`T`\>(`name`): `Promise`\<`undefined` \| `T`\>
+
+#### Type Parameters
+
+##### T
+
+`T` = `undefined` \| `string` \| `number` \| `boolean` \| `string`[]
+
+#### Parameters
+
+##### name
+
+`string`
+
+#### Returns
+
+`Promise`\<`undefined` \| `T`\>
+
+***
+
+
+
+### getAll()
+
+> **getAll**\<`T`\>(): `Promise`\<`T`\>
+
+#### Type Parameters
+
+##### T
+
+`T` *extends* `object` = [`SettingsValues`](../type-aliases/SettingsValues.md)
+
+#### Returns
+
+`Promise`\<`T`\>
diff --git a/docs/api/public-api/classes/Subreddit.md b/docs/api/public-api/classes/Subreddit.md
new file mode 100644
index 00000000..778389c1
--- /dev/null
+++ b/docs/api/public-api/classes/Subreddit.md
@@ -0,0 +1,1541 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: Subreddit
+
+A class representing a subreddit.
+
+## Constructors
+
+
+
+### new Subreddit()
+
+> **new Subreddit**(): `Subreddit`
+
+#### Returns
+
+`Subreddit`
+
+## Accessors
+
+
+
+### createdAt
+
+#### Get Signature
+
+> **get** **createdAt**(): `Date`
+
+The creation date of the subreddit.
+
+##### Returns
+
+`Date`
+
+***
+
+
+
+### description
+
+#### Get Signature
+
+> **get** **description**(): `undefined` \| `string`
+
+The description of the subreddit. Appears in the sidebar of the subreddit.
+
+##### Returns
+
+`undefined` \| `string`
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `` `t5_${string}` ``
+
+The ID (starting with t5_) of the subreddit to retrieve. e.g. t5_2qjpg
+
+##### Returns
+
+`` `t5_${string}` ``
+
+***
+
+
+
+### language
+
+#### Get Signature
+
+> **get** **language**(): `string`
+
+The language of the subreddit.
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### name
+
+#### Get Signature
+
+> **get** **name**(): `string`
+
+The name of a subreddit omitting the r/.
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### nsfw
+
+#### Get Signature
+
+> **get** **nsfw**(): `boolean`
+
+Whether the subreddit is marked as NSFW (Not Safe For Work).
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### numberOfActiveUsers
+
+#### Get Signature
+
+> **get** **numberOfActiveUsers**(): `number`
+
+The number of active users of the subreddit.
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### numberOfSubscribers
+
+#### Get Signature
+
+> **get** **numberOfSubscribers**(): `number`
+
+The number of subscribers of the subreddit.
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### permalink
+
+#### Get Signature
+
+> **get** **permalink**(): `string`
+
+Returns a permalink path
+(R2 bug: subreddit.url is a permalink, and does not have a subreddit.permalink field)
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### postFlairsEnabled
+
+#### Get Signature
+
+> **get** **postFlairsEnabled**(): `boolean`
+
+Whether the post flairs are enabled for this subreddit.
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### settings
+
+#### Get Signature
+
+> **get** **settings**(): [`SubredditSettings`](../type-aliases/SubredditSettings.md)
+
+The settings of the subreddit.
+
+##### Returns
+
+[`SubredditSettings`](../type-aliases/SubredditSettings.md)
+
+***
+
+
+
+### title
+
+#### Get Signature
+
+> **get** **title**(): `undefined` \| `string`
+
+The title of the subreddit.
+
+##### Returns
+
+`undefined` \| `string`
+
+***
+
+
+
+### type
+
+#### Get Signature
+
+> **get** **type**(): [`SubredditType`](../type-aliases/SubredditType.md)
+
+The type of subreddit (public, private, etc.).
+
+##### Returns
+
+[`SubredditType`](../type-aliases/SubredditType.md)
+
+***
+
+
+
+### url
+
+#### Get Signature
+
+> **get** **url**(): `string`
+
+Returns the HTTP URL for the subreddit.
+(R2 bug: subreddit.url is a permalink path and does not return a fully qualified URL in subreddit.url)
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### userFlairsEnabled
+
+#### Get Signature
+
+> **get** **userFlairsEnabled**(): `boolean`
+
+Whether the user flairs are enabled for this subreddit.
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### usersCanAssignPostFlairs
+
+#### Get Signature
+
+> **get** **usersCanAssignPostFlairs**(): `boolean`
+
+Whether the user can assign post flairs.
+This is only true if the post flairs are enabled.
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### usersCanAssignUserFlairs
+
+#### Get Signature
+
+> **get** **usersCanAssignUserFlairs**(): `boolean`
+
+Whether the user can assign user flairs.
+This is only true if the user flairs are enabled.
+
+##### Returns
+
+`boolean`
+
+## Methods
+
+
+
+### addRemovalReason()
+
+> **addRemovalReason**(`options`): `Promise`\<`string`\>
+
+Add a removal reason to this subreddit.
+
+#### Parameters
+
+##### options
+
+###### message
+
+`string`
+
+The message associated with the removal reason.
+
+###### title
+
+`string`
+
+The title of the removal reason.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+The new removal reason ID.
+
+***
+
+
+
+### addWikiContributor()
+
+> **addWikiContributor**(`username`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### approveUser()
+
+> **approveUser**(`username`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### banUser()
+
+> **banUser**(`options`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`BanUserOptions`](../type-aliases/BanUserOptions.md), `"subredditName"`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### banWikiContributor()
+
+> **banWikiContributor**(`options`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`BanWikiContributorOptions`](../type-aliases/BanWikiContributorOptions.md), `"subredditName"`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### createPostFlairTemplate()
+
+> **createPostFlairTemplate**(`options`): `Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`CreateFlairTemplateOptions`](../type-aliases/CreateFlairTemplateOptions.md), `"subredditName"`\>
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+***
+
+
+
+### createRule()
+
+> **createRule**(`options`): `Promise`\<`void`\>
+
+Create a new subreddit rule.
+
+#### Parameters
+
+##### options
+
+`Readonly`\<[`CreateRuleOptions`](../type-aliases/CreateRuleOptions.md)\>
+
+Options for creating a new subreddit rule.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### createUserFlairTemplate()
+
+> **createUserFlairTemplate**(`options`): `Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`CreateFlairTemplateOptions`](../type-aliases/CreateFlairTemplateOptions.md), `"subredditName"`\>
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)\>
+
+***
+
+
+
+### crosspost()
+
+> **crosspost**(`opts`): `Promise`\<[`Post`](Post.md)\>
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`CrosspostOptions`](../type-aliases/CrosspostOptions.md)\>
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+***
+
+
+
+### deleteRemovalReason()
+
+> **deleteRemovalReason**(`reasonId`): `Promise`\<`void`\>
+
+Delete a removal reason from this subreddit.
+
+#### Parameters
+
+##### reasonId
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### getApprovedUsers()
+
+> **getApprovedUsers**(`options`?): [`Listing`](Listing.md)\<[`SubredditContributorUser`](SubredditContributorUser.md)\>
+
+#### Parameters
+
+##### options?
+
+`GetUsersOptions`
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditContributorUser`](SubredditContributorUser.md)\>
+
+***
+
+
+
+### getBannedUsers()
+
+> **getBannedUsers**(`options`?): [`Listing`](Listing.md)\<[`SubredditBannedUser`](SubredditBannedUser.md)\>
+
+#### Parameters
+
+##### options?
+
+`GetUsersOptions`
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditBannedUser`](SubredditBannedUser.md)\>
+
+***
+
+
+
+### getBannedWikiContributors()
+
+> **getBannedWikiContributors**(`options`?): [`Listing`](Listing.md)\<[`SubredditWikiBannedUser`](SubredditWikiBannedUser.md)\>
+
+#### Parameters
+
+##### options?
+
+`GetUsersOptions`
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditWikiBannedUser`](SubredditWikiBannedUser.md)\>
+
+***
+
+
+
+### getCommentsAndPostsByIds()
+
+> **getCommentsAndPostsByIds**(`ids`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things specified by their fullnames.
+
+#### Parameters
+
+##### ids
+
+`string`[]
+
+Array of thing full ids (e.g. t3_abc123)
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+#### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName('askReddit');
+const listing = subreddit.getCommentsAndPostsByIds(['t3_abc123', 't1_xyz123']);
+const items = await listing.all();
+console.log(items) // [Post, Comment]
+```
+
+***
+
+
+
+### getControversialPosts()
+
+> **getControversialPosts**(`options`?): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+#### Parameters
+
+##### options?
+
+`Omit`\<[`GetPostsOptionsWithTimeframe`](../type-aliases/GetPostsOptionsWithTimeframe.md), `"subredditName"`\>
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+***
+
+
+
+### getEdited()
+
+#### Call Signature
+
+> **getEdited**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things that have been edited recently.
+
+##### Parameters
+
+###### options
+
+`AboutSubredditOptions`\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getEdited();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getEdited({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getEdited**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things that have been edited recently.
+
+##### Parameters
+
+###### options
+
+`AboutSubredditOptions`\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getEdited();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getEdited({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getEdited**(`options`?): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things that have been edited recently.
+
+##### Parameters
+
+###### options?
+
+`AboutSubredditOptions`\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getEdited();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getEdited({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+***
+
+
+
+### getModerationLog()
+
+> **getModerationLog**(`options`): [`Listing`](Listing.md)\<[`ModAction`](../interfaces/ModAction.md)\>
+
+#### Parameters
+
+##### options
+
+`GetModerationLogOptions`
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`ModAction`](../interfaces/ModAction.md)\>
+
+***
+
+
+
+### getModerators()
+
+> **getModerators**(`options`?): [`Listing`](Listing.md)\<[`SubredditModeratorUser`](SubredditModeratorUser.md)\>
+
+#### Parameters
+
+##### options?
+
+`GetUsersOptions`
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditModeratorUser`](SubredditModeratorUser.md)\>
+
+***
+
+
+
+### getModQueue()
+
+#### Call Signature
+
+> **getModQueue**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things requiring moderator review, such as reported things and items.
+
+##### Parameters
+
+###### options
+
+`AboutSubredditOptions`\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getModQueue();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getModQueue({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getModQueue**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things requiring moderator review, such as reported things and items.
+
+##### Parameters
+
+###### options
+
+`AboutSubredditOptions`\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getModQueue();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getModQueue({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getModQueue**(`options`?): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things requiring moderator review, such as reported things and items.
+
+##### Parameters
+
+###### options?
+
+`AboutSubredditOptions`\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getModQueue();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getModQueue({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+***
+
+
+
+### getMutedUsers()
+
+> **getMutedUsers**(`options`?): [`Listing`](Listing.md)\<[`SubredditMutedUser`](SubredditMutedUser.md)\>
+
+#### Parameters
+
+##### options?
+
+`GetUsersOptions`
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditMutedUser`](SubredditMutedUser.md)\>
+
+***
+
+
+
+### getPostFlairTemplates()
+
+> **getPostFlairTemplates**(): `Promise`\<[`FlairTemplate`](FlairTemplate.md)[]\>
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)[]\>
+
+***
+
+
+
+### getRemovalReasons()
+
+> **getRemovalReasons**(): `Promise`\<[`RemovalReason`](../type-aliases/RemovalReason.md)[]\>
+
+Get the list of this subreddit's removal reasons (ordered).
+
+#### Returns
+
+`Promise`\<[`RemovalReason`](../type-aliases/RemovalReason.md)[]\>
+
+***
+
+
+
+### getReports()
+
+#### Call Signature
+
+> **getReports**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things that have been reported.
+
+##### Parameters
+
+###### options
+
+`AboutSubredditOptions`\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getReports();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getReports({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getReports**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things that have been reported.
+
+##### Parameters
+
+###### options
+
+`AboutSubredditOptions`\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getReports();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getReports({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getReports**(`options`?): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things that have been reported.
+
+##### Parameters
+
+###### options?
+
+`AboutSubredditOptions`\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getReports();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getReports({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+***
+
+
+
+### getRules()
+
+> **getRules**(): `Promise`\<[`Rule`](Rule.md)[]\>
+
+#### Returns
+
+`Promise`\<[`Rule`](Rule.md)[]\>
+
+***
+
+
+
+### getSpam()
+
+#### Call Signature
+
+> **getSpam**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things that have been marked as spam or otherwise removed.
+
+##### Parameters
+
+###### options
+
+`AboutSubredditOptions`\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getSpam();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getSpam({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getSpam**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things that have been marked as spam or otherwise removed.
+
+##### Parameters
+
+###### options
+
+`AboutSubredditOptions`\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getSpam();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getSpam({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getSpam**(`options`?): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things that have been marked as spam or otherwise removed.
+
+##### Parameters
+
+###### options?
+
+`AboutSubredditOptions`\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getSpam();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getSpam({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+***
+
+
+
+### getTopPosts()
+
+> **getTopPosts**(`options`?): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+#### Parameters
+
+##### options?
+
+`Omit`\<[`GetPostsOptionsWithTimeframe`](../type-aliases/GetPostsOptionsWithTimeframe.md), `"subredditName"`\>
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+***
+
+
+
+### getUnmoderated()
+
+#### Call Signature
+
+> **getUnmoderated**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Return a listing of things that have yet to be approved/removed by a mod.
+
+##### Parameters
+
+###### options
+
+`AboutSubredditOptions`\<`"comment"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getUnmoderated();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getUnmoderated({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getUnmoderated**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Return a listing of things that have yet to be approved/removed by a mod.
+
+##### Parameters
+
+###### options
+
+`AboutSubredditOptions`\<`"post"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getUnmoderated();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getUnmoderated({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+#### Call Signature
+
+> **getUnmoderated**(`options`?): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+Return a listing of things that have yet to be approved/removed by a mod.
+
+##### Parameters
+
+###### options?
+
+`AboutSubredditOptions`\<`"all"`\>
+
+##### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+
+##### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName("mysubreddit")
+let listing = await subreddit.getUnmoderated();
+console.log("Posts and Comments: ", await listing.all())
+listing = await subreddit.getUnmoderated({ type: "post"});
+console.log("Posts: ", await listing.all())
+```
+
+***
+
+
+
+### getUserFlair()
+
+> **getUserFlair**(`options`?): `Promise`\<[`GetUserFlairBySubredditResponse`](../type-aliases/GetUserFlairBySubredditResponse.md)\>
+
+Get the user flair for the given subreddit. If `usernames` is provided then it will return only the
+flair for the specified users. If retrieving the list of flair for a given subreddit and the list is long
+then this method will return a `next` field which can be passed into the `after` field on the next call to
+retrieve the next slice of data. To retrieve the previous slice of data pass the `prev` field into the `before` field
+during the subsequent call.
+
+#### Parameters
+
+##### options?
+
+[`GetUserFlairOptions`](../type-aliases/GetUserFlairOptions.md)
+
+See interface
+
+#### Returns
+
+`Promise`\<[`GetUserFlairBySubredditResponse`](../type-aliases/GetUserFlairBySubredditResponse.md)\>
+
+#### Examples
+
+```ts
+const subredditName = "mysubreddit"
+const subreddit = await reddit.getSubredditByName(subredditName)
+const response = await subreddit.getUserFlair();
+const userFlairList = response.users
+```
+
+```ts
+const response = await subreddit.getUserFlair({ after: "t2_awefae"});
+const userFlairList = response.users
+```
+
+```ts
+const response = await subreddit.getUserFlair({ usernames: ['toxictoad', 'badapple']});
+const userFlairList = response.users
+```
+
+***
+
+
+
+### getUserFlairTemplates()
+
+> **getUserFlairTemplates**(): `Promise`\<[`FlairTemplate`](FlairTemplate.md)[]\>
+
+#### Returns
+
+`Promise`\<[`FlairTemplate`](FlairTemplate.md)[]\>
+
+***
+
+
+
+### getWikiContributors()
+
+> **getWikiContributors**(`options`?): [`Listing`](Listing.md)\<[`SubredditWikiContributorUser`](SubredditWikiContributorUser.md)\>
+
+#### Parameters
+
+##### options?
+
+`GetUsersOptions`
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`SubredditWikiContributorUser`](SubredditWikiContributorUser.md)\>
+
+***
+
+
+
+### inviteModerator()
+
+> **inviteModerator**(`username`, `permissions`?): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+##### permissions?
+
+[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### muteUser()
+
+> **muteUser**(`username`, `note`?): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+##### note?
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### removeModerator()
+
+> **removeModerator**(`username`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### removeUser()
+
+> **removeUser**(`username`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### removeWikiContributor()
+
+> **removeWikiContributor**(`username`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### reorderRules()
+
+> **reorderRules**(`rules`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### rules
+
+[`Rule`](Rule.md)[]
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### revokeModeratorInvite()
+
+> **revokeModeratorInvite**(`username`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### setModeratorPermissions()
+
+> **setModeratorPermissions**(`username`, `permissions`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+##### permissions
+
+[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### submitCustomPost()
+
+> **submitCustomPost**(`opts`): `Promise`\<[`Post`](Post.md)\>
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`SubmitCustomPostOptions`](../type-aliases/SubmitCustomPostOptions.md)\>
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+***
+
+
+
+### submitPost()
+
+> **submitPost**(`opts`): `Promise`\<[`Post`](Post.md)\>
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`SubmitPostOptions`](../type-aliases/SubmitPostOptions.md)\>
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<`Subreddit`, `"title"` \| `"nsfw"` \| `"id"` \| `"type"` \| `"settings"` \| `"name"` \| `"createdAt"` \| `"description"` \| `"language"` \| `"numberOfSubscribers"` \| `"numberOfActiveUsers"`\>
+
+#### Returns
+
+`Pick`\<`Subreddit`, `"title"` \| `"nsfw"` \| `"id"` \| `"type"` \| `"settings"` \| `"name"` \| `"createdAt"` \| `"description"` \| `"language"` \| `"numberOfSubscribers"` \| `"numberOfActiveUsers"`\>
+
+***
+
+
+
+### unbanUser()
+
+> **unbanUser**(`username`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unbanWikiContributor()
+
+> **unbanWikiContributor**(`username`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### unmuteUser()
+
+> **unmuteUser**(`username`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### username
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### updateRemovalReason()
+
+> **updateRemovalReason**(`reasonId`, `options`): `Promise`\<`void`\>
+
+Update a removal reason's title and message in this subreddit.
+
+#### Parameters
+
+##### reasonId
+
+`string`
+
+##### options
+
+###### message
+
+`string`
+
+###### title
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### updateSettings()
+
+> **updateSettings**(`options`): `Promise`\<`void`\>
+
+Updates subreddit settings via the SiteAdmin API. Current settings are used as the base;
+only fields specified in `options` are changed. In order to reset a field to its default value,
+pass the default value as the option value.
+
+#### Parameters
+
+##### options
+
+[`SubredditSettingsOptions`](../type-aliases/SubredditSettingsOptions.md)
+
+Optional settings to apply. Omitted fields are left unchanged.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Example
+
+```ts
+const subreddit = await reddit.getSubredditByName('mysubreddit');
+await subreddit.setSettings({ restrictPosting: true, allowImages: false });
+await subreddit.setSettings({ type: 'restricted', title: 'New Title', description: 'Sidebar text' });
+```
+
+***
+
+
+
+### getSubscribedSubredditsForCurrentUser()
+
+> `static` **getSubscribedSubredditsForCurrentUser**(`options`?): [`Listing`](Listing.md)\<`Subreddit`\>
+
+#### Parameters
+
+##### options?
+
+[`GetSubscribedSubredditsForCurrentUserOptions`](../type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md)
+
+#### Returns
+
+[`Listing`](Listing.md)\<`Subreddit`\>
diff --git a/docs/api/public-api/classes/SubredditBannedUser.md b/docs/api/public-api/classes/SubredditBannedUser.md
new file mode 100644
index 00000000..5a829a30
--- /dev/null
+++ b/docs/api/public-api/classes/SubredditBannedUser.md
@@ -0,0 +1,609 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: SubredditBannedUser
+
+User on a subreddit's banned list; data from the AboutWhere response.
+Use `getBannedUsers()` or `subreddit.getBannedUsers()` to receive a listing of these.
+
+## Extends
+
+- [`User`](User.md)
+
+## Constructors
+
+
+
+### new SubredditBannedUser()
+
+> **new SubredditBannedUser**(): `SubredditBannedUser`
+
+#### Returns
+
+`SubredditBannedUser`
+
+#### Inherited from
+
+[`User`](User.md).[`constructor`](User.md#constructor)
+
+## Properties
+
+
+
+### date
+
+> `readonly` **date**: `Date`
+
+When the ban was created (UTC).
+
+***
+
+
+
+### daysLeft?
+
+> `readonly` `optional` **daysLeft**: `number`
+
+Days remaining on a temporary ban (undefined if permanent).
+
+***
+
+
+
+### note?
+
+> `readonly` `optional` **note**: `string`
+
+Moderator note (visible only to mods).
+
+## Accessors
+
+
+
+### about
+
+#### Get Signature
+
+> **get** **about**(): `string`
+
+The user's public description about themselves. May be empty.
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`about`](User.md#about)
+
+***
+
+
+
+### commentKarma
+
+#### Get Signature
+
+> **get** **commentKarma**(): `number`
+
+The amount of comment karma the user has.
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`User`](User.md).[`commentKarma`](User.md#commentkarma)
+
+***
+
+
+
+### createdAt
+
+#### Get Signature
+
+> **get** **createdAt**(): `Date`
+
+The date the user was created.
+
+##### Returns
+
+`Date`
+
+#### Inherited from
+
+[`User`](User.md).[`createdAt`](User.md#createdat)
+
+***
+
+
+
+### displayName
+
+#### Get Signature
+
+> **get** **displayName**(): `string`
+
+The display name of the user. May be different from their username.
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`displayName`](User.md#displayname)
+
+***
+
+
+
+### hasRedditPremium
+
+#### Get Signature
+
+> **get** **hasRedditPremium**(): `boolean`
+
+Whether the user has Reddit Premium.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`hasRedditPremium`](User.md#hasredditpremium)
+
+***
+
+
+
+### hasVerifiedEmail
+
+#### Get Signature
+
+> **get** **hasVerifiedEmail**(): `boolean`
+
+Indicates whether or not the user has verified their email address.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`hasVerifiedEmail`](User.md#hasverifiedemail)
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `` `t2_${string}` ``
+
+The ID (starting with t2_) of the user to retrieve.
+
+##### Example
+
+```ts
+'t2_1w72'
+```
+
+##### Returns
+
+`` `t2_${string}` ``
+
+#### Inherited from
+
+[`User`](User.md).[`id`](User.md#id)
+
+***
+
+
+
+### isAdmin
+
+#### Get Signature
+
+> **get** **isAdmin**(): `boolean`
+
+Whether the user is a Reddit employee.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`isAdmin`](User.md#isadmin)
+
+***
+
+
+
+### isModerator
+
+#### Get Signature
+
+> **get** **isModerator**(): `boolean`
+
+Whether the user is a moderator of any subreddit.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`isModerator`](User.md#ismoderator)
+
+***
+
+
+
+### linkKarma
+
+#### Get Signature
+
+> **get** **linkKarma**(): `number`
+
+The amount of link karma the user has.
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`User`](User.md).[`linkKarma`](User.md#linkkarma)
+
+***
+
+
+
+### modPermissions
+
+#### Get Signature
+
+> **get** **modPermissions**(): `Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+The permissions the user has on the subreddit.
+
+##### Returns
+
+`Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+#### Inherited from
+
+[`User`](User.md).[`modPermissions`](User.md#modpermissions)
+
+***
+
+
+
+### nsfw
+
+#### Get Signature
+
+> **get** **nsfw**(): `boolean`
+
+Whether the user's profile is marked as NSFW (Not Safe For Work).
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`nsfw`](User.md#nsfw)
+
+***
+
+
+
+### permalink
+
+#### Get Signature
+
+> **get** **permalink**(): `string`
+
+Returns a permalink path relative to https://www.reddit.com
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`permalink`](User.md#permalink)
+
+***
+
+
+
+### showNsfw
+
+#### Get Signature
+
+> **get** **showNsfw**(): `boolean`
+
+Whether the user is over 18 and wishes to see NSFW content.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`showNsfw`](User.md#shownsfw)
+
+***
+
+
+
+### url
+
+#### Get Signature
+
+> **get** **url**(): `string`
+
+Returns the HTTP URL for the user
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`url`](User.md#url)
+
+***
+
+
+
+### username
+
+#### Get Signature
+
+> **get** **username**(): `string`
+
+The username of the user omitting the u/.
+
+##### Example
+
+```ts
+'spez'
+```
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`username`](User.md#username)
+
+## Methods
+
+
+
+### getComments()
+
+> **getComments**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Get the user's comments.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetCommentsByUserOptions`](../type-aliases/GetCommentsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+A Listing of Comment objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getComments`](User.md#getcomments)
+
+***
+
+
+
+### getModPermissionsForSubreddit()
+
+> **getModPermissionsForSubreddit**(`subredditName`): `Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+Get the mod permissions the user has on the subreddit if they are a moderator.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+name of the subreddit
+
+#### Returns
+
+`Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+the moderator permissions the user has on the subreddit
+
+#### Inherited from
+
+[`User`](User.md).[`getModPermissionsForSubreddit`](User.md#getmodpermissionsforsubreddit)
+
+***
+
+
+
+### getPosts()
+
+> **getPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get the user's posts.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetPostsByUserOptions`](../type-aliases/GetPostsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getPosts`](User.md#getposts)
+
+***
+
+
+
+### getSnoovatarUrl()
+
+> **getSnoovatarUrl**(): `Promise`\<`undefined` \| `string`\>
+
+#### Returns
+
+`Promise`\<`undefined` \| `string`\>
+
+#### Inherited from
+
+[`User`](User.md).[`getSnoovatarUrl`](User.md#getsnoovatarurl)
+
+***
+
+
+
+### getSocialLinks()
+
+> **getSocialLinks**(): `Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+Gets social links of the user
+
+#### Returns
+
+`Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+A Promise that resolves an Array of UserSocialLink objects
+
+#### Example
+
+```ts
+const socialLinks = await user.getSocialLinks();
+```
+
+#### Inherited from
+
+[`User`](User.md).[`getSocialLinks`](User.md#getsociallinks)
+
+***
+
+
+
+### getTrophies()
+
+> **getTrophies**(): `Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+Get the trophies displayed on this user's profile.
+
+#### Returns
+
+`Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+A Promise that resolves to an array of Trophy objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getTrophies`](User.md#gettrophies)
+
+***
+
+
+
+### getUserFlairBySubreddit()
+
+> **getUserFlairBySubreddit**(`subreddit`): `Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+Retrieve the user's flair for the subreddit.
+
+#### Parameters
+
+##### subreddit
+
+`string`
+
+The name of the subreddit associated with the user's flair.
+
+#### Returns
+
+`Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+#### Example
+
+```ts
+const username = "badapple"
+const subredditName = "mysubreddit"
+const user = await reddit.getUserByUsername(username);
+const userFlair = await user.getUserFlairBySubreddit(subredditName);
+```
+
+#### Inherited from
+
+[`User`](User.md).[`getUserFlairBySubreddit`](User.md#getuserflairbysubreddit)
+
+***
+
+
+
+### getUserKarmaFromCurrentSubreddit()
+
+> **getUserKarmaFromCurrentSubreddit**(): `Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+Returns the karma for this User in the current subreddit.
+The user making the request must be a moderator of the subreddit to read another user's karma in the subreddit.
+An exception is if the specified user is the same as the user making the request.
+
+#### Returns
+
+`Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+The GetUserKarmaForSubredditResponse, containing the user's karma for comments and posts in the subreddit.
+
+#### Inherited from
+
+[`User`](User.md).[`getUserKarmaFromCurrentSubreddit`](User.md#getuserkarmafromcurrentsubreddit)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`User`](User.md), `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditBannedUser`, `"date"`\> & `object`
+
+#### Returns
+
+`Pick`\<[`User`](User.md), `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditBannedUser`, `"date"`\> & `object`
+
+#### Overrides
+
+[`User`](User.md).[`toJSON`](User.md#tojson)
diff --git a/docs/api/public-api/classes/SubredditContributorUser.md b/docs/api/public-api/classes/SubredditContributorUser.md
new file mode 100644
index 00000000..53477098
--- /dev/null
+++ b/docs/api/public-api/classes/SubredditContributorUser.md
@@ -0,0 +1,589 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: SubredditContributorUser
+
+User approved to post in a subreddit (contributor); data from the AboutWhere response.
+Use `getApprovedUsers()` or `subreddit.getApprovedUsers()` to receive a listing of these.
+
+## Extends
+
+- [`User`](User.md)
+
+## Constructors
+
+
+
+### new SubredditContributorUser()
+
+> **new SubredditContributorUser**(): `SubredditContributorUser`
+
+#### Returns
+
+`SubredditContributorUser`
+
+#### Inherited from
+
+[`User`](User.md).[`constructor`](User.md#constructor)
+
+## Properties
+
+
+
+### date
+
+> `readonly` **date**: `Date`
+
+When the contributor relationship was created (UTC).
+
+## Accessors
+
+
+
+### about
+
+#### Get Signature
+
+> **get** **about**(): `string`
+
+The user's public description about themselves. May be empty.
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`about`](User.md#about)
+
+***
+
+
+
+### commentKarma
+
+#### Get Signature
+
+> **get** **commentKarma**(): `number`
+
+The amount of comment karma the user has.
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`User`](User.md).[`commentKarma`](User.md#commentkarma)
+
+***
+
+
+
+### createdAt
+
+#### Get Signature
+
+> **get** **createdAt**(): `Date`
+
+The date the user was created.
+
+##### Returns
+
+`Date`
+
+#### Inherited from
+
+[`User`](User.md).[`createdAt`](User.md#createdat)
+
+***
+
+
+
+### displayName
+
+#### Get Signature
+
+> **get** **displayName**(): `string`
+
+The display name of the user. May be different from their username.
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`displayName`](User.md#displayname)
+
+***
+
+
+
+### hasRedditPremium
+
+#### Get Signature
+
+> **get** **hasRedditPremium**(): `boolean`
+
+Whether the user has Reddit Premium.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`hasRedditPremium`](User.md#hasredditpremium)
+
+***
+
+
+
+### hasVerifiedEmail
+
+#### Get Signature
+
+> **get** **hasVerifiedEmail**(): `boolean`
+
+Indicates whether or not the user has verified their email address.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`hasVerifiedEmail`](User.md#hasverifiedemail)
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `` `t2_${string}` ``
+
+The ID (starting with t2_) of the user to retrieve.
+
+##### Example
+
+```ts
+'t2_1w72'
+```
+
+##### Returns
+
+`` `t2_${string}` ``
+
+#### Inherited from
+
+[`User`](User.md).[`id`](User.md#id)
+
+***
+
+
+
+### isAdmin
+
+#### Get Signature
+
+> **get** **isAdmin**(): `boolean`
+
+Whether the user is a Reddit employee.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`isAdmin`](User.md#isadmin)
+
+***
+
+
+
+### isModerator
+
+#### Get Signature
+
+> **get** **isModerator**(): `boolean`
+
+Whether the user is a moderator of any subreddit.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`isModerator`](User.md#ismoderator)
+
+***
+
+
+
+### linkKarma
+
+#### Get Signature
+
+> **get** **linkKarma**(): `number`
+
+The amount of link karma the user has.
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`User`](User.md).[`linkKarma`](User.md#linkkarma)
+
+***
+
+
+
+### modPermissions
+
+#### Get Signature
+
+> **get** **modPermissions**(): `Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+The permissions the user has on the subreddit.
+
+##### Returns
+
+`Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+#### Inherited from
+
+[`User`](User.md).[`modPermissions`](User.md#modpermissions)
+
+***
+
+
+
+### nsfw
+
+#### Get Signature
+
+> **get** **nsfw**(): `boolean`
+
+Whether the user's profile is marked as NSFW (Not Safe For Work).
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`nsfw`](User.md#nsfw)
+
+***
+
+
+
+### permalink
+
+#### Get Signature
+
+> **get** **permalink**(): `string`
+
+Returns a permalink path relative to https://www.reddit.com
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`permalink`](User.md#permalink)
+
+***
+
+
+
+### showNsfw
+
+#### Get Signature
+
+> **get** **showNsfw**(): `boolean`
+
+Whether the user is over 18 and wishes to see NSFW content.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`showNsfw`](User.md#shownsfw)
+
+***
+
+
+
+### url
+
+#### Get Signature
+
+> **get** **url**(): `string`
+
+Returns the HTTP URL for the user
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`url`](User.md#url)
+
+***
+
+
+
+### username
+
+#### Get Signature
+
+> **get** **username**(): `string`
+
+The username of the user omitting the u/.
+
+##### Example
+
+```ts
+'spez'
+```
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`username`](User.md#username)
+
+## Methods
+
+
+
+### getComments()
+
+> **getComments**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Get the user's comments.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetCommentsByUserOptions`](../type-aliases/GetCommentsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+A Listing of Comment objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getComments`](User.md#getcomments)
+
+***
+
+
+
+### getModPermissionsForSubreddit()
+
+> **getModPermissionsForSubreddit**(`subredditName`): `Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+Get the mod permissions the user has on the subreddit if they are a moderator.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+name of the subreddit
+
+#### Returns
+
+`Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+the moderator permissions the user has on the subreddit
+
+#### Inherited from
+
+[`User`](User.md).[`getModPermissionsForSubreddit`](User.md#getmodpermissionsforsubreddit)
+
+***
+
+
+
+### getPosts()
+
+> **getPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get the user's posts.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetPostsByUserOptions`](../type-aliases/GetPostsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getPosts`](User.md#getposts)
+
+***
+
+
+
+### getSnoovatarUrl()
+
+> **getSnoovatarUrl**(): `Promise`\<`undefined` \| `string`\>
+
+#### Returns
+
+`Promise`\<`undefined` \| `string`\>
+
+#### Inherited from
+
+[`User`](User.md).[`getSnoovatarUrl`](User.md#getsnoovatarurl)
+
+***
+
+
+
+### getSocialLinks()
+
+> **getSocialLinks**(): `Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+Gets social links of the user
+
+#### Returns
+
+`Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+A Promise that resolves an Array of UserSocialLink objects
+
+#### Example
+
+```ts
+const socialLinks = await user.getSocialLinks();
+```
+
+#### Inherited from
+
+[`User`](User.md).[`getSocialLinks`](User.md#getsociallinks)
+
+***
+
+
+
+### getTrophies()
+
+> **getTrophies**(): `Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+Get the trophies displayed on this user's profile.
+
+#### Returns
+
+`Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+A Promise that resolves to an array of Trophy objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getTrophies`](User.md#gettrophies)
+
+***
+
+
+
+### getUserFlairBySubreddit()
+
+> **getUserFlairBySubreddit**(`subreddit`): `Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+Retrieve the user's flair for the subreddit.
+
+#### Parameters
+
+##### subreddit
+
+`string`
+
+The name of the subreddit associated with the user's flair.
+
+#### Returns
+
+`Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+#### Example
+
+```ts
+const username = "badapple"
+const subredditName = "mysubreddit"
+const user = await reddit.getUserByUsername(username);
+const userFlair = await user.getUserFlairBySubreddit(subredditName);
+```
+
+#### Inherited from
+
+[`User`](User.md).[`getUserFlairBySubreddit`](User.md#getuserflairbysubreddit)
+
+***
+
+
+
+### getUserKarmaFromCurrentSubreddit()
+
+> **getUserKarmaFromCurrentSubreddit**(): `Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+Returns the karma for this User in the current subreddit.
+The user making the request must be a moderator of the subreddit to read another user's karma in the subreddit.
+An exception is if the specified user is the same as the user making the request.
+
+#### Returns
+
+`Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+The GetUserKarmaForSubredditResponse, containing the user's karma for comments and posts in the subreddit.
+
+#### Inherited from
+
+[`User`](User.md).[`getUserKarmaFromCurrentSubreddit`](User.md#getuserkarmafromcurrentsubreddit)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`User`](User.md), `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditContributorUser`, `"date"`\>
+
+#### Returns
+
+`Pick`\<[`User`](User.md), `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditContributorUser`, `"date"`\>
+
+#### Overrides
+
+[`User`](User.md).[`toJSON`](User.md#tojson)
diff --git a/docs/api/public-api/classes/SubredditDescription.md b/docs/api/public-api/classes/SubredditDescription.md
new file mode 100644
index 00000000..1d50852d
--- /dev/null
+++ b/docs/api/public-api/classes/SubredditDescription.md
@@ -0,0 +1,25 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: SubredditDescription
+
+## Constructors
+
+
+
+### new SubredditDescription()
+
+> **new SubredditDescription**(): `SubredditDescription`
+
+#### Returns
+
+`SubredditDescription`
+
+## Properties
+
+
+
+### markdown?
+
+> `optional` **markdown**: `string`
diff --git a/docs/api/public-api/classes/SubredditModeratorUser.md b/docs/api/public-api/classes/SubredditModeratorUser.md
new file mode 100644
index 00000000..eab0cb74
--- /dev/null
+++ b/docs/api/public-api/classes/SubredditModeratorUser.md
@@ -0,0 +1,618 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: SubredditModeratorUser
+
+Moderator of a subreddit; data from the AboutWhere response.
+Use `getModerators()` or `subreddit.getModerators()` to receive a listing of these.
+
+## Extends
+
+- [`User`](User.md)
+
+## Constructors
+
+
+
+### new SubredditModeratorUser()
+
+> **new SubredditModeratorUser**(): `SubredditModeratorUser`
+
+#### Returns
+
+`SubredditModeratorUser`
+
+#### Inherited from
+
+[`User`](User.md).[`constructor`](User.md#constructor)
+
+## Properties
+
+
+
+### date
+
+> `readonly` **date**: `Date`
+
+When the moderator relationship was created (UTC).
+
+***
+
+
+
+### moderatorInfo
+
+> `readonly` **moderatorInfo**: `object`
+
+Moderator relationship data for the subreddit.
+Nested to avoid shadowing [User.modPermissions](User.md#modpermissions), which stores permissions across all subreddits.
+
+#### authorFlairCssClass?
+
+> `optional` **authorFlairCssClass**: `string`
+
+User flair CSS class in the subreddit.
+
+#### authorFlairText?
+
+> `optional` **authorFlairText**: `string`
+
+User flair text in the subreddit.
+
+#### modPermissions
+
+> **modPermissions**: [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]
+
+Moderator permissions for this subreddit.
+
+## Accessors
+
+
+
+### about
+
+#### Get Signature
+
+> **get** **about**(): `string`
+
+The user's public description about themselves. May be empty.
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`about`](User.md#about)
+
+***
+
+
+
+### commentKarma
+
+#### Get Signature
+
+> **get** **commentKarma**(): `number`
+
+The amount of comment karma the user has.
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`User`](User.md).[`commentKarma`](User.md#commentkarma)
+
+***
+
+
+
+### createdAt
+
+#### Get Signature
+
+> **get** **createdAt**(): `Date`
+
+The date the user was created.
+
+##### Returns
+
+`Date`
+
+#### Inherited from
+
+[`User`](User.md).[`createdAt`](User.md#createdat)
+
+***
+
+
+
+### displayName
+
+#### Get Signature
+
+> **get** **displayName**(): `string`
+
+The display name of the user. May be different from their username.
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`displayName`](User.md#displayname)
+
+***
+
+
+
+### hasRedditPremium
+
+#### Get Signature
+
+> **get** **hasRedditPremium**(): `boolean`
+
+Whether the user has Reddit Premium.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`hasRedditPremium`](User.md#hasredditpremium)
+
+***
+
+
+
+### hasVerifiedEmail
+
+#### Get Signature
+
+> **get** **hasVerifiedEmail**(): `boolean`
+
+Indicates whether or not the user has verified their email address.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`hasVerifiedEmail`](User.md#hasverifiedemail)
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `` `t2_${string}` ``
+
+The ID (starting with t2_) of the user to retrieve.
+
+##### Example
+
+```ts
+'t2_1w72'
+```
+
+##### Returns
+
+`` `t2_${string}` ``
+
+#### Inherited from
+
+[`User`](User.md).[`id`](User.md#id)
+
+***
+
+
+
+### isAdmin
+
+#### Get Signature
+
+> **get** **isAdmin**(): `boolean`
+
+Whether the user is a Reddit employee.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`isAdmin`](User.md#isadmin)
+
+***
+
+
+
+### isModerator
+
+#### Get Signature
+
+> **get** **isModerator**(): `boolean`
+
+Whether the user is a moderator of any subreddit.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`isModerator`](User.md#ismoderator)
+
+***
+
+
+
+### linkKarma
+
+#### Get Signature
+
+> **get** **linkKarma**(): `number`
+
+The amount of link karma the user has.
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`User`](User.md).[`linkKarma`](User.md#linkkarma)
+
+***
+
+
+
+### modPermissions
+
+#### Get Signature
+
+> **get** **modPermissions**(): `Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+The permissions the user has on the subreddit.
+
+##### Returns
+
+`Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+#### Inherited from
+
+[`User`](User.md).[`modPermissions`](User.md#modpermissions)
+
+***
+
+
+
+### nsfw
+
+#### Get Signature
+
+> **get** **nsfw**(): `boolean`
+
+Whether the user's profile is marked as NSFW (Not Safe For Work).
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`nsfw`](User.md#nsfw)
+
+***
+
+
+
+### permalink
+
+#### Get Signature
+
+> **get** **permalink**(): `string`
+
+Returns a permalink path relative to https://www.reddit.com
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`permalink`](User.md#permalink)
+
+***
+
+
+
+### showNsfw
+
+#### Get Signature
+
+> **get** **showNsfw**(): `boolean`
+
+Whether the user is over 18 and wishes to see NSFW content.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`showNsfw`](User.md#shownsfw)
+
+***
+
+
+
+### url
+
+#### Get Signature
+
+> **get** **url**(): `string`
+
+Returns the HTTP URL for the user
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`url`](User.md#url)
+
+***
+
+
+
+### username
+
+#### Get Signature
+
+> **get** **username**(): `string`
+
+The username of the user omitting the u/.
+
+##### Example
+
+```ts
+'spez'
+```
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`username`](User.md#username)
+
+## Methods
+
+
+
+### getComments()
+
+> **getComments**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Get the user's comments.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetCommentsByUserOptions`](../type-aliases/GetCommentsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+A Listing of Comment objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getComments`](User.md#getcomments)
+
+***
+
+
+
+### getModPermissionsForSubreddit()
+
+> **getModPermissionsForSubreddit**(`subredditName`): `Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+Get the mod permissions the user has on the subreddit if they are a moderator.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+name of the subreddit
+
+#### Returns
+
+`Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+the moderator permissions the user has on the subreddit
+
+#### Inherited from
+
+[`User`](User.md).[`getModPermissionsForSubreddit`](User.md#getmodpermissionsforsubreddit)
+
+***
+
+
+
+### getPosts()
+
+> **getPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get the user's posts.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetPostsByUserOptions`](../type-aliases/GetPostsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getPosts`](User.md#getposts)
+
+***
+
+
+
+### getSnoovatarUrl()
+
+> **getSnoovatarUrl**(): `Promise`\<`undefined` \| `string`\>
+
+#### Returns
+
+`Promise`\<`undefined` \| `string`\>
+
+#### Inherited from
+
+[`User`](User.md).[`getSnoovatarUrl`](User.md#getsnoovatarurl)
+
+***
+
+
+
+### getSocialLinks()
+
+> **getSocialLinks**(): `Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+Gets social links of the user
+
+#### Returns
+
+`Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+A Promise that resolves an Array of UserSocialLink objects
+
+#### Example
+
+```ts
+const socialLinks = await user.getSocialLinks();
+```
+
+#### Inherited from
+
+[`User`](User.md).[`getSocialLinks`](User.md#getsociallinks)
+
+***
+
+
+
+### getTrophies()
+
+> **getTrophies**(): `Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+Get the trophies displayed on this user's profile.
+
+#### Returns
+
+`Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+A Promise that resolves to an array of Trophy objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getTrophies`](User.md#gettrophies)
+
+***
+
+
+
+### getUserFlairBySubreddit()
+
+> **getUserFlairBySubreddit**(`subreddit`): `Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+Retrieve the user's flair for the subreddit.
+
+#### Parameters
+
+##### subreddit
+
+`string`
+
+The name of the subreddit associated with the user's flair.
+
+#### Returns
+
+`Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+#### Example
+
+```ts
+const username = "badapple"
+const subredditName = "mysubreddit"
+const user = await reddit.getUserByUsername(username);
+const userFlair = await user.getUserFlairBySubreddit(subredditName);
+```
+
+#### Inherited from
+
+[`User`](User.md).[`getUserFlairBySubreddit`](User.md#getuserflairbysubreddit)
+
+***
+
+
+
+### getUserKarmaFromCurrentSubreddit()
+
+> **getUserKarmaFromCurrentSubreddit**(): `Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+Returns the karma for this User in the current subreddit.
+The user making the request must be a moderator of the subreddit to read another user's karma in the subreddit.
+An exception is if the specified user is the same as the user making the request.
+
+#### Returns
+
+`Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+The GetUserKarmaForSubredditResponse, containing the user's karma for comments and posts in the subreddit.
+
+#### Inherited from
+
+[`User`](User.md).[`getUserKarmaFromCurrentSubreddit`](User.md#getuserkarmafromcurrentsubreddit)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`User`](User.md), `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditModeratorUser`, `"date"` \| `"moderatorInfo"`\>
+
+#### Returns
+
+`Pick`\<[`User`](User.md), `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditModeratorUser`, `"date"` \| `"moderatorInfo"`\>
+
+#### Overrides
+
+[`User`](User.md).[`toJSON`](User.md#tojson)
diff --git a/docs/api/public-api/classes/SubredditMutedUser.md b/docs/api/public-api/classes/SubredditMutedUser.md
new file mode 100644
index 00000000..d8a744cc
--- /dev/null
+++ b/docs/api/public-api/classes/SubredditMutedUser.md
@@ -0,0 +1,589 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: SubredditMutedUser
+
+User on a subreddit's muted list; data from the AboutWhere response.
+Use `getMutedUsers()` or `subreddit.getMutedUsers()` to receive a listing of these.
+
+## Extends
+
+- [`User`](User.md)
+
+## Constructors
+
+
+
+### new SubredditMutedUser()
+
+> **new SubredditMutedUser**(): `SubredditMutedUser`
+
+#### Returns
+
+`SubredditMutedUser`
+
+#### Inherited from
+
+[`User`](User.md).[`constructor`](User.md#constructor)
+
+## Properties
+
+
+
+### date
+
+> `readonly` **date**: `Date`
+
+When the mute was created (UTC).
+
+## Accessors
+
+
+
+### about
+
+#### Get Signature
+
+> **get** **about**(): `string`
+
+The user's public description about themselves. May be empty.
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`about`](User.md#about)
+
+***
+
+
+
+### commentKarma
+
+#### Get Signature
+
+> **get** **commentKarma**(): `number`
+
+The amount of comment karma the user has.
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`User`](User.md).[`commentKarma`](User.md#commentkarma)
+
+***
+
+
+
+### createdAt
+
+#### Get Signature
+
+> **get** **createdAt**(): `Date`
+
+The date the user was created.
+
+##### Returns
+
+`Date`
+
+#### Inherited from
+
+[`User`](User.md).[`createdAt`](User.md#createdat)
+
+***
+
+
+
+### displayName
+
+#### Get Signature
+
+> **get** **displayName**(): `string`
+
+The display name of the user. May be different from their username.
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`displayName`](User.md#displayname)
+
+***
+
+
+
+### hasRedditPremium
+
+#### Get Signature
+
+> **get** **hasRedditPremium**(): `boolean`
+
+Whether the user has Reddit Premium.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`hasRedditPremium`](User.md#hasredditpremium)
+
+***
+
+
+
+### hasVerifiedEmail
+
+#### Get Signature
+
+> **get** **hasVerifiedEmail**(): `boolean`
+
+Indicates whether or not the user has verified their email address.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`hasVerifiedEmail`](User.md#hasverifiedemail)
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `` `t2_${string}` ``
+
+The ID (starting with t2_) of the user to retrieve.
+
+##### Example
+
+```ts
+'t2_1w72'
+```
+
+##### Returns
+
+`` `t2_${string}` ``
+
+#### Inherited from
+
+[`User`](User.md).[`id`](User.md#id)
+
+***
+
+
+
+### isAdmin
+
+#### Get Signature
+
+> **get** **isAdmin**(): `boolean`
+
+Whether the user is a Reddit employee.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`isAdmin`](User.md#isadmin)
+
+***
+
+
+
+### isModerator
+
+#### Get Signature
+
+> **get** **isModerator**(): `boolean`
+
+Whether the user is a moderator of any subreddit.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`isModerator`](User.md#ismoderator)
+
+***
+
+
+
+### linkKarma
+
+#### Get Signature
+
+> **get** **linkKarma**(): `number`
+
+The amount of link karma the user has.
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`User`](User.md).[`linkKarma`](User.md#linkkarma)
+
+***
+
+
+
+### modPermissions
+
+#### Get Signature
+
+> **get** **modPermissions**(): `Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+The permissions the user has on the subreddit.
+
+##### Returns
+
+`Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+#### Inherited from
+
+[`User`](User.md).[`modPermissions`](User.md#modpermissions)
+
+***
+
+
+
+### nsfw
+
+#### Get Signature
+
+> **get** **nsfw**(): `boolean`
+
+Whether the user's profile is marked as NSFW (Not Safe For Work).
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`nsfw`](User.md#nsfw)
+
+***
+
+
+
+### permalink
+
+#### Get Signature
+
+> **get** **permalink**(): `string`
+
+Returns a permalink path relative to https://www.reddit.com
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`permalink`](User.md#permalink)
+
+***
+
+
+
+### showNsfw
+
+#### Get Signature
+
+> **get** **showNsfw**(): `boolean`
+
+Whether the user is over 18 and wishes to see NSFW content.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`showNsfw`](User.md#shownsfw)
+
+***
+
+
+
+### url
+
+#### Get Signature
+
+> **get** **url**(): `string`
+
+Returns the HTTP URL for the user
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`url`](User.md#url)
+
+***
+
+
+
+### username
+
+#### Get Signature
+
+> **get** **username**(): `string`
+
+The username of the user omitting the u/.
+
+##### Example
+
+```ts
+'spez'
+```
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`username`](User.md#username)
+
+## Methods
+
+
+
+### getComments()
+
+> **getComments**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Get the user's comments.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetCommentsByUserOptions`](../type-aliases/GetCommentsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+A Listing of Comment objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getComments`](User.md#getcomments)
+
+***
+
+
+
+### getModPermissionsForSubreddit()
+
+> **getModPermissionsForSubreddit**(`subredditName`): `Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+Get the mod permissions the user has on the subreddit if they are a moderator.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+name of the subreddit
+
+#### Returns
+
+`Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+the moderator permissions the user has on the subreddit
+
+#### Inherited from
+
+[`User`](User.md).[`getModPermissionsForSubreddit`](User.md#getmodpermissionsforsubreddit)
+
+***
+
+
+
+### getPosts()
+
+> **getPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get the user's posts.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetPostsByUserOptions`](../type-aliases/GetPostsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getPosts`](User.md#getposts)
+
+***
+
+
+
+### getSnoovatarUrl()
+
+> **getSnoovatarUrl**(): `Promise`\<`undefined` \| `string`\>
+
+#### Returns
+
+`Promise`\<`undefined` \| `string`\>
+
+#### Inherited from
+
+[`User`](User.md).[`getSnoovatarUrl`](User.md#getsnoovatarurl)
+
+***
+
+
+
+### getSocialLinks()
+
+> **getSocialLinks**(): `Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+Gets social links of the user
+
+#### Returns
+
+`Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+A Promise that resolves an Array of UserSocialLink objects
+
+#### Example
+
+```ts
+const socialLinks = await user.getSocialLinks();
+```
+
+#### Inherited from
+
+[`User`](User.md).[`getSocialLinks`](User.md#getsociallinks)
+
+***
+
+
+
+### getTrophies()
+
+> **getTrophies**(): `Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+Get the trophies displayed on this user's profile.
+
+#### Returns
+
+`Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+A Promise that resolves to an array of Trophy objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getTrophies`](User.md#gettrophies)
+
+***
+
+
+
+### getUserFlairBySubreddit()
+
+> **getUserFlairBySubreddit**(`subreddit`): `Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+Retrieve the user's flair for the subreddit.
+
+#### Parameters
+
+##### subreddit
+
+`string`
+
+The name of the subreddit associated with the user's flair.
+
+#### Returns
+
+`Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+#### Example
+
+```ts
+const username = "badapple"
+const subredditName = "mysubreddit"
+const user = await reddit.getUserByUsername(username);
+const userFlair = await user.getUserFlairBySubreddit(subredditName);
+```
+
+#### Inherited from
+
+[`User`](User.md).[`getUserFlairBySubreddit`](User.md#getuserflairbysubreddit)
+
+***
+
+
+
+### getUserKarmaFromCurrentSubreddit()
+
+> **getUserKarmaFromCurrentSubreddit**(): `Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+Returns the karma for this User in the current subreddit.
+The user making the request must be a moderator of the subreddit to read another user's karma in the subreddit.
+An exception is if the specified user is the same as the user making the request.
+
+#### Returns
+
+`Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+The GetUserKarmaForSubredditResponse, containing the user's karma for comments and posts in the subreddit.
+
+#### Inherited from
+
+[`User`](User.md).[`getUserKarmaFromCurrentSubreddit`](User.md#getuserkarmafromcurrentsubreddit)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`User`](User.md), `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditMutedUser`, `"date"`\>
+
+#### Returns
+
+`Pick`\<[`User`](User.md), `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditMutedUser`, `"date"`\>
+
+#### Overrides
+
+[`User`](User.md).[`toJSON`](User.md#tojson)
diff --git a/docs/api/public-api/classes/SubredditRulesWidget.md b/docs/api/public-api/classes/SubredditRulesWidget.md
new file mode 100644
index 00000000..fab10a3d
--- /dev/null
+++ b/docs/api/public-api/classes/SubredditRulesWidget.md
@@ -0,0 +1,139 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: SubredditRulesWidget
+
+## Extends
+
+- [`Widget`](Widget.md)
+
+## Constructors
+
+
+
+### new SubredditRulesWidget()
+
+> **new SubredditRulesWidget**(`subredditAboutRulesRsp`, `widgetData`, `subredditName`): `SubredditRulesWidget`
+
+#### Parameters
+
+##### subredditAboutRulesRsp
+
+`SubredditAboutRulesResponse`
+
+##### widgetData
+
+`GetWidgetsResponse_WidgetItem`
+
+##### subredditName
+
+`string`
+
+#### Returns
+
+`SubredditRulesWidget`
+
+#### Overrides
+
+[`Widget`](Widget.md).[`constructor`](Widget.md#constructor)
+
+## Accessors
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`id`](Widget.md#id)
+
+***
+
+
+
+### name
+
+#### Get Signature
+
+> **get** **name**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`name`](Widget.md#name)
+
+***
+
+
+
+### rules
+
+#### Get Signature
+
+> **get** **rules**(): `SubredditRule`[]
+
+##### Returns
+
+`SubredditRule`[]
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`subredditName`](Widget.md#subredditname)
+
+## Methods
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`delete`](Widget.md#delete)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`SubredditRulesWidget`, `"rules"`\>
+
+#### Returns
+
+`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`SubredditRulesWidget`, `"rules"`\>
+
+#### Overrides
+
+[`Widget`](Widget.md).[`toJSON`](Widget.md#tojson)
diff --git a/docs/api/public-api/classes/SubredditWikiBannedUser.md b/docs/api/public-api/classes/SubredditWikiBannedUser.md
new file mode 100644
index 00000000..5dbfa747
--- /dev/null
+++ b/docs/api/public-api/classes/SubredditWikiBannedUser.md
@@ -0,0 +1,609 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: SubredditWikiBannedUser
+
+User on a subreddit's wiki-banned list; data from the AboutWhere response.
+Use `getBannedWikiContributors()` or `subreddit.getBannedWikiContributors()` to receive a listing of these.
+
+## Extends
+
+- [`User`](User.md)
+
+## Constructors
+
+
+
+### new SubredditWikiBannedUser()
+
+> **new SubredditWikiBannedUser**(): `SubredditWikiBannedUser`
+
+#### Returns
+
+`SubredditWikiBannedUser`
+
+#### Inherited from
+
+[`User`](User.md).[`constructor`](User.md#constructor)
+
+## Properties
+
+
+
+### date
+
+> `readonly` **date**: `Date`
+
+When the wiki ban was created (UTC).
+
+***
+
+
+
+### daysLeft?
+
+> `readonly` `optional` **daysLeft**: `number`
+
+Days remaining on a temporary ban (undefined if permanent).
+
+***
+
+
+
+### note?
+
+> `readonly` `optional` **note**: `string`
+
+Moderator note.
+
+## Accessors
+
+
+
+### about
+
+#### Get Signature
+
+> **get** **about**(): `string`
+
+The user's public description about themselves. May be empty.
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`about`](User.md#about)
+
+***
+
+
+
+### commentKarma
+
+#### Get Signature
+
+> **get** **commentKarma**(): `number`
+
+The amount of comment karma the user has.
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`User`](User.md).[`commentKarma`](User.md#commentkarma)
+
+***
+
+
+
+### createdAt
+
+#### Get Signature
+
+> **get** **createdAt**(): `Date`
+
+The date the user was created.
+
+##### Returns
+
+`Date`
+
+#### Inherited from
+
+[`User`](User.md).[`createdAt`](User.md#createdat)
+
+***
+
+
+
+### displayName
+
+#### Get Signature
+
+> **get** **displayName**(): `string`
+
+The display name of the user. May be different from their username.
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`displayName`](User.md#displayname)
+
+***
+
+
+
+### hasRedditPremium
+
+#### Get Signature
+
+> **get** **hasRedditPremium**(): `boolean`
+
+Whether the user has Reddit Premium.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`hasRedditPremium`](User.md#hasredditpremium)
+
+***
+
+
+
+### hasVerifiedEmail
+
+#### Get Signature
+
+> **get** **hasVerifiedEmail**(): `boolean`
+
+Indicates whether or not the user has verified their email address.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`hasVerifiedEmail`](User.md#hasverifiedemail)
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `` `t2_${string}` ``
+
+The ID (starting with t2_) of the user to retrieve.
+
+##### Example
+
+```ts
+'t2_1w72'
+```
+
+##### Returns
+
+`` `t2_${string}` ``
+
+#### Inherited from
+
+[`User`](User.md).[`id`](User.md#id)
+
+***
+
+
+
+### isAdmin
+
+#### Get Signature
+
+> **get** **isAdmin**(): `boolean`
+
+Whether the user is a Reddit employee.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`isAdmin`](User.md#isadmin)
+
+***
+
+
+
+### isModerator
+
+#### Get Signature
+
+> **get** **isModerator**(): `boolean`
+
+Whether the user is a moderator of any subreddit.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`isModerator`](User.md#ismoderator)
+
+***
+
+
+
+### linkKarma
+
+#### Get Signature
+
+> **get** **linkKarma**(): `number`
+
+The amount of link karma the user has.
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`User`](User.md).[`linkKarma`](User.md#linkkarma)
+
+***
+
+
+
+### modPermissions
+
+#### Get Signature
+
+> **get** **modPermissions**(): `Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+The permissions the user has on the subreddit.
+
+##### Returns
+
+`Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+#### Inherited from
+
+[`User`](User.md).[`modPermissions`](User.md#modpermissions)
+
+***
+
+
+
+### nsfw
+
+#### Get Signature
+
+> **get** **nsfw**(): `boolean`
+
+Whether the user's profile is marked as NSFW (Not Safe For Work).
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`nsfw`](User.md#nsfw)
+
+***
+
+
+
+### permalink
+
+#### Get Signature
+
+> **get** **permalink**(): `string`
+
+Returns a permalink path relative to https://www.reddit.com
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`permalink`](User.md#permalink)
+
+***
+
+
+
+### showNsfw
+
+#### Get Signature
+
+> **get** **showNsfw**(): `boolean`
+
+Whether the user is over 18 and wishes to see NSFW content.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`showNsfw`](User.md#shownsfw)
+
+***
+
+
+
+### url
+
+#### Get Signature
+
+> **get** **url**(): `string`
+
+Returns the HTTP URL for the user
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`url`](User.md#url)
+
+***
+
+
+
+### username
+
+#### Get Signature
+
+> **get** **username**(): `string`
+
+The username of the user omitting the u/.
+
+##### Example
+
+```ts
+'spez'
+```
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`username`](User.md#username)
+
+## Methods
+
+
+
+### getComments()
+
+> **getComments**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Get the user's comments.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetCommentsByUserOptions`](../type-aliases/GetCommentsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+A Listing of Comment objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getComments`](User.md#getcomments)
+
+***
+
+
+
+### getModPermissionsForSubreddit()
+
+> **getModPermissionsForSubreddit**(`subredditName`): `Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+Get the mod permissions the user has on the subreddit if they are a moderator.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+name of the subreddit
+
+#### Returns
+
+`Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+the moderator permissions the user has on the subreddit
+
+#### Inherited from
+
+[`User`](User.md).[`getModPermissionsForSubreddit`](User.md#getmodpermissionsforsubreddit)
+
+***
+
+
+
+### getPosts()
+
+> **getPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get the user's posts.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetPostsByUserOptions`](../type-aliases/GetPostsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getPosts`](User.md#getposts)
+
+***
+
+
+
+### getSnoovatarUrl()
+
+> **getSnoovatarUrl**(): `Promise`\<`undefined` \| `string`\>
+
+#### Returns
+
+`Promise`\<`undefined` \| `string`\>
+
+#### Inherited from
+
+[`User`](User.md).[`getSnoovatarUrl`](User.md#getsnoovatarurl)
+
+***
+
+
+
+### getSocialLinks()
+
+> **getSocialLinks**(): `Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+Gets social links of the user
+
+#### Returns
+
+`Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+A Promise that resolves an Array of UserSocialLink objects
+
+#### Example
+
+```ts
+const socialLinks = await user.getSocialLinks();
+```
+
+#### Inherited from
+
+[`User`](User.md).[`getSocialLinks`](User.md#getsociallinks)
+
+***
+
+
+
+### getTrophies()
+
+> **getTrophies**(): `Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+Get the trophies displayed on this user's profile.
+
+#### Returns
+
+`Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+A Promise that resolves to an array of Trophy objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getTrophies`](User.md#gettrophies)
+
+***
+
+
+
+### getUserFlairBySubreddit()
+
+> **getUserFlairBySubreddit**(`subreddit`): `Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+Retrieve the user's flair for the subreddit.
+
+#### Parameters
+
+##### subreddit
+
+`string`
+
+The name of the subreddit associated with the user's flair.
+
+#### Returns
+
+`Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+#### Example
+
+```ts
+const username = "badapple"
+const subredditName = "mysubreddit"
+const user = await reddit.getUserByUsername(username);
+const userFlair = await user.getUserFlairBySubreddit(subredditName);
+```
+
+#### Inherited from
+
+[`User`](User.md).[`getUserFlairBySubreddit`](User.md#getuserflairbysubreddit)
+
+***
+
+
+
+### getUserKarmaFromCurrentSubreddit()
+
+> **getUserKarmaFromCurrentSubreddit**(): `Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+Returns the karma for this User in the current subreddit.
+The user making the request must be a moderator of the subreddit to read another user's karma in the subreddit.
+An exception is if the specified user is the same as the user making the request.
+
+#### Returns
+
+`Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+The GetUserKarmaForSubredditResponse, containing the user's karma for comments and posts in the subreddit.
+
+#### Inherited from
+
+[`User`](User.md).[`getUserKarmaFromCurrentSubreddit`](User.md#getuserkarmafromcurrentsubreddit)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`User`](User.md), `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditWikiBannedUser`, `"date"`\> & `object`
+
+#### Returns
+
+`Pick`\<[`User`](User.md), `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditWikiBannedUser`, `"date"`\> & `object`
+
+#### Overrides
+
+[`User`](User.md).[`toJSON`](User.md#tojson)
diff --git a/docs/api/public-api/classes/SubredditWikiContributorUser.md b/docs/api/public-api/classes/SubredditWikiContributorUser.md
new file mode 100644
index 00000000..6efbc825
--- /dev/null
+++ b/docs/api/public-api/classes/SubredditWikiContributorUser.md
@@ -0,0 +1,589 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: SubredditWikiContributorUser
+
+User with wiki contributor access; data from the AboutWhere response.
+Use `getWikiContributors()` or `subreddit.getWikiContributors()` to receive a listing of these.
+
+## Extends
+
+- [`User`](User.md)
+
+## Constructors
+
+
+
+### new SubredditWikiContributorUser()
+
+> **new SubredditWikiContributorUser**(): `SubredditWikiContributorUser`
+
+#### Returns
+
+`SubredditWikiContributorUser`
+
+#### Inherited from
+
+[`User`](User.md).[`constructor`](User.md#constructor)
+
+## Properties
+
+
+
+### date
+
+> `readonly` **date**: `Date`
+
+When the wiki contributor relationship was created (UTC).
+
+## Accessors
+
+
+
+### about
+
+#### Get Signature
+
+> **get** **about**(): `string`
+
+The user's public description about themselves. May be empty.
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`about`](User.md#about)
+
+***
+
+
+
+### commentKarma
+
+#### Get Signature
+
+> **get** **commentKarma**(): `number`
+
+The amount of comment karma the user has.
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`User`](User.md).[`commentKarma`](User.md#commentkarma)
+
+***
+
+
+
+### createdAt
+
+#### Get Signature
+
+> **get** **createdAt**(): `Date`
+
+The date the user was created.
+
+##### Returns
+
+`Date`
+
+#### Inherited from
+
+[`User`](User.md).[`createdAt`](User.md#createdat)
+
+***
+
+
+
+### displayName
+
+#### Get Signature
+
+> **get** **displayName**(): `string`
+
+The display name of the user. May be different from their username.
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`displayName`](User.md#displayname)
+
+***
+
+
+
+### hasRedditPremium
+
+#### Get Signature
+
+> **get** **hasRedditPremium**(): `boolean`
+
+Whether the user has Reddit Premium.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`hasRedditPremium`](User.md#hasredditpremium)
+
+***
+
+
+
+### hasVerifiedEmail
+
+#### Get Signature
+
+> **get** **hasVerifiedEmail**(): `boolean`
+
+Indicates whether or not the user has verified their email address.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`hasVerifiedEmail`](User.md#hasverifiedemail)
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `` `t2_${string}` ``
+
+The ID (starting with t2_) of the user to retrieve.
+
+##### Example
+
+```ts
+'t2_1w72'
+```
+
+##### Returns
+
+`` `t2_${string}` ``
+
+#### Inherited from
+
+[`User`](User.md).[`id`](User.md#id)
+
+***
+
+
+
+### isAdmin
+
+#### Get Signature
+
+> **get** **isAdmin**(): `boolean`
+
+Whether the user is a Reddit employee.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`isAdmin`](User.md#isadmin)
+
+***
+
+
+
+### isModerator
+
+#### Get Signature
+
+> **get** **isModerator**(): `boolean`
+
+Whether the user is a moderator of any subreddit.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`isModerator`](User.md#ismoderator)
+
+***
+
+
+
+### linkKarma
+
+#### Get Signature
+
+> **get** **linkKarma**(): `number`
+
+The amount of link karma the user has.
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`User`](User.md).[`linkKarma`](User.md#linkkarma)
+
+***
+
+
+
+### modPermissions
+
+#### Get Signature
+
+> **get** **modPermissions**(): `Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+The permissions the user has on the subreddit.
+
+##### Returns
+
+`Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+#### Inherited from
+
+[`User`](User.md).[`modPermissions`](User.md#modpermissions)
+
+***
+
+
+
+### nsfw
+
+#### Get Signature
+
+> **get** **nsfw**(): `boolean`
+
+Whether the user's profile is marked as NSFW (Not Safe For Work).
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`nsfw`](User.md#nsfw)
+
+***
+
+
+
+### permalink
+
+#### Get Signature
+
+> **get** **permalink**(): `string`
+
+Returns a permalink path relative to https://www.reddit.com
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`permalink`](User.md#permalink)
+
+***
+
+
+
+### showNsfw
+
+#### Get Signature
+
+> **get** **showNsfw**(): `boolean`
+
+Whether the user is over 18 and wishes to see NSFW content.
+
+##### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`User`](User.md).[`showNsfw`](User.md#shownsfw)
+
+***
+
+
+
+### url
+
+#### Get Signature
+
+> **get** **url**(): `string`
+
+Returns the HTTP URL for the user
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`url`](User.md#url)
+
+***
+
+
+
+### username
+
+#### Get Signature
+
+> **get** **username**(): `string`
+
+The username of the user omitting the u/.
+
+##### Example
+
+```ts
+'spez'
+```
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`User`](User.md).[`username`](User.md#username)
+
+## Methods
+
+
+
+### getComments()
+
+> **getComments**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Get the user's comments.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetCommentsByUserOptions`](../type-aliases/GetCommentsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+A Listing of Comment objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getComments`](User.md#getcomments)
+
+***
+
+
+
+### getModPermissionsForSubreddit()
+
+> **getModPermissionsForSubreddit**(`subredditName`): `Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+Get the mod permissions the user has on the subreddit if they are a moderator.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+name of the subreddit
+
+#### Returns
+
+`Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+the moderator permissions the user has on the subreddit
+
+#### Inherited from
+
+[`User`](User.md).[`getModPermissionsForSubreddit`](User.md#getmodpermissionsforsubreddit)
+
+***
+
+
+
+### getPosts()
+
+> **getPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get the user's posts.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetPostsByUserOptions`](../type-aliases/GetPostsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getPosts`](User.md#getposts)
+
+***
+
+
+
+### getSnoovatarUrl()
+
+> **getSnoovatarUrl**(): `Promise`\<`undefined` \| `string`\>
+
+#### Returns
+
+`Promise`\<`undefined` \| `string`\>
+
+#### Inherited from
+
+[`User`](User.md).[`getSnoovatarUrl`](User.md#getsnoovatarurl)
+
+***
+
+
+
+### getSocialLinks()
+
+> **getSocialLinks**(): `Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+Gets social links of the user
+
+#### Returns
+
+`Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+A Promise that resolves an Array of UserSocialLink objects
+
+#### Example
+
+```ts
+const socialLinks = await user.getSocialLinks();
+```
+
+#### Inherited from
+
+[`User`](User.md).[`getSocialLinks`](User.md#getsociallinks)
+
+***
+
+
+
+### getTrophies()
+
+> **getTrophies**(): `Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+Get the trophies displayed on this user's profile.
+
+#### Returns
+
+`Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+A Promise that resolves to an array of Trophy objects.
+
+#### Inherited from
+
+[`User`](User.md).[`getTrophies`](User.md#gettrophies)
+
+***
+
+
+
+### getUserFlairBySubreddit()
+
+> **getUserFlairBySubreddit**(`subreddit`): `Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+Retrieve the user's flair for the subreddit.
+
+#### Parameters
+
+##### subreddit
+
+`string`
+
+The name of the subreddit associated with the user's flair.
+
+#### Returns
+
+`Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+#### Example
+
+```ts
+const username = "badapple"
+const subredditName = "mysubreddit"
+const user = await reddit.getUserByUsername(username);
+const userFlair = await user.getUserFlairBySubreddit(subredditName);
+```
+
+#### Inherited from
+
+[`User`](User.md).[`getUserFlairBySubreddit`](User.md#getuserflairbysubreddit)
+
+***
+
+
+
+### getUserKarmaFromCurrentSubreddit()
+
+> **getUserKarmaFromCurrentSubreddit**(): `Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+Returns the karma for this User in the current subreddit.
+The user making the request must be a moderator of the subreddit to read another user's karma in the subreddit.
+An exception is if the specified user is the same as the user making the request.
+
+#### Returns
+
+`Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+The GetUserKarmaForSubredditResponse, containing the user's karma for comments and posts in the subreddit.
+
+#### Inherited from
+
+[`User`](User.md).[`getUserKarmaFromCurrentSubreddit`](User.md#getuserkarmafromcurrentsubreddit)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`User`](User.md), `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditWikiContributorUser`, `"date"`\>
+
+#### Returns
+
+`Pick`\<[`User`](User.md), `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditWikiContributorUser`, `"date"`\>
+
+#### Overrides
+
+[`User`](User.md).[`toJSON`](User.md#tojson)
diff --git a/docs/api/public-api/classes/SubredditWikiSettings.md b/docs/api/public-api/classes/SubredditWikiSettings.md
new file mode 100644
index 00000000..d4ed37f2
--- /dev/null
+++ b/docs/api/public-api/classes/SubredditWikiSettings.md
@@ -0,0 +1,25 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: SubredditWikiSettings
+
+## Constructors
+
+
+
+### new SubredditWikiSettings()
+
+> **new SubredditWikiSettings**(): `SubredditWikiSettings`
+
+#### Returns
+
+`SubredditWikiSettings`
+
+## Properties
+
+
+
+### wikiEditMode?
+
+> `optional` **wikiEditMode**: [`WikiEditMode`](../type-aliases/WikiEditMode.md)
diff --git a/docs/api/public-api/classes/TextAreaWidget.md b/docs/api/public-api/classes/TextAreaWidget.md
new file mode 100644
index 00000000..ab066841
--- /dev/null
+++ b/docs/api/public-api/classes/TextAreaWidget.md
@@ -0,0 +1,149 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: TextAreaWidget
+
+## Extends
+
+- [`Widget`](Widget.md)
+
+## Constructors
+
+
+
+### new TextAreaWidget()
+
+> **new TextAreaWidget**(`widgetData`, `subredditName`): `TextAreaWidget`
+
+#### Parameters
+
+##### widgetData
+
+`GetWidgetsResponse_WidgetItem`
+
+##### subredditName
+
+`string`
+
+#### Returns
+
+`TextAreaWidget`
+
+#### Overrides
+
+[`Widget`](Widget.md).[`constructor`](Widget.md#constructor)
+
+## Accessors
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`id`](Widget.md#id)
+
+***
+
+
+
+### name
+
+#### Get Signature
+
+> **get** **name**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`name`](Widget.md#name)
+
+***
+
+
+
+### styles
+
+#### Get Signature
+
+> **get** **styles**(): `WidgetStyles`
+
+##### Returns
+
+`WidgetStyles`
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`subredditName`](Widget.md#subredditname)
+
+***
+
+
+
+### text
+
+#### Get Signature
+
+> **get** **text**(): `string`
+
+##### Returns
+
+`string`
+
+## Methods
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`Widget`](Widget.md).[`delete`](Widget.md#delete)
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`TextAreaWidget`, `"text"` \| `"styles"`\>
+
+#### Returns
+
+`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`TextAreaWidget`, `"text"` \| `"styles"`\>
+
+#### Overrides
+
+[`Widget`](Widget.md).[`toJSON`](Widget.md#tojson)
diff --git a/docs/api/public-api/classes/User.md b/docs/api/public-api/classes/User.md
new file mode 100644
index 00000000..5d9b527e
--- /dev/null
+++ b/docs/api/public-api/classes/User.md
@@ -0,0 +1,479 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: User
+
+A class representing a user.
+
+## Extended by
+
+- [`SubredditBannedUser`](SubredditBannedUser.md)
+- [`SubredditMutedUser`](SubredditMutedUser.md)
+- [`SubredditWikiBannedUser`](SubredditWikiBannedUser.md)
+- [`SubredditContributorUser`](SubredditContributorUser.md)
+- [`SubredditWikiContributorUser`](SubredditWikiContributorUser.md)
+- [`SubredditModeratorUser`](SubredditModeratorUser.md)
+
+## Constructors
+
+
+
+### new User()
+
+> **new User**(): `User`
+
+#### Returns
+
+`User`
+
+## Accessors
+
+
+
+### about
+
+#### Get Signature
+
+> **get** **about**(): `string`
+
+The user's public description about themselves. May be empty.
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### commentKarma
+
+#### Get Signature
+
+> **get** **commentKarma**(): `number`
+
+The amount of comment karma the user has.
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### createdAt
+
+#### Get Signature
+
+> **get** **createdAt**(): `Date`
+
+The date the user was created.
+
+##### Returns
+
+`Date`
+
+***
+
+
+
+### displayName
+
+#### Get Signature
+
+> **get** **displayName**(): `string`
+
+The display name of the user. May be different from their username.
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### hasRedditPremium
+
+#### Get Signature
+
+> **get** **hasRedditPremium**(): `boolean`
+
+Whether the user has Reddit Premium.
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### hasVerifiedEmail
+
+#### Get Signature
+
+> **get** **hasVerifiedEmail**(): `boolean`
+
+Indicates whether or not the user has verified their email address.
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `` `t2_${string}` ``
+
+The ID (starting with t2_) of the user to retrieve.
+
+##### Example
+
+```ts
+'t2_1w72'
+```
+
+##### Returns
+
+`` `t2_${string}` ``
+
+***
+
+
+
+### isAdmin
+
+#### Get Signature
+
+> **get** **isAdmin**(): `boolean`
+
+Whether the user is a Reddit employee.
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### isModerator
+
+#### Get Signature
+
+> **get** **isModerator**(): `boolean`
+
+Whether the user is a moderator of any subreddit.
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### linkKarma
+
+#### Get Signature
+
+> **get** **linkKarma**(): `number`
+
+The amount of link karma the user has.
+
+##### Returns
+
+`number`
+
+***
+
+
+
+### modPermissions
+
+#### Get Signature
+
+> **get** **modPermissions**(): `Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+The permissions the user has on the subreddit.
+
+##### Returns
+
+`Map`\<`string`, [`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+***
+
+
+
+### nsfw
+
+#### Get Signature
+
+> **get** **nsfw**(): `boolean`
+
+Whether the user's profile is marked as NSFW (Not Safe For Work).
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### permalink
+
+#### Get Signature
+
+> **get** **permalink**(): `string`
+
+Returns a permalink path relative to https://www.reddit.com
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### showNsfw
+
+#### Get Signature
+
+> **get** **showNsfw**(): `boolean`
+
+Whether the user is over 18 and wishes to see NSFW content.
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### url
+
+#### Get Signature
+
+> **get** **url**(): `string`
+
+Returns the HTTP URL for the user
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### username
+
+#### Get Signature
+
+> **get** **username**(): `string`
+
+The username of the user omitting the u/.
+
+##### Example
+
+```ts
+'spez'
+```
+
+##### Returns
+
+`string`
+
+## Methods
+
+
+
+### getComments()
+
+> **getComments**(`options`): [`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+Get the user's comments.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetCommentsByUserOptions`](../type-aliases/GetCommentsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Comment`](Comment.md)\>
+
+A Listing of Comment objects.
+
+***
+
+
+
+### getModPermissionsForSubreddit()
+
+> **getModPermissionsForSubreddit**(`subredditName`): `Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+Get the mod permissions the user has on the subreddit if they are a moderator.
+
+#### Parameters
+
+##### subredditName
+
+`string`
+
+name of the subreddit
+
+#### Returns
+
+`Promise`\<[`ModeratorPermission`](../type-aliases/ModeratorPermission.md)[]\>
+
+the moderator permissions the user has on the subreddit
+
+***
+
+
+
+### getPosts()
+
+> **getPosts**(`options`): [`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+Get the user's posts.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetPostsByUserOptions`](../type-aliases/GetPostsByUserOptions.md), `"username"`\>
+
+Options for the request
+
+#### Returns
+
+[`Listing`](Listing.md)\<[`Post`](Post.md)\>
+
+A Listing of Post objects.
+
+***
+
+
+
+### getSnoovatarUrl()
+
+> **getSnoovatarUrl**(): `Promise`\<`undefined` \| `string`\>
+
+#### Returns
+
+`Promise`\<`undefined` \| `string`\>
+
+***
+
+
+
+### getSocialLinks()
+
+> **getSocialLinks**(): `Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+Gets social links of the user
+
+#### Returns
+
+`Promise`\<[`UserSocialLink`](../type-aliases/UserSocialLink.md)[]\>
+
+A Promise that resolves an Array of UserSocialLink objects
+
+#### Example
+
+```ts
+const socialLinks = await user.getSocialLinks();
+```
+
+***
+
+
+
+### getTrophies()
+
+> **getTrophies**(): `Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+Get the trophies displayed on this user's profile.
+
+#### Returns
+
+`Promise`\<[`Trophy`](../type-aliases/Trophy.md)[]\>
+
+A Promise that resolves to an array of Trophy objects.
+
+***
+
+
+
+### getUserFlairBySubreddit()
+
+> **getUserFlairBySubreddit**(`subreddit`): `Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+Retrieve the user's flair for the subreddit.
+
+#### Parameters
+
+##### subreddit
+
+`string`
+
+The name of the subreddit associated with the user's flair.
+
+#### Returns
+
+`Promise`\<`undefined` \| [`UserFlair`](../type-aliases/UserFlair.md)\>
+
+#### Example
+
+```ts
+const username = "badapple"
+const subredditName = "mysubreddit"
+const user = await reddit.getUserByUsername(username);
+const userFlair = await user.getUserFlairBySubreddit(subredditName);
+```
+
+***
+
+
+
+### getUserKarmaFromCurrentSubreddit()
+
+> **getUserKarmaFromCurrentSubreddit**(): `Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+Returns the karma for this User in the current subreddit.
+The user making the request must be a moderator of the subreddit to read another user's karma in the subreddit.
+An exception is if the specified user is the same as the user making the request.
+
+#### Returns
+
+`Promise`\<`GetUserKarmaForSubredditResponse`\>
+
+The GetUserKarmaForSubredditResponse, containing the user's karma for comments and posts in the subreddit.
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<`User`, `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object`
+
+#### Returns
+
+`Pick`\<`User`, `"nsfw"` \| `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"`\> & `object`
diff --git a/docs/api/public-api/classes/Widget.md b/docs/api/public-api/classes/Widget.md
new file mode 100644
index 00000000..71f6123a
--- /dev/null
+++ b/docs/api/public-api/classes/Widget.md
@@ -0,0 +1,104 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: Widget
+
+## Extended by
+
+- [`ImageWidget`](ImageWidget.md)
+- [`CalendarWidget`](CalendarWidget.md)
+- [`TextAreaWidget`](TextAreaWidget.md)
+- [`ButtonWidget`](ButtonWidget.md)
+- [`CommunityListWidget`](CommunityListWidget.md)
+- [`PostFlairWidget`](PostFlairWidget.md)
+- [`CustomWidget`](CustomWidget.md)
+- [`SubredditRulesWidget`](SubredditRulesWidget.md)
+
+## Constructors
+
+
+
+### new Widget()
+
+> **new Widget**(`widgetData`, `subredditName`): `Widget`
+
+#### Parameters
+
+##### widgetData
+
+`GetWidgetsResponse_WidgetItem`
+
+##### subredditName
+
+`string`
+
+#### Returns
+
+`Widget`
+
+## Accessors
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### name
+
+#### Get Signature
+
+> **get** **name**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+##### Returns
+
+`string`
+
+## Methods
+
+
+
+### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<`Widget`, `"subredditName"` \| `"id"` \| `"name"`\>
+
+#### Returns
+
+`Pick`\<`Widget`, `"subredditName"` \| `"id"` \| `"name"`\>
diff --git a/docs/api/public-api/classes/WikiPage.md b/docs/api/public-api/classes/WikiPage.md
new file mode 100644
index 00000000..667c4630
--- /dev/null
+++ b/docs/api/public-api/classes/WikiPage.md
@@ -0,0 +1,295 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: WikiPage
+
+## Constructors
+
+
+
+### new WikiPage()
+
+> **new WikiPage**(): `WikiPage`
+
+#### Returns
+
+`WikiPage`
+
+## Accessors
+
+
+
+### content
+
+#### Get Signature
+
+> **get** **content**(): `string`
+
+The Markdown content of the page.
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### contentHtml
+
+#### Get Signature
+
+> **get** **contentHtml**(): `string`
+
+The HTML content of the page.
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### name
+
+#### Get Signature
+
+> **get** **name**(): `string`
+
+The name of the page.
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### revisionAuthor
+
+#### Get Signature
+
+> **get** **revisionAuthor**(): `undefined` \| [`User`](User.md)
+
+The author of this revision.
+
+##### Returns
+
+`undefined` \| [`User`](User.md)
+
+***
+
+
+
+### revisionDate
+
+#### Get Signature
+
+> **get** **revisionDate**(): `Date`
+
+The date of the revision.
+
+##### Returns
+
+`Date`
+
+***
+
+
+
+### revisionId
+
+#### Get Signature
+
+> **get** **revisionId**(): `` `${string}-${string}-${string}-${string}-${string}` ``
+
+The ID of the revision.
+
+##### Returns
+
+`` `${string}-${string}-${string}-${string}-${string}` ``
+
+***
+
+
+
+### revisionReason
+
+#### Get Signature
+
+> **get** **revisionReason**(): `string`
+
+The reason for the revision.
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### subredditName
+
+#### Get Signature
+
+> **get** **subredditName**(): `string`
+
+The name of the subreddit the page is in.
+
+##### Returns
+
+`string`
+
+## Methods
+
+
+
+### addEditor()
+
+> **addEditor**(`username`): `Promise`\<`void`\>
+
+Add an editor to this page.
+
+#### Parameters
+
+##### username
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### getRevisions()
+
+> **getRevisions**(`options`): `Promise`\<[`Listing`](Listing.md)\<[`WikiPageRevision`](WikiPageRevision.md)\>\>
+
+Get the revisions for this page.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`GetPageRevisionsOptions`](../type-aliases/GetPageRevisionsOptions.md), `"subredditName"` \| `"page"`\>
+
+#### Returns
+
+`Promise`\<[`Listing`](Listing.md)\<[`WikiPageRevision`](WikiPageRevision.md)\>\>
+
+***
+
+
+
+### getSettings()
+
+> **getSettings**(): `Promise`\<[`WikiPageSettings`](WikiPageSettings.md)\>
+
+Get the settings for this page.
+
+#### Returns
+
+`Promise`\<[`WikiPageSettings`](WikiPageSettings.md)\>
+
+***
+
+
+
+### removeEditor()
+
+> **removeEditor**(`username`): `Promise`\<`void`\>
+
+Remove an editor from this page.
+
+#### Parameters
+
+##### username
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### revertTo()
+
+> **revertTo**(`revisionId`): `Promise`\<`void`\>
+
+Revert this page to a previous revision.
+
+#### Parameters
+
+##### revisionId
+
+`` `${string}-${string}-${string}-${string}-${string}` ``
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<`WikiPage`, `"subredditName"` \| `"name"` \| `"content"` \| `"contentHtml"` \| `"revisionId"` \| `"revisionDate"` \| `"revisionReason"`\> & `object`
+
+#### Returns
+
+`Pick`\<`WikiPage`, `"subredditName"` \| `"name"` \| `"content"` \| `"contentHtml"` \| `"revisionId"` \| `"revisionDate"` \| `"revisionReason"`\> & `object`
+
+***
+
+
+
+### update()
+
+> **update**(`content`, `reason`?): `Promise`\<`WikiPage`\>
+
+Update this page.
+
+#### Parameters
+
+##### content
+
+`string`
+
+##### reason?
+
+`string`
+
+#### Returns
+
+`Promise`\<`WikiPage`\>
+
+***
+
+
+
+### updateSettings()
+
+> **updateSettings**(`options`): `Promise`\<[`WikiPageSettings`](WikiPageSettings.md)\>
+
+Update the settings for this page.
+
+#### Parameters
+
+##### options
+
+`Omit`\<[`UpdatePageSettingsOptions`](../type-aliases/UpdatePageSettingsOptions.md), `"subredditName"` \| `"page"`\>
+
+#### Returns
+
+`Promise`\<[`WikiPageSettings`](WikiPageSettings.md)\>
diff --git a/docs/api/public-api/classes/WikiPageRevision.md b/docs/api/public-api/classes/WikiPageRevision.md
new file mode 100644
index 00000000..5a73176b
--- /dev/null
+++ b/docs/api/public-api/classes/WikiPageRevision.md
@@ -0,0 +1,119 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: WikiPageRevision
+
+## Constructors
+
+
+
+### new WikiPageRevision()
+
+> **new WikiPageRevision**(`data`): `WikiPageRevision`
+
+#### Parameters
+
+##### data
+
+`WikiPageRevision`
+
+#### Returns
+
+`WikiPageRevision`
+
+## Accessors
+
+
+
+### author
+
+#### Get Signature
+
+> **get** **author**(): [`User`](User.md)
+
+##### Returns
+
+[`User`](User.md)
+
+***
+
+
+
+### date
+
+#### Get Signature
+
+> **get** **date**(): `Date`
+
+##### Returns
+
+`Date`
+
+***
+
+
+
+### hidden
+
+#### Get Signature
+
+> **get** **hidden**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### id
+
+#### Get Signature
+
+> **get** **id**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### page
+
+#### Get Signature
+
+> **get** **page**(): `string`
+
+##### Returns
+
+`string`
+
+***
+
+
+
+### reason
+
+#### Get Signature
+
+> **get** **reason**(): `string`
+
+##### Returns
+
+`string`
+
+## Methods
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<`WikiPageRevision`, `"id"` \| `"hidden"` \| `"reason"` \| `"date"` \| `"page"`\> & `object`
+
+#### Returns
+
+`Pick`\<`WikiPageRevision`, `"id"` \| `"hidden"` \| `"reason"` \| `"date"` \| `"page"`\> & `object`
diff --git a/docs/api/public-api/classes/WikiPageSettings.md b/docs/api/public-api/classes/WikiPageSettings.md
new file mode 100644
index 00000000..5fe2866f
--- /dev/null
+++ b/docs/api/public-api/classes/WikiPageSettings.md
@@ -0,0 +1,77 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Class: WikiPageSettings
+
+## Constructors
+
+
+
+### new WikiPageSettings()
+
+> **new WikiPageSettings**(`data`): `WikiPageSettings`
+
+#### Parameters
+
+##### data
+
+`WikiPageSettings_Data`
+
+#### Returns
+
+`WikiPageSettings`
+
+## Accessors
+
+
+
+### editors
+
+#### Get Signature
+
+> **get** **editors**(): [`User`](User.md)[]
+
+##### Returns
+
+[`User`](User.md)[]
+
+***
+
+
+
+### listed
+
+#### Get Signature
+
+> **get** **listed**(): `boolean`
+
+##### Returns
+
+`boolean`
+
+***
+
+
+
+### permLevel
+
+#### Get Signature
+
+> **get** **permLevel**(): [`WikiPagePermissionLevel`](../enumerations/WikiPagePermissionLevel.md)
+
+##### Returns
+
+[`WikiPagePermissionLevel`](../enumerations/WikiPagePermissionLevel.md)
+
+## Methods
+
+
+
+### toJSON()
+
+> **toJSON**(): `Pick`\<`WikiPageSettings`, `"listed"` \| `"permLevel"`\> & `object`
+
+#### Returns
+
+`Pick`\<`WikiPageSettings`, `"listed"` \| `"permLevel"`\> & `object`
diff --git a/docs/api/public-api/enumerations/AboutLocations.md b/docs/api/public-api/enumerations/AboutLocations.md
new file mode 100644
index 00000000..e5ed35da
--- /dev/null
+++ b/docs/api/public-api/enumerations/AboutLocations.md
@@ -0,0 +1,45 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Enumeration: AboutLocations
+
+## Enumeration Members
+
+
+
+### Edited
+
+> **Edited**: `"edited"`
+
+***
+
+
+
+### Modqueue
+
+> **Modqueue**: `"modqueue"`
+
+***
+
+
+
+### Reports
+
+> **Reports**: `"reports"`
+
+***
+
+
+
+### Spam
+
+> **Spam**: `"spam"`
+
+***
+
+
+
+### Unmoderated
+
+> **Unmoderated**: `"unmoderated"`
diff --git a/docs/api/public-api/enumerations/DeletionReason.md b/docs/api/public-api/enumerations/DeletionReason.md
index aa89f925..1a57688d 100644
--- a/docs/api/public-api/enumerations/DeletionReason.md
+++ b/docs/api/public-api/enumerations/DeletionReason.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/enumerations/EntrypointHeight.md b/docs/api/public-api/enumerations/EntrypointHeight.md
new file mode 100644
index 00000000..33355118
--- /dev/null
+++ b/docs/api/public-api/enumerations/EntrypointHeight.md
@@ -0,0 +1,47 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Enumeration: EntrypointHeight
+
+The height of the Post entrypoint. This is not expected to change often.
+
+## Enumeration Members
+
+
+
+### HEIGHT\_UNSPECIFIED
+
+> **HEIGHT\_UNSPECIFIED**: `0`
+
+***
+
+
+
+### REGULAR
+
+> **REGULAR**: `1`
+
+***
+
+
+
+### SHORT
+
+> **SHORT**: `3`
+
+***
+
+
+
+### TALL
+
+> **TALL**: `2`
+
+***
+
+
+
+### UNRECOGNIZED
+
+> **UNRECOGNIZED**: `-1`
diff --git a/docs/api/public-api/enumerations/EventSource.md b/docs/api/public-api/enumerations/EventSource.md
index 42c3bf77..e6e85738 100644
--- a/docs/api/public-api/enumerations/EventSource.md
+++ b/docs/api/public-api/enumerations/EventSource.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/enumerations/FlairType.md b/docs/api/public-api/enumerations/FlairType.md
new file mode 100644
index 00000000..7282a867
--- /dev/null
+++ b/docs/api/public-api/enumerations/FlairType.md
@@ -0,0 +1,21 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Enumeration: FlairType
+
+## Enumeration Members
+
+
+
+### Post
+
+> **Post**: `"LINK_FLAIR"`
+
+***
+
+
+
+### User
+
+> **User**: `"USER_FLAIR"`
diff --git a/docs/api/public-api/enumerations/FormattingFlag.md b/docs/api/public-api/enumerations/FormattingFlag.md
new file mode 100644
index 00000000..8a28ee99
--- /dev/null
+++ b/docs/api/public-api/enumerations/FormattingFlag.md
@@ -0,0 +1,61 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Enumeration: FormattingFlag
+
+## Enumeration Members
+
+
+
+### bold
+
+> **bold**: `1`
+
+***
+
+
+
+### italic
+
+> **italic**: `2`
+
+***
+
+
+
+### monospace
+
+> **monospace**: `64`
+
+***
+
+
+
+### strikethrough
+
+> **strikethrough**: `8`
+
+***
+
+
+
+### subscript
+
+> **subscript**: `16`
+
+***
+
+
+
+### superscript
+
+> **superscript**: `32`
+
+***
+
+
+
+### underline
+
+> **underline**: `4`
diff --git a/docs/api/public-api/enumerations/ModMailActionType.md b/docs/api/public-api/enumerations/ModMailActionType.md
new file mode 100644
index 00000000..e2d9ff49
--- /dev/null
+++ b/docs/api/public-api/enumerations/ModMailActionType.md
@@ -0,0 +1,113 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Enumeration: ModMailActionType
+
+An ActionType describes a particular logged action within a conversation. For example,
+if a mod highlights a conversation, a ModerationAction record with the type `Highlighted`
+would be created.
+
+## Enumeration Members
+
+
+
+### Approved
+
+> **Approved**: `"Approved"`
+
+***
+
+
+
+### Archived
+
+> **Archived**: `"Archived"`
+
+***
+
+
+
+### Banned
+
+> **Banned**: `"Banned"`
+
+***
+
+
+
+### Disapproved
+
+> **Disapproved**: `"Disapproved"`
+
+***
+
+
+
+### Filtered
+
+> **Filtered**: `"Filtered"`
+
+***
+
+
+
+### Highlighted
+
+> **Highlighted**: `"Highlighted"`
+
+***
+
+
+
+### Muted
+
+> **Muted**: `"Muted"`
+
+***
+
+
+
+### ReportedToAdmins
+
+> **ReportedToAdmins**: `"ReportedToAdmins"`
+
+***
+
+
+
+### Unarchived
+
+> **Unarchived**: `"Unarchived"`
+
+***
+
+
+
+### Unbanned
+
+> **Unbanned**: `"Unbanned"`
+
+***
+
+
+
+### Unfiltered
+
+> **Unfiltered**: `"Unfiltered"`
+
+***
+
+
+
+### Unhighlighted
+
+> **Unhighlighted**: `"Unhighlighted"`
+
+***
+
+
+
+### Unmuted
+
+> **Unmuted**: `"Unmuted"`
diff --git a/docs/api/public-api/enumerations/ModMailConversationState.md b/docs/api/public-api/enumerations/ModMailConversationState.md
new file mode 100644
index 00000000..a54ee118
--- /dev/null
+++ b/docs/api/public-api/enumerations/ModMailConversationState.md
@@ -0,0 +1,53 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Enumeration: ModMailConversationState
+
+## Enumeration Members
+
+
+
+### Appeals
+
+> **Appeals**: `"Appeals"`
+
+***
+
+
+
+### Archived
+
+> **Archived**: `"Archived"`
+
+***
+
+
+
+### Filtered
+
+> **Filtered**: `"Filtered"`
+
+***
+
+
+
+### InProgress
+
+> **InProgress**: `"InProgress"`
+
+***
+
+
+
+### JoinRequests
+
+> **JoinRequests**: `"JoinRequests"`
+
+***
+
+
+
+### New
+
+> **New**: `"New"`
diff --git a/docs/api/public-api/enumerations/SettingScope.md b/docs/api/public-api/enumerations/SettingScope.md
index 428965ee..467b1631 100644
--- a/docs/api/public-api/enumerations/SettingScope.md
+++ b/docs/api/public-api/enumerations/SettingScope.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/enumerations/SocialLinkType.md b/docs/api/public-api/enumerations/SocialLinkType.md
new file mode 100644
index 00000000..04f3130d
--- /dev/null
+++ b/docs/api/public-api/enumerations/SocialLinkType.md
@@ -0,0 +1,213 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Enumeration: SocialLinkType
+
+## Enumeration Members
+
+
+
+### Beacons
+
+> **Beacons**: `"BEACONS"`
+
+***
+
+
+
+### BuyMeACoffee
+
+> **BuyMeACoffee**: `"BUY_ME_A_COFFEE"`
+
+***
+
+
+
+### Cameo
+
+> **Cameo**: `"CAMEO"`
+
+***
+
+
+
+### CashApp
+
+> **CashApp**: `"CASH_APP"`
+
+***
+
+
+
+### Custom
+
+> **Custom**: `"CUSTOM"`
+
+***
+
+
+
+### Discord
+
+> **Discord**: `"DISCORD"`
+
+***
+
+
+
+### Facebook
+
+> **Facebook**: `"FACEBOOK"`
+
+***
+
+
+
+### Indiegogo
+
+> **Indiegogo**: `"INDIEGOGO"`
+
+***
+
+
+
+### Instagram
+
+> **Instagram**: `"INSTAGRAM"`
+
+***
+
+
+
+### Kickstarter
+
+> **Kickstarter**: `"KICKSTARTER"`
+
+***
+
+
+
+### Kofi
+
+> **Kofi**: `"KOFI"`
+
+***
+
+
+
+### Linktree
+
+> **Linktree**: `"LINKTREE"`
+
+***
+
+
+
+### Onlyfans
+
+> **Onlyfans**: `"ONLYFANS"`
+
+***
+
+
+
+### Patreon
+
+> **Patreon**: `"PATREON"`
+
+***
+
+
+
+### Paypal
+
+> **Paypal**: `"PAYPAL"`
+
+***
+
+
+
+### Reddit
+
+> **Reddit**: `"REDDIT"`
+
+***
+
+
+
+### Shopify
+
+> **Shopify**: `"SHOPIFY"`
+
+***
+
+
+
+### Soundcloud
+
+> **Soundcloud**: `"SOUNDCLOUD"`
+
+***
+
+
+
+### Spotify
+
+> **Spotify**: `"SPOTIFY"`
+
+***
+
+
+
+### Substack
+
+> **Substack**: `"SUBSTACK"`
+
+***
+
+
+
+### Tiktok
+
+> **Tiktok**: `"TIKTOK"`
+
+***
+
+
+
+### Tumblr
+
+> **Tumblr**: `"TUMBLR"`
+
+***
+
+
+
+### Twitch
+
+> **Twitch**: `"TWITCH"`
+
+***
+
+
+
+### Twitter
+
+> **Twitter**: `"TWITTER"`
+
+***
+
+
+
+### Venmo
+
+> **Venmo**: `"VENMO"`
+
+***
+
+
+
+### Youtube
+
+> **Youtube**: `"YOUTUBE"`
diff --git a/docs/api/public-api/enumerations/WikiPagePermissionLevel.md b/docs/api/public-api/enumerations/WikiPagePermissionLevel.md
new file mode 100644
index 00000000..5e3b40a7
--- /dev/null
+++ b/docs/api/public-api/enumerations/WikiPagePermissionLevel.md
@@ -0,0 +1,35 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Enumeration: WikiPagePermissionLevel
+
+## Enumeration Members
+
+
+
+### APPROVED\_CONTRIBUTORS\_ONLY
+
+> **APPROVED\_CONTRIBUTORS\_ONLY**: `1`
+
+Only approved wiki contributors for this page may edit
+
+***
+
+
+
+### MODS\_ONLY
+
+> **MODS\_ONLY**: `2`
+
+Only mods may edit and view
+
+***
+
+
+
+### SUBREDDIT\_PERMISSIONS
+
+> **SUBREDDIT\_PERMISSIONS**: `0`
+
+Use subreddit wiki permissions
diff --git a/docs/api/public-api/functions/getModerationLog.md b/docs/api/public-api/functions/getModerationLog.md
new file mode 100644
index 00000000..a130bd28
--- /dev/null
+++ b/docs/api/public-api/functions/getModerationLog.md
@@ -0,0 +1,17 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Function: getModerationLog()
+
+> **getModerationLog**(`options`): [`Listing`](../classes/Listing.md)\<[`ModAction`](../interfaces/ModAction.md)\>
+
+## Parameters
+
+### options
+
+[`GetModerationLogOptions`](../type-aliases/GetModerationLogOptions.md)
+
+## Returns
+
+[`Listing`](../classes/Listing.md)\<[`ModAction`](../interfaces/ModAction.md)\>
diff --git a/docs/api/public-api/functions/getSubredditInfoById.md b/docs/api/public-api/functions/getSubredditInfoById.md
new file mode 100644
index 00000000..9b3db9fa
--- /dev/null
+++ b/docs/api/public-api/functions/getSubredditInfoById.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Function: getSubredditInfoById()
+
+> **getSubredditInfoById**(`subredditId`): `Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+
+Gets a [SubredditInfo](../type-aliases/SubredditInfo.md) object by ID
+
+## Parameters
+
+### subredditId
+
+`` `t5_${string}` ``
+
+The ID (starting with t5_) of the subreddit to retrieve. e.g. t5_2qjpg
+
+## Returns
+
+`Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+
+A Promise that resolves a SubredditInfo object.
diff --git a/docs/api/public-api/functions/getSubredditInfoByName.md b/docs/api/public-api/functions/getSubredditInfoByName.md
new file mode 100644
index 00000000..91b71481
--- /dev/null
+++ b/docs/api/public-api/functions/getSubredditInfoByName.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Function: getSubredditInfoByName()
+
+> **getSubredditInfoByName**(`subredditName`): `Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+
+Gets a [SubredditInfo](../type-aliases/SubredditInfo.md) object by name
+
+## Parameters
+
+### subredditName
+
+`string`
+
+The name of a subreddit omitting the r/. This is case-insensitive.
+
+## Returns
+
+`Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+
+A Promise that resolves a SubredditInfo object.
diff --git a/docs/api/public-api/functions/getSubredditLeaderboard.md b/docs/api/public-api/functions/getSubredditLeaderboard.md
new file mode 100644
index 00000000..9c8f33c5
--- /dev/null
+++ b/docs/api/public-api/functions/getSubredditLeaderboard.md
@@ -0,0 +1,17 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Function: getSubredditLeaderboard()
+
+> **getSubredditLeaderboard**(`subredditId`): `Promise`\<[`SubredditLeaderboard`](../type-aliases/SubredditLeaderboard.md)\>
+
+## Parameters
+
+### subredditId
+
+`` `t5_${string}` ``
+
+## Returns
+
+`Promise`\<[`SubredditLeaderboard`](../type-aliases/SubredditLeaderboard.md)\>
diff --git a/docs/api/public-api/functions/getSubredditStyles.md b/docs/api/public-api/functions/getSubredditStyles.md
new file mode 100644
index 00000000..f092763b
--- /dev/null
+++ b/docs/api/public-api/functions/getSubredditStyles.md
@@ -0,0 +1,17 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Function: getSubredditStyles()
+
+> **getSubredditStyles**(`subredditId`): `Promise`\<[`SubredditStyles`](../type-aliases/SubredditStyles.md)\>
+
+## Parameters
+
+### subredditId
+
+`` `t5_${string}` ``
+
+## Returns
+
+`Promise`\<[`SubredditStyles`](../type-aliases/SubredditStyles.md)\>
diff --git a/docs/api/public-api/functions/getVaultByAddress.md b/docs/api/public-api/functions/getVaultByAddress.md
new file mode 100644
index 00000000..a35d2c1e
--- /dev/null
+++ b/docs/api/public-api/functions/getVaultByAddress.md
@@ -0,0 +1,17 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Function: getVaultByAddress()
+
+> **getVaultByAddress**(`address`): `Promise`\<[`Vault`](../type-aliases/Vault.md)\>
+
+## Parameters
+
+### address
+
+`string`
+
+## Returns
+
+`Promise`\<[`Vault`](../type-aliases/Vault.md)\>
diff --git a/docs/api/public-api/functions/getVaultByUserId.md b/docs/api/public-api/functions/getVaultByUserId.md
new file mode 100644
index 00000000..3b6ea63f
--- /dev/null
+++ b/docs/api/public-api/functions/getVaultByUserId.md
@@ -0,0 +1,17 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Function: getVaultByUserId()
+
+> **getVaultByUserId**(`userId`): `Promise`\<[`Vault`](../type-aliases/Vault.md)\>
+
+## Parameters
+
+### userId
+
+`` `t2_${string}` ``
+
+## Returns
+
+`Promise`\<[`Vault`](../type-aliases/Vault.md)\>
diff --git a/docs/api/public-api/interfaces/BlockQuoteContext.md b/docs/api/public-api/interfaces/BlockQuoteContext.md
new file mode 100644
index 00000000..097abd51
--- /dev/null
+++ b/docs/api/public-api/interfaces/BlockQuoteContext.md
@@ -0,0 +1,39 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Interface: BlockQuoteContext
+
+## Borrows
+
+ParagraphContainer
+
+## Extends
+
+- [`ParagraphContainer`](../type-aliases/ParagraphContainer.md)\<`BlockQuoteContext`\>
+
+## Methods
+
+
+
+### paragraph()
+
+> **paragraph**(`cb`): `BlockQuoteContext`
+
+Append a Paragraph
+
+#### Parameters
+
+##### cb
+
+(`paragraph`) => `void`
+
+scoped callback to add child elements to this Paragraph
+
+#### Returns
+
+`BlockQuoteContext`
+
+#### Inherited from
+
+[`ParagraphContainer`](../type-aliases/ParagraphContainer.md).[`paragraph`](../type-aliases/ParagraphContainer.md#paragraph)
diff --git a/docs/api/public-api/interfaces/CodeBlockContext.md b/docs/api/public-api/interfaces/CodeBlockContext.md
new file mode 100644
index 00000000..8c7e0022
--- /dev/null
+++ b/docs/api/public-api/interfaces/CodeBlockContext.md
@@ -0,0 +1,37 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Interface: CodeBlockContext
+
+## Borrows
+
+RawTextContainer
+
+## Extends
+
+- [`RawTextContainer`](../type-aliases/RawTextContainer.md)\<`CodeBlockContext`\>
+
+## Methods
+
+
+
+### rawText()
+
+> **rawText**(`text`): `CodeBlockContext`
+
+Append unstyled text
+
+#### Parameters
+
+##### text
+
+`string`
+
+#### Returns
+
+`CodeBlockContext`
+
+#### Inherited from
+
+[`RawTextContainer`](../type-aliases/RawTextContainer.md).[`rawText`](../type-aliases/RawTextContainer.md#rawtext)
diff --git a/docs/api/public-api/interfaces/HeadingContext.md b/docs/api/public-api/interfaces/HeadingContext.md
new file mode 100644
index 00000000..fe095e9f
--- /dev/null
+++ b/docs/api/public-api/interfaces/HeadingContext.md
@@ -0,0 +1,199 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Interface: HeadingContext
+
+## Borrows
+
+RawTextContainer
+
+## Borrows
+
+LinkContainer
+
+## Extends
+
+- [`RawTextContainer`](../type-aliases/RawTextContainer.md)\<`HeadingContext`\>.[`LinkContainer`](../type-aliases/LinkContainer.md)\<`HeadingContext`\>
+
+## Methods
+
+
+
+### commentLink()
+
+> **commentLink**(`opts`): `HeadingContext`
+
+Append a link to a Reddit Comment
+
+#### Parameters
+
+##### opts
+
+[`RedditPermalinkOptions`](../type-aliases/RedditPermalinkOptions.md)
+
+[CommentLinkOptions](../type-aliases/CommentLinkOptions.md)
+
+#### Returns
+
+`HeadingContext`
+
+#### Inherited from
+
+`LinkContainer.commentLink`
+
+***
+
+
+
+### link()
+
+> **link**(`opts`): `HeadingContext`
+
+Append a Link
+
+#### Parameters
+
+##### opts
+
+[`LinkOptions`](../type-aliases/LinkOptions.md)
+
+[LinkOptions](../type-aliases/LinkOptions.md)
+
+#### Returns
+
+`HeadingContext`
+
+#### Inherited from
+
+`LinkContainer.link`
+
+***
+
+
+
+### postLink()
+
+> **postLink**(`opts`): `HeadingContext`
+
+Append a link to a Reddit Post
+
+#### Parameters
+
+##### opts
+
+[`RedditPermalinkOptions`](../type-aliases/RedditPermalinkOptions.md)
+
+[PostLinkOptions](../type-aliases/PostLinkOptions.md)
+
+#### Returns
+
+`HeadingContext`
+
+#### Inherited from
+
+`LinkContainer.postLink`
+
+***
+
+
+
+### rawText()
+
+> **rawText**(`text`): `HeadingContext`
+
+Append unstyled text
+
+#### Parameters
+
+##### text
+
+`string`
+
+#### Returns
+
+`HeadingContext`
+
+#### Inherited from
+
+[`RawTextContainer`](../type-aliases/RawTextContainer.md).[`rawText`](../type-aliases/RawTextContainer.md#rawtext)
+
+***
+
+
+
+### subredditLink()
+
+> **subredditLink**(`opts`): `HeadingContext`
+
+Append a link to a Reddit Subreddit
+
+#### Parameters
+
+##### opts
+
+[`SubredditLinkOptions`](../type-aliases/SubredditLinkOptions.md)
+
+[SubredditLinkOptions](../type-aliases/SubredditLinkOptions.md)
+
+#### Returns
+
+`HeadingContext`
+
+#### Inherited from
+
+`LinkContainer.subredditLink`
+
+***
+
+
+
+### userLink()
+
+> **userLink**(`opts`): `HeadingContext`
+
+Append a link to a Reddit User
+
+#### Parameters
+
+##### opts
+
+[`UserLinkOptions`](../type-aliases/UserLinkOptions.md)
+
+[UserLinkOptions](../type-aliases/UserLinkOptions.md)
+
+#### Returns
+
+`HeadingContext`
+
+#### Inherited from
+
+`LinkContainer.userLink`
+
+***
+
+
+
+### userMention()
+
+> **userMention**(`opts`): `HeadingContext`
+
+Append a link to a Reddit User as a
+
+#### Parameters
+
+##### opts
+
+[`UserLinkOptions`](../type-aliases/UserLinkOptions.md)
+
+[UserMentionOptions](../type-aliases/UserMentionOptions.md)
+
+#### Returns
+
+`HeadingContext`
+
+#### Mention
+
+#### Inherited from
+
+`LinkContainer.userMention`
diff --git a/docs/api/public-api/interfaces/ListContext.md b/docs/api/public-api/interfaces/ListContext.md
new file mode 100644
index 00000000..0dd2247b
--- /dev/null
+++ b/docs/api/public-api/interfaces/ListContext.md
@@ -0,0 +1,39 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Interface: ListContext
+
+## Borrows
+
+ListItemContainer
+
+## Extends
+
+- [`ListItemContainer`](../type-aliases/ListItemContainer.md)\<`ListContext`\>
+
+## Methods
+
+
+
+### item()
+
+> **item**(`cb`): `ListContext`
+
+Append a List Item to a List
+
+#### Parameters
+
+##### cb
+
+(`item`) => `void`
+
+scoped callback to add child elements to this List Item
+
+#### Returns
+
+`ListContext`
+
+#### Inherited from
+
+[`ListItemContainer`](../type-aliases/ListItemContainer.md).[`item`](../type-aliases/ListItemContainer.md#item)
diff --git a/docs/api/public-api/interfaces/ListItemContext.md b/docs/api/public-api/interfaces/ListItemContext.md
new file mode 100644
index 00000000..757a0451
--- /dev/null
+++ b/docs/api/public-api/interfaces/ListItemContext.md
@@ -0,0 +1,233 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Interface: ListItemContext
+
+## Borrows
+
+BlockQuoteContainer
+
+## Borrows
+
+CodeBlockContainer
+
+## Borrows
+
+HeadingContainer
+
+## Borrows
+
+HorizontalRuleContainer
+
+## Borrows
+
+ListContainer
+
+## Borrows
+
+ParagraphContainer
+
+## Borrows
+
+TableContainer
+
+## Extends
+
+- [`BlockQuoteContainer`](../type-aliases/BlockQuoteContainer.md)\<`ListItemContext`\>.[`CodeBlockContainer`](../type-aliases/CodeBlockContainer.md)\<`ListItemContext`\>.[`HeadingContainer`](../type-aliases/HeadingContainer.md)\<`ListItemContext`\>.[`HorizontalRuleContainer`](../type-aliases/HorizontalRuleContainer.md)\<`ListItemContext`\>.[`ListContainer`](../type-aliases/ListContainer.md)\<`ListItemContext`\>.[`ParagraphContainer`](../type-aliases/ParagraphContainer.md)\<`ListItemContext`\>.[`TableContainer`](../type-aliases/TableContainer.md)\<`ListItemContext`\>
+
+## Methods
+
+
+
+### blockQuote()
+
+> **blockQuote**(`opts`, `cb`): `ListItemContext`
+
+Append a Block Quote element
+
+#### Parameters
+
+##### opts
+
+[`BlockQuoteOptions`](../type-aliases/BlockQuoteOptions.md)
+
+##### cb
+
+(`blockQuote`) => `void`
+
+scoped callback to add child elements to this Block Quote
+
+#### Returns
+
+`ListItemContext`
+
+#### Inherited from
+
+[`BlockQuoteContainer`](../type-aliases/BlockQuoteContainer.md).[`blockQuote`](../type-aliases/BlockQuoteContainer.md#blockquote)
+
+***
+
+
+
+### codeBlock()
+
+> **codeBlock**(`opts`, `cb`): `ListItemContext`
+
+Append a Code Block element
+
+#### Parameters
+
+##### opts
+
+[`CodeBlockOptions`](../type-aliases/CodeBlockOptions.md)
+
+[CodeBlockOptions](../type-aliases/CodeBlockOptions.md)
+
+##### cb
+
+(`codeBlock`) => `void`
+
+scoped callback to add child elements to this Code Block
+
+#### Returns
+
+`ListItemContext`
+
+#### Inherited from
+
+[`CodeBlockContainer`](../type-aliases/CodeBlockContainer.md).[`codeBlock`](../type-aliases/CodeBlockContainer.md#codeblock)
+
+***
+
+
+
+### heading()
+
+> **heading**(`opts`, `cb`): `ListItemContext`
+
+Append a Heading
+
+#### Parameters
+
+##### opts
+
+[`HeadingOptions`](../type-aliases/HeadingOptions.md)
+
+[HeadingOptions](../type-aliases/HeadingOptions.md)
+
+##### cb
+
+(`heading`) => `void`
+
+scoped callback to add child elements to this Heading
+
+#### Returns
+
+`ListItemContext`
+
+#### Inherited from
+
+[`HeadingContainer`](../type-aliases/HeadingContainer.md).[`heading`](../type-aliases/HeadingContainer.md#heading)
+
+***
+
+
+
+### horizontalRule()
+
+> **horizontalRule**(): `ListItemContext`
+
+Append a Horizontal Rule
+
+#### Returns
+
+`ListItemContext`
+
+#### Inherited from
+
+[`HorizontalRuleContainer`](../type-aliases/HorizontalRuleContainer.md).[`horizontalRule`](../type-aliases/HorizontalRuleContainer.md#horizontalrule)
+
+***
+
+
+
+### list()
+
+> **list**(`opts`, `cb`): `ListItemContext`
+
+Append a List
+
+#### Parameters
+
+##### opts
+
+[`ListOptions`](../type-aliases/ListOptions.md)
+
+[ListOptions](../type-aliases/ListOptions.md)
+
+##### cb
+
+(`list`) => `void`
+
+scoped callback to add child elements to this List
+
+#### Returns
+
+`ListItemContext`
+
+#### Inherited from
+
+[`ListContainer`](../type-aliases/ListContainer.md).[`list`](../type-aliases/ListContainer.md#list)
+
+***
+
+
+
+### paragraph()
+
+> **paragraph**(`cb`): `ListItemContext`
+
+Append a Paragraph
+
+#### Parameters
+
+##### cb
+
+(`paragraph`) => `void`
+
+scoped callback to add child elements to this Paragraph
+
+#### Returns
+
+`ListItemContext`
+
+#### Inherited from
+
+[`ParagraphContainer`](../type-aliases/ParagraphContainer.md).[`paragraph`](../type-aliases/ParagraphContainer.md#paragraph)
+
+***
+
+
+
+### table()
+
+> **table**(`cb`): `ListItemContext`
+
+Append a Table
+
+#### Parameters
+
+##### cb
+
+(`table`) => `void`
+
+scoped callback to add child elements to this Table
+
+#### Returns
+
+`ListItemContext`
+
+#### Inherited from
+
+[`TableContainer`](../type-aliases/TableContainer.md).[`table`](../type-aliases/TableContainer.md#table)
diff --git a/docs/api/public-api/interfaces/ModAction.md b/docs/api/public-api/interfaces/ModAction.md
new file mode 100644
index 00000000..e3311371
--- /dev/null
+++ b/docs/api/public-api/interfaces/ModAction.md
@@ -0,0 +1,111 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Interface: ModAction
+
+## Properties
+
+
+
+### createdAt
+
+> **createdAt**: `Date`
+
+When the action took place.
+
+***
+
+
+
+### description?
+
+> `optional` **description**: `string`
+
+The string "Page modmail-stats edited: Daily update of the
+modmail-stats (Wed Jul 02 2025 08:05:47 UTC+0200 (Europe/Amsterdam))" is
+made up of `description` and `details`. The "Page modmail-stats edited" is
+the "description".
+
+***
+
+
+
+### details?
+
+> `optional` **details**: `string`
+
+The string "Page modmail-stats edited: Daily update of the
+modmail-stats (Wed Jul 02 2025 08:05:47 UTC+0200 (Europe/Amsterdam))" is
+made up of `description` and `details`. The "Daily update of the
+modmail-stats (Wed Jul 02 2025 08:05:47 UTC+0200 (Europe/Amsterdam))" is
+the "details".
+
+***
+
+
+
+### id
+
+> **id**: `string`
+
+A string like `"ModAction_1b1af634-5b87-11f0-a4f1-4ddd27626cc4"`
+identifying the ModAction.
+
+***
+
+
+
+### moderatorId
+
+> **moderatorId**: `` `t2_${string}` ``
+
+***
+
+
+
+### moderatorName
+
+> **moderatorName**: `string`
+
+The username of the moderator.
+
+***
+
+
+
+### subredditId
+
+> **subredditId**: `` `t5_${string}` ``
+
+The ID of the subreddit the action took place.
+
+***
+
+
+
+### subredditName
+
+> **subredditName**: `string`
+
+The name of the subreddit the action took place.
+
+***
+
+
+
+### target?
+
+> `optional` **target**: [`ModActionTarget`](../type-aliases/ModActionTarget.md)
+
+Some context of the affected item of the modaction.
+
+***
+
+
+
+### type
+
+> **type**: [`ModActionType`](../type-aliases/ModActionType.md)
+
+The type of the action. Think of what happened.
diff --git a/docs/api/public-api/interfaces/ParagraphContext.md b/docs/api/public-api/interfaces/ParagraphContext.md
new file mode 100644
index 00000000..74bd4e7e
--- /dev/null
+++ b/docs/api/public-api/interfaces/ParagraphContext.md
@@ -0,0 +1,279 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Interface: ParagraphContext
+
+## Borrows
+
+TextContainer
+
+## Borrows
+
+ImageContainer
+
+## Borrows
+
+LinkContainer
+
+## Borrows
+
+LineBreakContainer
+
+## Extends
+
+- [`TextContainer`](../type-aliases/TextContainer.md)\<`ParagraphContext`\>.[`ImageContainer`](../type-aliases/ImageContainer.md)\<`ParagraphContext`\>.[`LinkContainer`](../type-aliases/LinkContainer.md)\<`ParagraphContext`\>.[`LineBreakContainer`](../type-aliases/LineBreakContainer.md)\<`ParagraphContext`\>
+
+## Methods
+
+
+
+### animatedImage()
+
+> **animatedImage**(`opts`): `ParagraphContext`
+
+Append an Animated Image
+
+#### Parameters
+
+##### opts
+
+[`MediaOptions`](../type-aliases/MediaOptions.md)
+
+[ImageOptions](../type-aliases/ImageOptions.md)
+
+#### Returns
+
+`ParagraphContext`
+
+#### Inherited from
+
+[`ImageContainer`](../type-aliases/ImageContainer.md).[`animatedImage`](../type-aliases/ImageContainer.md#animatedimage)
+
+***
+
+
+
+### commentLink()
+
+> **commentLink**(`opts`): `ParagraphContext`
+
+Append a link to a Reddit Comment
+
+#### Parameters
+
+##### opts
+
+[`RedditPermalinkOptions`](../type-aliases/RedditPermalinkOptions.md)
+
+[CommentLinkOptions](../type-aliases/CommentLinkOptions.md)
+
+#### Returns
+
+`ParagraphContext`
+
+#### Inherited from
+
+`LinkContainer.commentLink`
+
+***
+
+
+
+### image()
+
+> **image**(`opts`): `ParagraphContext`
+
+Append an Image
+
+#### Parameters
+
+##### opts
+
+[`MediaOptions`](../type-aliases/MediaOptions.md)
+
+[ImageOptions](../type-aliases/ImageOptions.md)
+
+#### Returns
+
+`ParagraphContext`
+
+#### Inherited from
+
+[`ImageContainer`](../type-aliases/ImageContainer.md).[`image`](../type-aliases/ImageContainer.md#image)
+
+***
+
+
+
+### linebreak()
+
+> **linebreak**(): `ParagraphContext`
+
+Append a Line Break
+
+#### Returns
+
+`ParagraphContext`
+
+#### Inherited from
+
+[`LineBreakContainer`](../type-aliases/LineBreakContainer.md).[`linebreak`](../type-aliases/LineBreakContainer.md#linebreak)
+
+***
+
+
+
+### link()
+
+> **link**(`opts`): `ParagraphContext`
+
+Append a Link
+
+#### Parameters
+
+##### opts
+
+[`LinkOptions`](../type-aliases/LinkOptions.md)
+
+[LinkOptions](../type-aliases/LinkOptions.md)
+
+#### Returns
+
+`ParagraphContext`
+
+#### Inherited from
+
+`LinkContainer.link`
+
+***
+
+
+
+### postLink()
+
+> **postLink**(`opts`): `ParagraphContext`
+
+Append a link to a Reddit Post
+
+#### Parameters
+
+##### opts
+
+[`RedditPermalinkOptions`](../type-aliases/RedditPermalinkOptions.md)
+
+[PostLinkOptions](../type-aliases/PostLinkOptions.md)
+
+#### Returns
+
+`ParagraphContext`
+
+#### Inherited from
+
+`LinkContainer.postLink`
+
+***
+
+
+
+### subredditLink()
+
+> **subredditLink**(`opts`): `ParagraphContext`
+
+Append a link to a Reddit Subreddit
+
+#### Parameters
+
+##### opts
+
+[`SubredditLinkOptions`](../type-aliases/SubredditLinkOptions.md)
+
+[SubredditLinkOptions](../type-aliases/SubredditLinkOptions.md)
+
+#### Returns
+
+`ParagraphContext`
+
+#### Inherited from
+
+`LinkContainer.subredditLink`
+
+***
+
+
+
+### text()
+
+> **text**(`opts`): `ParagraphContext`
+
+Append Text with optional formatting
+
+#### Parameters
+
+##### opts
+
+[`TextOptions`](../type-aliases/TextOptions.md)
+
+[TextOptions](../type-aliases/TextOptions.md)
+
+#### Returns
+
+`ParagraphContext`
+
+#### Inherited from
+
+[`TextContainer`](../type-aliases/TextContainer.md).[`text`](../type-aliases/TextContainer.md#text)
+
+***
+
+
+
+### userLink()
+
+> **userLink**(`opts`): `ParagraphContext`
+
+Append a link to a Reddit User
+
+#### Parameters
+
+##### opts
+
+[`UserLinkOptions`](../type-aliases/UserLinkOptions.md)
+
+[UserLinkOptions](../type-aliases/UserLinkOptions.md)
+
+#### Returns
+
+`ParagraphContext`
+
+#### Inherited from
+
+`LinkContainer.userLink`
+
+***
+
+
+
+### userMention()
+
+> **userMention**(`opts`): `ParagraphContext`
+
+Append a link to a Reddit User as a
+
+#### Parameters
+
+##### opts
+
+[`UserLinkOptions`](../type-aliases/UserLinkOptions.md)
+
+[UserMentionOptions](../type-aliases/UserMentionOptions.md)
+
+#### Returns
+
+`ParagraphContext`
+
+#### Mention
+
+#### Inherited from
+
+`LinkContainer.userMention`
diff --git a/docs/api/public-api/interfaces/SpoilerContext.md b/docs/api/public-api/interfaces/SpoilerContext.md
new file mode 100644
index 00000000..988b2142
--- /dev/null
+++ b/docs/api/public-api/interfaces/SpoilerContext.md
@@ -0,0 +1,223 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Interface: SpoilerContext
+
+## Borrows
+
+TextContainer
+
+## Borrows
+
+LinkContainer
+
+## Borrows
+
+LineBreakContainer
+
+## Extends
+
+- [`TextContainer`](../type-aliases/TextContainer.md)\<`SpoilerContext`\>.[`LinkContainer`](../type-aliases/LinkContainer.md)\<`SpoilerContext`\>.[`LineBreakContainer`](../type-aliases/LineBreakContainer.md)\<`SpoilerContext`\>
+
+## Methods
+
+
+
+### commentLink()
+
+> **commentLink**(`opts`): `SpoilerContext`
+
+Append a link to a Reddit Comment
+
+#### Parameters
+
+##### opts
+
+[`RedditPermalinkOptions`](../type-aliases/RedditPermalinkOptions.md)
+
+[CommentLinkOptions](../type-aliases/CommentLinkOptions.md)
+
+#### Returns
+
+`SpoilerContext`
+
+#### Inherited from
+
+`LinkContainer.commentLink`
+
+***
+
+
+
+### linebreak()
+
+> **linebreak**(): `SpoilerContext`
+
+Append a Line Break
+
+#### Returns
+
+`SpoilerContext`
+
+#### Inherited from
+
+[`LineBreakContainer`](../type-aliases/LineBreakContainer.md).[`linebreak`](../type-aliases/LineBreakContainer.md#linebreak)
+
+***
+
+
+
+### link()
+
+> **link**(`opts`): `SpoilerContext`
+
+Append a Link
+
+#### Parameters
+
+##### opts
+
+[`LinkOptions`](../type-aliases/LinkOptions.md)
+
+[LinkOptions](../type-aliases/LinkOptions.md)
+
+#### Returns
+
+`SpoilerContext`
+
+#### Inherited from
+
+`LinkContainer.link`
+
+***
+
+
+
+### postLink()
+
+> **postLink**(`opts`): `SpoilerContext`
+
+Append a link to a Reddit Post
+
+#### Parameters
+
+##### opts
+
+[`RedditPermalinkOptions`](../type-aliases/RedditPermalinkOptions.md)
+
+[PostLinkOptions](../type-aliases/PostLinkOptions.md)
+
+#### Returns
+
+`SpoilerContext`
+
+#### Inherited from
+
+`LinkContainer.postLink`
+
+***
+
+
+
+### subredditLink()
+
+> **subredditLink**(`opts`): `SpoilerContext`
+
+Append a link to a Reddit Subreddit
+
+#### Parameters
+
+##### opts
+
+[`SubredditLinkOptions`](../type-aliases/SubredditLinkOptions.md)
+
+[SubredditLinkOptions](../type-aliases/SubredditLinkOptions.md)
+
+#### Returns
+
+`SpoilerContext`
+
+#### Inherited from
+
+`LinkContainer.subredditLink`
+
+***
+
+
+
+### text()
+
+> **text**(`opts`): `SpoilerContext`
+
+Append Text with optional formatting
+
+#### Parameters
+
+##### opts
+
+[`TextOptions`](../type-aliases/TextOptions.md)
+
+[TextOptions](../type-aliases/TextOptions.md)
+
+#### Returns
+
+`SpoilerContext`
+
+#### Inherited from
+
+[`TextContainer`](../type-aliases/TextContainer.md).[`text`](../type-aliases/TextContainer.md#text)
+
+***
+
+
+
+### userLink()
+
+> **userLink**(`opts`): `SpoilerContext`
+
+Append a link to a Reddit User
+
+#### Parameters
+
+##### opts
+
+[`UserLinkOptions`](../type-aliases/UserLinkOptions.md)
+
+[UserLinkOptions](../type-aliases/UserLinkOptions.md)
+
+#### Returns
+
+`SpoilerContext`
+
+#### Inherited from
+
+`LinkContainer.userLink`
+
+***
+
+
+
+### userMention()
+
+> **userMention**(`opts`): `SpoilerContext`
+
+Append a link to a Reddit User as a
+
+#### Parameters
+
+##### opts
+
+[`UserLinkOptions`](../type-aliases/UserLinkOptions.md)
+
+[UserMentionOptions](../type-aliases/UserMentionOptions.md)
+
+#### Returns
+
+`SpoilerContext`
+
+#### Mention
+
+#### Inherited from
+
+`LinkContainer.userMention`
diff --git a/docs/api/public-api/interfaces/TableCellContext.md b/docs/api/public-api/interfaces/TableCellContext.md
new file mode 100644
index 00000000..841fbe80
--- /dev/null
+++ b/docs/api/public-api/interfaces/TableCellContext.md
@@ -0,0 +1,257 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Interface: TableCellContext
+
+## Borrows
+
+TextContainer
+
+## Borrows
+
+LinkContainer
+
+## Borrows
+
+ImageContainer
+
+## Extends
+
+- [`TextContainer`](../type-aliases/TextContainer.md)\<`TableCellContext`\>.[`LinkContainer`](../type-aliases/LinkContainer.md)\<`TableCellContext`\>.[`ImageContainer`](../type-aliases/ImageContainer.md)\<`TableCellContext`\>
+
+## Methods
+
+
+
+### animatedImage()
+
+> **animatedImage**(`opts`): `TableCellContext`
+
+Append an Animated Image
+
+#### Parameters
+
+##### opts
+
+[`MediaOptions`](../type-aliases/MediaOptions.md)
+
+[ImageOptions](../type-aliases/ImageOptions.md)
+
+#### Returns
+
+`TableCellContext`
+
+#### Inherited from
+
+[`ImageContainer`](../type-aliases/ImageContainer.md).[`animatedImage`](../type-aliases/ImageContainer.md#animatedimage)
+
+***
+
+
+
+### commentLink()
+
+> **commentLink**(`opts`): `TableCellContext`
+
+Append a link to a Reddit Comment
+
+#### Parameters
+
+##### opts
+
+[`RedditPermalinkOptions`](../type-aliases/RedditPermalinkOptions.md)
+
+[CommentLinkOptions](../type-aliases/CommentLinkOptions.md)
+
+#### Returns
+
+`TableCellContext`
+
+#### Inherited from
+
+`LinkContainer.commentLink`
+
+***
+
+
+
+### image()
+
+> **image**(`opts`): `TableCellContext`
+
+Append an Image
+
+#### Parameters
+
+##### opts
+
+[`MediaOptions`](../type-aliases/MediaOptions.md)
+
+[ImageOptions](../type-aliases/ImageOptions.md)
+
+#### Returns
+
+`TableCellContext`
+
+#### Inherited from
+
+[`ImageContainer`](../type-aliases/ImageContainer.md).[`image`](../type-aliases/ImageContainer.md#image)
+
+***
+
+
+
+### link()
+
+> **link**(`opts`): `TableCellContext`
+
+Append a Link
+
+#### Parameters
+
+##### opts
+
+[`LinkOptions`](../type-aliases/LinkOptions.md)
+
+[LinkOptions](../type-aliases/LinkOptions.md)
+
+#### Returns
+
+`TableCellContext`
+
+#### Inherited from
+
+`LinkContainer.link`
+
+***
+
+
+
+### postLink()
+
+> **postLink**(`opts`): `TableCellContext`
+
+Append a link to a Reddit Post
+
+#### Parameters
+
+##### opts
+
+[`RedditPermalinkOptions`](../type-aliases/RedditPermalinkOptions.md)
+
+[PostLinkOptions](../type-aliases/PostLinkOptions.md)
+
+#### Returns
+
+`TableCellContext`
+
+#### Inherited from
+
+`LinkContainer.postLink`
+
+***
+
+
+
+### subredditLink()
+
+> **subredditLink**(`opts`): `TableCellContext`
+
+Append a link to a Reddit Subreddit
+
+#### Parameters
+
+##### opts
+
+[`SubredditLinkOptions`](../type-aliases/SubredditLinkOptions.md)
+
+[SubredditLinkOptions](../type-aliases/SubredditLinkOptions.md)
+
+#### Returns
+
+`TableCellContext`
+
+#### Inherited from
+
+`LinkContainer.subredditLink`
+
+***
+
+
+
+### text()
+
+> **text**(`opts`): `TableCellContext`
+
+Append Text with optional formatting
+
+#### Parameters
+
+##### opts
+
+[`TextOptions`](../type-aliases/TextOptions.md)
+
+[TextOptions](../type-aliases/TextOptions.md)
+
+#### Returns
+
+`TableCellContext`
+
+#### Inherited from
+
+[`TextContainer`](../type-aliases/TextContainer.md).[`text`](../type-aliases/TextContainer.md#text)
+
+***
+
+
+
+### userLink()
+
+> **userLink**(`opts`): `TableCellContext`
+
+Append a link to a Reddit User
+
+#### Parameters
+
+##### opts
+
+[`UserLinkOptions`](../type-aliases/UserLinkOptions.md)
+
+[UserLinkOptions](../type-aliases/UserLinkOptions.md)
+
+#### Returns
+
+`TableCellContext`
+
+#### Inherited from
+
+`LinkContainer.userLink`
+
+***
+
+
+
+### userMention()
+
+> **userMention**(`opts`): `TableCellContext`
+
+Append a link to a Reddit User as a
+
+#### Parameters
+
+##### opts
+
+[`UserLinkOptions`](../type-aliases/UserLinkOptions.md)
+
+[UserMentionOptions](../type-aliases/UserMentionOptions.md)
+
+#### Returns
+
+`TableCellContext`
+
+#### Mention
+
+#### Inherited from
+
+`LinkContainer.userMention`
diff --git a/docs/api/public-api/interfaces/TableContext.md b/docs/api/public-api/interfaces/TableContext.md
new file mode 100644
index 00000000..e314e19e
--- /dev/null
+++ b/docs/api/public-api/interfaces/TableContext.md
@@ -0,0 +1,71 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Interface: TableContext
+
+## Borrows
+
+TableContentContainer
+
+## Extends
+
+- [`TableContentContainer`](../type-aliases/TableContentContainer.md)\<`TableContext`\>
+
+## Methods
+
+
+
+### headerCell()
+
+> **headerCell**(`opts`, `cb`): `TableContext`
+
+Append a Table Cell to the Table Header
+
+#### Parameters
+
+##### opts
+
+[`TableHeaderCellOptions`](../type-aliases/TableHeaderCellOptions.md)
+
+[TableHeaderCellOptions](../type-aliases/TableHeaderCellOptions.md)
+
+##### cb
+
+(`cell`) => `void`
+
+scoped callback to add child elements to this Table Header Cell
+
+#### Returns
+
+`TableContext`
+
+#### Inherited from
+
+[`TableContentContainer`](../type-aliases/TableContentContainer.md).[`headerCell`](../type-aliases/TableContentContainer.md#headercell)
+
+***
+
+
+
+### row()
+
+> **row**(`cb`): `TableContext`
+
+Append a Table Row to the Table
+
+#### Parameters
+
+##### cb
+
+(`row`) => `void`
+
+scoped callback to add child elements to this Table Row
+
+#### Returns
+
+`TableContext`
+
+#### Inherited from
+
+[`TableContentContainer`](../type-aliases/TableContentContainer.md).[`row`](../type-aliases/TableContentContainer.md#row)
diff --git a/docs/api/public-api/interfaces/TableRowContext.md b/docs/api/public-api/interfaces/TableRowContext.md
new file mode 100644
index 00000000..5fde093d
--- /dev/null
+++ b/docs/api/public-api/interfaces/TableRowContext.md
@@ -0,0 +1,39 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Interface: TableRowContext
+
+## Borrows
+
+TableCellContainer
+
+## Extends
+
+- [`TableCellContainer`](../type-aliases/TableCellContainer.md)\<`TableRowContext`\>
+
+## Methods
+
+
+
+### cell()
+
+> **cell**(`cb`): `TableRowContext`
+
+Append a Cell to a Table Row
+
+#### Parameters
+
+##### cb
+
+(`cell`) => `void`
+
+scoped callback to add child elements to this Table Cell
+
+#### Returns
+
+`TableRowContext`
+
+#### Inherited from
+
+[`TableCellContainer`](../type-aliases/TableCellContainer.md).[`cell`](../type-aliases/TableCellContainer.md#cell)
diff --git a/docs/api/public-api/interfaces/TxClientLike.md b/docs/api/public-api/interfaces/TxClientLike.md
index c0656b27..fe8c5d1b 100644
--- a/docs/api/public-api/interfaces/TxClientLike.md
+++ b/docs/api/public-api/interfaces/TxClientLike.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/AboutSubredditTypes.md b/docs/api/public-api/type-aliases/AboutSubredditTypes.md
new file mode 100644
index 00000000..1119b9b3
--- /dev/null
+++ b/docs/api/public-api/type-aliases/AboutSubredditTypes.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: AboutSubredditTypes
+
+> **AboutSubredditTypes** = `"comment"` \| `"post"` \| `"all"`
diff --git a/docs/api/public-api/type-aliases/AddRemovalNoteOptions.md b/docs/api/public-api/type-aliases/AddRemovalNoteOptions.md
new file mode 100644
index 00000000..366e78c4
--- /dev/null
+++ b/docs/api/public-api/type-aliases/AddRemovalNoteOptions.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: AddRemovalNoteOptions
+
+> **AddRemovalNoteOptions** = `Prettify`\<`PostRemovalNoteRequest`\>
diff --git a/docs/api/public-api/type-aliases/AddWidgetData.md b/docs/api/public-api/type-aliases/AddWidgetData.md
new file mode 100644
index 00000000..686eb124
--- /dev/null
+++ b/docs/api/public-api/type-aliases/AddWidgetData.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: AddWidgetData
+
+> **AddWidgetData** = `AddImageWidgetRequest` & `object` \| `AddCalendarWidgetRequest` & `object` \| `AddTextAreaWidgetRequest` & `object` \| `AddButtonWidgetRequest` & `object` \| `AddCommunityListWidgetRequest` & `object` \| `AddPostFlairWidgetRequest` & `object` \| `AddCustomWidgetRequest` & `object`
diff --git a/docs/api/public-api/type-aliases/AllowableFlairContent.md b/docs/api/public-api/type-aliases/AllowableFlairContent.md
new file mode 100644
index 00000000..046d87ca
--- /dev/null
+++ b/docs/api/public-api/type-aliases/AllowableFlairContent.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: AllowableFlairContent
+
+> **AllowableFlairContent** = `"all"` \| `"emoji"` \| `"text"`
diff --git a/docs/api/public-api/type-aliases/AnimatedImage.md b/docs/api/public-api/type-aliases/AnimatedImage.md
new file mode 100644
index 00000000..a614804e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/AnimatedImage.md
@@ -0,0 +1,49 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: AnimatedImage
+
+> **AnimatedImage** = `object`
+
+## Properties
+
+
+
+### c?
+
+> `optional` **c**: `string`
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`ANIMATED_IMAGE_ELEMENT`](../variables/ANIMATED_IMAGE_ELEMENT.md)
+
+***
+
+
+
+### id?
+
+> `optional` **id**: [`MediaAssetId`](MediaAssetId.md)
+
+***
+
+
+
+### mediaUrl?
+
+> `optional` **mediaUrl**: `string`
+
+URL of the media when building; backend may replace with id in processed JSON
+
+***
+
+
+
+### o?
+
+> `optional` **o**: [`ObfuscationReason`](ObfuscationReason.md)
diff --git a/docs/api/public-api/type-aliases/AppInstall.md b/docs/api/public-api/type-aliases/AppInstall.md
index 026004d3..ad6ac6a3 100644
--- a/docs/api/public-api/type-aliases/AppInstall.md
+++ b/docs/api/public-api/type-aliases/AppInstall.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/AppInstallDefinition.md b/docs/api/public-api/type-aliases/AppInstallDefinition.md
index afe03418..ddccd3fe 100644
--- a/docs/api/public-api/type-aliases/AppInstallDefinition.md
+++ b/docs/api/public-api/type-aliases/AppInstallDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/AppUpgrade.md b/docs/api/public-api/type-aliases/AppUpgrade.md
index ba9e23c5..5b251a92 100644
--- a/docs/api/public-api/type-aliases/AppUpgrade.md
+++ b/docs/api/public-api/type-aliases/AppUpgrade.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/AppUpgradeDefinition.md b/docs/api/public-api/type-aliases/AppUpgradeDefinition.md
index e417f9bb..ea161cc7 100644
--- a/docs/api/public-api/type-aliases/AppUpgradeDefinition.md
+++ b/docs/api/public-api/type-aliases/AppUpgradeDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/AutomoderatorFilterComment.md b/docs/api/public-api/type-aliases/AutomoderatorFilterComment.md
index 91b949b5..13ce0e7c 100644
--- a/docs/api/public-api/type-aliases/AutomoderatorFilterComment.md
+++ b/docs/api/public-api/type-aliases/AutomoderatorFilterComment.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/AutomoderatorFilterPost.md b/docs/api/public-api/type-aliases/AutomoderatorFilterPost.md
index ba736de0..c245a812 100644
--- a/docs/api/public-api/type-aliases/AutomoderatorFilterPost.md
+++ b/docs/api/public-api/type-aliases/AutomoderatorFilterPost.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/BackgroundImagePosition.md b/docs/api/public-api/type-aliases/BackgroundImagePosition.md
new file mode 100644
index 00000000..cd8f9756
--- /dev/null
+++ b/docs/api/public-api/type-aliases/BackgroundImagePosition.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: BackgroundImagePosition
+
+> **BackgroundImagePosition** = `"cover"` \| `"tiled"` \| `"centered"`
diff --git a/docs/api/public-api/type-aliases/BanUserOptions.md b/docs/api/public-api/type-aliases/BanUserOptions.md
new file mode 100644
index 00000000..f0a40cdb
--- /dev/null
+++ b/docs/api/public-api/type-aliases/BanUserOptions.md
@@ -0,0 +1,63 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: BanUserOptions
+
+> **BanUserOptions** = `object`
+
+## Properties
+
+
+
+### context?
+
+> `optional` **context**: `string`
+
+***
+
+
+
+### duration?
+
+> `optional` **duration**: `number`
+
+***
+
+
+
+### message?
+
+> `optional` **message**: `string`
+
+***
+
+
+
+### note?
+
+> `optional` **note**: `string`
+
+***
+
+
+
+### reason?
+
+> `optional` **reason**: `string`
+
+***
+
+
+
+### subredditName
+
+> **subredditName**: `string`
+
+***
+
+
+
+### username
+
+> **username**: `string`
diff --git a/docs/api/public-api/type-aliases/BanWikiContributorOptions.md b/docs/api/public-api/type-aliases/BanWikiContributorOptions.md
new file mode 100644
index 00000000..99858e77
--- /dev/null
+++ b/docs/api/public-api/type-aliases/BanWikiContributorOptions.md
@@ -0,0 +1,47 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: BanWikiContributorOptions
+
+> **BanWikiContributorOptions** = `object`
+
+## Properties
+
+
+
+### duration?
+
+> `optional` **duration**: `number`
+
+***
+
+
+
+### note?
+
+> `optional` **note**: `string`
+
+***
+
+
+
+### reason?
+
+> `optional` **reason**: `string`
+
+***
+
+
+
+### subredditName
+
+> **subredditName**: `string`
+
+***
+
+
+
+### username
+
+> **username**: `string`
diff --git a/docs/api/public-api/type-aliases/BannerHeight.md b/docs/api/public-api/type-aliases/BannerHeight.md
new file mode 100644
index 00000000..518b8009
--- /dev/null
+++ b/docs/api/public-api/type-aliases/BannerHeight.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: BannerHeight
+
+> **BannerHeight** = `"small"` \| `"medium"` \| `"large"`
diff --git a/docs/api/public-api/type-aliases/BaseContext.md b/docs/api/public-api/type-aliases/BaseContext.md
index 22eb0c46..88cb5cf4 100644
--- a/docs/api/public-api/type-aliases/BaseContext.md
+++ b/docs/api/public-api/type-aliases/BaseContext.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/BaseField.md b/docs/api/public-api/type-aliases/BaseField.md
index 087911f5..e3723a60 100644
--- a/docs/api/public-api/type-aliases/BaseField.md
+++ b/docs/api/public-api/type-aliases/BaseField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/BitfieldCommand.md b/docs/api/public-api/type-aliases/BitfieldCommand.md
index 0f042dbc..5db9336f 100644
--- a/docs/api/public-api/type-aliases/BitfieldCommand.md
+++ b/docs/api/public-api/type-aliases/BitfieldCommand.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/BlockQuote.md b/docs/api/public-api/type-aliases/BlockQuote.md
new file mode 100644
index 00000000..f2bdfc4e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/BlockQuote.md
@@ -0,0 +1,31 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: BlockQuote
+
+> **BlockQuote** = `object`
+
+## Properties
+
+
+
+### a?
+
+> `optional` **a**: [`TextNode`](TextNode.md)
+
+***
+
+
+
+### c
+
+> **c**: [`BlockQuoteNode`](BlockQuoteNode.md)[]
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`BLOCK_QUOTE_ELEMENT`](../variables/BLOCK_QUOTE_ELEMENT.md)
diff --git a/docs/api/public-api/type-aliases/BlockQuoteContainer.md b/docs/api/public-api/type-aliases/BlockQuoteContainer.md
new file mode 100644
index 00000000..355718d6
--- /dev/null
+++ b/docs/api/public-api/type-aliases/BlockQuoteContainer.md
@@ -0,0 +1,45 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: BlockQuoteContainer\
+
+> **BlockQuoteContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`ListItemContext`](../interfaces/ListItemContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### blockQuote()
+
+> **blockQuote**(`opts`, `cb`): `Context`
+
+Append a Block Quote element
+
+#### Parameters
+
+##### opts
+
+[`BlockQuoteOptions`](BlockQuoteOptions.md)
+
+##### cb
+
+(`blockQuote`) => `void`
+
+scoped callback to add child elements to this Block Quote
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/BlockQuoteNode.md b/docs/api/public-api/type-aliases/BlockQuoteNode.md
new file mode 100644
index 00000000..ecba84f8
--- /dev/null
+++ b/docs/api/public-api/type-aliases/BlockQuoteNode.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: BlockQuoteNode
+
+> **BlockQuoteNode** = [`BlockQuote`](BlockQuote.md) \| [`CodeBlock`](CodeBlock.md) \| [`Heading`](Heading.md) \| [`List`](List.md) \| [`Paragraph`](Paragraph.md) \| [`Table`](Table.md)
diff --git a/docs/api/public-api/type-aliases/BlockQuoteOptions.md b/docs/api/public-api/type-aliases/BlockQuoteOptions.md
new file mode 100644
index 00000000..f0d20a1b
--- /dev/null
+++ b/docs/api/public-api/type-aliases/BlockQuoteOptions.md
@@ -0,0 +1,27 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: BlockQuoteOptions
+
+> **BlockQuoteOptions** = `object`
+
+## Properties
+
+
+
+### author?
+
+> `optional` **author**: [`TextNode`](TextNode.md)
+
+Element for author attribution
+
+#### See
+
+[TextNode](TextNode.md)
+
+#### Example
+
+```ts
+{ author: makeUserLink({ username: 'spez', showPrefix: true }) }
+```
diff --git a/docs/api/public-api/type-aliases/BooleanField.md b/docs/api/public-api/type-aliases/BooleanField.md
index 41beb685..c2704c8b 100644
--- a/docs/api/public-api/type-aliases/BooleanField.md
+++ b/docs/api/public-api/type-aliases/BooleanField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/CancelJob.md b/docs/api/public-api/type-aliases/CancelJob.md
index 3f4a2685..ec960bae 100644
--- a/docs/api/public-api/type-aliases/CancelJob.md
+++ b/docs/api/public-api/type-aliases/CancelJob.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/CodeBlock.md b/docs/api/public-api/type-aliases/CodeBlock.md
new file mode 100644
index 00000000..f49d5f99
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CodeBlock.md
@@ -0,0 +1,31 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CodeBlock
+
+> **CodeBlock** = `object`
+
+## Properties
+
+
+
+### c
+
+> **c**: [`RawText`](RawText.md)[]
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`CODE_BLOCK_ELEMENT`](../variables/CODE_BLOCK_ELEMENT.md)
+
+***
+
+
+
+### l?
+
+> `optional` **l**: `string`
diff --git a/docs/api/public-api/type-aliases/CodeBlockContainer.md b/docs/api/public-api/type-aliases/CodeBlockContainer.md
new file mode 100644
index 00000000..dbfe943c
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CodeBlockContainer.md
@@ -0,0 +1,47 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CodeBlockContainer\
+
+> **CodeBlockContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`ListItemContext`](../interfaces/ListItemContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### codeBlock()
+
+> **codeBlock**(`opts`, `cb`): `Context`
+
+Append a Code Block element
+
+#### Parameters
+
+##### opts
+
+[`CodeBlockOptions`](CodeBlockOptions.md)
+
+[CodeBlockOptions](CodeBlockOptions.md)
+
+##### cb
+
+(`codeBlock`) => `void`
+
+scoped callback to add child elements to this Code Block
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/CodeBlockOptions.md b/docs/api/public-api/type-aliases/CodeBlockOptions.md
new file mode 100644
index 00000000..a33b38fe
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CodeBlockOptions.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CodeBlockOptions
+
+> **CodeBlockOptions** = `object`
+
+## Properties
+
+
+
+### language?
+
+> `optional` **language**: `string`
+
+Language of the content in this Code Block
+
+#### Example
+
+```ts
+{ language: 'javascript' }
+```
diff --git a/docs/api/public-api/type-aliases/ColumnAlignment.md b/docs/api/public-api/type-aliases/ColumnAlignment.md
new file mode 100644
index 00000000..b2463fc5
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ColumnAlignment.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ColumnAlignment
+
+> **ColumnAlignment** = *typeof* [`COLUMN_ALIGN_LEFT`](../variables/COLUMN_ALIGN_LEFT.md) \| *typeof* [`COLUMN_ALIGN_RIGHT`](../variables/COLUMN_ALIGN_RIGHT.md) \| *typeof* [`COLUMN_ALIGN_CENTER`](../variables/COLUMN_ALIGN_CENTER.md)
diff --git a/docs/api/public-api/type-aliases/CommentCreate.md b/docs/api/public-api/type-aliases/CommentCreate.md
index 64dee2ee..5f4b8a03 100644
--- a/docs/api/public-api/type-aliases/CommentCreate.md
+++ b/docs/api/public-api/type-aliases/CommentCreate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/CommentCreateDefinition.md b/docs/api/public-api/type-aliases/CommentCreateDefinition.md
index 45de077a..1d60caf1 100644
--- a/docs/api/public-api/type-aliases/CommentCreateDefinition.md
+++ b/docs/api/public-api/type-aliases/CommentCreateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/CommentDelete.md b/docs/api/public-api/type-aliases/CommentDelete.md
index 5e86fe6c..970d4337 100644
--- a/docs/api/public-api/type-aliases/CommentDelete.md
+++ b/docs/api/public-api/type-aliases/CommentDelete.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/CommentDeleteDefinition.md b/docs/api/public-api/type-aliases/CommentDeleteDefinition.md
index a613b0ea..4997ff29 100644
--- a/docs/api/public-api/type-aliases/CommentDeleteDefinition.md
+++ b/docs/api/public-api/type-aliases/CommentDeleteDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/CommentLink.md b/docs/api/public-api/type-aliases/CommentLink.md
new file mode 100644
index 00000000..46eba095
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CommentLink.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CommentLink
+
+> **CommentLink** = `object`
+
+## Properties
+
+
+
+### e
+
+> **e**: *typeof* [`COMMENT_LINK_ELEMENT`](../variables/COMMENT_LINK_ELEMENT.md)
+
+***
+
+
+
+### t
+
+> **t**: `string`
diff --git a/docs/api/public-api/type-aliases/CommentLinkOptions.md b/docs/api/public-api/type-aliases/CommentLinkOptions.md
new file mode 100644
index 00000000..86778665
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CommentLinkOptions.md
@@ -0,0 +1,11 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CommentLinkOptions
+
+> **CommentLinkOptions** = [`RedditPermalinkOptions`](RedditPermalinkOptions.md)
+
+## Borrows
+
+RedditPermalinkOptions
diff --git a/docs/api/public-api/type-aliases/CommentMediaTypes.md b/docs/api/public-api/type-aliases/CommentMediaTypes.md
new file mode 100644
index 00000000..198aedff
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CommentMediaTypes.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CommentMediaTypes
+
+> **CommentMediaTypes** = `"giphy"` \| `"static"` \| `"animated"` \| `"expression"` \| `"video"`
diff --git a/docs/api/public-api/type-aliases/CommentReport.md b/docs/api/public-api/type-aliases/CommentReport.md
index 8ad7c385..352c0334 100644
--- a/docs/api/public-api/type-aliases/CommentReport.md
+++ b/docs/api/public-api/type-aliases/CommentReport.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/CommentReportDefinition.md b/docs/api/public-api/type-aliases/CommentReportDefinition.md
index bb766292..8acb5856 100644
--- a/docs/api/public-api/type-aliases/CommentReportDefinition.md
+++ b/docs/api/public-api/type-aliases/CommentReportDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/CommentSort.md b/docs/api/public-api/type-aliases/CommentSort.md
new file mode 100644
index 00000000..5720669c
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CommentSort.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CommentSort
+
+> **CommentSort** = `"confidence"` \| `"top"` \| `"new"` \| `"controversial"` \| `"old"` \| `"random"` \| `"qa"` \| `"live"`
diff --git a/docs/api/public-api/type-aliases/CommentSubmissionOptions.md b/docs/api/public-api/type-aliases/CommentSubmissionOptions.md
new file mode 100644
index 00000000..cd970ce9
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CommentSubmissionOptions.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CommentSubmissionOptions
+
+> **CommentSubmissionOptions** = \{ `runAs`: `"USER"` \| `"APP"`; `text`: `string`; \} \| \{ `richtext`: `object` \| [`RichTextBuilder`](../classes/RichTextBuilder.md); `runAs`: `"USER"` \| `"APP"`; \}
diff --git a/docs/api/public-api/type-aliases/CommentSubmit.md b/docs/api/public-api/type-aliases/CommentSubmit.md
index 65863c5e..adc9ef9b 100644
--- a/docs/api/public-api/type-aliases/CommentSubmit.md
+++ b/docs/api/public-api/type-aliases/CommentSubmit.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/CommentSubmitDefinition.md b/docs/api/public-api/type-aliases/CommentSubmitDefinition.md
index 9fdce26f..b10e52d7 100644
--- a/docs/api/public-api/type-aliases/CommentSubmitDefinition.md
+++ b/docs/api/public-api/type-aliases/CommentSubmitDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/CommentUpdate.md b/docs/api/public-api/type-aliases/CommentUpdate.md
index 26dfdfef..8cad869a 100644
--- a/docs/api/public-api/type-aliases/CommentUpdate.md
+++ b/docs/api/public-api/type-aliases/CommentUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/CommentUpdateDefinition.md b/docs/api/public-api/type-aliases/CommentUpdateDefinition.md
index 095fa717..4826e5ac 100644
--- a/docs/api/public-api/type-aliases/CommentUpdateDefinition.md
+++ b/docs/api/public-api/type-aliases/CommentUpdateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/CommonFlair.md b/docs/api/public-api/type-aliases/CommonFlair.md
new file mode 100644
index 00000000..1ade63ac
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CommonFlair.md
@@ -0,0 +1,109 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CommonFlair
+
+> **CommonFlair** = `object`
+
+This type is used for both the link and author flairs on Post and Comment objects.
+
+## Properties
+
+
+
+### backgroundColor?
+
+> `optional` **backgroundColor**: `string`
+
+Flair background color as a hex color string (# prefixed)
+
+#### Example
+
+```ts
+"#FF4500"
+```
+
+***
+
+
+
+### cssClass?
+
+> `optional` **cssClass**: `string`
+
+Custom CSS classes from the subreddit's stylesheet to apply to the flair if rendered as HTML
+
+***
+
+
+
+### richtext
+
+> **richtext**: `object`[]
+
+RichText object representation of the flair
+
+#### elementType?
+
+> `optional` **elementType**: `string`
+
+Enum of element types. e.g. emoji or text
+
+#### emojiRef?
+
+> `optional` **emojiRef**: `string`
+
+Emoji references, e.g. ":rainbow:"
+
+#### text?
+
+> `optional` **text**: `string`
+
+Text to show up in the flair, e.g. "Need Advice"
+
+#### url?
+
+> `optional` **url**: `string`
+
+url string, e.g. "https://reddit.com/"
+
+***
+
+
+
+### templateId?
+
+> `optional` **templateId**: `string`
+
+Flair template ID to use when rendering this flair
+
+***
+
+
+
+### text?
+
+> `optional` **text**: `string`
+
+Plain text representation of the flair
+
+***
+
+
+
+### textColor?
+
+> `optional` **textColor**: `string`
+
+One of: "light", "dark"
+
+***
+
+
+
+### type?
+
+> `optional` **type**: `string`
+
+One of: "text", "richtext"
diff --git a/docs/api/public-api/type-aliases/CommonSubmitPostOptions.md b/docs/api/public-api/type-aliases/CommonSubmitPostOptions.md
new file mode 100644
index 00000000..5422d22f
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CommonSubmitPostOptions.md
@@ -0,0 +1,63 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CommonSubmitPostOptions
+
+> **CommonSubmitPostOptions** = `object`
+
+## Properties
+
+
+
+### flairId?
+
+> `optional` **flairId**: `string`
+
+***
+
+
+
+### flairText?
+
+> `optional` **flairText**: `string`
+
+***
+
+
+
+### nsfw?
+
+> `optional` **nsfw**: `boolean`
+
+***
+
+
+
+### runAs?
+
+> `optional` **runAs**: `"USER"` \| `"APP"`
+
+***
+
+
+
+### sendreplies?
+
+> `optional` **sendreplies**: `boolean`
+
+***
+
+
+
+### spoiler?
+
+> `optional` **spoiler**: `boolean`
+
+***
+
+
+
+### title
+
+> **title**: `string`
diff --git a/docs/api/public-api/type-aliases/CommunityNameFormat.md b/docs/api/public-api/type-aliases/CommunityNameFormat.md
new file mode 100644
index 00000000..6f82719b
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CommunityNameFormat.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CommunityNameFormat
+
+> **CommunityNameFormat** = `"slashtag"` \| `"pretty"` \| `"hide"`
diff --git a/docs/api/public-api/type-aliases/Configuration.md b/docs/api/public-api/type-aliases/Configuration.md
index ba9e56a6..7dbe192a 100644
--- a/docs/api/public-api/type-aliases/Configuration.md
+++ b/docs/api/public-api/type-aliases/Configuration.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/Context.md b/docs/api/public-api/type-aliases/Context.md
index b315b7ce..6c96a575 100644
--- a/docs/api/public-api/type-aliases/Context.md
+++ b/docs/api/public-api/type-aliases/Context.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ContextAPIClients.md b/docs/api/public-api/type-aliases/ContextAPIClients.md
index 8794132b..dac859eb 100644
--- a/docs/api/public-api/type-aliases/ContextAPIClients.md
+++ b/docs/api/public-api/type-aliases/ContextAPIClients.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
@@ -68,7 +68,7 @@ A client for media API
### reddit
-> **reddit**: `RedditAPIClient`
+> **reddit**: [`RedditAPIClient`](../classes/RedditAPIClient.md)
A client for the Reddit API
@@ -98,7 +98,7 @@ A client for the Scheduler API
### settings
-> **settings**: [`SettingsClient`](SettingsClient.md)
+> **settings**: [`SettingsClient`](../classes/SettingsClient.md)
A client for the Settings API
diff --git a/docs/api/public-api/type-aliases/ContextDebugInfo.md b/docs/api/public-api/type-aliases/ContextDebugInfo.md
index d92c8894..0d6e3ec0 100644
--- a/docs/api/public-api/type-aliases/ContextDebugInfo.md
+++ b/docs/api/public-api/type-aliases/ContextDebugInfo.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ConversationData.md b/docs/api/public-api/type-aliases/ConversationData.md
new file mode 100644
index 00000000..180aa74c
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ConversationData.md
@@ -0,0 +1,218 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ConversationData
+
+> **ConversationData** = `object`
+
+## Properties
+
+
+
+### authors
+
+> **authors**: [`Participant`](Participant.md)[]
+
+The authors of each message in the modmail conversation.
+
+***
+
+
+
+### conversationType?
+
+> `optional` **conversationType**: `string`
+
+A ConversationType specifies whether a conversation is with a subreddit
+itself, with another user, or with another subreddit entirely.
+- `sr_user` - This is a conversation with another user outside of the
+ subreddit. The participant ID is that user's ID.
+- `internal` - This is a Mod Discussion, internal to the subreddit. There
+ is no other participant.
+- `sr_sr` - This is a conversation is with another subreddit. The
+ participant will have a subreddit ID.
+
+***
+
+
+
+### id?
+
+> `optional` **id**: `string`
+
+Conversation ID
+
+***
+
+
+
+### isAuto?
+
+> `optional` **isAuto**: `boolean`
+
+Is the conversation automatically generated e.g. from automod, u/reddit
+
+***
+
+
+
+### isHighlighted?
+
+> `optional` **isHighlighted**: `boolean`
+
+Is the conversation highlighted
+
+***
+
+
+
+### isInternal?
+
+> `optional` **isInternal**: `boolean`
+
+Is the conversation internal (i.e. mod only)
+
+***
+
+
+
+### lastModUpdate?
+
+> `optional` **lastModUpdate**: `string`
+
+The last datetime a mod from the owning subreddit made any interaction
+with the conversation.
+
+(Note that if this is a subreddit to subreddit conversation, the mods of
+the participant subreddit are irrelevant and do not affect this field.)
+
+***
+
+
+
+### lastUnread?
+
+> `optional` **lastUnread**: `string`
+
+The datetime of the last unread message within this conversation for the current viewer.
+
+***
+
+
+
+### lastUpdated?
+
+> `optional` **lastUpdated**: `string`
+
+The datetime of the last time the conversation was update.
+
+***
+
+
+
+### lastUserUpdate?
+
+> `optional` **lastUserUpdate**: `string`
+
+The last datetime a user made any interaction with the conversation
+
+***
+
+
+
+### messages
+
+> **messages**: `object`
+
+Conversation messages
+
+#### Index Signature
+
+\[`id`: `string`\]: [`MessageData`](MessageData.md)
+
+#### Example
+
+```ts
+const arrayOfMessages = Object.values(conversation.messages);
+const messageById = conversation.messages[messageId];
+```
+
+***
+
+
+
+### modActions
+
+> **modActions**: `object`
+
+Conversation mod actions
+
+#### Index Signature
+
+\[`id`: `string`\]: [`ModActionData`](ModActionData.md)
+
+#### Example
+
+```ts
+const arrayOfModActions = Object.values(conversation.modActions);
+const modActionById = conversation.modActions[modActionId];
+```
+
+***
+
+
+
+### numMessages?
+
+> `optional` **numMessages**: `number`
+
+Number of messages (not actions) in the conversation
+
+***
+
+
+
+### participant?
+
+> `optional` **participant**: [`Participant`](Participant.md)
+
+Participant. Is absent for mod discussions
+
+***
+
+
+
+### state?
+
+> `optional` **state**: [`ModMailConversationState`](../enumerations/ModMailConversationState.md)
+
+State of the conversation
+
+***
+
+
+
+### subject?
+
+> `optional` **subject**: `string`
+
+Suject of the conversation
+
+***
+
+
+
+### subreddit?
+
+> `optional` **subreddit**: `object`
+
+Subreddit owning the modmail conversation
+
+#### displayName?
+
+> `optional` **displayName**: `string`
+
+#### id?
+
+> `optional` **id**: `T5`
diff --git a/docs/api/public-api/type-aliases/ConversationResponse.md b/docs/api/public-api/type-aliases/ConversationResponse.md
new file mode 100644
index 00000000..63aa728f
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ConversationResponse.md
@@ -0,0 +1,15 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ConversationResponse
+
+> **ConversationResponse** = `object`
+
+## Properties
+
+
+
+### conversation
+
+> **conversation**: [`ConversationData`](ConversationData.md)
diff --git a/docs/api/public-api/type-aliases/ConversationStateFilter.md b/docs/api/public-api/type-aliases/ConversationStateFilter.md
new file mode 100644
index 00000000..6a84d5c0
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ConversationStateFilter.md
@@ -0,0 +1,12 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ConversationStateFilter
+
+> **ConversationStateFilter** = `"all"` \| `"new"` \| `"inprogress"` \| `"archived"` \| `"appeals"` \| `"join_requests"` \| `"highlighted"` \| `"mod"` \| `"notifications"` \| `"inbox"` \| `"filtered"` \| `"default"`
+
+A Conversation State is a way in which conversations may be filtered within the UI.
+
+A conversation can be in more than one state.
+For example, a conversation may be both 'highlighted' and 'inprogress'.
diff --git a/docs/api/public-api/type-aliases/ConversationUserData.md b/docs/api/public-api/type-aliases/ConversationUserData.md
new file mode 100644
index 00000000..ebc48644
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ConversationUserData.md
@@ -0,0 +1,155 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ConversationUserData
+
+> **ConversationUserData** = `object`
+
+## Properties
+
+
+
+### approveStatus?
+
+> `optional` **approveStatus**: `object`
+
+#### isApproved?
+
+> `optional` **isApproved**: `boolean`
+
+***
+
+
+
+### banStatus?
+
+> `optional` **banStatus**: `object`
+
+#### endDate?
+
+> `optional` **endDate**: `string`
+
+#### isBanned?
+
+> `optional` **isBanned**: `boolean`
+
+#### isPermanent?
+
+> `optional` **isPermanent**: `boolean`
+
+#### reason?
+
+> `optional` **reason**: `string`
+
+***
+
+
+
+### created?
+
+> `optional` **created**: `string`
+
+When was created
+
+***
+
+
+
+### id?
+
+> `optional` **id**: `T2`
+
+User ID
+
+***
+
+
+
+### isShadowBanned?
+
+> `optional` **isShadowBanned**: `boolean`
+
+***
+
+
+
+### isSuspended?
+
+> `optional` **isSuspended**: `boolean`
+
+***
+
+
+
+### muteStatus?
+
+> `optional` **muteStatus**: `object`
+
+#### endDate?
+
+> `optional` **endDate**: `string`
+
+#### isMuted?
+
+> `optional` **isMuted**: `boolean`
+
+#### muteCount?
+
+> `optional` **muteCount**: `number`
+
+#### reason?
+
+> `optional` **reason**: `string`
+
+***
+
+
+
+### name?
+
+> `optional` **name**: `string`
+
+Username
+
+***
+
+
+
+### recentComments
+
+> **recentComments**: `object`
+
+Recent comments
+
+#### Index Signature
+
+\[`id`: `` `t1_${string}` ``\]: `object`
+
+***
+
+
+
+### recentConvos
+
+> **recentConvos**: `object`
+
+Recent conversations
+
+#### Index Signature
+
+\[`id`: `string`\]: `object`
+
+***
+
+
+
+### recentPosts
+
+> **recentPosts**: `object`
+
+Recent posts
+
+#### Index Signature
+
+\[`id`: `` `t3_${string}` ``\]: `object`
diff --git a/docs/api/public-api/type-aliases/CreateFlairTemplateOptions.md b/docs/api/public-api/type-aliases/CreateFlairTemplateOptions.md
new file mode 100644
index 00000000..3ebaac73
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CreateFlairTemplateOptions.md
@@ -0,0 +1,85 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CreateFlairTemplateOptions
+
+> **CreateFlairTemplateOptions** = `object`
+
+## Properties
+
+
+
+### allowableContent?
+
+> `optional` **allowableContent**: [`AllowableFlairContent`](AllowableFlairContent.md)
+
+The flair template's allowable content. Either 'all', 'emoji', or 'text'.
+
+***
+
+
+
+### allowUserEdits?
+
+> `optional` **allowUserEdits**: `boolean`
+
+Whether or not users are allowed to edit this flair template before using it.
+
+***
+
+
+
+### backgroundColor?
+
+> `optional` **backgroundColor**: `string`
+
+The background color of the flair. Either 'transparent' or a hex color code. e.g. #FFC0CB
+
+***
+
+
+
+### maxEmojis?
+
+> `optional` **maxEmojis**: `number`
+
+***
+
+
+
+### modOnly?
+
+> `optional` **modOnly**: `boolean`
+
+Whether or not this flair template is only available to moderators.
+
+***
+
+
+
+### subredditName
+
+> **subredditName**: `string`
+
+The name of the subreddit to create the flair template in.
+
+***
+
+
+
+### text
+
+> **text**: `string`
+
+The text to display in the flair.
+
+***
+
+
+
+### textColor?
+
+> `optional` **textColor**: [`FlairTextColor`](FlairTextColor.md)
+
+Either 'dark' or 'light'.
diff --git a/docs/api/public-api/type-aliases/CreateModNoteOptions.md b/docs/api/public-api/type-aliases/CreateModNoteOptions.md
new file mode 100644
index 00000000..610795b5
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CreateModNoteOptions.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CreateModNoteOptions
+
+> **CreateModNoteOptions** = `Prettify`\<`PostNotesRequest` & `object`\>
diff --git a/docs/api/public-api/type-aliases/CreateRelationshipOptions.md b/docs/api/public-api/type-aliases/CreateRelationshipOptions.md
new file mode 100644
index 00000000..ca7747a6
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CreateRelationshipOptions.md
@@ -0,0 +1,81 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CreateRelationshipOptions
+
+> **CreateRelationshipOptions** = `object`
+
+## Properties
+
+
+
+### banContext?
+
+> `optional` **banContext**: `string`
+
+The ID of the post or comment that caused the ban.
+
+***
+
+
+
+### banMessage?
+
+> `optional` **banMessage**: `string`
+
+***
+
+
+
+### banReason?
+
+> `optional` **banReason**: `string`
+
+***
+
+
+
+### duration?
+
+> `optional` **duration**: `number`
+
+***
+
+
+
+### note?
+
+> `optional` **note**: `string`
+
+***
+
+
+
+### permissions?
+
+> `optional` **permissions**: [`ModeratorPermission`](ModeratorPermission.md)[]
+
+***
+
+
+
+### subredditName
+
+> **subredditName**: `string`
+
+***
+
+
+
+### type
+
+> **type**: [`RelationshipType`](RelationshipType.md)
+
+***
+
+
+
+### username
+
+> **username**: `string`
diff --git a/docs/api/public-api/type-aliases/CreateRuleOptions.md b/docs/api/public-api/type-aliases/CreateRuleOptions.md
new file mode 100644
index 00000000..12116c57
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CreateRuleOptions.md
@@ -0,0 +1,19 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CreateRuleOptions
+
+> **CreateRuleOptions** = `Omit`\<`AddSubredditRuleRequest`, `"r"` \| `"kind"` \| `"violationReason"`\> & `object`
+
+Options for creating a new subreddit rule.
+
+## Type declaration
+
+### kind
+
+> **kind**: `"all"` \| `"link"` \| `"comment"`
+
+### violationReason?
+
+> `optional` **violationReason**: `string`
diff --git a/docs/api/public-api/type-aliases/CreateWikiPageOptions.md b/docs/api/public-api/type-aliases/CreateWikiPageOptions.md
new file mode 100644
index 00000000..87a2ac4a
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CreateWikiPageOptions.md
@@ -0,0 +1,47 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CreateWikiPageOptions
+
+> **CreateWikiPageOptions** = `object`
+
+## Properties
+
+
+
+### content
+
+> **content**: `string`
+
+The content of the page.
+
+***
+
+
+
+### page
+
+> **page**: `string`
+
+The name of the page to create.
+
+***
+
+
+
+### reason?
+
+> `optional` **reason**: `string`
+
+The reason for creating the page.
+
+***
+
+
+
+### subredditName
+
+> **subredditName**: `string`
+
+The name of the subreddit to create the page in.
diff --git a/docs/api/public-api/type-aliases/CrosspostOptions.md b/docs/api/public-api/type-aliases/CrosspostOptions.md
new file mode 100644
index 00000000..d9ba9513
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CrosspostOptions.md
@@ -0,0 +1,13 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CrosspostOptions
+
+> **CrosspostOptions** = [`CommonSubmitPostOptions`](CommonSubmitPostOptions.md) & `Required`\<[`SubredditOptions`](SubredditOptions.md)\> & `object`
+
+## Type declaration
+
+### postId
+
+> **postId**: `T3`
diff --git a/docs/api/public-api/type-aliases/CrowdControlLevel.md b/docs/api/public-api/type-aliases/CrowdControlLevel.md
new file mode 100644
index 00000000..2733a134
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CrowdControlLevel.md
@@ -0,0 +1,13 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CrowdControlLevel
+
+> **CrowdControlLevel** = `"OFF"` \| `"LENIENT"` \| `"MEDIUM"` \| `"STRICT"`
+
+Crowd control level for posts. Determines which comments should be collapsed due to crowd control.
+OFF: Anyone with a Reddit account can comment freely.
+LENIENT: Collapse comments from people who have negative karma in your community.
+MEDIUM: Collapse comments from new Reddit users and people with negative karma in your community.
+STRICT: Collapse comments from people who haven’t joined your community, new Reddit users, and people with negative karma in your community
diff --git a/docs/api/public-api/type-aliases/CustomPostRichTextFallback.md b/docs/api/public-api/type-aliases/CustomPostRichTextFallback.md
new file mode 100644
index 00000000..6ec54065
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CustomPostRichTextFallback.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CustomPostRichTextFallback
+
+> **CustomPostRichTextFallback** = [`RichTextBuilder`](../classes/RichTextBuilder.md) \| `string`
diff --git a/docs/api/public-api/type-aliases/CustomPostTextFallbackOptions.md b/docs/api/public-api/type-aliases/CustomPostTextFallbackOptions.md
new file mode 100644
index 00000000..91b1d65b
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CustomPostTextFallbackOptions.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CustomPostTextFallbackOptions
+
+> **CustomPostTextFallbackOptions** = \{ `text`: `string`; \} \| \{ `richtext`: [`CustomPostRichTextFallback`](CustomPostRichTextFallback.md); \}
+
+## Type declaration
+
+\{ `text`: `string`; \}
+
+### text
+
+> **text**: `string`
+
+May also include markdown. See https://www.reddit.com/r/reddit.com/wiki/markdown/
+
+\{ `richtext`: [`CustomPostRichTextFallback`](CustomPostRichTextFallback.md); \}
+
+### richtext
+
+> **richtext**: [`CustomPostRichTextFallback`](CustomPostRichTextFallback.md)
diff --git a/docs/api/public-api/type-aliases/CustomizationFlag.md b/docs/api/public-api/type-aliases/CustomizationFlag.md
new file mode 100644
index 00000000..aac30298
--- /dev/null
+++ b/docs/api/public-api/type-aliases/CustomizationFlag.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: CustomizationFlag
+
+> **CustomizationFlag** = `"default"` \| `"custom"`
diff --git a/docs/api/public-api/type-aliases/Data.md b/docs/api/public-api/type-aliases/Data.md
index d43bffc4..8ea13b35 100644
--- a/docs/api/public-api/type-aliases/Data.md
+++ b/docs/api/public-api/type-aliases/Data.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/DeleteNotesOptions.md b/docs/api/public-api/type-aliases/DeleteNotesOptions.md
new file mode 100644
index 00000000..ac7ae4e5
--- /dev/null
+++ b/docs/api/public-api/type-aliases/DeleteNotesOptions.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: DeleteNotesOptions
+
+> **DeleteNotesOptions** = `Prettify`\<`DeleteNotesRequest`\>
diff --git a/docs/api/public-api/type-aliases/DevvitDebug.md b/docs/api/public-api/type-aliases/DevvitDebug.md
index c8292074..62671df8 100644
--- a/docs/api/public-api/type-aliases/DevvitDebug.md
+++ b/docs/api/public-api/type-aliases/DevvitDebug.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/Dispatch.md b/docs/api/public-api/type-aliases/Dispatch.md
index e10f1208..85b128df 100644
--- a/docs/api/public-api/type-aliases/Dispatch.md
+++ b/docs/api/public-api/type-aliases/Dispatch.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/Document.md b/docs/api/public-api/type-aliases/Document.md
new file mode 100644
index 00000000..ca293a89
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Document.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Document
+
+> **Document** = [`DocumentNode`](DocumentNode.md)[]
diff --git a/docs/api/public-api/type-aliases/DocumentNode.md b/docs/api/public-api/type-aliases/DocumentNode.md
new file mode 100644
index 00000000..acabdfc0
--- /dev/null
+++ b/docs/api/public-api/type-aliases/DocumentNode.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: DocumentNode
+
+> **DocumentNode** = [`Paragraph`](Paragraph.md) \| [`Heading`](Heading.md) \| [`HorizontalRule`](HorizontalRule.md) \| [`BlockQuote`](BlockQuote.md) \| [`CodeBlock`](CodeBlock.md) \| [`Embed`](Embed.md) \| [`List`](List.md) \| [`Table`](Table.md) \| [`Media`](Media.md)
diff --git a/docs/api/public-api/type-aliases/EditCommentOptions.md b/docs/api/public-api/type-aliases/EditCommentOptions.md
new file mode 100644
index 00000000..f6f6d713
--- /dev/null
+++ b/docs/api/public-api/type-aliases/EditCommentOptions.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: EditCommentOptions
+
+> **EditCommentOptions** = [`CommentSubmissionOptions`](CommentSubmissionOptions.md)
diff --git a/docs/api/public-api/type-aliases/EditFlairTemplateOptions.md b/docs/api/public-api/type-aliases/EditFlairTemplateOptions.md
new file mode 100644
index 00000000..551d9381
--- /dev/null
+++ b/docs/api/public-api/type-aliases/EditFlairTemplateOptions.md
@@ -0,0 +1,13 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: EditFlairTemplateOptions
+
+> **EditFlairTemplateOptions** = [`CreateFlairTemplateOptions`](CreateFlairTemplateOptions.md) & `object`
+
+## Type declaration
+
+### id
+
+> **id**: `string`
diff --git a/docs/api/public-api/type-aliases/Embed.md b/docs/api/public-api/type-aliases/Embed.md
new file mode 100644
index 00000000..54c91a7a
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Embed.md
@@ -0,0 +1,47 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Embed
+
+> **Embed** = `object`
+
+## Properties
+
+
+
+### c
+
+> **c**: [`UrlString`](UrlString.md)
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`EMBED_ELEMENT`](../variables/EMBED_ELEMENT.md)
+
+***
+
+
+
+### u
+
+> **u**: [`UrlString`](UrlString.md)
+
+***
+
+
+
+### x
+
+> **x**: `number`
+
+***
+
+
+
+### y
+
+> **y**: `number`
diff --git a/docs/api/public-api/type-aliases/EmbedContainer.md b/docs/api/public-api/type-aliases/EmbedContainer.md
new file mode 100644
index 00000000..4f8b819e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/EmbedContainer.md
@@ -0,0 +1,37 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: EmbedContainer\
+
+> **EmbedContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### embed()
+
+> **embed**(`opts`): `Context`
+
+Append an embedded iframe
+
+#### Parameters
+
+##### opts
+
+[`EmbedOptions`](EmbedOptions.md)
+
+[EmbedOptions](EmbedOptions.md)
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/EmbedOptions.md b/docs/api/public-api/type-aliases/EmbedOptions.md
new file mode 100644
index 00000000..6fea5cf5
--- /dev/null
+++ b/docs/api/public-api/type-aliases/EmbedOptions.md
@@ -0,0 +1,43 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: EmbedOptions
+
+> **EmbedOptions** = `object`
+
+## Properties
+
+
+
+### contentUrl
+
+> **contentUrl**: `string`
+
+URL to load in the embedded iframe
+
+***
+
+
+
+### height
+
+> **height**: `number`
+
+***
+
+
+
+### sourceUrl
+
+> **sourceUrl**: `string`
+
+Destination URL when the embed is clicked
+
+***
+
+
+
+### width
+
+> **width**: `number`
diff --git a/docs/api/public-api/type-aliases/EnrichedThumbnail.md b/docs/api/public-api/type-aliases/EnrichedThumbnail.md
new file mode 100644
index 00000000..e13860d5
--- /dev/null
+++ b/docs/api/public-api/type-aliases/EnrichedThumbnail.md
@@ -0,0 +1,73 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: EnrichedThumbnail
+
+> **EnrichedThumbnail** = `object`
+
+Contains data about a post's thumbnail. Also contains a blurred version if the thumbnail is NSFW.
+
+## Properties
+
+
+
+### attribution?
+
+> `optional` **attribution**: `string`
+
+Attribution text for the thumbnail
+
+***
+
+
+
+### image
+
+> **image**: `object`
+
+The image used for the thumbnail. May have different resolution from Post.thumbnail
+
+#### height
+
+> **height**: `number`
+
+#### url
+
+> **url**: `string`
+
+#### width
+
+> **width**: `number`
+
+***
+
+
+
+### isObfuscatedDefault
+
+> **isObfuscatedDefault**: `boolean`
+
+Whether this thumbnail appears blurred by default
+
+***
+
+
+
+### obfuscatedImage?
+
+> `optional` **obfuscatedImage**: `object`
+
+The blurred image for NSFW thumbnails
+
+#### height
+
+> **height**: `number`
+
+#### url
+
+> **url**: `string`
+
+#### width
+
+> **width**: `number`
diff --git a/docs/api/public-api/type-aliases/FlairBackgroundColor.md b/docs/api/public-api/type-aliases/FlairBackgroundColor.md
new file mode 100644
index 00000000..77c468b6
--- /dev/null
+++ b/docs/api/public-api/type-aliases/FlairBackgroundColor.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: FlairBackgroundColor
+
+> **FlairBackgroundColor** = `` `#${string}` `` \| `"transparent"`
diff --git a/docs/api/public-api/type-aliases/FlairSettings.md b/docs/api/public-api/type-aliases/FlairSettings.md
new file mode 100644
index 00000000..c488406f
--- /dev/null
+++ b/docs/api/public-api/type-aliases/FlairSettings.md
@@ -0,0 +1,39 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: FlairSettings
+
+> **FlairSettings** = `object`
+
+## Properties
+
+
+
+### enabled
+
+> **enabled**: `boolean`
+
+***
+
+
+
+### userFlairBackgroundColor?
+
+> `optional` **userFlairBackgroundColor**: `string`
+
+***
+
+
+
+### userFlairTextColor?
+
+> `optional` **userFlairTextColor**: `string`
+
+***
+
+
+
+### usersCanAssign
+
+> **usersCanAssign**: `boolean`
diff --git a/docs/api/public-api/type-aliases/FlairTextColor.md b/docs/api/public-api/type-aliases/FlairTextColor.md
new file mode 100644
index 00000000..bcad7307
--- /dev/null
+++ b/docs/api/public-api/type-aliases/FlairTextColor.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: FlairTextColor
+
+> **FlairTextColor** = `"light"` \| `"dark"`
diff --git a/docs/api/public-api/type-aliases/Form.md b/docs/api/public-api/type-aliases/Form.md
index a6e0b049..d88014f8 100644
--- a/docs/api/public-api/type-aliases/Form.md
+++ b/docs/api/public-api/type-aliases/Form.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/FormDefinition.md b/docs/api/public-api/type-aliases/FormDefinition.md
index 7a5c48c7..9dd85dcf 100644
--- a/docs/api/public-api/type-aliases/FormDefinition.md
+++ b/docs/api/public-api/type-aliases/FormDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/FormField.md b/docs/api/public-api/type-aliases/FormField.md
index 6ebfdad7..9eb8fc60 100644
--- a/docs/api/public-api/type-aliases/FormField.md
+++ b/docs/api/public-api/type-aliases/FormField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/FormFieldGroup.md b/docs/api/public-api/type-aliases/FormFieldGroup.md
index d596289e..7ffa9606 100644
--- a/docs/api/public-api/type-aliases/FormFieldGroup.md
+++ b/docs/api/public-api/type-aliases/FormFieldGroup.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/FormFunction.md b/docs/api/public-api/type-aliases/FormFunction.md
index c661dfc9..bc118029 100644
--- a/docs/api/public-api/type-aliases/FormFunction.md
+++ b/docs/api/public-api/type-aliases/FormFunction.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/FormKey.md b/docs/api/public-api/type-aliases/FormKey.md
index 300b7338..c3edd9bc 100644
--- a/docs/api/public-api/type-aliases/FormKey.md
+++ b/docs/api/public-api/type-aliases/FormKey.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/FormOnSubmitEvent.md b/docs/api/public-api/type-aliases/FormOnSubmitEvent.md
index e13e0b2d..1083263e 100644
--- a/docs/api/public-api/type-aliases/FormOnSubmitEvent.md
+++ b/docs/api/public-api/type-aliases/FormOnSubmitEvent.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/FormOnSubmitEventHandler.md b/docs/api/public-api/type-aliases/FormOnSubmitEventHandler.md
index 0951c139..f6a1125d 100644
--- a/docs/api/public-api/type-aliases/FormOnSubmitEventHandler.md
+++ b/docs/api/public-api/type-aliases/FormOnSubmitEventHandler.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/FormToFormValues.md b/docs/api/public-api/type-aliases/FormToFormValues.md
index 6ae021f5..28da5e96 100644
--- a/docs/api/public-api/type-aliases/FormToFormValues.md
+++ b/docs/api/public-api/type-aliases/FormToFormValues.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/FormValues.md b/docs/api/public-api/type-aliases/FormValues.md
index bb446f46..365539ae 100644
--- a/docs/api/public-api/type-aliases/FormValues.md
+++ b/docs/api/public-api/type-aliases/FormValues.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/FormatOptions.md b/docs/api/public-api/type-aliases/FormatOptions.md
new file mode 100644
index 00000000..d12e1df4
--- /dev/null
+++ b/docs/api/public-api/type-aliases/FormatOptions.md
@@ -0,0 +1,83 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: FormatOptions
+
+> **FormatOptions** = `object`
+
+## Properties
+
+
+
+### bold?
+
+> `optional` **bold**: `boolean`
+
+***
+
+
+
+### italic?
+
+> `optional` **italic**: `boolean`
+
+***
+
+
+
+### length
+
+> **length**: `number`
+
+Number of characters from the startIndex to receive this formatting
+
+***
+
+
+
+### monospace?
+
+> `optional` **monospace**: `boolean`
+
+***
+
+
+
+### startIndex
+
+> **startIndex**: `number`
+
+Starting index to receive this formatting
+
+***
+
+
+
+### strikethrough?
+
+> `optional` **strikethrough**: `boolean`
+
+***
+
+
+
+### subscript?
+
+> `optional` **subscript**: `boolean`
+
+***
+
+
+
+### superscript?
+
+> `optional` **superscript**: `boolean`
+
+***
+
+
+
+### underline?
+
+> `optional` **underline**: `boolean`
diff --git a/docs/api/public-api/type-aliases/FormatRange.md b/docs/api/public-api/type-aliases/FormatRange.md
new file mode 100644
index 00000000..051ec730
--- /dev/null
+++ b/docs/api/public-api/type-aliases/FormatRange.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: FormatRange
+
+> **FormatRange** = \[[`FormattingSpecification`](FormattingSpecification.md), `number`, `number`\]
diff --git a/docs/api/public-api/type-aliases/FormattingSpecification.md b/docs/api/public-api/type-aliases/FormattingSpecification.md
new file mode 100644
index 00000000..15085bb4
--- /dev/null
+++ b/docs/api/public-api/type-aliases/FormattingSpecification.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: FormattingSpecification
+
+> **FormattingSpecification** = `number`
diff --git a/docs/api/public-api/type-aliases/GalleryMedia.md b/docs/api/public-api/type-aliases/GalleryMedia.md
new file mode 100644
index 00000000..a098d572
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GalleryMedia.md
@@ -0,0 +1,43 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GalleryMedia
+
+> **GalleryMedia** = `object`
+
+Represents media that the post may contain.
+
+## Properties
+
+
+
+### height
+
+> **height**: `number`
+
+***
+
+
+
+### status
+
+> **status**: [`GalleryMediaStatus`](GalleryMediaStatus.md)
+
+Status of the media. Media that were successfully uplaoded will have GalleryMediaStatus.VALID status
+
+***
+
+
+
+### url
+
+> **url**: `string`
+
+***
+
+
+
+### width
+
+> **width**: `number`
diff --git a/docs/api/public-api/type-aliases/GalleryMediaStatus.md b/docs/api/public-api/type-aliases/GalleryMediaStatus.md
new file mode 100644
index 00000000..fef5fa87
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GalleryMediaStatus.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GalleryMediaStatus
+
+> **GalleryMediaStatus** = *typeof* `GalleryMediaStatusProto`\[keyof *typeof* `GalleryMediaStatusProto`\]
diff --git a/docs/api/public-api/type-aliases/GetBestPostsOptions.md b/docs/api/public-api/type-aliases/GetBestPostsOptions.md
new file mode 100644
index 00000000..890822a1
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetBestPostsOptions.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetBestPostsOptions
+
+> **GetBestPostsOptions** = [`ListingFetchOptions`](ListingFetchOptions.md)
diff --git a/docs/api/public-api/type-aliases/GetCommentsByUserOptions.md b/docs/api/public-api/type-aliases/GetCommentsByUserOptions.md
new file mode 100644
index 00000000..554e0e8b
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetCommentsByUserOptions.md
@@ -0,0 +1,63 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetCommentsByUserOptions
+
+> **GetCommentsByUserOptions** = `object`
+
+## Properties
+
+
+
+### after?
+
+> `optional` **after**: `string`
+
+***
+
+
+
+### before?
+
+> `optional` **before**: `string`
+
+***
+
+
+
+### limit?
+
+> `optional` **limit**: `number`
+
+***
+
+
+
+### pageSize?
+
+> `optional` **pageSize**: `number`
+
+***
+
+
+
+### sort?
+
+> `optional` **sort**: `"hot"` \| `"new"` \| `"top"` \| `"controversial"`
+
+***
+
+
+
+### timeframe?
+
+> `optional` **timeframe**: `"hour"` \| `"day"` \| `"week"` \| `"month"` \| `"year"` \| `"all"`
+
+***
+
+
+
+### username
+
+> **username**: `string`
diff --git a/docs/api/public-api/type-aliases/GetCommentsOptions.md b/docs/api/public-api/type-aliases/GetCommentsOptions.md
new file mode 100644
index 00000000..75b8151e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetCommentsOptions.md
@@ -0,0 +1,55 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetCommentsOptions
+
+> **GetCommentsOptions** = `object`
+
+## Properties
+
+
+
+### commentId?
+
+> `optional` **commentId**: `T1`
+
+***
+
+
+
+### depth?
+
+> `optional` **depth**: `number`
+
+***
+
+
+
+### limit?
+
+> `optional` **limit**: `number`
+
+***
+
+
+
+### pageSize?
+
+> `optional` **pageSize**: `number`
+
+***
+
+
+
+### postId
+
+> **postId**: `T3`
+
+***
+
+
+
+### sort?
+
+> `optional` **sort**: [`CommentSort`](CommentSort.md)
diff --git a/docs/api/public-api/type-aliases/GetConversationResponse.md b/docs/api/public-api/type-aliases/GetConversationResponse.md
new file mode 100644
index 00000000..829fcee3
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetConversationResponse.md
@@ -0,0 +1,19 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetConversationResponse
+
+> **GetConversationResponse** = `object` & [`WithUserData`](WithUserData.md)
+
+## Type declaration
+
+### conversation?
+
+> `optional` **conversation**: [`ConversationData`](ConversationData.md)
+
+### participantSubreddit?
+
+> `optional` **participantSubreddit**: `ParticipantSubreddit`
+
+If the conversation is with another subreddit, what subreddit we are communicating with.
diff --git a/docs/api/public-api/type-aliases/GetConversationsRequest.md b/docs/api/public-api/type-aliases/GetConversationsRequest.md
new file mode 100644
index 00000000..68989501
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetConversationsRequest.md
@@ -0,0 +1,64 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetConversationsRequest
+
+> **GetConversationsRequest** = `object`
+
+## Properties
+
+
+
+### after?
+
+> `optional` **after**: `string`
+
+modmail conversation id
+
+***
+
+
+
+### limit?
+
+> `optional` **limit**: `number`
+
+an integer between 1 and 100 (default: 25)
+
+***
+
+
+
+### sort?
+
+> `optional` **sort**: `"recent"` \| `"mod"` \| `"user"` \| `"unread"`
+
+Sort by:
+- `recent` - Order by whenever anyone last updated the conversation, mod or participant
+- `mod` - Order by the last time a mod updated the conversation
+- `user` - Order by the last time a participant user updated the conversation
+- `unread` - Order by the most recent unread message in the conversation for this mod
+
+***
+
+
+
+### state?
+
+> `optional` **state**: [`ConversationStateFilter`](ConversationStateFilter.md)
+
+Filter by conversation state
+
+A conversation can be in more than one state.
+For example, a conversation may be both 'highlighted' and 'inprogress'.
+
+***
+
+
+
+### subreddits?
+
+> `optional` **subreddits**: `string`[]
+
+array of subreddit names
diff --git a/docs/api/public-api/type-aliases/GetConversationsResponse.md b/docs/api/public-api/type-aliases/GetConversationsResponse.md
new file mode 100644
index 00000000..1031d9c3
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetConversationsResponse.md
@@ -0,0 +1,39 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetConversationsResponse
+
+> **GetConversationsResponse** = `object`
+
+## Properties
+
+
+
+### conversationIds
+
+> **conversationIds**: `string`[]
+
+Array of conversation ids, ordered by the sort parameter specified in [GetConversationsRequest](GetConversationsRequest.md).
+
+***
+
+
+
+### conversations
+
+> **conversations**: `object`
+
+Conversations key-value map
+
+#### Index Signature
+
+\[`id`: `string`\]: [`ConversationData`](ConversationData.md)
+
+***
+
+
+
+### viewerId?
+
+> `optional` **viewerId**: `T2`
diff --git a/docs/api/public-api/type-aliases/GetDuplicatesOptions.md b/docs/api/public-api/type-aliases/GetDuplicatesOptions.md
new file mode 100644
index 00000000..771b7a19
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetDuplicatesOptions.md
@@ -0,0 +1,39 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetDuplicatesOptions
+
+> **GetDuplicatesOptions** = [`ListingFetchOptions`](ListingFetchOptions.md) & `object`
+
+## Type declaration
+
+### crosspostsOnly?
+
+> `optional` **crosspostsOnly**: `boolean`
+
+Only return duplicates that are crossposting this post.
+
+### postId
+
+> **postId**: `T3`
+
+Post ID with t3_ prefix (e.g. `t3_abc123`). The prefix is stripped internally.
+
+### show?
+
+> `optional` **show**: `string`
+
+Adding the string "all" will show all results regardless of user preferences.
+
+### sort?
+
+> `optional` **sort**: `"num_comments"` \| `"new"`
+
+One of: "num_comments", "new"
+
+### subredditName?
+
+> `optional` **subredditName**: `string`
+
+Limit search to the given subreddit name. The r/ prefix is optional.
diff --git a/docs/api/public-api/type-aliases/GetHotPostsOptions.md b/docs/api/public-api/type-aliases/GetHotPostsOptions.md
new file mode 100644
index 00000000..60d4489b
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetHotPostsOptions.md
@@ -0,0 +1,13 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetHotPostsOptions
+
+> **GetHotPostsOptions** = [`GetPostsOptions`](GetPostsOptions.md) & `object`
+
+## Type declaration
+
+### location?
+
+> `optional` **location**: `"GLOBAL"` \| `"US"` \| `"AR"` \| `"AU"` \| `"BG"` \| `"CA"` \| `"CL"` \| `"CO"` \| `"HR"` \| `"CZ"` \| `"FI"` \| `"FR"` \| `"DE"` \| `"GR"` \| `"HU"` \| `"IS"` \| `"IN"` \| `"IE"` \| `"IT"` \| `"JP"` \| `"MY"` \| `"MX"` \| `"NZ"` \| `"PH"` \| `"PL"` \| `"PT"` \| `"PR"` \| `"RO"` \| `"RS"` \| `"SG"` \| `"ES"` \| `"SE"` \| `"TW"` \| `"TH"` \| `"TR"` \| `"GB"` \| `"US_WA"` \| `"US_DE"` \| `"US_DC"` \| `"US_WI"` \| `"US_WV"` \| `"US_HI"` \| `"US_FL"` \| `"US_WY"` \| `"US_NH"` \| `"US_NJ"` \| `"US_NM"` \| `"US_TX"` \| `"US_LA"` \| `"US_NC"` \| `"US_ND"` \| `"US_NE"` \| `"US_TN"` \| `"US_NY"` \| `"US_PA"` \| `"US_CA"` \| `"US_NV"` \| `"US_VA"` \| `"US_CO"` \| `"US_AK"` \| `"US_AL"` \| `"US_AR"` \| `"US_VT"` \| `"US_IL"` \| `"US_GA"` \| `"US_IN"` \| `"US_IA"` \| `"US_OK"` \| `"US_AZ"` \| `"US_ID"` \| `"US_CT"` \| `"US_ME"` \| `"US_MD"` \| `"US_MA"` \| `"US_OH"` \| `"US_UT"` \| `"US_MO"` \| `"US_MN"` \| `"US_MI"` \| `"US_RI"` \| `"US_KS"` \| `"US_MT"` \| `"US_MS"` \| `"US_SC"` \| `"US_KY"` \| `"US_OR"` \| `"US_SD"`
diff --git a/docs/api/public-api/type-aliases/GetModNotesOptions.md b/docs/api/public-api/type-aliases/GetModNotesOptions.md
new file mode 100644
index 00000000..d718f1b2
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetModNotesOptions.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetModNotesOptions
+
+> **GetModNotesOptions** = `Prettify`\<`Pick`\<`GetNotesRequest`, `"subreddit"` \| `"user"`\> & `object` & `Pick`\<[`ListingFetchOptions`](ListingFetchOptions.md), `"limit"` \| `"before"`\>\>
diff --git a/docs/api/public-api/type-aliases/GetModerationLogOptions.md b/docs/api/public-api/type-aliases/GetModerationLogOptions.md
new file mode 100644
index 00000000..01e418ee
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetModerationLogOptions.md
@@ -0,0 +1,27 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetModerationLogOptions
+
+> **GetModerationLogOptions** = [`ListingFetchOptions`](ListingFetchOptions.md) & `object`
+
+## Type declaration
+
+### moderatorUsernames?
+
+> `optional` **moderatorUsernames**: `string`[]
+
+(optional) A moderator filter. Accepts an array of usernames
+
+### subredditName
+
+> **subredditName**: `string`
+
+Subreddit name
+
+### type?
+
+> `optional` **type**: [`ModActionType`](ModActionType.md)
+
+Type of the Moderator action
diff --git a/docs/api/public-api/type-aliases/GetPageRevisionsOptions.md b/docs/api/public-api/type-aliases/GetPageRevisionsOptions.md
new file mode 100644
index 00000000..a7958752
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetPageRevisionsOptions.md
@@ -0,0 +1,21 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetPageRevisionsOptions
+
+> **GetPageRevisionsOptions** = `Omit`\<[`ListingFetchOptions`](ListingFetchOptions.md), `"more"`\> & `object`
+
+## Type declaration
+
+### page?
+
+> `optional` **page**: `string`
+
+The name of the page to get revisions for.
+
+### subredditName
+
+> **subredditName**: `string`
+
+The name of the subreddit the page is in.
diff --git a/docs/api/public-api/type-aliases/GetPostsByUserOptions.md b/docs/api/public-api/type-aliases/GetPostsByUserOptions.md
new file mode 100644
index 00000000..e80a2dd8
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetPostsByUserOptions.md
@@ -0,0 +1,63 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetPostsByUserOptions
+
+> **GetPostsByUserOptions** = `object`
+
+## Properties
+
+
+
+### after?
+
+> `optional` **after**: `string`
+
+***
+
+
+
+### before?
+
+> `optional` **before**: `string`
+
+***
+
+
+
+### limit?
+
+> `optional` **limit**: `number`
+
+***
+
+
+
+### pageSize?
+
+> `optional` **pageSize**: `number`
+
+***
+
+
+
+### sort?
+
+> `optional` **sort**: `"hot"` \| `"new"` \| `"top"` \| `"controversial"`
+
+***
+
+
+
+### timeframe?
+
+> `optional` **timeframe**: `"hour"` \| `"day"` \| `"week"` \| `"month"` \| `"year"` \| `"all"`
+
+***
+
+
+
+### username
+
+> **username**: `string`
diff --git a/docs/api/public-api/type-aliases/GetPostsOptions.md b/docs/api/public-api/type-aliases/GetPostsOptions.md
new file mode 100644
index 00000000..7da91589
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetPostsOptions.md
@@ -0,0 +1,13 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetPostsOptions
+
+> **GetPostsOptions** = [`ListingFetchOptions`](ListingFetchOptions.md) & `object`
+
+## Type declaration
+
+### subredditName?
+
+> `optional` **subredditName**: `string`
diff --git a/docs/api/public-api/type-aliases/GetPostsOptionsWithTimeframe.md b/docs/api/public-api/type-aliases/GetPostsOptionsWithTimeframe.md
new file mode 100644
index 00000000..ca846437
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetPostsOptionsWithTimeframe.md
@@ -0,0 +1,13 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetPostsOptionsWithTimeframe
+
+> **GetPostsOptionsWithTimeframe** = [`GetPostsOptions`](GetPostsOptions.md) & `object`
+
+## Type declaration
+
+### timeframe?
+
+> `optional` **timeframe**: `"hour"` \| `"day"` \| `"week"` \| `"month"` \| `"year"` \| `"all"`
diff --git a/docs/api/public-api/type-aliases/GetPrivateMessagesOptions.md b/docs/api/public-api/type-aliases/GetPrivateMessagesOptions.md
new file mode 100644
index 00000000..fccdecc2
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetPrivateMessagesOptions.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetPrivateMessagesOptions
+
+> **GetPrivateMessagesOptions** = `Prettify`\<`object` & [`ListingFetchOptions`](ListingFetchOptions.md)\>
diff --git a/docs/api/public-api/type-aliases/GetSortedPostsOptions.md b/docs/api/public-api/type-aliases/GetSortedPostsOptions.md
new file mode 100644
index 00000000..eefe2387
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetSortedPostsOptions.md
@@ -0,0 +1,13 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetSortedPostsOptions
+
+> **GetSortedPostsOptions** = [`GetPostsOptionsWithTimeframe`](GetPostsOptionsWithTimeframe.md) & `object`
+
+## Type declaration
+
+### sort
+
+> **sort**: `"top"` \| `"controversial"`
diff --git a/docs/api/public-api/type-aliases/GetSubredditUsersByTypeOptions.md b/docs/api/public-api/type-aliases/GetSubredditUsersByTypeOptions.md
new file mode 100644
index 00000000..fe120ed6
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetSubredditUsersByTypeOptions.md
@@ -0,0 +1,21 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetSubredditUsersByTypeOptions
+
+> **GetSubredditUsersByTypeOptions** = [`ListingFetchOptions`](ListingFetchOptions.md) & `object`
+
+## Type declaration
+
+### subredditName
+
+> **subredditName**: `string`
+
+### type
+
+> **type**: `"banned"` \| `"muted"` \| `"wikibanned"` \| `"contributors"` \| `"wikicontributors"` \| `"moderators"`
+
+### username?
+
+> `optional` **username**: `string`
diff --git a/docs/api/public-api/type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md b/docs/api/public-api/type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md
new file mode 100644
index 00000000..77b04192
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md
@@ -0,0 +1,39 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetSubscribedSubredditsForCurrentUserOptions
+
+> **GetSubscribedSubredditsForCurrentUserOptions** = `object`
+
+## Properties
+
+
+
+### after?
+
+> `optional` **after**: `string`
+
+***
+
+
+
+### before?
+
+> `optional` **before**: `string`
+
+***
+
+
+
+### limit?
+
+> `optional` **limit**: `number`
+
+***
+
+
+
+### pageSize?
+
+> `optional` **pageSize**: `number`
diff --git a/docs/api/public-api/type-aliases/GetUserFlairBySubredditOptions.md b/docs/api/public-api/type-aliases/GetUserFlairBySubredditOptions.md
new file mode 100644
index 00000000..33e40289
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetUserFlairBySubredditOptions.md
@@ -0,0 +1,21 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetUserFlairBySubredditOptions
+
+> **GetUserFlairBySubredditOptions** = [`UserFlairPageOptions`](UserFlairPageOptions.md) & `object`
+
+## Type declaration
+
+### name?
+
+> `optional` **name**: `string`
+
+The username associated with the flair being retrieved.
+
+### subreddit
+
+> **subreddit**: `string`
+
+The subreddit associated with the flair being retrieved.
diff --git a/docs/api/public-api/type-aliases/GetUserFlairBySubredditResponse.md b/docs/api/public-api/type-aliases/GetUserFlairBySubredditResponse.md
new file mode 100644
index 00000000..8c09339f
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetUserFlairBySubredditResponse.md
@@ -0,0 +1,41 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetUserFlairBySubredditResponse
+
+> **GetUserFlairBySubredditResponse** = `object`
+
+## Properties
+
+
+
+### next?
+
+> `optional` **next**: `string`
+
+The user id of the last user flair in this slice. Its presence indicates
+that there are more items that can be fetched. Pass this into the "after" parameter
+in the next call to get the next slice of data
+
+***
+
+
+
+### prev?
+
+> `optional` **prev**: `string`
+
+The user id of the first user flair in this slice. Its presence indicates
+that there are items before this item that can be fetched. Pass this into the "before" parameter
+in the next call to get the previous slice of data
+
+***
+
+
+
+### users
+
+> **users**: [`UserFlair`](UserFlair.md)[]
+
+The list of user flair
diff --git a/docs/api/public-api/type-aliases/GetUserFlairOptions.md b/docs/api/public-api/type-aliases/GetUserFlairOptions.md
new file mode 100644
index 00000000..d890e712
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetUserFlairOptions.md
@@ -0,0 +1,16 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetUserFlairOptions
+
+> **GetUserFlairOptions** = [`UserFlairPageOptions`](UserFlairPageOptions.md) & `object`
+
+## Type declaration
+
+### usernames?
+
+> `optional` **usernames**: `string`[]
+
+If provide the method will return the flairs for the provided users, if not provided
+it will return a list of all users assigned flairs in the subreddit
diff --git a/docs/api/public-api/type-aliases/GetUserOverviewOptions.md b/docs/api/public-api/type-aliases/GetUserOverviewOptions.md
new file mode 100644
index 00000000..145c0352
--- /dev/null
+++ b/docs/api/public-api/type-aliases/GetUserOverviewOptions.md
@@ -0,0 +1,63 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: GetUserOverviewOptions
+
+> **GetUserOverviewOptions** = `object`
+
+## Properties
+
+
+
+### after?
+
+> `optional` **after**: `string`
+
+***
+
+
+
+### before?
+
+> `optional` **before**: `string`
+
+***
+
+
+
+### limit?
+
+> `optional` **limit**: `number`
+
+***
+
+
+
+### pageSize?
+
+> `optional` **pageSize**: `number`
+
+***
+
+
+
+### sort?
+
+> `optional` **sort**: `"hot"` \| `"new"` \| `"top"` \| `"controversial"`
+
+***
+
+
+
+### timeframe?
+
+> `optional` **timeframe**: `"hour"` \| `"day"` \| `"week"` \| `"month"` \| `"year"` \| `"all"`
+
+***
+
+
+
+### username
+
+> **username**: `string`
diff --git a/docs/api/public-api/type-aliases/Heading.md b/docs/api/public-api/type-aliases/Heading.md
new file mode 100644
index 00000000..715126d2
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Heading.md
@@ -0,0 +1,31 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Heading
+
+> **Heading** = `object`
+
+## Properties
+
+
+
+### c?
+
+> `optional` **c**: [`HeadingText`](HeadingText.md)[]
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`HEADING_ELEMENT`](../variables/HEADING_ELEMENT.md)
+
+***
+
+
+
+### l
+
+> **l**: [`HeadingLevel`](HeadingLevel.md)
diff --git a/docs/api/public-api/type-aliases/HeadingContainer.md b/docs/api/public-api/type-aliases/HeadingContainer.md
new file mode 100644
index 00000000..24a055d4
--- /dev/null
+++ b/docs/api/public-api/type-aliases/HeadingContainer.md
@@ -0,0 +1,47 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: HeadingContainer\
+
+> **HeadingContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`ListItemContext`](../interfaces/ListItemContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### heading()
+
+> **heading**(`opts`, `cb`): `Context`
+
+Append a Heading
+
+#### Parameters
+
+##### opts
+
+[`HeadingOptions`](HeadingOptions.md)
+
+[HeadingOptions](HeadingOptions.md)
+
+##### cb
+
+(`heading`) => `void`
+
+scoped callback to add child elements to this Heading
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/HeadingLevel.md b/docs/api/public-api/type-aliases/HeadingLevel.md
new file mode 100644
index 00000000..4ca4c7ad
--- /dev/null
+++ b/docs/api/public-api/type-aliases/HeadingLevel.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: HeadingLevel
+
+> **HeadingLevel** = `1` \| `2` \| `3` \| `4` \| `5` \| `6`
diff --git a/docs/api/public-api/type-aliases/HeadingOptions.md b/docs/api/public-api/type-aliases/HeadingOptions.md
new file mode 100644
index 00000000..69021021
--- /dev/null
+++ b/docs/api/public-api/type-aliases/HeadingOptions.md
@@ -0,0 +1,21 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: HeadingOptions
+
+> **HeadingOptions** = `object`
+
+## Properties
+
+
+
+### level
+
+> **level**: [`HeadingLevel`](HeadingLevel.md)
+
+The depth for this heading (such as , , )
+
+#### See
+
+[HeadingLevel](HeadingLevel.md)
diff --git a/docs/api/public-api/type-aliases/HeadingText.md b/docs/api/public-api/type-aliases/HeadingText.md
new file mode 100644
index 00000000..7237a38e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/HeadingText.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: HeadingText
+
+> **HeadingText** = [`RawText`](RawText.md) \| [`Link`](Link.md) \| [`RedditLink`](RedditLink.md)
diff --git a/docs/api/public-api/type-aliases/HorizontalRule.md b/docs/api/public-api/type-aliases/HorizontalRule.md
new file mode 100644
index 00000000..f4b760f5
--- /dev/null
+++ b/docs/api/public-api/type-aliases/HorizontalRule.md
@@ -0,0 +1,15 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: HorizontalRule
+
+> **HorizontalRule** = `object`
+
+## Properties
+
+
+
+### e
+
+> **e**: *typeof* [`HORIZONTAL_RULE_ELEMENT`](../variables/HORIZONTAL_RULE_ELEMENT.md)
diff --git a/docs/api/public-api/type-aliases/HorizontalRuleContainer.md b/docs/api/public-api/type-aliases/HorizontalRuleContainer.md
new file mode 100644
index 00000000..f855ae0e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/HorizontalRuleContainer.md
@@ -0,0 +1,33 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: HorizontalRuleContainer\
+
+> **HorizontalRuleContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`ListItemContext`](../interfaces/ListItemContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### horizontalRule()
+
+> **horizontalRule**(): `Context`
+
+Append a Horizontal Rule
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/Image.md b/docs/api/public-api/type-aliases/Image.md
new file mode 100644
index 00000000..295b1468
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Image.md
@@ -0,0 +1,49 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Image
+
+> **Image** = `object`
+
+## Properties
+
+
+
+### c?
+
+> `optional` **c**: `string`
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`IMAGE_ELEMENT`](../variables/IMAGE_ELEMENT.md)
+
+***
+
+
+
+### id?
+
+> `optional` **id**: [`MediaAssetId`](MediaAssetId.md)
+
+***
+
+
+
+### mediaUrl?
+
+> `optional` **mediaUrl**: `string`
+
+URL of the media when building; backend may replace with id in processed JSON
+
+***
+
+
+
+### o?
+
+> `optional` **o**: [`ObfuscationReason`](ObfuscationReason.md)
diff --git a/docs/api/public-api/type-aliases/ImageContainer.md b/docs/api/public-api/type-aliases/ImageContainer.md
new file mode 100644
index 00000000..beff87c5
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ImageContainer.md
@@ -0,0 +1,64 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ImageContainer\
+
+> **ImageContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`ParagraphContext`](../interfaces/ParagraphContext.md)
+- [`TableCellContext`](../interfaces/TableCellContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### animatedImage()
+
+> **animatedImage**(`opts`): `Context`
+
+Append an Animated Image
+
+#### Parameters
+
+##### opts
+
+[`MediaOptions`](MediaOptions.md)
+
+[ImageOptions](ImageOptions.md)
+
+#### Returns
+
+`Context`
+
+***
+
+
+
+### image()
+
+> **image**(`opts`): `Context`
+
+Append an Image
+
+#### Parameters
+
+##### opts
+
+[`MediaOptions`](MediaOptions.md)
+
+[ImageOptions](ImageOptions.md)
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/ImageField.md b/docs/api/public-api/type-aliases/ImageField.md
index 3682866c..97270bdc 100644
--- a/docs/api/public-api/type-aliases/ImageField.md
+++ b/docs/api/public-api/type-aliases/ImageField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ImageOptions.md b/docs/api/public-api/type-aliases/ImageOptions.md
new file mode 100644
index 00000000..d2ce0e60
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ImageOptions.md
@@ -0,0 +1,11 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ImageOptions
+
+> **ImageOptions** = [`MediaOptions`](MediaOptions.md)
+
+## Borrows
+
+MediaOptions
diff --git a/docs/api/public-api/type-aliases/ImagePosition.md b/docs/api/public-api/type-aliases/ImagePosition.md
new file mode 100644
index 00000000..63f5f57f
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ImagePosition.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ImagePosition
+
+> **ImagePosition** = `"cover"` \| `"tiled"`
diff --git a/docs/api/public-api/type-aliases/InternalSetPostFlairOptions.md b/docs/api/public-api/type-aliases/InternalSetPostFlairOptions.md
new file mode 100644
index 00000000..ea7022b5
--- /dev/null
+++ b/docs/api/public-api/type-aliases/InternalSetPostFlairOptions.md
@@ -0,0 +1,13 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: InternalSetPostFlairOptions
+
+> **InternalSetPostFlairOptions** = [`SetFlairOptions`](SetFlairOptions.md) & `object`
+
+## Type declaration
+
+### postId
+
+> **postId**: `T3`
diff --git a/docs/api/public-api/type-aliases/JSONArray.md b/docs/api/public-api/type-aliases/JSONArray.md
index 8ccd2c6c..c71fe205 100644
--- a/docs/api/public-api/type-aliases/JSONArray.md
+++ b/docs/api/public-api/type-aliases/JSONArray.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/JSONObject.md b/docs/api/public-api/type-aliases/JSONObject.md
index d6dda641..8eee58a2 100644
--- a/docs/api/public-api/type-aliases/JSONObject.md
+++ b/docs/api/public-api/type-aliases/JSONObject.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/JSONPrimitive.md b/docs/api/public-api/type-aliases/JSONPrimitive.md
index 19226e05..20eb3027 100644
--- a/docs/api/public-api/type-aliases/JSONPrimitive.md
+++ b/docs/api/public-api/type-aliases/JSONPrimitive.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/JSONValue.md b/docs/api/public-api/type-aliases/JSONValue.md
index dd2c2a1e..a57dd765 100644
--- a/docs/api/public-api/type-aliases/JSONValue.md
+++ b/docs/api/public-api/type-aliases/JSONValue.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/JobContext.md b/docs/api/public-api/type-aliases/JobContext.md
index cb5bfe0d..e31e493e 100644
--- a/docs/api/public-api/type-aliases/JobContext.md
+++ b/docs/api/public-api/type-aliases/JobContext.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/LineBreak.md b/docs/api/public-api/type-aliases/LineBreak.md
new file mode 100644
index 00000000..9be80e7a
--- /dev/null
+++ b/docs/api/public-api/type-aliases/LineBreak.md
@@ -0,0 +1,15 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: LineBreak
+
+> **LineBreak** = `object`
+
+## Properties
+
+
+
+### e
+
+> **e**: *typeof* [`LINEBREAK_ELEMENT`](../variables/LINEBREAK_ELEMENT.md)
diff --git a/docs/api/public-api/type-aliases/LineBreakContainer.md b/docs/api/public-api/type-aliases/LineBreakContainer.md
new file mode 100644
index 00000000..59f388e7
--- /dev/null
+++ b/docs/api/public-api/type-aliases/LineBreakContainer.md
@@ -0,0 +1,34 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: LineBreakContainer\
+
+> **LineBreakContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`ParagraphContext`](../interfaces/ParagraphContext.md)
+- [`SpoilerContext`](../interfaces/SpoilerContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### linebreak()
+
+> **linebreak**(): `Context`
+
+Append a Line Break
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/Link.md b/docs/api/public-api/type-aliases/Link.md
new file mode 100644
index 00000000..c3727715
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Link.md
@@ -0,0 +1,47 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Link
+
+> **Link** = `object`
+
+## Properties
+
+
+
+### a?
+
+> `optional` **a**: `string`
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`LINK_ELEMENT`](../variables/LINK_ELEMENT.md)
+
+***
+
+
+
+### f?
+
+> `optional` **f**: [`FormatRange`](FormatRange.md)[]
+
+***
+
+
+
+### t
+
+> **t**: `string`
+
+***
+
+
+
+### u
+
+> **u**: [`UrlString`](UrlString.md)
diff --git a/docs/api/public-api/type-aliases/LinkContainer.md b/docs/api/public-api/type-aliases/LinkContainer.md
new file mode 100644
index 00000000..eb628f91
--- /dev/null
+++ b/docs/api/public-api/type-aliases/LinkContainer.md
@@ -0,0 +1,33 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: LinkContainer\
+
+> **LinkContainer**\<`Context`\> = [`RedditLinkContainer`](RedditLinkContainer.md)\<`Context`\> & `object`
+
+## Type declaration
+
+### link()
+
+Append a Link
+
+#### Parameters
+
+##### opts
+
+[`LinkOptions`](LinkOptions.md)
+
+[LinkOptions](LinkOptions.md)
+
+#### Returns
+
+`Context`
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Mixin
diff --git a/docs/api/public-api/type-aliases/LinkFlair.md b/docs/api/public-api/type-aliases/LinkFlair.md
new file mode 100644
index 00000000..23642549
--- /dev/null
+++ b/docs/api/public-api/type-aliases/LinkFlair.md
@@ -0,0 +1,11 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ~~LinkFlair~~
+
+> **LinkFlair** = [`CommonFlair`](CommonFlair.md)
+
+## Deprecated
+
+Use [CommonFlair](CommonFlair.md).
diff --git a/docs/api/public-api/type-aliases/LinkOptions.md b/docs/api/public-api/type-aliases/LinkOptions.md
new file mode 100644
index 00000000..7caa029d
--- /dev/null
+++ b/docs/api/public-api/type-aliases/LinkOptions.md
@@ -0,0 +1,25 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: LinkOptions
+
+> **LinkOptions** = [`TextOptions`](TextOptions.md) & `object`
+
+## Type declaration
+
+### tooltip?
+
+> `optional` **tooltip**: `string`
+
+Tooltip text shown when the link is focused
+
+### url
+
+> **url**: `string`
+
+Destination URL
+
+## Borrows
+
+TextOptions
diff --git a/docs/api/public-api/type-aliases/List.md b/docs/api/public-api/type-aliases/List.md
new file mode 100644
index 00000000..43044707
--- /dev/null
+++ b/docs/api/public-api/type-aliases/List.md
@@ -0,0 +1,62 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: List
+
+> **List** = `object`
+
+Note: the spec is somewhat ambiguous here, consider that
+as typed, there are multiple possible representations of
+a list of two, top-level, paragraphs.
+
+e.g.
+The CommonMark list of:
+```
+ * foo
+ * bar
+```
+
+could either be represented as
+(List
+ (ListChild
+ (Paragraph 'foo')
+ (Paragraph 'bar' )))
+
+OR
+
+(List
+ (ListChild
+ (Paragraph 'foo' ))
+ (ListChild
+ (Paragraph 'bar)))
+
+The spec is designed to be interoperable with our CommonMark parser, and as so,
+the preferred encoding is the latter.
+
+If you would like to demo CommonMark Markdown -> AST conversions,
+you can try out http://spec.commonmark.org/dingus/
+
+## Properties
+
+
+
+### c
+
+> **c**: [`ListItem`](ListItem.md)[]
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`LIST_ELEMENT`](../variables/LIST_ELEMENT.md)
+
+***
+
+
+
+### o
+
+> **o**: `boolean`
diff --git a/docs/api/public-api/type-aliases/ListChild.md b/docs/api/public-api/type-aliases/ListChild.md
new file mode 100644
index 00000000..d80927a2
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ListChild.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ListChild
+
+> **ListChild** = [`BlockQuote`](BlockQuote.md) \| [`CodeBlock`](CodeBlock.md) \| [`Heading`](Heading.md) \| [`HorizontalRule`](HorizontalRule.md) \| [`List`](List.md) \| [`Paragraph`](Paragraph.md) \| [`Table`](Table.md)
diff --git a/docs/api/public-api/type-aliases/ListContainer.md b/docs/api/public-api/type-aliases/ListContainer.md
new file mode 100644
index 00000000..0bf3dd94
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ListContainer.md
@@ -0,0 +1,47 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ListContainer\
+
+> **ListContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`ListItemContext`](../interfaces/ListItemContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### list()
+
+> **list**(`opts`, `cb`): `Context`
+
+Append a List
+
+#### Parameters
+
+##### opts
+
+[`ListOptions`](ListOptions.md)
+
+[ListOptions](ListOptions.md)
+
+##### cb
+
+(`list`) => `void`
+
+scoped callback to add child elements to this List
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/ListItem.md b/docs/api/public-api/type-aliases/ListItem.md
new file mode 100644
index 00000000..83883733
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ListItem.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ListItem
+
+> **ListItem** = `object`
+
+## Properties
+
+
+
+### c?
+
+> `optional` **c**: [`ListChild`](ListChild.md)[]
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`LIST_ITEM_ELEMENT`](../variables/LIST_ITEM_ELEMENT.md)
diff --git a/docs/api/public-api/type-aliases/ListItemContainer.md b/docs/api/public-api/type-aliases/ListItemContainer.md
new file mode 100644
index 00000000..e0d3e920
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ListItemContainer.md
@@ -0,0 +1,41 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ListItemContainer\
+
+> **ListItemContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`ListContext`](../interfaces/ListContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### item()
+
+> **item**(`cb`): `Context`
+
+Append a List Item to a List
+
+#### Parameters
+
+##### cb
+
+(`item`) => `void`
+
+scoped callback to add child elements to this List Item
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/ListOptions.md b/docs/api/public-api/type-aliases/ListOptions.md
new file mode 100644
index 00000000..ae418134
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ListOptions.md
@@ -0,0 +1,17 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ListOptions
+
+> **ListOptions** = `object`
+
+## Properties
+
+
+
+### ordered
+
+> **ordered**: `boolean`
+
+Whether to use numbers or dots as list item markers
diff --git a/docs/api/public-api/type-aliases/ListingFetchOptions.md b/docs/api/public-api/type-aliases/ListingFetchOptions.md
new file mode 100644
index 00000000..02add6c6
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ListingFetchOptions.md
@@ -0,0 +1,55 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ListingFetchOptions
+
+> **ListingFetchOptions** = `object`
+
+## Properties
+
+
+
+### after?
+
+> `optional` **after**: `string`
+
+The ID of the object to start at.
+
+***
+
+
+
+### before?
+
+> `optional` **before**: `string`
+
+The ID of the object to end at.
+
+***
+
+
+
+### limit?
+
+> `optional` **limit**: `number`
+
+The maximum number of objects to get.
+
+***
+
+
+
+### more?
+
+> `optional` **more**: [`MoreObject`](MoreObject.md)
+
+***
+
+
+
+### pageSize?
+
+> `optional` **pageSize**: `number`
+
+The number of objects to get per request.
diff --git a/docs/api/public-api/type-aliases/ListingFetchResponse.md b/docs/api/public-api/type-aliases/ListingFetchResponse.md
new file mode 100644
index 00000000..76643ac9
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ListingFetchResponse.md
@@ -0,0 +1,45 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ListingFetchResponse\
+
+> **ListingFetchResponse**\<`T`\> = `object`
+
+## Type Parameters
+
+### T
+
+`T`
+
+## Properties
+
+
+
+### after?
+
+> `optional` **after**: `string`
+
+***
+
+
+
+### before?
+
+> `optional` **before**: `string`
+
+***
+
+
+
+### children
+
+> **children**: `T`[]
+
+***
+
+
+
+### more?
+
+> `optional` **more**: [`MoreObject`](MoreObject.md)
diff --git a/docs/api/public-api/type-aliases/Media.md b/docs/api/public-api/type-aliases/Media.md
new file mode 100644
index 00000000..43ae5c18
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Media.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Media
+
+> **Media** = [`Image`](Image.md) \| [`AnimatedImage`](AnimatedImage.md) \| [`Video`](Video.md)
diff --git a/docs/api/public-api/type-aliases/MediaAsset.md b/docs/api/public-api/type-aliases/MediaAsset.md
index a253dab4..d5e84190 100644
--- a/docs/api/public-api/type-aliases/MediaAsset.md
+++ b/docs/api/public-api/type-aliases/MediaAsset.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/MediaAssetId.md b/docs/api/public-api/type-aliases/MediaAssetId.md
new file mode 100644
index 00000000..fa95aa01
--- /dev/null
+++ b/docs/api/public-api/type-aliases/MediaAssetId.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: MediaAssetId
+
+> **MediaAssetId** = `string`
diff --git a/docs/api/public-api/type-aliases/MediaOptions.md b/docs/api/public-api/type-aliases/MediaOptions.md
new file mode 100644
index 00000000..3616d262
--- /dev/null
+++ b/docs/api/public-api/type-aliases/MediaOptions.md
@@ -0,0 +1,41 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: MediaOptions
+
+> **MediaOptions** = `object`
+
+## Properties
+
+
+
+### blur?
+
+> `optional` **blur**: [`ObfuscationReason`](ObfuscationReason.md)
+
+If provided, the content should be blurred by default for the provided reason
+
+#### See
+
+[ObfuscationReason](ObfuscationReason.md)
+
+***
+
+
+
+### caption?
+
+> `optional` **caption**: `string`
+
+Media description
+
+***
+
+
+
+### mediaUrl
+
+> **mediaUrl**: `string`
+
+URL of the media
diff --git a/docs/api/public-api/type-aliases/MediaPlugin.md b/docs/api/public-api/type-aliases/MediaPlugin.md
index 2e228ffb..8081f274 100644
--- a/docs/api/public-api/type-aliases/MediaPlugin.md
+++ b/docs/api/public-api/type-aliases/MediaPlugin.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/MentionInCommentCreate.md b/docs/api/public-api/type-aliases/MentionInCommentCreate.md
index c64aa88c..645840a2 100644
--- a/docs/api/public-api/type-aliases/MentionInCommentCreate.md
+++ b/docs/api/public-api/type-aliases/MentionInCommentCreate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/MentionInCommentCreateDefinition.md b/docs/api/public-api/type-aliases/MentionInCommentCreateDefinition.md
index b4855d28..69dc8a11 100644
--- a/docs/api/public-api/type-aliases/MentionInCommentCreateDefinition.md
+++ b/docs/api/public-api/type-aliases/MentionInCommentCreateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/MenuItem.md b/docs/api/public-api/type-aliases/MenuItem.md
index 50b48bd6..f52668d4 100644
--- a/docs/api/public-api/type-aliases/MenuItem.md
+++ b/docs/api/public-api/type-aliases/MenuItem.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/MenuItemLocation.md b/docs/api/public-api/type-aliases/MenuItemLocation.md
index 8637ea73..e01a1564 100644
--- a/docs/api/public-api/type-aliases/MenuItemLocation.md
+++ b/docs/api/public-api/type-aliases/MenuItemLocation.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/MenuItemOnPressEvent.md b/docs/api/public-api/type-aliases/MenuItemOnPressEvent.md
index 9cdd1a31..48723e44 100644
--- a/docs/api/public-api/type-aliases/MenuItemOnPressEvent.md
+++ b/docs/api/public-api/type-aliases/MenuItemOnPressEvent.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/MenuItemPostFilter.md b/docs/api/public-api/type-aliases/MenuItemPostFilter.md
index 2fe3393d..071fe1f4 100644
--- a/docs/api/public-api/type-aliases/MenuItemPostFilter.md
+++ b/docs/api/public-api/type-aliases/MenuItemPostFilter.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/MenuItemUserType.md b/docs/api/public-api/type-aliases/MenuItemUserType.md
index a6da92e1..e7b8cc4d 100644
--- a/docs/api/public-api/type-aliases/MenuItemUserType.md
+++ b/docs/api/public-api/type-aliases/MenuItemUserType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/MenuPosition.md b/docs/api/public-api/type-aliases/MenuPosition.md
new file mode 100644
index 00000000..c466f5f9
--- /dev/null
+++ b/docs/api/public-api/type-aliases/MenuPosition.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: MenuPosition
+
+> **MenuPosition** = `"default"` \| `"overlay"`
diff --git a/docs/api/public-api/type-aliases/MessageData.md b/docs/api/public-api/type-aliases/MessageData.md
new file mode 100644
index 00000000..60d0d9e1
--- /dev/null
+++ b/docs/api/public-api/type-aliases/MessageData.md
@@ -0,0 +1,69 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: MessageData
+
+> **MessageData** = `object`
+
+## Properties
+
+
+
+### author?
+
+> `optional` **author**: [`Participant`](Participant.md)
+
+***
+
+
+
+### body?
+
+> `optional` **body**: `string`
+
+Message body
+
+***
+
+
+
+### bodyMarkdown?
+
+> `optional` **bodyMarkdown**: `string`
+
+***
+
+
+
+### date?
+
+> `optional` **date**: `string`
+
+When was created
+
+***
+
+
+
+### id?
+
+> `optional` **id**: `string`
+
+Message ID
+
+***
+
+
+
+### isInternal?
+
+> `optional` **isInternal**: `boolean`
+
+***
+
+
+
+### participatingAs?
+
+> `optional` **participatingAs**: `string`
diff --git a/docs/api/public-api/type-aliases/Metadata.md b/docs/api/public-api/type-aliases/Metadata.md
index 8bcb3763..9c9bc01c 100644
--- a/docs/api/public-api/type-aliases/Metadata.md
+++ b/docs/api/public-api/type-aliases/Metadata.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ModActionData.md b/docs/api/public-api/type-aliases/ModActionData.md
new file mode 100644
index 00000000..0a2fd5c7
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ModActionData.md
@@ -0,0 +1,75 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ModActionData
+
+> **ModActionData** = `object`
+
+## Properties
+
+
+
+### actionType
+
+> **actionType**: [`ModMailActionType`](../enumerations/ModMailActionType.md)
+
+Type of the action
+
+***
+
+
+
+### author?
+
+> `optional` **author**: `object`
+
+Action author
+
+#### id?
+
+> `optional` **id**: `number`
+
+User id
+
+#### isAdmin?
+
+> `optional` **isAdmin**: `boolean`
+
+#### isDeleted?
+
+> `optional` **isDeleted**: `boolean`
+
+#### isHidden?
+
+> `optional` **isHidden**: `boolean`
+
+#### isMod?
+
+> `optional` **isMod**: `boolean`
+
+#### name?
+
+> `optional` **name**: `string`
+
+User name
+
+***
+
+
+
+### date?
+
+> `optional` **date**: `string`
+
+When the action happened
+
+***
+
+
+
+### id?
+
+> `optional` **id**: `string`
+
+Action id
diff --git a/docs/api/public-api/type-aliases/ModActionDefinition.md b/docs/api/public-api/type-aliases/ModActionDefinition.md
index d1f2dbb3..f83a13d0 100644
--- a/docs/api/public-api/type-aliases/ModActionDefinition.md
+++ b/docs/api/public-api/type-aliases/ModActionDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ModActionTarget.md b/docs/api/public-api/type-aliases/ModActionTarget.md
new file mode 100644
index 00000000..7159c6a1
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ModActionTarget.md
@@ -0,0 +1,47 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ModActionTarget
+
+> **ModActionTarget** = `object`
+
+## Properties
+
+
+
+### author?
+
+> `optional` **author**: `string`
+
+***
+
+
+
+### body?
+
+> `optional` **body**: `string`
+
+***
+
+
+
+### id
+
+> **id**: `string`
+
+***
+
+
+
+### permalink?
+
+> `optional` **permalink**: `string`
+
+***
+
+
+
+### title?
+
+> `optional` **title**: `string`
diff --git a/docs/api/public-api/type-aliases/ModActionTrigger.md b/docs/api/public-api/type-aliases/ModActionTrigger.md
index 380ab636..cb3a8daf 100644
--- a/docs/api/public-api/type-aliases/ModActionTrigger.md
+++ b/docs/api/public-api/type-aliases/ModActionTrigger.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ModActionType.md b/docs/api/public-api/type-aliases/ModActionType.md
new file mode 100644
index 00000000..89ae8f9f
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ModActionType.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ModActionType
+
+> **ModActionType** = `"banuser"` \| `"unbanuser"` \| `"spamlink"` \| `"removelink"` \| `"approvelink"` \| `"spamcomment"` \| `"removecomment"` \| `"approvecomment"` \| `"addmoderator"` \| `"showcomment"` \| `"invitemoderator"` \| `"uninvitemoderator"` \| `"acceptmoderatorinvite"` \| `"removemoderator"` \| `"addcontributor"` \| `"removecontributor"` \| `"editsettings"` \| `"editflair"` \| `"distinguish"` \| `"marknsfw"` \| `"wikibanned"` \| `"wikicontributor"` \| `"wikiunbanned"` \| `"wikipagelisted"` \| `"removewikicontributor"` \| `"wikirevise"` \| `"wikipermlevel"` \| `"ignorereports"` \| `"unignorereports"` \| `"setpermissions"` \| `"setsuggestedsort"` \| `"sticky"` \| `"unsticky"` \| `"setcontestmode"` \| `"unsetcontestmode"` \| `"lock"` \| `"unlock"` \| `"muteuser"` \| `"unmuteuser"` \| `"createrule"` \| `"editrule"` \| `"reorderrules"` \| `"deleterule"` \| `"spoiler"` \| `"unspoiler"` \| `"modmail_enrollment"` \| `"community_styling"` \| `"community_widgets"` \| `"markoriginalcontent"` \| `"collections"` \| `"events"` \| `"create_award"` \| `"disable_award"` \| `"delete_award"` \| `"enable_award"` \| `"mod_award_given"` \| `"hidden_award"` \| `"add_community_topics"` \| `"remove_community_topics"` \| `"create_scheduled_post"` \| `"edit_scheduled_post"` \| `"delete_scheduled_post"` \| `"submit_scheduled_post"` \| `"edit_post_requirements"` \| `"invitesubscriber"` \| `"submit_content_rating_survey"` \| `"adjust_post_crowd_control_level"` \| `"enable_post_crowd_control_filter"` \| `"disable_post_crowd_control_filter"` \| `"deleteoverriddenclassification"` \| `"overrideclassification"` \| `"reordermoderators"` \| `"snoozereports"` \| `"unsnoozereports"` \| `"addnote"` \| `"deletenote"` \| `"addremovalreason"` \| `"createremovalreason"` \| `"updateremovalreason"` \| `"deleteremovalreason"` \| `"reorderremovalreason"` \| `"dev_platform_app_changed"` \| `"dev_platform_app_disabled"` \| `"dev_platform_app_enabled"` \| `"dev_platform_app_installed"` \| `"dev_platform_app_uninstalled"`
diff --git a/docs/api/public-api/type-aliases/ModLogOptions.md b/docs/api/public-api/type-aliases/ModLogOptions.md
new file mode 100644
index 00000000..ba8b9e5d
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ModLogOptions.md
@@ -0,0 +1,13 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ModLogOptions\
+
+> **ModLogOptions**\<`T`\> = `Omit`\<`AboutSubredditHelperOptions`\<`T`\>, `"location"`\>
+
+## Type Parameters
+
+### T
+
+`T` *extends* [`AboutSubredditTypes`](AboutSubredditTypes.md)
diff --git a/docs/api/public-api/type-aliases/ModMailDefinition.md b/docs/api/public-api/type-aliases/ModMailDefinition.md
index 849d2d65..35895fb7 100644
--- a/docs/api/public-api/type-aliases/ModMailDefinition.md
+++ b/docs/api/public-api/type-aliases/ModMailDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ModMailTrigger.md b/docs/api/public-api/type-aliases/ModMailTrigger.md
index ec606bb7..e8fff07d 100644
--- a/docs/api/public-api/type-aliases/ModMailTrigger.md
+++ b/docs/api/public-api/type-aliases/ModMailTrigger.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ModNoteType.md b/docs/api/public-api/type-aliases/ModNoteType.md
new file mode 100644
index 00000000..50595f00
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ModNoteType.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ModNoteType
+
+> **ModNoteType** = `"NOTE"` \| `"APPROVAL"` \| `"REMOVAL"` \| `"BAN"` \| `"MUTE"` \| `"INVITE"` \| `"SPAM"` \| `"CONTENT_CHANGE"` \| `"MOD_ACTION"` \| `"ALL"`
diff --git a/docs/api/public-api/type-aliases/ModeratorPermission.md b/docs/api/public-api/type-aliases/ModeratorPermission.md
new file mode 100644
index 00000000..4b3061eb
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ModeratorPermission.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ModeratorPermission
+
+> **ModeratorPermission** = `"all"` \| `"wiki"` \| `"posts"` \| `"access"` \| `"mail"` \| `"config"` \| `"flair"` \| `"chat_operator"` \| `"chat_config"` \| `"channels"` \| `"community_chat"`
diff --git a/docs/api/public-api/type-aliases/ModeratorReport.md b/docs/api/public-api/type-aliases/ModeratorReport.md
new file mode 100644
index 00000000..64b8c576
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ModeratorReport.md
@@ -0,0 +1,27 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ModeratorReport
+
+> **ModeratorReport** = `object`
+
+A moderator report attached to a post or comment.
+
+## Properties
+
+
+
+### author
+
+> **author**: `string`
+
+Username of the author without the u/ prefix, e.g. 'spez'
+
+***
+
+
+
+### reason
+
+> **reason**: `string`
diff --git a/docs/api/public-api/type-aliases/MoreObject.md b/docs/api/public-api/type-aliases/MoreObject.md
new file mode 100644
index 00000000..09ce9c84
--- /dev/null
+++ b/docs/api/public-api/type-aliases/MoreObject.md
@@ -0,0 +1,31 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: MoreObject
+
+> **MoreObject** = `object`
+
+## Properties
+
+
+
+### children
+
+> **children**: `T1`[]
+
+***
+
+
+
+### depth
+
+> **depth**: `number`
+
+***
+
+
+
+### parentId
+
+> **parentId**: `T1` \| `T3`
diff --git a/docs/api/public-api/type-aliases/MultiTriggerDefinition.md b/docs/api/public-api/type-aliases/MultiTriggerDefinition.md
index 1943193f..941c5a8b 100644
--- a/docs/api/public-api/type-aliases/MultiTriggerDefinition.md
+++ b/docs/api/public-api/type-aliases/MultiTriggerDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/NumberField.md b/docs/api/public-api/type-aliases/NumberField.md
index b88170c5..60a13ff0 100644
--- a/docs/api/public-api/type-aliases/NumberField.md
+++ b/docs/api/public-api/type-aliases/NumberField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ObfuscationReason.md b/docs/api/public-api/type-aliases/ObfuscationReason.md
new file mode 100644
index 00000000..6d495ff4
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ObfuscationReason.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ObfuscationReason
+
+> **ObfuscationReason** = `"nsfw"` \| `"spoiler"`
diff --git a/docs/api/redditapi/models/type-aliases/OEmbed.md b/docs/api/public-api/type-aliases/Oembed.md
similarity index 95%
rename from docs/api/redditapi/models/type-aliases/OEmbed.md
rename to docs/api/public-api/type-aliases/Oembed.md
index 9579f0de..246f1e7e 100644
--- a/docs/api/redditapi/models/type-aliases/OEmbed.md
+++ b/docs/api/public-api/type-aliases/Oembed.md
@@ -1,10 +1,10 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
-# Type Alias: OEmbed
+# Type Alias: Oembed
-> **OEmbed** = `object`
+> **Oembed** = `object`
oEmbed is a format for allowing an embedded representation of a URL on third party sites.
The simple API allows a website to display embedded content (such as photos or videos)
diff --git a/docs/api/public-api/type-aliases/OnAutomoderatorFilterCommentDefinition.md b/docs/api/public-api/type-aliases/OnAutomoderatorFilterCommentDefinition.md
index c9436985..b10190ab 100644
--- a/docs/api/public-api/type-aliases/OnAutomoderatorFilterCommentDefinition.md
+++ b/docs/api/public-api/type-aliases/OnAutomoderatorFilterCommentDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/OnAutomoderatorFilterPostDefinition.md b/docs/api/public-api/type-aliases/OnAutomoderatorFilterPostDefinition.md
index 9bee59ae..8755b420 100644
--- a/docs/api/public-api/type-aliases/OnAutomoderatorFilterPostDefinition.md
+++ b/docs/api/public-api/type-aliases/OnAutomoderatorFilterPostDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/OnTriggerRequest.md b/docs/api/public-api/type-aliases/OnTriggerRequest.md
index a41bd6a3..403933e0 100644
--- a/docs/api/public-api/type-aliases/OnTriggerRequest.md
+++ b/docs/api/public-api/type-aliases/OnTriggerRequest.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/OnValidateHandler.md b/docs/api/public-api/type-aliases/OnValidateHandler.md
index 268cfe2a..2614cdbf 100644
--- a/docs/api/public-api/type-aliases/OnValidateHandler.md
+++ b/docs/api/public-api/type-aliases/OnValidateHandler.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/Paragraph.md b/docs/api/public-api/type-aliases/Paragraph.md
new file mode 100644
index 00000000..41791b6e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Paragraph.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Paragraph
+
+> **Paragraph** = `object`
+
+## Properties
+
+
+
+### c
+
+> **c**: [`ParagraphContentNode`](ParagraphContentNode.md)[]
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`PARAGRAPH_ELEMENT`](../variables/PARAGRAPH_ELEMENT.md)
diff --git a/docs/api/public-api/type-aliases/ParagraphContainer.md b/docs/api/public-api/type-aliases/ParagraphContainer.md
new file mode 100644
index 00000000..b8175077
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ParagraphContainer.md
@@ -0,0 +1,42 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ParagraphContainer\
+
+> **ParagraphContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`BlockQuoteContext`](../interfaces/BlockQuoteContext.md)
+- [`ListItemContext`](../interfaces/ListItemContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### paragraph()
+
+> **paragraph**(`cb`): `Context`
+
+Append a Paragraph
+
+#### Parameters
+
+##### cb
+
+(`paragraph`) => `void`
+
+scoped callback to add child elements to this Paragraph
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/ParagraphContentNode.md b/docs/api/public-api/type-aliases/ParagraphContentNode.md
new file mode 100644
index 00000000..50737325
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ParagraphContentNode.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ParagraphContentNode
+
+> **ParagraphContentNode** = [`TextNode`](TextNode.md) \| [`Image`](Image.md) \| [`AnimatedImage`](AnimatedImage.md)
diff --git a/docs/api/public-api/type-aliases/ParagraphField.md b/docs/api/public-api/type-aliases/ParagraphField.md
index fa0ce427..a87d4837 100644
--- a/docs/api/public-api/type-aliases/ParagraphField.md
+++ b/docs/api/public-api/type-aliases/ParagraphField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PartialJSONArray.md b/docs/api/public-api/type-aliases/PartialJSONArray.md
index 86036a5b..a6b62dcd 100644
--- a/docs/api/public-api/type-aliases/PartialJSONArray.md
+++ b/docs/api/public-api/type-aliases/PartialJSONArray.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PartialJSONObject.md b/docs/api/public-api/type-aliases/PartialJSONObject.md
index ae5ddbde..2265cd04 100644
--- a/docs/api/public-api/type-aliases/PartialJSONObject.md
+++ b/docs/api/public-api/type-aliases/PartialJSONObject.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PartialJSONPrimitive.md b/docs/api/public-api/type-aliases/PartialJSONPrimitive.md
index 3e43033c..6235f791 100644
--- a/docs/api/public-api/type-aliases/PartialJSONPrimitive.md
+++ b/docs/api/public-api/type-aliases/PartialJSONPrimitive.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PartialJSONValue.md b/docs/api/public-api/type-aliases/PartialJSONValue.md
index e71c7524..b0f81f89 100644
--- a/docs/api/public-api/type-aliases/PartialJSONValue.md
+++ b/docs/api/public-api/type-aliases/PartialJSONValue.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/Participant.md b/docs/api/public-api/type-aliases/Participant.md
new file mode 100644
index 00000000..5b2fcbb1
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Participant.md
@@ -0,0 +1,81 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Participant
+
+> **Participant** = `object`
+
+Conversation participant
+
+## Properties
+
+
+
+### id?
+
+> `optional` **id**: `T2`
+
+***
+
+
+
+### isAdmin?
+
+> `optional` **isAdmin**: `boolean`
+
+***
+
+
+
+### isApproved?
+
+> `optional` **isApproved**: `boolean`
+
+***
+
+
+
+### isDeleted?
+
+> `optional` **isDeleted**: `boolean`
+
+***
+
+
+
+### isHidden?
+
+> `optional` **isHidden**: `boolean`
+
+***
+
+
+
+### isMod?
+
+> `optional` **isMod**: `boolean`
+
+***
+
+
+
+### isOp?
+
+> `optional` **isOp**: `boolean`
+
+***
+
+
+
+### isParticipant?
+
+> `optional` **isParticipant**: `boolean`
+
+***
+
+
+
+### name?
+
+> `optional` **name**: `string`
diff --git a/docs/api/public-api/type-aliases/PlainText.md b/docs/api/public-api/type-aliases/PlainText.md
new file mode 100644
index 00000000..1e2909e9
--- /dev/null
+++ b/docs/api/public-api/type-aliases/PlainText.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: PlainText
+
+> **PlainText** = [`Text`](Text.md) \| [`Link`](Link.md) \| [`RedditLink`](RedditLink.md) \| [`LineBreak`](LineBreak.md)
diff --git a/docs/api/public-api/type-aliases/PluginSettings.md b/docs/api/public-api/type-aliases/PluginSettings.md
index 71a1908d..98c76447 100644
--- a/docs/api/public-api/type-aliases/PluginSettings.md
+++ b/docs/api/public-api/type-aliases/PluginSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PollData.md b/docs/api/public-api/type-aliases/PollData.md
new file mode 100644
index 00000000..0e1bdb46
--- /dev/null
+++ b/docs/api/public-api/type-aliases/PollData.md
@@ -0,0 +1,39 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: PollData
+
+> **PollData** = `object`
+
+Aggregated poll data for a poll post.
+
+## Properties
+
+
+
+### options
+
+> **options**: [`PollOption`](PollOption.md)[]
+
+Options in the poll.
+
+***
+
+
+
+### totalVoteCount
+
+> **totalVoteCount**: `number`
+
+Total number of votes cast in the poll. Aggregated across all PollOption objects.
+
+***
+
+
+
+### votingEndTimestamp
+
+> **votingEndTimestamp**: `number`
+
+Time the poll voting closes, in Unix milliseconds.
diff --git a/docs/api/public-api/type-aliases/PollOption.md b/docs/api/public-api/type-aliases/PollOption.md
new file mode 100644
index 00000000..579148ca
--- /dev/null
+++ b/docs/api/public-api/type-aliases/PollOption.md
@@ -0,0 +1,39 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: PollOption
+
+> **PollOption** = `object`
+
+Poll option on a poll post.
+
+## Properties
+
+
+
+### id
+
+> **id**: `string`
+
+ID of the poll option.
+
+***
+
+
+
+### text
+
+> **text**: `string`
+
+The text of the poll option.
+
+***
+
+
+
+### voteCount
+
+> **voteCount**: `number`
+
+The number of votes this poll option has received.
diff --git a/docs/api/public-api/type-aliases/PositionedImagePosition.md b/docs/api/public-api/type-aliases/PositionedImagePosition.md
new file mode 100644
index 00000000..8790c021
--- /dev/null
+++ b/docs/api/public-api/type-aliases/PositionedImagePosition.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: PositionedImagePosition
+
+> **PositionedImagePosition** = `"left"` \| `"right"` \| `"centered"`
diff --git a/docs/api/public-api/type-aliases/PostCapabilities.md b/docs/api/public-api/type-aliases/PostCapabilities.md
new file mode 100644
index 00000000..a7f03470
--- /dev/null
+++ b/docs/api/public-api/type-aliases/PostCapabilities.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: PostCapabilities
+
+> **PostCapabilities** = `"ama"`
diff --git a/docs/api/public-api/type-aliases/PostCreate.md b/docs/api/public-api/type-aliases/PostCreate.md
index 2bf00c3f..497db4c4 100644
--- a/docs/api/public-api/type-aliases/PostCreate.md
+++ b/docs/api/public-api/type-aliases/PostCreate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostCreateDefinition.md b/docs/api/public-api/type-aliases/PostCreateDefinition.md
index 11d9e52e..7168cb89 100644
--- a/docs/api/public-api/type-aliases/PostCreateDefinition.md
+++ b/docs/api/public-api/type-aliases/PostCreateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostDelete.md b/docs/api/public-api/type-aliases/PostDelete.md
index 7722bc3a..93422d4d 100644
--- a/docs/api/public-api/type-aliases/PostDelete.md
+++ b/docs/api/public-api/type-aliases/PostDelete.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostDeleteDefinition.md b/docs/api/public-api/type-aliases/PostDeleteDefinition.md
index a8839cc0..ea8f381a 100644
--- a/docs/api/public-api/type-aliases/PostDeleteDefinition.md
+++ b/docs/api/public-api/type-aliases/PostDeleteDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostFlairUpdate.md b/docs/api/public-api/type-aliases/PostFlairUpdate.md
index 74f632b2..47339046 100644
--- a/docs/api/public-api/type-aliases/PostFlairUpdate.md
+++ b/docs/api/public-api/type-aliases/PostFlairUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostFlairUpdateDefinition.md b/docs/api/public-api/type-aliases/PostFlairUpdateDefinition.md
index acc50143..bfbaa26f 100644
--- a/docs/api/public-api/type-aliases/PostFlairUpdateDefinition.md
+++ b/docs/api/public-api/type-aliases/PostFlairUpdateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostLink.md b/docs/api/public-api/type-aliases/PostLink.md
new file mode 100644
index 00000000..9070c883
--- /dev/null
+++ b/docs/api/public-api/type-aliases/PostLink.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: PostLink
+
+> **PostLink** = `object`
+
+## Properties
+
+
+
+### e
+
+> **e**: *typeof* [`POST_LINK_ELEMENT`](../variables/POST_LINK_ELEMENT.md)
+
+***
+
+
+
+### t
+
+> **t**: `string`
diff --git a/docs/api/public-api/type-aliases/PostLinkOptions.md b/docs/api/public-api/type-aliases/PostLinkOptions.md
new file mode 100644
index 00000000..2129e10c
--- /dev/null
+++ b/docs/api/public-api/type-aliases/PostLinkOptions.md
@@ -0,0 +1,11 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: PostLinkOptions
+
+> **PostLinkOptions** = [`RedditPermalinkOptions`](RedditPermalinkOptions.md)
+
+## Borrows
+
+RedditPermalinkOptions
diff --git a/docs/api/public-api/type-aliases/PostNsfwUpdate.md b/docs/api/public-api/type-aliases/PostNsfwUpdate.md
index 6f138ba5..c2f57285 100644
--- a/docs/api/public-api/type-aliases/PostNsfwUpdate.md
+++ b/docs/api/public-api/type-aliases/PostNsfwUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostNsfwUpdateDefinition.md b/docs/api/public-api/type-aliases/PostNsfwUpdateDefinition.md
index 7853244c..67c23123 100644
--- a/docs/api/public-api/type-aliases/PostNsfwUpdateDefinition.md
+++ b/docs/api/public-api/type-aliases/PostNsfwUpdateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostReport.md b/docs/api/public-api/type-aliases/PostReport.md
index bf6b082e..32f8b9e9 100644
--- a/docs/api/public-api/type-aliases/PostReport.md
+++ b/docs/api/public-api/type-aliases/PostReport.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostReportDefinition.md b/docs/api/public-api/type-aliases/PostReportDefinition.md
index c69d1642..eddc68e2 100644
--- a/docs/api/public-api/type-aliases/PostReportDefinition.md
+++ b/docs/api/public-api/type-aliases/PostReportDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostSpoilerUpdate.md b/docs/api/public-api/type-aliases/PostSpoilerUpdate.md
index 91d41b2f..d1a50606 100644
--- a/docs/api/public-api/type-aliases/PostSpoilerUpdate.md
+++ b/docs/api/public-api/type-aliases/PostSpoilerUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostSpoilerUpdateDefinition.md b/docs/api/public-api/type-aliases/PostSpoilerUpdateDefinition.md
index 3323f6d9..8c32ebb1 100644
--- a/docs/api/public-api/type-aliases/PostSpoilerUpdateDefinition.md
+++ b/docs/api/public-api/type-aliases/PostSpoilerUpdateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostSubmit.md b/docs/api/public-api/type-aliases/PostSubmit.md
index d54c256a..042d0e7d 100644
--- a/docs/api/public-api/type-aliases/PostSubmit.md
+++ b/docs/api/public-api/type-aliases/PostSubmit.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostSubmitDefinition.md b/docs/api/public-api/type-aliases/PostSubmitDefinition.md
index 0c9b2e75..f3b315b0 100644
--- a/docs/api/public-api/type-aliases/PostSubmitDefinition.md
+++ b/docs/api/public-api/type-aliases/PostSubmitDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostSuggestedCommentSort.md b/docs/api/public-api/type-aliases/PostSuggestedCommentSort.md
new file mode 100644
index 00000000..d8e8617e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/PostSuggestedCommentSort.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: PostSuggestedCommentSort
+
+> **PostSuggestedCommentSort** = `"BLANK"` \| `"CONFIDENCE"` \| `"CONTROVERSIAL"` \| `"LIVE"` \| `"NEW"` \| `"OLD"` \| `"QA"` \| `"RANDOM"` \| `"TOP"`
diff --git a/docs/api/public-api/type-aliases/PostTextOptions.md b/docs/api/public-api/type-aliases/PostTextOptions.md
new file mode 100644
index 00000000..5dc168a1
--- /dev/null
+++ b/docs/api/public-api/type-aliases/PostTextOptions.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: PostTextOptions
+
+> **PostTextOptions** = \{ `text`: `string`; \} \| \{ `richtext`: `object` \| [`RichTextBuilder`](../classes/RichTextBuilder.md); \}
diff --git a/docs/api/public-api/type-aliases/PostType.md b/docs/api/public-api/type-aliases/PostType.md
new file mode 100644
index 00000000..cee7c47c
--- /dev/null
+++ b/docs/api/public-api/type-aliases/PostType.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: PostType
+
+> **PostType** = `"link"` \| `"image"` \| `"video"` \| `"text"` \| `"spoiler"` \| `"poll"` \| `"gallery"` \| `"talk"` \| `"prediction"` \| `"videogif"` \| `"streaming"` \| `"crosspost"`
diff --git a/docs/api/public-api/type-aliases/PostUpdate.md b/docs/api/public-api/type-aliases/PostUpdate.md
index 3c341b34..865a1186 100644
--- a/docs/api/public-api/type-aliases/PostUpdate.md
+++ b/docs/api/public-api/type-aliases/PostUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PostUpdateDefinition.md b/docs/api/public-api/type-aliases/PostUpdateDefinition.md
index 83032a71..17aa40fc 100644
--- a/docs/api/public-api/type-aliases/PostUpdateDefinition.md
+++ b/docs/api/public-api/type-aliases/PostUpdateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/PrefixedRedditLinkOptions.md b/docs/api/public-api/type-aliases/PrefixedRedditLinkOptions.md
new file mode 100644
index 00000000..528d978e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/PrefixedRedditLinkOptions.md
@@ -0,0 +1,21 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: PrefixedRedditLinkOptions
+
+> **PrefixedRedditLinkOptions** = `object`
+
+## Borrows
+
+PrefixedRedditLinkOptions
+
+## Properties
+
+
+
+### showPrefix
+
+> **showPrefix**: `boolean`
+
+Whether to render a type prefix on the link (such as "r/" or "u/")
diff --git a/docs/api/public-api/type-aliases/RawText.md b/docs/api/public-api/type-aliases/RawText.md
new file mode 100644
index 00000000..140fb2bd
--- /dev/null
+++ b/docs/api/public-api/type-aliases/RawText.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: RawText
+
+> **RawText** = `object`
+
+## Properties
+
+
+
+### e
+
+> **e**: *typeof* [`RAW_TEXT_ELEMENT`](../variables/RAW_TEXT_ELEMENT.md)
+
+***
+
+
+
+### t
+
+> **t**: `string`
diff --git a/docs/api/public-api/type-aliases/RawTextContainer.md b/docs/api/public-api/type-aliases/RawTextContainer.md
new file mode 100644
index 00000000..7a119459
--- /dev/null
+++ b/docs/api/public-api/type-aliases/RawTextContainer.md
@@ -0,0 +1,40 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: RawTextContainer\
+
+> **RawTextContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`CodeBlockContext`](../interfaces/CodeBlockContext.md)
+- [`HeadingContext`](../interfaces/HeadingContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### rawText()
+
+> **rawText**(`text`): `Context`
+
+Append unstyled text
+
+#### Parameters
+
+##### text
+
+`string`
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/RawTextOptions.md b/docs/api/public-api/type-aliases/RawTextOptions.md
new file mode 100644
index 00000000..543df1ef
--- /dev/null
+++ b/docs/api/public-api/type-aliases/RawTextOptions.md
@@ -0,0 +1,15 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: RawTextOptions
+
+> **RawTextOptions** = `object`
+
+## Properties
+
+
+
+### text
+
+> **text**: `string`
diff --git a/docs/api/public-api/type-aliases/RedditLink.md b/docs/api/public-api/type-aliases/RedditLink.md
new file mode 100644
index 00000000..f889c3a5
--- /dev/null
+++ b/docs/api/public-api/type-aliases/RedditLink.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: RedditLink
+
+> **RedditLink** = [`CommentLink`](CommentLink.md) \| [`PostLink`](PostLink.md) \| [`SubredditLink`](SubredditLink.md) \| [`UserLink`](UserLink.md) \| [`UserMention`](UserMention.md)
diff --git a/docs/api/public-api/type-aliases/RedditLinkContainer.md b/docs/api/public-api/type-aliases/RedditLinkContainer.md
new file mode 100644
index 00000000..de84dc17
--- /dev/null
+++ b/docs/api/public-api/type-aliases/RedditLinkContainer.md
@@ -0,0 +1,127 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: RedditLinkContainer\
+
+> **RedditLinkContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### commentLink()
+
+> **commentLink**(`opts`): `Context`
+
+Append a link to a Reddit Comment
+
+#### Parameters
+
+##### opts
+
+[`RedditPermalinkOptions`](RedditPermalinkOptions.md)
+
+[CommentLinkOptions](CommentLinkOptions.md)
+
+#### Returns
+
+`Context`
+
+***
+
+
+
+### postLink()
+
+> **postLink**(`opts`): `Context`
+
+Append a link to a Reddit Post
+
+#### Parameters
+
+##### opts
+
+[`RedditPermalinkOptions`](RedditPermalinkOptions.md)
+
+[PostLinkOptions](PostLinkOptions.md)
+
+#### Returns
+
+`Context`
+
+***
+
+
+
+### subredditLink()
+
+> **subredditLink**(`opts`): `Context`
+
+Append a link to a Reddit Subreddit
+
+#### Parameters
+
+##### opts
+
+[`SubredditLinkOptions`](SubredditLinkOptions.md)
+
+[SubredditLinkOptions](SubredditLinkOptions.md)
+
+#### Returns
+
+`Context`
+
+***
+
+
+
+### userLink()
+
+> **userLink**(`opts`): `Context`
+
+Append a link to a Reddit User
+
+#### Parameters
+
+##### opts
+
+[`UserLinkOptions`](UserLinkOptions.md)
+
+[UserLinkOptions](UserLinkOptions.md)
+
+#### Returns
+
+`Context`
+
+***
+
+
+
+### userMention()
+
+> **userMention**(`opts`): `Context`
+
+Append a link to a Reddit User as a
+
+#### Parameters
+
+##### opts
+
+[`UserLinkOptions`](UserLinkOptions.md)
+
+[UserMentionOptions](UserMentionOptions.md)
+
+#### Returns
+
+`Context`
+
+#### Mention
diff --git a/docs/api/public-api/type-aliases/RedditPermalinkOptions.md b/docs/api/public-api/type-aliases/RedditPermalinkOptions.md
new file mode 100644
index 00000000..9af8f6fa
--- /dev/null
+++ b/docs/api/public-api/type-aliases/RedditPermalinkOptions.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: RedditPermalinkOptions
+
+> **RedditPermalinkOptions** = `object`
+
+## Properties
+
+
+
+### permalink
+
+> **permalink**: `string`
+
+Permalink to a Reddit page
+
+#### Example
+
+```ts
+{ permalink: "/r/aww/comments/z9m1yj/one_of_them_isnt_a_dog" }
+```
diff --git a/docs/api/public-api/type-aliases/RedditVideo.md b/docs/api/public-api/type-aliases/RedditVideo.md
new file mode 100644
index 00000000..d27abd50
--- /dev/null
+++ b/docs/api/public-api/type-aliases/RedditVideo.md
@@ -0,0 +1,109 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: RedditVideo
+
+> **RedditVideo** = `object`
+
+Contains the data for a video hosted on Reddit that is in a post
+
+## Properties
+
+
+
+### bitrateKbps?
+
+> `optional` **bitrateKbps**: `number`
+
+The bitrate of the video in kilobits per second. E.g. 450
+
+***
+
+
+
+### dashUrl?
+
+> `optional` **dashUrl**: `string`
+
+The URL to the DASH playlist file. E.g. "https://v.redd.it/abc123/DASHPlaylist.mpd"
+
+***
+
+
+
+### duration?
+
+> `optional` **duration**: `number`
+
+The duration of the video in seconds. E.g. 30
+
+***
+
+
+
+### fallbackUrl?
+
+> `optional` **fallbackUrl**: `string`
+
+The direct URL to the video. E.g. "https://v.redd.it/abc123/DASH_1080.mp4?source=fallback"
+
+***
+
+
+
+### height?
+
+> `optional` **height**: `number`
+
+The height of the video in pixels. E.g. 1080
+
+***
+
+
+
+### hlsUrl?
+
+> `optional` **hlsUrl**: `string`
+
+The URL to the HLS playlist file. E.g. "https://v.redd.it/abc123/HLSPlaylist.m3u8"
+
+***
+
+
+
+### isGif?
+
+> `optional` **isGif**: `boolean`
+
+If `true`, the video is a GIF
+
+***
+
+
+
+### scrubberMediaUrl?
+
+> `optional` **scrubberMediaUrl**: `string`
+
+The URL to the scrubber media file. E.g. "https://v.redd.it/abc123/DASH_96.mp4"
+
+***
+
+
+
+### transcodingStatus?
+
+> `optional` **transcodingStatus**: `string`
+
+The status of the transcoding process. E.g. "completed"
+
+***
+
+
+
+### width?
+
+> `optional` **width**: `number`
+
+The width of the video in pixels. E.g. 1920
diff --git a/docs/api/public-api/type-aliases/RedisClient.md b/docs/api/public-api/type-aliases/RedisClient.md
index 96524b3d..f8e27ae6 100644
--- a/docs/api/public-api/type-aliases/RedisClient.md
+++ b/docs/api/public-api/type-aliases/RedisClient.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/RelationshipType.md b/docs/api/public-api/type-aliases/RelationshipType.md
new file mode 100644
index 00000000..033d9c0d
--- /dev/null
+++ b/docs/api/public-api/type-aliases/RelationshipType.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: RelationshipType
+
+> **RelationshipType** = `"moderator_invite"` \| `"contributor"` \| `"banned"` \| `"muted"` \| `"wikibanned"` \| `"wikicontributor"`
diff --git a/docs/api/public-api/type-aliases/RemovalReason.md b/docs/api/public-api/type-aliases/RemovalReason.md
new file mode 100644
index 00000000..00527dde
--- /dev/null
+++ b/docs/api/public-api/type-aliases/RemovalReason.md
@@ -0,0 +1,41 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: RemovalReason
+
+> **RemovalReason** = `object`
+
+Plain data for a subreddit removal reason. Use [Subreddit.updateRemovalReason](../classes/Subreddit.md#updateremovalreason),
+[Subreddit.deleteRemovalReason](../classes/Subreddit.md#deleteremovalreason), or the matching [RedditClient](../classes/RedditClient.md) methods to change or
+remove it.
+
+## Properties
+
+
+
+### id
+
+> **id**: `string`
+
+The ID of the removal reason.
+
+***
+
+
+
+### message
+
+> **message**: `string`
+
+The message associated with the removal reason.
+
+***
+
+
+
+### title
+
+> **title**: `string`
+
+The title of the removal reason.
diff --git a/docs/api/public-api/type-aliases/RemoveRelationshipOptions.md b/docs/api/public-api/type-aliases/RemoveRelationshipOptions.md
new file mode 100644
index 00000000..050b036d
--- /dev/null
+++ b/docs/api/public-api/type-aliases/RemoveRelationshipOptions.md
@@ -0,0 +1,31 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: RemoveRelationshipOptions
+
+> **RemoveRelationshipOptions** = `object`
+
+## Properties
+
+
+
+### subredditName
+
+> **subredditName**: `string`
+
+***
+
+
+
+### type
+
+> **type**: [`RelationshipType`](RelationshipType.md) \| `"moderator"`
+
+***
+
+
+
+### username
+
+> **username**: `string`
diff --git a/docs/api/public-api/type-aliases/ReplyToCommentOptions.md b/docs/api/public-api/type-aliases/ReplyToCommentOptions.md
new file mode 100644
index 00000000..1a85a229
--- /dev/null
+++ b/docs/api/public-api/type-aliases/ReplyToCommentOptions.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: ReplyToCommentOptions
+
+> **ReplyToCommentOptions** = [`CommentSubmissionOptions`](CommentSubmissionOptions.md)
diff --git a/docs/api/public-api/type-aliases/RichTextContent.md b/docs/api/public-api/type-aliases/RichTextContent.md
new file mode 100644
index 00000000..efae8dd4
--- /dev/null
+++ b/docs/api/public-api/type-aliases/RichTextContent.md
@@ -0,0 +1,15 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: RichTextContent
+
+> **RichTextContent** = `object`
+
+## Properties
+
+
+
+### document
+
+> **document**: [`Document`](Document.md)
diff --git a/docs/api/public-api/type-aliases/RunJob.md b/docs/api/public-api/type-aliases/RunJob.md
index f3f58d94..e993d346 100644
--- a/docs/api/public-api/type-aliases/RunJob.md
+++ b/docs/api/public-api/type-aliases/RunJob.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ScheduledCronJob.md b/docs/api/public-api/type-aliases/ScheduledCronJob.md
index c46f51a5..280b7365 100644
--- a/docs/api/public-api/type-aliases/ScheduledCronJob.md
+++ b/docs/api/public-api/type-aliases/ScheduledCronJob.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ScheduledCronJobOptions.md b/docs/api/public-api/type-aliases/ScheduledCronJobOptions.md
index cd08a35f..0bfdc27b 100644
--- a/docs/api/public-api/type-aliases/ScheduledCronJobOptions.md
+++ b/docs/api/public-api/type-aliases/ScheduledCronJobOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ScheduledJob.md b/docs/api/public-api/type-aliases/ScheduledJob.md
index 40674c74..574162bf 100644
--- a/docs/api/public-api/type-aliases/ScheduledJob.md
+++ b/docs/api/public-api/type-aliases/ScheduledJob.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ScheduledJobEvent.md b/docs/api/public-api/type-aliases/ScheduledJobEvent.md
index 13dd066d..a0b7ff33 100644
--- a/docs/api/public-api/type-aliases/ScheduledJobEvent.md
+++ b/docs/api/public-api/type-aliases/ScheduledJobEvent.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ScheduledJobHandler.md b/docs/api/public-api/type-aliases/ScheduledJobHandler.md
index 4a0da752..f3cd7918 100644
--- a/docs/api/public-api/type-aliases/ScheduledJobHandler.md
+++ b/docs/api/public-api/type-aliases/ScheduledJobHandler.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ScheduledJobOptions.md b/docs/api/public-api/type-aliases/ScheduledJobOptions.md
index d4a33952..9bd82b91 100644
--- a/docs/api/public-api/type-aliases/ScheduledJobOptions.md
+++ b/docs/api/public-api/type-aliases/ScheduledJobOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ScheduledJobType.md b/docs/api/public-api/type-aliases/ScheduledJobType.md
index 18c76941..3da768ea 100644
--- a/docs/api/public-api/type-aliases/ScheduledJobType.md
+++ b/docs/api/public-api/type-aliases/ScheduledJobType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/Scheduler.md b/docs/api/public-api/type-aliases/Scheduler.md
index d341a761..8235d95c 100644
--- a/docs/api/public-api/type-aliases/Scheduler.md
+++ b/docs/api/public-api/type-aliases/Scheduler.md
@@ -1,68 +1,7 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
# Type Alias: Scheduler
-> **Scheduler** = `object`
-
-The Scheduler client lets you schedule new jobs or cancel existing jobs.
-You must have the `scheduler` enabled in `Devvit.configure` to use this client.
-
-## Properties
-
-
-
-### cancelJob
-
-> **cancelJob**: [`CancelJob`](CancelJob.md)
-
-Cancel a scheduled job
-
-#### Param
-
-The id of the job to cancel
-
-***
-
-
-
-### listJobs()
-
-> **listJobs**: () => `Promise`\<([`ScheduledJob`](ScheduledJob.md) \| [`ScheduledCronJob`](ScheduledCronJob.md))[]\>
-
-Gets the list of all scheduled jobs.
-
-#### Returns
-
-`Promise`\<([`ScheduledJob`](ScheduledJob.md) \| [`ScheduledCronJob`](ScheduledCronJob.md))[]\>
-
-***
-
-
-
-### runJob()
-
-> **runJob**: \<`Data`\>(`job`) => `Promise`\<`string`\>
-
-Schedule a new job to run at a specific time or on a cron schedule
-
-#### Type Parameters
-
-##### Data
-
-`Data` *extends* [`JSONObject`](JSONObject.md) \| `undefined`
-
-#### Parameters
-
-##### job
-
-The job to schedule
-
-[`ScheduledJobOptions`](ScheduledJobOptions.md)\<`Data`\> | [`ScheduledCronJobOptions`](ScheduledCronJobOptions.md)\<`Data`\>
-
-#### Returns
-
-`Promise`\<`string`\>
-
-The id of the scheduled job
+> **Scheduler** = `SchedulerClient`
diff --git a/docs/api/public-api/type-aliases/SecureMedia.md b/docs/api/public-api/type-aliases/SecureMedia.md
new file mode 100644
index 00000000..45051f49
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SecureMedia.md
@@ -0,0 +1,33 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SecureMedia
+
+> **SecureMedia** = `object`
+
+## Properties
+
+
+
+### oembed?
+
+> `optional` **oembed**: [`Oembed`](Oembed.md)
+
+***
+
+
+
+### redditVideo?
+
+> `optional` **redditVideo**: [`RedditVideo`](RedditVideo.md)
+
+***
+
+
+
+### type?
+
+> `optional` **type**: `string`
+
+The type of the oEmbed media, if present (e.g. "youtube.com")
diff --git a/docs/api/public-api/type-aliases/SelectField.md b/docs/api/public-api/type-aliases/SelectField.md
index 74e4d2e3..8aa2d2fe 100644
--- a/docs/api/public-api/type-aliases/SelectField.md
+++ b/docs/api/public-api/type-aliases/SelectField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/SendPrivateMessageAsSubredditOptions.md b/docs/api/public-api/type-aliases/SendPrivateMessageAsSubredditOptions.md
new file mode 100644
index 00000000..335d602f
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SendPrivateMessageAsSubredditOptions.md
@@ -0,0 +1,15 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SendPrivateMessageAsSubredditOptions
+
+> **SendPrivateMessageAsSubredditOptions** = [`SendPrivateMessageOptions`](SendPrivateMessageOptions.md) & `object`
+
+## Type declaration
+
+### fromSubredditName
+
+> **fromSubredditName**: `string`
+
+The name of the subreddit the message is being sent from (without the leading r/)
diff --git a/docs/api/public-api/type-aliases/SendPrivateMessageOptions.md b/docs/api/public-api/type-aliases/SendPrivateMessageOptions.md
new file mode 100644
index 00000000..3e6db37e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SendPrivateMessageOptions.md
@@ -0,0 +1,37 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SendPrivateMessageOptions
+
+> **SendPrivateMessageOptions** = `object`
+
+## Properties
+
+
+
+### subject
+
+> **subject**: `string`
+
+The subject of the message.
+
+***
+
+
+
+### text
+
+> **text**: `string`
+
+The body of the message in Markdown text format.
+
+***
+
+
+
+### to
+
+> **to**: `string`
+
+Recipient username (without the leading u/), or /r/name for that subreddit's moderators.
diff --git a/docs/api/public-api/type-aliases/SetFlairOptions.md b/docs/api/public-api/type-aliases/SetFlairOptions.md
new file mode 100644
index 00000000..20d6a92e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SetFlairOptions.md
@@ -0,0 +1,67 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SetFlairOptions
+
+> **SetFlairOptions** = `object`
+
+## Properties
+
+
+
+### backgroundColor?
+
+> `optional` **backgroundColor**: `string`
+
+The flair background color. Either 'transparent' or a hex color code. e.g. #FFC0CB
+
+***
+
+
+
+### cssClass?
+
+> `optional` **cssClass**: `string`
+
+The flair CSS class
+
+***
+
+
+
+### flairTemplateId?
+
+> `optional` **flairTemplateId**: `string`
+
+The flair template's ID
+
+***
+
+
+
+### subredditName
+
+> **subredditName**: `string`
+
+The name of the subreddit of the item to set the flair on
+
+***
+
+
+
+### text?
+
+> `optional` **text**: `string`
+
+The flair text
+
+***
+
+
+
+### textColor?
+
+> `optional` **textColor**: [`FlairTextColor`](FlairTextColor.md)
+
+The flair text color. Either 'dark' or 'light'.
diff --git a/docs/api/public-api/type-aliases/SetOptions.md b/docs/api/public-api/type-aliases/SetOptions.md
index ba08dcb2..c4793f12 100644
--- a/docs/api/public-api/type-aliases/SetOptions.md
+++ b/docs/api/public-api/type-aliases/SetOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/SetPostFlairOptions.md b/docs/api/public-api/type-aliases/SetPostFlairOptions.md
new file mode 100644
index 00000000..82a3956d
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SetPostFlairOptions.md
@@ -0,0 +1,15 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SetPostFlairOptions
+
+> **SetPostFlairOptions** = [`SetFlairOptions`](SetFlairOptions.md) & `object`
+
+## Type declaration
+
+### postId
+
+> **postId**: `T3`
+
+The ID of the post to set the flair on
diff --git a/docs/api/public-api/type-aliases/SetUserFlairBatchConfig.md b/docs/api/public-api/type-aliases/SetUserFlairBatchConfig.md
new file mode 100644
index 00000000..5681056c
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SetUserFlairBatchConfig.md
@@ -0,0 +1,37 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SetUserFlairBatchConfig
+
+> **SetUserFlairBatchConfig** = `object`
+
+## Properties
+
+
+
+### cssClass?
+
+> `optional` **cssClass**: `string`
+
+The flair CSS class
+
+***
+
+
+
+### text?
+
+> `optional` **text**: `string`
+
+The flair text. Can't contain the comma character (",")
+
+***
+
+
+
+### username
+
+> **username**: `string`
+
+The username of the user to edit the flair on
diff --git a/docs/api/public-api/type-aliases/SetUserFlairOptions.md b/docs/api/public-api/type-aliases/SetUserFlairOptions.md
new file mode 100644
index 00000000..98762cca
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SetUserFlairOptions.md
@@ -0,0 +1,15 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SetUserFlairOptions
+
+> **SetUserFlairOptions** = [`SetFlairOptions`](SetFlairOptions.md) & `object`
+
+## Type declaration
+
+### username
+
+> **username**: `string`
+
+The username of the user to set the flair on
diff --git a/docs/api/public-api/type-aliases/SettingScopeType.md b/docs/api/public-api/type-aliases/SettingScopeType.md
index 838e5304..408d5421 100644
--- a/docs/api/public-api/type-aliases/SettingScopeType.md
+++ b/docs/api/public-api/type-aliases/SettingScopeType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/SettingsClient.md b/docs/api/public-api/type-aliases/SettingsClient.md
deleted file mode 100644
index ae2182bf..00000000
--- a/docs/api/public-api/type-aliases/SettingsClient.md
+++ /dev/null
@@ -1,62 +0,0 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
-
-***
-
-# Type Alias: SettingsClient
-
-> **SettingsClient** = `object`
-
-The Settings API Client lets you retrieve the settings values for your app set by the installer.
-Use this in conjunction with `Devvit.addSettings`.
-
-## Methods
-
-
-
-### get()
-
-> **get**\<`T`\>(`name`): `Promise`\<`undefined` \| `T`\>
-
-Get a single setting value by name.
-
-#### Type Parameters
-
-##### T
-
-`T` = `string` \| `number` \| `boolean` \| `string`[]
-
-#### Parameters
-
-##### name
-
-`string`
-
-The name of the setting to retrieve.
-
-#### Returns
-
-`Promise`\<`undefined` \| `T`\>
-
-A promise that resolves to the setting value, or undefined if the setting doesn't exist.
-
-***
-
-
-
-### getAll()
-
-> **getAll**\<`T`\>(): `Promise`\<`T`\>
-
-Get all settings values.
-
-#### Type Parameters
-
-##### T
-
-`T` *extends* `object` = [`SettingsValues`](SettingsValues.md)
-
-#### Returns
-
-`Promise`\<`T`\>
-
-A promise that resolves to an object containing all settings values.
diff --git a/docs/api/public-api/type-aliases/SettingsFormField.md b/docs/api/public-api/type-aliases/SettingsFormField.md
index 71625f7a..32eede52 100644
--- a/docs/api/public-api/type-aliases/SettingsFormField.md
+++ b/docs/api/public-api/type-aliases/SettingsFormField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/SettingsFormFieldGroup.md b/docs/api/public-api/type-aliases/SettingsFormFieldGroup.md
index 4c987dbc..0e391e22 100644
--- a/docs/api/public-api/type-aliases/SettingsFormFieldGroup.md
+++ b/docs/api/public-api/type-aliases/SettingsFormFieldGroup.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/SettingsFormFieldValidatorEvent.md b/docs/api/public-api/type-aliases/SettingsFormFieldValidatorEvent.md
index 11117d67..cd53738f 100644
--- a/docs/api/public-api/type-aliases/SettingsFormFieldValidatorEvent.md
+++ b/docs/api/public-api/type-aliases/SettingsFormFieldValidatorEvent.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/SettingsValues.md b/docs/api/public-api/type-aliases/SettingsValues.md
index 7cd70604..b0b4a676 100644
--- a/docs/api/public-api/type-aliases/SettingsValues.md
+++ b/docs/api/public-api/type-aliases/SettingsValues.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/SpoilerContainer.md b/docs/api/public-api/type-aliases/SpoilerContainer.md
new file mode 100644
index 00000000..976c43eb
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SpoilerContainer.md
@@ -0,0 +1,37 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SpoilerContainer\
+
+> **SpoilerContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### spoiler()
+
+> **spoiler**(`cb`): `Context`
+
+Append a Spoiler
+
+#### Parameters
+
+##### cb
+
+(`spoiler`) => `void`
+
+scoped callback to add child elements to this Spoiler
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/SpoilerText.md b/docs/api/public-api/type-aliases/SpoilerText.md
new file mode 100644
index 00000000..e3c40a67
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SpoilerText.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SpoilerText
+
+> **SpoilerText** = `object`
+
+## Properties
+
+
+
+### c
+
+> **c**: [`PlainText`](PlainText.md)[]
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`SPOILER_TEXT_ELEMENT`](../variables/SPOILER_TEXT_ELEMENT.md)
diff --git a/docs/api/public-api/type-aliases/StringField.md b/docs/api/public-api/type-aliases/StringField.md
index 1efbdd00..45b914c1 100644
--- a/docs/api/public-api/type-aliases/StringField.md
+++ b/docs/api/public-api/type-aliases/StringField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/SubmitCustomPostOptions.md b/docs/api/public-api/type-aliases/SubmitCustomPostOptions.md
new file mode 100644
index 00000000..29cc8a31
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubmitCustomPostOptions.md
@@ -0,0 +1,62 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubmitCustomPostOptions
+
+> **SubmitCustomPostOptions** = [`CommonSubmitPostOptions`](CommonSubmitPostOptions.md) & `object`
+
+## Type declaration
+
+### entry?
+
+> `optional` **entry**: `string`
+
+The entrypoint name. Must correspond to a `post.entrypoints` key in the
+app's `devvit.json`.
+
+#### Default
+
+The default `devvit.json` entrypoint (`'default'`).
+
+#### Example
+
+following `devvit.json` configuration:
+```json
+{
+ "$schema": "https://developers.reddit.com/schema/config-file.v1.json",
+ "name": "example",
+ "post": {
+ "entrypoints": {
+ "default": {"entry": "splash.html"},
+ "game": {"entry": "game.html"}
+ }
+ }
+}
+```
+
+### postData?
+
+> `optional` **postData**: `PostData`
+
+Arbitrary data to associate to the post. Limited to two kilobytes.
+
+#### See
+
+PostData.
+
+### styles?
+
+> `optional` **styles**: `CustomPostStylesInput`
+
+Styles associated with the custom post, such as height or background color.
+
+### textFallback?
+
+> `optional` **textFallback**: [`CustomPostTextFallbackOptions`](CustomPostTextFallbackOptions.md)
+
+Content to show when rendered on `https://old.reddit.com`.
+
+### userGeneratedContent?
+
+> `optional` **userGeneratedContent**: `UserGeneratedContent`
diff --git a/docs/api/public-api/type-aliases/SubmitLinkOptions.md b/docs/api/public-api/type-aliases/SubmitLinkOptions.md
new file mode 100644
index 00000000..7bb1d051
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubmitLinkOptions.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubmitLinkOptions
+
+> **SubmitLinkOptions** = [`CommonSubmitPostOptions`](CommonSubmitPostOptions.md) & `object`
+
+## Type declaration
+
+### ~~resubmit?~~
+
+> `optional` **resubmit**: `boolean`
+
+#### Deprecated
+
+Unsupported. This property is for backwards compatibility and
+has no effect. It will removed in a future version. New code should not
+use it.
+
+### url
+
+> **url**: `string`
diff --git a/docs/api/public-api/type-aliases/SubmitMediaOptions.md b/docs/api/public-api/type-aliases/SubmitMediaOptions.md
new file mode 100644
index 00000000..7754f6d6
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubmitMediaOptions.md
@@ -0,0 +1,21 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubmitMediaOptions
+
+> **SubmitMediaOptions** = [`CommonSubmitPostOptions`](CommonSubmitPostOptions.md) & `object`
+
+## Type declaration
+
+### imageUrls?
+
+> `optional` **imageUrls**: \[`string`\]
+
+### kind
+
+> **kind**: `"image"` \| `"video"` \| `"videogif"`
+
+### videoPosterUrl?
+
+> `optional` **videoPosterUrl**: `string`
diff --git a/docs/api/public-api/type-aliases/SubmitPostOptions.md b/docs/api/public-api/type-aliases/SubmitPostOptions.md
new file mode 100644
index 00000000..2adebb5e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubmitPostOptions.md
@@ -0,0 +1,9 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubmitPostOptions
+
+> **SubmitPostOptions** = [`SubmitLinkOptions`](SubmitLinkOptions.md) & `object` \| [`SubmitSelfPostOptions`](SubmitSelfPostOptions.md) & `object` \| [`SubmitMediaOptions`](SubmitMediaOptions.md) & `object`
+
+Link, self, or media post options exclusively.
diff --git a/docs/api/public-api/type-aliases/SubmitSelfPostOptions.md b/docs/api/public-api/type-aliases/SubmitSelfPostOptions.md
new file mode 100644
index 00000000..af5dead4
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubmitSelfPostOptions.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubmitSelfPostOptions
+
+> **SubmitSelfPostOptions** = [`CommonSubmitPostOptions`](CommonSubmitPostOptions.md) & [`PostTextOptions`](PostTextOptions.md)
diff --git a/docs/api/public-api/type-aliases/SubredditData.md b/docs/api/public-api/type-aliases/SubredditData.md
new file mode 100644
index 00000000..25b77da5
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubredditData.md
@@ -0,0 +1,79 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubredditData
+
+> **SubredditData** = `object`
+
+## Properties
+
+
+
+### communityIcon?
+
+> `optional` **communityIcon**: `string`
+
+***
+
+
+
+### displayName?
+
+> `optional` **displayName**: `string`
+
+***
+
+
+
+### icon?
+
+> `optional` **icon**: `string`
+
+***
+
+
+
+### id?
+
+> `optional` **id**: `T5`
+
+***
+
+
+
+### keyColor?
+
+> `optional` **keyColor**: `string`
+
+***
+
+
+
+### lastUpdated?
+
+> `optional` **lastUpdated**: `string`
+
+***
+
+
+
+### name?
+
+> `optional` **name**: `string`
+
+***
+
+
+
+### primaryColor?
+
+> `optional` **primaryColor**: `string`
+
+***
+
+
+
+### subscribers?
+
+> `optional` **subscribers**: `number`
diff --git a/docs/api/public-api/type-aliases/SubredditInfo.md b/docs/api/public-api/type-aliases/SubredditInfo.md
new file mode 100644
index 00000000..b0cf3f2f
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubredditInfo.md
@@ -0,0 +1,241 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubredditInfo
+
+> **SubredditInfo** = `object`
+
+A class representing information about a Subreddit.
+
+## Properties
+
+
+
+### activeCount?
+
+> `optional` **activeCount**: `number`
+
+***
+
+
+
+### allAllowedPostTypes?
+
+> `optional` **allAllowedPostTypes**: [`PostType`](PostType.md)[]
+
+***
+
+
+
+### allowedMediaInComments?
+
+> `optional` **allowedMediaInComments**: [`CommentMediaTypes`](CommentMediaTypes.md)[]
+
+***
+
+
+
+### allowedPostCapabilities?
+
+> `optional` **allowedPostCapabilities**: [`PostCapabilities`](PostCapabilities.md)[]
+
+***
+
+
+
+### authorFlairSettings?
+
+> `optional` **authorFlairSettings**: [`AuthorFlairSettings`](../classes/AuthorFlairSettings.md)
+
+***
+
+
+
+### createdAt?
+
+> `optional` **createdAt**: `Date`
+
+***
+
+
+
+### description?
+
+> `optional` **description**: [`SubredditDescription`](../classes/SubredditDescription.md)
+
+***
+
+
+
+### detectedLanguage?
+
+> `optional` **detectedLanguage**: `string`
+
+***
+
+
+
+### id?
+
+> `optional` **id**: `T5`
+
+***
+
+
+
+### isArchivePostsEnabled?
+
+> `optional` **isArchivePostsEnabled**: `boolean`
+
+***
+
+
+
+### isChatPostCreationAllowed?
+
+> `optional` **isChatPostCreationAllowed**: `boolean`
+
+***
+
+
+
+### isChatPostFeatureEnabled?
+
+> `optional` **isChatPostFeatureEnabled**: `boolean`
+
+***
+
+
+
+### isCommentingRestricted?
+
+> `optional` **isCommentingRestricted**: `boolean`
+
+***
+
+
+
+### isCrosspostingAllowed?
+
+> `optional` **isCrosspostingAllowed**: `boolean`
+
+***
+
+
+
+### isDiscoveryAllowed?
+
+> `optional` **isDiscoveryAllowed**: `boolean`
+
+***
+
+
+
+### isEmojisEnabled?
+
+> `optional` **isEmojisEnabled**: `boolean`
+
+***
+
+
+
+### isNsfw?
+
+> `optional` **isNsfw**: `boolean`
+
+***
+
+
+
+### isPostingRestricted?
+
+> `optional` **isPostingRestricted**: `boolean`
+
+***
+
+
+
+### isPredictionAllowed?
+
+> `optional` **isPredictionAllowed**: `boolean`
+
+***
+
+
+
+### isPredictionContributorsAllowed?
+
+> `optional` **isPredictionContributorsAllowed**: `boolean`
+
+***
+
+
+
+### isPredictionsTournamentAllowed?
+
+> `optional` **isPredictionsTournamentAllowed**: `boolean`
+
+***
+
+
+
+### isQuarantined?
+
+> `optional` **isQuarantined**: `boolean`
+
+***
+
+
+
+### isSpoilerAvailable?
+
+> `optional` **isSpoilerAvailable**: `boolean`
+
+***
+
+
+
+### name?
+
+> `optional` **name**: `string`
+
+***
+
+
+
+### postFlairSettings?
+
+> `optional` **postFlairSettings**: [`PostFlairSettings`](../classes/PostFlairSettings.md)
+
+***
+
+
+
+### subscribersCount?
+
+> `optional` **subscribersCount**: `number`
+
+***
+
+
+
+### title?
+
+> `optional` **title**: `string`
+
+***
+
+
+
+### type?
+
+> `optional` **type**: [`SubredditType`](SubredditType.md)
+
+***
+
+
+
+### wikiSettings?
+
+> `optional` **wikiSettings**: [`SubredditWikiSettings`](../classes/SubredditWikiSettings.md)
diff --git a/docs/api/public-api/type-aliases/SubredditLeaderboard.md b/docs/api/public-api/type-aliases/SubredditLeaderboard.md
new file mode 100644
index 00000000..8d3c3d13
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubredditLeaderboard.md
@@ -0,0 +1,25 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubredditLeaderboard
+
+> **SubredditLeaderboard** = `object`
+
+An individual Leaderboard object.
+
+## Properties
+
+
+
+### id
+
+> **id**: `string`
+
+***
+
+
+
+### summary
+
+> **summary**: [`SubredditLeaderboardSummary`](SubredditLeaderboardSummary.md)
diff --git a/docs/api/public-api/type-aliases/SubredditLeaderboardSummary.md b/docs/api/public-api/type-aliases/SubredditLeaderboardSummary.md
new file mode 100644
index 00000000..17f25959
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubredditLeaderboardSummary.md
@@ -0,0 +1,15 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubredditLeaderboardSummary
+
+> **SubredditLeaderboardSummary** = `object`
+
+## Properties
+
+
+
+### data
+
+> **data**: [`SubredditLeaderboardSummaryRow`](SubredditLeaderboardSummaryRow.md)[]
diff --git a/docs/api/public-api/type-aliases/SubredditLeaderboardSummaryRow.md b/docs/api/public-api/type-aliases/SubredditLeaderboardSummaryRow.md
new file mode 100644
index 00000000..6c502bab
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubredditLeaderboardSummaryRow.md
@@ -0,0 +1,31 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubredditLeaderboardSummaryRow
+
+> **SubredditLeaderboardSummaryRow** = `object`
+
+## Properties
+
+
+
+### key
+
+> **key**: `string`
+
+***
+
+
+
+### title
+
+> **title**: `string`
+
+***
+
+
+
+### value
+
+> **value**: `number`
diff --git a/docs/api/public-api/type-aliases/SubredditLink.md b/docs/api/public-api/type-aliases/SubredditLink.md
new file mode 100644
index 00000000..e5e7b2af
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubredditLink.md
@@ -0,0 +1,31 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubredditLink
+
+> **SubredditLink** = `object`
+
+## Properties
+
+
+
+### e
+
+> **e**: *typeof* [`SUBREDDIT_LINK_ELEMENT`](../variables/SUBREDDIT_LINK_ELEMENT.md)
+
+***
+
+
+
+### l
+
+> **l**: `boolean`
+
+***
+
+
+
+### t
+
+> **t**: `string`
diff --git a/docs/api/public-api/type-aliases/SubredditLinkOptions.md b/docs/api/public-api/type-aliases/SubredditLinkOptions.md
new file mode 100644
index 00000000..8fb0d65f
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubredditLinkOptions.md
@@ -0,0 +1,25 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubredditLinkOptions
+
+> **SubredditLinkOptions** = [`PrefixedRedditLinkOptions`](PrefixedRedditLinkOptions.md) & `object`
+
+## Type declaration
+
+### subredditName
+
+> **subredditName**: `string`
+
+Subreddit name without the "r/" prefix
+
+#### Example
+
+```ts
+{ subredditName: "aww", showPrefix: true }
+```
+
+## Borrows
+
+PrefixedRedditLinkOptions
diff --git a/docs/api/public-api/type-aliases/SubredditOptions.md b/docs/api/public-api/type-aliases/SubredditOptions.md
new file mode 100644
index 00000000..da2bf86c
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubredditOptions.md
@@ -0,0 +1,17 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubredditOptions
+
+> **SubredditOptions** = `object`
+
+## Properties
+
+
+
+### subredditName?
+
+> `optional` **subredditName**: `string`
+
+Defaults to the current subreddit name.
diff --git a/docs/api/public-api/type-aliases/SubredditSettings.md b/docs/api/public-api/type-aliases/SubredditSettings.md
new file mode 100644
index 00000000..bd125d98
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubredditSettings.md
@@ -0,0 +1,387 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubredditSettings
+
+> **SubredditSettings** = `object`
+
+## Properties
+
+
+
+### acceptFollowers
+
+> **acceptFollowers**: `boolean`
+
+Whether the subreddit accepts followers or not.
+
+***
+
+
+
+### allOriginalContent
+
+> **allOriginalContent**: `boolean`
+
+Whether all content posted on the subreddit is original.
+
+***
+
+
+
+### allowChatPostCreation
+
+> **allowChatPostCreation**: `boolean`
+
+Whether users are allowed to create chat posts on the subreddit.
+
+***
+
+
+
+### allowDiscovery
+
+> **allowDiscovery**: `boolean`
+
+Whether the subreddit can be discovered through search.
+
+***
+
+
+
+### allowedMediaInComments
+
+> **allowedMediaInComments**: [`CommentMediaTypes`](CommentMediaTypes.md)[]
+
+List of allowed media types in the comments made in the subreddit.
+
+***
+
+
+
+### allowedPostType
+
+> **allowedPostType**: `"any"` \| `"link"` \| `"self"` \| `"other"`
+
+The types of post allowed in this subreddit. Either "any", "link", "self", or "other".
+
+***
+
+
+
+### allowGalleries
+
+> **allowGalleries**: `boolean`
+
+Whether the subreddit allows galleries.
+
+***
+
+
+
+### allowImages
+
+> **allowImages**: `boolean`
+
+Whether the subreddit allows images.
+
+***
+
+
+
+### allowPolls
+
+> **allowPolls**: `boolean`
+
+Whether the subreddit allows polls.
+
+***
+
+
+
+### allowPredictionContributors
+
+> **allowPredictionContributors**: `boolean`
+
+Whether contributors are allowed to make predictions on the subreddit.
+
+***
+
+
+
+### allowPredictions
+
+> **allowPredictions**: `boolean`
+
+Whether predictions are allowed on the subreddit.
+
+***
+
+
+
+### allowPredictionsTournament
+
+> **allowPredictionsTournament**: `boolean`
+
+Whether prediction tournaments are allowed on the subreddit.
+
+***
+
+
+
+### allowTalks
+
+> **allowTalks**: `boolean`
+
+Whether talks are allowed on the subreddit.
+
+***
+
+
+
+### allowVideoGifs
+
+> **allowVideoGifs**: `boolean`
+
+Whether video GIFs are allowed on the subreddit.
+
+***
+
+
+
+### allowVideos
+
+> **allowVideos**: `boolean`
+
+Whether videos are allowed on the subreddit.
+
+***
+
+
+
+### bannerBackgroundColor?
+
+> `optional` **bannerBackgroundColor**: `string`
+
+a 6-digit rgb hex color of the banner e.g. `#AABBCC`,
+
+***
+
+
+
+### bannerBackgroundImage?
+
+> `optional` **bannerBackgroundImage**: `string`
+
+The background image of the banner.
+
+***
+
+
+
+### bannerImage?
+
+> `optional` **bannerImage**: `string`
+
+The URL of the banner image.
+
+***
+
+
+
+### chatPostEnabled
+
+> **chatPostEnabled**: `boolean`
+
+Whether chat posts are enabled on the subreddit.
+
+***
+
+
+
+### collectionsEnabled
+
+> **collectionsEnabled**: `boolean`
+
+Whether collections are enabled on the subreddit.
+
+***
+
+
+
+### communityIcon?
+
+> `optional` **communityIcon**: `string`
+
+The URL of the community icon.
+
+***
+
+
+
+### crosspostable
+
+> **crosspostable**: `boolean`
+
+Whether crossposts can be made to this subreddit.
+
+***
+
+
+
+### emojisEnabled
+
+> **emojisEnabled**: `boolean`
+
+Whether emojis are enabled on the subreddit.
+
+***
+
+
+
+### eventPostsEnabled
+
+> **eventPostsEnabled**: `boolean`
+
+Whether event posts are enabled on the subreddit.
+
+***
+
+
+
+### headerTitle?
+
+> `optional` **headerTitle**: `string`
+
+The header title.
+
+***
+
+
+
+### keyColor?
+
+> `optional` **keyColor**: `string`
+
+The 6-digit rgb hex color of the subreddit's key color, e.g. `#AABBCC`,
+
+***
+
+
+
+### linkFlairEnabled
+
+> **linkFlairEnabled**: `boolean`
+
+Whether link flairs are enabled on the subreddit.
+
+***
+
+
+
+### mobileBannerImage?
+
+> `optional` **mobileBannerImage**: `string`
+
+Banner image used on mobile apps.
+
+***
+
+
+
+### originalContentTagEnabled
+
+> **originalContentTagEnabled**: `boolean`
+
+Whether the Original Content tag is enabled.
+
+***
+
+
+
+### postFlairs
+
+> **postFlairs**: [`FlairSettings`](FlairSettings.md)
+
+The post flair settings for the subreddit.
+
+***
+
+
+
+### primaryColor?
+
+> `optional` **primaryColor**: `string`
+
+The 6-digit rgb hex color of the subreddit's primary color, e.g. `#AABBCC`,
+
+***
+
+
+
+### restrictCommenting
+
+> **restrictCommenting**: `boolean`
+
+Whether commenting is restricted in the subreddit.
+
+***
+
+
+
+### restrictPosting
+
+> **restrictPosting**: `boolean`
+
+Whether posting is restricted in the subreddit.
+
+***
+
+
+
+### shouldArchivePosts
+
+> **shouldArchivePosts**: `boolean`
+
+Whether posts in the subreddit should be automatically archived after 6 months.
+
+***
+
+
+
+### spoilersEnabled
+
+> **spoilersEnabled**: `boolean`
+
+Whether the Spoiler tag is enabled.
+
+***
+
+
+
+### url
+
+> **url**: `string`
+
+HTTP URL to the subreddit
+
+***
+
+
+
+### userFlairs
+
+> **userFlairs**: [`FlairSettings`](FlairSettings.md)
+
+The user flair settings for the subreddit.
+
+***
+
+
+
+### wikiEnabled
+
+> **wikiEnabled**: `boolean`
+
+Whether the wiki is enabled for the subreddit.
diff --git a/docs/api/public-api/type-aliases/SubredditSettingsOptions.md b/docs/api/public-api/type-aliases/SubredditSettingsOptions.md
new file mode 100644
index 00000000..a93634b9
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubredditSettingsOptions.md
@@ -0,0 +1,30 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubredditSettingsOptions
+
+> **SubredditSettingsOptions** = `Partial`\<[`SubredditSettings`](SubredditSettings.md)\> & `object`
+
+Optional overrides for subreddit settings. Only provided fields are applied;
+the rest remain unchanged when calling [Subreddit.updateSettings](../classes/Subreddit.md#updatesettings).
+
+## Type declaration
+
+### description?
+
+> `optional` **description**: `string`
+
+Subreddit description (raw markdown). Appears in the sidebar of the subreddit.
+
+### title?
+
+> `optional` **title**: `string`
+
+Subreddit title.
+
+### type?
+
+> `optional` **type**: [`SubredditType`](SubredditType.md)
+
+Subreddit type (e.g. public, private, restricted).
diff --git a/docs/api/public-api/type-aliases/SubredditStyles.md b/docs/api/public-api/type-aliases/SubredditStyles.md
new file mode 100644
index 00000000..a13a9f2c
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubredditStyles.md
@@ -0,0 +1,377 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubredditStyles
+
+> **SubredditStyles** = `object`
+
+A class representing the styles of a Subreddit.
+
+## Properties
+
+
+
+### backgroundColor?
+
+> `optional` **backgroundColor**: `string`
+
+***
+
+
+
+### backgroundImage?
+
+> `optional` **backgroundImage**: `string`
+
+***
+
+
+
+### backgroundImagePosition?
+
+> `optional` **backgroundImagePosition**: [`BackgroundImagePosition`](BackgroundImagePosition.md)
+
+***
+
+
+
+### bannerBackgroundColor?
+
+> `optional` **bannerBackgroundColor**: `string`
+
+***
+
+
+
+### bannerBackgroundImage?
+
+> `optional` **bannerBackgroundImage**: `string`
+
+***
+
+
+
+### bannerBackgroundImagePosition?
+
+> `optional` **bannerBackgroundImagePosition**: [`ImagePosition`](ImagePosition.md)
+
+***
+
+
+
+### bannerCommunityName?
+
+> `optional` **bannerCommunityName**: `string`
+
+***
+
+
+
+### bannerCommunityNameFormat?
+
+> `optional` **bannerCommunityNameFormat**: [`CommunityNameFormat`](CommunityNameFormat.md)
+
+***
+
+
+
+### bannerHeight?
+
+> `optional` **bannerHeight**: [`BannerHeight`](BannerHeight.md)
+
+***
+
+
+
+### bannerOverlayColor?
+
+> `optional` **bannerOverlayColor**: `string`
+
+***
+
+
+
+### bannerPositionedImage?
+
+> `optional` **bannerPositionedImage**: `string`
+
+***
+
+
+
+### bannerPositionedImagePosition?
+
+> `optional` **bannerPositionedImagePosition**: [`PositionedImagePosition`](PositionedImagePosition.md)
+
+***
+
+
+
+### bannerShowCommunityIcon?
+
+> `optional` **bannerShowCommunityIcon**: [`Visibility`](Visibility.md)
+
+***
+
+
+
+### highlightColor?
+
+> `optional` **highlightColor**: `string`
+
+***
+
+
+
+### icon?
+
+> `optional` **icon**: `string`
+
+***
+
+
+
+### legacyBannerBackgroundImage?
+
+> `optional` **legacyBannerBackgroundImage**: `string`
+
+***
+
+
+
+### legacyPrimaryColor?
+
+> `optional` **legacyPrimaryColor**: `string`
+
+***
+
+
+
+### menuBackgroundBlur?
+
+> `optional` **menuBackgroundBlur**: `number`
+
+***
+
+
+
+### menuBackgroundColor?
+
+> `optional` **menuBackgroundColor**: `string`
+
+***
+
+
+
+### menuBackgroundImage?
+
+> `optional` **menuBackgroundImage**: `string`
+
+***
+
+
+
+### menuBackgroundOpacity?
+
+> `optional` **menuBackgroundOpacity**: `number`
+
+***
+
+
+
+### menuLinkColorActive?
+
+> `optional` **menuLinkColorActive**: `string`
+
+***
+
+
+
+### menuLinkColorHover?
+
+> `optional` **menuLinkColorHover**: `string`
+
+***
+
+
+
+### menuLinkColorInactive?
+
+> `optional` **menuLinkColorInactive**: `string`
+
+***
+
+
+
+### menuPosition?
+
+> `optional` **menuPosition**: [`MenuPosition`](MenuPosition.md)
+
+***
+
+
+
+### mobileBannerImage?
+
+> `optional` **mobileBannerImage**: `string`
+
+***
+
+
+
+### mobileKeyColor?
+
+> `optional` **mobileKeyColor**: `string`
+
+***
+
+
+
+### postBackgroundColor?
+
+> `optional` **postBackgroundColor**: `string`
+
+***
+
+
+
+### postBackgroundImage?
+
+> `optional` **postBackgroundImage**: `string`
+
+***
+
+
+
+### postBackgroundImagePosition?
+
+> `optional` **postBackgroundImagePosition**: [`ImagePosition`](ImagePosition.md)
+
+***
+
+
+
+### postDownvoteCountColor?
+
+> `optional` **postDownvoteCountColor**: `string`
+
+***
+
+
+
+### postDownvoteIconActive?
+
+> `optional` **postDownvoteIconActive**: `string`
+
+***
+
+
+
+### postDownvoteIconInactive?
+
+> `optional` **postDownvoteIconInactive**: `string`
+
+***
+
+
+
+### postPlaceholderImage?
+
+> `optional` **postPlaceholderImage**: `string`
+
+***
+
+
+
+### postPlaceholderImagePosition?
+
+> `optional` **postPlaceholderImagePosition**: [`ImagePosition`](ImagePosition.md)
+
+***
+
+
+
+### postTitleColor?
+
+> `optional` **postTitleColor**: `string`
+
+***
+
+
+
+### postUpvoteCountColor?
+
+> `optional` **postUpvoteCountColor**: `string`
+
+***
+
+
+
+### postUpvoteIconActive?
+
+> `optional` **postUpvoteIconActive**: `string`
+
+***
+
+
+
+### postUpvoteIconInactive?
+
+> `optional` **postUpvoteIconInactive**: `string`
+
+***
+
+
+
+### postVoteIcons?
+
+> `optional` **postVoteIcons**: [`CustomizationFlag`](CustomizationFlag.md)
+
+***
+
+
+
+### primaryColor?
+
+> `optional` **primaryColor**: `string`
+
+***
+
+
+
+### secondaryBannerPositionedImage?
+
+> `optional` **secondaryBannerPositionedImage**: `string`
+
+***
+
+
+
+### sidebarWidgetBackgroundColor?
+
+> `optional` **sidebarWidgetBackgroundColor**: `string`
+
+***
+
+
+
+### sidebarWidgetHeaderColor?
+
+> `optional` **sidebarWidgetHeaderColor**: `string`
+
+***
+
+
+
+### submenuBackgroundColor?
+
+> `optional` **submenuBackgroundColor**: `string`
+
+***
+
+
+
+### submenuBackgroundStyle?
+
+> `optional` **submenuBackgroundStyle**: [`CustomizationFlag`](CustomizationFlag.md)
diff --git a/docs/api/public-api/type-aliases/SubredditType.md b/docs/api/public-api/type-aliases/SubredditType.md
new file mode 100644
index 00000000..4cfef59d
--- /dev/null
+++ b/docs/api/public-api/type-aliases/SubredditType.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: SubredditType
+
+> **SubredditType** = `"public"` \| `"private"` \| `"restricted"` \| `"employees_only"` \| `"gold_only"` \| `"gold_restricted"` \| `"archived"` \| `"user"`
diff --git a/docs/api/public-api/type-aliases/Table.md b/docs/api/public-api/type-aliases/Table.md
new file mode 100644
index 00000000..17c5ddfc
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Table.md
@@ -0,0 +1,31 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Table
+
+> **Table** = `object`
+
+## Properties
+
+
+
+### c
+
+> **c**: [`TableRow`](TableRow.md)[]
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`TABLE_ELEMENT`](../variables/TABLE_ELEMENT.md)
+
+***
+
+
+
+### h
+
+> **h**: [`TableHeaderRow`](TableHeaderRow.md)
diff --git a/docs/api/public-api/type-aliases/TableCell.md b/docs/api/public-api/type-aliases/TableCell.md
new file mode 100644
index 00000000..6c0c8c62
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TableCell.md
@@ -0,0 +1,15 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TableCell
+
+> **TableCell** = `object`
+
+## Properties
+
+
+
+### c?
+
+> `optional` **c**: [`TableCellText`](TableCellText.md)[]
diff --git a/docs/api/public-api/type-aliases/TableCellContainer.md b/docs/api/public-api/type-aliases/TableCellContainer.md
new file mode 100644
index 00000000..fc02bf8c
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TableCellContainer.md
@@ -0,0 +1,41 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TableCellContainer\
+
+> **TableCellContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`TableRowContext`](../interfaces/TableRowContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### cell()
+
+> **cell**(`cb`): `Context`
+
+Append a Cell to a Table Row
+
+#### Parameters
+
+##### cb
+
+(`cell`) => `void`
+
+scoped callback to add child elements to this Table Cell
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/TableCellText.md b/docs/api/public-api/type-aliases/TableCellText.md
new file mode 100644
index 00000000..25f67563
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TableCellText.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TableCellText
+
+> **TableCellText** = [`Text`](Text.md) \| [`Link`](Link.md) \| [`RedditLink`](RedditLink.md) \| [`SpoilerText`](SpoilerText.md) \| [`Image`](Image.md) \| [`AnimatedImage`](AnimatedImage.md)
diff --git a/docs/api/public-api/type-aliases/TableContainer.md b/docs/api/public-api/type-aliases/TableContainer.md
new file mode 100644
index 00000000..3f820fb0
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TableContainer.md
@@ -0,0 +1,41 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TableContainer\
+
+> **TableContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`ListItemContext`](../interfaces/ListItemContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### table()
+
+> **table**(`cb`): `Context`
+
+Append a Table
+
+#### Parameters
+
+##### cb
+
+(`table`) => `void`
+
+scoped callback to add child elements to this Table
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/TableContentContainer.md b/docs/api/public-api/type-aliases/TableContentContainer.md
new file mode 100644
index 00000000..6199b279
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TableContentContainer.md
@@ -0,0 +1,69 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TableContentContainer\
+
+> **TableContentContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`TableContext`](../interfaces/TableContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### headerCell()
+
+> **headerCell**(`opts`, `cb`): `Context`
+
+Append a Table Cell to the Table Header
+
+#### Parameters
+
+##### opts
+
+[`TableHeaderCellOptions`](TableHeaderCellOptions.md)
+
+[TableHeaderCellOptions](TableHeaderCellOptions.md)
+
+##### cb
+
+(`cell`) => `void`
+
+scoped callback to add child elements to this Table Header Cell
+
+#### Returns
+
+`Context`
+
+***
+
+
+
+### row()
+
+> **row**(`cb`): `Context`
+
+Append a Table Row to the Table
+
+#### Parameters
+
+##### cb
+
+(`row`) => `void`
+
+scoped callback to add child elements to this Table Row
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/TableHeaderCell.md b/docs/api/public-api/type-aliases/TableHeaderCell.md
new file mode 100644
index 00000000..0cd28f75
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TableHeaderCell.md
@@ -0,0 +1,23 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TableHeaderCell
+
+> **TableHeaderCell** = `object`
+
+## Properties
+
+
+
+### a?
+
+> `optional` **a**: [`ColumnAlignment`](ColumnAlignment.md)
+
+***
+
+
+
+### c?
+
+> `optional` **c**: [`TableCellText`](TableCellText.md)[]
diff --git a/docs/api/public-api/type-aliases/TableHeaderCellContext.md b/docs/api/public-api/type-aliases/TableHeaderCellContext.md
new file mode 100644
index 00000000..a43ab181
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TableHeaderCellContext.md
@@ -0,0 +1,11 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TableHeaderCellContext
+
+> **TableHeaderCellContext** = [`TableCellContext`](../interfaces/TableCellContext.md)
+
+## Borrows
+
+TableCellContext
diff --git a/docs/api/public-api/type-aliases/TableHeaderCellOptions.md b/docs/api/public-api/type-aliases/TableHeaderCellOptions.md
new file mode 100644
index 00000000..767bf32e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TableHeaderCellOptions.md
@@ -0,0 +1,17 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TableHeaderCellOptions
+
+> **TableHeaderCellOptions** = `object`
+
+## Properties
+
+
+
+### columnAlignment?
+
+> `optional` **columnAlignment**: `"left"` \| `"right"` \| `"center"`
+
+Text alignment for the entire column
diff --git a/docs/api/public-api/type-aliases/TableHeaderRow.md b/docs/api/public-api/type-aliases/TableHeaderRow.md
new file mode 100644
index 00000000..b66c0dfe
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TableHeaderRow.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TableHeaderRow
+
+> **TableHeaderRow** = [`TableHeaderCell`](TableHeaderCell.md)[]
diff --git a/docs/api/public-api/type-aliases/TableRow.md b/docs/api/public-api/type-aliases/TableRow.md
new file mode 100644
index 00000000..85c955cc
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TableRow.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TableRow
+
+> **TableRow** = [`TableCell`](TableCell.md)[]
diff --git a/docs/api/public-api/type-aliases/Text.md b/docs/api/public-api/type-aliases/Text.md
new file mode 100644
index 00000000..3e18aecd
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Text.md
@@ -0,0 +1,31 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Text
+
+> **Text** = `object`
+
+## Properties
+
+
+
+### e
+
+> **e**: *typeof* [`TEXT_ELEMENT`](../variables/TEXT_ELEMENT.md)
+
+***
+
+
+
+### f?
+
+> `optional` **f**: [`FormatRange`](FormatRange.md)[]
+
+***
+
+
+
+### t
+
+> **t**: `string`
diff --git a/docs/api/public-api/type-aliases/TextContainer.md b/docs/api/public-api/type-aliases/TextContainer.md
new file mode 100644
index 00000000..6fbc183b
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TextContainer.md
@@ -0,0 +1,43 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TextContainer\
+
+> **TextContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Extended by
+
+- [`ParagraphContext`](../interfaces/ParagraphContext.md)
+- [`SpoilerContext`](../interfaces/SpoilerContext.md)
+- [`TableCellContext`](../interfaces/TableCellContext.md)
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### text()
+
+> **text**(`opts`): `Context`
+
+Append Text with optional formatting
+
+#### Parameters
+
+##### opts
+
+[`TextOptions`](TextOptions.md)
+
+[TextOptions](TextOptions.md)
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/TextNode.md b/docs/api/public-api/type-aliases/TextNode.md
new file mode 100644
index 00000000..0ee44ac5
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TextNode.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TextNode
+
+> **TextNode** = [`PlainText`](PlainText.md) \| [`SpoilerText`](SpoilerText.md)
diff --git a/docs/api/public-api/type-aliases/TextOptions.md b/docs/api/public-api/type-aliases/TextOptions.md
new file mode 100644
index 00000000..adf8bb9e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/TextOptions.md
@@ -0,0 +1,32 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: TextOptions
+
+> **TextOptions** = [`RawTextOptions`](RawTextOptions.md) & `object`
+
+## Type declaration
+
+### formatting?
+
+> `optional` **formatting**: [`FormatRange`](FormatRange.md)[]
+
+A list of FormatRange specifications which defines text style for an
+arbitrary substring within the text
+
+#### See
+
+ - [FormatRange](FormatRange.md)
+ - makeFormatting
+
+#### Example
+
+```ts
+// Make the exclamation mark italic:
+{ text: 'Hello!', formatting: [makeFormatting({italic: true, startIndex: 5, length: 1})] }
+```
+
+## Borrows
+
+RawTextOptions
diff --git a/docs/api/public-api/type-aliases/Toast.md b/docs/api/public-api/type-aliases/Toast.md
index d38affeb..8ef18f21 100644
--- a/docs/api/public-api/type-aliases/Toast.md
+++ b/docs/api/public-api/type-aliases/Toast.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/TriggerContext.md b/docs/api/public-api/type-aliases/TriggerContext.md
index c0d4b9db..2510c28c 100644
--- a/docs/api/public-api/type-aliases/TriggerContext.md
+++ b/docs/api/public-api/type-aliases/TriggerContext.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/TriggerDefinition.md b/docs/api/public-api/type-aliases/TriggerDefinition.md
index cf642d2c..83fcd156 100644
--- a/docs/api/public-api/type-aliases/TriggerDefinition.md
+++ b/docs/api/public-api/type-aliases/TriggerDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/TriggerEvent.md b/docs/api/public-api/type-aliases/TriggerEvent.md
index 04587128..74fd7d3d 100644
--- a/docs/api/public-api/type-aliases/TriggerEvent.md
+++ b/docs/api/public-api/type-aliases/TriggerEvent.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/TriggerEventType.md b/docs/api/public-api/type-aliases/TriggerEventType.md
index 3b64d73c..8cb4f72e 100644
--- a/docs/api/public-api/type-aliases/TriggerEventType.md
+++ b/docs/api/public-api/type-aliases/TriggerEventType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/TriggerOnEventHandler.md b/docs/api/public-api/type-aliases/TriggerOnEventHandler.md
index e32b02b3..9a5a496d 100644
--- a/docs/api/public-api/type-aliases/TriggerOnEventHandler.md
+++ b/docs/api/public-api/type-aliases/TriggerOnEventHandler.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/Trophy.md b/docs/api/public-api/type-aliases/Trophy.md
new file mode 100644
index 00000000..2d076910
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Trophy.md
@@ -0,0 +1,90 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Trophy
+
+> **Trophy** = `object`
+
+A trophy displayed on a user's profile.
+All fields are optional; the API may return null or omit any of them.
+
+## Properties
+
+
+
+### awardId
+
+> **awardId**: `T6` \| `undefined`
+
+Award ID.
+
+***
+
+
+
+### description
+
+> **description**: `string` \| `undefined`
+
+Description.
+
+***
+
+
+
+### grantedAt
+
+> **grantedAt**: `number` \| `undefined`
+
+When the trophy was granted (Unix timestamp).
+
+***
+
+
+
+### iconSmallUrl
+
+> **iconSmallUrl**: `string` \| `undefined`
+
+URL of the small icon. Currently 40x40.
+
+***
+
+
+
+### iconUrl
+
+> **iconUrl**: `string` \| `undefined`
+
+URL of the trophy icon. Currently 70x70.
+
+***
+
+
+
+### id
+
+> **id**: `T6` \| `undefined`
+
+Trophy ID.
+
+***
+
+
+
+### name
+
+> **name**: `string` \| `undefined`
+
+Display name of the trophy.
+
+***
+
+
+
+### url
+
+> **url**: `string` \| `undefined`
+
+URL to redirect to when the trophy is clicked.
diff --git a/docs/api/public-api/type-aliases/UIClient.md b/docs/api/public-api/type-aliases/UIClient.md
index 3441fc7b..6e148c8f 100644
--- a/docs/api/public-api/type-aliases/UIClient.md
+++ b/docs/api/public-api/type-aliases/UIClient.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
@@ -41,7 +41,7 @@ Navigate to a URL
###### subreddit
-`Pick`\<`Subreddit`, `"permalink"` \| `"url"`\>
+`Pick`\<[`Subreddit`](../classes/Subreddit.md), `"permalink"` \| `"url"`\>
##### Returns
@@ -55,7 +55,7 @@ Navigate to a URL
###### post
-`Pick`\<`Post`, `"permalink"` \| `"url"`\>
+`Pick`\<[`Post`](../classes/Post.md), `"permalink"` \| `"url"`\>
##### Returns
@@ -69,7 +69,7 @@ Navigate to a URL
###### comment
-`Pick`\<`Comment`, `"permalink"` \| `"url"`\>
+`Pick`\<[`Comment`](../classes/Comment.md), `"permalink"` \| `"url"`\>
##### Returns
@@ -83,7 +83,7 @@ Navigate to a URL
###### user
-`Pick`\<`User`, `"permalink"` \| `"url"`\>
+`Pick`\<[`User`](../classes/User.md), `"permalink"` \| `"url"`\>
##### Returns
diff --git a/docs/api/public-api/type-aliases/UnreadCountResponse.md b/docs/api/public-api/type-aliases/UnreadCountResponse.md
new file mode 100644
index 00000000..2d334fe0
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UnreadCountResponse.md
@@ -0,0 +1,79 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UnreadCountResponse
+
+> **UnreadCountResponse** = `object`
+
+## Properties
+
+
+
+### appeals?
+
+> `optional` **appeals**: `number`
+
+***
+
+
+
+### archived?
+
+> `optional` **archived**: `number`
+
+***
+
+
+
+### filtered?
+
+> `optional` **filtered**: `number`
+
+***
+
+
+
+### highlighted?
+
+> `optional` **highlighted**: `number`
+
+***
+
+
+
+### inprogress?
+
+> `optional` **inprogress**: `number`
+
+***
+
+
+
+### joinRequests?
+
+> `optional` **joinRequests**: `number`
+
+***
+
+
+
+### mod?
+
+> `optional` **mod**: `number`
+
+***
+
+
+
+### new?
+
+> `optional` **new**: `number`
+
+***
+
+
+
+### notifications?
+
+> `optional` **notifications**: `number`
diff --git a/docs/api/public-api/type-aliases/UpdatePageSettingsOptions.md b/docs/api/public-api/type-aliases/UpdatePageSettingsOptions.md
new file mode 100644
index 00000000..446387a3
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UpdatePageSettingsOptions.md
@@ -0,0 +1,47 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UpdatePageSettingsOptions
+
+> **UpdatePageSettingsOptions** = `object`
+
+## Properties
+
+
+
+### listed
+
+> **listed**: `boolean`
+
+Whether the page should be listed in the wiki index.
+
+***
+
+
+
+### page
+
+> **page**: `string`
+
+The name of the page to update settings for.
+
+***
+
+
+
+### permLevel
+
+> **permLevel**: [`WikiPagePermissionLevel`](../enumerations/WikiPagePermissionLevel.md)
+
+The permission level for the page.
+
+***
+
+
+
+### subredditName
+
+> **subredditName**: `string`
+
+The name of the subreddit the page is in.
diff --git a/docs/api/public-api/type-aliases/UpdateRuleOptions.md b/docs/api/public-api/type-aliases/UpdateRuleOptions.md
new file mode 100644
index 00000000..2abdc2a1
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UpdateRuleOptions.md
@@ -0,0 +1,15 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UpdateRuleOptions
+
+> **UpdateRuleOptions** = `Partial`\<`Omit`\<`UpdateSubredditRuleRequest`, `"r"` \| `"oldShortName"`\>\> & `object`
+
+New values for an existing rule. All fields are optional. If a field is not provided, the existing value will not be changed.
+
+## Type declaration
+
+### kind?
+
+> `optional` **kind**: `"all"` \| `"link"` \| `"comment"`
diff --git a/docs/api/public-api/type-aliases/UpdateWidgetData.md b/docs/api/public-api/type-aliases/UpdateWidgetData.md
new file mode 100644
index 00000000..206e2437
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UpdateWidgetData.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UpdateWidgetData
+
+> **UpdateWidgetData** = `UpdateImageWidgetRequest` & `object` \| `UpdateCalendarWidgetRequest` & `object` \| `UpdateTextAreaWidgetRequest` & `object` \| `UpdateButtonWidgetRequest` & `object` \| `UpdateCommunityListWidgetRequest` & `object` \| `UpdatePostFlairWidgetRequest` & `object` \| `UpdateCustomWidgetRequest` & `object`
diff --git a/docs/api/public-api/type-aliases/UpdateWikiPageOptions.md b/docs/api/public-api/type-aliases/UpdateWikiPageOptions.md
new file mode 100644
index 00000000..db268744
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UpdateWikiPageOptions.md
@@ -0,0 +1,47 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UpdateWikiPageOptions
+
+> **UpdateWikiPageOptions** = `object`
+
+## Properties
+
+
+
+### content
+
+> **content**: `string`
+
+The new content of the page.
+
+***
+
+
+
+### page
+
+> **page**: `string`
+
+The name of the page to update.
+
+***
+
+
+
+### reason?
+
+> `optional` **reason**: `string`
+
+The reason for updating the page.
+
+***
+
+
+
+### subredditName
+
+> **subredditName**: `string`
+
+The name of the subreddit the page is in.
diff --git a/docs/api/public-api/type-aliases/UploadMediaOptions.md b/docs/api/public-api/type-aliases/UploadMediaOptions.md
index d02ed917..7137cccf 100644
--- a/docs/api/public-api/type-aliases/UploadMediaOptions.md
+++ b/docs/api/public-api/type-aliases/UploadMediaOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/UrlString.md b/docs/api/public-api/type-aliases/UrlString.md
new file mode 100644
index 00000000..1c214a9a
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UrlString.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UrlString
+
+> **UrlString** = `string`
diff --git a/docs/api/public-api/type-aliases/UserFlair.md b/docs/api/public-api/type-aliases/UserFlair.md
new file mode 100644
index 00000000..3b2f4911
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UserFlair.md
@@ -0,0 +1,37 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UserFlair
+
+> **UserFlair** = `object`
+
+## Properties
+
+
+
+### flairCssClass?
+
+> `optional` **flairCssClass**: `string`
+
+The CSS class applied to this flair in the UI.
+
+***
+
+
+
+### flairText?
+
+> `optional` **flairText**: `string`
+
+The text displayed in the UI for this flair.
+
+***
+
+
+
+### user?
+
+> `optional` **user**: `string`
+
+The username of the user to which this flair is assigned.
diff --git a/docs/api/public-api/type-aliases/UserFlairPageOptions.md b/docs/api/public-api/type-aliases/UserFlairPageOptions.md
new file mode 100644
index 00000000..52ca277b
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UserFlairPageOptions.md
@@ -0,0 +1,37 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UserFlairPageOptions
+
+> **UserFlairPageOptions** = `object`
+
+## Properties
+
+
+
+### after?
+
+> `optional` **after**: `string`
+
+A user id optionally provided which will result in a slice of user flairs, starting after this user, to be returned.
+
+***
+
+
+
+### before?
+
+> `optional` **before**: `string`
+
+A user id optionally provided which will result in a slice of user flairs, starting before this user, to be returned.
+
+***
+
+
+
+### limit?
+
+> `optional` **limit**: `number`
+
+A limit to the number of flairs that will be returned. Default: 25, Max: 1000
diff --git a/docs/api/public-api/type-aliases/UserLink.md b/docs/api/public-api/type-aliases/UserLink.md
new file mode 100644
index 00000000..70dfd5b9
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UserLink.md
@@ -0,0 +1,31 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UserLink
+
+> **UserLink** = `object`
+
+## Properties
+
+
+
+### e
+
+> **e**: *typeof* [`USER_LINK_ELEMENT`](../variables/USER_LINK_ELEMENT.md)
+
+***
+
+
+
+### l
+
+> **l**: `boolean`
+
+***
+
+
+
+### t
+
+> **t**: `string`
diff --git a/docs/api/public-api/type-aliases/UserLinkOptions.md b/docs/api/public-api/type-aliases/UserLinkOptions.md
new file mode 100644
index 00000000..6ef79626
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UserLinkOptions.md
@@ -0,0 +1,25 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UserLinkOptions
+
+> **UserLinkOptions** = [`PrefixedRedditLinkOptions`](PrefixedRedditLinkOptions.md) & `object`
+
+## Type declaration
+
+### username
+
+> **username**: `string`
+
+Username the link should point to without "u/" prefix
+
+#### Example
+
+```ts
+{ username: 'spez', showPrefix: true }
+```
+
+## Borrows
+
+PrefixedRedditLinkOptions
diff --git a/docs/api/public-api/type-aliases/UserMention.md b/docs/api/public-api/type-aliases/UserMention.md
new file mode 100644
index 00000000..6efdafa7
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UserMention.md
@@ -0,0 +1,31 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UserMention
+
+> **UserMention** = `object`
+
+## Properties
+
+
+
+### e
+
+> **e**: *typeof* [`USER_MENTION_ELEMENT`](../variables/USER_MENTION_ELEMENT.md)
+
+***
+
+
+
+### l
+
+> **l**: `boolean`
+
+***
+
+
+
+### t
+
+> **t**: `string`
diff --git a/docs/api/public-api/type-aliases/UserMentionOptions.md b/docs/api/public-api/type-aliases/UserMentionOptions.md
new file mode 100644
index 00000000..1e51d3b4
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UserMentionOptions.md
@@ -0,0 +1,11 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UserMentionOptions
+
+> **UserMentionOptions** = [`UserLinkOptions`](UserLinkOptions.md)
+
+## Borrows
+
+UserLinkOptions
diff --git a/docs/api/public-api/type-aliases/UserNote.md b/docs/api/public-api/type-aliases/UserNote.md
new file mode 100644
index 00000000..8d51d11e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UserNote.md
@@ -0,0 +1,31 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UserNote
+
+> **UserNote** = `object`
+
+## Properties
+
+
+
+### label?
+
+> `optional` **label**: [`UserNoteLabel`](UserNoteLabel.md)
+
+***
+
+
+
+### note?
+
+> `optional` **note**: `string`
+
+***
+
+
+
+### redditId?
+
+> `optional` **redditId**: `T1` \| `T3` \| `T5`
diff --git a/docs/api/public-api/type-aliases/UserNoteLabel.md b/docs/api/public-api/type-aliases/UserNoteLabel.md
new file mode 100644
index 00000000..bd8b0d7b
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UserNoteLabel.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UserNoteLabel
+
+> **UserNoteLabel** = `"BOT_BAN"` \| `"PERMA_BAN"` \| `"BAN"` \| `"ABUSE_WARNING"` \| `"SPAM_WARNING"` \| `"SPAM_WATCH"` \| `"SOLID_CONTRIBUTOR"` \| `"HELPFUL_USER"`
diff --git a/docs/api/public-api/type-aliases/UserSocialLink.md b/docs/api/public-api/type-aliases/UserSocialLink.md
new file mode 100644
index 00000000..fbdad6d8
--- /dev/null
+++ b/docs/api/public-api/type-aliases/UserSocialLink.md
@@ -0,0 +1,67 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: UserSocialLink
+
+> **UserSocialLink** = `object`
+
+## Field
+
+id: ID of the social link.
+
+## Field
+
+handle: Display name of social media link.
+
+## Field
+
+outboundUrl: Outbound url of social media link.
+
+## Field
+
+type: Type of social media link i.e. Instagram, YouTube.
+
+## Field
+
+title: Title or name of social media link.
+
+## Properties
+
+
+
+### handle?
+
+> `optional` **handle**: `string`
+
+***
+
+
+
+### id
+
+> **id**: `string`
+
+***
+
+
+
+### outboundUrl
+
+> **outboundUrl**: `string`
+
+***
+
+
+
+### title
+
+> **title**: `string`
+
+***
+
+
+
+### type
+
+> **type**: [`SocialLinkType`](../enumerations/SocialLinkType.md)
diff --git a/docs/api/public-api/type-aliases/ValidatedBooleanField.md b/docs/api/public-api/type-aliases/ValidatedBooleanField.md
index 72a0f19c..8e501a63 100644
--- a/docs/api/public-api/type-aliases/ValidatedBooleanField.md
+++ b/docs/api/public-api/type-aliases/ValidatedBooleanField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ValidatedFormField.md b/docs/api/public-api/type-aliases/ValidatedFormField.md
index 56fd2205..e3be20df 100644
--- a/docs/api/public-api/type-aliases/ValidatedFormField.md
+++ b/docs/api/public-api/type-aliases/ValidatedFormField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ValidatedNumberField.md b/docs/api/public-api/type-aliases/ValidatedNumberField.md
index 41a7783f..c1414091 100644
--- a/docs/api/public-api/type-aliases/ValidatedNumberField.md
+++ b/docs/api/public-api/type-aliases/ValidatedNumberField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ValidatedParagraphField.md b/docs/api/public-api/type-aliases/ValidatedParagraphField.md
index d0eb2953..1f32d8b8 100644
--- a/docs/api/public-api/type-aliases/ValidatedParagraphField.md
+++ b/docs/api/public-api/type-aliases/ValidatedParagraphField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ValidatedSelectField.md b/docs/api/public-api/type-aliases/ValidatedSelectField.md
index c0b24ed6..82f81f0b 100644
--- a/docs/api/public-api/type-aliases/ValidatedSelectField.md
+++ b/docs/api/public-api/type-aliases/ValidatedSelectField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ValidatedStringField.md b/docs/api/public-api/type-aliases/ValidatedStringField.md
index 54401cbd..84db1dbe 100644
--- a/docs/api/public-api/type-aliases/ValidatedStringField.md
+++ b/docs/api/public-api/type-aliases/ValidatedStringField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/Vault.md b/docs/api/public-api/type-aliases/Vault.md
new file mode 100644
index 00000000..baa0032b
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Vault.md
@@ -0,0 +1,77 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Vault
+
+> **Vault** = `object`
+
+A type representing a Vault (crypto wallet).
+
+## Properties
+
+
+
+### address
+
+> **address**: `string`
+
+The address of the Vault.
+
+#### Example
+
+```ts
+'0x205ee28744456bDBf180A0Fa7De51e0F116d54Ed'
+```
+
+***
+
+
+
+### createdAt
+
+> **createdAt**: `string`
+
+The date the Vault was created.
+
+***
+
+
+
+### isActive
+
+> **isActive**: `boolean`
+
+Whether the Vault is active.
+
+***
+
+
+
+### provider
+
+> **provider**: `string`
+
+The provider of the Vault address.
+
+#### Example
+
+```ts
+'ethereum'
+```
+
+***
+
+
+
+### userId
+
+> **userId**: `T2`
+
+The ID (starting with t2_) of the user owning the Vault.
+
+#### Example
+
+```ts
+'t2_1w72'
+```
diff --git a/docs/api/public-api/type-aliases/Video.md b/docs/api/public-api/type-aliases/Video.md
new file mode 100644
index 00000000..316e9ec6
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Video.md
@@ -0,0 +1,65 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Video
+
+> **Video** = `object`
+
+## Properties
+
+
+
+### c?
+
+> `optional` **c**: `string`
+
+***
+
+
+
+### e
+
+> **e**: *typeof* [`VIDEO_ELEMENT`](../variables/VIDEO_ELEMENT.md)
+
+***
+
+
+
+### gifify?
+
+> `optional` **gifify**: `boolean`
+
+***
+
+
+
+### id?
+
+> `optional` **id**: [`MediaAssetId`](MediaAssetId.md)
+
+***
+
+
+
+### mediaUrl?
+
+> `optional` **mediaUrl**: `string`
+
+URL of the media when building; backend may replace with id in processed JSON
+
+***
+
+
+
+### o?
+
+> `optional` **o**: [`ObfuscationReason`](ObfuscationReason.md)
+
+***
+
+
+
+### p?
+
+> `optional` **p**: [`Image`](Image.md)
diff --git a/docs/api/public-api/type-aliases/VideoContainer.md b/docs/api/public-api/type-aliases/VideoContainer.md
new file mode 100644
index 00000000..d6e10ae2
--- /dev/null
+++ b/docs/api/public-api/type-aliases/VideoContainer.md
@@ -0,0 +1,37 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: VideoContainer\
+
+> **VideoContainer**\<`Context`\> = `object`
+
+## Mixin
+
+## Type Parameters
+
+### Context
+
+`Context`
+
+## Methods
+
+
+
+### video()
+
+> **video**(`opts`): `Context`
+
+Append a Video
+
+#### Parameters
+
+##### opts
+
+[`VideoOptions`](VideoOptions.md)
+
+[VideoOptions](VideoOptions.md)
+
+#### Returns
+
+`Context`
diff --git a/docs/api/public-api/type-aliases/VideoOptions.md b/docs/api/public-api/type-aliases/VideoOptions.md
new file mode 100644
index 00000000..d6af6346
--- /dev/null
+++ b/docs/api/public-api/type-aliases/VideoOptions.md
@@ -0,0 +1,30 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: VideoOptions
+
+> **VideoOptions** = [`MediaOptions`](MediaOptions.md) & `object`
+
+## Type declaration
+
+### convertToGif?
+
+> `optional` **convertToGif**: `boolean`
+
+Whether the video should be converted to a looping GIF
+
+### thumbnail?
+
+> `optional` **thumbnail**: [`Image`](Image.md)
+
+An [Image](Image.md) element to use as the thumbnail before the video has loaded
+
+#### See
+
+ - [Image](Image.md)
+ -
+
+## Borrows
+
+MediaOptions
diff --git a/docs/api/public-api/type-aliases/Visibility.md b/docs/api/public-api/type-aliases/Visibility.md
new file mode 100644
index 00000000..b4db3150
--- /dev/null
+++ b/docs/api/public-api/type-aliases/Visibility.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: Visibility
+
+> **Visibility** = `"show"` \| `"hide"`
diff --git a/docs/api/public-api/type-aliases/WikiEditMode.md b/docs/api/public-api/type-aliases/WikiEditMode.md
new file mode 100644
index 00000000..2441d5ca
--- /dev/null
+++ b/docs/api/public-api/type-aliases/WikiEditMode.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: WikiEditMode
+
+> **WikiEditMode** = `"disabled"` \| `"modonly"` \| `"anyone"`
diff --git a/docs/api/public-api/type-aliases/WikiPageRevisionId.md b/docs/api/public-api/type-aliases/WikiPageRevisionId.md
new file mode 100644
index 00000000..4b8958ce
--- /dev/null
+++ b/docs/api/public-api/type-aliases/WikiPageRevisionId.md
@@ -0,0 +1,9 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: WikiPageRevisionId
+
+> **WikiPageRevisionId** = `` `${string}-${string}-${string}-${string}-${string}` ``
+
+The revision ID is a v4 UUID
diff --git a/docs/api/public-api/type-aliases/WithUserData.md b/docs/api/public-api/type-aliases/WithUserData.md
new file mode 100644
index 00000000..75c5902e
--- /dev/null
+++ b/docs/api/public-api/type-aliases/WithUserData.md
@@ -0,0 +1,15 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Type Alias: WithUserData
+
+> **WithUserData** = `object`
+
+## Properties
+
+
+
+### user?
+
+> `optional` **user**: [`ConversationUserData`](ConversationUserData.md)
diff --git a/docs/api/public-api/type-aliases/ZMember.md b/docs/api/public-api/type-aliases/ZMember.md
index 2c9d7f2b..77765317 100644
--- a/docs/api/public-api/type-aliases/ZMember.md
+++ b/docs/api/public-api/type-aliases/ZMember.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ZRangeByScoreOptions.md b/docs/api/public-api/type-aliases/ZRangeByScoreOptions.md
index 71dfbb19..8ac601a6 100644
--- a/docs/api/public-api/type-aliases/ZRangeByScoreOptions.md
+++ b/docs/api/public-api/type-aliases/ZRangeByScoreOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/type-aliases/ZRangeOptions.md b/docs/api/public-api/type-aliases/ZRangeOptions.md
index ff50441f..9005e960 100644
--- a/docs/api/public-api/type-aliases/ZRangeOptions.md
+++ b/docs/api/public-api/type-aliases/ZRangeOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/public-api v0.13.12-dev**](../README.md)
***
diff --git a/docs/api/public-api/variables/ANIMATED_IMAGE_ELEMENT.md b/docs/api/public-api/variables/ANIMATED_IMAGE_ELEMENT.md
new file mode 100644
index 00000000..1597e961
--- /dev/null
+++ b/docs/api/public-api/variables/ANIMATED_IMAGE_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: ANIMATED\_IMAGE\_ELEMENT
+
+> `const` **ANIMATED\_IMAGE\_ELEMENT**: `"gif"` = `"gif"`
diff --git a/docs/api/public-api/variables/BLOCK_QUOTE_ELEMENT.md b/docs/api/public-api/variables/BLOCK_QUOTE_ELEMENT.md
new file mode 100644
index 00000000..e76f2c2d
--- /dev/null
+++ b/docs/api/public-api/variables/BLOCK_QUOTE_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: BLOCK\_QUOTE\_ELEMENT
+
+> `const` **BLOCK\_QUOTE\_ELEMENT**: `"blockquote"` = `"blockquote"`
diff --git a/docs/api/public-api/variables/CODE_BLOCK_ELEMENT.md b/docs/api/public-api/variables/CODE_BLOCK_ELEMENT.md
new file mode 100644
index 00000000..792405d3
--- /dev/null
+++ b/docs/api/public-api/variables/CODE_BLOCK_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: CODE\_BLOCK\_ELEMENT
+
+> `const` **CODE\_BLOCK\_ELEMENT**: `"code"` = `"code"`
diff --git a/docs/api/public-api/variables/COLUMN_ALIGN_CENTER.md b/docs/api/public-api/variables/COLUMN_ALIGN_CENTER.md
new file mode 100644
index 00000000..6ad2f62c
--- /dev/null
+++ b/docs/api/public-api/variables/COLUMN_ALIGN_CENTER.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: COLUMN\_ALIGN\_CENTER
+
+> `const` **COLUMN\_ALIGN\_CENTER**: `"C"` = `"C"`
diff --git a/docs/api/public-api/variables/COLUMN_ALIGN_LEFT.md b/docs/api/public-api/variables/COLUMN_ALIGN_LEFT.md
new file mode 100644
index 00000000..0bf830f0
--- /dev/null
+++ b/docs/api/public-api/variables/COLUMN_ALIGN_LEFT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: COLUMN\_ALIGN\_LEFT
+
+> `const` **COLUMN\_ALIGN\_LEFT**: `"L"` = `"L"`
diff --git a/docs/api/public-api/variables/COLUMN_ALIGN_RIGHT.md b/docs/api/public-api/variables/COLUMN_ALIGN_RIGHT.md
new file mode 100644
index 00000000..f7d5532c
--- /dev/null
+++ b/docs/api/public-api/variables/COLUMN_ALIGN_RIGHT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: COLUMN\_ALIGN\_RIGHT
+
+> `const` **COLUMN\_ALIGN\_RIGHT**: `"R"` = `"R"`
diff --git a/docs/api/public-api/variables/COMMENT_LINK_ELEMENT.md b/docs/api/public-api/variables/COMMENT_LINK_ELEMENT.md
new file mode 100644
index 00000000..8bc0fce9
--- /dev/null
+++ b/docs/api/public-api/variables/COMMENT_LINK_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: COMMENT\_LINK\_ELEMENT
+
+> `const` **COMMENT\_LINK\_ELEMENT**: `"c/"` = `"c/"`
diff --git a/docs/api/public-api/variables/EMBED_ELEMENT.md b/docs/api/public-api/variables/EMBED_ELEMENT.md
new file mode 100644
index 00000000..e3a7c947
--- /dev/null
+++ b/docs/api/public-api/variables/EMBED_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: EMBED\_ELEMENT
+
+> `const` **EMBED\_ELEMENT**: `"embed"` = `"embed"`
diff --git a/docs/api/public-api/variables/GalleryMediaStatus.md b/docs/api/public-api/variables/GalleryMediaStatus.md
new file mode 100644
index 00000000..6e604f99
--- /dev/null
+++ b/docs/api/public-api/variables/GalleryMediaStatus.md
@@ -0,0 +1,27 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: GalleryMediaStatus
+
+> `const` **GalleryMediaStatus**: `object`
+
+## Type declaration
+
+
+
+### FAILED
+
+> `readonly` **FAILED**: `2`
+
+
+
+### UNKNOWN
+
+> `readonly` **UNKNOWN**: `0`
+
+
+
+### VALID
+
+> `readonly` **VALID**: `1`
diff --git a/docs/api/public-api/variables/HEADING_ELEMENT.md b/docs/api/public-api/variables/HEADING_ELEMENT.md
new file mode 100644
index 00000000..37a289bc
--- /dev/null
+++ b/docs/api/public-api/variables/HEADING_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: HEADING\_ELEMENT
+
+> `const` **HEADING\_ELEMENT**: `"h"` = `"h"`
diff --git a/docs/api/public-api/variables/HORIZONTAL_RULE_ELEMENT.md b/docs/api/public-api/variables/HORIZONTAL_RULE_ELEMENT.md
new file mode 100644
index 00000000..05d9c397
--- /dev/null
+++ b/docs/api/public-api/variables/HORIZONTAL_RULE_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: HORIZONTAL\_RULE\_ELEMENT
+
+> `const` **HORIZONTAL\_RULE\_ELEMENT**: `"hr"` = `"hr"`
diff --git a/docs/api/public-api/variables/IMAGE_ELEMENT.md b/docs/api/public-api/variables/IMAGE_ELEMENT.md
new file mode 100644
index 00000000..7e22603a
--- /dev/null
+++ b/docs/api/public-api/variables/IMAGE_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: IMAGE\_ELEMENT
+
+> `const` **IMAGE\_ELEMENT**: `"img"` = `"img"`
diff --git a/docs/api/public-api/variables/LINEBREAK_ELEMENT.md b/docs/api/public-api/variables/LINEBREAK_ELEMENT.md
new file mode 100644
index 00000000..a439d1c5
--- /dev/null
+++ b/docs/api/public-api/variables/LINEBREAK_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: LINEBREAK\_ELEMENT
+
+> `const` **LINEBREAK\_ELEMENT**: `"br"` = `"br"`
diff --git a/docs/api/public-api/variables/LINK_ELEMENT.md b/docs/api/public-api/variables/LINK_ELEMENT.md
new file mode 100644
index 00000000..0eae04db
--- /dev/null
+++ b/docs/api/public-api/variables/LINK_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: LINK\_ELEMENT
+
+> `const` **LINK\_ELEMENT**: `"link"` = `"link"`
diff --git a/docs/api/public-api/variables/LIST_ELEMENT.md b/docs/api/public-api/variables/LIST_ELEMENT.md
new file mode 100644
index 00000000..dc26246c
--- /dev/null
+++ b/docs/api/public-api/variables/LIST_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: LIST\_ELEMENT
+
+> `const` **LIST\_ELEMENT**: `"list"` = `"list"`
diff --git a/docs/api/public-api/variables/LIST_ITEM_ELEMENT.md b/docs/api/public-api/variables/LIST_ITEM_ELEMENT.md
new file mode 100644
index 00000000..627cdad4
--- /dev/null
+++ b/docs/api/public-api/variables/LIST_ITEM_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: LIST\_ITEM\_ELEMENT
+
+> `const` **LIST\_ITEM\_ELEMENT**: `"li"` = `"li"`
diff --git a/docs/api/public-api/variables/PARAGRAPH_ELEMENT.md b/docs/api/public-api/variables/PARAGRAPH_ELEMENT.md
new file mode 100644
index 00000000..21041f2c
--- /dev/null
+++ b/docs/api/public-api/variables/PARAGRAPH_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: PARAGRAPH\_ELEMENT
+
+> `const` **PARAGRAPH\_ELEMENT**: `"par"` = `"par"`
diff --git a/docs/api/public-api/variables/POST_LINK_ELEMENT.md b/docs/api/public-api/variables/POST_LINK_ELEMENT.md
new file mode 100644
index 00000000..43bb3136
--- /dev/null
+++ b/docs/api/public-api/variables/POST_LINK_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: POST\_LINK\_ELEMENT
+
+> `const` **POST\_LINK\_ELEMENT**: `"p/"` = `"p/"`
diff --git a/docs/api/public-api/variables/RAW_TEXT_ELEMENT.md b/docs/api/public-api/variables/RAW_TEXT_ELEMENT.md
new file mode 100644
index 00000000..ad64fc0a
--- /dev/null
+++ b/docs/api/public-api/variables/RAW_TEXT_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: RAW\_TEXT\_ELEMENT
+
+> `const` **RAW\_TEXT\_ELEMENT**: `"raw"` = `"raw"`
diff --git a/docs/api/public-api/variables/SPOILER_TEXT_ELEMENT.md b/docs/api/public-api/variables/SPOILER_TEXT_ELEMENT.md
new file mode 100644
index 00000000..0acf6706
--- /dev/null
+++ b/docs/api/public-api/variables/SPOILER_TEXT_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: SPOILER\_TEXT\_ELEMENT
+
+> `const` **SPOILER\_TEXT\_ELEMENT**: `"spoilertext"` = `"spoilertext"`
diff --git a/docs/api/public-api/variables/SUBREDDIT_LINK_ELEMENT.md b/docs/api/public-api/variables/SUBREDDIT_LINK_ELEMENT.md
new file mode 100644
index 00000000..9c1fcf53
--- /dev/null
+++ b/docs/api/public-api/variables/SUBREDDIT_LINK_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: SUBREDDIT\_LINK\_ELEMENT
+
+> `const` **SUBREDDIT\_LINK\_ELEMENT**: `"r/"` = `"r/"`
diff --git a/docs/api/public-api/variables/TABLE_ELEMENT.md b/docs/api/public-api/variables/TABLE_ELEMENT.md
new file mode 100644
index 00000000..6ff3968b
--- /dev/null
+++ b/docs/api/public-api/variables/TABLE_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: TABLE\_ELEMENT
+
+> `const` **TABLE\_ELEMENT**: `"table"` = `"table"`
diff --git a/docs/api/public-api/variables/TEXT_ELEMENT.md b/docs/api/public-api/variables/TEXT_ELEMENT.md
new file mode 100644
index 00000000..3ef446b8
--- /dev/null
+++ b/docs/api/public-api/variables/TEXT_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: TEXT\_ELEMENT
+
+> `const` **TEXT\_ELEMENT**: `"text"` = `"text"`
diff --git a/docs/api/public-api/variables/USER_LINK_ELEMENT.md b/docs/api/public-api/variables/USER_LINK_ELEMENT.md
new file mode 100644
index 00000000..74b923c5
--- /dev/null
+++ b/docs/api/public-api/variables/USER_LINK_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: USER\_LINK\_ELEMENT
+
+> `const` **USER\_LINK\_ELEMENT**: `"u/"` = `"u/"`
diff --git a/docs/api/public-api/variables/USER_MENTION_ELEMENT.md b/docs/api/public-api/variables/USER_MENTION_ELEMENT.md
new file mode 100644
index 00000000..db8cdfd6
--- /dev/null
+++ b/docs/api/public-api/variables/USER_MENTION_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: USER\_MENTION\_ELEMENT
+
+> `const` **USER\_MENTION\_ELEMENT**: `"@"` = `"@"`
diff --git a/docs/api/public-api/variables/VIDEO_ELEMENT.md b/docs/api/public-api/variables/VIDEO_ELEMENT.md
new file mode 100644
index 00000000..155dfaa3
--- /dev/null
+++ b/docs/api/public-api/variables/VIDEO_ELEMENT.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: VIDEO\_ELEMENT
+
+> `const` **VIDEO\_ELEMENT**: `"video"` = `"video"`
diff --git a/docs/api/public-api/variables/reddit.md b/docs/api/public-api/variables/reddit.md
new file mode 100644
index 00000000..1c93f8e0
--- /dev/null
+++ b/docs/api/public-api/variables/reddit.md
@@ -0,0 +1,7 @@
+[**@devvit/public-api v0.13.12-dev**](../README.md)
+
+***
+
+# Variable: reddit
+
+> `const` **reddit**: [`RedditClient`](../classes/RedditClient.md)
diff --git a/docs/api/redditapi/README.md b/docs/api/redditapi/README.md
index 7f9930c8..0bb6e990 100644
--- a/docs/api/redditapi/README.md
+++ b/docs/api/redditapi/README.md
@@ -1,10 +1,10 @@
-**@devvit/public-api v0.13.11-dev**
+**@devvit/reddit v0.13.12-dev**
***
-# @devvit/public-api v0.13.11-dev
+# @devvit/reddit v0.13.12-dev
## Modules
- [models](models/README.md)
-- [RedditAPIClient](RedditAPIClient/README.md)
+- [RedditClient](RedditClient/README.md)
diff --git a/docs/api/redditapi/RedditAPIClient/README.md b/docs/api/redditapi/RedditAPIClient/README.md
deleted file mode 100644
index 72ff3725..00000000
--- a/docs/api/redditapi/RedditAPIClient/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
-
-***
-
-# RedditAPIClient
-
-## Classes
-
-- [RedditAPIClient](classes/RedditAPIClient.md)
-
-## Type Aliases
-
-- [InviteModeratorOptions](type-aliases/InviteModeratorOptions.md)
-- [MuteUserOptions](type-aliases/MuteUserOptions.md)
diff --git a/docs/api/redditapi/RedditClient/README.md b/docs/api/redditapi/RedditClient/README.md
new file mode 100644
index 00000000..dfae2344
--- /dev/null
+++ b/docs/api/redditapi/RedditClient/README.md
@@ -0,0 +1,15 @@
+[**@devvit/reddit v0.13.12-dev**](../README.md)
+
+***
+
+# RedditClient
+
+## Classes
+
+- [RedditClient](classes/RedditClient.md)
+
+## Type Aliases
+
+- [CustomPostStyles](type-aliases/CustomPostStyles.md)
+- [InviteModeratorOptions](type-aliases/InviteModeratorOptions.md)
+- [MuteUserOptions](type-aliases/MuteUserOptions.md)
diff --git a/docs/api/redditapi/RedditAPIClient/classes/RedditAPIClient.md b/docs/api/redditapi/RedditClient/classes/RedditClient.md
similarity index 86%
rename from docs/api/redditapi/RedditAPIClient/classes/RedditAPIClient.md
rename to docs/api/redditapi/RedditClient/classes/RedditClient.md
index a39b0620..d8cf9046 100644
--- a/docs/api/redditapi/RedditAPIClient/classes/RedditAPIClient.md
+++ b/docs/api/redditapi/RedditClient/classes/RedditClient.md
@@ -1,8 +1,8 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
-# Class: RedditAPIClient
+# Class: RedditClient
The Reddit API Client
@@ -33,19 +33,13 @@ async (event, context) => {
-### new RedditAPIClient()
+### new RedditClient()
-> **new RedditAPIClient**(`metadata`): `RedditAPIClient`
-
-#### Parameters
-
-##### metadata
-
-`Metadata`
+> **new RedditClient**(): `RedditClient`
#### Returns
-`RedditAPIClient`
+`RedditClient`
## Accessors
@@ -166,7 +160,7 @@ Add a removal reason to a subreddit.
`string`
-Name of the subreddit (e.g. `askReddit` or `r/askReddit`).
+Name of the subreddit (the 'r/' prefix is optional).
##### options
@@ -269,10 +263,10 @@ Approve a post or comment.
##### id
-`string`
-
The id of the post (t3_) or comment (t1_) to approve.
+`` `t1_${string}` `` | `` `t3_${string}` ``
+
#### Returns
`Promise`\<`void`\>
@@ -408,6 +402,42 @@ The name of the subreddit to add the rule to.
***
+
+
+### createShareUrl()
+
+> **createShareUrl**(`url`): `Promise`\<`string`\>
+
+Create a short share URL for a Reddit location.
+
+Valid inputs:
+- Absolute Reddit URLs without a query string (e.g., https://reddit.com/r/gamesonreddit)
+- URLs with a query string limited to: utm_source, utm_medium, devvitshare
+
+#### Parameters
+
+##### url
+
+`string`
+
+Full Reddit URL to shorten. Must be absolute and either have no query string or only the allowed query params.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+The shortened share URL (e.g., 'https://reddit.com/s/abc123').
+
+#### Note
+
+old.reddit.com URLs can be shortened but they will redirect to reddit.com.
+
+#### Throws
+
+If the input URL is invalid, contains unsupported query parameters, or the share URL cannot be created.
+
+***
+
### createUserFlairTemplate()
@@ -460,15 +490,15 @@ Options for the request
### crosspost()
-> **crosspost**(`options`): `Promise`\<[`Post`](../../models/classes/Post.md)\>
+> **crosspost**(`opts`): `Promise`\<[`Post`](../../models/classes/Post.md)\>
Crossposts a post to a subreddit.
#### Parameters
-##### options
+##### opts
-[`CrosspostOptions`](../../models/type-aliases/CrosspostOptions.md)
+`Readonly`\<[`SubredditOptions`](../../models/type-aliases/SubredditOptions.md) & [`CommonSubmitPostOptions`](../../models/type-aliases/CommonSubmitPostOptions.md) & `Required`\<[`SubredditOptions`](../../models/type-aliases/SubredditOptions.md)\> & `object`\>
Options for crossposting a post
@@ -478,6 +508,11 @@ Options for crossposting a post
- A Promise that resolves to a Post object.
+#### See
+
+ - [()\|submitPost()](#submitpost)
+ - [()\|submitCustomPost()](#submitcustompost)
+
***
@@ -546,7 +581,7 @@ Delete a removal reason from a subreddit.
`string`
-Name of the subreddit (e.g. `askReddit` or `r/askReddit`).
+Name of the subreddit (the 'r/' prefix is optional).
##### reasonId
@@ -558,6 +593,12 @@ ID of the removal reason (from get or add).
`Promise`\<`void`\>
+#### Example
+
+```ts
+await reddit.deleteSubredditRemovalReason('askReddit', 'uuid-abc');
+```
+
***
@@ -666,7 +707,7 @@ Options for the request
[`Listing`](../../models/classes/Listing.md)\<[`SubredditContributorUser`](../../models/classes/SubredditContributorUser.md)\>
-A Listing of User objects.
+A Listing of SubredditContributorUser objects.
***
@@ -674,13 +715,13 @@ A Listing of User objects.
### getAppUser()
-> **getAppUser**(): `Promise`\<[`User`](../../models/classes/User.md)\>
+> **getAppUser**(): `Promise`\<`undefined` \| [`User`](../../models/classes/User.md)\>
Get the user that the app runs as on the provided metadata.
#### Returns
-`Promise`\<[`User`](../../models/classes/User.md)\>
+`Promise`\<`undefined` \| [`User`](../../models/classes/User.md)\>
A Promise that resolves to a User object.
@@ -712,7 +753,7 @@ Options for the request
[`Listing`](../../models/classes/Listing.md)\<[`SubredditBannedUser`](../../models/classes/SubredditBannedUser.md)\>
-A Listing of User objects.
+A Listing of SubredditBannedUser objects.
***
@@ -736,7 +777,7 @@ Options for the request
[`Listing`](../../models/classes/Listing.md)\<[`SubredditWikiBannedUser`](../../models/classes/SubredditWikiBannedUser.md)\>
-A Listing of User objects.
+A Listing of SubredditWikiBannedUser objects.
***
@@ -787,7 +828,7 @@ Get a [Comment](../../models/classes/Comment.md) object by ID
##### id
-`string`
+`` `t1_${string}` ``
The ID (starting with t1_) of the comment to retrieve. e.g. t1_1qjpg
@@ -843,7 +884,7 @@ const comments = await reddit.getComments({
### getCommentsAndPostsByUser()
-> **getCommentsAndPostsByUser**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Post`](../../models/classes/Post.md) \| [`Comment`](../../models/classes/Comment.md)\>
+> **getCommentsAndPostsByUser**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Comment`](../../models/classes/Comment.md) \| [`Post`](../../models/classes/Post.md)\>
Get a list of posts and comments from a specific user.
@@ -857,7 +898,7 @@ Options for the request
#### Returns
-[`Listing`](../../models/classes/Listing.md)\<[`Post`](../../models/classes/Post.md) \| [`Comment`](../../models/classes/Comment.md)\>
+[`Listing`](../../models/classes/Listing.md)\<[`Comment`](../../models/classes/Comment.md) \| [`Post`](../../models/classes/Post.md)\>
A Listing of `Post` and `Comment` objects.
@@ -944,28 +985,6 @@ const currentSubreddit = await reddit.getCurrentSubreddit();
***
-
-
-### getCurrentSubredditName()
-
-> **getCurrentSubredditName**(): `Promise`\<`string`\>
-
-Retrieves the name of the current subreddit.
-
-#### Returns
-
-`Promise`\<`string`\>
-
-A Promise that resolves a string representing the current subreddit's name.
-
-#### Example
-
-```ts
-const currentSubredditName = await reddit.getCurrentSubredditName();
-```
-
-***
-
### getCurrentUser()
@@ -1104,7 +1123,7 @@ console.log("Posts: ", await listing.all())
#### Call Signature
-> **getEdited**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Post`](../../models/classes/Post.md) \| [`Comment`](../../models/classes/Comment.md)\>
+> **getEdited**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Comment`](../../models/classes/Comment.md) \| [`Post`](../../models/classes/Post.md)\>
Return a listing of things that have been edited recently.
@@ -1116,7 +1135,7 @@ Return a listing of things that have been edited recently.
##### Returns
-[`Listing`](../../models/classes/Listing.md)\<[`Post`](../../models/classes/Post.md) \| [`Comment`](../../models/classes/Comment.md)\>
+[`Listing`](../../models/classes/Listing.md)\<[`Comment`](../../models/classes/Comment.md) \| [`Post`](../../models/classes/Post.md)\>
##### Example
@@ -1243,7 +1262,7 @@ Options for the request
[`Listing`](../../models/classes/Listing.md)\<[`SubredditModeratorUser`](../../models/classes/SubredditModeratorUser.md)\>
-A Listing of User objects.
+A Listing of SubredditModeratorUser objects.
***
@@ -1329,7 +1348,7 @@ console.log("Posts: ", await listing.all())
#### Call Signature
-> **getModQueue**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Post`](../../models/classes/Post.md) \| [`Comment`](../../models/classes/Comment.md)\>
+> **getModQueue**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Comment`](../../models/classes/Comment.md) \| [`Post`](../../models/classes/Post.md)\>
Return a listing of things requiring moderator review, such as reported things and items.
@@ -1341,7 +1360,7 @@ Return a listing of things requiring moderator review, such as reported things a
##### Returns
-[`Listing`](../../models/classes/Listing.md)\<[`Post`](../../models/classes/Post.md) \| [`Comment`](../../models/classes/Comment.md)\>
+[`Listing`](../../models/classes/Listing.md)\<[`Comment`](../../models/classes/Comment.md) \| [`Post`](../../models/classes/Post.md)\>
##### Example
@@ -1375,7 +1394,7 @@ Options for the request
[`Listing`](../../models/classes/Listing.md)\<[`SubredditMutedUser`](../../models/classes/SubredditMutedUser.md)\>
-A listing of User objects.
+A listing of SubredditMutedUser objects.
***
@@ -1425,7 +1444,7 @@ Gets a [Post](../../models/classes/Post.md) object by ID
##### id
-`string`
+`` `t3_${string}` ``
#### Returns
@@ -1435,6 +1454,26 @@ A Promise that resolves to a Post object.
***
+
+
+### getPostData()
+
+> **getPostData**(`id`): `Promise`\<`undefined` \| `JsonObject`\>
+
+Returns PostData, if any, for the post specified by ID.
+
+#### Parameters
+
+##### id
+
+`` `t3_${string}` ``
+
+#### Returns
+
+`Promise`\<`undefined` \| `JsonObject`\>
+
+***
+
### getPostFlairTemplates()
@@ -1483,6 +1522,30 @@ A Listing of Post objects.
***
+
+
+### getPostStyles()
+
+> **getPostStyles**(`id`): `Promise`\<`StrictRequired`\<`CustomPostStylesInput`\>\>
+
+**`Experimental`**
+
+Get the custom styles for a custom post.
+
+#### Parameters
+
+##### id
+
+`` `t3_${string}` ``
+
+The ID of the post to get styles for.
+
+#### Returns
+
+`Promise`\<`StrictRequired`\<`CustomPostStylesInput`\>\>
+
+***
+
### getReports()
@@ -1541,7 +1604,7 @@ console.log("Posts: ", await listing.all())
#### Call Signature
-> **getReports**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Post`](../../models/classes/Post.md) \| [`Comment`](../../models/classes/Comment.md)\>
+> **getReports**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Comment`](../../models/classes/Comment.md) \| [`Post`](../../models/classes/Post.md)\>
Return a listing of things that have been reported.
@@ -1553,7 +1616,7 @@ Return a listing of things that have been reported.
##### Returns
-[`Listing`](../../models/classes/Listing.md)\<[`Post`](../../models/classes/Post.md) \| [`Comment`](../../models/classes/Comment.md)\>
+[`Listing`](../../models/classes/Listing.md)\<[`Comment`](../../models/classes/Comment.md) \| [`Post`](../../models/classes/Post.md)\>
##### Example
@@ -1708,7 +1771,7 @@ console.log("Posts: ", await listing.all())
#### Call Signature
-> **getSpam**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Post`](../../models/classes/Post.md) \| [`Comment`](../../models/classes/Comment.md)\>
+> **getSpam**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Comment`](../../models/classes/Comment.md) \| [`Post`](../../models/classes/Post.md)\>
Return a listing of things that have been marked as spam or otherwise removed.
@@ -1720,7 +1783,7 @@ Return a listing of things that have been marked as spam or otherwise removed.
##### Returns
-[`Listing`](../../models/classes/Listing.md)\<[`Post`](../../models/classes/Post.md) \| [`Comment`](../../models/classes/Comment.md)\>
+[`Listing`](../../models/classes/Listing.md)\<[`Comment`](../../models/classes/Comment.md) \| [`Post`](../../models/classes/Post.md)\>
##### Example
@@ -1746,7 +1809,7 @@ Gets a [Subreddit](../../models/classes/Subreddit.md) object by ID
##### id
-`string`
+`` `t5_${string}` ``
The ID (starting with t5_) of the subreddit to retrieve. e.g. t5_2qjpg
@@ -1814,7 +1877,7 @@ Gets a [SubredditInfo](../../models/type-aliases/SubredditInfo.md) object by ID
##### id
-`string`
+`` `t5_${string}` ``
The ID (starting with t5_) of the subreddit to retrieve. e.g. t5_2qjpg
@@ -1874,7 +1937,7 @@ Returns a leaderboard for a given subreddit ID.
##### subredditId
-`string`
+`` `t5_${string}` ``
ID of the subreddit for which the leaderboard is being queried.
@@ -1900,23 +1963,21 @@ Get the list of subreddit's removal reasons (ordered).
`string`
-Name of the subreddit (e.g. `askReddit` or `r/askReddit`).
+Name of the subreddit (the 'r/' prefix is optional).
#### Returns
`Promise`\<[`RemovalReason`](../../models/type-aliases/RemovalReason.md)[]\>
-Ordered array of plain removal reason objects.
+Ordered array of Removal Reasons
#### Example
```ts
const reasons = await reddit.getSubredditRemovalReasons('askReddit');
-const sub = await reddit.getSubredditByName('askReddit');
-for (const reason of reasons) {
- console.log(reason.id, reason.message, reason.title);
- await sub.updateRemovalReason(reason.id, { title: 'Spam', message: 'Updated.' });
- await sub.deleteRemovalReason(reason.id);
+
+for (let reason of reasons) {
+ console.log(reason.id, reason.message, reason.title)
}
```
@@ -1934,7 +1995,7 @@ Returns the styles for a given subreddit ID.
##### subredditId
-`string`
+`` `t5_${string}` ``
ID of the subreddit from which to retrieve the styles.
@@ -1946,6 +2007,28 @@ Styles for the given subreddit.
***
+
+
+### getSubscribedSubredditsForCurrentUser()
+
+> **getSubscribedSubredditsForCurrentUser**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Subreddit`](../../models/classes/Subreddit.md)\>
+
+Returns a listing of subreddits that the current user is subscribed to.
+This method will execute as the app account by default.
+To execute this on behalf of a user, please contact Reddit.
+
+#### Parameters
+
+##### options
+
+[`GetSubscribedSubredditsForCurrentUserOptions`](../../models/type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md)
+
+#### Returns
+
+[`Listing`](../../models/classes/Listing.md)\<[`Subreddit`](../../models/classes/Subreddit.md)\>
+
+***
+
### getTopPosts()
@@ -2039,7 +2122,7 @@ console.log("Posts: ", await listing.all())
#### Call Signature
-> **getUnmoderated**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Post`](../../models/classes/Post.md) \| [`Comment`](../../models/classes/Comment.md)\>
+> **getUnmoderated**(`options`): [`Listing`](../../models/classes/Listing.md)\<[`Comment`](../../models/classes/Comment.md) \| [`Post`](../../models/classes/Post.md)\>
Return a listing of things that have yet to be approved/removed by a mod.
@@ -2051,7 +2134,7 @@ Return a listing of things that have yet to be approved/removed by a mod.
##### Returns
-[`Listing`](../../models/classes/Listing.md)\<[`Post`](../../models/classes/Post.md) \| [`Comment`](../../models/classes/Comment.md)\>
+[`Listing`](../../models/classes/Listing.md)\<[`Comment`](../../models/classes/Comment.md) \| [`Post`](../../models/classes/Post.md)\>
##### Example
@@ -2077,7 +2160,7 @@ Gets a [User](../../models/classes/User.md) object by ID
##### id
-`string`
+`` `t2_${string}` ``
The ID (starting with t2_) of the user to retrieve. e.g. t2_1qjpg
@@ -2219,7 +2302,7 @@ Gets a [Vault](../../models/type-aliases/Vault.md) for the specified user.
##### userId
-`string`
+`` `t2_${string}` ``
The ID (starting with t2_) of the Vault owner.
@@ -2279,7 +2362,7 @@ Options for the request
[`Listing`](../../models/classes/Listing.md)\<[`SubredditWikiContributorUser`](../../models/classes/SubredditWikiContributorUser.md)\>
-A Listing of User objects.
+A Listing of SubredditWikiContributorUser objects.
***
@@ -2434,6 +2517,47 @@ Mark all private messages as read.
***
+
+
+### mergePostData()
+
+> **mergePostData**(`postId`, `postData`): `Promise`\<`void`\>
+
+Merge the postData on a custom post with the postData specified in the input. This performs a shallow merge.
+
+#### Parameters
+
+##### postId
+
+`` `t3_${string}` ``
+
+##### postData
+
+`JsonObject`
+
+Represents the postData to be merged with the existing postData.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the postData could not be merged.
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+
+// Existing postData: { currentScore: 55, settings: { theme: 'dark', fontSize: 12 } }
+
+await post.mergePostData({ settings: { fontSize: 14 } });
+// Result: { currentScore: 55, settings: { fontSize: 14 } }
+```
+
+***
+
### muteUser()
@@ -2468,10 +2592,10 @@ Remove a post or comment.
##### id
-`string`
-
The id of the post (t3_) or comment (t1_) to remove.
+`` `t1_${string}` `` | `` `t3_${string}` ``
+
##### isSpam
`boolean`
@@ -2571,7 +2695,7 @@ The name of the subreddit to remove the flair from.
##### postId
-`string`
+`` `t3_${string}` ``
The ID of the post to remove the flair from.
@@ -2737,7 +2861,7 @@ The report is sent to the moderators of the subreddit for review.
Post or Comment
-[`Post`](../../models/classes/Post.md) | [`Comment`](../../models/classes/Comment.md)
+[`Comment`](../../models/classes/Comment.md) | [`Post`](../../models/classes/Post.md)
##### options
@@ -2911,6 +3035,52 @@ The permissions to give the user. e.g ['posts', 'wiki']
***
+
+
+### setPostData()
+
+> **setPostData**(`postId`, `postData`): `Promise`\<`void`\>
+
+Set the postData for a custom post. This will replace the existing postData with the postData specified in the input.
+
+#### Parameters
+
+##### postId
+
+`` `t3_${string}` ``
+
+The ID of the post to set the postData for.
+
+##### postData
+
+`JsonObject`
+
+Represents the postData to be set, eg: { currentScore: 55, secretWord: 'barbeque' }
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the postData could not be set.
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+
+// Existing postData: { settings: { theme: 'dark', fontSize: 12 } }
+
+await post.setPostData({
+ currentScore: 55,
+ secretWord: 'barbeque',
+});
+// Result: { currentScore: 55, secretWord: 'barbeque' }
+```
+
+***
+
### setPostFlair()
@@ -2933,6 +3103,37 @@ Options for the request
***
+
+
+### setPostStyles()
+
+> **setPostStyles**(`id`, `styles`): `Promise`\<`void`\>
+
+**`Experimental`**
+
+Set the custom styles for a custom post.
+
+#### Parameters
+
+##### id
+
+`` `t3_${string}` ``
+
+The ID of the post to set styles for.
+
+##### styles
+
+The styles to set for the post. If a value isn't specified, its previous value
+ will be preserved. If `undefined` is passed, all styles will be removed and reset to defaults.
+
+`undefined` | `CustomPostStylesInput`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
### setUserFlair()
@@ -3011,79 +3212,105 @@ A Promise that resolves to a Comment object.
#### Example
```ts
-import { RunAs } from '@devvit/public-api';
-
const comment = await reddit.submitComment({
id: 't1_1qgif',
text: 'Hello world!',
- runAs: RunAs.APP,
+ runAs: 'APP',
})
```
***
-
+
-### submitPost()
+### submitCustomPost()
-> **submitPost**(`options`): `Promise`\<[`Post`](../../models/classes/Post.md)\>
+> **submitCustomPost**(`opts`): `Promise`\<[`Post`](../../models/classes/Post.md)\>
-Submits a new post to a subreddit.
+Submits a new custom post to a subreddit.
#### Parameters
-##### options
-
-[`SubmitPostOptions`](../../models/type-aliases/SubmitPostOptions.md)
+##### opts
-Either a self post or a link post.
+`Readonly`\<[`SubredditOptions`](../../models/type-aliases/SubredditOptions.md) & [`CommonSubmitPostOptions`](../../models/type-aliases/CommonSubmitPostOptions.md) & `object`\>
#### Returns
`Promise`\<[`Post`](../../models/classes/Post.md)\>
-A Promise that resolves to a Post object.
-
#### Examples
```ts
-const post = await reddit.submitPost({
+const post = await reddit.submitCustomPost({
subredditName: 'devvit',
title: 'Hello World',
- richtext: new RichTextBuilder()
- .heading({ level: 1 }, (h) => {
- h.rawText('Hello world');
- })
- .codeBlock({}, (cb) => cb.rawText('This post was created via the Devvit API'))
- .build()
});
```
-By default, `submitPost()` creates a Post on behalf of the App account, but it may be called on behalf of the User making the request by setting the option `runAs: RunAs.USER`.
-When using `runAs: RunAs.USER` to create an experience Post, you must specify the `userGeneratedContent` option. For example:
+By default, `submitCustomPost()` creates a Post on behalf of the App account, but it may be called on behalf of the User making the request by setting the option `runAs: 'USER'`.
+When using `runAs: 'USER'` to create an experience Post, you must specify the `userGeneratedContent` option. For example:
```ts
-import { RunAs } from '@devvit/public-api';
-
-const post = await reddit.submitPost({
+const post = await reddit.submitCustomPost({
title: 'My Devvit Post',
- runAs: RunAs.USER,
+ runAs: 'USER',
userGeneratedContent: {
text: "hello there",
imageUrls: ["https://styles.redditmedia.com/t5_5wa5ww/styles/communityIcon_wyopomb2xb0a1.png", "https://styles.redditmedia.com/t5_49fkib/styles/bannerBackgroundImage_5a4axis7cku61.png"]
},
- subredditName: await reddit.getCurrentSubredditName(),
+ subredditName: context.subredditName,
textFallback: {
text: 'This is a Devvit post!',
},
- preview: (
-
- Loading...
-
- ),
});
```
+#### See
+
+ - [()\|submitPost()](#submitpost)
+ - [()\|crosspost()](#crosspost)
+
+***
+
+
+
+### submitPost()
+
+> **submitPost**(`opts`): `Promise`\<[`Post`](../../models/classes/Post.md)\>
+
+Submits a new post to a subreddit.
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`SubredditOptions`](../../models/type-aliases/SubredditOptions.md) & [`SubmitPostOptions`](../../models/type-aliases/SubmitPostOptions.md)\>
+
+#### Returns
+
+`Promise`\<[`Post`](../../models/classes/Post.md)\>
+
+#### Example
+
+```ts
+const post = await reddit.submitPost({
+ subredditName: 'devvit',
+ title: 'Hello World',
+ richtext: new RichTextBuilder()
+ .heading({ level: 1 }, (h) => {
+ h.rawText('Hello world');
+ })
+ .codeBlock({}, (cb) => cb.rawText('This post was created via the Devvit API'))
+ .build()
+});
+```
+
+#### See
+
+ - [()\|submitCustomPost()](#submitcustompost)
+ - [()\|crosspost()](#crosspost)
+
***
@@ -3093,8 +3320,8 @@ const post = await reddit.submitPost({
> **subscribeToCurrentSubreddit**(): `Promise`\<`void`\>
Subscribes to the subreddit in which the app is installed. No-op if the user is already subscribed.
-This method will execute as the app account by default.
-To subscribe on behalf of a user, please contact Reddit.
+This method will run as user by default. Therefore, you must include SUBSCRIBE_TO_SUBREDDIT
+in `permissions.reddit.asUser` in your devvit.json file.
#### Returns
@@ -3214,7 +3441,7 @@ Update an existing removal reason in a subreddit.
`string`
-Name of the subreddit (e.g. `askReddit` or `r/askReddit`).
+Name of the subreddit (the 'r/' prefix is optional).
##### reasonId
@@ -3224,6 +3451,8 @@ ID of the removal reason (from get or add).
##### options
+Options.
+
###### message
`string`
@@ -3240,6 +3469,15 @@ The title of the removal reason.
`Promise`\<`void`\>
+#### Example
+
+```ts
+await reddit.updateSubredditRemovalReason('askReddit', 'uuid-abc', {
+ title: 'Spam',
+ message: 'This post was removed for spam.'
+});
+```
+
***
diff --git a/docs/api/redditapi/RedditClient/type-aliases/CustomPostStyles.md b/docs/api/redditapi/RedditClient/type-aliases/CustomPostStyles.md
new file mode 100644
index 00000000..9e0e4219
--- /dev/null
+++ b/docs/api/redditapi/RedditClient/type-aliases/CustomPostStyles.md
@@ -0,0 +1,7 @@
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
+
+***
+
+# Type Alias: CustomPostStyles
+
+> **CustomPostStyles** = `StrictRequired`\<`CustomPostStylesInput`\>
diff --git a/docs/api/redditapi/RedditAPIClient/type-aliases/InviteModeratorOptions.md b/docs/api/redditapi/RedditClient/type-aliases/InviteModeratorOptions.md
similarity index 90%
rename from docs/api/redditapi/RedditAPIClient/type-aliases/InviteModeratorOptions.md
rename to docs/api/redditapi/RedditClient/type-aliases/InviteModeratorOptions.md
index b8aef729..eca16262 100644
--- a/docs/api/redditapi/RedditAPIClient/type-aliases/InviteModeratorOptions.md
+++ b/docs/api/redditapi/RedditClient/type-aliases/InviteModeratorOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/RedditAPIClient/type-aliases/MuteUserOptions.md b/docs/api/redditapi/RedditClient/type-aliases/MuteUserOptions.md
similarity index 88%
rename from docs/api/redditapi/RedditAPIClient/type-aliases/MuteUserOptions.md
rename to docs/api/redditapi/RedditClient/type-aliases/MuteUserOptions.md
index d98ca39b..12bf28e1 100644
--- a/docs/api/redditapi/RedditAPIClient/type-aliases/MuteUserOptions.md
+++ b/docs/api/redditapi/RedditClient/type-aliases/MuteUserOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/README.md b/docs/api/redditapi/models/README.md
index 2bbc4577..a37e90c5 100644
--- a/docs/api/redditapi/models/README.md
+++ b/docs/api/redditapi/models/README.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../README.md)
+[**@devvit/reddit v0.13.12-dev**](../README.md)
***
@@ -81,6 +81,8 @@
- [CrosspostOptions](type-aliases/CrosspostOptions.md)
- [CrowdControlLevel](type-aliases/CrowdControlLevel.md)
- [CustomizationFlag](type-aliases/CustomizationFlag.md)
+- [CustomPostRichTextFallback](type-aliases/CustomPostRichTextFallback.md)
+- [CustomPostTextFallbackOptions](type-aliases/CustomPostTextFallbackOptions.md)
- [DeleteNotesOptions](type-aliases/DeleteNotesOptions.md)
- [EditCommentOptions](type-aliases/EditCommentOptions.md)
- [EditFlairTemplateOptions](type-aliases/EditFlairTemplateOptions.md)
@@ -107,6 +109,7 @@
- [GetPrivateMessagesOptions](type-aliases/GetPrivateMessagesOptions.md)
- [GetSortedPostsOptions](type-aliases/GetSortedPostsOptions.md)
- [GetSubredditUsersByTypeOptions](type-aliases/GetSubredditUsersByTypeOptions.md)
+- [GetSubscribedSubredditsForCurrentUserOptions](type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md)
- [GetUserFlairBySubredditOptions](type-aliases/GetUserFlairBySubredditOptions.md)
- [GetUserFlairBySubredditResponse](type-aliases/GetUserFlairBySubredditResponse.md)
- [GetUserFlairOptions](type-aliases/GetUserFlairOptions.md)
@@ -126,7 +129,7 @@
- [ModLogOptions](type-aliases/ModLogOptions.md)
- [ModNoteType](type-aliases/ModNoteType.md)
- [MoreObject](type-aliases/MoreObject.md)
-- [OEmbed](type-aliases/OEmbed.md)
+- [Oembed](type-aliases/Oembed.md)
- [Participant](type-aliases/Participant.md)
- [PollData](type-aliases/PollData.md)
- [PollOption](type-aliases/PollOption.md)
@@ -147,6 +150,7 @@
- [SetPostFlairOptions](type-aliases/SetPostFlairOptions.md)
- [SetUserFlairBatchConfig](type-aliases/SetUserFlairBatchConfig.md)
- [SetUserFlairOptions](type-aliases/SetUserFlairOptions.md)
+- [SubmitCustomPostOptions](type-aliases/SubmitCustomPostOptions.md)
- [SubmitLinkOptions](type-aliases/SubmitLinkOptions.md)
- [SubmitMediaOptions](type-aliases/SubmitMediaOptions.md)
- [SubmitPostOptions](type-aliases/SubmitPostOptions.md)
@@ -156,6 +160,7 @@
- [SubredditLeaderboard](type-aliases/SubredditLeaderboard.md)
- [SubredditLeaderboardSummary](type-aliases/SubredditLeaderboardSummary.md)
- [SubredditLeaderboardSummaryRow](type-aliases/SubredditLeaderboardSummaryRow.md)
+- [SubredditOptions](type-aliases/SubredditOptions.md)
- [SubredditSettings](type-aliases/SubredditSettings.md)
- [SubredditSettingsOptions](type-aliases/SubredditSettingsOptions.md)
- [SubredditStyles](type-aliases/SubredditStyles.md)
diff --git a/docs/api/redditapi/models/classes/AuthorFlairSettings.md b/docs/api/redditapi/models/classes/AuthorFlairSettings.md
index 0217ae69..359d48ab 100644
--- a/docs/api/redditapi/models/classes/AuthorFlairSettings.md
+++ b/docs/api/redditapi/models/classes/AuthorFlairSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/classes/ButtonWidget.md b/docs/api/redditapi/models/classes/ButtonWidget.md
index 8c5fcb9b..3dd9c8bc 100644
--- a/docs/api/redditapi/models/classes/ButtonWidget.md
+++ b/docs/api/redditapi/models/classes/ButtonWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -14,7 +14,7 @@
### new ButtonWidget()
-> **new ButtonWidget**(`widgetData`, `subredditName`, `metadata`): `ButtonWidget`
+> **new ButtonWidget**(`widgetData`, `subredditName`): `ButtonWidget`
#### Parameters
@@ -26,10 +26,6 @@
`string`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`ButtonWidget`
@@ -156,11 +152,11 @@
### toJSON()
-> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`ButtonWidget`, `"description"` \| `"styles"` \| `"buttons"`\>
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`ButtonWidget`, `"description"` \| `"styles"` \| `"buttons"`\>
#### Returns
-`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`ButtonWidget`, `"description"` \| `"styles"` \| `"buttons"`\>
+`Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`ButtonWidget`, `"description"` \| `"styles"` \| `"buttons"`\>
#### Overrides
diff --git a/docs/api/redditapi/models/classes/CalendarWidget.md b/docs/api/redditapi/models/classes/CalendarWidget.md
index bab5bce4..4740d366 100644
--- a/docs/api/redditapi/models/classes/CalendarWidget.md
+++ b/docs/api/redditapi/models/classes/CalendarWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -14,7 +14,7 @@
### new CalendarWidget()
-> **new CalendarWidget**(`widgetData`, `subredditName`, `metadata`): `CalendarWidget`
+> **new CalendarWidget**(`widgetData`, `subredditName`): `CalendarWidget`
#### Parameters
@@ -26,10 +26,6 @@
`string`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`CalendarWidget`
@@ -156,11 +152,11 @@
### toJSON()
-> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`CalendarWidget`, `"googleCalendarId"` \| `"configuration"` \| `"styles"`\>
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`CalendarWidget`, `"styles"` \| `"googleCalendarId"` \| `"configuration"`\>
#### Returns
-`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`CalendarWidget`, `"googleCalendarId"` \| `"configuration"` \| `"styles"`\>
+`Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`CalendarWidget`, `"styles"` \| `"googleCalendarId"` \| `"configuration"`\>
#### Overrides
diff --git a/docs/api/redditapi/models/classes/Comment.md b/docs/api/redditapi/models/classes/Comment.md
index bbe50a5e..1e8db117 100644
--- a/docs/api/redditapi/models/classes/Comment.md
+++ b/docs/api/redditapi/models/classes/Comment.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -28,8 +28,6 @@
> **get** **approvedAtUtc**(): `number`
-A number representing the UTC timestamp in seconds, or 0 if its not approved.
-
##### Returns
`number`
@@ -422,26 +420,22 @@ Use [modReports](#modreports) to retain each report's author.
### addRemovalNote()
-> **addRemovalNote**(`options`): `Promise`\<`void`\>
+> **addRemovalNote**(`opts`): `Promise`\<`void`\>
Add a mod note for why the comment was removed
#### Parameters
-##### options
+##### opts
###### modNote?
`string`
-the reason for removal (maximum 100 characters) (optional)
-
###### reasonId
`string`
-id of a Removal Reason - you can leave this as an empty string if you don't have one
-
#### Returns
`Promise`\<`void`\>
@@ -512,13 +506,13 @@ id of a Removal Reason - you can leave this as an empty string if you don't have
### edit()
-> **edit**(`options`): `Promise`\<`Comment`\>
+> **edit**(`opts`): `Promise`\<`Comment`\>
#### Parameters
-##### options
+##### opts
-[`CommentSubmissionOptions`](../type-aliases/CommentSubmissionOptions.md)
+`Readonly`\<[`CommentSubmissionOptions`](../type-aliases/CommentSubmissionOptions.md)\>
#### Returns
@@ -707,13 +701,13 @@ A Promise that resolves if the comment was filtered successfully.
### reply()
-> **reply**(`options`): `Promise`\<`Comment`\>
+> **reply**(`opts`): `Promise`\<`Comment`\>
#### Parameters
-##### options
+##### opts
-[`CommentSubmissionOptions`](../type-aliases/CommentSubmissionOptions.md)
+`Readonly`\<[`CommentSubmissionOptions`](../type-aliases/CommentSubmissionOptions.md)\>
#### Returns
@@ -763,11 +757,11 @@ The report reason to snooze.
### toJSON()
-> **toJSON**(): `Pick`\<`Comment`, `"subredditName"` \| `"id"` \| `"subredditId"` \| `"postId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"authorName"` \| `"body"` \| `"score"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"edited"` \| `"locked"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"parentId"` \| `"replies"` \| `"numReports"` \| `"collapsedBecauseCrowdControl"`\>
+> **toJSON**(): `Pick`\<`Comment`, `"id"` \| `"subredditName"` \| `"postId"` \| `"body"` \| `"permalink"` \| `"createdAt"` \| `"url"` \| `"authorName"` \| `"subredditId"` \| `"score"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"edited"` \| `"locked"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"parentId"` \| `"replies"` \| `"numReports"` \| `"collapsedBecauseCrowdControl"`\>
#### Returns
-`Pick`\<`Comment`, `"subredditName"` \| `"id"` \| `"subredditId"` \| `"postId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"authorName"` \| `"body"` \| `"score"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"edited"` \| `"locked"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"parentId"` \| `"replies"` \| `"numReports"` \| `"collapsedBecauseCrowdControl"`\>
+`Pick`\<`Comment`, `"id"` \| `"subredditName"` \| `"postId"` \| `"body"` \| `"permalink"` \| `"createdAt"` \| `"url"` \| `"authorName"` \| `"subredditId"` \| `"score"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"edited"` \| `"locked"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"parentId"` \| `"replies"` \| `"numReports"` \| `"collapsedBecauseCrowdControl"`\>
***
diff --git a/docs/api/redditapi/models/classes/CommunityListWidget.md b/docs/api/redditapi/models/classes/CommunityListWidget.md
index adf9acfd..7e814681 100644
--- a/docs/api/redditapi/models/classes/CommunityListWidget.md
+++ b/docs/api/redditapi/models/classes/CommunityListWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -14,7 +14,7 @@
### new CommunityListWidget()
-> **new CommunityListWidget**(`widgetData`, `subredditName`, `metadata`): `CommunityListWidget`
+> **new CommunityListWidget**(`widgetData`, `subredditName`): `CommunityListWidget`
#### Parameters
@@ -26,10 +26,6 @@
`string`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`CommunityListWidget`
@@ -142,11 +138,11 @@
### toJSON()
-> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`CommunityListWidget`, `"styles"` \| `"communities"`\>
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`CommunityListWidget`, `"styles"` \| `"communities"`\>
#### Returns
-`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`CommunityListWidget`, `"styles"` \| `"communities"`\>
+`Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`CommunityListWidget`, `"styles"` \| `"communities"`\>
#### Overrides
diff --git a/docs/api/redditapi/models/classes/CustomWidget.md b/docs/api/redditapi/models/classes/CustomWidget.md
index 8d8e65f0..7a226d2c 100644
--- a/docs/api/redditapi/models/classes/CustomWidget.md
+++ b/docs/api/redditapi/models/classes/CustomWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -14,7 +14,7 @@
### new CustomWidget()
-> **new CustomWidget**(`widgetData`, `subredditName`, `metadata`): `CustomWidget`
+> **new CustomWidget**(`widgetData`, `subredditName`): `CustomWidget`
#### Parameters
@@ -26,10 +26,6 @@
`string`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`CustomWidget`
@@ -184,11 +180,11 @@
### toJSON()
-> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`CustomWidget`, `"text"` \| `"height"` \| `"images"` \| `"stylesheetUrl"` \| `"css"`\>
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`CustomWidget`, `"text"` \| `"height"` \| `"images"` \| `"stylesheetUrl"` \| `"css"`\>
#### Returns
-`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`CustomWidget`, `"text"` \| `"height"` \| `"images"` \| `"stylesheetUrl"` \| `"css"`\>
+`Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`CustomWidget`, `"text"` \| `"height"` \| `"images"` \| `"stylesheetUrl"` \| `"css"`\>
#### Overrides
diff --git a/docs/api/redditapi/models/classes/Flair.md b/docs/api/redditapi/models/classes/Flair.md
index e0a3c8fb..876561b6 100644
--- a/docs/api/redditapi/models/classes/Flair.md
+++ b/docs/api/redditapi/models/classes/Flair.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/classes/FlairTemplate.md b/docs/api/redditapi/models/classes/FlairTemplate.md
index 619d480e..9fe18f75 100644
--- a/docs/api/redditapi/models/classes/FlairTemplate.md
+++ b/docs/api/redditapi/models/classes/FlairTemplate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -160,7 +160,7 @@ Edit this flair template
##### options
-`Partial`\<`Omit`\<[`EditFlairTemplateOptions`](../type-aliases/EditFlairTemplateOptions.md), `"subredditName"` \| `"id"`\>\>
+`Partial`\<`Omit`\<[`EditFlairTemplateOptions`](../type-aliases/EditFlairTemplateOptions.md), `"id"` \| `"subredditName"`\>\>
#### Returns
diff --git a/docs/api/redditapi/models/classes/ImageWidget.md b/docs/api/redditapi/models/classes/ImageWidget.md
index f8cff3b0..0ed7a27c 100644
--- a/docs/api/redditapi/models/classes/ImageWidget.md
+++ b/docs/api/redditapi/models/classes/ImageWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -14,7 +14,7 @@
### new ImageWidget()
-> **new ImageWidget**(`widgetData`, `subredditName`, `metadata`): `ImageWidget`
+> **new ImageWidget**(`widgetData`, `subredditName`): `ImageWidget`
#### Parameters
@@ -26,10 +26,6 @@
`string`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`ImageWidget`
@@ -128,11 +124,11 @@
### toJSON()
-> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`ImageWidget`, `"images"`\>
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`ImageWidget`, `"images"`\>
#### Returns
-`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`ImageWidget`, `"images"`\>
+`Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`ImageWidget`, `"images"`\>
#### Overrides
diff --git a/docs/api/redditapi/models/classes/Listing.md b/docs/api/redditapi/models/classes/Listing.md
index ca4641e7..cb25ad1e 100644
--- a/docs/api/redditapi/models/classes/Listing.md
+++ b/docs/api/redditapi/models/classes/Listing.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/classes/ModMailService.md b/docs/api/redditapi/models/classes/ModMailService.md
index 7a9ce072..a69070a7 100644
--- a/docs/api/redditapi/models/classes/ModMailService.md
+++ b/docs/api/redditapi/models/classes/ModMailService.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -205,13 +205,19 @@ Note: The app must be installed in the subreddit in order to create a conversati
`string`
+The body of the message in Markdown format, e.g. `Hello world \n\n **Have a great day**`.
+
###### subject
`string`
+The subject of the message.
+
###### subredditId
-`string`
+`` `t5_${string}` ``
+
+The ID (starting with `t5_`) of the subreddit to which to send the message, e.g. `t5_2qjpg`.
#### Returns
@@ -247,13 +253,19 @@ Creates a conversation in the Modmail Inbox with the moderators of the given sub
`string`
+The body of the message in Markdown format, e.g. `Hello world \n\n **Have a great day**`.
+
###### subject
`string`
+The subject of the message.
+
###### subredditId
-`string`
+`` `t5_${string}` ``
+
+The ID (starting with `t5_`) of the subreddit to which to send the message, e.g. `t5_2qjpg`.
#### Returns
@@ -290,13 +302,19 @@ This function is different from [ModMailService.createModInboxConversation](#cre
`string`
+The body of the message in Markdown format, e.g. `Hello world \n\n **Have a great day**`.
+
###### subject
`string`
+The subject of the message.
+
###### subredditId
-`string`
+`` `t5_${string}` ``
+
+The ID (starting with `t5_`) of the subreddit to which to send the message, e.g. `t5_2qjpg`.
#### Returns
diff --git a/docs/api/redditapi/models/classes/ModNote.md b/docs/api/redditapi/models/classes/ModNote.md
index f902436d..d73442fb 100644
--- a/docs/api/redditapi/models/classes/ModNote.md
+++ b/docs/api/redditapi/models/classes/ModNote.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/classes/Post.md b/docs/api/redditapi/models/classes/Post.md
index a18225b5..34a6e4a5 100644
--- a/docs/api/redditapi/models/classes/Post.md
+++ b/docs/api/redditapi/models/classes/Post.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -622,13 +622,13 @@ who/what removed this object. It will return one of the following:
### addComment()
-> **addComment**(`options`): `Promise`\<[`Comment`](Comment.md)\>
+> **addComment**(`opts`): `Promise`\<[`Comment`](Comment.md)\>
#### Parameters
-##### options
+##### opts
-[`CommentSubmissionOptions`](../type-aliases/CommentSubmissionOptions.md)
+`Readonly`\<[`CommentSubmissionOptions`](../type-aliases/CommentSubmissionOptions.md)\>
#### Returns
@@ -640,26 +640,22 @@ who/what removed this object. It will return one of the following:
### addRemovalNote()
-> **addRemovalNote**(`options`): `Promise`\<`void`\>
+> **addRemovalNote**(`opts`): `Promise`\<`void`\>
Add a mod note for why the post was removed
#### Parameters
-##### options
+##### opts
###### modNote?
`string`
-the reason for removal (maximum 100 characters) (optional)
-
###### reasonId
`string`
-id of a Removal Reason - you can leave this as an empty string if you don't have one
-
#### Returns
`Promise`\<`void`\>
@@ -682,13 +678,13 @@ id of a Removal Reason - you can leave this as an empty string if you don't have
### crosspost()
-> **crosspost**(`options`): `Promise`\<`Post`\>
+> **crosspost**(`opts`): `Promise`\<`Post`\>
#### Parameters
-##### options
+##### opts
-`Omit`\<[`CrosspostOptions`](../type-aliases/CrosspostOptions.md), `"postId"`\>
+`Readonly`\<`Omit`\<[`CrosspostOptions`](../type-aliases/CrosspostOptions.md), `"postId"`\>\>
#### Returns
@@ -736,13 +732,13 @@ id of a Removal Reason - you can leave this as an empty string if you don't have
### edit()
-> **edit**(`options`): `Promise`\<`void`\>
+> **edit**(`opts`): `Promise`\<`void`\>
#### Parameters
-##### options
+##### opts
-[`PostTextOptions`](../type-aliases/PostTextOptions.md)
+`Readonly`\<[`PostTextOptions`](../type-aliases/PostTextOptions.md)\>
#### Returns
@@ -807,15 +803,31 @@ To get the poll option for a user, please contact Reddit.
***
+
+
+### getCustomPostStyles()
+
+> **getCustomPostStyles**(): `Promise`\<`StrictRequired`\<`CustomPostStylesInput`\>\>
+
+**`Experimental`**
+
+Get the custom styles for a custom post.
+
+#### Returns
+
+`Promise`\<`StrictRequired`\<`CustomPostStylesInput`\>\>
+
+***
+
### getDuplicates()
-> **getDuplicates**(`options`): [`Listing`](Listing.md)\<`Post`\>
+> **getDuplicates**(`opts`): [`Listing`](Listing.md)\<`Post`\>
#### Parameters
-##### options
+##### opts
`Omit`\<[`GetDuplicatesOptions`](../type-aliases/GetDuplicatesOptions.md), `"postId"`\> = `{}`
@@ -853,6 +865,27 @@ const enrichedThumbnail = await post.getEnrichedThumbnail();
***
+
+
+### getPostData()
+
+> **getPostData**(): `Promise`\<`undefined` \| `JsonObject`\>
+
+Get the postData for the custom post.
+
+#### Returns
+
+`Promise`\<`undefined` \| `JsonObject`\>
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+const postData = await post.getPostData();
+```
+
+***
+
### hide()
@@ -1069,6 +1102,43 @@ const enrichedThumbnail = await post.getEnrichedThumbnail();
***
+
+
+### mergePostData()
+
+> **mergePostData**(`postData`): `Promise`\<`void`\>
+
+Merge the postData on a custom post with the postData specified in the input. This performs a shallow merge.
+
+#### Parameters
+
+##### postData
+
+`JsonObject`
+
+Represents the postData to be merged with the existing postData.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the postData could not be merged.
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+
+// Existing postData: { currentScore: 55, settings: { theme: 'dark', fontSize: 12 } }
+
+await post.mergePostData({ settings: { fontSize: 14 } });
+// Result: { currentScore: 55, settings: { fontSize: 14 } }
+```
+
+***
+
### remove()
@@ -1087,6 +1157,72 @@ const enrichedThumbnail = await post.getEnrichedThumbnail();
***
+
+
+### setCustomPostStyles()
+
+> **setCustomPostStyles**(`styles`): `Promise`\<`void`\>
+
+**`Experimental`**
+
+Set the custom styles for a custom post.
+
+#### Parameters
+
+##### styles
+
+The styles to set for the post. If a value isn't specified, its previous value
+ will be preserved. If `undefined` is passed, all custom styles will be removed.
+
+`undefined` | `CustomPostStylesInput`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+
+
+### setPostData()
+
+> **setPostData**(`postData`): `Promise`\<`void`\>
+
+Set the postData for the custom post. This will replace the existing
+postData with the postData specified in the input.
+
+#### Parameters
+
+##### postData
+
+`JsonObject`
+
+Represents the postData to be set, eg: { currentScore: 55, secretWord: 'barbeque' }
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the postData could not be set.
+
+#### Example
+
+```ts
+const post = await reddit.getPostById(context.postId);
+
+// Existing postData: { settings: { theme: 'dark', fontSize: 12 } }
+
+await post.setPostData({
+ currentScore: 55,
+ secretWord: 'barbeque',
+});
+// Result: { currentScore: 55, secretWord: 'barbeque' }
+```
+
+***
+
### setSuggestedCommentSort()
@@ -1118,6 +1254,41 @@ await post.setSuggestedCommentSort("NEW");
***
+
+
+### setTextFallback()
+
+> **setTextFallback**(`opts`): `Promise`\<`void`\>
+
+Set a text fallback for the custom post.
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`CustomPostTextFallbackOptions`](../type-aliases/CustomPostTextFallbackOptions.md)\>
+
+A text or a richtext to render in a fallback
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Throws
+
+Throws an error if the fallback could not be set.
+
+#### Example
+
+```ts
+// from a menu action, form, scheduler, trigger, custom post click event, etc
+const newTextFallback = { text: 'This is an updated text fallback' };
+const post = await context.reddit.getPostById(context.postId);
+await post.setTextFallback(newTextFallback);
+```
+
+***
+
### snoozeReports()
@@ -1163,11 +1334,11 @@ The report reason to snooze.
### toJSON()
-> **toJSON**(): `Pick`\<`Post`, `"subredditName"` \| `"flair"` \| `"id"` \| `"subredditId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"title"` \| `"nsfw"` \| `"authorId"` \| `"authorName"` \| `"body"` \| `"bodyHtml"` \| `"thumbnail"` \| `"score"` \| `"numberOfComments"` \| `"numberOfReports"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"removedBy"` \| `"removedByCategory"` \| `"archived"` \| `"edited"` \| `"locked"` \| `"quarantined"` \| `"spoiler"` \| `"hidden"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"secureMedia"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"crosspostParentId"`\>
+> **toJSON**(): `Pick`\<`Post`, `"flair"` \| `"spoiler"` \| `"id"` \| `"subredditName"` \| `"body"` \| `"permalink"` \| `"title"` \| `"createdAt"` \| `"nsfw"` \| `"url"` \| `"authorId"` \| `"authorName"` \| `"subredditId"` \| `"bodyHtml"` \| `"thumbnail"` \| `"score"` \| `"numberOfComments"` \| `"numberOfReports"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"removedBy"` \| `"removedByCategory"` \| `"archived"` \| `"edited"` \| `"locked"` \| `"quarantined"` \| `"hidden"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"secureMedia"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"crosspostParentId"`\>
#### Returns
-`Pick`\<`Post`, `"subredditName"` \| `"flair"` \| `"id"` \| `"subredditId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"title"` \| `"nsfw"` \| `"authorId"` \| `"authorName"` \| `"body"` \| `"bodyHtml"` \| `"thumbnail"` \| `"score"` \| `"numberOfComments"` \| `"numberOfReports"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"removedBy"` \| `"removedByCategory"` \| `"archived"` \| `"edited"` \| `"locked"` \| `"quarantined"` \| `"spoiler"` \| `"hidden"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"secureMedia"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"crosspostParentId"`\>
+`Pick`\<`Post`, `"flair"` \| `"spoiler"` \| `"id"` \| `"subredditName"` \| `"body"` \| `"permalink"` \| `"title"` \| `"createdAt"` \| `"nsfw"` \| `"url"` \| `"authorId"` \| `"authorName"` \| `"subredditId"` \| `"bodyHtml"` \| `"thumbnail"` \| `"score"` \| `"numberOfComments"` \| `"numberOfReports"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"removedBy"` \| `"removedByCategory"` \| `"archived"` \| `"edited"` \| `"locked"` \| `"quarantined"` \| `"hidden"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"secureMedia"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"crosspostParentId"`\>
***
diff --git a/docs/api/redditapi/models/classes/PostFlairSettings.md b/docs/api/redditapi/models/classes/PostFlairSettings.md
index a10b7e5f..c72a0ea0 100644
--- a/docs/api/redditapi/models/classes/PostFlairSettings.md
+++ b/docs/api/redditapi/models/classes/PostFlairSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/classes/PostFlairWidget.md b/docs/api/redditapi/models/classes/PostFlairWidget.md
index c2c253d5..8d04c612 100644
--- a/docs/api/redditapi/models/classes/PostFlairWidget.md
+++ b/docs/api/redditapi/models/classes/PostFlairWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -14,7 +14,7 @@
### new PostFlairWidget()
-> **new PostFlairWidget**(`widgetData`, `subredditName`, `metadata`): `PostFlairWidget`
+> **new PostFlairWidget**(`widgetData`, `subredditName`): `PostFlairWidget`
#### Parameters
@@ -26,10 +26,6 @@
`string`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`PostFlairWidget`
@@ -156,11 +152,11 @@
### toJSON()
-> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`PostFlairWidget`, `"styles"` \| `"templates"` \| `"display"`\>
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`PostFlairWidget`, `"styles"` \| `"templates"` \| `"display"`\>
#### Returns
-`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`PostFlairWidget`, `"styles"` \| `"templates"` \| `"display"`\>
+`Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`PostFlairWidget`, `"styles"` \| `"templates"` \| `"display"`\>
#### Overrides
diff --git a/docs/api/redditapi/models/classes/PrivateMessage.md b/docs/api/redditapi/models/classes/PrivateMessage.md
index b664868e..1dc79184 100644
--- a/docs/api/redditapi/models/classes/PrivateMessage.md
+++ b/docs/api/redditapi/models/classes/PrivateMessage.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/classes/Rule.md b/docs/api/redditapi/models/classes/Rule.md
index 115a98eb..df5794f5 100644
--- a/docs/api/redditapi/models/classes/Rule.md
+++ b/docs/api/redditapi/models/classes/Rule.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -10,7 +10,7 @@
### new Rule()
-> **new Rule**(`ruleData`, `subredditName`, `metadata`): `Rule`
+> **new Rule**(`ruleData`, `subredditName`): `Rule`
#### Parameters
@@ -22,10 +22,6 @@
`string`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`Rule`
@@ -84,13 +80,13 @@ The full description of the rule. This appears on your subreddit's sidebar.
#### Get Signature
-> **get** **kind**(): `"all"` \| `"link"` \| `"comment"`
+> **get** **kind**(): `"comment"` \| `"all"` \| `"link"`
Which Reddit objects this rule applies to. One of "all", "link" (AKA posts), "comment".
##### Returns
-`"all"` \| `"link"` \| `"comment"`
+`"comment"` \| `"all"` \| `"link"`
***
@@ -174,11 +170,11 @@ Text to show users when reporting content due to this rule. Defaults to the shor
### toJSON()
-> **toJSON**(): `Pick`\<`Rule`, `"subredditName"` \| `"kind"` \| `"violationReason"` \| `"shortName"` \| `"description"` \| `"createdUtc"` \| `"priority"`\> & `object`
+> **toJSON**(): `Pick`\<`Rule`, `"subredditName"` \| `"createdUtc"` \| `"description"` \| `"kind"` \| `"violationReason"` \| `"shortName"` \| `"priority"`\> & `object`
#### Returns
-`Pick`\<`Rule`, `"subredditName"` \| `"kind"` \| `"violationReason"` \| `"shortName"` \| `"description"` \| `"createdUtc"` \| `"priority"`\> & `object`
+`Pick`\<`Rule`, `"subredditName"` \| `"createdUtc"` \| `"description"` \| `"kind"` \| `"violationReason"` \| `"shortName"` \| `"priority"`\> & `object`
***
@@ -208,7 +204,7 @@ New values for an existing rule. All fields are optional. If a field is not prov
### createRule()
-> `static` **createRule**(`subredditName`, `options`, `metadata`): `Promise`\<`void`\>
+> `static` **createRule**(`subredditName`, `options`): `Promise`\<`void`\>
#### Parameters
@@ -220,10 +216,6 @@ New values for an existing rule. All fields are optional. If a field is not prov
`Readonly`\<[`CreateRuleOptions`](../type-aliases/CreateRuleOptions.md)\>
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`Promise`\<`void`\>
@@ -234,7 +226,7 @@ New values for an existing rule. All fields are optional. If a field is not prov
### delete()
-> `static` **delete**(`subredditName`, `shortName`, `metadata`): `Promise`\<`void`\>
+> `static` **delete**(`subredditName`, `shortName`): `Promise`\<`void`\>
#### Parameters
@@ -246,10 +238,6 @@ New values for an existing rule. All fields are optional. If a field is not prov
`string`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`Promise`\<`void`\>
@@ -260,7 +248,7 @@ New values for an existing rule. All fields are optional. If a field is not prov
### getRules()
-> `static` **getRules**(`subredditName`, `metadata`): `Promise`\<`Rule`[]\>
+> `static` **getRules**(`subredditName`): `Promise`\<`Rule`[]\>
#### Parameters
@@ -268,10 +256,6 @@ New values for an existing rule. All fields are optional. If a field is not prov
`string`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`Promise`\<`Rule`[]\>
@@ -282,7 +266,7 @@ New values for an existing rule. All fields are optional. If a field is not prov
### reorderRules()
-> `static` **reorderRules**(`subredditName`, `rules`, `metadata`): `Promise`\<`void`\>
+> `static` **reorderRules**(`subredditName`, `rules`): `Promise`\<`void`\>
#### Parameters
@@ -294,10 +278,6 @@ New values for an existing rule. All fields are optional. If a field is not prov
`Rule`[]
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`Promise`\<`void`\>
diff --git a/docs/api/redditapi/models/classes/Subreddit.md b/docs/api/redditapi/models/classes/Subreddit.md
index 0fc75b45..ddf980c6 100644
--- a/docs/api/redditapi/models/classes/Subreddit.md
+++ b/docs/api/redditapi/models/classes/Subreddit.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -32,7 +32,7 @@ The creation date of the subreddit.
> **get** **description**(): `undefined` \| `string`
-The description of the subreddit.
+The description of the subreddit. Appears in the sidebar of the subreddit.
##### Returns
@@ -446,6 +446,24 @@ Options for creating a new subreddit rule.
***
+
+
+### crosspost()
+
+> **crosspost**(`opts`): `Promise`\<[`Post`](Post.md)\>
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`CrosspostOptions`](../type-aliases/CrosspostOptions.md)\>
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+***
+
### deleteRemovalReason()
@@ -524,7 +542,7 @@ Delete a removal reason from this subreddit.
### getCommentsAndPostsByIds()
-> **getCommentsAndPostsByIds**(`ids`): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+> **getCommentsAndPostsByIds**(`ids`): [`Listing`](Listing.md)\<[`Comment`](Comment.md) \| [`Post`](Post.md)\>
Return a listing of things specified by their fullnames.
@@ -538,7 +556,7 @@ Array of thing full ids (e.g. t3_abc123)
#### Returns
-[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+[`Listing`](Listing.md)\<[`Comment`](Comment.md) \| [`Post`](Post.md)\>
#### Example
@@ -627,7 +645,7 @@ console.log("Posts: ", await listing.all())
#### Call Signature
-> **getEdited**(`options`?): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+> **getEdited**(`options`?): [`Listing`](Listing.md)\<[`Comment`](Comment.md) \| [`Post`](Post.md)\>
Return a listing of things that have been edited recently.
@@ -639,7 +657,7 @@ Return a listing of things that have been edited recently.
##### Returns
-[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+[`Listing`](Listing.md)\<[`Comment`](Comment.md) \| [`Post`](Post.md)\>
##### Example
@@ -747,7 +765,7 @@ console.log("Posts: ", await listing.all())
#### Call Signature
-> **getModQueue**(`options`?): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+> **getModQueue**(`options`?): [`Listing`](Listing.md)\<[`Comment`](Comment.md) \| [`Post`](Post.md)\>
Return a listing of things requiring moderator review, such as reported things and items.
@@ -759,7 +777,7 @@ Return a listing of things requiring moderator review, such as reported things a
##### Returns
-[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+[`Listing`](Listing.md)\<[`Comment`](Comment.md) \| [`Post`](Post.md)\>
##### Example
@@ -875,7 +893,7 @@ console.log("Posts: ", await listing.all())
#### Call Signature
-> **getReports**(`options`?): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+> **getReports**(`options`?): [`Listing`](Listing.md)\<[`Comment`](Comment.md) \| [`Post`](Post.md)\>
Return a listing of things that have been reported.
@@ -887,7 +905,7 @@ Return a listing of things that have been reported.
##### Returns
-[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+[`Listing`](Listing.md)\<[`Comment`](Comment.md) \| [`Post`](Post.md)\>
##### Example
@@ -971,7 +989,7 @@ console.log("Posts: ", await listing.all())
#### Call Signature
-> **getSpam**(`options`?): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+> **getSpam**(`options`?): [`Listing`](Listing.md)\<[`Comment`](Comment.md) \| [`Post`](Post.md)\>
Return a listing of things that have been marked as spam or otherwise removed.
@@ -983,7 +1001,7 @@ Return a listing of things that have been marked as spam or otherwise removed.
##### Returns
-[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+[`Listing`](Listing.md)\<[`Comment`](Comment.md) \| [`Post`](Post.md)\>
##### Example
@@ -1073,7 +1091,7 @@ console.log("Posts: ", await listing.all())
#### Call Signature
-> **getUnmoderated**(`options`?): [`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+> **getUnmoderated**(`options`?): [`Listing`](Listing.md)\<[`Comment`](Comment.md) \| [`Post`](Post.md)\>
Return a listing of things that have yet to be approved/removed by a mod.
@@ -1085,7 +1103,7 @@ Return a listing of things that have yet to be approved/removed by a mod.
##### Returns
-[`Listing`](Listing.md)\<[`Post`](Post.md) \| [`Comment`](Comment.md)\>
+[`Listing`](Listing.md)\<[`Comment`](Comment.md) \| [`Post`](Post.md)\>
##### Example
@@ -1330,17 +1348,35 @@ const userFlairList = response.users
***
+
+
+### submitCustomPost()
+
+> **submitCustomPost**(`opts`): `Promise`\<[`Post`](Post.md)\>
+
+#### Parameters
+
+##### opts
+
+`Readonly`\<[`SubmitCustomPostOptions`](../type-aliases/SubmitCustomPostOptions.md)\>
+
+#### Returns
+
+`Promise`\<[`Post`](Post.md)\>
+
+***
+
### submitPost()
-> **submitPost**(`options`): `Promise`\<[`Post`](Post.md)\>
+> **submitPost**(`opts`): `Promise`\<[`Post`](Post.md)\>
#### Parameters
-##### options
+##### opts
-[`SubmitLinkOptions`](../type-aliases/SubmitLinkOptions.md) | [`SubmitSelfPostOptions`](../type-aliases/SubmitSelfPostOptions.md)
+`Readonly`\<[`SubmitPostOptions`](../type-aliases/SubmitPostOptions.md)\>
#### Returns
@@ -1352,11 +1388,11 @@ const userFlairList = response.users
### toJSON()
-> **toJSON**(): `Pick`\<`Subreddit`, `"type"` \| `"description"` \| `"id"` \| `"settings"` \| `"name"` \| `"createdAt"` \| `"title"` \| `"language"` \| `"numberOfSubscribers"` \| `"numberOfActiveUsers"` \| `"nsfw"`\>
+> **toJSON**(): `Pick`\<`Subreddit`, `"name"` \| `"id"` \| `"type"` \| `"description"` \| `"title"` \| `"createdAt"` \| `"nsfw"` \| `"settings"` \| `"language"` \| `"numberOfSubscribers"` \| `"numberOfActiveUsers"`\>
#### Returns
-`Pick`\<`Subreddit`, `"type"` \| `"description"` \| `"id"` \| `"settings"` \| `"name"` \| `"createdAt"` \| `"title"` \| `"language"` \| `"numberOfSubscribers"` \| `"numberOfActiveUsers"` \| `"nsfw"`\>
+`Pick`\<`Subreddit`, `"name"` \| `"id"` \| `"type"` \| `"description"` \| `"title"` \| `"createdAt"` \| `"nsfw"` \| `"settings"` \| `"language"` \| `"numberOfSubscribers"` \| `"numberOfActiveUsers"`\>
***
@@ -1451,7 +1487,7 @@ Update a removal reason's title and message in this subreddit.
> **updateSettings**(`options`): `Promise`\<`void`\>
Updates subreddit settings via the SiteAdmin API. Current settings are used as the base;
-only provided options are applied. In order to reset a field to its default value,
+only fields specified in `options` are changed. In order to reset a field to its default value,
pass the default value as the option value.
#### Parameters
@@ -1470,6 +1506,24 @@ Optional settings to apply. Omitted fields are left unchanged.
```ts
const subreddit = await reddit.getSubredditByName('mysubreddit');
-await subreddit.updateSettings({ restrictPosting: true, allowImages: false });
-await subreddit.updateSettings({ type: 'restricted', title: 'New Title', description: 'Sidebar text' });
+await subreddit.setSettings({ restrictPosting: true, allowImages: false });
+await subreddit.setSettings({ type: 'restricted', title: 'New Title', description: 'Sidebar text' });
```
+
+***
+
+
+
+### getSubscribedSubredditsForCurrentUser()
+
+> `static` **getSubscribedSubredditsForCurrentUser**(`options`): [`Listing`](Listing.md)\<`Subreddit`\>
+
+#### Parameters
+
+##### options
+
+[`GetSubscribedSubredditsForCurrentUserOptions`](../type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md) = `{}`
+
+#### Returns
+
+[`Listing`](Listing.md)\<`Subreddit`\>
diff --git a/docs/api/redditapi/models/classes/SubredditBannedUser.md b/docs/api/redditapi/models/classes/SubredditBannedUser.md
index 40b8e14b..571e10c1 100644
--- a/docs/api/redditapi/models/classes/SubredditBannedUser.md
+++ b/docs/api/redditapi/models/classes/SubredditBannedUser.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -197,7 +197,7 @@ The ID (starting with t2_) of the user to retrieve.
> **get** **isAdmin**(): `boolean`
-Whether the user is admin.
+Whether the user is a Reddit employee.
##### Returns
@@ -582,11 +582,11 @@ The GetUserKarmaForSubredditResponse, containing the user's karma for comments a
### toJSON()
-> **toJSON**(): `Pick`\<[`User`](User.md), `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditBannedUser`, `"date"`\> & `object`
+> **toJSON**(): `Pick`\<[`User`](User.md), `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object` & `Pick`\<`SubredditBannedUser`, `"date"`\> & `object`
#### Returns
-`Pick`\<[`User`](User.md), `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditBannedUser`, `"date"`\> & `object`
+`Pick`\<[`User`](User.md), `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object` & `Pick`\<`SubredditBannedUser`, `"date"`\> & `object`
#### Overrides
diff --git a/docs/api/redditapi/models/classes/SubredditContributorUser.md b/docs/api/redditapi/models/classes/SubredditContributorUser.md
index 50d38151..175b314a 100644
--- a/docs/api/redditapi/models/classes/SubredditContributorUser.md
+++ b/docs/api/redditapi/models/classes/SubredditContributorUser.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -177,7 +177,7 @@ The ID (starting with t2_) of the user to retrieve.
> **get** **isAdmin**(): `boolean`
-Whether the user is admin.
+Whether the user is a Reddit employee.
##### Returns
@@ -562,11 +562,11 @@ The GetUserKarmaForSubredditResponse, containing the user's karma for comments a
### toJSON()
-> **toJSON**(): `Pick`\<[`User`](User.md), `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditContributorUser`, `"date"`\>
+> **toJSON**(): `Pick`\<[`User`](User.md), `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object` & `Pick`\<`SubredditContributorUser`, `"date"`\>
#### Returns
-`Pick`\<[`User`](User.md), `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditContributorUser`, `"date"`\>
+`Pick`\<[`User`](User.md), `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object` & `Pick`\<`SubredditContributorUser`, `"date"`\>
#### Overrides
diff --git a/docs/api/redditapi/models/classes/SubredditDescription.md b/docs/api/redditapi/models/classes/SubredditDescription.md
index 64465dd9..8588d0b8 100644
--- a/docs/api/redditapi/models/classes/SubredditDescription.md
+++ b/docs/api/redditapi/models/classes/SubredditDescription.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/classes/SubredditModeratorUser.md b/docs/api/redditapi/models/classes/SubredditModeratorUser.md
index 3f9335a4..e7d4f2db 100644
--- a/docs/api/redditapi/models/classes/SubredditModeratorUser.md
+++ b/docs/api/redditapi/models/classes/SubredditModeratorUser.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -206,7 +206,7 @@ The ID (starting with t2_) of the user to retrieve.
> **get** **isAdmin**(): `boolean`
-Whether the user is admin.
+Whether the user is a Reddit employee.
##### Returns
@@ -591,11 +591,11 @@ The GetUserKarmaForSubredditResponse, containing the user's karma for comments a
### toJSON()
-> **toJSON**(): `Pick`\<[`User`](User.md), `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditModeratorUser`, `"date"` \| `"moderatorInfo"`\>
+> **toJSON**(): `Pick`\<[`User`](User.md), `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object` & `Pick`\<`SubredditModeratorUser`, `"date"` \| `"moderatorInfo"`\>
#### Returns
-`Pick`\<[`User`](User.md), `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditModeratorUser`, `"date"` \| `"moderatorInfo"`\>
+`Pick`\<[`User`](User.md), `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object` & `Pick`\<`SubredditModeratorUser`, `"date"` \| `"moderatorInfo"`\>
#### Overrides
diff --git a/docs/api/redditapi/models/classes/SubredditMutedUser.md b/docs/api/redditapi/models/classes/SubredditMutedUser.md
index 0e5129fb..814857df 100644
--- a/docs/api/redditapi/models/classes/SubredditMutedUser.md
+++ b/docs/api/redditapi/models/classes/SubredditMutedUser.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -177,7 +177,7 @@ The ID (starting with t2_) of the user to retrieve.
> **get** **isAdmin**(): `boolean`
-Whether the user is admin.
+Whether the user is a Reddit employee.
##### Returns
@@ -562,11 +562,11 @@ The GetUserKarmaForSubredditResponse, containing the user's karma for comments a
### toJSON()
-> **toJSON**(): `Pick`\<[`User`](User.md), `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditMutedUser`, `"date"`\>
+> **toJSON**(): `Pick`\<[`User`](User.md), `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object` & `Pick`\<`SubredditMutedUser`, `"date"`\>
#### Returns
-`Pick`\<[`User`](User.md), `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditMutedUser`, `"date"`\>
+`Pick`\<[`User`](User.md), `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object` & `Pick`\<`SubredditMutedUser`, `"date"`\>
#### Overrides
diff --git a/docs/api/redditapi/models/classes/SubredditRulesWidget.md b/docs/api/redditapi/models/classes/SubredditRulesWidget.md
index 8eb0ccf2..409b1709 100644
--- a/docs/api/redditapi/models/classes/SubredditRulesWidget.md
+++ b/docs/api/redditapi/models/classes/SubredditRulesWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -14,7 +14,7 @@
### new SubredditRulesWidget()
-> **new SubredditRulesWidget**(`subredditAboutRulesRsp`, `widgetData`, `subredditName`, `metadata`): `SubredditRulesWidget`
+> **new SubredditRulesWidget**(`subredditAboutRulesRsp`, `widgetData`, `subredditName`): `SubredditRulesWidget`
#### Parameters
@@ -30,10 +30,6 @@
`string`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`SubredditRulesWidget`
@@ -132,11 +128,11 @@
### toJSON()
-> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`SubredditRulesWidget`, `"rules"`\>
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`SubredditRulesWidget`, `"rules"`\>
#### Returns
-`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`SubredditRulesWidget`, `"rules"`\>
+`Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`SubredditRulesWidget`, `"rules"`\>
#### Overrides
diff --git a/docs/api/redditapi/models/classes/SubredditWikiBannedUser.md b/docs/api/redditapi/models/classes/SubredditWikiBannedUser.md
index 1600ed09..a586667c 100644
--- a/docs/api/redditapi/models/classes/SubredditWikiBannedUser.md
+++ b/docs/api/redditapi/models/classes/SubredditWikiBannedUser.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -197,7 +197,7 @@ The ID (starting with t2_) of the user to retrieve.
> **get** **isAdmin**(): `boolean`
-Whether the user is admin.
+Whether the user is a Reddit employee.
##### Returns
@@ -582,11 +582,11 @@ The GetUserKarmaForSubredditResponse, containing the user's karma for comments a
### toJSON()
-> **toJSON**(): `Pick`\<[`User`](User.md), `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditWikiBannedUser`, `"date"`\> & `object`
+> **toJSON**(): `Pick`\<[`User`](User.md), `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object` & `Pick`\<`SubredditWikiBannedUser`, `"date"`\> & `object`
#### Returns
-`Pick`\<[`User`](User.md), `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditWikiBannedUser`, `"date"`\> & `object`
+`Pick`\<[`User`](User.md), `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object` & `Pick`\<`SubredditWikiBannedUser`, `"date"`\> & `object`
#### Overrides
diff --git a/docs/api/redditapi/models/classes/SubredditWikiContributorUser.md b/docs/api/redditapi/models/classes/SubredditWikiContributorUser.md
index ce6c0890..853e5e10 100644
--- a/docs/api/redditapi/models/classes/SubredditWikiContributorUser.md
+++ b/docs/api/redditapi/models/classes/SubredditWikiContributorUser.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -177,7 +177,7 @@ The ID (starting with t2_) of the user to retrieve.
> **get** **isAdmin**(): `boolean`
-Whether the user is admin.
+Whether the user is a Reddit employee.
##### Returns
@@ -562,11 +562,11 @@ The GetUserKarmaForSubredditResponse, containing the user's karma for comments a
### toJSON()
-> **toJSON**(): `Pick`\<[`User`](User.md), `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditWikiContributorUser`, `"date"`\>
+> **toJSON**(): `Pick`\<[`User`](User.md), `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object` & `Pick`\<`SubredditWikiContributorUser`, `"date"`\>
#### Returns
-`Pick`\<[`User`](User.md), `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object` & `Pick`\<`SubredditWikiContributorUser`, `"date"`\>
+`Pick`\<[`User`](User.md), `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object` & `Pick`\<`SubredditWikiContributorUser`, `"date"`\>
#### Overrides
diff --git a/docs/api/redditapi/models/classes/SubredditWikiSettings.md b/docs/api/redditapi/models/classes/SubredditWikiSettings.md
index e5982b8c..81364311 100644
--- a/docs/api/redditapi/models/classes/SubredditWikiSettings.md
+++ b/docs/api/redditapi/models/classes/SubredditWikiSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/classes/TextAreaWidget.md b/docs/api/redditapi/models/classes/TextAreaWidget.md
index 1c4aaa3b..3c64f913 100644
--- a/docs/api/redditapi/models/classes/TextAreaWidget.md
+++ b/docs/api/redditapi/models/classes/TextAreaWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -14,7 +14,7 @@
### new TextAreaWidget()
-> **new TextAreaWidget**(`widgetData`, `subredditName`, `metadata`): `TextAreaWidget`
+> **new TextAreaWidget**(`widgetData`, `subredditName`): `TextAreaWidget`
#### Parameters
@@ -26,10 +26,6 @@
`string`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`TextAreaWidget`
@@ -142,11 +138,11 @@
### toJSON()
-> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`TextAreaWidget`, `"text"` \| `"styles"`\>
+> **toJSON**(): `Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`TextAreaWidget`, `"text"` \| `"styles"`\>
#### Returns
-`Pick`\<[`Widget`](Widget.md), `"subredditName"` \| `"id"` \| `"name"`\> & `Pick`\<`TextAreaWidget`, `"text"` \| `"styles"`\>
+`Pick`\<[`Widget`](Widget.md), `"name"` \| `"id"` \| `"subredditName"`\> & `Pick`\<`TextAreaWidget`, `"text"` \| `"styles"`\>
#### Overrides
diff --git a/docs/api/redditapi/models/classes/User.md b/docs/api/redditapi/models/classes/User.md
index b69905eb..bf3eee62 100644
--- a/docs/api/redditapi/models/classes/User.md
+++ b/docs/api/redditapi/models/classes/User.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -143,7 +143,7 @@ The ID (starting with t2_) of the user to retrieve.
> **get** **isAdmin**(): `boolean`
-Whether the user is admin.
+Whether the user is a Reddit employee.
##### Returns
@@ -460,8 +460,8 @@ The GetUserKarmaForSubredditResponse, containing the user's karma for comments a
### toJSON()
-> **toJSON**(): `Pick`\<`User`, `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object`
+> **toJSON**(): `Pick`\<`User`, `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object`
#### Returns
-`Pick`\<`User`, `"username"` \| `"id"` \| `"createdAt"` \| `"nsfw"` \| `"linkKarma"` \| `"commentKarma"`\> & `object`
+`Pick`\<`User`, `"id"` \| `"username"` \| `"createdAt"` \| `"linkKarma"` \| `"commentKarma"` \| `"nsfw"`\> & `object`
diff --git a/docs/api/redditapi/models/classes/Widget.md b/docs/api/redditapi/models/classes/Widget.md
index e86bf749..bf6729c8 100644
--- a/docs/api/redditapi/models/classes/Widget.md
+++ b/docs/api/redditapi/models/classes/Widget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -21,7 +21,7 @@
### new Widget()
-> **new Widget**(`widgetData`, `subredditName`, `metadata`): `Widget`
+> **new Widget**(`widgetData`, `subredditName`): `Widget`
#### Parameters
@@ -33,10 +33,6 @@
`string`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`Widget`
@@ -101,8 +97,8 @@
### toJSON()
-> **toJSON**(): `Pick`\<`Widget`, `"subredditName"` \| `"id"` \| `"name"`\>
+> **toJSON**(): `Pick`\<`Widget`, `"name"` \| `"id"` \| `"subredditName"`\>
#### Returns
-`Pick`\<`Widget`, `"subredditName"` \| `"id"` \| `"name"`\>
+`Pick`\<`Widget`, `"name"` \| `"id"` \| `"subredditName"`\>
diff --git a/docs/api/redditapi/models/classes/WikiPage.md b/docs/api/redditapi/models/classes/WikiPage.md
index 29d1a47c..c17f2f33 100644
--- a/docs/api/redditapi/models/classes/WikiPage.md
+++ b/docs/api/redditapi/models/classes/WikiPage.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -232,11 +232,11 @@ Revert this page to a previous revision.
### toJSON()
-> **toJSON**(): `Pick`\<`WikiPage`, `"subredditName"` \| `"name"` \| `"content"` \| `"contentHtml"` \| `"revisionId"` \| `"revisionDate"` \| `"revisionReason"`\> & `object`
+> **toJSON**(): `Pick`\<`WikiPage`, `"name"` \| `"subredditName"` \| `"content"` \| `"contentHtml"` \| `"revisionId"` \| `"revisionDate"` \| `"revisionReason"`\> & `object`
#### Returns
-`Pick`\<`WikiPage`, `"subredditName"` \| `"name"` \| `"content"` \| `"contentHtml"` \| `"revisionId"` \| `"revisionDate"` \| `"revisionReason"`\> & `object`
+`Pick`\<`WikiPage`, `"name"` \| `"subredditName"` \| `"content"` \| `"contentHtml"` \| `"revisionId"` \| `"revisionDate"` \| `"revisionReason"`\> & `object`
***
diff --git a/docs/api/redditapi/models/classes/WikiPageRevision.md b/docs/api/redditapi/models/classes/WikiPageRevision.md
index 3443a331..536c6d9d 100644
--- a/docs/api/redditapi/models/classes/WikiPageRevision.md
+++ b/docs/api/redditapi/models/classes/WikiPageRevision.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -10,7 +10,7 @@
### new WikiPageRevision()
-> **new WikiPageRevision**(`data`, `metadata`): `WikiPageRevision`
+> **new WikiPageRevision**(`data`): `WikiPageRevision`
#### Parameters
@@ -18,10 +18,6 @@
`WikiPageRevision`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`WikiPageRevision`
@@ -76,11 +72,11 @@
#### Get Signature
-> **get** **id**(): `` `${string}-${string}-${string}-${string}-${string}` ``
+> **get** **id**(): `string`
##### Returns
-`` `${string}-${string}-${string}-${string}-${string}` ``
+`string`
***
@@ -116,8 +112,8 @@
### toJSON()
-> **toJSON**(): `Pick`\<`WikiPageRevision`, `"reason"` \| `"id"` \| `"hidden"` \| `"date"` \| `"page"`\> & `object`
+> **toJSON**(): `Pick`\<`WikiPageRevision`, `"reason"` \| `"id"` \| `"date"` \| `"hidden"` \| `"page"`\> & `object`
#### Returns
-`Pick`\<`WikiPageRevision`, `"reason"` \| `"id"` \| `"hidden"` \| `"date"` \| `"page"`\> & `object`
+`Pick`\<`WikiPageRevision`, `"reason"` \| `"id"` \| `"date"` \| `"hidden"` \| `"page"`\> & `object`
diff --git a/docs/api/redditapi/models/classes/WikiPageSettings.md b/docs/api/redditapi/models/classes/WikiPageSettings.md
index 80db37d3..bbc9bc52 100644
--- a/docs/api/redditapi/models/classes/WikiPageSettings.md
+++ b/docs/api/redditapi/models/classes/WikiPageSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -10,7 +10,7 @@
### new WikiPageSettings()
-> **new WikiPageSettings**(`data`, `metadata`): `WikiPageSettings`
+> **new WikiPageSettings**(`data`): `WikiPageSettings`
#### Parameters
@@ -18,10 +18,6 @@
`WikiPageSettings_Data`
-##### metadata
-
-`undefined` | `Metadata`
-
#### Returns
`WikiPageSettings`
diff --git a/docs/api/redditapi/models/enumerations/AboutLocations.md b/docs/api/redditapi/models/enumerations/AboutLocations.md
index 8535f953..8c3db616 100644
--- a/docs/api/redditapi/models/enumerations/AboutLocations.md
+++ b/docs/api/redditapi/models/enumerations/AboutLocations.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/enumerations/FlairType.md b/docs/api/redditapi/models/enumerations/FlairType.md
index 666c83be..327f1eb2 100644
--- a/docs/api/redditapi/models/enumerations/FlairType.md
+++ b/docs/api/redditapi/models/enumerations/FlairType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/enumerations/ModMailActionType.md b/docs/api/redditapi/models/enumerations/ModMailActionType.md
index 8ba7f467..16ce5d75 100644
--- a/docs/api/redditapi/models/enumerations/ModMailActionType.md
+++ b/docs/api/redditapi/models/enumerations/ModMailActionType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/enumerations/ModMailConversationState.md b/docs/api/redditapi/models/enumerations/ModMailConversationState.md
index 3869cdfc..26920b2c 100644
--- a/docs/api/redditapi/models/enumerations/ModMailConversationState.md
+++ b/docs/api/redditapi/models/enumerations/ModMailConversationState.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/enumerations/SocialLinkType.md b/docs/api/redditapi/models/enumerations/SocialLinkType.md
index 67221eae..ff405143 100644
--- a/docs/api/redditapi/models/enumerations/SocialLinkType.md
+++ b/docs/api/redditapi/models/enumerations/SocialLinkType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/enumerations/WikiPagePermissionLevel.md b/docs/api/redditapi/models/enumerations/WikiPagePermissionLevel.md
index 3f87c4ae..e266fdfa 100644
--- a/docs/api/redditapi/models/enumerations/WikiPagePermissionLevel.md
+++ b/docs/api/redditapi/models/enumerations/WikiPagePermissionLevel.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/functions/getModerationLog.md b/docs/api/redditapi/models/functions/getModerationLog.md
index 15de7dc2..a0efb30c 100644
--- a/docs/api/redditapi/models/functions/getModerationLog.md
+++ b/docs/api/redditapi/models/functions/getModerationLog.md
@@ -1,10 +1,10 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
# Function: getModerationLog()
-> **getModerationLog**(`options`, `metadata`): [`Listing`](../classes/Listing.md)\<[`ModAction`](../interfaces/ModAction.md)\>
+> **getModerationLog**(`options`): [`Listing`](../classes/Listing.md)\<[`ModAction`](../interfaces/ModAction.md)\>
## Parameters
@@ -12,10 +12,6 @@
[`GetModerationLogOptions`](../type-aliases/GetModerationLogOptions.md)
-### metadata
-
-`undefined` | `Metadata`
-
## Returns
[`Listing`](../classes/Listing.md)\<[`ModAction`](../interfaces/ModAction.md)\>
diff --git a/docs/api/redditapi/models/functions/getSubredditInfoById.md b/docs/api/redditapi/models/functions/getSubredditInfoById.md
index 2ef813f1..838245c2 100644
--- a/docs/api/redditapi/models/functions/getSubredditInfoById.md
+++ b/docs/api/redditapi/models/functions/getSubredditInfoById.md
@@ -1,10 +1,10 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
# Function: getSubredditInfoById()
-> **getSubredditInfoById**(`subredditId`, `metadata`): `Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+> **getSubredditInfoById**(`subredditId`): `Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
Gets a [SubredditInfo](../type-aliases/SubredditInfo.md) object by ID
@@ -12,13 +12,9 @@ Gets a [SubredditInfo](../type-aliases/SubredditInfo.md) object by ID
### subredditId
-`string`
+`` `t5_${string}` ``
-### metadata
-
-Optional RPC metadata passed with every request.
-
-`undefined` | `Metadata`
+The ID (starting with t5_) of the subreddit to retrieve. e.g. t5_2qjpg
## Returns
diff --git a/docs/api/redditapi/models/functions/getSubredditInfoByName.md b/docs/api/redditapi/models/functions/getSubredditInfoByName.md
index 46c08684..f8dd7157 100644
--- a/docs/api/redditapi/models/functions/getSubredditInfoByName.md
+++ b/docs/api/redditapi/models/functions/getSubredditInfoByName.md
@@ -1,10 +1,10 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
# Function: getSubredditInfoByName()
-> **getSubredditInfoByName**(`subredditName`, `metadata`): `Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
+> **getSubredditInfoByName**(`subredditName`): `Promise`\<[`SubredditInfo`](../type-aliases/SubredditInfo.md)\>
Gets a [SubredditInfo](../type-aliases/SubredditInfo.md) object by name
@@ -14,11 +14,7 @@ Gets a [SubredditInfo](../type-aliases/SubredditInfo.md) object by name
`string`
-### metadata
-
-Optional RPC metadata passed with every request.
-
-`undefined` | `Metadata`
+The name of a subreddit omitting the r/. This is case-insensitive.
## Returns
diff --git a/docs/api/redditapi/models/functions/getSubredditLeaderboard.md b/docs/api/redditapi/models/functions/getSubredditLeaderboard.md
index 1b7856cf..c2b7eb63 100644
--- a/docs/api/redditapi/models/functions/getSubredditLeaderboard.md
+++ b/docs/api/redditapi/models/functions/getSubredditLeaderboard.md
@@ -1,20 +1,16 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
# Function: getSubredditLeaderboard()
-> **getSubredditLeaderboard**(`subredditId`, `metadata`): `Promise`\<[`SubredditLeaderboard`](../type-aliases/SubredditLeaderboard.md)\>
+> **getSubredditLeaderboard**(`subredditId`): `Promise`\<[`SubredditLeaderboard`](../type-aliases/SubredditLeaderboard.md)\>
## Parameters
### subredditId
-`string`
-
-### metadata
-
-`undefined` | `Metadata`
+`` `t5_${string}` ``
## Returns
diff --git a/docs/api/redditapi/models/functions/getSubredditStyles.md b/docs/api/redditapi/models/functions/getSubredditStyles.md
index e1f1e203..12539354 100644
--- a/docs/api/redditapi/models/functions/getSubredditStyles.md
+++ b/docs/api/redditapi/models/functions/getSubredditStyles.md
@@ -1,20 +1,16 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
# Function: getSubredditStyles()
-> **getSubredditStyles**(`subredditId`, `metadata`): `Promise`\<[`SubredditStyles`](../type-aliases/SubredditStyles.md)\>
+> **getSubredditStyles**(`subredditId`): `Promise`\<[`SubredditStyles`](../type-aliases/SubredditStyles.md)\>
## Parameters
### subredditId
-`string`
-
-### metadata
-
-`undefined` | `Metadata`
+`` `t5_${string}` ``
## Returns
diff --git a/docs/api/redditapi/models/functions/getVaultByAddress.md b/docs/api/redditapi/models/functions/getVaultByAddress.md
index 3745524b..f429fac2 100644
--- a/docs/api/redditapi/models/functions/getVaultByAddress.md
+++ b/docs/api/redditapi/models/functions/getVaultByAddress.md
@@ -1,10 +1,10 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
# Function: getVaultByAddress()
-> **getVaultByAddress**(`address`, `metadata`): `Promise`\<[`Vault`](../type-aliases/Vault.md)\>
+> **getVaultByAddress**(`address`): `Promise`\<[`Vault`](../type-aliases/Vault.md)\>
## Parameters
@@ -12,10 +12,6 @@
`string`
-### metadata
-
-`undefined` | `Metadata`
-
## Returns
`Promise`\<[`Vault`](../type-aliases/Vault.md)\>
diff --git a/docs/api/redditapi/models/functions/getVaultByUserId.md b/docs/api/redditapi/models/functions/getVaultByUserId.md
index cf50f5a4..f5f8eb80 100644
--- a/docs/api/redditapi/models/functions/getVaultByUserId.md
+++ b/docs/api/redditapi/models/functions/getVaultByUserId.md
@@ -1,10 +1,10 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
# Function: getVaultByUserId()
-> **getVaultByUserId**(`userId`, `metadata`): `Promise`\<[`Vault`](../type-aliases/Vault.md)\>
+> **getVaultByUserId**(`userId`): `Promise`\<[`Vault`](../type-aliases/Vault.md)\>
## Parameters
@@ -12,10 +12,6 @@
`` `t2_${string}` ``
-### metadata
-
-`undefined` | `Metadata`
-
## Returns
`Promise`\<[`Vault`](../type-aliases/Vault.md)\>
diff --git a/docs/api/redditapi/models/interfaces/ModAction.md b/docs/api/redditapi/models/interfaces/ModAction.md
index 664faf67..1c22fa5b 100644
--- a/docs/api/redditapi/models/interfaces/ModAction.md
+++ b/docs/api/redditapi/models/interfaces/ModAction.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -58,9 +58,7 @@ identifying the ModAction.
### moderatorId
-> **moderatorId**: `string`
-
-The t2_ id of the moderator.
+> **moderatorId**: `` `t2_${string}` ``
***
@@ -78,7 +76,7 @@ The username of the moderator.
### subredditId
-> **subredditId**: `string`
+> **subredditId**: `` `t5_${string}` ``
The ID of the subreddit the action took place.
diff --git a/docs/api/redditapi/models/type-aliases/AboutSubredditTypes.md b/docs/api/redditapi/models/type-aliases/AboutSubredditTypes.md
index adab734d..847eb6f4 100644
--- a/docs/api/redditapi/models/type-aliases/AboutSubredditTypes.md
+++ b/docs/api/redditapi/models/type-aliases/AboutSubredditTypes.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/AddRemovalNoteOptions.md b/docs/api/redditapi/models/type-aliases/AddRemovalNoteOptions.md
index 0a43a5a5..0f1f77b8 100644
--- a/docs/api/redditapi/models/type-aliases/AddRemovalNoteOptions.md
+++ b/docs/api/redditapi/models/type-aliases/AddRemovalNoteOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/AddWidgetData.md b/docs/api/redditapi/models/type-aliases/AddWidgetData.md
index d099a408..32eaf84b 100644
--- a/docs/api/redditapi/models/type-aliases/AddWidgetData.md
+++ b/docs/api/redditapi/models/type-aliases/AddWidgetData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/AllowableFlairContent.md b/docs/api/redditapi/models/type-aliases/AllowableFlairContent.md
index cbab0a40..6590ef0a 100644
--- a/docs/api/redditapi/models/type-aliases/AllowableFlairContent.md
+++ b/docs/api/redditapi/models/type-aliases/AllowableFlairContent.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/BackgroundImagePosition.md b/docs/api/redditapi/models/type-aliases/BackgroundImagePosition.md
index cef4afab..d9ea0089 100644
--- a/docs/api/redditapi/models/type-aliases/BackgroundImagePosition.md
+++ b/docs/api/redditapi/models/type-aliases/BackgroundImagePosition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/BanUserOptions.md b/docs/api/redditapi/models/type-aliases/BanUserOptions.md
index 36b9337c..a619a211 100644
--- a/docs/api/redditapi/models/type-aliases/BanUserOptions.md
+++ b/docs/api/redditapi/models/type-aliases/BanUserOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -14,8 +14,6 @@
> `optional` **context**: `string`
-The id of the post or comment you want to cite as rule breaking.
-
***
@@ -24,8 +22,6 @@ The id of the post or comment you want to cite as rule breaking.
> `optional` **duration**: `number`
-The duration of the ban, in days. Use 0 for permanent; otherwise, it must be in the range of 1 to 999.
-
***
@@ -34,8 +30,6 @@ The duration of the ban, in days. Use 0 for permanent; otherwise, it must be in
> `optional` **message**: `string`
-The message to display to the user. (The "Note from the moderators:" in the ban message modmail.)
-
***
@@ -44,8 +38,6 @@ The message to display to the user. (The "Note from the moderators:" in the ban
> `optional` **note**: `string`
-The reason to show in the modlog, and the UI's user notes. This isn't show to the user, just other moderators.
-
***
@@ -54,8 +46,6 @@ The reason to show in the modlog, and the UI's user notes. This isn't show to th
> `optional` **reason**: `string`
-The reason for the ban. This shows up in the Banned Users Menu.
-
***
@@ -64,8 +54,6 @@ The reason for the ban. This shows up in the Banned Users Menu.
> **subredditName**: `string`
-The name of the subreddit you want to ban the user from.
-
***
@@ -73,5 +61,3 @@ The name of the subreddit you want to ban the user from.
### username
> **username**: `string`
-
-The username of the user you want to ban.
diff --git a/docs/api/redditapi/models/type-aliases/BanWikiContributorOptions.md b/docs/api/redditapi/models/type-aliases/BanWikiContributorOptions.md
index ea93e33d..b7a04e38 100644
--- a/docs/api/redditapi/models/type-aliases/BanWikiContributorOptions.md
+++ b/docs/api/redditapi/models/type-aliases/BanWikiContributorOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/BannerHeight.md b/docs/api/redditapi/models/type-aliases/BannerHeight.md
index 06eb8bea..a2f3942f 100644
--- a/docs/api/redditapi/models/type-aliases/BannerHeight.md
+++ b/docs/api/redditapi/models/type-aliases/BannerHeight.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/CommentMediaTypes.md b/docs/api/redditapi/models/type-aliases/CommentMediaTypes.md
index 576f6229..d0c20c87 100644
--- a/docs/api/redditapi/models/type-aliases/CommentMediaTypes.md
+++ b/docs/api/redditapi/models/type-aliases/CommentMediaTypes.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/CommentSort.md b/docs/api/redditapi/models/type-aliases/CommentSort.md
index dd607c1c..7a9972f0 100644
--- a/docs/api/redditapi/models/type-aliases/CommentSort.md
+++ b/docs/api/redditapi/models/type-aliases/CommentSort.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/CommentSubmissionOptions.md b/docs/api/redditapi/models/type-aliases/CommentSubmissionOptions.md
index 213320e0..5c140f5f 100644
--- a/docs/api/redditapi/models/type-aliases/CommentSubmissionOptions.md
+++ b/docs/api/redditapi/models/type-aliases/CommentSubmissionOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/CommonFlair.md b/docs/api/redditapi/models/type-aliases/CommonFlair.md
index 7dd903f2..0f71ca65 100644
--- a/docs/api/redditapi/models/type-aliases/CommonFlair.md
+++ b/docs/api/redditapi/models/type-aliases/CommonFlair.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -16,7 +16,7 @@ This type is used for both the link and author flairs on Post and Comment object
> `optional` **backgroundColor**: `string`
-Flair background color as a hex color string (# prefixed) or transparent
+Flair background color as a hex color string (# prefixed)
#### Example
diff --git a/docs/api/redditapi/models/type-aliases/CommonSubmitPostOptions.md b/docs/api/redditapi/models/type-aliases/CommonSubmitPostOptions.md
index 71be3eee..54c30af5 100644
--- a/docs/api/redditapi/models/type-aliases/CommonSubmitPostOptions.md
+++ b/docs/api/redditapi/models/type-aliases/CommonSubmitPostOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/CommunityNameFormat.md b/docs/api/redditapi/models/type-aliases/CommunityNameFormat.md
index fa11aba9..3c780564 100644
--- a/docs/api/redditapi/models/type-aliases/CommunityNameFormat.md
+++ b/docs/api/redditapi/models/type-aliases/CommunityNameFormat.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ConversationData.md b/docs/api/redditapi/models/type-aliases/ConversationData.md
index f6e8d430..e72e840a 100644
--- a/docs/api/redditapi/models/type-aliases/ConversationData.md
+++ b/docs/api/redditapi/models/type-aliases/ConversationData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -215,4 +215,4 @@ Subreddit owning the modmail conversation
#### id?
-> `optional` **id**: `string`
+> `optional` **id**: `T5`
diff --git a/docs/api/redditapi/models/type-aliases/ConversationResponse.md b/docs/api/redditapi/models/type-aliases/ConversationResponse.md
index 281439f3..d14ce448 100644
--- a/docs/api/redditapi/models/type-aliases/ConversationResponse.md
+++ b/docs/api/redditapi/models/type-aliases/ConversationResponse.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ConversationStateFilter.md b/docs/api/redditapi/models/type-aliases/ConversationStateFilter.md
index bcc79ae0..37b874f2 100644
--- a/docs/api/redditapi/models/type-aliases/ConversationStateFilter.md
+++ b/docs/api/redditapi/models/type-aliases/ConversationStateFilter.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ConversationUserData.md b/docs/api/redditapi/models/type-aliases/ConversationUserData.md
index c20277f6..cd63b799 100644
--- a/docs/api/redditapi/models/type-aliases/ConversationUserData.md
+++ b/docs/api/redditapi/models/type-aliases/ConversationUserData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -58,7 +58,7 @@ When was created
### id?
-> `optional` **id**: `string`
+> `optional` **id**: `T2`
User ID
@@ -124,7 +124,7 @@ Recent comments
#### Index Signature
-\[`id`: `string`\]: `object`
+\[`id`: `` `t1_${string}` ``\]: `object`
***
@@ -152,4 +152,4 @@ Recent posts
#### Index Signature
-\[`id`: `string`\]: `object`
+\[`id`: `` `t3_${string}` ``\]: `object`
diff --git a/docs/api/redditapi/models/type-aliases/CreateFlairTemplateOptions.md b/docs/api/redditapi/models/type-aliases/CreateFlairTemplateOptions.md
index e5c3a834..439a1a29 100644
--- a/docs/api/redditapi/models/type-aliases/CreateFlairTemplateOptions.md
+++ b/docs/api/redditapi/models/type-aliases/CreateFlairTemplateOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/CreateModNoteOptions.md b/docs/api/redditapi/models/type-aliases/CreateModNoteOptions.md
index 666f2432..2e63780d 100644
--- a/docs/api/redditapi/models/type-aliases/CreateModNoteOptions.md
+++ b/docs/api/redditapi/models/type-aliases/CreateModNoteOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/CreateRelationshipOptions.md b/docs/api/redditapi/models/type-aliases/CreateRelationshipOptions.md
index bf8d49f0..f23785bf 100644
--- a/docs/api/redditapi/models/type-aliases/CreateRelationshipOptions.md
+++ b/docs/api/redditapi/models/type-aliases/CreateRelationshipOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/CreateRuleOptions.md b/docs/api/redditapi/models/type-aliases/CreateRuleOptions.md
index d05400bf..5adb6d11 100644
--- a/docs/api/redditapi/models/type-aliases/CreateRuleOptions.md
+++ b/docs/api/redditapi/models/type-aliases/CreateRuleOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/CreateWikiPageOptions.md b/docs/api/redditapi/models/type-aliases/CreateWikiPageOptions.md
index 3f720582..da01d422 100644
--- a/docs/api/redditapi/models/type-aliases/CreateWikiPageOptions.md
+++ b/docs/api/redditapi/models/type-aliases/CreateWikiPageOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/CrosspostOptions.md b/docs/api/redditapi/models/type-aliases/CrosspostOptions.md
index 86907e71..1deac0a6 100644
--- a/docs/api/redditapi/models/type-aliases/CrosspostOptions.md
+++ b/docs/api/redditapi/models/type-aliases/CrosspostOptions.md
@@ -1,17 +1,13 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
# Type Alias: CrosspostOptions
-> **CrosspostOptions** = [`CommonSubmitPostOptions`](CommonSubmitPostOptions.md) & `object`
+> **CrosspostOptions** = [`CommonSubmitPostOptions`](CommonSubmitPostOptions.md) & `Required`\<[`SubredditOptions`](SubredditOptions.md)\> & `object`
## Type declaration
### postId
-> **postId**: `string`
-
-### subredditName
-
-> **subredditName**: `string`
+> **postId**: `T3`
diff --git a/docs/api/redditapi/models/type-aliases/CrowdControlLevel.md b/docs/api/redditapi/models/type-aliases/CrowdControlLevel.md
index 616e8d89..67ae7cdb 100644
--- a/docs/api/redditapi/models/type-aliases/CrowdControlLevel.md
+++ b/docs/api/redditapi/models/type-aliases/CrowdControlLevel.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/CustomPostRichTextFallback.md b/docs/api/redditapi/models/type-aliases/CustomPostRichTextFallback.md
new file mode 100644
index 00000000..06b156b2
--- /dev/null
+++ b/docs/api/redditapi/models/type-aliases/CustomPostRichTextFallback.md
@@ -0,0 +1,7 @@
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
+
+***
+
+# Type Alias: CustomPostRichTextFallback
+
+> **CustomPostRichTextFallback** = `RichTextBuilder` \| `string`
diff --git a/docs/api/redditapi/models/type-aliases/CustomPostTextFallbackOptions.md b/docs/api/redditapi/models/type-aliases/CustomPostTextFallbackOptions.md
new file mode 100644
index 00000000..ab30b8bd
--- /dev/null
+++ b/docs/api/redditapi/models/type-aliases/CustomPostTextFallbackOptions.md
@@ -0,0 +1,23 @@
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
+
+***
+
+# Type Alias: CustomPostTextFallbackOptions
+
+> **CustomPostTextFallbackOptions** = \{ `text`: `string`; \} \| \{ `richtext`: [`CustomPostRichTextFallback`](CustomPostRichTextFallback.md); \}
+
+## Type declaration
+
+\{ `text`: `string`; \}
+
+### text
+
+> **text**: `string`
+
+May also include markdown. See https://www.reddit.com/r/reddit.com/wiki/markdown/
+
+\{ `richtext`: [`CustomPostRichTextFallback`](CustomPostRichTextFallback.md); \}
+
+### richtext
+
+> **richtext**: [`CustomPostRichTextFallback`](CustomPostRichTextFallback.md)
diff --git a/docs/api/redditapi/models/type-aliases/CustomizationFlag.md b/docs/api/redditapi/models/type-aliases/CustomizationFlag.md
index ea2bbc14..efff7b55 100644
--- a/docs/api/redditapi/models/type-aliases/CustomizationFlag.md
+++ b/docs/api/redditapi/models/type-aliases/CustomizationFlag.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/DeleteNotesOptions.md b/docs/api/redditapi/models/type-aliases/DeleteNotesOptions.md
index cc2424b4..7f67a537 100644
--- a/docs/api/redditapi/models/type-aliases/DeleteNotesOptions.md
+++ b/docs/api/redditapi/models/type-aliases/DeleteNotesOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/EditCommentOptions.md b/docs/api/redditapi/models/type-aliases/EditCommentOptions.md
index 6f368a6b..447fed53 100644
--- a/docs/api/redditapi/models/type-aliases/EditCommentOptions.md
+++ b/docs/api/redditapi/models/type-aliases/EditCommentOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/EditFlairTemplateOptions.md b/docs/api/redditapi/models/type-aliases/EditFlairTemplateOptions.md
index 629df011..cc1f2ed0 100644
--- a/docs/api/redditapi/models/type-aliases/EditFlairTemplateOptions.md
+++ b/docs/api/redditapi/models/type-aliases/EditFlairTemplateOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/EnrichedThumbnail.md b/docs/api/redditapi/models/type-aliases/EnrichedThumbnail.md
index 08e6af7b..92c285a5 100644
--- a/docs/api/redditapi/models/type-aliases/EnrichedThumbnail.md
+++ b/docs/api/redditapi/models/type-aliases/EnrichedThumbnail.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/FlairBackgroundColor.md b/docs/api/redditapi/models/type-aliases/FlairBackgroundColor.md
index 928d7da6..beb478b6 100644
--- a/docs/api/redditapi/models/type-aliases/FlairBackgroundColor.md
+++ b/docs/api/redditapi/models/type-aliases/FlairBackgroundColor.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/FlairSettings.md b/docs/api/redditapi/models/type-aliases/FlairSettings.md
index 7ecf3841..02e60606 100644
--- a/docs/api/redditapi/models/type-aliases/FlairSettings.md
+++ b/docs/api/redditapi/models/type-aliases/FlairSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/FlairTextColor.md b/docs/api/redditapi/models/type-aliases/FlairTextColor.md
index 2c0b297f..3bc17fed 100644
--- a/docs/api/redditapi/models/type-aliases/FlairTextColor.md
+++ b/docs/api/redditapi/models/type-aliases/FlairTextColor.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GalleryMedia.md b/docs/api/redditapi/models/type-aliases/GalleryMedia.md
index c4103d31..a67f31ae 100644
--- a/docs/api/redditapi/models/type-aliases/GalleryMedia.md
+++ b/docs/api/redditapi/models/type-aliases/GalleryMedia.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GalleryMediaStatus.md b/docs/api/redditapi/models/type-aliases/GalleryMediaStatus.md
index 517c0979..2c842c10 100644
--- a/docs/api/redditapi/models/type-aliases/GalleryMediaStatus.md
+++ b/docs/api/redditapi/models/type-aliases/GalleryMediaStatus.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetBestPostsOptions.md b/docs/api/redditapi/models/type-aliases/GetBestPostsOptions.md
index 5b99b8d8..4f608998 100644
--- a/docs/api/redditapi/models/type-aliases/GetBestPostsOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetBestPostsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetCommentsByUserOptions.md b/docs/api/redditapi/models/type-aliases/GetCommentsByUserOptions.md
index 9fcb2630..8cf087d3 100644
--- a/docs/api/redditapi/models/type-aliases/GetCommentsByUserOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetCommentsByUserOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetCommentsOptions.md b/docs/api/redditapi/models/type-aliases/GetCommentsOptions.md
index dcf98eca..ad4fada5 100644
--- a/docs/api/redditapi/models/type-aliases/GetCommentsOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetCommentsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -12,7 +12,7 @@
### commentId?
-> `optional` **commentId**: `string`
+> `optional` **commentId**: `T1`
***
@@ -44,7 +44,7 @@
### postId
-> **postId**: `string`
+> **postId**: `T3`
***
diff --git a/docs/api/redditapi/models/type-aliases/GetConversationResponse.md b/docs/api/redditapi/models/type-aliases/GetConversationResponse.md
index 47a80195..a38b1bd4 100644
--- a/docs/api/redditapi/models/type-aliases/GetConversationResponse.md
+++ b/docs/api/redditapi/models/type-aliases/GetConversationResponse.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetConversationsRequest.md b/docs/api/redditapi/models/type-aliases/GetConversationsRequest.md
index baf9f886..90db1d37 100644
--- a/docs/api/redditapi/models/type-aliases/GetConversationsRequest.md
+++ b/docs/api/redditapi/models/type-aliases/GetConversationsRequest.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetConversationsResponse.md b/docs/api/redditapi/models/type-aliases/GetConversationsResponse.md
index 2392a5a3..46d799cb 100644
--- a/docs/api/redditapi/models/type-aliases/GetConversationsResponse.md
+++ b/docs/api/redditapi/models/type-aliases/GetConversationsResponse.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -36,4 +36,4 @@ Conversations key-value map
### viewerId?
-> `optional` **viewerId**: `string`
+> `optional` **viewerId**: `T2`
diff --git a/docs/api/redditapi/models/type-aliases/GetDuplicatesOptions.md b/docs/api/redditapi/models/type-aliases/GetDuplicatesOptions.md
index 126c1773..ef198a95 100644
--- a/docs/api/redditapi/models/type-aliases/GetDuplicatesOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetDuplicatesOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -16,7 +16,7 @@ Only return duplicates that are crossposting this post.
### postId
-> **postId**: `T3ID`
+> **postId**: `T3`
Post ID with t3_ prefix (e.g. `t3_abc123`). The prefix is stripped internally.
diff --git a/docs/api/redditapi/models/type-aliases/GetHotPostsOptions.md b/docs/api/redditapi/models/type-aliases/GetHotPostsOptions.md
index cea6939f..5f5acc04 100644
--- a/docs/api/redditapi/models/type-aliases/GetHotPostsOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetHotPostsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetModNotesOptions.md b/docs/api/redditapi/models/type-aliases/GetModNotesOptions.md
index 2d54dc72..6350a747 100644
--- a/docs/api/redditapi/models/type-aliases/GetModNotesOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetModNotesOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetModerationLogOptions.md b/docs/api/redditapi/models/type-aliases/GetModerationLogOptions.md
index e6d5907f..2e8430b3 100644
--- a/docs/api/redditapi/models/type-aliases/GetModerationLogOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetModerationLogOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetPageRevisionsOptions.md b/docs/api/redditapi/models/type-aliases/GetPageRevisionsOptions.md
index a2872222..ac820d7c 100644
--- a/docs/api/redditapi/models/type-aliases/GetPageRevisionsOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetPageRevisionsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetPostsByUserOptions.md b/docs/api/redditapi/models/type-aliases/GetPostsByUserOptions.md
index e1ef49b9..eb889f7b 100644
--- a/docs/api/redditapi/models/type-aliases/GetPostsByUserOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetPostsByUserOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetPostsOptions.md b/docs/api/redditapi/models/type-aliases/GetPostsOptions.md
index 5cc28883..2339bd8c 100644
--- a/docs/api/redditapi/models/type-aliases/GetPostsOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetPostsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetPostsOptionsWithTimeframe.md b/docs/api/redditapi/models/type-aliases/GetPostsOptionsWithTimeframe.md
index 16e1761e..a8479b73 100644
--- a/docs/api/redditapi/models/type-aliases/GetPostsOptionsWithTimeframe.md
+++ b/docs/api/redditapi/models/type-aliases/GetPostsOptionsWithTimeframe.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetPrivateMessagesOptions.md b/docs/api/redditapi/models/type-aliases/GetPrivateMessagesOptions.md
index af49ef0d..6f81ed48 100644
--- a/docs/api/redditapi/models/type-aliases/GetPrivateMessagesOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetPrivateMessagesOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetSortedPostsOptions.md b/docs/api/redditapi/models/type-aliases/GetSortedPostsOptions.md
index da4e4c7b..deca3cfe 100644
--- a/docs/api/redditapi/models/type-aliases/GetSortedPostsOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetSortedPostsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetSubredditUsersByTypeOptions.md b/docs/api/redditapi/models/type-aliases/GetSubredditUsersByTypeOptions.md
index d9da9f86..c96cb9f1 100644
--- a/docs/api/redditapi/models/type-aliases/GetSubredditUsersByTypeOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetSubredditUsersByTypeOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md b/docs/api/redditapi/models/type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md
new file mode 100644
index 00000000..8990a747
--- /dev/null
+++ b/docs/api/redditapi/models/type-aliases/GetSubscribedSubredditsForCurrentUserOptions.md
@@ -0,0 +1,39 @@
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
+
+***
+
+# Type Alias: GetSubscribedSubredditsForCurrentUserOptions
+
+> **GetSubscribedSubredditsForCurrentUserOptions** = `object`
+
+## Properties
+
+
+
+### after?
+
+> `optional` **after**: `string`
+
+***
+
+
+
+### before?
+
+> `optional` **before**: `string`
+
+***
+
+
+
+### limit?
+
+> `optional` **limit**: `number`
+
+***
+
+
+
+### pageSize?
+
+> `optional` **pageSize**: `number`
diff --git a/docs/api/redditapi/models/type-aliases/GetUserFlairBySubredditOptions.md b/docs/api/redditapi/models/type-aliases/GetUserFlairBySubredditOptions.md
index a9bc0302..9e5d878d 100644
--- a/docs/api/redditapi/models/type-aliases/GetUserFlairBySubredditOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetUserFlairBySubredditOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetUserFlairBySubredditResponse.md b/docs/api/redditapi/models/type-aliases/GetUserFlairBySubredditResponse.md
index 04382549..550f82d9 100644
--- a/docs/api/redditapi/models/type-aliases/GetUserFlairBySubredditResponse.md
+++ b/docs/api/redditapi/models/type-aliases/GetUserFlairBySubredditResponse.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetUserFlairOptions.md b/docs/api/redditapi/models/type-aliases/GetUserFlairOptions.md
index b11c96fb..c5b1c3aa 100644
--- a/docs/api/redditapi/models/type-aliases/GetUserFlairOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetUserFlairOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/GetUserOverviewOptions.md b/docs/api/redditapi/models/type-aliases/GetUserOverviewOptions.md
index 78704a71..288a46e4 100644
--- a/docs/api/redditapi/models/type-aliases/GetUserOverviewOptions.md
+++ b/docs/api/redditapi/models/type-aliases/GetUserOverviewOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ImagePosition.md b/docs/api/redditapi/models/type-aliases/ImagePosition.md
index 6af4fa7c..852dbfa6 100644
--- a/docs/api/redditapi/models/type-aliases/ImagePosition.md
+++ b/docs/api/redditapi/models/type-aliases/ImagePosition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/InternalSetPostFlairOptions.md b/docs/api/redditapi/models/type-aliases/InternalSetPostFlairOptions.md
index a792ec56..c4f033a5 100644
--- a/docs/api/redditapi/models/type-aliases/InternalSetPostFlairOptions.md
+++ b/docs/api/redditapi/models/type-aliases/InternalSetPostFlairOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -10,4 +10,4 @@
### postId
-> **postId**: `T3ID`
+> **postId**: `T3`
diff --git a/docs/api/redditapi/models/type-aliases/LinkFlair.md b/docs/api/redditapi/models/type-aliases/LinkFlair.md
index 2d0ef693..e01f60f8 100644
--- a/docs/api/redditapi/models/type-aliases/LinkFlair.md
+++ b/docs/api/redditapi/models/type-aliases/LinkFlair.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ListingFetchOptions.md b/docs/api/redditapi/models/type-aliases/ListingFetchOptions.md
index 8a7e34b2..41b2550f 100644
--- a/docs/api/redditapi/models/type-aliases/ListingFetchOptions.md
+++ b/docs/api/redditapi/models/type-aliases/ListingFetchOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ListingFetchResponse.md b/docs/api/redditapi/models/type-aliases/ListingFetchResponse.md
index 07e1c661..95407612 100644
--- a/docs/api/redditapi/models/type-aliases/ListingFetchResponse.md
+++ b/docs/api/redditapi/models/type-aliases/ListingFetchResponse.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/MenuPosition.md b/docs/api/redditapi/models/type-aliases/MenuPosition.md
index a42d1cc2..13fa46fb 100644
--- a/docs/api/redditapi/models/type-aliases/MenuPosition.md
+++ b/docs/api/redditapi/models/type-aliases/MenuPosition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/MessageData.md b/docs/api/redditapi/models/type-aliases/MessageData.md
index 70e0b634..b92f53b8 100644
--- a/docs/api/redditapi/models/type-aliases/MessageData.md
+++ b/docs/api/redditapi/models/type-aliases/MessageData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ModActionData.md b/docs/api/redditapi/models/type-aliases/ModActionData.md
index 9c5b0af3..f5d51aa7 100644
--- a/docs/api/redditapi/models/type-aliases/ModActionData.md
+++ b/docs/api/redditapi/models/type-aliases/ModActionData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ModActionTarget.md b/docs/api/redditapi/models/type-aliases/ModActionTarget.md
index 5bd66f92..cdc30c1e 100644
--- a/docs/api/redditapi/models/type-aliases/ModActionTarget.md
+++ b/docs/api/redditapi/models/type-aliases/ModActionTarget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ModActionType.md b/docs/api/redditapi/models/type-aliases/ModActionType.md
index 68844b1c..c7724bbf 100644
--- a/docs/api/redditapi/models/type-aliases/ModActionType.md
+++ b/docs/api/redditapi/models/type-aliases/ModActionType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ModLogOptions.md b/docs/api/redditapi/models/type-aliases/ModLogOptions.md
index e66f7aea..ba423b7a 100644
--- a/docs/api/redditapi/models/type-aliases/ModLogOptions.md
+++ b/docs/api/redditapi/models/type-aliases/ModLogOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ModNoteType.md b/docs/api/redditapi/models/type-aliases/ModNoteType.md
index 12b58028..8d1a35b8 100644
--- a/docs/api/redditapi/models/type-aliases/ModNoteType.md
+++ b/docs/api/redditapi/models/type-aliases/ModNoteType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ModeratorPermission.md b/docs/api/redditapi/models/type-aliases/ModeratorPermission.md
index 5bd9472a..3ff3854c 100644
--- a/docs/api/redditapi/models/type-aliases/ModeratorPermission.md
+++ b/docs/api/redditapi/models/type-aliases/ModeratorPermission.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ModeratorReport.md b/docs/api/redditapi/models/type-aliases/ModeratorReport.md
index 83acb761..eca0afba 100644
--- a/docs/api/redditapi/models/type-aliases/ModeratorReport.md
+++ b/docs/api/redditapi/models/type-aliases/ModeratorReport.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/MoreObject.md b/docs/api/redditapi/models/type-aliases/MoreObject.md
index 9e0199f4..0a131751 100644
--- a/docs/api/redditapi/models/type-aliases/MoreObject.md
+++ b/docs/api/redditapi/models/type-aliases/MoreObject.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -12,7 +12,7 @@
### children
-> **children**: `T1ID`[]
+> **children**: `T1`[]
***
@@ -28,4 +28,4 @@
### parentId
-> **parentId**: `T1ID` \| `T3ID`
+> **parentId**: `T1` \| `T3`
diff --git a/docs/api/redditapi/models/type-aliases/Oembed.md b/docs/api/redditapi/models/type-aliases/Oembed.md
new file mode 100644
index 00000000..fe0a538e
--- /dev/null
+++ b/docs/api/redditapi/models/type-aliases/Oembed.md
@@ -0,0 +1,142 @@
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
+
+***
+
+# Type Alias: Oembed
+
+> **Oembed** = `object`
+
+oEmbed is a format for allowing an embedded representation of a URL on third party sites.
+The simple API allows a website to display embedded content (such as photos or videos)
+when a user posts a link to that resource, without having to parse the resource directly.
+See: https://oembed.com/
+
+## Properties
+
+
+
+### authorName?
+
+> `optional` **authorName**: `string`
+
+The name of the author/owner of the resource. E.g. "Reddit"
+
+***
+
+
+
+### authorUrl?
+
+> `optional` **authorUrl**: `string`
+
+A URL for the author/owner of the resource. E.g. "https://www.youtube.com/@Reddit"
+
+***
+
+
+
+### height?
+
+> `optional` **height**: `number`
+
+The width in pixels required to display the HTML.
+
+***
+
+
+
+### html
+
+> **html**: `string`
+
+The HTML required to embed a video player. The HTML should have no padding or margins. Consumers may wish to load the HTML in an off-domain iframe to avoid XSS vulnerabilities.
+
+***
+
+
+
+### providerName?
+
+> `optional` **providerName**: `string`
+
+A URL for the author/owner of the resource. E.g. "YouTube"
+
+***
+
+
+
+### providerUrl?
+
+> `optional` **providerUrl**: `string`
+
+The name of the resource provider. E.g "https://www.youtube.com/"
+
+***
+
+
+
+### thumbnailHeight?
+
+> `optional` **thumbnailHeight**: `number`
+
+The height of the optional thumbnail in pixels
+
+***
+
+
+
+### thumbnailUrl?
+
+> `optional` **thumbnailUrl**: `string`
+
+A URL to a thumbnail image representing the resource.
+
+***
+
+
+
+### thumbnailWidth?
+
+> `optional` **thumbnailWidth**: `number`
+
+The width of the optional thumbnail in pixels
+
+***
+
+
+
+### title?
+
+> `optional` **title**: `string`
+
+A text title, describing the resource.
+
+***
+
+
+
+### type
+
+> **type**: `string`
+
+The resource type. Valid values, along with value-specific parameters, are described below. E.g. "video"
+
+***
+
+
+
+### version
+
+> **version**: `string`
+
+The oEmbed version number. This must be 1.0.
+
+***
+
+
+
+### width?
+
+> `optional` **width**: `number`
+
+The height in pixels required to display the HTML.
diff --git a/docs/api/redditapi/models/type-aliases/Participant.md b/docs/api/redditapi/models/type-aliases/Participant.md
index 0c19e787..fd427a70 100644
--- a/docs/api/redditapi/models/type-aliases/Participant.md
+++ b/docs/api/redditapi/models/type-aliases/Participant.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -14,7 +14,7 @@ Conversation participant
### id?
-> `optional` **id**: `number`
+> `optional` **id**: `T2`
***
diff --git a/docs/api/redditapi/models/type-aliases/PollData.md b/docs/api/redditapi/models/type-aliases/PollData.md
index b0e471e6..8e3c6502 100644
--- a/docs/api/redditapi/models/type-aliases/PollData.md
+++ b/docs/api/redditapi/models/type-aliases/PollData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/PollOption.md b/docs/api/redditapi/models/type-aliases/PollOption.md
index 823bc5a1..359d09d2 100644
--- a/docs/api/redditapi/models/type-aliases/PollOption.md
+++ b/docs/api/redditapi/models/type-aliases/PollOption.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/PositionedImagePosition.md b/docs/api/redditapi/models/type-aliases/PositionedImagePosition.md
index 8f0102d7..b738e5db 100644
--- a/docs/api/redditapi/models/type-aliases/PositionedImagePosition.md
+++ b/docs/api/redditapi/models/type-aliases/PositionedImagePosition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/PostCapabilities.md b/docs/api/redditapi/models/type-aliases/PostCapabilities.md
index 5985e924..a05c48fc 100644
--- a/docs/api/redditapi/models/type-aliases/PostCapabilities.md
+++ b/docs/api/redditapi/models/type-aliases/PostCapabilities.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/PostSuggestedCommentSort.md b/docs/api/redditapi/models/type-aliases/PostSuggestedCommentSort.md
index fc44783e..3e707b07 100644
--- a/docs/api/redditapi/models/type-aliases/PostSuggestedCommentSort.md
+++ b/docs/api/redditapi/models/type-aliases/PostSuggestedCommentSort.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/PostTextOptions.md b/docs/api/redditapi/models/type-aliases/PostTextOptions.md
index 9fbcb0f8..c99c05b0 100644
--- a/docs/api/redditapi/models/type-aliases/PostTextOptions.md
+++ b/docs/api/redditapi/models/type-aliases/PostTextOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/PostType.md b/docs/api/redditapi/models/type-aliases/PostType.md
index 101c8cf4..d32ce968 100644
--- a/docs/api/redditapi/models/type-aliases/PostType.md
+++ b/docs/api/redditapi/models/type-aliases/PostType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/RedditVideo.md b/docs/api/redditapi/models/type-aliases/RedditVideo.md
index dc32316d..ede2b84a 100644
--- a/docs/api/redditapi/models/type-aliases/RedditVideo.md
+++ b/docs/api/redditapi/models/type-aliases/RedditVideo.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/RelationshipType.md b/docs/api/redditapi/models/type-aliases/RelationshipType.md
index 6fa6e653..1f0e8c67 100644
--- a/docs/api/redditapi/models/type-aliases/RelationshipType.md
+++ b/docs/api/redditapi/models/type-aliases/RelationshipType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/RemovalReason.md b/docs/api/redditapi/models/type-aliases/RemovalReason.md
index 96ced821..0b7b44d3 100644
--- a/docs/api/redditapi/models/type-aliases/RemovalReason.md
+++ b/docs/api/redditapi/models/type-aliases/RemovalReason.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -7,8 +7,8 @@
> **RemovalReason** = `object`
Plain data for a subreddit removal reason. Use [Subreddit.updateRemovalReason](../classes/Subreddit.md#updateremovalreason),
-[Subreddit.deleteRemovalReason](../classes/Subreddit.md#deleteremovalreason), or the matching [RedditAPIClient](../../RedditAPIClient/README.md) methods to change
-or remove it.
+[Subreddit.deleteRemovalReason](../classes/Subreddit.md#deleteremovalreason), or the matching [RedditClient](../../RedditClient/README.md) methods to change or
+remove it.
## Properties
diff --git a/docs/api/redditapi/models/type-aliases/RemoveRelationshipOptions.md b/docs/api/redditapi/models/type-aliases/RemoveRelationshipOptions.md
index 819a8f85..cda8ecdd 100644
--- a/docs/api/redditapi/models/type-aliases/RemoveRelationshipOptions.md
+++ b/docs/api/redditapi/models/type-aliases/RemoveRelationshipOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/ReplyToCommentOptions.md b/docs/api/redditapi/models/type-aliases/ReplyToCommentOptions.md
index 51783e48..bc565de2 100644
--- a/docs/api/redditapi/models/type-aliases/ReplyToCommentOptions.md
+++ b/docs/api/redditapi/models/type-aliases/ReplyToCommentOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/SecureMedia.md b/docs/api/redditapi/models/type-aliases/SecureMedia.md
index 80e4c42e..1f65c83e 100644
--- a/docs/api/redditapi/models/type-aliases/SecureMedia.md
+++ b/docs/api/redditapi/models/type-aliases/SecureMedia.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -12,7 +12,7 @@
### oembed?
-> `optional` **oembed**: [`OEmbed`](OEmbed.md)
+> `optional` **oembed**: [`Oembed`](Oembed.md)
***
@@ -30,4 +30,4 @@
> `optional` **type**: `string`
-The type of the OEmbed media, if present (e.g. "youtube.com")
+The type of the oEmbed media, if present (e.g. "youtube.com")
diff --git a/docs/api/redditapi/models/type-aliases/SendPrivateMessageAsSubredditOptions.md b/docs/api/redditapi/models/type-aliases/SendPrivateMessageAsSubredditOptions.md
index 53f112f9..d1ee8155 100644
--- a/docs/api/redditapi/models/type-aliases/SendPrivateMessageAsSubredditOptions.md
+++ b/docs/api/redditapi/models/type-aliases/SendPrivateMessageAsSubredditOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/SendPrivateMessageOptions.md b/docs/api/redditapi/models/type-aliases/SendPrivateMessageOptions.md
index d898bcad..27969db5 100644
--- a/docs/api/redditapi/models/type-aliases/SendPrivateMessageOptions.md
+++ b/docs/api/redditapi/models/type-aliases/SendPrivateMessageOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -24,7 +24,7 @@ The subject of the message.
> **text**: `string`
-The body of the message in markdown text format.
+The body of the message in Markdown text format.
***
diff --git a/docs/api/redditapi/models/type-aliases/SetFlairOptions.md b/docs/api/redditapi/models/type-aliases/SetFlairOptions.md
index 83900b7e..703a6d7d 100644
--- a/docs/api/redditapi/models/type-aliases/SetFlairOptions.md
+++ b/docs/api/redditapi/models/type-aliases/SetFlairOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/SetPostFlairOptions.md b/docs/api/redditapi/models/type-aliases/SetPostFlairOptions.md
index b25ae2d7..0d67aa8e 100644
--- a/docs/api/redditapi/models/type-aliases/SetPostFlairOptions.md
+++ b/docs/api/redditapi/models/type-aliases/SetPostFlairOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -10,6 +10,6 @@
### postId
-> **postId**: `string`
+> **postId**: `T3`
The ID of the post to set the flair on
diff --git a/docs/api/redditapi/models/type-aliases/SetUserFlairBatchConfig.md b/docs/api/redditapi/models/type-aliases/SetUserFlairBatchConfig.md
index 4969f228..7fea308c 100644
--- a/docs/api/redditapi/models/type-aliases/SetUserFlairBatchConfig.md
+++ b/docs/api/redditapi/models/type-aliases/SetUserFlairBatchConfig.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/SetUserFlairOptions.md b/docs/api/redditapi/models/type-aliases/SetUserFlairOptions.md
index 03d3a2fb..0c47561d 100644
--- a/docs/api/redditapi/models/type-aliases/SetUserFlairOptions.md
+++ b/docs/api/redditapi/models/type-aliases/SetUserFlairOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/SubmitCustomPostOptions.md b/docs/api/redditapi/models/type-aliases/SubmitCustomPostOptions.md
new file mode 100644
index 00000000..229583d1
--- /dev/null
+++ b/docs/api/redditapi/models/type-aliases/SubmitCustomPostOptions.md
@@ -0,0 +1,62 @@
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
+
+***
+
+# Type Alias: SubmitCustomPostOptions
+
+> **SubmitCustomPostOptions** = [`CommonSubmitPostOptions`](CommonSubmitPostOptions.md) & `object`
+
+## Type declaration
+
+### entry?
+
+> `optional` **entry**: `string`
+
+The entrypoint name. Must correspond to a `post.entrypoints` key in the
+app's `devvit.json`.
+
+#### Default
+
+The default `devvit.json` entrypoint (`'default'`).
+
+#### Example
+
+following `devvit.json` configuration:
+```json
+{
+ "$schema": "https://developers.reddit.com/schema/config-file.v1.json",
+ "name": "example",
+ "post": {
+ "entrypoints": {
+ "default": {"entry": "splash.html"},
+ "game": {"entry": "game.html"}
+ }
+ }
+}
+```
+
+### postData?
+
+> `optional` **postData**: `PostData`
+
+Arbitrary data to associate to the post. Limited to two kilobytes.
+
+#### See
+
+PostData.
+
+### styles?
+
+> `optional` **styles**: `CustomPostStylesInput`
+
+Styles associated with the custom post, such as height or background color.
+
+### textFallback?
+
+> `optional` **textFallback**: [`CustomPostTextFallbackOptions`](CustomPostTextFallbackOptions.md)
+
+Content to show when rendered on `https://old.reddit.com`.
+
+### userGeneratedContent?
+
+> `optional` **userGeneratedContent**: `UserGeneratedContent`
diff --git a/docs/api/redditapi/models/type-aliases/SubmitLinkOptions.md b/docs/api/redditapi/models/type-aliases/SubmitLinkOptions.md
index 8f7372ed..1c2f1124 100644
--- a/docs/api/redditapi/models/type-aliases/SubmitLinkOptions.md
+++ b/docs/api/redditapi/models/type-aliases/SubmitLinkOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -8,6 +8,16 @@
## Type declaration
+### ~~resubmit?~~
+
+> `optional` **resubmit**: `boolean`
+
+#### Deprecated
+
+Unsupported. This property is for backwards compatibility and
+has no effect. It will removed in a future version. New code should not
+use it.
+
### url
> **url**: `string`
diff --git a/docs/api/redditapi/models/type-aliases/SubmitMediaOptions.md b/docs/api/redditapi/models/type-aliases/SubmitMediaOptions.md
index 6f1978d3..4c0e7ae8 100644
--- a/docs/api/redditapi/models/type-aliases/SubmitMediaOptions.md
+++ b/docs/api/redditapi/models/type-aliases/SubmitMediaOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/SubmitPostOptions.md b/docs/api/redditapi/models/type-aliases/SubmitPostOptions.md
index 476b649c..a9488965 100644
--- a/docs/api/redditapi/models/type-aliases/SubmitPostOptions.md
+++ b/docs/api/redditapi/models/type-aliases/SubmitPostOptions.md
@@ -1,13 +1,9 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
# Type Alias: SubmitPostOptions
-> **SubmitPostOptions** = [`SubmitLinkOptions`](SubmitLinkOptions.md) \| [`SubmitSelfPostOptions`](SubmitSelfPostOptions.md) \| [`SubmitMediaOptions`](SubmitMediaOptions.md) & `object`
+> **SubmitPostOptions** = [`SubmitLinkOptions`](SubmitLinkOptions.md) & `object` \| [`SubmitSelfPostOptions`](SubmitSelfPostOptions.md) & `object` \| [`SubmitMediaOptions`](SubmitMediaOptions.md) & `object`
-## Type declaration
-
-### subredditName
-
-> **subredditName**: `string`
+Link, self, or media post options exclusively.
diff --git a/docs/api/redditapi/models/type-aliases/SubmitSelfPostOptions.md b/docs/api/redditapi/models/type-aliases/SubmitSelfPostOptions.md
index 6082c4e3..99162870 100644
--- a/docs/api/redditapi/models/type-aliases/SubmitSelfPostOptions.md
+++ b/docs/api/redditapi/models/type-aliases/SubmitSelfPostOptions.md
@@ -1,7 +1,7 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
# Type Alias: SubmitSelfPostOptions
-> **SubmitSelfPostOptions** = [`PostTextOptions`](PostTextOptions.md) & [`CommonSubmitPostOptions`](CommonSubmitPostOptions.md)
+> **SubmitSelfPostOptions** = [`CommonSubmitPostOptions`](CommonSubmitPostOptions.md) & [`PostTextOptions`](PostTextOptions.md)
diff --git a/docs/api/redditapi/models/type-aliases/SubredditData.md b/docs/api/redditapi/models/type-aliases/SubredditData.md
index f95718df..56f564d0 100644
--- a/docs/api/redditapi/models/type-aliases/SubredditData.md
+++ b/docs/api/redditapi/models/type-aliases/SubredditData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -36,7 +36,7 @@
### id?
-> `optional` **id**: `string`
+> `optional` **id**: `T5`
***
diff --git a/docs/api/redditapi/models/type-aliases/SubredditInfo.md b/docs/api/redditapi/models/type-aliases/SubredditInfo.md
index 11fa17e4..b553b73e 100644
--- a/docs/api/redditapi/models/type-aliases/SubredditInfo.md
+++ b/docs/api/redditapi/models/type-aliases/SubredditInfo.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -78,7 +78,7 @@ A class representing information about a Subreddit.
### id?
-> `optional` **id**: `T5ID`
+> `optional` **id**: `T5`
***
diff --git a/docs/api/redditapi/models/type-aliases/SubredditLeaderboard.md b/docs/api/redditapi/models/type-aliases/SubredditLeaderboard.md
index 451ac8c7..d3e9987d 100644
--- a/docs/api/redditapi/models/type-aliases/SubredditLeaderboard.md
+++ b/docs/api/redditapi/models/type-aliases/SubredditLeaderboard.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/SubredditLeaderboardSummary.md b/docs/api/redditapi/models/type-aliases/SubredditLeaderboardSummary.md
index cfe2dc04..c9233893 100644
--- a/docs/api/redditapi/models/type-aliases/SubredditLeaderboardSummary.md
+++ b/docs/api/redditapi/models/type-aliases/SubredditLeaderboardSummary.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/SubredditLeaderboardSummaryRow.md b/docs/api/redditapi/models/type-aliases/SubredditLeaderboardSummaryRow.md
index e50d3bb4..bc670e89 100644
--- a/docs/api/redditapi/models/type-aliases/SubredditLeaderboardSummaryRow.md
+++ b/docs/api/redditapi/models/type-aliases/SubredditLeaderboardSummaryRow.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/SubredditOptions.md b/docs/api/redditapi/models/type-aliases/SubredditOptions.md
new file mode 100644
index 00000000..ffb84a56
--- /dev/null
+++ b/docs/api/redditapi/models/type-aliases/SubredditOptions.md
@@ -0,0 +1,17 @@
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
+
+***
+
+# Type Alias: SubredditOptions
+
+> **SubredditOptions** = `object`
+
+## Properties
+
+
+
+### subredditName?
+
+> `optional` **subredditName**: `string`
+
+Defaults to the current subreddit name.
diff --git a/docs/api/redditapi/models/type-aliases/SubredditSettings.md b/docs/api/redditapi/models/type-aliases/SubredditSettings.md
index 74c520f3..5c3e10bd 100644
--- a/docs/api/redditapi/models/type-aliases/SubredditSettings.md
+++ b/docs/api/redditapi/models/type-aliases/SubredditSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/SubredditSettingsOptions.md b/docs/api/redditapi/models/type-aliases/SubredditSettingsOptions.md
index d73a39f3..f6592ed7 100644
--- a/docs/api/redditapi/models/type-aliases/SubredditSettingsOptions.md
+++ b/docs/api/redditapi/models/type-aliases/SubredditSettingsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/SubredditStyles.md b/docs/api/redditapi/models/type-aliases/SubredditStyles.md
index e28bb327..83c45d10 100644
--- a/docs/api/redditapi/models/type-aliases/SubredditStyles.md
+++ b/docs/api/redditapi/models/type-aliases/SubredditStyles.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/SubredditType.md b/docs/api/redditapi/models/type-aliases/SubredditType.md
index 7442cfea..d0b05f48 100644
--- a/docs/api/redditapi/models/type-aliases/SubredditType.md
+++ b/docs/api/redditapi/models/type-aliases/SubredditType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/Trophy.md b/docs/api/redditapi/models/type-aliases/Trophy.md
index 5b8139aa..239b3db2 100644
--- a/docs/api/redditapi/models/type-aliases/Trophy.md
+++ b/docs/api/redditapi/models/type-aliases/Trophy.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -7,6 +7,7 @@
> **Trophy** = `object`
A trophy displayed on a user's profile.
+All fields are optional; the API may return null or omit any of them.
## Properties
@@ -14,7 +15,7 @@ A trophy displayed on a user's profile.
### awardId
-> **awardId**: `T6ID` \| `undefined`
+> **awardId**: `T6` \| `undefined`
Award ID.
@@ -64,7 +65,7 @@ URL of the trophy icon. Currently 70x70.
### id
-> **id**: `T6ID` \| `undefined`
+> **id**: `T6` \| `undefined`
Trophy ID.
diff --git a/docs/api/redditapi/models/type-aliases/UnreadCountResponse.md b/docs/api/redditapi/models/type-aliases/UnreadCountResponse.md
index 2da4f2b4..e7a11fa2 100644
--- a/docs/api/redditapi/models/type-aliases/UnreadCountResponse.md
+++ b/docs/api/redditapi/models/type-aliases/UnreadCountResponse.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/UpdatePageSettingsOptions.md b/docs/api/redditapi/models/type-aliases/UpdatePageSettingsOptions.md
index 1a89b5af..0a88d67e 100644
--- a/docs/api/redditapi/models/type-aliases/UpdatePageSettingsOptions.md
+++ b/docs/api/redditapi/models/type-aliases/UpdatePageSettingsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/UpdateRuleOptions.md b/docs/api/redditapi/models/type-aliases/UpdateRuleOptions.md
index 5b5ac8a4..781e9bfd 100644
--- a/docs/api/redditapi/models/type-aliases/UpdateRuleOptions.md
+++ b/docs/api/redditapi/models/type-aliases/UpdateRuleOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/UpdateWidgetData.md b/docs/api/redditapi/models/type-aliases/UpdateWidgetData.md
index 7fe1728b..6f9c522f 100644
--- a/docs/api/redditapi/models/type-aliases/UpdateWidgetData.md
+++ b/docs/api/redditapi/models/type-aliases/UpdateWidgetData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/UpdateWikiPageOptions.md b/docs/api/redditapi/models/type-aliases/UpdateWikiPageOptions.md
index 25cf6f2f..5f52e09c 100644
--- a/docs/api/redditapi/models/type-aliases/UpdateWikiPageOptions.md
+++ b/docs/api/redditapi/models/type-aliases/UpdateWikiPageOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/UserFlair.md b/docs/api/redditapi/models/type-aliases/UserFlair.md
index bccaec32..e8697d98 100644
--- a/docs/api/redditapi/models/type-aliases/UserFlair.md
+++ b/docs/api/redditapi/models/type-aliases/UserFlair.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/UserFlairPageOptions.md b/docs/api/redditapi/models/type-aliases/UserFlairPageOptions.md
index 8e1df8fd..a37a6ab2 100644
--- a/docs/api/redditapi/models/type-aliases/UserFlairPageOptions.md
+++ b/docs/api/redditapi/models/type-aliases/UserFlairPageOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/UserNote.md b/docs/api/redditapi/models/type-aliases/UserNote.md
index 356fe35f..aee10103 100644
--- a/docs/api/redditapi/models/type-aliases/UserNote.md
+++ b/docs/api/redditapi/models/type-aliases/UserNote.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -28,4 +28,4 @@
### redditId?
-> `optional` **redditId**: `T1ID` \| `T3ID` \| `T5ID`
+> `optional` **redditId**: `T1` \| `T3` \| `T5`
diff --git a/docs/api/redditapi/models/type-aliases/UserNoteLabel.md b/docs/api/redditapi/models/type-aliases/UserNoteLabel.md
index a57993a4..100532a5 100644
--- a/docs/api/redditapi/models/type-aliases/UserNoteLabel.md
+++ b/docs/api/redditapi/models/type-aliases/UserNoteLabel.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/UserSocialLink.md b/docs/api/redditapi/models/type-aliases/UserSocialLink.md
index 2404b331..fb218a9c 100644
--- a/docs/api/redditapi/models/type-aliases/UserSocialLink.md
+++ b/docs/api/redditapi/models/type-aliases/UserSocialLink.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/Vault.md b/docs/api/redditapi/models/type-aliases/Vault.md
index cdbb2336..b0ade703 100644
--- a/docs/api/redditapi/models/type-aliases/Vault.md
+++ b/docs/api/redditapi/models/type-aliases/Vault.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
@@ -66,7 +66,7 @@ The provider of the Vault address.
### userId
-> **userId**: `T2ID`
+> **userId**: `T2`
The ID (starting with t2_) of the user owning the Vault.
diff --git a/docs/api/redditapi/models/type-aliases/Visibility.md b/docs/api/redditapi/models/type-aliases/Visibility.md
index 31cfa81e..5b5184e5 100644
--- a/docs/api/redditapi/models/type-aliases/Visibility.md
+++ b/docs/api/redditapi/models/type-aliases/Visibility.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/WikiEditMode.md b/docs/api/redditapi/models/type-aliases/WikiEditMode.md
index ff3afe9f..ec790d8b 100644
--- a/docs/api/redditapi/models/type-aliases/WikiEditMode.md
+++ b/docs/api/redditapi/models/type-aliases/WikiEditMode.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/WikiPageRevisionId.md b/docs/api/redditapi/models/type-aliases/WikiPageRevisionId.md
index 1d38022c..2b95f9aa 100644
--- a/docs/api/redditapi/models/type-aliases/WikiPageRevisionId.md
+++ b/docs/api/redditapi/models/type-aliases/WikiPageRevisionId.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/type-aliases/WithUserData.md b/docs/api/redditapi/models/type-aliases/WithUserData.md
index 896cab95..58aa041d 100644
--- a/docs/api/redditapi/models/type-aliases/WithUserData.md
+++ b/docs/api/redditapi/models/type-aliases/WithUserData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/api/redditapi/models/variables/GalleryMediaStatus.md b/docs/api/redditapi/models/variables/GalleryMediaStatus.md
index 4a188c3c..d2a6d03e 100644
--- a/docs/api/redditapi/models/variables/GalleryMediaStatus.md
+++ b/docs/api/redditapi/models/variables/GalleryMediaStatus.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.11-dev**](../../README.md)
+[**@devvit/reddit v0.13.12-dev**](../../README.md)
***
diff --git a/docs/capabilities/server/userActions.mdx b/docs/capabilities/server/userActions.mdx
index a3f97017..462e1c44 100644
--- a/docs/capabilities/server/userActions.mdx
+++ b/docs/capabilities/server/userActions.mdx
@@ -58,9 +58,9 @@ To enable user actions, add the required permissions to your `devvit.json`:
After enabling, you can call certain Reddit APIs on behalf of the user by passing the option `runAs: 'USER'`. The following APIs support this option:
-- [submitPost()](../../api/redditapi/RedditAPIClient/classes/RedditAPIClient.md#submitpost)
-- [submitCustomPost()](../../api/redditapi/RedditAPIClient/classes/RedditAPIClient.md)
-- [submitComment()](../../api/redditapi/RedditAPIClient/classes/RedditAPIClient.md#submitcomment)
+- [submitPost()](../../api/redditapi/RedditClient/classes/RedditClient.md#submitpost)
+- [submitCustomPost()](../../api/redditapi/RedditClient/classes/RedditClient.md)
+- [submitComment()](../../api/redditapi/RedditClient/classes/RedditClient.md#submitcomment)
If `runAs` is not specified, the API will use `runAs: 'APP'` by default.
@@ -156,7 +156,7 @@ router.post('/internal/post-create', async (_req, res) => {
## Example: Subscribe to current subreddit
-The [subscribeToCurrentSubreddit()](../../api/redditapi/RedditAPIClient/classes/RedditAPIClient.md#subscribetocurrentsubreddit) API does not take a `runAs` parameter; it subscribes as the user by default (if specified in `devvit.json` and approved).
+The [subscribeToCurrentSubreddit()](../../api/redditapi/RedditClient/classes/RedditClient.md#subscribetocurrentsubreddit) API does not take a `runAs` parameter; it subscribes as the user by default (if specified in `devvit.json` and approved).
**PartialJSONValue** = [`PartialJSONPrimitive`](PartialJSONPrimitive.md) \| [`PartialJSONArray`](PartialJSONArray.md) \| [`PartialJSONObject`](PartialJSONObject.md)
-Like JSONValue but deeply allow lossy undefined values that are easier to
+Like JsonValue but deeply allow lossy undefined values that are easier to
type but may de/serialize differently or incorrectly. For example:
- `JSON.stringify({a: 1, b: 2, c: undefined, d: 3})`: `'{"a":1,"b":2,"d":3}'`.
@@ -14,7 +14,7 @@ type but may de/serialize differently or incorrectly. For example:
- `JSON.stringify(undefined)`: `undefined`.
JSON.stringify() accepts an `any` input so there are no typing guards. Prefer
-plain JSONValue when possible.
+plain JsonValue when possible.
One mostly only cares about stringify since creating a JSON string with
undefineds in it would require deliberate effort. These all throw errors:
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PluginSettings.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PluginSettings.md
index 7ef80005..71a1908d 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PluginSettings.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PluginSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostCreate.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostCreate.md
index aa201491..2bf00c3f 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostCreate.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostCreate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostCreateDefinition.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostCreateDefinition.md
index 319d4fd3..11d9e52e 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostCreateDefinition.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostCreateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostDelete.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostDelete.md
index 3b2a5882..7722bc3a 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostDelete.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostDelete.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostDeleteDefinition.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostDeleteDefinition.md
index 14929dbd..a8839cc0 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostDeleteDefinition.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostDeleteDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostFlairUpdate.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostFlairUpdate.md
index a1d25331..74f632b2 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostFlairUpdate.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostFlairUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostFlairUpdateDefinition.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostFlairUpdateDefinition.md
index bfccd0a9..acc50143 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostFlairUpdateDefinition.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostFlairUpdateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostNsfwUpdate.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostNsfwUpdate.md
index a5df80af..6f138ba5 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostNsfwUpdate.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostNsfwUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostNsfwUpdateDefinition.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostNsfwUpdateDefinition.md
index e967abde..7853244c 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostNsfwUpdateDefinition.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostNsfwUpdateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostReport.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostReport.md
index ae200d07..bf6b082e 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostReport.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostReport.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostReportDefinition.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostReportDefinition.md
index 1986d423..c69d1642 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostReportDefinition.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostReportDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostSpoilerUpdate.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostSpoilerUpdate.md
index 60587fdc..91d41b2f 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostSpoilerUpdate.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostSpoilerUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostSpoilerUpdateDefinition.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostSpoilerUpdateDefinition.md
index 20fc111b..3323f6d9 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostSpoilerUpdateDefinition.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostSpoilerUpdateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostSubmit.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostSubmit.md
index 61a3c938..d54c256a 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostSubmit.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostSubmit.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostSubmitDefinition.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostSubmitDefinition.md
index 313cc1cb..0c9b2e75 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostSubmitDefinition.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostSubmitDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostUpdate.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostUpdate.md
index 38500aae..3c341b34 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostUpdate.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostUpdate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/PostUpdateDefinition.md b/versioned_docs/version-0.13/api/public-api/type-aliases/PostUpdateDefinition.md
index a9b9165e..83032a71 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/PostUpdateDefinition.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/PostUpdateDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/RedisClient.md b/versioned_docs/version-0.13/api/public-api/type-aliases/RedisClient.md
index f5a79682..96524b3d 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/RedisClient.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/RedisClient.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/RunJob.md b/versioned_docs/version-0.13/api/public-api/type-aliases/RunJob.md
index ccfea06a..f3f58d94 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/RunJob.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/RunJob.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledCronJob.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledCronJob.md
index 3cab4a03..c46f51a5 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledCronJob.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledCronJob.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledCronJobOptions.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledCronJobOptions.md
index b39a07dd..cd08a35f 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledCronJobOptions.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledCronJobOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJob.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJob.md
index 0c5e61a6..40674c74 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJob.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJob.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobEvent.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobEvent.md
index cb940b0a..13dd066d 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobEvent.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobEvent.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobHandler.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobHandler.md
index 98e4a35b..4a0da752 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobHandler.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobHandler.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobOptions.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobOptions.md
index 530bdd2c..d4a33952 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobOptions.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobType.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobType.md
index 8cc68ab8..18c76941 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobType.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ScheduledJobType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/Scheduler.md b/versioned_docs/version-0.13/api/public-api/type-aliases/Scheduler.md
index 94eb743c..d341a761 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/Scheduler.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/Scheduler.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/SelectField.md b/versioned_docs/version-0.13/api/public-api/type-aliases/SelectField.md
index b1fc9566..74e4d2e3 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/SelectField.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/SelectField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/SetOptions.md b/versioned_docs/version-0.13/api/public-api/type-aliases/SetOptions.md
index 7946433c..ba08dcb2 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/SetOptions.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/SetOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/SettingScopeType.md b/versioned_docs/version-0.13/api/public-api/type-aliases/SettingScopeType.md
index 30151bbf..838e5304 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/SettingScopeType.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/SettingScopeType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsClient.md b/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsClient.md
index 779344fb..ae2182bf 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsClient.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsClient.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsFormField.md b/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsFormField.md
index 6eea9325..71625f7a 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsFormField.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsFormField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsFormFieldGroup.md b/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsFormFieldGroup.md
index f1c7d821..4c987dbc 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsFormFieldGroup.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsFormFieldGroup.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsFormFieldValidatorEvent.md b/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsFormFieldValidatorEvent.md
index 3dfdc65e..11117d67 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsFormFieldValidatorEvent.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsFormFieldValidatorEvent.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsValues.md b/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsValues.md
index 87f2999d..7cd70604 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsValues.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/SettingsValues.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/StringField.md b/versioned_docs/version-0.13/api/public-api/type-aliases/StringField.md
index cefba4e3..1efbdd00 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/StringField.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/StringField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/Toast.md b/versioned_docs/version-0.13/api/public-api/type-aliases/Toast.md
index 63baf6e1..d38affeb 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/Toast.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/Toast.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerContext.md b/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerContext.md
index 14ffab8a..c0d4b9db 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerContext.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerContext.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerDefinition.md b/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerDefinition.md
index 8d5b9464..cf642d2c 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerDefinition.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerDefinition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerEvent.md b/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerEvent.md
index b26763df..04587128 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerEvent.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerEvent.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerEventType.md b/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerEventType.md
index 28c34808..3b64d73c 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerEventType.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerEventType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerOnEventHandler.md b/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerOnEventHandler.md
index 0f31de4b..e32b02b3 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerOnEventHandler.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/TriggerOnEventHandler.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/UIClient.md b/versioned_docs/version-0.13/api/public-api/type-aliases/UIClient.md
index 4ea5ed68..3441fc7b 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/UIClient.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/UIClient.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/UploadMediaOptions.md b/versioned_docs/version-0.13/api/public-api/type-aliases/UploadMediaOptions.md
index a720dd33..d02ed917 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/UploadMediaOptions.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/UploadMediaOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedBooleanField.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedBooleanField.md
index 0b9c5ef1..72a0f19c 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedBooleanField.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedBooleanField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedFormField.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedFormField.md
index ad626cb3..56fd2205 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedFormField.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedFormField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedNumberField.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedNumberField.md
index 32f1822a..41a7783f 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedNumberField.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedNumberField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedParagraphField.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedParagraphField.md
index ab06adda..d0eb2953 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedParagraphField.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedParagraphField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedSelectField.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedSelectField.md
index e3347cd2..c0b24ed6 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedSelectField.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedSelectField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedStringField.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedStringField.md
index 67471d3c..54401cbd 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedStringField.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ValidatedStringField.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ZMember.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ZMember.md
index b24d794b..2c9d7f2b 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ZMember.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ZMember.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ZRangeByScoreOptions.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ZRangeByScoreOptions.md
index 80c4f554..71dfbb19 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ZRangeByScoreOptions.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ZRangeByScoreOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/public-api/type-aliases/ZRangeOptions.md b/versioned_docs/version-0.13/api/public-api/type-aliases/ZRangeOptions.md
index 299a8618..ff50441f 100644
--- a/versioned_docs/version-0.13/api/public-api/type-aliases/ZRangeOptions.md
+++ b/versioned_docs/version-0.13/api/public-api/type-aliases/ZRangeOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/README.md b/versioned_docs/version-0.13/api/redditapi/README.md
index cb0ba36b..7f9930c8 100644
--- a/versioned_docs/version-0.13/api/redditapi/README.md
+++ b/versioned_docs/version-0.13/api/redditapi/README.md
@@ -1,8 +1,8 @@
-**@devvit/public-api v0.13.10-dev**
+**@devvit/public-api v0.13.11-dev**
***
-# @devvit/public-api v0.13.10-dev
+# @devvit/public-api v0.13.11-dev
## Modules
diff --git a/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/README.md b/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/README.md
index 28ae29fc..72ff3725 100644
--- a/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/README.md
+++ b/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/README.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/classes/RedditAPIClient.md b/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/classes/RedditAPIClient.md
index e2beb283..a39b0620 100644
--- a/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/classes/RedditAPIClient.md
+++ b/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/classes/RedditAPIClient.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/type-aliases/InviteModeratorOptions.md b/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/type-aliases/InviteModeratorOptions.md
index 0c2cae7b..b8aef729 100644
--- a/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/type-aliases/InviteModeratorOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/type-aliases/InviteModeratorOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/type-aliases/MuteUserOptions.md b/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/type-aliases/MuteUserOptions.md
index db5623af..d98ca39b 100644
--- a/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/type-aliases/MuteUserOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/RedditAPIClient/type-aliases/MuteUserOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/README.md b/versioned_docs/version-0.13/api/redditapi/models/README.md
index dfa2dc75..2bbc4577 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/README.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/README.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../README.md)
+[**@devvit/public-api v0.13.11-dev**](../README.md)
***
@@ -122,6 +122,7 @@
- [ModActionTarget](type-aliases/ModActionTarget.md)
- [ModActionType](type-aliases/ModActionType.md)
- [ModeratorPermission](type-aliases/ModeratorPermission.md)
+- [ModeratorReport](type-aliases/ModeratorReport.md)
- [ModLogOptions](type-aliases/ModLogOptions.md)
- [ModNoteType](type-aliases/ModNoteType.md)
- [MoreObject](type-aliases/MoreObject.md)
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/AuthorFlairSettings.md b/versioned_docs/version-0.13/api/redditapi/models/classes/AuthorFlairSettings.md
index 46b99a96..0217ae69 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/AuthorFlairSettings.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/AuthorFlairSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/ButtonWidget.md b/versioned_docs/version-0.13/api/redditapi/models/classes/ButtonWidget.md
index d452346f..8c5fcb9b 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/ButtonWidget.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/ButtonWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/CalendarWidget.md b/versioned_docs/version-0.13/api/redditapi/models/classes/CalendarWidget.md
index 307fe4a9..bab5bce4 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/CalendarWidget.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/CalendarWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/Comment.md b/versioned_docs/version-0.13/api/redditapi/models/classes/Comment.md
index a6b2b732..bbe50a5e 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/Comment.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/Comment.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
@@ -212,12 +212,30 @@ A number representing the UTC timestamp in seconds, or 0 if its not approved.
> **get** **modReportReasons**(): `string`[]
+##### Deprecated
+
+Use [modReports](#modreports) to retain each report's author.
+
##### Returns
`string`[]
***
+
+
+### modReports
+
+#### Get Signature
+
+> **get** **modReports**(): [`ModeratorReport`](../type-aliases/ModeratorReport.md)[]
+
+##### Returns
+
+[`ModeratorReport`](../type-aliases/ModeratorReport.md)[]
+
+***
+
### numReports
@@ -745,11 +763,11 @@ The report reason to snooze.
### toJSON()
-> **toJSON**(): `Pick`\<`Comment`, `"subredditName"` \| `"id"` \| `"subredditId"` \| `"postId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"authorName"` \| `"body"` \| `"score"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"edited"` \| `"locked"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"userReportReasons"` \| `"modReportReasons"` \| `"parentId"` \| `"replies"` \| `"numReports"` \| `"collapsedBecauseCrowdControl"`\>
+> **toJSON**(): `Pick`\<`Comment`, `"subredditName"` \| `"id"` \| `"subredditId"` \| `"postId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"authorName"` \| `"body"` \| `"score"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"edited"` \| `"locked"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"parentId"` \| `"replies"` \| `"numReports"` \| `"collapsedBecauseCrowdControl"`\>
#### Returns
-`Pick`\<`Comment`, `"subredditName"` \| `"id"` \| `"subredditId"` \| `"postId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"authorName"` \| `"body"` \| `"score"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"edited"` \| `"locked"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"userReportReasons"` \| `"modReportReasons"` \| `"parentId"` \| `"replies"` \| `"numReports"` \| `"collapsedBecauseCrowdControl"`\>
+`Pick`\<`Comment`, `"subredditName"` \| `"id"` \| `"subredditId"` \| `"postId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"authorName"` \| `"body"` \| `"score"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"edited"` \| `"locked"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"parentId"` \| `"replies"` \| `"numReports"` \| `"collapsedBecauseCrowdControl"`\>
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/CommunityListWidget.md b/versioned_docs/version-0.13/api/redditapi/models/classes/CommunityListWidget.md
index 57616254..adf9acfd 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/CommunityListWidget.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/CommunityListWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/CustomWidget.md b/versioned_docs/version-0.13/api/redditapi/models/classes/CustomWidget.md
index e745f8f0..8d8e65f0 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/CustomWidget.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/CustomWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/Flair.md b/versioned_docs/version-0.13/api/redditapi/models/classes/Flair.md
index c6182cdf..e0a3c8fb 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/Flair.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/Flair.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/FlairTemplate.md b/versioned_docs/version-0.13/api/redditapi/models/classes/FlairTemplate.md
index c6733ec7..619d480e 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/FlairTemplate.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/FlairTemplate.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/ImageWidget.md b/versioned_docs/version-0.13/api/redditapi/models/classes/ImageWidget.md
index 4ec19f37..f8cff3b0 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/ImageWidget.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/ImageWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/Listing.md b/versioned_docs/version-0.13/api/redditapi/models/classes/Listing.md
index ee641b9e..ca4641e7 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/Listing.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/Listing.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/ModMailService.md b/versioned_docs/version-0.13/api/redditapi/models/classes/ModMailService.md
index ea4cc8ad..7a9ce072 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/ModMailService.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/ModMailService.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/ModNote.md b/versioned_docs/version-0.13/api/redditapi/models/classes/ModNote.md
index 122fb211..f902436d 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/ModNote.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/ModNote.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/Post.md b/versioned_docs/version-0.13/api/redditapi/models/classes/Post.md
index 2a01ec3e..a18225b5 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/Post.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/Post.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
@@ -298,12 +298,30 @@ Get the media in the post. Empty if the post doesn't have any media.
> **get** **modReportReasons**(): `string`[]
+##### Deprecated
+
+Use [modReports](#modreports) to retain each report's author.
+
##### Returns
`string`[]
***
+
+
+### modReports
+
+#### Get Signature
+
+> **get** **modReports**(): [`ModeratorReport`](../type-aliases/ModeratorReport.md)[]
+
+##### Returns
+
+[`ModeratorReport`](../type-aliases/ModeratorReport.md)[]
+
+***
+
### nsfw
@@ -1145,11 +1163,11 @@ The report reason to snooze.
### toJSON()
-> **toJSON**(): `Pick`\<`Post`, `"subredditName"` \| `"flair"` \| `"id"` \| `"subredditId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"title"` \| `"nsfw"` \| `"authorId"` \| `"authorName"` \| `"body"` \| `"bodyHtml"` \| `"thumbnail"` \| `"score"` \| `"numberOfComments"` \| `"numberOfReports"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"removedBy"` \| `"removedByCategory"` \| `"archived"` \| `"edited"` \| `"locked"` \| `"quarantined"` \| `"spoiler"` \| `"hidden"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"secureMedia"` \| `"userReportReasons"` \| `"modReportReasons"` \| `"crosspostParentId"`\>
+> **toJSON**(): `Pick`\<`Post`, `"subredditName"` \| `"flair"` \| `"id"` \| `"subredditId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"title"` \| `"nsfw"` \| `"authorId"` \| `"authorName"` \| `"body"` \| `"bodyHtml"` \| `"thumbnail"` \| `"score"` \| `"numberOfComments"` \| `"numberOfReports"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"removedBy"` \| `"removedByCategory"` \| `"archived"` \| `"edited"` \| `"locked"` \| `"quarantined"` \| `"spoiler"` \| `"hidden"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"secureMedia"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"crosspostParentId"`\>
#### Returns
-`Pick`\<`Post`, `"subredditName"` \| `"flair"` \| `"id"` \| `"subredditId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"title"` \| `"nsfw"` \| `"authorId"` \| `"authorName"` \| `"body"` \| `"bodyHtml"` \| `"thumbnail"` \| `"score"` \| `"numberOfComments"` \| `"numberOfReports"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"removedBy"` \| `"removedByCategory"` \| `"archived"` \| `"edited"` \| `"locked"` \| `"quarantined"` \| `"spoiler"` \| `"hidden"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"secureMedia"` \| `"userReportReasons"` \| `"modReportReasons"` \| `"crosspostParentId"`\>
+`Pick`\<`Post`, `"subredditName"` \| `"flair"` \| `"id"` \| `"subredditId"` \| `"permalink"` \| `"url"` \| `"createdAt"` \| `"title"` \| `"nsfw"` \| `"authorId"` \| `"authorName"` \| `"body"` \| `"bodyHtml"` \| `"thumbnail"` \| `"score"` \| `"numberOfComments"` \| `"numberOfReports"` \| `"approved"` \| `"spam"` \| `"stickied"` \| `"removed"` \| `"removedBy"` \| `"removedByCategory"` \| `"archived"` \| `"edited"` \| `"locked"` \| `"quarantined"` \| `"spoiler"` \| `"hidden"` \| `"ignoringReports"` \| `"distinguishedBy"` \| `"authorFlair"` \| `"secureMedia"` \| `"userReportReasons"` \| `"modReports"` \| `"modReportReasons"` \| `"crosspostParentId"`\>
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/PostFlairSettings.md b/versioned_docs/version-0.13/api/redditapi/models/classes/PostFlairSettings.md
index 6fdb2a8a..a10b7e5f 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/PostFlairSettings.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/PostFlairSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/PostFlairWidget.md b/versioned_docs/version-0.13/api/redditapi/models/classes/PostFlairWidget.md
index 677be832..c2c253d5 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/PostFlairWidget.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/PostFlairWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/PrivateMessage.md b/versioned_docs/version-0.13/api/redditapi/models/classes/PrivateMessage.md
index 2a4c0da9..b664868e 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/PrivateMessage.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/PrivateMessage.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/Rule.md b/versioned_docs/version-0.13/api/redditapi/models/classes/Rule.md
index 5476dbf9..115a98eb 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/Rule.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/Rule.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/Subreddit.md b/versioned_docs/version-0.13/api/redditapi/models/classes/Subreddit.md
index 807745af..0fc75b45 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/Subreddit.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/Subreddit.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditBannedUser.md b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditBannedUser.md
index 75ac6140..40b8e14b 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditBannedUser.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditBannedUser.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditContributorUser.md b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditContributorUser.md
index 767a78db..50d38151 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditContributorUser.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditContributorUser.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditDescription.md b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditDescription.md
index f2b5841e..64465dd9 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditDescription.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditDescription.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditModeratorUser.md b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditModeratorUser.md
index 40713a99..3f9335a4 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditModeratorUser.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditModeratorUser.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditMutedUser.md b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditMutedUser.md
index cc7740b1..0e5129fb 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditMutedUser.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditMutedUser.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditRulesWidget.md b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditRulesWidget.md
index 93679975..8eb0ccf2 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditRulesWidget.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditRulesWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditWikiBannedUser.md b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditWikiBannedUser.md
index ecfcd075..1600ed09 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditWikiBannedUser.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditWikiBannedUser.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditWikiContributorUser.md b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditWikiContributorUser.md
index f01c088b..ce6c0890 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditWikiContributorUser.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditWikiContributorUser.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditWikiSettings.md b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditWikiSettings.md
index edf2053b..e5982b8c 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditWikiSettings.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/SubredditWikiSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/TextAreaWidget.md b/versioned_docs/version-0.13/api/redditapi/models/classes/TextAreaWidget.md
index ec64d921..1c4aaa3b 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/TextAreaWidget.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/TextAreaWidget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/User.md b/versioned_docs/version-0.13/api/redditapi/models/classes/User.md
index 2a33a3d9..b69905eb 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/User.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/User.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/Widget.md b/versioned_docs/version-0.13/api/redditapi/models/classes/Widget.md
index 60c60833..e86bf749 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/Widget.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/Widget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/WikiPage.md b/versioned_docs/version-0.13/api/redditapi/models/classes/WikiPage.md
index 8a670050..29d1a47c 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/WikiPage.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/WikiPage.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/WikiPageRevision.md b/versioned_docs/version-0.13/api/redditapi/models/classes/WikiPageRevision.md
index f9e97723..3443a331 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/WikiPageRevision.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/WikiPageRevision.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/classes/WikiPageSettings.md b/versioned_docs/version-0.13/api/redditapi/models/classes/WikiPageSettings.md
index e2f087d1..80db37d3 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/classes/WikiPageSettings.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/classes/WikiPageSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/enumerations/AboutLocations.md b/versioned_docs/version-0.13/api/redditapi/models/enumerations/AboutLocations.md
index 98bf5f3f..8535f953 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/enumerations/AboutLocations.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/enumerations/AboutLocations.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/enumerations/FlairType.md b/versioned_docs/version-0.13/api/redditapi/models/enumerations/FlairType.md
index 754aa946..666c83be 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/enumerations/FlairType.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/enumerations/FlairType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/enumerations/ModMailActionType.md b/versioned_docs/version-0.13/api/redditapi/models/enumerations/ModMailActionType.md
index be8487eb..8ba7f467 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/enumerations/ModMailActionType.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/enumerations/ModMailActionType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/enumerations/ModMailConversationState.md b/versioned_docs/version-0.13/api/redditapi/models/enumerations/ModMailConversationState.md
index f8b6bcdd..3869cdfc 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/enumerations/ModMailConversationState.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/enumerations/ModMailConversationState.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/enumerations/SocialLinkType.md b/versioned_docs/version-0.13/api/redditapi/models/enumerations/SocialLinkType.md
index 8f20a082..67221eae 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/enumerations/SocialLinkType.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/enumerations/SocialLinkType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/enumerations/WikiPagePermissionLevel.md b/versioned_docs/version-0.13/api/redditapi/models/enumerations/WikiPagePermissionLevel.md
index 41c1bb83..3f87c4ae 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/enumerations/WikiPagePermissionLevel.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/enumerations/WikiPagePermissionLevel.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/functions/getModerationLog.md b/versioned_docs/version-0.13/api/redditapi/models/functions/getModerationLog.md
index 7d182a34..15de7dc2 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/functions/getModerationLog.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/functions/getModerationLog.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditInfoById.md b/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditInfoById.md
index 31ac4ffe..2ef813f1 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditInfoById.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditInfoById.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditInfoByName.md b/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditInfoByName.md
index fedf4a47..46c08684 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditInfoByName.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditInfoByName.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditLeaderboard.md b/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditLeaderboard.md
index de8d2900..1b7856cf 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditLeaderboard.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditLeaderboard.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditStyles.md b/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditStyles.md
index 617d7802..e1f1e203 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditStyles.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/functions/getSubredditStyles.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/functions/getVaultByAddress.md b/versioned_docs/version-0.13/api/redditapi/models/functions/getVaultByAddress.md
index 2ab161c0..3745524b 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/functions/getVaultByAddress.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/functions/getVaultByAddress.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/functions/getVaultByUserId.md b/versioned_docs/version-0.13/api/redditapi/models/functions/getVaultByUserId.md
index 407ed86b..cf50f5a4 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/functions/getVaultByUserId.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/functions/getVaultByUserId.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/interfaces/ModAction.md b/versioned_docs/version-0.13/api/redditapi/models/interfaces/ModAction.md
index a996a0b2..664faf67 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/interfaces/ModAction.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/interfaces/ModAction.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AboutSubredditTypes.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AboutSubredditTypes.md
index 5d70551b..adab734d 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AboutSubredditTypes.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AboutSubredditTypes.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AddRemovalNoteOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AddRemovalNoteOptions.md
index 2894a899..0a43a5a5 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AddRemovalNoteOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AddRemovalNoteOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AddWidgetData.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AddWidgetData.md
index 9e639743..d099a408 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AddWidgetData.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AddWidgetData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AllowableFlairContent.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AllowableFlairContent.md
index d673e03a..cbab0a40 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AllowableFlairContent.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/AllowableFlairContent.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BackgroundImagePosition.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BackgroundImagePosition.md
index 56e63666..cef4afab 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BackgroundImagePosition.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BackgroundImagePosition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BanUserOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BanUserOptions.md
index d46465e1..36b9337c 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BanUserOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BanUserOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BanWikiContributorOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BanWikiContributorOptions.md
index e030f1f7..ea93e33d 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BanWikiContributorOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BanWikiContributorOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BannerHeight.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BannerHeight.md
index e977cdd1..06eb8bea 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BannerHeight.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/BannerHeight.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommentMediaTypes.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommentMediaTypes.md
index 74d2229f..576f6229 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommentMediaTypes.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommentMediaTypes.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommentSort.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommentSort.md
index f9704920..dd607c1c 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommentSort.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommentSort.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommentSubmissionOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommentSubmissionOptions.md
index c09f64e4..213320e0 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommentSubmissionOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommentSubmissionOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommonFlair.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommonFlair.md
index 0ed319c8..7dd903f2 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommonFlair.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommonFlair.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommonSubmitPostOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommonSubmitPostOptions.md
index 8c9906bd..71be3eee 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommonSubmitPostOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommonSubmitPostOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommunityNameFormat.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommunityNameFormat.md
index 757dd2c1..fa11aba9 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommunityNameFormat.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CommunityNameFormat.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationData.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationData.md
index 1505633e..f6e8d430 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationData.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationResponse.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationResponse.md
index e33feb50..281439f3 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationResponse.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationResponse.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationStateFilter.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationStateFilter.md
index 504c63a7..bcc79ae0 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationStateFilter.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationStateFilter.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationUserData.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationUserData.md
index ff2afff7..c20277f6 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationUserData.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ConversationUserData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateFlairTemplateOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateFlairTemplateOptions.md
index 99c723aa..e5c3a834 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateFlairTemplateOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateFlairTemplateOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateModNoteOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateModNoteOptions.md
index 7508cf6f..666f2432 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateModNoteOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateModNoteOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateRelationshipOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateRelationshipOptions.md
index fa48b48e..bf8d49f0 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateRelationshipOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateRelationshipOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateRuleOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateRuleOptions.md
index 2bf250ce..d05400bf 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateRuleOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateRuleOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateWikiPageOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateWikiPageOptions.md
index 49aed393..3f720582 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateWikiPageOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CreateWikiPageOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CrosspostOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CrosspostOptions.md
index 4dfc1c07..86907e71 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CrosspostOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CrosspostOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CrowdControlLevel.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CrowdControlLevel.md
index 4b709092..616e8d89 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CrowdControlLevel.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CrowdControlLevel.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CustomizationFlag.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CustomizationFlag.md
index 2d35f8af..ea2bbc14 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CustomizationFlag.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/CustomizationFlag.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/DeleteNotesOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/DeleteNotesOptions.md
index 3fd540b4..cc2424b4 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/DeleteNotesOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/DeleteNotesOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/EditCommentOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/EditCommentOptions.md
index cd7ecb3d..6f368a6b 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/EditCommentOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/EditCommentOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/EditFlairTemplateOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/EditFlairTemplateOptions.md
index 7877b274..629df011 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/EditFlairTemplateOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/EditFlairTemplateOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/EnrichedThumbnail.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/EnrichedThumbnail.md
index 8bbdfd69..08e6af7b 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/EnrichedThumbnail.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/EnrichedThumbnail.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/FlairBackgroundColor.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/FlairBackgroundColor.md
index 48896bc2..928d7da6 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/FlairBackgroundColor.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/FlairBackgroundColor.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/FlairSettings.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/FlairSettings.md
index 176c37bf..7ecf3841 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/FlairSettings.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/FlairSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/FlairTextColor.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/FlairTextColor.md
index c5b42bb8..2c0b297f 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/FlairTextColor.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/FlairTextColor.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GalleryMedia.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GalleryMedia.md
index b504a587..c4103d31 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GalleryMedia.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GalleryMedia.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GalleryMediaStatus.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GalleryMediaStatus.md
index a2879eaf..517c0979 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GalleryMediaStatus.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GalleryMediaStatus.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetBestPostsOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetBestPostsOptions.md
index 1fd0cbf2..5b99b8d8 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetBestPostsOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetBestPostsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetCommentsByUserOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetCommentsByUserOptions.md
index f210c8b3..9fcb2630 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetCommentsByUserOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetCommentsByUserOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetCommentsOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetCommentsOptions.md
index eefa5283..dcf98eca 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetCommentsOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetCommentsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetConversationResponse.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetConversationResponse.md
index 0c6298a3..47a80195 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetConversationResponse.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetConversationResponse.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetConversationsRequest.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetConversationsRequest.md
index fe877dfd..baf9f886 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetConversationsRequest.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetConversationsRequest.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetConversationsResponse.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetConversationsResponse.md
index 704c3423..2392a5a3 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetConversationsResponse.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetConversationsResponse.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetDuplicatesOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetDuplicatesOptions.md
index fbc28c41..126c1773 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetDuplicatesOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetDuplicatesOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetHotPostsOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetHotPostsOptions.md
index f2324fe1..cea6939f 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetHotPostsOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetHotPostsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetModNotesOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetModNotesOptions.md
index b0310710..2d54dc72 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetModNotesOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetModNotesOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetModerationLogOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetModerationLogOptions.md
index b949e7ec..e6d5907f 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetModerationLogOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetModerationLogOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPageRevisionsOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPageRevisionsOptions.md
index 0de61e21..a2872222 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPageRevisionsOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPageRevisionsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPostsByUserOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPostsByUserOptions.md
index 9ec81116..e1ef49b9 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPostsByUserOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPostsByUserOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPostsOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPostsOptions.md
index c0e69773..5cc28883 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPostsOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPostsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPostsOptionsWithTimeframe.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPostsOptionsWithTimeframe.md
index 00ea2f37..16e1761e 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPostsOptionsWithTimeframe.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPostsOptionsWithTimeframe.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPrivateMessagesOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPrivateMessagesOptions.md
index 0a88409f..af49ef0d 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPrivateMessagesOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetPrivateMessagesOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetSortedPostsOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetSortedPostsOptions.md
index 2e6a04cb..da4e4c7b 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetSortedPostsOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetSortedPostsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetSubredditUsersByTypeOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetSubredditUsersByTypeOptions.md
index 6cf3f23b..d9da9f86 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetSubredditUsersByTypeOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetSubredditUsersByTypeOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserFlairBySubredditOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserFlairBySubredditOptions.md
index a2934667..a9bc0302 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserFlairBySubredditOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserFlairBySubredditOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserFlairBySubredditResponse.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserFlairBySubredditResponse.md
index 3e304ed5..04382549 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserFlairBySubredditResponse.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserFlairBySubredditResponse.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserFlairOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserFlairOptions.md
index a51fb169..b11c96fb 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserFlairOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserFlairOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserOverviewOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserOverviewOptions.md
index 7c6f91b4..78704a71 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserOverviewOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/GetUserOverviewOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ImagePosition.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ImagePosition.md
index 8d8cc56f..6af4fa7c 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ImagePosition.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ImagePosition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/InternalSetPostFlairOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/InternalSetPostFlairOptions.md
index b55c73aa..a792ec56 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/InternalSetPostFlairOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/InternalSetPostFlairOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/LinkFlair.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/LinkFlair.md
index 6a39a66b..2d0ef693 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/LinkFlair.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/LinkFlair.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ListingFetchOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ListingFetchOptions.md
index 47afdc2e..8a7e34b2 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ListingFetchOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ListingFetchOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ListingFetchResponse.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ListingFetchResponse.md
index c824d297..07e1c661 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ListingFetchResponse.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ListingFetchResponse.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/MenuPosition.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/MenuPosition.md
index 8db838f3..a42d1cc2 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/MenuPosition.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/MenuPosition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/MessageData.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/MessageData.md
index 67e40855..70e0b634 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/MessageData.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/MessageData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModActionData.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModActionData.md
index d45f2654..9c5b0af3 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModActionData.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModActionData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModActionTarget.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModActionTarget.md
index c2d29a47..5bd66f92 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModActionTarget.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModActionTarget.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModActionType.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModActionType.md
index b057a3ad..68844b1c 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModActionType.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModActionType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModLogOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModLogOptions.md
index 2e1d1e80..e66f7aea 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModLogOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModLogOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModNoteType.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModNoteType.md
index eaf77117..12b58028 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModNoteType.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModNoteType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModeratorPermission.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModeratorPermission.md
index f66059ac..5bd9472a 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModeratorPermission.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModeratorPermission.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModeratorReport.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModeratorReport.md
new file mode 100644
index 00000000..83acb761
--- /dev/null
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ModeratorReport.md
@@ -0,0 +1,27 @@
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
+
+***
+
+# Type Alias: ModeratorReport
+
+> **ModeratorReport** = `object`
+
+A moderator report attached to a post or comment.
+
+## Properties
+
+
+
+### author
+
+> **author**: `string`
+
+Username of the author without the u/ prefix, e.g. 'spez'
+
+***
+
+
+
+### reason
+
+> **reason**: `string`
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/MoreObject.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/MoreObject.md
index 7c88fd1a..9e0199f4 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/MoreObject.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/MoreObject.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/OEmbed.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/OEmbed.md
index a24b31ba..9579f0de 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/OEmbed.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/OEmbed.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Participant.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Participant.md
index 64662acc..0c19e787 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Participant.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Participant.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PollData.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PollData.md
index 949c8a70..b0e471e6 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PollData.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PollData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PollOption.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PollOption.md
index 945ddb75..823bc5a1 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PollOption.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PollOption.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PositionedImagePosition.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PositionedImagePosition.md
index 6fc81e35..8f0102d7 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PositionedImagePosition.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PositionedImagePosition.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostCapabilities.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostCapabilities.md
index 68f4829c..5985e924 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostCapabilities.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostCapabilities.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostSuggestedCommentSort.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostSuggestedCommentSort.md
index 1d96cbcf..fc44783e 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostSuggestedCommentSort.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostSuggestedCommentSort.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostTextOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostTextOptions.md
index f8d2d3a5..9fbcb0f8 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostTextOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostTextOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostType.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostType.md
index cc7b9863..101c8cf4 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostType.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/PostType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RedditVideo.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RedditVideo.md
index d9285ddc..dc32316d 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RedditVideo.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RedditVideo.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RelationshipType.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RelationshipType.md
index 3faa2b81..6fa6e653 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RelationshipType.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RelationshipType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RemovalReason.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RemovalReason.md
index 734f7d97..96ced821 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RemovalReason.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RemovalReason.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RemoveRelationshipOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RemoveRelationshipOptions.md
index a113d000..819a8f85 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RemoveRelationshipOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/RemoveRelationshipOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ReplyToCommentOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ReplyToCommentOptions.md
index 2e2d00fd..51783e48 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ReplyToCommentOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/ReplyToCommentOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SecureMedia.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SecureMedia.md
index b04387dd..80e4c42e 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SecureMedia.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SecureMedia.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SendPrivateMessageAsSubredditOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SendPrivateMessageAsSubredditOptions.md
index bedec3e5..53f112f9 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SendPrivateMessageAsSubredditOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SendPrivateMessageAsSubredditOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SendPrivateMessageOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SendPrivateMessageOptions.md
index 4910e423..d898bcad 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SendPrivateMessageOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SendPrivateMessageOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetFlairOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetFlairOptions.md
index 698d9b58..83900b7e 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetFlairOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetFlairOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetPostFlairOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetPostFlairOptions.md
index cedbd0b3..b25ae2d7 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetPostFlairOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetPostFlairOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetUserFlairBatchConfig.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetUserFlairBatchConfig.md
index 541213b4..4969f228 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetUserFlairBatchConfig.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetUserFlairBatchConfig.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetUserFlairOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetUserFlairOptions.md
index a5abdc80..03d3a2fb 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetUserFlairOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SetUserFlairOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitLinkOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitLinkOptions.md
index 39c5d8cd..8f7372ed 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitLinkOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitLinkOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitMediaOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitMediaOptions.md
index 86d7c902..6f1978d3 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitMediaOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitMediaOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitPostOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitPostOptions.md
index 8f9c63db..476b649c 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitPostOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitPostOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitSelfPostOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitSelfPostOptions.md
index 55f8eca1..6082c4e3 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitSelfPostOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubmitSelfPostOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditData.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditData.md
index 893871a3..f95718df 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditData.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditInfo.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditInfo.md
index ffc3f8d7..11fa17e4 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditInfo.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditInfo.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditLeaderboard.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditLeaderboard.md
index 0cf95064..451ac8c7 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditLeaderboard.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditLeaderboard.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditLeaderboardSummary.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditLeaderboardSummary.md
index eca2b556..cfe2dc04 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditLeaderboardSummary.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditLeaderboardSummary.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditLeaderboardSummaryRow.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditLeaderboardSummaryRow.md
index e771b1ee..e50d3bb4 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditLeaderboardSummaryRow.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditLeaderboardSummaryRow.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditSettings.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditSettings.md
index c1db2133..74c520f3 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditSettings.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditSettings.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditSettingsOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditSettingsOptions.md
index 6decf999..d73a39f3 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditSettingsOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditSettingsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditStyles.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditStyles.md
index bcd55f06..e28bb327 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditStyles.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditStyles.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditType.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditType.md
index 76a64e67..7442cfea 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditType.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/SubredditType.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Trophy.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Trophy.md
index 07501d44..5b8139aa 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Trophy.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Trophy.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UnreadCountResponse.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UnreadCountResponse.md
index 3f538ca8..2da4f2b4 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UnreadCountResponse.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UnreadCountResponse.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdatePageSettingsOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdatePageSettingsOptions.md
index 93528b06..1a89b5af 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdatePageSettingsOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdatePageSettingsOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdateRuleOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdateRuleOptions.md
index 0f39acd2..5b5ac8a4 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdateRuleOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdateRuleOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdateWidgetData.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdateWidgetData.md
index 224917c1..7fe1728b 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdateWidgetData.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdateWidgetData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdateWikiPageOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdateWikiPageOptions.md
index 3752bf8a..25cf6f2f 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdateWikiPageOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UpdateWikiPageOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserFlair.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserFlair.md
index 6d93aa01..bccaec32 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserFlair.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserFlair.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserFlairPageOptions.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserFlairPageOptions.md
index 2e9ae703..8e1df8fd 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserFlairPageOptions.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserFlairPageOptions.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserNote.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserNote.md
index 61016287..356fe35f 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserNote.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserNote.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserNoteLabel.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserNoteLabel.md
index 242943fb..a57993a4 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserNoteLabel.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserNoteLabel.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserSocialLink.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserSocialLink.md
index 65ac4aea..2404b331 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserSocialLink.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/UserSocialLink.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Vault.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Vault.md
index 163645ac..cdbb2336 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Vault.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Vault.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Visibility.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Visibility.md
index 61374d2b..31cfa81e 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Visibility.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/Visibility.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/WikiEditMode.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/WikiEditMode.md
index 6fe59175..ff3afe9f 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/WikiEditMode.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/WikiEditMode.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/WikiPageRevisionId.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/WikiPageRevisionId.md
index 21c37fcc..1d38022c 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/WikiPageRevisionId.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/WikiPageRevisionId.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/WithUserData.md b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/WithUserData.md
index a1e270d7..896cab95 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/type-aliases/WithUserData.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/type-aliases/WithUserData.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/api/redditapi/models/variables/GalleryMediaStatus.md b/versioned_docs/version-0.13/api/redditapi/models/variables/GalleryMediaStatus.md
index f62d6bdd..4a188c3c 100644
--- a/versioned_docs/version-0.13/api/redditapi/models/variables/GalleryMediaStatus.md
+++ b/versioned_docs/version-0.13/api/redditapi/models/variables/GalleryMediaStatus.md
@@ -1,4 +1,4 @@
-[**@devvit/public-api v0.13.10-dev**](../../README.md)
+[**@devvit/public-api v0.13.11-dev**](../../README.md)
***
diff --git a/versioned_docs/version-0.13/assets/showcase/app-gallery/hightier.png b/versioned_docs/version-0.13/assets/showcase/app-gallery/hightier.png
deleted file mode 100644
index d0f0bf54..00000000
Binary files a/versioned_docs/version-0.13/assets/showcase/app-gallery/hightier.png and /dev/null differ
diff --git a/versioned_docs/version-0.13/assets/showcase/app-gallery/honk.png b/versioned_docs/version-0.13/assets/showcase/app-gallery/honk.png
deleted file mode 100644
index d35cf56f..00000000
Binary files a/versioned_docs/version-0.13/assets/showcase/app-gallery/honk.png and /dev/null differ
diff --git a/versioned_docs/version-0.13/assets/showcase/app-gallery/pixelary.png b/versioned_docs/version-0.13/assets/showcase/app-gallery/pixelary.png
deleted file mode 100644
index 1d87594f..00000000
Binary files a/versioned_docs/version-0.13/assets/showcase/app-gallery/pixelary.png and /dev/null differ
diff --git a/versioned_docs/version-0.13/assets/showcase/app-gallery/riddonkulous.png b/versioned_docs/version-0.13/assets/showcase/app-gallery/riddonkulous.png
deleted file mode 100644
index 4f88ca88..00000000
Binary files a/versioned_docs/version-0.13/assets/showcase/app-gallery/riddonkulous.png and /dev/null differ
diff --git a/versioned_docs/version-0.13/assets/showcase/app-gallery/sword-and-supper.png b/versioned_docs/version-0.13/assets/showcase/app-gallery/sword-and-supper.png
deleted file mode 100644
index f9917942..00000000
Binary files a/versioned_docs/version-0.13/assets/showcase/app-gallery/sword-and-supper.png and /dev/null differ
diff --git a/versioned_docs/version-0.13/assets/showcase/app-gallery/what-the.png b/versioned_docs/version-0.13/assets/showcase/app-gallery/what-the.png
deleted file mode 100644
index 9ac52bb1..00000000
Binary files a/versioned_docs/version-0.13/assets/showcase/app-gallery/what-the.png and /dev/null differ
diff --git a/versioned_docs/version-0.13/changelog.md b/versioned_docs/version-0.13/changelog.md
index 62bd9d2d..0c68c80c 100644
--- a/versioned_docs/version-0.13/changelog.md
+++ b/versioned_docs/version-0.13/changelog.md
@@ -9,6 +9,11 @@ To use the latest version of Devvit:
**Please note**: you may see features available across Devvit packages that are not documented or noted in our changelog. These are experimental features that are not stable and are subject to change, or removal, from the platform. Please use caution when testing or implementing experimental features.
+## Release 0.13.11: Behind-the-Scenes Improvements
+**Release Date: August 3, 2026***
+
+This release delivers a few behind-the-scenes improvements to make app development smoother and more reliable.
+
## Release 0.13.10: Push Notifications Analytics (Experimental)
**Release Date: July 27, 2026**
diff --git a/versioned_docs/version-0.13/examples/app-showcase.mdx b/versioned_docs/version-0.13/examples/app-showcase.mdx
index 83b48c9a..dbdf326a 100644
--- a/versioned_docs/version-0.13/examples/app-showcase.mdx
+++ b/versioned_docs/version-0.13/examples/app-showcase.mdx
@@ -1,17 +1,17 @@
import { ShowcaseAppList, ShowcaseAppListItem } from '@site/src/components/ShowcaseAppList';
-import AlignmentChartsImage from '@site/versioned_docs/version-0.13/assets/showcase/app-gallery/alignmentcharts.webp';
-import BunnyTrialsImage from '@site/versioned_docs/version-0.13/assets/showcase/app-gallery/bunnytrials.webp';
-import BotBouncerImage from '@site/versioned_docs/version-0.13/assets/showcase/app-gallery/bot-bouncer.png';
-import BubbleShooterProImage from '@site/versioned_docs/version-0.13/assets/showcase/app-gallery/bubbleshooterpro.webp';
-import CommunityHomeImage from '@site/versioned_docs/version-0.13/assets/showcase/app-gallery/community-home.png';
-import LeftForLootImage from '@site/versioned_docs/version-0.13/assets/showcase/app-gallery/leftforloot.webp';
-import LettersetImage from '@site/versioned_docs/version-0.13/assets/showcase/app-gallery/letterset.webp';
-import PathOfBaaImage from '@site/versioned_docs/version-0.13/assets/showcase/app-gallery/pathofbaa.webp';
-import PieceOfCakeImage from '@site/versioned_docs/version-0.13/assets/showcase/app-gallery/pieceofcake.webp';
-import RiddonkulousImage from '@site/versioned_docs/version-0.13/assets/showcase/app-gallery/riddonkulous.webp';
-import SlingbladeImage from '@site/versioned_docs/version-0.13/assets/showcase/app-gallery/slingblade.webp';
-import SwordAndSupperImage from '@site/versioned_docs/version-0.13/assets/showcase/app-gallery/swordandsupper.webp';
+import AlignmentChartsImage from '@site/docs/assets/showcase/app-gallery/alignmentcharts.webp';
+import BunnyTrialsImage from '@site/docs/assets/showcase/app-gallery/bunnytrials.webp';
+import BotBouncerImage from '@site/docs/assets/showcase/app-gallery/bot-bouncer.png';
+import BubbleShooterProImage from '@site/docs/assets/showcase/app-gallery/bubbleshooterpro.webp';
+import CommunityHomeImage from '@site/docs/assets/showcase/app-gallery/community-home.png';
+import LeftForLootImage from '@site/docs/assets/showcase/app-gallery/leftforloot.webp';
+import LettersetImage from '@site/docs/assets/showcase/app-gallery/letterset.webp';
+import PathOfBaaImage from '@site/docs/assets/showcase/app-gallery/pathofbaa.webp';
+import PieceOfCakeImage from '@site/docs/assets/showcase/app-gallery/pieceofcake.webp';
+import RiddonkulousImage from '@site/docs/assets/showcase/app-gallery/riddonkulous.webp';
+import SlingbladeImage from '@site/docs/assets/showcase/app-gallery/slingblade.webp';
+import SwordAndSupperImage from '@site/docs/assets/showcase/app-gallery/swordandsupper.webp';
# App Showcase
diff --git a/yarn.lock b/yarn.lock
index bd009f1a..605b0540 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -218,13 +218,13 @@
json5 "^2.2.3"
semver "^6.3.1"
-"@babel/generator@^7.25.9", "@babel/generator@^7.29.7":
- version "7.29.7"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.7.tgz#cca0b8827e6bcf3ba176788e7f3b180ad6db2fa3"
- integrity sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==
+"@babel/generator@^7.25.9", "@babel/generator@^7.29.7", "@babel/generator@^7.29.8":
+ version "7.29.8"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.8.tgz#4b0b887885422643339e09022148a4c4ebaa4979"
+ integrity sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==
dependencies:
- "@babel/parser" "^7.29.7"
- "@babel/types" "^7.29.7"
+ "@babel/parser" "^7.29.8"
+ "@babel/types" "^7.29.8"
"@jridgewell/gen-mapping" "^0.3.12"
"@jridgewell/trace-mapping" "^0.3.28"
jsesc "^3.0.2"
@@ -380,12 +380,12 @@
"@babel/template" "^7.29.7"
"@babel/types" "^7.29.7"
-"@babel/parser@^7.29.7":
- version "7.29.7"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.7.tgz#837b87387cbf5ec5530cb634b3c622f68edb9334"
- integrity sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==
+"@babel/parser@^7.29.7", "@babel/parser@^7.29.8":
+ version "7.29.8"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.8.tgz#9653716a2f10c677b98fbc63d4bfb000c302cf17"
+ integrity sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==
dependencies:
- "@babel/types" "^7.29.7"
+ "@babel/types" "^7.29.8"
"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.29.7":
version "7.29.7"
@@ -679,14 +679,14 @@
"@babel/helper-plugin-utils" "^7.29.7"
"@babel/plugin-transform-modules-systemjs@^7.29.7":
- version "7.29.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz#e575dd2ab9882906de120ff7dc9dee9914d8b6f3"
- integrity sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==
+ version "7.29.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.8.tgz#e60a6a42ac63a3095f9cc7264f698a100c8fe05d"
+ integrity sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA==
dependencies:
"@babel/helper-module-transforms" "^7.29.7"
"@babel/helper-plugin-utils" "^7.29.7"
"@babel/helper-validator-identifier" "^7.29.7"
- "@babel/traverse" "^7.29.7"
+ "@babel/traverse" "^7.29.8"
"@babel/plugin-transform-modules-umd@^7.29.7":
version "7.29.7"
@@ -831,9 +831,9 @@
"@babel/helper-plugin-utils" "^7.29.7"
"@babel/plugin-transform-regenerator@^7.29.7":
- version "7.29.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz#0f42626a7dbb0e7a7f52e036d3e43deebdc3ea4e"
- integrity sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==
+ version "7.29.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.8.tgz#3a4a4dd7214af9d524f0503bb97c99af5f4abf26"
+ integrity sha512-0UpIXPtdDtMXfnV2OJAVMLpj3H/92vmkA6lpSRakmycJvj3VUy6Xs1dM8tXRugupykr5WB+LpiVl0J8LMVg2mg==
dependencies:
"@babel/helper-plugin-utils" "^7.29.7"
@@ -872,9 +872,9 @@
"@babel/helper-plugin-utils" "^7.29.7"
"@babel/plugin-transform-spread@^7.29.7":
- version "7.29.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz#a128bcdd6b5e5e47054907b2e50bc19c3f856edd"
- integrity sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==
+ version "7.29.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.8.tgz#c894cff38556a5dafeb412e13fc012b6df4b95a2"
+ integrity sha512-4S9ksMGVWUshvgK0mKfvZky7leuG5/uoFVwMpAomJ8bMoDJiNHRVmc1EglwW/CmGVSqqWpEbXm9FmbRit22qoA==
dependencies:
"@babel/helper-plugin-utils" "^7.29.7"
"@babel/helper-skip-transparent-expression-wrappers" "^7.29.7"
@@ -1065,23 +1065,23 @@
"@babel/parser" "^7.29.7"
"@babel/types" "^7.29.7"
-"@babel/traverse@^7.25.9", "@babel/traverse@^7.29.7":
- version "7.29.7"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.7.tgz#c47b07a41b95da0907d026b5dd894d98de7d2f2d"
- integrity sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==
+"@babel/traverse@^7.25.9", "@babel/traverse@^7.29.7", "@babel/traverse@^7.29.8":
+ version "7.29.8"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.8.tgz#4111014cdc71a0f95d9471907590baa0b8a6b28a"
+ integrity sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==
dependencies:
"@babel/code-frame" "^7.29.7"
- "@babel/generator" "^7.29.7"
+ "@babel/generator" "^7.29.8"
"@babel/helper-globals" "^7.29.7"
- "@babel/parser" "^7.29.7"
+ "@babel/parser" "^7.29.8"
"@babel/template" "^7.29.7"
- "@babel/types" "^7.29.7"
+ "@babel/types" "^7.29.8"
debug "^4.3.1"
-"@babel/types@^7.21.3", "@babel/types@^7.29.7", "@babel/types@^7.4.4":
- version "7.29.7"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.7.tgz#8005e31d82712ee7adaef6e23c63b71a62770a92"
- integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==
+"@babel/types@^7.21.3", "@babel/types@^7.29.7", "@babel/types@^7.29.8", "@babel/types@^7.4.4":
+ version "7.29.8"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.8.tgz#1229eef31d85156d70fa3f4cd859376d0eaf6863"
+ integrity sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==
dependencies:
"@babel/helper-string-parser" "^7.29.7"
"@babel/helper-validator-identifier" "^7.29.7"
@@ -1490,24 +1490,24 @@
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
-"@docsearch/core@4.6.3":
- version "4.6.3"
- resolved "https://registry.yarnpkg.com/@docsearch/core/-/core-4.6.3.tgz#9954c75c3ae28418e06f8e7537a920d6cd2bc22e"
- integrity sha512-rUOujwIpxJRgD7+kicVsI3D5sqBvdiRTquzWBpTEXZs8ZXfGbfzpus5HqumaNYTppN2HvH8E2yNuRwYdHJeOlA==
+"@docsearch/core@4.7.0":
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/@docsearch/core/-/core-4.7.0.tgz#914962191f2718b9caa48f4cbe46c0720fdc055d"
+ integrity sha512-p/9xVKmPDj3FPvMfPf5naVO3Ej8SCbcUugGvx1+8GgkuBNbqxqN2Irx3WLBv8VY0jH7XpRwKWdlmjXLZsmTLsg==
-"@docsearch/css@4.6.3":
- version "4.6.3"
- resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-4.6.3.tgz#a94065af4a996dd927dc5dda383395e583dbd638"
- integrity sha512-nlOwcXcsNAptQl4vlL4MA78qNJKO0Qlds5GuBjCoePgkebTXLSf8Qt1oyZ3YBshYupKXG9VRGEsk1zr23d+bzQ==
+"@docsearch/css@4.7.0":
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-4.7.0.tgz#d6d93c6ddf5e813a3ea09da719e150c222693a5c"
+ integrity sha512-Sk5xkdRFeE7PeWjG9l4AfTwdvMfr9wHiwNNCpHXT4v4SNyNMKdHGvEILc31BgaVFGDDNbv5u/a73tofRiwbEZw==
"@docsearch/react@^3.9.0 || ^4.3.2":
- version "4.6.3"
- resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-4.6.3.tgz#80df785f9c5e484c960b914a22ea2a3e4c7210ad"
- integrity sha512-Bg2wdDsoQVlNCcEKuEJAU04tvHCqgx8rIu+uIoM4pRtcx3TBKJuXutJik3LTA8LRc9YEyHkrYUrmcC0D7BYf+g==
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-4.7.0.tgz#8e7d77c34d19755f98d225a3413eddf605658d70"
+ integrity sha512-x6oedjJ8O8/pIDBsMo5Orca3/6cQCz616/CwthVe68l43mqnj2lrJ9kFQITBqy8hMsS3nWeBWFoVO5dJ1DCFKA==
dependencies:
"@algolia/autocomplete-core" "1.19.2"
- "@docsearch/core" "4.6.3"
- "@docsearch/css" "4.6.3"
+ "@docsearch/core" "4.7.0"
+ "@docsearch/css" "4.7.0"
"@docusaurus/babel@3.10.2":
version "3.10.2"
@@ -2033,24 +2033,24 @@
tslib "^2.4.0"
"@emnapi/core@^1.4.3", "@emnapi/core@^1.5.0":
- version "1.11.2"
- resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.11.2.tgz#fab0a0f3c492d11f5a9ac9065d0d73955ee1c1c9"
- integrity sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==
+ version "1.11.3"
+ resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.11.3.tgz#5e95348a42cd1e06f0b9aa380cd74091daa4d520"
+ integrity sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==
dependencies:
- "@emnapi/wasi-threads" "1.2.2"
+ "@emnapi/wasi-threads" "1.2.3"
tslib "^2.4.0"
"@emnapi/runtime@^1.4.3", "@emnapi/runtime@^1.5.0":
- version "1.11.2"
- resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.11.2.tgz#eb22f04d76febfdf4f87fdaff54c8a53f6bf0dbd"
- integrity sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==
+ version "1.11.3"
+ resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.11.3.tgz#84257ae3b0531eb2aec1ffa23d70700da007ba95"
+ integrity sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==
dependencies:
tslib "^2.4.0"
-"@emnapi/wasi-threads@1.2.2":
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz#4c93becf5bfa3b13d1bbdcc06aee38321ad8139a"
- integrity sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==
+"@emnapi/wasi-threads@1.2.3":
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz#c9bf72fd4be5b928aee894820e8d814ed73916e9"
+ integrity sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==
dependencies:
tslib "^2.4.0"
@@ -2764,16 +2764,16 @@
yaml-ast-parser "0.0.43"
"@redocly/openapi-core@^1.4.0":
- version "1.34.17"
- resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.34.17.tgz#1eeb3070c399aa5d3557d08539d3f8827bd1cf3b"
- integrity sha512-wsV2keCt6B806XpSdezbWZ9aFJYf14YVh+XQf0ESt7M90yqVuxH9//PxvtC70sgj9OCkRM3nRaLfu4MsGQZRig==
+ version "1.34.18"
+ resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.34.18.tgz#29993a477fc312a39371d1c311d92031ecfaf52d"
+ integrity sha512-UyKIm0wTPw5BcY7Z2PkbK1Ma260um96LSBWXHrdSMe+ZV0EPMyDfAcUcjjm3qEiGST9OK/1TriekdPCZkn4Q3A==
dependencies:
"@redocly/ajv" "8.11.2"
"@redocly/config" "0.22.0"
colorette "1.4.0"
https-proxy-agent "7.0.6"
js-levenshtein "1.1.6"
- js-yaml "4.2.0"
+ js-yaml "4.3.0"
minimatch "5.1.9"
pluralize "8.0.0"
yaml-ast-parser "0.0.43"
@@ -3042,176 +3042,176 @@
"@svgr/plugin-jsx" "8.1.0"
"@svgr/plugin-svgo" "8.1.0"
-"@swc/core-darwin-arm64@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.46.tgz#393903c7eda790dbd89abd8fa0afdd9041543e5f"
- integrity sha512-IsISIT22EfktVJrlvIpnAxG2u/A9aob9l99HMlx80x72WlFmFPk1V3UhkEzx86eJP8hw049KTFv/RISho2cq2Q==
-
-"@swc/core-darwin-x64@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.15.46.tgz#ddf16787e320636621180df480a3490fd9a868ca"
- integrity sha512-4Tj4ppVIPCmUMpmGFiGtyEriwLyJ+yi/US4WfBrP/ok8COGddDZXLEzQETnKyK46mjvr1v0jevrS23zjoff7vA==
-
-"@swc/core-linux-arm-gnueabihf@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.46.tgz#7bee01b7311c43b913771ef9c7012931871de73b"
- integrity sha512-i8tUGnNjyOgMmfmgFSg4aeJLQoFyfpIHK5FjpQAwpRyQIqEUB2w1e8zIDQzY1WhOxx8NoS1S5iUL813Un4Sf5A==
-
-"@swc/core-linux-arm64-gnu@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.46.tgz#964596d757d18f04a02873d85a3660416c09c187"
- integrity sha512-c0OnhqzdhfOvv6qhNCcByepB+sNYOGZyhtr2Qa6ZCHvAWTYhSRw4j/u92Stue9PbZ/6q74b9nHzi76+kVzqQHQ==
-
-"@swc/core-linux-arm64-musl@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.46.tgz#213d3ece772689a8166ed51064836346c6ce1c2a"
- integrity sha512-imyRpNEcUzFQFV2LE4jL68ErvmKEuZCbvZru77iQREunJ+bR4i658cupTgtG1mLYM3F1Tzy3Sb9xYb02KghWTg==
-
-"@swc/core-linux-ppc64-gnu@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.46.tgz#4d2ec554103c6bef60cc1e294f374ea5a5edaf78"
- integrity sha512-ctEfcl/HcUeomK33cbySiHZm98GEDIxTm1EkpBsYCiHxElYBzvTXVeuQT2YwbUXn9XCrjiw4ipyUNk33k26qRg==
-
-"@swc/core-linux-s390x-gnu@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.46.tgz#097a19792ec22e2f51f6bfac02da1e0b3f5e5bb1"
- integrity sha512-DxlMdnt84TtRVTv7WL/thWyz9+QU8QZNNoAP9rrk0P68LziuhfePp8MjQ44zIprpTHTsEwyziIuGUUN5iSC1bQ==
-
-"@swc/core-linux-x64-gnu@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.46.tgz#39c1ca215f9ca643a4aa3ca6250cc38ba5f5c673"
- integrity sha512-SKxI7J6t90XPl8hRUqtJi9NfGdunN/E/vZMc7Bc0figeRdOPDBT+Tm8g7cx9xM0T0mewh2l+8dewa3Am27/P+A==
-
-"@swc/core-linux-x64-musl@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.46.tgz#323a720bc965fffeedacdc3167b46a291553b5e0"
- integrity sha512-qj9T6B7bosI0VEsrWOVXZN1OXxS8Tp63ywyrLxNdOycnUtLdkgYcoBsN5y8ImnDDsnwrEWZOy1e+J4xSe7mA3Q==
-
-"@swc/core-win32-arm64-msvc@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.46.tgz#9c2cfd2a59be74671a018097b8914f8cfbcc698d"
- integrity sha512-8p7l4c3LU+eA5g9Et1JPhNeMC1oQwXTGU+uah8DPIBX7YXzqswvaBtyKVmXefVGi/DJU1x3YJsc3mbAp9aWzSQ==
-
-"@swc/core-win32-ia32-msvc@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.46.tgz#bd7bd009a47b0f9826212e7ed36385d32fe193d8"
- integrity sha512-tUEnfr3Bn9u6FOjUb3PN9p+09qZC2j+wNDLKHzXXZn22rqGcUqR/ohCRSS+nG9B9+X+U+3FewNEHJkTmdIvMjQ==
-
-"@swc/core-win32-x64-msvc@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.46.tgz#8371845a5bdb330cf05b009f602bb8c4636c6beb"
- integrity sha512-Vux7UDzBJYQggSuPfcl2w9iu+IJpgpRCxHzgCaVkELnAXAE4XZMOTX9HNcaNiwfeIDqdu2rkr69RuDm6wY8neA==
+"@swc/core-darwin-arm64@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.47.tgz#345ce6a1bf4033da189c2e3eff1244190195d15b"
+ integrity sha512-GsoMtan3ojGGMGFbl31mmRu5ctZ56re8grGE8mO/OHJ8O+JRkzod02fe7X6ZQ8JvamA3imkEkx/h3u+vsOgPgA==
+
+"@swc/core-darwin-x64@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.15.47.tgz#f3debf50b5c1602bf392acb412bd33fd6d7e4f98"
+ integrity sha512-leTi7Rx3KF4zcC637iqWgk9SoV8VXAD8ppQYXsep63px5A/UftOcxLN1pmr8Z1si/YvX90ompP/rHgpYkgwXWg==
+
+"@swc/core-linux-arm-gnueabihf@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.47.tgz#14a247a12c6d3de1ee63fa4fdbf5a4302936b5d6"
+ integrity sha512-hBqHuoWKKIsKmDBn9qVeWqj5GWZhtlcczVaqQmNRXsDfq+voR5CxKRfamA367QjJXtceYuliLFfEL8QsskRM2g==
+
+"@swc/core-linux-arm64-gnu@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.47.tgz#3b8d09c481ae51c7b72d98fb6ce98f7b90065a1a"
+ integrity sha512-TBxvRz+B4K205TWHHZxWVxkC2RFNP/Mz3PNcECBos5PsKwxjg3QSJzdoebr0VCf0Bfh8HOPldKxAP/8XkFe9gA==
+
+"@swc/core-linux-arm64-musl@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.47.tgz#7ff2baa16e67b29017fdf7c6b69e40de7920ce1a"
+ integrity sha512-3Yu3Uq/VgytqsPjTMbkPU1ExADytbdWbruJYhA584E9jrpE2Ki+R6VVPoZCeAVk1Cb7QxcRTgblw6bSa6a/R+w==
+
+"@swc/core-linux-ppc64-gnu@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.47.tgz#a3841982fe2eb2d889648c8e212b6d821db316d6"
+ integrity sha512-wfdMi5IaOaNtmh2/6geRoxIdNfqylUZFdtzTKS655y1axWfIWyx7As74vv0wVdjeCIZ3WmCI9odDd4rUttXOSQ==
+
+"@swc/core-linux-s390x-gnu@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.47.tgz#edbfd705d6285f7dce48915871478bc9603904c3"
+ integrity sha512-3hHYBY0yx8Ez7GMRrkhXHQzMdR5IZA6Wq5Ee4svlgwvSECLpnAJ9+0AimEGUFDvuLwE7nV/2+PYe8+Nm4rvNcQ==
+
+"@swc/core-linux-x64-gnu@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.47.tgz#e7f61a7771d6a9b5b274521ba61809b3d7644325"
+ integrity sha512-TjfhjgP/jGCfFHYC3JQPhJA1HwErbIJ9JfREDc1KNkvY6P0LodCgKVIlQ5deeTbkG7ih3bF5PHJLuLpaZjdRyQ==
+
+"@swc/core-linux-x64-musl@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.47.tgz#7c1ef8305444bcc7894de177fe225f2d8f3be609"
+ integrity sha512-CQpS8Ge/avfjZd0UEwG/sds83Uu32deQXcV1Jo3jD0mmvQQqtYAjpsDZXugmheeAwmt+YIuoVtVHro8LMYHqsQ==
+
+"@swc/core-win32-arm64-msvc@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.47.tgz#953856d26b28956d1a18ef10e5f221202b2cb8f1"
+ integrity sha512-0W8IKHsUTYiT7G2RqtOoVWk+89yzZikIiDUb/sCK6BmQDBhN91hQSfyUtW12jhEWLzYgcfmisfsZrmZE+84U1A==
+
+"@swc/core-win32-ia32-msvc@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.47.tgz#2743a5bccc49f252c23bad3135193640cbdcef3a"
+ integrity sha512-ZIp49d2Z4/ka2jO9otOg4hDvTdPmp86kVOgS2M5FCPI7eKKZ1W0boxWn+8XeZrfERtFGW0AlMRm4JhlJa7l3NA==
+
+"@swc/core-win32-x64-msvc@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.47.tgz#9674ad0c9187b7cbe5cc3080b31b960d3ee688b9"
+ integrity sha512-2h8Iek95vnixkBRCo+H8p09+Q5ll2NgSMFrWTy0iKt7+/t+8/T5mBpiT6c0ZxSS7wcWjwZ9sGZkK70tTSYHdDw==
"@swc/core@^1.15.40":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.15.46.tgz#8acc0f68ee55010fdc876adf2a8faf0b097c681b"
- integrity sha512-Ri3em2mBpq3h2zSPliCYl63otDGqek8PPEfv2nWgRQEbZ/VBCNyypVTVQ6cEbTCXBhy+WE2T3fQb08moIyuYaw==
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.15.47.tgz#6226e842160e247eb79a9aeac1095ebddb56639f"
+ integrity sha512-FbsO5JcfOjfH38W/rohBRBweJeERsAuIP4f377lmkmxTcq9exjtx4SkRuZY5CdfhR2CBVwDIJegBpJDffwNsOg==
dependencies:
"@swc/counter" "^0.1.3"
"@swc/types" "^0.1.27"
optionalDependencies:
- "@swc/core-darwin-arm64" "1.15.46"
- "@swc/core-darwin-x64" "1.15.46"
- "@swc/core-linux-arm-gnueabihf" "1.15.46"
- "@swc/core-linux-arm64-gnu" "1.15.46"
- "@swc/core-linux-arm64-musl" "1.15.46"
- "@swc/core-linux-ppc64-gnu" "1.15.46"
- "@swc/core-linux-s390x-gnu" "1.15.46"
- "@swc/core-linux-x64-gnu" "1.15.46"
- "@swc/core-linux-x64-musl" "1.15.46"
- "@swc/core-win32-arm64-msvc" "1.15.46"
- "@swc/core-win32-ia32-msvc" "1.15.46"
- "@swc/core-win32-x64-msvc" "1.15.46"
+ "@swc/core-darwin-arm64" "1.15.47"
+ "@swc/core-darwin-x64" "1.15.47"
+ "@swc/core-linux-arm-gnueabihf" "1.15.47"
+ "@swc/core-linux-arm64-gnu" "1.15.47"
+ "@swc/core-linux-arm64-musl" "1.15.47"
+ "@swc/core-linux-ppc64-gnu" "1.15.47"
+ "@swc/core-linux-s390x-gnu" "1.15.47"
+ "@swc/core-linux-x64-gnu" "1.15.47"
+ "@swc/core-linux-x64-musl" "1.15.47"
+ "@swc/core-win32-arm64-msvc" "1.15.47"
+ "@swc/core-win32-ia32-msvc" "1.15.47"
+ "@swc/core-win32-x64-msvc" "1.15.47"
"@swc/counter@^0.1.3":
version "0.1.3"
resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9"
integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==
-"@swc/html-darwin-arm64@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html-darwin-arm64/-/html-darwin-arm64-1.15.46.tgz#a870c0a32983e67be72a6ee0accb85ed011cf7d4"
- integrity sha512-ZsC+iFnLOHPt7DF0tBxGoctF4/L0cUcuGonDavnwHhISHJiDQuT8TuRD9dB2jS7Du12ZY2Vu3jTugSnOfaDWxg==
-
-"@swc/html-darwin-x64@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html-darwin-x64/-/html-darwin-x64-1.15.46.tgz#ec7ad3089e87a997b8c60ac216c54cac0681593b"
- integrity sha512-XBg/CK0sA+Fa0KUzShhnAM14MwhWoeMANY8NAAuSlDpJnv5A+ek4wd7eNvriTHwaS10hNzQeSFgVkkeS3I4x6A==
-
-"@swc/html-linux-arm-gnueabihf@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html-linux-arm-gnueabihf/-/html-linux-arm-gnueabihf-1.15.46.tgz#7950f6f5c59211b4ed7528535e7c4b3928e78374"
- integrity sha512-lIXI6nTEf8yaaCTN4mT7geL1L+CnoSSUCj9rds0B5W8Y/Jc3GHmAwErlFn2Eyt8hLjqvd7vZJw1oqAbmVwDesw==
-
-"@swc/html-linux-arm64-gnu@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-gnu/-/html-linux-arm64-gnu-1.15.46.tgz#219aa80c6569619bf46a656ce040d9ffae1d2e4c"
- integrity sha512-pBXrXBb3X5820lQQ+poQ/HcQxrtVfo+YJqHXLCFyAtkBxGG/c2XYFcMu4eBig1M5fvpquwtbb/qw6m67reM+kQ==
-
-"@swc/html-linux-arm64-musl@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-musl/-/html-linux-arm64-musl-1.15.46.tgz#030f32828e2d0195c149bb50200ba21aac5e22c6"
- integrity sha512-vbbCIsKhZMooIZVG+v0NDVVmSKo22CyTVc6Qy/bijukj2/LDglxDjgMq68p0mnwhYyE4Y6URFtniMkIgY8CQuw==
-
-"@swc/html-linux-ppc64-gnu@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html-linux-ppc64-gnu/-/html-linux-ppc64-gnu-1.15.46.tgz#f84d1d251d711ab319f9780b3063ffc3b558944d"
- integrity sha512-6bUllvm6IwF8vxhmD6gl2OFiHiCVMmnGqDywhmRSCB2mzSN6HAmNzNJk3wuRDHUILQa7R2bvA5Vpt00hLO71ww==
-
-"@swc/html-linux-s390x-gnu@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html-linux-s390x-gnu/-/html-linux-s390x-gnu-1.15.46.tgz#a0f6c2bced4b7f0cfa6decf9b2f6dda83ad482af"
- integrity sha512-3kbCA/8Ij8xDbzgrTVyQ0OshcR2PvYiVOugIATQBV2qZ+RAyeozHPcodO+Fi+7X07p+D8hNfDfFik2rq4Vc45Q==
-
-"@swc/html-linux-x64-gnu@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-gnu/-/html-linux-x64-gnu-1.15.46.tgz#230aed71a07817f5a7dd9c00b53d10b16e4bcb73"
- integrity sha512-n5L9LVBW0aE1tfMGk4b6koOzHog51G25wXgWbRmUDG2iqUO1Ss75DFurGEnjM7KoiKw6iqTJU0sXl/S92SAQ7w==
-
-"@swc/html-linux-x64-musl@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-musl/-/html-linux-x64-musl-1.15.46.tgz#89eb91e560051ba4aa56cce411f5ae65f555be00"
- integrity sha512-NHjUyt+SrjSZGqoltQcNztZn6SmM7XkCgcrJoMTlAbrcC4XY+xvVi0QTp31roNnmX4GtqsZAGdgHGY5r0Who/w==
-
-"@swc/html-win32-arm64-msvc@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html-win32-arm64-msvc/-/html-win32-arm64-msvc-1.15.46.tgz#f4dd663a38f37a5190dc4497317e85621c3fea72"
- integrity sha512-x0/muLfBFN9O8omLqxm3GaJe8GZrYR4LTyWMw+o4Pjx3sxX6+MuLne5ebhT2jBVADkucCURGnDHCBm53WHz7EA==
-
-"@swc/html-win32-ia32-msvc@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html-win32-ia32-msvc/-/html-win32-ia32-msvc-1.15.46.tgz#b53bf69eaafdfd4c3c0863b118bcff52e2e75c4c"
- integrity sha512-vebE5ouxwl4saFYmtjUuSqP83fj3eMJQgyrXwEFky08J5aAqt07y1d2jmetGA2guFoSYwAMKJWTU8287Mpzf4g==
-
-"@swc/html-win32-x64-msvc@1.15.46":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html-win32-x64-msvc/-/html-win32-x64-msvc-1.15.46.tgz#4d59abce9e02b69c9ff4a2bd350469b45bbf2e58"
- integrity sha512-WBYYs0O/LUNZrO5eA7Zlkokbqg5Np3gQ2lQtkHeFCSFEJDYk8XWaHIU/3Kg89dduVUPer3h4TR/tqCWdBAKMzw==
+"@swc/html-darwin-arm64@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html-darwin-arm64/-/html-darwin-arm64-1.15.47.tgz#a42a07365512956f57f6fa64533b17d2a7f1cf26"
+ integrity sha512-Qe3FXNLO/k2WN7xmBP8SzBrtLvlIbyqa8cceUOI0opE4gk+myk5qIk022MiGJOgiF1B21/wMXgA08gYjQ2lP2Q==
+
+"@swc/html-darwin-x64@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html-darwin-x64/-/html-darwin-x64-1.15.47.tgz#a39820dafa0d742886d9445aa11c01d64ebd6fed"
+ integrity sha512-khCOiWmqlqi8yz+F/ePExhht/+3/cz1XzKV7raPKVynzd6sPxYtFQlNubj305s2soEXgkYYIH0zVVLwiMOVn6Q==
+
+"@swc/html-linux-arm-gnueabihf@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html-linux-arm-gnueabihf/-/html-linux-arm-gnueabihf-1.15.47.tgz#f411e12920cb4927d904a738840a55f1ad7533b0"
+ integrity sha512-7VRqaOEQEFPHSbUcnobmI59WbFK9M35Sse8TFN3hHxOlK9fINJ9yN5FuE9XEeRQAk+PFdR6WrIcF1Xwx1Cpi8A==
+
+"@swc/html-linux-arm64-gnu@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-gnu/-/html-linux-arm64-gnu-1.15.47.tgz#1707179cc03a9ab3dc94e79c903ddb2a423f2625"
+ integrity sha512-Ri9MmQqVRiEWuRfpkSTqz0bguvejXQcqQAkoW1Hke6+DColfzETcgNWa/Kw/ii5A/SS9Nb7acKaYdIw1vMBPwA==
+
+"@swc/html-linux-arm64-musl@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-musl/-/html-linux-arm64-musl-1.15.47.tgz#bafc864c6a7154e82f2cec5423cf782d8e28a351"
+ integrity sha512-NyXRQiVBkeutgCwCxUUaFqZdDmpZONs7Zz3AZGoY35s9GwXF412Nt22fK/e7lO/sM6G/+S3rOom/0xTmUQSK6A==
+
+"@swc/html-linux-ppc64-gnu@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html-linux-ppc64-gnu/-/html-linux-ppc64-gnu-1.15.47.tgz#060c636010ba48fe5282ca69c996163d5e7bde2e"
+ integrity sha512-rQ+XLJHFzu0e4M5p1+8kF2FKzI7WO9KPPji87OuicHZVrDCEqg7/jSGu3hys9CjIQIYVfR+tAFuZz3Q1/jOoNA==
+
+"@swc/html-linux-s390x-gnu@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html-linux-s390x-gnu/-/html-linux-s390x-gnu-1.15.47.tgz#68bd3ef44ee0a2e508c6fb7c7cf3d78c7d1f9241"
+ integrity sha512-w6bitHrllrE3lqmf14cT3spmWhZHGts1O08O4adzxztSPto7O5GM3IerqZm/NtsqlxNsfbVHnhaNXxXWe/8Q+Q==
+
+"@swc/html-linux-x64-gnu@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-gnu/-/html-linux-x64-gnu-1.15.47.tgz#8b9369d350f22fe8835813850488b977302da7da"
+ integrity sha512-FTA7E29gcyadd71prg8sJUVacYrIhAXS8L7p48yCfgcNOKquofN1TDOrHVOyYMoxplL3FUwwbN+AZxWO7QfWPQ==
+
+"@swc/html-linux-x64-musl@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-musl/-/html-linux-x64-musl-1.15.47.tgz#3ec864d713f8be8b62072ea22221ca7a32479d9d"
+ integrity sha512-g+K1GKUrj+S9o8Qsgii2g7ooMzZ750R4IAqH5CVElIA5FTMAx7KGnu9ga6aEnRwwLYxY3s1k/nN+ls0NEk240g==
+
+"@swc/html-win32-arm64-msvc@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html-win32-arm64-msvc/-/html-win32-arm64-msvc-1.15.47.tgz#60bca26237cc018c189f88d26bedfcc846444372"
+ integrity sha512-5Iw3i00JdTySi+ccc2CM5bxY+8TZivQmcTqUC6mUdAY0/KYBgSe1/L294UJQ4OTLQqNDOYXY9jdb070zZUX7jg==
+
+"@swc/html-win32-ia32-msvc@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html-win32-ia32-msvc/-/html-win32-ia32-msvc-1.15.47.tgz#e76e1954f4d9301748ff9dc540ed65156bf6299e"
+ integrity sha512-YkKd0hbIOeuFC1Sg7uGKkU2JhL+c9vAJlT6P0nRbWCAL71n01IPbdtbW6PmvgVmI7pxRYucXpr4pg839nX5+9Q==
+
+"@swc/html-win32-x64-msvc@1.15.47":
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html-win32-x64-msvc/-/html-win32-x64-msvc-1.15.47.tgz#4df3dd604985971992b1745bf7b1e7a925f4138f"
+ integrity sha512-w9Ug+VB9hlHT4hTWIJSB40AdF+qs5w07CYq/+ef1vQRjT5naN6/SKuXmr9/CKLn3T7A9z3lRMPKE4+lmtUkBOQ==
"@swc/html@^1.15.40":
- version "1.15.46"
- resolved "https://registry.yarnpkg.com/@swc/html/-/html-1.15.46.tgz#5f3d2c21a446410eaf785d736cb4c17049ba140b"
- integrity sha512-U5eaur7Hsickt5Tko7VHMNER/zLNNUAg9r+LCUBoevzP/0SeEU/ZqOxorKZ1eLFhm/rDT1Mv3KEP9W5vmeSsUw==
+ version "1.15.47"
+ resolved "https://registry.yarnpkg.com/@swc/html/-/html-1.15.47.tgz#2d9c24d2cd032b3880a4464a77188817f507e083"
+ integrity sha512-Olu/8OORvYB+43v2/85nHe1EA8WSvWp8D3kctEAput/o4F+EWCK0nr4yGTqvWB7Z+ODz0k+vnxpvHQYzsKP2LA==
dependencies:
"@swc/counter" "^0.1.3"
optionalDependencies:
- "@swc/html-darwin-arm64" "1.15.46"
- "@swc/html-darwin-x64" "1.15.46"
- "@swc/html-linux-arm-gnueabihf" "1.15.46"
- "@swc/html-linux-arm64-gnu" "1.15.46"
- "@swc/html-linux-arm64-musl" "1.15.46"
- "@swc/html-linux-ppc64-gnu" "1.15.46"
- "@swc/html-linux-s390x-gnu" "1.15.46"
- "@swc/html-linux-x64-gnu" "1.15.46"
- "@swc/html-linux-x64-musl" "1.15.46"
- "@swc/html-win32-arm64-msvc" "1.15.46"
- "@swc/html-win32-ia32-msvc" "1.15.46"
- "@swc/html-win32-x64-msvc" "1.15.46"
+ "@swc/html-darwin-arm64" "1.15.47"
+ "@swc/html-darwin-x64" "1.15.47"
+ "@swc/html-linux-arm-gnueabihf" "1.15.47"
+ "@swc/html-linux-arm64-gnu" "1.15.47"
+ "@swc/html-linux-arm64-musl" "1.15.47"
+ "@swc/html-linux-ppc64-gnu" "1.15.47"
+ "@swc/html-linux-s390x-gnu" "1.15.47"
+ "@swc/html-linux-x64-gnu" "1.15.47"
+ "@swc/html-linux-x64-musl" "1.15.47"
+ "@swc/html-win32-arm64-msvc" "1.15.47"
+ "@swc/html-win32-ia32-msvc" "1.15.47"
+ "@swc/html-win32-x64-msvc" "1.15.47"
"@swc/types@^0.1.27":
- version "0.1.27"
- resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.27.tgz#12080b0c426dea450634f202d9a3c82ac396e793"
- integrity sha512-K6h3iUlqeM946U4sXFYeahefR1YBbXJvko+hv8WS8/0BNJ4OHiHRywMnQUJCqkR7Y9+hqQ1TvEpiKqUhz7NEFg==
+ version "0.1.28"
+ resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.28.tgz#e3cd892383fba3b8904c40518bbe1265a50753f2"
+ integrity sha512-V6Mnml8v09QALx6K0elJ7o9K/MkVDtW3t6L+7Ou/JcWtb3xwId2AH4FeOceySd2JaO87IMw4+6vSZxLm34LPbw==
dependencies:
"@swc/counter" "^0.1.3"
@@ -3279,9 +3279,9 @@
integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==
"@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0":
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.2.tgz#19afe821c79f18d05946892bbd5b924b96c8a4f6"
- integrity sha512-d3KvEXBSo/lOAMc2u6fkyDHBvetBHeqD7wm/AcXfLpSOQwlmG9D/aQ0SFswVjv05p7ullQS7Mjohj6/VdbZuTg==
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.3.tgz#9d34c88c0c9ee62b9a6e4d9f8ab8d7e29688e6b4"
+ integrity sha512-dPfW8NFiOF4wOHc7+N/QSxlY9cfSsenewGbAz8C8U/MULPd/YZ27LvJUIlzaXie7e6Ove9YunJGgC9tbHD2cKw==
dependencies:
"@types/node" "*"
"@types/qs" "*"
@@ -3398,9 +3398,9 @@
integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==
"@types/node@*":
- version "26.1.1"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-26.1.1.tgz#bad758d601e97d6cf457d204ee76a35fce7bd119"
- integrity sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==
+ version "26.1.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-26.1.2.tgz#da79708f1f9c6294f4cdec8f455a3032b028808a"
+ integrity sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==
dependencies:
undici-types "~8.3.0"
@@ -3451,9 +3451,9 @@
"@types/react" "*"
"@types/react@*", "@types/react@^19.0.0":
- version "19.2.17"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.17.tgz#dccac365baa0f1734ec270ff4b51c89465e8dc7f"
- integrity sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==
+ version "19.2.18"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.18.tgz#eb0b6a1fb635d1a9692d5f84a3495bd8ad153707"
+ integrity sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==
dependencies:
csstype "^3.2.2"
@@ -3706,9 +3706,9 @@ acorn-walk@^8.0.0:
acorn "^8.11.0"
acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.15.0, acorn@^8.16.0:
- version "8.17.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.17.0.tgz#1785adb84faf8d8add10369b93826fc2bd08f1fe"
- integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==
+ version "8.18.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.18.0.tgz#4faf01b2d6d326bfeed97aea1f52220b5f4c1940"
+ integrity sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==
address@^2.0.1:
version "2.0.3"
@@ -3987,9 +3987,9 @@ body-parser@~1.20.5:
unpipe "~1.0.0"
bonjour-service@^1.2.1:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.4.3.tgz#5854e34a33ab5252a66cc31ffb46687e30c3a5f6"
- integrity sha512-2Kd5UYlFUVgAKMTyuBLl6w49wqfOnbxHqmuH0oCl/n7TfAikR0zoowNOP5BU4dfXmm+Vr9JyEN370auSMx+CNg==
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.4.4.tgz#8ff5b85fa0641e0996bf40bcf61fc0c6727b66d3"
+ integrity sha512-jCZcVv7eoc4QesRscwEZtSROBen+6LpKAmBIsQYQrsAeVHLyMXWX/t6eIV5KiRZYNUBl8eVqImEEMQ8L5+c/Kw==
dependencies:
fast-deep-equal "^3.1.3"
multicast-dns "^7.2.5"
@@ -4028,17 +4028,17 @@ boxen@^7.0.0:
wrap-ansi "^8.1.0"
brace-expansion@^1.1.7:
- version "1.1.16"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.16.tgz#723d3a30c0558c225abc9fc479a73e14e26c3c2f"
- integrity sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==
+ version "1.1.18"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.18.tgz#3ce74d89885136be1535341f8c3d4425c29a5cab"
+ integrity sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
brace-expansion@^2.0.1, brace-expansion@^2.0.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.2.tgz#0bba2271feb7d458b0d31ad13625aaa4754431e2"
- integrity sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.4.tgz#589dab11c0018d0366be64cd8bf12c8dbecc8326"
+ integrity sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==
dependencies:
balanced-match "^1.0.0"
@@ -5047,9 +5047,9 @@ ee-first@1.1.1:
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
electron-to-chromium@^1.5.393:
- version "1.5.396"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.396.tgz#4aa96428486c8d1c9c8aeb205b2d6e04928ca046"
- integrity sha512-yHiw2Y3C3H9U6TMbOfoWK/BPreiOPXRfTWPBwQBoZG6/8TB6eOPnsy5oaRYuatR7Fw2SJ4kKforgufeo7fq0EQ==
+ version "1.5.399"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.399.tgz#d4522e98338d65ca4fea49a3c9220474c7c028a7"
+ integrity sha512-lEcqhErbHjXRvd41rnWLpzbyU/IXfIYo7QwaFWmxGeLiLyY2TBCdHnWY88vB+p3ubnihRypDm66panXl7TylLA==
emoji-regex@^8.0.0:
version "8.0.0"
@@ -5089,10 +5089,10 @@ encoding-sniffer@^0.2.1:
iconv-lite "^0.6.3"
whatwg-encoding "^3.1.1"
-enhanced-resolve@^5.24.2:
- version "5.24.3"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.24.3.tgz#406bbf1ec20971265a30254f08030fce6a8207fe"
- integrity sha512-PwKooW9JUzh5chmYfHM3IQl5OkK2u2Nm011MgeZrss3JmFraUx/fqrf78kk8GUMYoibx/14MdwTl/1WKkG7TpQ==
+enhanced-resolve@^5.24.4:
+ version "5.24.5"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz#b4dad3255b7545f07ba5535189868e9f85f47573"
+ integrity sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==
dependencies:
graceful-fs "^4.2.4"
tapable "^2.3.3"
@@ -5411,9 +5411,9 @@ fast-safe-stringify@^2.0.7:
integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
fast-uri@^3.0.1:
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.4.tgz#3b3daf9ce68f41f956df0b505132c0cfce9ec7af"
- integrity sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.5.tgz#610f37419a030270430cecd68d74e3d4d96725d0"
+ integrity sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==
fast-xml-builder@^1.2.0:
version "1.3.0"
@@ -5956,9 +5956,9 @@ html-void-elements@^3.0.0:
integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==
html-webpack-plugin@^5.6.0:
- version "5.6.7"
- resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.7.tgz#429bab4e12abf3c07e1c608886608e2df2c06b11"
- integrity sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw==
+ version "5.6.8"
+ resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.8.tgz#5425dbc63eb533ffa59e92342be94894a125fc23"
+ integrity sha512-MZmKQcTnhEh1SPSyMiEytIeDZDUoBZVorNHivQGXMASHf/BSGGOrKa2xQ5bGx3TCe1n109ecCt+cpww7wwWhKA==
dependencies:
"@types/html-minifier-terser" "^6.0.0"
html-minifier-terser "^6.0.2"
@@ -6458,13 +6458,20 @@ js-yaml@4.2.0:
dependencies:
argparse "^2.0.1"
-js-yaml@^4.1.0:
+js-yaml@4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.0.tgz#d1900572a7f7cf0b5f540c83673e60bad3436592"
integrity sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==
dependencies:
argparse "^2.0.1"
+js-yaml@^4.1.0:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.1.tgz#01216c001d67f48e2cd560d708c7af21090a3848"
+ integrity sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==
+ dependencies:
+ argparse "^2.0.1"
+
jsesc@^3.0.2, jsesc@~3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
@@ -8670,9 +8677,9 @@ postcss-zindex@^6.0.2:
integrity sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==
postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.33, postcss@^8.4.45, postcss@^8.5.4:
- version "8.5.22"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.22.tgz#086a0d5685a715acf5950ebbcb1538faf3051697"
- integrity sha512-KBDEIpLrvpv16pp3K0Fw+UCoZfopFjjgeB+0tA/aaThfEE74kKDLrgg603YvOWJyg3+WYtyq3xYsQWsIyZlPqQ==
+ version "8.5.25"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.25.tgz#5012a598eaaa897f21bbe8553be3cb7bd2bd78cb"
+ integrity sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==
dependencies:
nanoid "^3.3.16"
picocolors "^1.1.1"
@@ -9317,9 +9324,9 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1:
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sax@^1.2.4, sax@^1.5.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.6.0.tgz#da59637629307b97e7c4cb28e080a7bc38560d5b"
- integrity sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.6.1.tgz#4c23cf608c0b693ab54b4b5888e92cfe977b9843"
+ integrity sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==
scheduler@^0.27.0:
version "0.27.0"
@@ -9969,9 +9976,9 @@ terser@^5.10.0, terser@^5.15.1, terser@^5.31.1:
source-map-support "~0.5.20"
thingies@^2.5.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/thingies/-/thingies-2.6.0.tgz#e09b98b9e6f6caf8a759eca8481fea1de974d2b1"
- integrity sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/thingies/-/thingies-2.6.1.tgz#4eb28e2585a75288f1765a0b08f1dfa020357a6f"
+ integrity sha512-cV/CMGTK3M4MlnJ/0At6ismOw/A0EEniDNScajjz/Br3c1sqE72YD01rGpPTKwd27wAxI5Pr+6+0w8yofzFRYw==
thunky@^1.0.2:
version "1.1.0"
@@ -10104,9 +10111,9 @@ undici-types@~8.3.0:
integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==
undici@^7.19.0:
- version "7.28.0"
- resolved "https://registry.yarnpkg.com/undici/-/undici-7.28.0.tgz#97d64564198b285bc281f0e8e29597e3d11fe7ec"
- integrity sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-7.29.0.tgz#ae0f6f62e06e057a9cbb7b2b5fde2bb74f791b8f"
+ integrity sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==
unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.1"
@@ -10441,9 +10448,9 @@ webpack-sources@^3.5.1:
integrity sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw==
webpack@^5.88.1, webpack@^5.95.0, webpack@^5.97.1:
- version "5.109.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.109.0.tgz#871d8eee5e2d5e6eaf5ec8d1a6db74ea65491030"
- integrity sha512-vomrngskVVXEZF9sMZfYAd4pXZUnfaWdJGlF+BTNF+gJBCKYCQBnOeVPlrh39Ewl7nlCsirDplMy6o5g9xJHBg==
+ version "5.109.2"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.109.2.tgz#b58dc289561c3282db35c210a99379a836a4c28d"
+ integrity sha512-U9/cvLzxObKNEZ9+TtdqrHM5/9z3lgl2c+c4BzbqGxFQvQvBAq87yql5A8pQ+rrMbS496MZJeF5enVBndIy2hw==
dependencies:
"@types/estree" "^1.0.8"
"@types/json-schema" "^7.0.15"
@@ -10453,7 +10460,7 @@ webpack@^5.88.1, webpack@^5.95.0, webpack@^5.97.1:
acorn "^8.16.0"
browserslist "^4.28.1"
chrome-trace-event "^1.0.2"
- enhanced-resolve "^5.24.2"
+ enhanced-resolve "^5.24.4"
es-module-lexer "^2.1.0"
eslint-scope "5.1.1"
events "^3.2.0"