@fsvreddit/bot-bouncer-evaluation 0.7.50 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/allEvaluators.js +0 -2
  2. package/dist/userEvaluation/EvaluateBadDisplayname.d.ts +4 -4
  3. package/dist/userEvaluation/EvaluateBadDisplaynameDefinedHandles.d.ts +4 -4
  4. package/dist/userEvaluation/EvaluateBadUsername.d.ts +4 -4
  5. package/dist/userEvaluation/EvaluateBioText.d.ts +4 -4
  6. package/dist/userEvaluation/EvaluateBioTextDefinedHandles.d.ts +4 -4
  7. package/dist/userEvaluation/EvaluateBotGroupAdvanced.d.ts +5 -5
  8. package/dist/userEvaluation/EvaluateBotGroupAdvanced.js +12 -12
  9. package/dist/userEvaluation/EvaluateCommentPhrase.d.ts +4 -4
  10. package/dist/userEvaluation/EvaluateDomainSharer.d.ts +4 -4
  11. package/dist/userEvaluation/EvaluateInconsistentAgeBot.d.ts +4 -4
  12. package/dist/userEvaluation/EvaluateInconsistentGenderBot.d.ts +4 -4
  13. package/dist/userEvaluation/EvaluateLinkReuse.d.ts +4 -4
  14. package/dist/userEvaluation/EvaluateLinkReuse.js +6 -5
  15. package/dist/userEvaluation/EvaluateObfuscatedBioKeywords.d.ts +4 -4
  16. package/dist/userEvaluation/EvaluatePinnedPostTitle.d.ts +4 -4
  17. package/dist/userEvaluation/EvaluatePostTitle.d.ts +4 -4
  18. package/dist/userEvaluation/EvaluatePostTitleDefinedHandles.d.ts +4 -4
  19. package/dist/userEvaluation/EvaluatePostTitleMulti.d.ts +4 -4
  20. package/dist/userEvaluation/EvaluateRedgifs.d.ts +4 -4
  21. package/dist/userEvaluation/EvaluateRedgifs.js +3 -2
  22. package/dist/userEvaluation/EvaluateRepostBot.d.ts +4 -4
  23. package/dist/userEvaluation/EvaluateRepostBot.js +6 -5
  24. package/dist/userEvaluation/EvaluateSelfComment.d.ts +4 -4
  25. package/dist/userEvaluation/EvaluateSelfComment.js +4 -3
  26. package/dist/userEvaluation/EvaluateSocialLinks.d.ts +4 -4
  27. package/dist/userEvaluation/EvaluateSuspiciousFirstPost.d.ts +4 -4
  28. package/dist/userEvaluation/EvaluateTGGroup.d.ts +4 -4
  29. package/dist/userEvaluation/EvaluateTextInNsfwImages.d.ts +1 -1
  30. package/dist/userEvaluation/EvaluateTextInNsfwImages.js +4 -3
  31. package/dist/userEvaluation/EvaluateWarmupBot.d.ts +5 -4
  32. package/dist/userEvaluation/EvaluateWarmupBot.js +9 -2
  33. package/dist/userEvaluation/EvaluateWorldTraveller.d.ts +4 -4
  34. package/dist/userEvaluation/EvaluateWorldTraveller.js +2 -4
  35. package/dist/userEvaluation/UserEvaluatorBase.d.ts +6 -7
  36. package/dist/userEvaluation/UserEvaluatorBase.js +7 -7
  37. package/dist/userEvaluation/evaluatorHelpers.d.ts +2 -2
  38. package/dist/userEvaluation/evaluatorHelpers.js +6 -5
  39. package/dist/userEvaluation/index.d.ts +6 -5
  40. package/dist/userEvaluation/index.js +6 -5
  41. package/dist/utility.d.ts +5 -4
  42. package/dist/utility.js +8 -7
  43. package/package.json +4 -5
  44. package/tsconfig.build.json +14 -14
  45. package/tsconfig.json +1 -1
@@ -23,7 +23,6 @@ const EvaluateBadDisplaynameDefinedHandles_js_1 = require("./userEvaluation/Eval
23
23
  const EvaluatePostTitleMulti_js_1 = require("./userEvaluation/EvaluatePostTitleMulti.js");
24
24
  const EvaluateWarmupBot_js_1 = require("./userEvaluation/EvaluateWarmupBot.js");
25
25
  const EvaluateBotGroupAdvancedInternal_js_1 = require("./userEvaluation/EvaluateBotGroupAdvancedInternal.js");
26
- const EvaluateTitleCopyBot_js_1 = require("./userEvaluation/EvaluateTitleCopyBot.js");
27
26
  const EvaluateTextInNsfwImages_js_1 = require("./userEvaluation/EvaluateTextInNsfwImages.js");
28
27
  const EvaluateRepostBot_js_1 = require("./userEvaluation/EvaluateRepostBot.js");
29
28
  const EvaluateLinkReuse_js_1 = require("./userEvaluation/EvaluateLinkReuse.js");
@@ -62,7 +61,6 @@ exports.ALL_EVALUATORS = [
62
61
  EvaluateWarmupBot_js_1.EvaluateWarmupBot,
63
62
  EvaluateSocialLinks_js_1.EvaluateSocialLinks,
64
63
  EvaluateBotGroupAdvanced_js_1.EvaluateBotGroupAdvanced,
65
- EvaluateTitleCopyBot_js_1.EvaluateTitleCopyBot,
66
64
  EvaluateLinkReuse_js_1.EvaluateLinkReuse,
67
65
  EvaluateTextInNsfwImages_js_1.EvaluateTextInNsfwImages,
68
66
  EvaluateRepostBot_js_1.EvaluateRepostBot,
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateBadDisplayName extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -11,7 +11,7 @@ export declare class EvaluateBadDisplayName extends UserEvaluatorBase {
11
11
  private isBadDisplayName;
12
12
  gatherRegexes(): EvaluatorRegex[];
13
13
  validateVariables(): ValidationIssue[];
14
- preEvaluateComment(_: CommentCreate): boolean;
14
+ preEvaluateComment(_: OnCommentCreateRequest): boolean;
15
15
  preEvaluatePost(_: Post): boolean;
16
16
  preEvaluateUser(user: UserExtended): boolean;
17
17
  evaluate(_user: UserExtended): boolean;
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateBadDisplayNameDefinedHandles extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -12,7 +12,7 @@ export declare class EvaluateBadDisplayNameDefinedHandles extends UserEvaluatorB
12
12
  private compiledRegexes;
13
13
  private getCompiledRegexes;
14
14
  validateVariables(): ValidationIssue[];
15
- preEvaluateComment(_: CommentCreate): boolean;
15
+ preEvaluateComment(_: OnCommentCreateRequest): boolean;
16
16
  preEvaluatePost(_: Post): boolean;
17
17
  preEvaluateUser(user: UserExtended): boolean;
18
18
  evaluate(_user: UserExtended): boolean;
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateBadUsername extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -11,7 +11,7 @@ export declare class EvaluateBadUsername extends UserEvaluatorBase {
11
11
  gatherRegexes(): EvaluatorRegex[];
12
12
  private compiledRegexes;
13
13
  private getCompiledRegexes;
14
- preEvaluateComment(event: CommentCreate): boolean;
14
+ preEvaluateComment(event: OnCommentCreateRequest): boolean;
15
15
  preEvaluatePost(post: Post): boolean;
16
16
  preEvaluateUser(user: UserExtended): boolean;
17
17
  evaluate(_user: UserExtended): boolean;
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateBioText extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -13,7 +13,7 @@ export declare class EvaluateBioText extends UserEvaluatorBase {
13
13
  gatherRegexes(): EvaluatorRegex[];
14
14
  private compiledRegexes;
15
15
  private getCompiledRegexes;
16
- preEvaluateComment(event: CommentCreate): boolean;
16
+ preEvaluateComment(event: OnCommentCreateRequest): boolean;
17
17
  preEvaluatePost(_: Post): boolean;
18
18
  preEvaluateUser(user: UserExtended): boolean;
19
19
  evaluate(user: UserExtended): boolean;
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateBioTextDefinedHandles extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -9,7 +9,7 @@ export declare class EvaluateBioTextDefinedHandles extends UserEvaluatorBase {
9
9
  private getHandles;
10
10
  private compiledRegexes;
11
11
  private getCompiledRegexes;
12
- preEvaluateComment(event: CommentCreate): boolean;
12
+ preEvaluateComment(event: OnCommentCreateRequest): boolean;
13
13
  validateVariables(): ValidationIssue[];
14
14
  gatherRegexes(): EvaluatorRegex[];
15
15
  preEvaluatePost(_: Post): boolean;
@@ -1,7 +1,7 @@
1
- import { Comment, Post, TriggerContext, UserSocialLink } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Comment, Post, UserSocialLink } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  interface AgeRange {
6
6
  dateFrom: string;
7
7
  dateTo?: string;
@@ -88,7 +88,7 @@ export declare class EvaluateBotGroupAdvanced extends UserEvaluatorBase {
88
88
  private redis;
89
89
  allowNewFeatures: boolean;
90
90
  private evaluationError;
91
- constructor(context: TriggerContext, history: (Post | Comment)[], socialLinks: UserSocialLink[] | undefined, variables: Record<string, unknown>);
91
+ constructor(history: (Post | Comment)[], socialLinks: UserSocialLink[] | undefined, variables: Record<string, unknown>);
92
92
  private compiledRegexes;
93
93
  private getCompiledRegex;
94
94
  private anyRegexMatches;
@@ -104,7 +104,7 @@ export declare class EvaluateBotGroupAdvanced extends UserEvaluatorBase {
104
104
  private postOrCommentMatchesCondition;
105
105
  collectCommentConditionsForPreEvalation(criteria: CriteriaGroup): CommentCondition[];
106
106
  collectNegatedCommentConditionsForPreEvaluation(criteria: CriteriaGroup): CommentCondition[];
107
- preEvaluateComment(comment: CommentCreate): Promise<boolean>;
107
+ preEvaluateComment(comment: OnCommentCreateRequest): Promise<boolean>;
108
108
  private postMatchesCondition;
109
109
  private cachedPostProperties;
110
110
  private postPropertiesStatistics;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EvaluateBotGroupAdvanced = void 0;
4
- const tid_js_1 = require("@devvit/public-api/types/tid.js");
4
+ const server_1 = require("@devvit/web/server");
5
+ const shared_1 = require("@devvit/web/shared");
5
6
  const UserEvaluatorBase_js_1 = require("./UserEvaluatorBase.js");
6
7
  const date_fns_1 = require("date-fns");
7
8
  const evaluatorHelpers_js_1 = require("./evaluatorHelpers.js");
@@ -452,8 +453,8 @@ function validateBotGroup(group, allowNewFeatures, evaluatorName) {
452
453
  return errors;
453
454
  }
454
455
  class EvaluateBotGroupAdvanced extends UserEvaluatorBase_js_1.UserEvaluatorBase {
455
- constructor(context, history, socialLinks, variables) {
456
- super(context, history, socialLinks, variables);
456
+ constructor(history, socialLinks, variables) {
457
+ super(history, socialLinks, variables);
457
458
  this.name = "Bot Group Advanced";
458
459
  this.shortname = "botgroupadvanced";
459
460
  this.banContentThreshold = 0; // No content ban threshold for this evaluator to support account properties only checks
@@ -467,7 +468,7 @@ class EvaluateBotGroupAdvanced extends UserEvaluatorBase_js_1.UserEvaluatorBase
467
468
  cacheMisses: 0,
468
469
  errors: 0,
469
470
  };
470
- this.redis = context.appSlug === constants_js_1.MAIN_APP_NAME ? context.redis.global : context.redis;
471
+ this.redis = server_1.context.appSlug === constants_js_1.MAIN_APP_NAME ? server_1.redis.global : server_1.redis;
471
472
  }
472
473
  getCompiledRegex(regex) {
473
474
  const result = this.compiledRegexes.get(regex);
@@ -616,9 +617,9 @@ class EvaluateBotGroupAdvanced extends UserEvaluatorBase_js_1.UserEvaluatorBase
616
617
  return true;
617
618
  }
618
619
  anySubredditMatches(item, subredditNames) {
619
- const subredditName = "subredditName" in item ? item.subredditName : this.context.subredditName;
620
+ const subredditName = "subredditName" in item ? item.subredditName : server_1.context.subredditName;
620
621
  const authorName = "authorName" in item ? item.authorName : undefined;
621
- return subredditNames.some(subreddit => subredditName?.toLowerCase() === subreddit.toLowerCase())
622
+ return subredditNames.some(subreddit => subredditName.toLowerCase() === subreddit.toLowerCase())
622
623
  || subredditNames.some(subreddit => subreddit === "$profile" && subredditName === `u_${authorName}`);
623
624
  }
624
625
  postOrCommentMatchesCondition(item, condition) {
@@ -786,7 +787,7 @@ class EvaluateBotGroupAdvanced extends UserEvaluatorBase_js_1.UserEvaluatorBase
786
787
  continue;
787
788
  }
788
789
  if (group.age || group.displayNameRegex || group.nsfw || group.hasRedditPremium || group.hasVerifiedEmail || group.isSubredditModerator) {
789
- userInfo ?? (userInfo = await (0, utility_js_1.getAdditionalUserInfo)(comment.author.name, this.context));
790
+ userInfo ?? (userInfo = await (0, utility_js_1.getAdditionalUserInfo)(comment.author.name));
790
791
  if (!userInfo) {
791
792
  continue;
792
793
  }
@@ -890,7 +891,7 @@ class EvaluateBotGroupAdvanced extends UserEvaluatorBase_js_1.UserEvaluatorBase
890
891
  return this.cachedPostProperties[postId];
891
892
  }
892
893
  try {
893
- const postProperties = await this.context.reddit.getPostById(postId).then(post => ({
894
+ const postProperties = await server_1.reddit.getPostById(postId).then(post => ({
894
895
  authorName: post.authorName,
895
896
  title: post.title,
896
897
  body: post.body,
@@ -920,7 +921,7 @@ class EvaluateBotGroupAdvanced extends UserEvaluatorBase_js_1.UserEvaluatorBase
920
921
  if (condition.postId && !condition.postId.some(postId => comment.postId === `t3_${postId}`)) {
921
922
  return { matched: false };
922
923
  }
923
- if (condition.isTopLevel !== undefined && condition.isTopLevel !== (0, tid_js_1.isLinkId)(comment.parentId)) {
924
+ if (condition.isTopLevel !== undefined && condition.isTopLevel !== (0, shared_1.isT3)(comment.parentId)) {
924
925
  return { matched: false };
925
926
  }
926
927
  if (condition.isCommentOnOwnPost !== undefined) {
@@ -1048,7 +1049,7 @@ class EvaluateBotGroupAdvanced extends UserEvaluatorBase_js_1.UserEvaluatorBase
1048
1049
  }
1049
1050
  ;
1050
1051
  if (group.age || group.minCommentKarma || group.maxCommentKarma || group.minLinkKarma || group.maxLinkKarma || group.displayNameRegex || group.nsfw || group.hasRedditPremium || group.hasVerifiedEmail || group.isSubredditModerator) {
1051
- userInfo ?? (userInfo = await (0, utility_js_1.getAdditionalUserInfo)(post.authorName, this.context));
1052
+ userInfo ?? (userInfo = await (0, utility_js_1.getAdditionalUserInfo)(post.authorName));
1052
1053
  if (!userInfo) {
1053
1054
  continue;
1054
1055
  }
@@ -1268,7 +1269,6 @@ class EvaluateBotGroupAdvanced extends UserEvaluatorBase_js_1.UserEvaluatorBase
1268
1269
  }
1269
1270
  else { // comments
1270
1271
  const comments = this.getComments();
1271
- const currentSubreddit = this.context.subredditName ?? await this.context.reddit.getCurrentSubredditName();
1272
1272
  for (const comment of comments) {
1273
1273
  if (subredditsMatched.size >= distinctSubredditsNeeded && matches.length >= maxMatchesNeeded) {
1274
1274
  break;
@@ -1279,7 +1279,7 @@ class EvaluateBotGroupAdvanced extends UserEvaluatorBase_js_1.UserEvaluatorBase
1279
1279
  const matchResult = await this.commentMatchesCondition(comment, criteria, this.history);
1280
1280
  if (matchResult.matched) {
1281
1281
  matches.push(matchResult);
1282
- const subredditName = "subredditName" in comment ? comment.subredditName : currentSubreddit;
1282
+ const subredditName = "subredditName" in comment ? comment.subredditName : server_1.context.subredditName;
1283
1283
  subredditsMatched.add(subredditName);
1284
1284
  }
1285
1285
  }
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateCommentPhrase extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -11,7 +11,7 @@ export declare class EvaluateCommentPhrase extends UserEvaluatorBase {
11
11
  private compiledRegexes;
12
12
  private getCompiledRegexes;
13
13
  private eligibleComment;
14
- preEvaluateComment(event: CommentCreate): boolean;
14
+ preEvaluateComment(event: OnCommentCreateRequest): boolean;
15
15
  preEvaluatePost(_: Post): boolean;
16
16
  preEvaluateUser(user: UserExtended): boolean;
17
17
  evaluate(_: UserExtended): boolean;
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateDomainSharer extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -11,7 +11,7 @@ export declare class EvaluateDomainSharer extends UserEvaluatorBase {
11
11
  private ignoredSubreddits;
12
12
  private ignoredSubredditRegexes;
13
13
  private domainsFromPost;
14
- preEvaluateComment(event: CommentCreate): boolean;
14
+ preEvaluateComment(event: OnCommentCreateRequest): boolean;
15
15
  preEvaluatePost(post: Post): boolean;
16
16
  preEvaluateUser(user: UserExtended): boolean;
17
17
  evaluate(_: UserExtended): boolean;
@@ -1,7 +1,7 @@
1
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
2
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
3
- import { Post } from "@devvit/public-api";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateInconsistentAgeBot extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -9,7 +9,7 @@ export declare class EvaluateInconsistentAgeBot extends UserEvaluatorBase {
9
9
  canAutoBan: boolean;
10
10
  gatherRegexes(): EvaluatorRegex[];
11
11
  validateVariables(): ValidationIssue[];
12
- preEvaluateComment(_event: CommentCreate): boolean;
12
+ preEvaluateComment(_event: OnCommentCreateRequest): boolean;
13
13
  private getAgeFromPostTitle;
14
14
  preEvaluatePost(post: Post): boolean;
15
15
  preEvaluateUser(user: UserExtended): boolean;
@@ -1,13 +1,13 @@
1
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
2
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
3
- import { Post } from "@devvit/public-api";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateInconsistentGenderBot extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
8
8
  banContentThreshold: number;
9
9
  canAutoBan: boolean;
10
- preEvaluateComment(_event: CommentCreate): boolean;
10
+ preEvaluateComment(_event: OnCommentCreateRequest): boolean;
11
11
  getGenderFromTitle(title: string): string | undefined;
12
12
  gatherRegexes(): EvaluatorRegex[];
13
13
  validateVariables(): ValidationIssue[];
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateLinkReuse extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -9,7 +9,7 @@ export declare class EvaluateLinkReuse extends UserEvaluatorBase {
9
9
  private getLinkRegexes;
10
10
  validateVariables(): ValidationIssue[];
11
11
  preEvaluatePost(post: Post): boolean;
12
- preEvaluateComment(_event: CommentCreate): Promise<boolean>;
12
+ preEvaluateComment(_event: OnCommentCreateRequest): Promise<boolean>;
13
13
  preEvaluateUser(user: UserExtended): boolean;
14
14
  private getDistinctUsersForLink;
15
15
  private isEligibleUserForEvaluator;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EvaluateLinkReuse = void 0;
4
+ const server_1 = require("@devvit/web/server");
4
5
  const UserEvaluatorBase_js_1 = require("./UserEvaluatorBase.js");
5
6
  const constants_js_1 = require("../constants.js");
6
7
  const date_fns_1 = require("date-fns");
@@ -62,19 +63,19 @@ class EvaluateLinkReuse extends UserEvaluatorBase_js_1.UserEvaluatorBase {
62
63
  return user.nsfw;
63
64
  }
64
65
  async getDistinctUsersForLink(link) {
65
- const redis = this.context.appSlug === constants_js_1.MAIN_APP_NAME ? this.context.redis.global : this.context.redis;
66
+ const redisClient = server_1.context.appSlug === constants_js_1.MAIN_APP_NAME ? server_1.redis.global : server_1.redis;
66
67
  const cacheKey = `bbe:linkreuse:distinctUsers:${link}`;
67
- const cachedResults = await redis.get(cacheKey);
68
+ const cachedResults = await redisClient.get(cacheKey);
68
69
  if (cachedResults !== undefined) {
69
70
  return JSON.parse(cachedResults);
70
71
  }
71
- const results = await this.context.reddit.searchPosts({
72
+ const results = await server_1.reddit.searchPosts({
72
73
  query: `url:"${link}"`,
73
74
  sort: "new",
74
75
  limit: 100,
75
76
  }).all();
76
77
  const distinctUsers = Array.from(new Set(results.filter(post => post.url === link && post.authorName !== "[deleted]").map(post => post.authorName)));
77
- await redis.set(cacheKey, JSON.stringify(distinctUsers), { expiration: (0, date_fns_1.addHours)(new Date(), 1) });
78
+ await redisClient.set(cacheKey, JSON.stringify(distinctUsers), { expiration: (0, date_fns_1.addHours)(new Date(), 1) });
78
79
  return distinctUsers;
79
80
  }
80
81
  async isEligibleUserForEvaluator(username, isSubject = false) {
@@ -83,7 +84,7 @@ class EvaluateLinkReuse extends UserEvaluatorBase_js_1.UserEvaluatorBase {
83
84
  socialLinks = await this.getSocialLinks(username);
84
85
  }
85
86
  else {
86
- socialLinks = await (0, index_js_1.getSocialLinksWithCache)(username, this.context);
87
+ socialLinks = await (0, index_js_1.getSocialLinksWithCache)(username);
87
88
  }
88
89
  if (socialLinks.length === 0) {
89
90
  return false;
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { UserEvaluatorBase } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateObfuscatedBioKeywords extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -9,7 +9,7 @@ export declare class EvaluateObfuscatedBioKeywords extends UserEvaluatorBase {
9
9
  private getKeywords;
10
10
  private getAllowedTerms;
11
11
  private bioTextMatches;
12
- preEvaluateComment(event: CommentCreate): boolean;
12
+ preEvaluateComment(event: OnCommentCreateRequest): boolean;
13
13
  preEvaluatePost(_: Post): boolean;
14
14
  preEvaluateUser(user: UserExtended): boolean;
15
15
  evaluate(_user: UserExtended): boolean;
@@ -1,14 +1,14 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluatePinnedPostTitles extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
8
8
  banContentThreshold: number;
9
9
  validateVariables(): ValidationIssue[];
10
10
  gatherRegexes(): EvaluatorRegex[];
11
- preEvaluateComment(_: CommentCreate): boolean;
11
+ preEvaluateComment(_: OnCommentCreateRequest): boolean;
12
12
  preEvaluatePost(post: Post): boolean;
13
13
  preEvaluateUser(user: UserExtended): boolean;
14
14
  evaluate(_: UserExtended): boolean;
@@ -1,14 +1,14 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluatePostTitle extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
8
8
  banContentThreshold: number;
9
9
  validateVariables(): ValidationIssue[];
10
10
  gatherRegexes(): EvaluatorRegex[];
11
- preEvaluateComment(_: CommentCreate): boolean;
11
+ preEvaluateComment(_: OnCommentCreateRequest): boolean;
12
12
  private getTitles;
13
13
  private titleRegexes;
14
14
  private getTitleRegexes;
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluatePostTitleDefinedHandles extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -11,7 +11,7 @@ export declare class EvaluatePostTitleDefinedHandles extends UserEvaluatorBase {
11
11
  gatherRegexes(): EvaluatorRegex[];
12
12
  private compiledRegexes;
13
13
  private getCompiledRegexes;
14
- preEvaluateComment(_: CommentCreate): boolean;
14
+ preEvaluateComment(_: OnCommentCreateRequest): boolean;
15
15
  preEvaluatePost(post: Post): boolean;
16
16
  preEvaluateUser(user: UserExtended): boolean;
17
17
  evaluate(_: UserExtended): boolean;
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluatePostTitleMulti extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -11,7 +11,7 @@ export declare class EvaluatePostTitleMulti extends UserEvaluatorBase {
11
11
  gatherRegexes(): EvaluatorRegex[];
12
12
  private compiledRegexes;
13
13
  private getCompiledRegexes;
14
- preEvaluateComment(_: CommentCreate): boolean;
14
+ preEvaluateComment(_: OnCommentCreateRequest): boolean;
15
15
  preEvaluatePost(post: Post): boolean;
16
16
  preEvaluateUser(user: UserExtended): boolean;
17
17
  evaluate(_: UserExtended): boolean;
@@ -1,14 +1,14 @@
1
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
2
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase";
3
- import { Post } from "@devvit/public-api";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateRedgifs extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
8
8
  evaluatorDisabled(): boolean;
9
9
  gatherRegexes(): EvaluatorRegex[];
10
10
  validateVariables(): ValidationIssue[];
11
- preEvaluateComment(_: CommentCreate): boolean | Promise<boolean>;
11
+ preEvaluateComment(_: OnCommentCreateRequest): boolean | Promise<boolean>;
12
12
  preEvaluatePost(post: Post): boolean;
13
13
  preEvaluateUser(user: UserExtended): boolean;
14
14
  private getRedis;
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.EvaluateRedgifs = void 0;
7
+ const server_1 = require("@devvit/web/server");
7
8
  const UserEvaluatorBase_1 = require("./UserEvaluatorBase");
8
9
  const evaluatorHelpers_1 = require("./evaluatorHelpers");
9
10
  const date_fns_1 = require("date-fns");
@@ -22,7 +23,7 @@ class EvaluateRedgifs extends UserEvaluatorBase_1.UserEvaluatorBase {
22
23
  const mainAppOnly = this.getVariable("mainAppOnly", false);
23
24
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
24
25
  if (mainAppOnly) {
25
- return this.context.appSlug === constants_1.MAIN_APP_NAME;
26
+ return server_1.context.appSlug === constants_1.MAIN_APP_NAME;
26
27
  }
27
28
  return false;
28
29
  }
@@ -62,7 +63,7 @@ class EvaluateRedgifs extends UserEvaluatorBase_1.UserEvaluatorBase {
62
63
  return user.createdAt < (0, date_fns_1.subDays)(new Date(), minAgeInDays);
63
64
  }
64
65
  getRedis() {
65
- return this.context.appSlug === constants_1.MAIN_APP_NAME ? this.context.redis.global : this.context.redis;
66
+ return server_1.context.appSlug === constants_1.MAIN_APP_NAME ? server_1.redis.global : server_1.redis;
66
67
  }
67
68
  async getRedgifsBearerToken() {
68
69
  const cacheKey = "bbe:redgifs:bearerToken";
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { UserEvaluatorBase } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateRepostBot extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -10,7 +10,7 @@ export declare class EvaluateRepostBot extends UserEvaluatorBase {
10
10
  private minWordsInTitle;
11
11
  private isEligiblePost;
12
12
  preEvaluatePost(post: Post): boolean;
13
- preEvaluateComment(_: CommentCreate): boolean;
13
+ preEvaluateComment(_: OnCommentCreateRequest): boolean;
14
14
  preEvaluateUser(user: UserExtended): boolean;
15
15
  private getImageUrl;
16
16
  private postIdToUrl;
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.EvaluateRepostBot = void 0;
7
+ const server_1 = require("@devvit/web/server");
7
8
  const UserEvaluatorBase_js_1 = require("./UserEvaluatorBase.js");
8
9
  const evaluatorHelpers_js_1 = require("./evaluatorHelpers.js");
9
10
  const date_fns_1 = require("date-fns");
@@ -53,8 +54,8 @@ class EvaluateRepostBot extends UserEvaluatorBase_js_1.UserEvaluatorBase {
53
54
  }
54
55
  async getPostSimilarity(postA, postB) {
55
56
  const cacheKey = `bbe:RepostBot:similarity:${postA.id}:${postB.id}`;
56
- const redis = this.context.appSlug === constants_js_1.MAIN_APP_NAME ? this.context.redis.global : this.context.redis;
57
- const cachedResult = await redis.get(cacheKey);
57
+ const redisClient = server_1.context.appSlug === constants_js_1.MAIN_APP_NAME ? server_1.redis.global : server_1.redis;
58
+ const cachedResult = await redisClient.get(cacheKey);
58
59
  if (cachedResult) {
59
60
  console.log(`Repost Checks: Using cached similarity between ${this.postIdToUrl(postA.id)} and ${this.postIdToUrl(postB.id)}: ${cachedResult}`);
60
61
  return parseFloat(cachedResult);
@@ -96,7 +97,7 @@ class EvaluateRepostBot extends UserEvaluatorBase_js_1.UserEvaluatorBase {
96
97
  },
97
98
  });
98
99
  const result = JSON.parse(response.output_text);
99
- await redis.set(cacheKey, result.similarity.toString(), { expiration: (0, date_fns_1.addWeeks)(new Date(), 1) });
100
+ await redisClient.set(cacheKey, result.similarity.toString(), { expiration: (0, date_fns_1.addWeeks)(new Date(), 1) });
100
101
  console.log(`Repost Checks: Tokens used: ${response.usage?.total_tokens}, Similarity between ${this.postIdToUrl(postA.id)} and ${this.postIdToUrl(postB.id)}: ${result.similarity}`);
101
102
  return result.similarity;
102
103
  }
@@ -130,7 +131,7 @@ class EvaluateRepostBot extends UserEvaluatorBase_js_1.UserEvaluatorBase {
130
131
  const sortedPosts = posts.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
131
132
  const latestPost = sortedPosts[0];
132
133
  // Look for duplicate posts.
133
- let postDuplicates = await this.context.reddit.searchPosts({
134
+ let postDuplicates = await server_1.reddit.searchPosts({
134
135
  query: `title:"${latestPost.title}"`,
135
136
  subredditName: latestPost.subredditName,
136
137
  sort: "new",
@@ -139,7 +140,7 @@ class EvaluateRepostBot extends UserEvaluatorBase_js_1.UserEvaluatorBase {
139
140
  if (postDuplicates.length === 0) {
140
141
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
141
142
  if (this.getVariable("allowSimilarTitles", false)) {
142
- postDuplicates = await this.context.reddit.searchPosts({
143
+ postDuplicates = await server_1.reddit.searchPosts({
143
144
  query: (0, commonWords_js_1.getLeastCommonWordsFromText)(latestPost.title, { take: 3 }).join(" "),
144
145
  subredditName: latestPost.subredditName,
145
146
  sort: "hot",
@@ -1,7 +1,7 @@
1
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
2
3
  import { UserEvaluatorBase } from "./UserEvaluatorBase.js";
3
- import { Post } from "@devvit/public-api";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateSelfComment extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -9,7 +9,7 @@ export declare class EvaluateSelfComment extends UserEvaluatorBase {
9
9
  private isSubIgnored;
10
10
  private eligibleComment;
11
11
  private eligiblePost;
12
- preEvaluateComment(event: CommentCreate): boolean;
12
+ preEvaluateComment(event: OnCommentCreateRequest): boolean;
13
13
  preEvaluatePost(post: Post): boolean;
14
14
  preEvaluateUser(user: UserExtended): boolean;
15
15
  evaluate(user: UserExtended): boolean;
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EvaluateSelfComment = void 0;
4
+ const server_1 = require("@devvit/web/server");
5
+ const shared_1 = require("@devvit/web/shared");
4
6
  const UserEvaluatorBase_js_1 = require("./UserEvaluatorBase.js");
5
7
  const date_fns_1 = require("date-fns");
6
- const tid_js_1 = require("@devvit/public-api/types/tid.js");
7
8
  const evaluatorHelpers_js_1 = require("./evaluatorHelpers.js");
8
9
  class EvaluateSelfComment extends UserEvaluatorBase_js_1.UserEvaluatorBase {
9
10
  constructor() {
@@ -14,10 +15,10 @@ class EvaluateSelfComment extends UserEvaluatorBase_js_1.UserEvaluatorBase {
14
15
  }
15
16
  isSubIgnored() {
16
17
  const ignoredSubreddits = this.getVariable("ignoredsubs", []);
17
- return this.context.subredditName && ignoredSubreddits.includes(this.context.subredditName);
18
+ return server_1.context.subredditName && ignoredSubreddits.includes(server_1.context.subredditName);
18
19
  }
19
20
  eligibleComment(comment) {
20
- return (0, tid_js_1.isLinkId)(comment.parentId)
21
+ return (0, shared_1.isT3)(comment.parentId)
21
22
  && comment.body.split("\n\n").length <= 2;
22
23
  }
23
24
  eligiblePost(post) {
@@ -1,14 +1,14 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateSocialLinks extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
8
8
  banContentThreshold: number;
9
9
  validateVariables(): ValidationIssue[];
10
10
  getVariableOverrides(): Record<string, unknown>;
11
- preEvaluateComment(_: CommentCreate): boolean;
11
+ preEvaluateComment(_: OnCommentCreateRequest): boolean;
12
12
  preEvaluatePost(post: Post): boolean;
13
13
  preEvaluateUser(user: UserExtended): boolean;
14
14
  evaluate(user: UserExtended): Promise<boolean>;
@@ -1,14 +1,14 @@
1
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
2
3
  import { UserEvaluatorBase } from "./UserEvaluatorBase.js";
3
- import { Post } from "@devvit/public-api";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateSuspiciousFirstPost extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
8
8
  banContentThreshold: number;
9
9
  private subList;
10
10
  private eligiblePost;
11
- preEvaluateComment(_: CommentCreate): boolean;
11
+ preEvaluateComment(_: OnCommentCreateRequest): boolean;
12
12
  preEvaluatePost(post: Post): boolean;
13
13
  preEvaluateUser(user: UserExtended): boolean;
14
14
  evaluate(_: UserExtended): boolean;
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateTGGroup extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -9,7 +9,7 @@ export declare class EvaluateTGGroup extends UserEvaluatorBase {
9
9
  validateVariables(): ValidationIssue[];
10
10
  gatherRegexes(): EvaluatorRegex[];
11
11
  private eligiblePost;
12
- preEvaluateComment(_: CommentCreate): boolean;
12
+ preEvaluateComment(_: OnCommentCreateRequest): boolean;
13
13
  preEvaluatePost(post: Post): boolean;
14
14
  preEvaluateUser(user: UserExtended): boolean;
15
15
  evaluate(_: UserExtended): boolean;
@@ -1,6 +1,6 @@
1
1
  import { EvaluatorRegex, ValidationIssue } from "./UserEvaluatorBase";
2
2
  import { EvaluateBotGroupAdvanced } from "./EvaluateBotGroupAdvanced";
3
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
3
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
4
4
  export declare class EvaluateTextInNsfwImages extends EvaluateBotGroupAdvanced {
5
5
  name: string;
6
6
  shortname: string;
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.EvaluateTextInNsfwImages = void 0;
7
+ const server_1 = require("@devvit/web/server");
7
8
  const EvaluateBotGroupAdvanced_1 = require("./EvaluateBotGroupAdvanced");
8
9
  const date_fns_1 = require("date-fns");
9
10
  const evaluatorHelpers_1 = require("./evaluatorHelpers");
@@ -74,8 +75,8 @@ class EvaluateTextInNsfwImages extends EvaluateBotGroupAdvanced_1.EvaluateBotGro
74
75
  return;
75
76
  }
76
77
  const resultCacheKey = `bbe:imageText:${url}`;
77
- const redis = this.context.subredditName === constants_1.MAIN_APP_NAME ? this.context.redis.global : this.context.redis;
78
- const cachedResult = await redis.get(resultCacheKey);
78
+ const redisClient = server_1.context.subredditName === constants_1.MAIN_APP_NAME ? server_1.redis.global : server_1.redis;
79
+ const cachedResult = await redisClient.get(resultCacheKey);
79
80
  if (cachedResult) {
80
81
  console.log(`OpenAI Checks: Using cached result for image ${url}, Extracted Text: ${cachedResult}`);
81
82
  return JSON.parse(cachedResult);
@@ -122,7 +123,7 @@ class EvaluateTextInNsfwImages extends EvaluateBotGroupAdvanced_1.EvaluateBotGro
122
123
  }
123
124
  const result = JSON.parse(response.output_text);
124
125
  console.log(`OpenAI Checks: Tokens used: ${response.usage?.total_tokens}, Model: ${model}, Image URL: ${url}, Extracted Text: ${result.extractedText}`);
125
- await redis.set(resultCacheKey, JSON.stringify(result.extractedText), { expiration: (0, date_fns_1.addWeeks)(new Date(), 1) });
126
+ await redisClient.set(resultCacheKey, JSON.stringify(result.extractedText), { expiration: (0, date_fns_1.addWeeks)(new Date(), 1) });
126
127
  if (!result.extractedText) {
127
128
  return;
128
129
  }
@@ -1,15 +1,16 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { EvaluatorRegex, UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateWarmupBot extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
8
8
  banContentThreshold: number;
9
- preEvaluateComment(_: CommentCreate): boolean;
9
+ preEvaluateComment(_: OnCommentCreateRequest): boolean;
10
10
  validateVariables(): ValidationIssue[];
11
11
  gatherRegexes(): EvaluatorRegex[];
12
12
  preEvaluatePost(post: Post): boolean;
13
13
  preEvaluateUser(user: UserExtended): boolean;
14
+ private isModerator;
14
15
  evaluate(user: UserExtended): Promise<boolean>;
15
16
  }
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EvaluateWarmupBot = void 0;
4
+ const server_1 = require("@devvit/web/server");
4
5
  const UserEvaluatorBase_js_1 = require("./UserEvaluatorBase.js");
5
6
  const lodash_1 = require("lodash");
6
- const devvit_helpers_1 = require("devvit-helpers");
7
7
  class EvaluateWarmupBot extends UserEvaluatorBase_js_1.UserEvaluatorBase {
8
8
  constructor() {
9
9
  super(...arguments);
@@ -51,6 +51,13 @@ class EvaluateWarmupBot extends UserEvaluatorBase_js_1.UserEvaluatorBase {
51
51
  preEvaluateUser(user) {
52
52
  return user.isModerator;
53
53
  }
54
+ async isModerator(subredditName, username) {
55
+ const modList = await server_1.reddit.getModerators({
56
+ subredditName,
57
+ username,
58
+ }).all();
59
+ return modList.length > 0;
60
+ }
54
61
  async evaluate(user) {
55
62
  const subredditRegexes = this.getVariable("subredditRegexes", []);
56
63
  if (subredditRegexes.length === 0) {
@@ -74,7 +81,7 @@ class EvaluateWarmupBot extends UserEvaluatorBase_js_1.UserEvaluatorBase {
74
81
  // Check to see if the user is a mod of any of the matched subreddits
75
82
  let moddedSubreddit;
76
83
  for (const subreddit of matchedSubreddits) {
77
- if (await (0, devvit_helpers_1.isModerator)(this.context.reddit, subreddit, user.username)) {
84
+ if (await this.isModerator(subreddit, user.username)) {
78
85
  moddedSubreddit = subreddit;
79
86
  break;
80
87
  }
@@ -1,7 +1,7 @@
1
- import { Post } from "@devvit/public-api";
2
- import { CommentCreate } from "@devvit/protos";
1
+ import { Post } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
3
  import { UserEvaluatorBase, ValidationIssue } from "./UserEvaluatorBase.js";
4
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
4
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
5
5
  export declare class EvaluateWorldTraveller extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
@@ -13,7 +13,7 @@ export declare class EvaluateWorldTraveller extends UserEvaluatorBase {
13
13
  private subList;
14
14
  private getSubList;
15
15
  private isInEligibleSubreddit;
16
- preEvaluateComment(_: CommentCreate): boolean;
16
+ preEvaluateComment(_: OnCommentCreateRequest): boolean;
17
17
  preEvaluatePost(post: Post): boolean;
18
18
  preEvaluateUser(user: UserExtended): boolean;
19
19
  evaluate(_: UserExtended): boolean;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EvaluateWorldTraveller = void 0;
4
+ const server_1 = require("@devvit/web/server");
4
5
  const UserEvaluatorBase_js_1 = require("./UserEvaluatorBase.js");
5
6
  const constants_js_1 = require("../constants.js");
6
7
  const lodash_1 = require("lodash");
@@ -45,10 +46,7 @@ class EvaluateWorldTraveller extends UserEvaluatorBase_js_1.UserEvaluatorBase {
45
46
  return this.subList;
46
47
  }
47
48
  isInEligibleSubreddit() {
48
- if (!this.context.subredditName) {
49
- return false;
50
- }
51
- return this.context.subredditName.startsWith(constants_js_1.CONTROL_SUBREDDIT) || this.getSubList().has(this.context.subredditName);
49
+ return server_1.context.subredditName.startsWith(constants_js_1.CONTROL_SUBREDDIT) || this.getSubList().has(server_1.context.subredditName);
52
50
  }
53
51
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
54
52
  preEvaluateComment(_) {
@@ -1,6 +1,6 @@
1
- import { CommentCreate, CommentUpdate } from "@devvit/protos";
2
- import { Comment, Post, TriggerContext, UserSocialLink } from "@devvit/public-api";
3
- import { UserExtended } from "@fsvreddit/fsv-devvit-helpers";
1
+ import { Comment, Post, UserSocialLink } from "@devvit/web/server";
2
+ import { OnCommentCreateRequest } from "@devvit/web/shared";
3
+ import { UserExtended } from "@fsvreddit/fsv-devvit-web-helpers";
4
4
  interface HistoryOptions {
5
5
  since?: Date;
6
6
  omitRemoved?: boolean;
@@ -25,7 +25,6 @@ export interface HitReasonDetailed {
25
25
  }
26
26
  export type HitReason = string | HitReasonDetailed;
27
27
  export declare abstract class UserEvaluatorBase {
28
- protected context: TriggerContext;
29
28
  private variables;
30
29
  abstract name: string;
31
30
  abstract shortname: string;
@@ -40,7 +39,7 @@ export declare abstract class UserEvaluatorBase {
40
39
  protected ignoredSubs: Set<string>;
41
40
  protected verboseLogging: boolean;
42
41
  protected regexWarnThreshold: number;
43
- constructor(context: TriggerContext, history: (Post | Comment)[], socialLinks: UserSocialLink[] | undefined, variables: Record<string, unknown>);
42
+ constructor(history: (Post | Comment)[], socialLinks: UserSocialLink[] | undefined, variables: Record<string, unknown>);
44
43
  setHistory(history: (Post | Comment)[]): void;
45
44
  setSocialLinks(socialLinks: UserSocialLink[]): void;
46
45
  setOpenAiKey(key: string): void;
@@ -56,8 +55,8 @@ export declare abstract class UserEvaluatorBase {
56
55
  protected getSocialLinks(username: string): Promise<UserSocialLink[]>;
57
56
  protected addHitReason(reason: HitReason): void;
58
57
  hitReasons: HitReason[] | undefined;
59
- abstract preEvaluateComment(event: CommentCreate): boolean | Promise<boolean>;
60
- preEvaluateCommentEdit(event: CommentUpdate): boolean | Promise<boolean>;
58
+ abstract preEvaluateComment(event: OnCommentCreateRequest): boolean | Promise<boolean>;
59
+ preEvaluateCommentEdit(event: OnCommentCreateRequest): boolean | Promise<boolean>;
61
60
  abstract preEvaluatePost(post: Post): boolean | Promise<boolean>;
62
61
  preEvaluatePostEdit(post: Post): boolean | Promise<boolean>;
63
62
  abstract preEvaluateUser(user: UserExtended): boolean | Promise<boolean>;
@@ -1,20 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UserEvaluatorBase = void 0;
4
- const tid_js_1 = require("@devvit/public-api/types/tid.js");
4
+ const server_1 = require("@devvit/web/server");
5
+ const shared_1 = require("@devvit/web/shared");
5
6
  const evaluatorHelpers_js_1 = require("./evaluatorHelpers.js");
6
7
  const constants_js_1 = require("../constants.js");
7
8
  class UserEvaluatorBase {
8
- constructor(context, history, socialLinks, variables) {
9
+ constructor(history, socialLinks, variables) {
9
10
  this.variables = {};
10
11
  this.needsOpenAiKey = false;
11
12
  this.banContentThreshold = 10;
12
13
  this.canAutoBan = true;
13
14
  this.hitReasons = undefined;
14
- this.context = context;
15
15
  this.socialLinks = socialLinks;
16
16
  this.variables = variables;
17
- this.verboseLogging = context.appSlug !== constants_js_1.MAIN_APP_NAME;
17
+ this.verboseLogging = server_1.context.appSlug !== constants_js_1.MAIN_APP_NAME;
18
18
  this.regexWarnThreshold = this.getVariable("regexWarnThreshold", 100);
19
19
  this.ignoredSubs = new Set(this.getGenericVariable("ignoredsubs", []));
20
20
  this.history = history;
@@ -65,7 +65,7 @@ class UserEvaluatorBase {
65
65
  return this.variables[`${module}:${name}`] ?? defaultValue;
66
66
  }
67
67
  async getSocialLinks(username) {
68
- this.socialLinks ?? (this.socialLinks = await (0, evaluatorHelpers_js_1.getSocialLinksWithCache)(username, this.context));
68
+ this.socialLinks ?? (this.socialLinks = await (0, evaluatorHelpers_js_1.getSocialLinksWithCache)(username));
69
69
  return this.socialLinks;
70
70
  }
71
71
  addHitReason(reason) {
@@ -101,11 +101,11 @@ class UserEvaluatorBase {
101
101
  return filteredHistory;
102
102
  }
103
103
  getComments(options) {
104
- this.userComments ?? (this.userComments = this.history.filter(item => (0, tid_js_1.isCommentId)(item.id) && !this.ignoredSubs.has(item.subredditName)));
104
+ this.userComments ?? (this.userComments = this.history.filter(item => (0, shared_1.isT1)(item.id) && !this.ignoredSubs.has(item.subredditName)));
105
105
  return this.getContent(this.userComments, options);
106
106
  }
107
107
  getPosts(options) {
108
- this.userPosts ?? (this.userPosts = this.history.filter(item => (0, tid_js_1.isLinkId)(item.id) && !this.ignoredSubs.has(item.subredditName)));
108
+ this.userPosts ?? (this.userPosts = this.history.filter(item => (0, shared_1.isT3)(item.id) && !this.ignoredSubs.has(item.subredditName)));
109
109
  return this.getContent(this.userPosts, options);
110
110
  }
111
111
  }
@@ -1,3 +1,3 @@
1
- import { TriggerContext, UserSocialLink } from "@devvit/public-api";
1
+ import { UserSocialLink } from "@devvit/web/server";
2
2
  export declare function domainFromUrl(url: string): string | undefined;
3
- export declare function getSocialLinksWithCache(username: string, context: TriggerContext): Promise<UserSocialLink[]>;
3
+ export declare function getSocialLinksWithCache(username: string): Promise<UserSocialLink[]>;
@@ -2,8 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.domainFromUrl = domainFromUrl;
4
4
  exports.getSocialLinksWithCache = getSocialLinksWithCache;
5
+ const server_1 = require("@devvit/web/server");
6
+ const fsv_devvit_web_helpers_1 = require("@fsvreddit/fsv-devvit-web-helpers");
5
7
  const date_fns_1 = require("date-fns");
6
- const devvit_helpers_1 = require("devvit-helpers");
7
8
  function domainFromUrl(url) {
8
9
  if (!url || url.startsWith("/")) {
9
10
  // Reddit internal link or crosspost
@@ -13,13 +14,13 @@ function domainFromUrl(url) {
13
14
  const trimmedHostname = hostname.startsWith("www.") ? hostname.substring(4) : hostname;
14
15
  return trimmedHostname;
15
16
  }
16
- async function getSocialLinksWithCache(username, context) {
17
+ async function getSocialLinksWithCache(username) {
17
18
  const cacheKey = `socialLinks:${username}`;
18
- const cachedValue = await context.redis.get(cacheKey);
19
+ const cachedValue = await server_1.redis.get(cacheKey);
19
20
  if (cachedValue) {
20
21
  return JSON.parse(cachedValue);
21
22
  }
22
- const userSocialLinks = await (0, devvit_helpers_1.getUserSocialLinks)(username, context.metadata);
23
- await context.redis.set(cacheKey, JSON.stringify(userSocialLinks), { expiration: (0, date_fns_1.addMinutes)(new Date(), 5) });
23
+ const userSocialLinks = await (0, fsv_devvit_web_helpers_1.getUserSocialLinks)(username);
24
+ await server_1.redis.set(cacheKey, JSON.stringify(userSocialLinks), { expiration: (0, date_fns_1.addMinutes)(new Date(), 5) });
24
25
  return userSocialLinks;
25
26
  }
@@ -3,6 +3,9 @@ export * from "./EvaluateBadDisplaynameDefinedHandles.js";
3
3
  export * from "./EvaluateBadUsername.js";
4
4
  export * from "./EvaluateBioText.js";
5
5
  export * from "./EvaluateBioTextDefinedHandles.js";
6
+ export * from "./EvaluateBotGroupAdvanced.js";
7
+ export * from "./EvaluateBotGroupAdvancedInternal.js";
8
+ export * from "./EvaluateBotGroupSubmitters.js";
6
9
  export * from "./EvaluateCommentPhrase.js";
7
10
  export * from "./EvaluateDomainSharer.js";
8
11
  export * from "./EvaluateInconsistentAgeBot.js";
@@ -13,15 +16,13 @@ export * from "./EvaluatePinnedPostTitle.js";
13
16
  export * from "./EvaluatePostTitle.js";
14
17
  export * from "./EvaluatePostTitleDefinedHandles.js";
15
18
  export * from "./EvaluatePostTitleMulti.js";
19
+ export * from "./EvaluateRedgifs.js";
20
+ export * from "./EvaluateRepostBot.js";
16
21
  export * from "./EvaluateSelfComment.js";
17
22
  export * from "./EvaluateSocialLinks.js";
18
23
  export * from "./EvaluateSuspiciousFirstPost.js";
24
+ export * from "./EvaluateTextInNsfwImages.js";
19
25
  export * from "./EvaluateTGGroup.js";
20
26
  export * from "./EvaluateWarmupBot.js";
21
- export * from "./EvaluateBotGroupAdvanced.js";
22
- export * from "./EvaluateBotGroupAdvancedInternal.js";
23
- export * from "./EvaluateTitleCopyBot.js";
24
27
  export * from "./EvaluateWorldTraveller.js";
25
- export * from "./EvaluateBotGroupSubmitters.js";
26
- export * from "./EvaluateRedgifs.js";
27
28
  export * from "./UserEvaluatorBase.js";
@@ -19,6 +19,9 @@ __exportStar(require("./EvaluateBadDisplaynameDefinedHandles.js"), exports);
19
19
  __exportStar(require("./EvaluateBadUsername.js"), exports);
20
20
  __exportStar(require("./EvaluateBioText.js"), exports);
21
21
  __exportStar(require("./EvaluateBioTextDefinedHandles.js"), exports);
22
+ __exportStar(require("./EvaluateBotGroupAdvanced.js"), exports);
23
+ __exportStar(require("./EvaluateBotGroupAdvancedInternal.js"), exports);
24
+ __exportStar(require("./EvaluateBotGroupSubmitters.js"), exports);
22
25
  __exportStar(require("./EvaluateCommentPhrase.js"), exports);
23
26
  __exportStar(require("./EvaluateDomainSharer.js"), exports);
24
27
  __exportStar(require("./EvaluateInconsistentAgeBot.js"), exports);
@@ -29,15 +32,13 @@ __exportStar(require("./EvaluatePinnedPostTitle.js"), exports);
29
32
  __exportStar(require("./EvaluatePostTitle.js"), exports);
30
33
  __exportStar(require("./EvaluatePostTitleDefinedHandles.js"), exports);
31
34
  __exportStar(require("./EvaluatePostTitleMulti.js"), exports);
35
+ __exportStar(require("./EvaluateRedgifs.js"), exports);
36
+ __exportStar(require("./EvaluateRepostBot.js"), exports);
32
37
  __exportStar(require("./EvaluateSelfComment.js"), exports);
33
38
  __exportStar(require("./EvaluateSocialLinks.js"), exports);
34
39
  __exportStar(require("./EvaluateSuspiciousFirstPost.js"), exports);
40
+ __exportStar(require("./EvaluateTextInNsfwImages.js"), exports);
35
41
  __exportStar(require("./EvaluateTGGroup.js"), exports);
36
42
  __exportStar(require("./EvaluateWarmupBot.js"), exports);
37
- __exportStar(require("./EvaluateBotGroupAdvanced.js"), exports);
38
- __exportStar(require("./EvaluateBotGroupAdvancedInternal.js"), exports);
39
- __exportStar(require("./EvaluateTitleCopyBot.js"), exports);
40
43
  __exportStar(require("./EvaluateWorldTraveller.js"), exports);
41
- __exportStar(require("./EvaluateBotGroupSubmitters.js"), exports);
42
- __exportStar(require("./EvaluateRedgifs.js"), exports);
43
44
  __exportStar(require("./UserEvaluatorBase.js"), exports);
package/dist/utility.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { JSONValue, TriggerContext, User } from "@devvit/public-api";
1
+ import { User } from "@devvit/web/server";
2
+ import { JsonValue } from "@devvit/web/shared";
2
3
  import { Document } from "yaml";
3
- export declare function getUserOrUndefined(username: string, context: TriggerContext): Promise<User | undefined>;
4
+ export declare function getUserOrUndefined(username: string): Promise<User | undefined>;
4
5
  export interface DuplicateKeyInfo {
5
6
  key: string;
6
7
  path: string;
@@ -8,7 +9,7 @@ export interface DuplicateKeyInfo {
8
9
  col: number;
9
10
  }
10
11
  export declare function findDuplicateKeysInDoc(doc: Document.Parsed): DuplicateKeyInfo[];
11
- export declare function yamlToVariables(input: string, extraSubstitutions?: Record<string, string | string[]>): Record<string, JSONValue>;
12
+ export declare function yamlToVariables(input: string, extraSubstitutions?: Record<string, string | string[]>): Record<string, JsonValue>;
12
13
  export interface AdditionalUserInfo {
13
14
  createdAt: Date;
14
15
  userDescription?: string;
@@ -31,4 +32,4 @@ export interface AdditionalUserInfo {
31
32
  hasVerifiedEmail: boolean;
32
33
  isSubredditModerator: boolean;
33
34
  }
34
- export declare function getAdditionalUserInfo(username: string, context: TriggerContext): Promise<AdditionalUserInfo | undefined>;
35
+ export declare function getAdditionalUserInfo(username: string): Promise<AdditionalUserInfo | undefined>;
package/dist/utility.js CHANGED
@@ -4,13 +4,14 @@ exports.getUserOrUndefined = getUserOrUndefined;
4
4
  exports.findDuplicateKeysInDoc = findDuplicateKeysInDoc;
5
5
  exports.yamlToVariables = yamlToVariables;
6
6
  exports.getAdditionalUserInfo = getAdditionalUserInfo;
7
- const fsv_devvit_helpers_1 = require("@fsvreddit/fsv-devvit-helpers");
7
+ const server_1 = require("@devvit/web/server");
8
+ const fsv_devvit_web_helpers_1 = require("@fsvreddit/fsv-devvit-web-helpers");
8
9
  const date_fns_1 = require("date-fns");
9
10
  const yaml_1 = require("yaml");
10
- async function getUserOrUndefined(username, context) {
11
+ async function getUserOrUndefined(username) {
11
12
  let user;
12
13
  try {
13
- user = await context.reddit.getUserByUsername(username);
14
+ user = await server_1.reddit.getUserByUsername(username);
14
15
  }
15
16
  catch {
16
17
  //
@@ -117,9 +118,9 @@ function yamlToVariables(input, extraSubstitutions = {}) {
117
118
  variables.errors = errors;
118
119
  return variables;
119
120
  }
120
- async function getAdditionalUserInfo(username, context) {
121
+ async function getAdditionalUserInfo(username) {
121
122
  const cacheKey = `bbe:additionalUserInfo:${username}`;
122
- const cachedData = await context.redis.get(cacheKey);
123
+ const cachedData = await server_1.redis.get(cacheKey);
123
124
  if (cachedData) {
124
125
  const parsedData = JSON.parse(cachedData);
125
126
  return {
@@ -134,7 +135,7 @@ async function getAdditionalUserInfo(username, context) {
134
135
  isSubredditModerator: parsedData.isSubredditModerator,
135
136
  };
136
137
  }
137
- const user = await (0, fsv_devvit_helpers_1.getUserExtended)(username, context);
138
+ const user = await (0, fsv_devvit_web_helpers_1.getUserExtended)(username);
138
139
  if (!user) {
139
140
  return;
140
141
  }
@@ -149,7 +150,7 @@ async function getAdditionalUserInfo(username, context) {
149
150
  hasVerifiedEmail: user.hasVerifiedEmail,
150
151
  isSubredditModerator: user.isModerator,
151
152
  };
152
- await context.redis.set(cacheKey, JSON.stringify(dataToCache), { expiration: (0, date_fns_1.addMinutes)(new Date(), 10) });
153
+ await server_1.redis.set(cacheKey, JSON.stringify(dataToCache), { expiration: (0, date_fns_1.addMinutes)(new Date(), 10) });
153
154
  return {
154
155
  createdAt: user.createdAt,
155
156
  userDescription: user.userDescription,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fsvreddit/bot-bouncer-evaluation",
3
- "version": "0.7.50",
3
+ "version": "0.8.0",
4
4
  "description": "Evaluation code for Bot Bouncer, a Dev Platform app designed to hunt bots on Reddit",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -20,10 +20,9 @@
20
20
  "author": "fsv",
21
21
  "license": "BSD-3-Clause",
22
22
  "dependencies": {
23
- "@fsvreddit/fsv-devvit-helpers": "^0.1.13",
23
+ "@fsvreddit/fsv-devvit-web-helpers": "^0.2.3",
24
24
  "@wordpress/wordcount": "^4.53.0",
25
25
  "date-fns": "^4.1.0",
26
- "devvit-helpers": "^0.11.0",
27
26
  "lodash": "^4.17.21",
28
27
  "markdown-escape": "^2.0.0",
29
28
  "openai": "^7.5.0",
@@ -44,7 +43,7 @@
44
43
  "devvit"
45
44
  ],
46
45
  "peerDependencies": {
47
- "@devvit/protos": "^0.14.3",
48
- "@devvit/public-api": "^0.14.3"
46
+ "@devvit/shared-types": "^0.14.7",
47
+ "@devvit/web": "^0.14.7"
49
48
  }
50
49
  }
@@ -1,14 +1,14 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "exclude": [
4
- "vitest.config.ts",
5
- "node_modules",
6
- "tests",
7
- "dist",
8
- "eslint.config.mjs"
9
- ],
10
- "compilerOptions": {
11
- "rootDir": "src",
12
- "outDir": "dist",
13
- }
14
- }
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "exclude": [
4
+ "vitest.config.ts",
5
+ "node_modules",
6
+ "tests",
7
+ "dist",
8
+ "eslint.config.mjs"
9
+ ],
10
+ "compilerOptions": {
11
+ "rootDir": "src",
12
+ "outDir": "dist",
13
+ }
14
+ }
package/tsconfig.json CHANGED
@@ -1,5 +1,4 @@
1
1
  {
2
- "extends": "@devvit/public-api/devvit.tsconfig.json",
3
2
  "compilerOptions": {
4
3
  "target": "ES2020",
5
4
  "lib": [
@@ -13,6 +12,7 @@
13
12
  "esModuleInterop": true,
14
13
  "module": "NodeNext",
15
14
  "moduleResolution": "NodeNext",
15
+ "skipLibCheck": true,
16
16
  },
17
17
  "exclude": [
18
18
  "**/node_modules",