@everipedia/iq-utils 0.4.3 → 1.0.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 (32) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/build/main/data/constants.d.ts +18 -0
  3. package/build/main/data/constants.js +20 -2
  4. package/build/main/index.d.ts +1 -0
  5. package/build/main/index.js +2 -1
  6. package/build/main/lib/checkWikiValidity.d.ts +49 -1
  7. package/build/main/lib/checkWikiValidity.js +29 -18
  8. package/build/main/lib/helpers/wiki.helpers.d.ts +32 -0
  9. package/build/main/lib/helpers/wiki.helpers.js +86 -0
  10. package/build/main/lib/wikiScore.d.ts +1 -1
  11. package/build/main/lib/wikiScore.js +35 -50
  12. package/build/main/schema/wiki.schema.d.ts +798 -0
  13. package/build/main/schema/wiki.schema.js +289 -0
  14. package/build/main/types/wiki.d.ts +5 -205
  15. package/build/main/types/wiki.js +10 -172
  16. package/build/main/types/wikiBuilder.d.ts +1 -1
  17. package/build/module/data/constants.d.ts +18 -0
  18. package/build/module/data/constants.js +19 -1
  19. package/build/module/index.d.ts +1 -0
  20. package/build/module/index.js +2 -1
  21. package/build/module/lib/checkWikiValidity.d.ts +49 -1
  22. package/build/module/lib/checkWikiValidity.js +21 -19
  23. package/build/module/lib/helpers/wiki.helpers.d.ts +32 -0
  24. package/build/module/lib/helpers/wiki.helpers.js +75 -0
  25. package/build/module/lib/wikiScore.d.ts +1 -1
  26. package/build/module/lib/wikiScore.js +5 -20
  27. package/build/module/schema/wiki.schema.d.ts +798 -0
  28. package/build/module/schema/wiki.schema.js +286 -0
  29. package/build/module/types/wiki.d.ts +5 -205
  30. package/build/module/types/wiki.js +9 -171
  31. package/build/module/types/wikiBuilder.d.ts +1 -1
  32. package/package.json +52 -51
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  ## 0.2.8
2
2
 
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - cd21c32: Update wiki to use zod
8
+
9
+ ## 0.4.4
10
+
11
+ ### Patch Changes
12
+
13
+ - bd3b671: Added function export
14
+ - 3903b43: fixes
15
+ - 3903b43: fixes lock file
16
+ - 109a4d9: adds export for constants
17
+ - 275d12e: Adds export to wiki check functions
18
+
3
19
  ## 0.4.3
4
20
 
5
21
  ### Patch Changes
@@ -4,3 +4,21 @@ export declare const WIKI_TITLE_MAX_LENGTH = 60;
4
4
  export declare const MEDIA_UPLOAD_PENDING_SUFFIX = "default";
5
5
  export declare const MAX_MEDIA_COUNT = 25;
6
6
  export declare const IPFS_HASH_LENGTH = 46;
7
+ export declare const EditorContentOverride = "%OVERRIDE@EDITOR@MARKDOWN%";
8
+ export declare const CreateNewWikiSlug = "/*CREATE+NEW+WIKI*/";
9
+ export declare const MIN_CONTENT_WORD_COUNT = 10;
10
+ export declare const GOOD_CONTENT_WORD_COUNT = 500;
11
+ export declare const IDEAL_CONTENT_WORD_COUNT = 1500;
12
+ export declare const CONTENT_SCORE_WEIGHT = 0.8;
13
+ export declare const INTERNAL_LINKS_SCORE_WEIGHT = 0.5;
14
+ export declare const CITATIONS_SCORE_WEIGHT = 0.5;
15
+ export declare const MEDIA_SCORE_WEIGHT = 0.3;
16
+ export declare const TAGS_SCORE_WEIGHT = 0.3;
17
+ export declare const SUMMARY_SCORE_WEIGHT = 0.5;
18
+ export declare const SOCIAL_SCORE_WEIGHT = 0.5;
19
+ export declare const IDEAL_INTERNAL_LINKS_COUNT = 10;
20
+ export declare const IDEAL_CITATIONS_COUNT = 10;
21
+ export declare const IDEAL_MEDIA_COUNT = 5;
22
+ export declare const IDEAL_TAGS_COUNT = 3;
23
+ export declare const IDEAL_SUMMARY_LENGTH = 100;
24
+ export declare const IDEAL_SOCIAL_MEDIA_COUNT = 4;
@@ -1,10 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IPFS_HASH_LENGTH = exports.MAX_MEDIA_COUNT = exports.MEDIA_UPLOAD_PENDING_SUFFIX = exports.WIKI_TITLE_MAX_LENGTH = exports.WIKI_CONTENT_MIN_WORDS = exports.WIKI_SUMMARY_MAX_LENGTH = void 0;
3
+ exports.IDEAL_SOCIAL_MEDIA_COUNT = exports.IDEAL_SUMMARY_LENGTH = exports.IDEAL_TAGS_COUNT = exports.IDEAL_MEDIA_COUNT = exports.IDEAL_CITATIONS_COUNT = exports.IDEAL_INTERNAL_LINKS_COUNT = exports.SOCIAL_SCORE_WEIGHT = exports.SUMMARY_SCORE_WEIGHT = exports.TAGS_SCORE_WEIGHT = exports.MEDIA_SCORE_WEIGHT = exports.CITATIONS_SCORE_WEIGHT = exports.INTERNAL_LINKS_SCORE_WEIGHT = exports.CONTENT_SCORE_WEIGHT = exports.IDEAL_CONTENT_WORD_COUNT = exports.GOOD_CONTENT_WORD_COUNT = exports.MIN_CONTENT_WORD_COUNT = exports.CreateNewWikiSlug = exports.EditorContentOverride = exports.IPFS_HASH_LENGTH = exports.MAX_MEDIA_COUNT = exports.MEDIA_UPLOAD_PENDING_SUFFIX = exports.WIKI_TITLE_MAX_LENGTH = exports.WIKI_CONTENT_MIN_WORDS = exports.WIKI_SUMMARY_MAX_LENGTH = void 0;
4
4
  exports.WIKI_SUMMARY_MAX_LENGTH = 255;
5
5
  exports.WIKI_CONTENT_MIN_WORDS = 100;
6
6
  exports.WIKI_TITLE_MAX_LENGTH = 60;
7
7
  exports.MEDIA_UPLOAD_PENDING_SUFFIX = "default";
8
8
  exports.MAX_MEDIA_COUNT = 25;
9
9
  exports.IPFS_HASH_LENGTH = 46;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGEvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBQzlCLFFBQUEsc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0FBQzdCLFFBQUEscUJBQXFCLEdBQUcsRUFBRSxDQUFDO0FBQzNCLFFBQUEsMkJBQTJCLEdBQUcsU0FBUyxDQUFDO0FBQ3hDLFFBQUEsZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUNyQixRQUFBLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyJ9
10
+ exports.EditorContentOverride = "%OVERRIDE@EDITOR@MARKDOWN%";
11
+ exports.CreateNewWikiSlug = "/*CREATE+NEW+WIKI*/";
12
+ exports.MIN_CONTENT_WORD_COUNT = 10;
13
+ exports.GOOD_CONTENT_WORD_COUNT = 500;
14
+ exports.IDEAL_CONTENT_WORD_COUNT = 1500;
15
+ exports.CONTENT_SCORE_WEIGHT = 0.8;
16
+ exports.INTERNAL_LINKS_SCORE_WEIGHT = 0.5;
17
+ exports.CITATIONS_SCORE_WEIGHT = 0.5;
18
+ exports.MEDIA_SCORE_WEIGHT = 0.3;
19
+ exports.TAGS_SCORE_WEIGHT = 0.3;
20
+ exports.SUMMARY_SCORE_WEIGHT = 0.5;
21
+ exports.SOCIAL_SCORE_WEIGHT = 0.5;
22
+ exports.IDEAL_INTERNAL_LINKS_COUNT = 10;
23
+ exports.IDEAL_CITATIONS_COUNT = 10;
24
+ exports.IDEAL_MEDIA_COUNT = 5;
25
+ exports.IDEAL_TAGS_COUNT = 3;
26
+ exports.IDEAL_SUMMARY_LENGTH = 100;
27
+ exports.IDEAL_SOCIAL_MEDIA_COUNT = 4;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGEvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBQzlCLFFBQUEsc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0FBQzdCLFFBQUEscUJBQXFCLEdBQUcsRUFBRSxDQUFDO0FBQzNCLFFBQUEsMkJBQTJCLEdBQUcsU0FBUyxDQUFDO0FBQ3hDLFFBQUEsZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUNyQixRQUFBLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztBQUN0QixRQUFBLHFCQUFxQixHQUFHLDRCQUE0QixDQUFDO0FBQ3JELFFBQUEsaUJBQWlCLEdBQUcscUJBQXFCLENBQUM7QUFFMUMsUUFBQSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFDNUIsUUFBQSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFDOUIsUUFBQSx3QkFBd0IsR0FBRyxJQUFJLENBQUM7QUFFaEMsUUFBQSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFDM0IsUUFBQSwyQkFBMkIsR0FBRyxHQUFHLENBQUM7QUFDbEMsUUFBQSxzQkFBc0IsR0FBRyxHQUFHLENBQUM7QUFDN0IsUUFBQSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFDekIsUUFBQSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFDeEIsUUFBQSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFDM0IsUUFBQSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFFMUIsUUFBQSwwQkFBMEIsR0FBRyxFQUFFLENBQUM7QUFDaEMsUUFBQSxxQkFBcUIsR0FBRyxFQUFFLENBQUM7QUFDM0IsUUFBQSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFDdEIsUUFBQSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFDckIsUUFBQSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFDM0IsUUFBQSx3QkFBd0IsR0FBRyxDQUFDLENBQUMifQ==
@@ -3,3 +3,4 @@ export * from "./lib/isDeepEqual";
3
3
  export * from "./lib/checkWikiValidity";
4
4
  export * from "./types/wiki";
5
5
  export * from "./types/wikiBuilder";
6
+ export * from "./data/constants";
@@ -19,4 +19,5 @@ __exportStar(require("./lib/isDeepEqual"), exports);
19
19
  __exportStar(require("./lib/checkWikiValidity"), exports);
20
20
  __exportStar(require("./types/wiki"), exports);
21
21
  __exportStar(require("./types/wikiBuilder"), exports);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQztBQUNoQyxvREFBa0M7QUFDbEMsMERBQXdDO0FBQ3hDLCtDQUE2QjtBQUM3QixzREFBb0MifQ==
22
+ __exportStar(require("./data/constants"), exports);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQztBQUNoQyxvREFBa0M7QUFDbEMsMERBQXdDO0FBQ3hDLCtDQUE2QjtBQUM3QixzREFBb0M7QUFDcEMsbURBQWlDIn0=
@@ -1,10 +1,58 @@
1
- import { type Wiki } from "../types/wiki";
1
+ import { type Wiki } from "../schema/wiki.schema";
2
+ /**
3
+ * Counts the number of words in a given string.
4
+ * @param text - The input string to count words from.
5
+ * @returns The number of words in the string.
6
+ */
7
+ export declare const countWords: (text: string) => number;
8
+ /**
9
+ * Checks if a given string is a valid URL.
10
+ * @param urlString - The string to check.
11
+ * @returns True if the string is a valid URL, false otherwise.
12
+ */
13
+ export declare const isValidUrl: (urlString: string) => boolean;
2
14
  /**
3
15
  * Checks if all content links in the given text are verified.
4
16
  * @param content - The content to check for links.
5
17
  * @returns True if all links are verified, false otherwise.
6
18
  */
7
19
  export declare const areContentLinksVerified: (content: string) => boolean;
20
+ /**
21
+ * Checks if the media in the wiki is valid.
22
+ * @param wiki - The wiki object to check.
23
+ * @returns True if the media is valid, false otherwise.
24
+ */
25
+ export declare const isMediaValid: (wiki: Wiki) => boolean;
26
+ /**
27
+ * Checks if any media in the wiki is still uploading.
28
+ * @param wiki - The wiki object to check.
29
+ * @returns True if any media is still uploading, false otherwise.
30
+ */
31
+ export declare const isAnyMediaUploading: (wiki: Wiki) => boolean;
32
+ /**
33
+ * Checks if the event URL is missing for an event wiki.
34
+ * @param wiki - The wiki object to check.
35
+ * @returns True if the event URL is missing, false otherwise.
36
+ */
37
+ export declare const isEventUrlMissing: (wiki: Wiki) => boolean;
38
+ /**
39
+ * Checks if the event date is missing for an event wiki.
40
+ * @param wiki - The wiki object to check.
41
+ * @returns True if the event date is missing, false otherwise.
42
+ */
43
+ export declare const isEventDateMissing: (wiki: Wiki) => boolean;
44
+ /**
45
+ * Checks if the wiki summary exceeds the maximum length.
46
+ * @param wiki - The wiki object to check.
47
+ * @returns True if the summary exceeds the limit, false otherwise.
48
+ */
49
+ export declare const isSummaryTooLong: (wiki: Wiki) => boolean;
50
+ /**
51
+ * Checks if the wiki has no citations.
52
+ * @param wiki - The wiki object to check.
53
+ * @returns True if there are no citations, false otherwise.
54
+ */
55
+ export declare const hasNoCitations: (wiki: Wiki) => boolean;
8
56
  /**
9
57
  * Validates a wiki object and returns the validation result.
10
58
  * @param wiki - The wiki object to validate.
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateWiki = exports.areContentLinksVerified = void 0;
3
+ exports.validateWiki = exports.hasNoCitations = exports.isSummaryTooLong = exports.isEventDateMissing = exports.isEventUrlMissing = exports.isAnyMediaUploading = exports.isMediaValid = exports.areContentLinksVerified = exports.isValidUrl = exports.countWords = void 0;
4
4
  const constants_1 = require("../data/constants");
5
+ const wiki_schema_1 = require("../schema/wiki.schema");
5
6
  const wiki_1 = require("../types/wiki");
6
7
  /**
7
8
  * Counts the number of words in a given string.
@@ -9,6 +10,7 @@ const wiki_1 = require("../types/wiki");
9
10
  * @returns The number of words in the string.
10
11
  */
11
12
  const countWords = (text) => text.split(" ").filter((word) => word !== "").length;
13
+ exports.countWords = countWords;
12
14
  /**
13
15
  * Checks if a given string is a valid URL.
14
16
  * @param urlString - The string to check.
@@ -22,6 +24,7 @@ const isValidUrl = (urlString) => {
22
24
  return false;
23
25
  }
24
26
  };
27
+ exports.isValidUrl = isValidUrl;
25
28
  /**
26
29
  * Checks if all content links in the given text are verified.
27
30
  * @param content - The content to check for links.
@@ -35,7 +38,7 @@ const areContentLinksVerified = (content) => {
35
38
  if (linkText &&
36
39
  linkUrl &&
37
40
  wiki_1.whiteListedLinkNames.includes(linkText) &&
38
- !isValidUrl(linkUrl)) {
41
+ !(0, exports.isValidUrl)(linkUrl)) {
39
42
  return true;
40
43
  }
41
44
  if (linkUrl && !linkUrl.startsWith("#")) {
@@ -55,25 +58,28 @@ const isMediaValid = (wiki) => {
55
58
  if (!wiki.media)
56
59
  return true;
57
60
  const isMediaContentValid = wiki.media.every((media) => {
58
- if (media.source === wiki_1.MediaSource.IPFS_IMG ||
59
- media.source === wiki_1.MediaSource.IPFS_VID) {
61
+ if (media.source === wiki_schema_1.MediaSourceEnum.Enum.IPFS_IMG ||
62
+ media.source === wiki_schema_1.MediaSourceEnum.Enum.IPFS_VID) {
60
63
  return media.id.length === constants_1.IPFS_HASH_LENGTH;
61
64
  }
62
- if (media.source === wiki_1.MediaSource.YOUTUBE) {
65
+ if (media.source === wiki_schema_1.MediaSourceEnum.Enum.YOUTUBE) {
63
66
  const youtubePattern = /^.*(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/|watch\?v=)([^#&?]*).*/;
64
67
  return (media.id === `https://www.youtube.com/watch?v=${media.name}` &&
65
68
  youtubePattern.test(media.id));
66
69
  }
67
- if (media.source === wiki_1.MediaSource.VIMEO) {
70
+ if (media.source === wiki_schema_1.MediaSourceEnum.Enum.VIMEO) {
68
71
  return media.id === `https://vimeo.com/${media.name}`;
69
72
  }
70
- return media.type ? Object.values(wiki_1.MediaType).includes(media.type) : true;
73
+ return media.type
74
+ ? Object.values(wiki_schema_1.MediaTypeEnum).includes(media.type)
75
+ : true;
71
76
  });
72
- const iconMediaCount = wiki.media.filter((media) => media.type === wiki_1.MediaType.ICON).length;
77
+ const iconMediaCount = wiki.media.filter((media) => media.type === wiki_schema_1.MediaTypeEnum.Enum.ICON).length;
73
78
  return (wiki.media.length <= constants_1.MAX_MEDIA_COUNT &&
74
79
  isMediaContentValid &&
75
80
  iconMediaCount <= 1);
76
81
  };
82
+ exports.isMediaValid = isMediaValid;
77
83
  /**
78
84
  * Checks if any media in the wiki is still uploading.
79
85
  * @param wiki - The wiki object to check.
@@ -83,6 +89,7 @@ const isAnyMediaUploading = (wiki) => {
83
89
  var _a, _b;
84
90
  return (_b = (_a = wiki.media) === null || _a === void 0 ? void 0 : _a.some((media) => media.id.endsWith(constants_1.MEDIA_UPLOAD_PENDING_SUFFIX))) !== null && _b !== void 0 ? _b : false;
85
91
  };
92
+ exports.isAnyMediaUploading = isAnyMediaUploading;
86
93
  /**
87
94
  * Checks if the event URL is missing for an event wiki.
88
95
  * @param wiki - The wiki object to check.
@@ -91,33 +98,37 @@ const isAnyMediaUploading = (wiki) => {
91
98
  const isEventUrlMissing = (wiki) => {
92
99
  var _a;
93
100
  if (wiki.tags.some((tag) => tag.id === "Events")) {
94
- const referencesData = ((_a = wiki.metadata.find((meta) => meta.id === wiki_1.CommonMetaIds.REFERENCES)) === null || _a === void 0 ? void 0 : _a.value) || "[]";
101
+ const referencesData = ((_a = wiki.metadata.find((meta) => meta.id === wiki_schema_1.CommonMetaIdsEnum.Enum.references)) === null || _a === void 0 ? void 0 : _a.value) || "[]";
95
102
  const references = JSON.parse(referencesData);
96
103
  return !references.some((item) => item.description.toLowerCase() === "event link");
97
104
  }
98
105
  return false;
99
106
  };
107
+ exports.isEventUrlMissing = isEventUrlMissing;
100
108
  /**
101
109
  * Checks if the event date is missing for an event wiki.
102
110
  * @param wiki - The wiki object to check.
103
111
  * @returns True if the event date is missing, false otherwise.
104
112
  */
105
113
  const isEventDateMissing = (wiki) => { var _a; return wiki.tags.some((tag) => tag.id === "Events") && ((_a = wiki.events) === null || _a === void 0 ? void 0 : _a.length) === 0; };
114
+ exports.isEventDateMissing = isEventDateMissing;
106
115
  /**
107
116
  * Checks if the wiki summary exceeds the maximum length.
108
117
  * @param wiki - The wiki object to check.
109
118
  * @returns True if the summary exceeds the limit, false otherwise.
110
119
  */
111
120
  const isSummaryTooLong = (wiki) => !!(wiki.summary && wiki.summary.length > constants_1.WIKI_SUMMARY_MAX_LENGTH);
121
+ exports.isSummaryTooLong = isSummaryTooLong;
112
122
  /**
113
123
  * Checks if the wiki has no citations.
114
124
  * @param wiki - The wiki object to check.
115
125
  * @returns True if there are no citations, false otherwise.
116
126
  */
117
127
  const hasNoCitations = (wiki) => {
118
- const references = wiki.metadata.find((meta) => meta.id === wiki_1.CommonMetaIds.REFERENCES);
128
+ const references = wiki.metadata.find((meta) => meta.id === wiki_schema_1.CommonMetaIdsEnum.Enum.references);
119
129
  return !(references === null || references === void 0 ? void 0 : references.value) || references.value.length === 0;
120
130
  };
131
+ exports.hasNoCitations = hasNoCitations;
121
132
  /**
122
133
  * Validates a wiki object and returns the validation result.
123
134
  * @param wiki - The wiki object to validate.
@@ -125,7 +136,7 @@ const hasNoCitations = (wiki) => {
125
136
  */
126
137
  const validateWiki = (wiki) => {
127
138
  var _a;
128
- const wordCount = countWords(wiki.content || "");
139
+ const wordCount = (0, exports.countWords)(wiki.content || "");
129
140
  if (!wiki.title) {
130
141
  return {
131
142
  isValid: false,
@@ -162,37 +173,37 @@ const validateWiki = (wiki) => {
162
173
  if (wiki.categories.length === 0) {
163
174
  return { isValid: false, error: "Add one category to continue" };
164
175
  }
165
- if (isSummaryTooLong(wiki)) {
176
+ if ((0, exports.isSummaryTooLong)(wiki)) {
166
177
  return {
167
178
  isValid: false,
168
179
  error: `Summary exceeds maximum limit of ${constants_1.WIKI_SUMMARY_MAX_LENGTH}`,
169
180
  };
170
181
  }
171
- if (isAnyMediaUploading(wiki)) {
182
+ if ((0, exports.isAnyMediaUploading)(wiki)) {
172
183
  return {
173
184
  isValid: false,
174
185
  error: "Some media are still uploading, please wait",
175
186
  };
176
187
  }
177
- if (hasNoCitations(wiki)) {
188
+ if ((0, exports.hasNoCitations)(wiki)) {
178
189
  return { isValid: false, error: "Please add at least one citation" };
179
190
  }
180
- if (isEventUrlMissing(wiki)) {
191
+ if ((0, exports.isEventUrlMissing)(wiki)) {
181
192
  return {
182
193
  isValid: false,
183
194
  error: "Please cite the event official website with 'Event Link' description",
184
195
  };
185
196
  }
186
- if (isEventDateMissing(wiki)) {
197
+ if ((0, exports.isEventDateMissing)(wiki)) {
187
198
  return {
188
199
  isValid: false,
189
200
  error: 'Please open the "Edit Wiki Details Modal" and enter a valid event date',
190
201
  };
191
202
  }
192
- if (!isMediaValid(wiki)) {
203
+ if (!(0, exports.isMediaValid)(wiki)) {
193
204
  return { isValid: false, error: "Media is invalid" };
194
205
  }
195
206
  return { isValid: true };
196
207
  };
197
208
  exports.validateWiki = validateWiki;
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tXaWtpVmFsaWRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NoZWNrV2lraVZhbGlkaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQU8yQjtBQUMzQix3Q0FPdUI7QUFFdkI7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFFdEQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFO0lBQ3hDLElBQUk7UUFDSCxPQUFPLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0tBQ25DO0lBQUMsT0FBTyxFQUFFLEVBQUU7UUFDWixPQUFPLEtBQUssQ0FBQztLQUNiO0FBQ0YsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNJLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRTs7SUFDMUQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNELE9BQU8sQ0FDTixNQUFBLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUM3QixNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQzFCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFL0MsSUFDQyxRQUFRO1lBQ1IsT0FBTztZQUNQLDJCQUFvQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDdkMsQ0FBQyxVQUFVLENB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
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tXaWtpVmFsaWRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NoZWNrV2lraVZhbGlkaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQU8yQjtBQUMzQix1REFLK0I7QUFDL0Isd0NBQXlFO0FBRXpFOzs7O0dBSUc7QUFDSSxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO0FBRHpDLFFBQUEsVUFBVSxjQUMrQjtBQUV0RDs7OztHQUlHO0FBQ0ksTUFBTSxVQUFVLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUU7SUFDL0MsSUFBSTtRQUNILE9BQU8sT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDbkM7SUFBQyxPQUFPLEVBQUUsRUFBRTtRQUNaLE9BQU8sS0FBSyxDQUFDO0tBQ2I7QUFDRixDQUFDLENBQUM7QUFOVyxRQUFBLFVBQVUsY0FNckI7QUFFRjs7OztHQUlHO0FBQ0ksTUFBTSx1QkFBdUIsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFOztJQUMxRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDM0QsT0FBTyxDQUNOLE1BQUEsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQzdCLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FDMUIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUvQyxJQUNDLFFBQVE7WUFDUixPQUFP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
@@ -0,0 +1,32 @@
1
+ import type { z } from "zod";
2
+ import { type Media, type TagEnum } from "../../schema/wiki.schema";
3
+ /**
4
+ * Counts the number of words in a given string.
5
+ * @param text - The input string to count words from.
6
+ * @returns The number of words in the string.
7
+ */
8
+ export declare const countWords: (text: string) => number;
9
+ /**
10
+ * Checks if a given string is a valid URL.
11
+ * @param urlString - The string to check.
12
+ * @returns True if the string is a valid URL, false otherwise.
13
+ */
14
+ export declare const isValidUrl: (urlString: string) => boolean;
15
+ export declare const validateMediaContent: (media: Media[]) => boolean;
16
+ export declare const validateMediaCount: (media: Media[]) => boolean;
17
+ export declare const validateEventWiki: (wiki: {
18
+ tags: {
19
+ id: z.infer<typeof TagEnum>;
20
+ }[];
21
+ metadata: {
22
+ id: string;
23
+ value?: string;
24
+ }[];
25
+ events?: unknown[];
26
+ }) => boolean;
27
+ /**
28
+ * Checks if all content links in the given text are verified.
29
+ * @param content - The content to check for links.
30
+ * @returns True if all links are verified, false otherwise.
31
+ */
32
+ export declare const areContentLinksVerified: (content: string) => boolean;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.areContentLinksVerified = exports.validateEventWiki = exports.validateMediaCount = exports.validateMediaContent = exports.isValidUrl = exports.countWords = void 0;
4
+ const constants_1 = require("../../data/constants");
5
+ const wiki_schema_1 = require("../../schema/wiki.schema");
6
+ const wiki_1 = require("../../types/wiki");
7
+ /**
8
+ * Counts the number of words in a given string.
9
+ * @param text - The input string to count words from.
10
+ * @returns The number of words in the string.
11
+ */
12
+ const countWords = (text) => text.split(" ").filter((word) => word !== "").length;
13
+ exports.countWords = countWords;
14
+ /**
15
+ * Checks if a given string is a valid URL.
16
+ * @param urlString - The string to check.
17
+ * @returns True if the string is a valid URL, false otherwise.
18
+ */
19
+ const isValidUrl = (urlString) => {
20
+ try {
21
+ return Boolean(new URL(urlString));
22
+ }
23
+ catch (_e) {
24
+ return false;
25
+ }
26
+ };
27
+ exports.isValidUrl = isValidUrl;
28
+ const validateMediaContent = (media) => {
29
+ return media.every((item) => {
30
+ if (item.source === wiki_schema_1.MediaSourceEnum.Enum.IPFS_IMG ||
31
+ item.source === wiki_schema_1.MediaSourceEnum.Enum.IPFS_VID) {
32
+ return item.id.length === constants_1.IPFS_HASH_LENGTH;
33
+ }
34
+ if (item.source === wiki_schema_1.MediaSourceEnum.Enum.YOUTUBE) {
35
+ const youtubePattern = /^.*(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/|watch\?v=)([^#&?]*).*/;
36
+ return (item.id === `https://www.youtube.com/watch?v=${item.name}` &&
37
+ youtubePattern.test(item.id));
38
+ }
39
+ if (item.source === wiki_schema_1.MediaSourceEnum.Enum.VIMEO) {
40
+ return item.id === `https://vimeo.com/${item.name}`;
41
+ }
42
+ return item.type ? item.type in wiki_schema_1.MediaTypeEnum : true;
43
+ });
44
+ };
45
+ exports.validateMediaContent = validateMediaContent;
46
+ const validateMediaCount = (media) => {
47
+ const iconMediaCount = media.filter((item) => item.type === wiki_schema_1.MediaTypeEnum.Enum.ICON).length;
48
+ return media.length <= constants_1.MAX_MEDIA_COUNT && iconMediaCount <= 1;
49
+ };
50
+ exports.validateMediaCount = validateMediaCount;
51
+ const validateEventWiki = (wiki) => {
52
+ var _a;
53
+ if (wiki.tags.some((tag) => tag.id === "Events")) {
54
+ const referencesData = ((_a = wiki.metadata.find((meta) => meta.id === wiki_schema_1.CommonMetaIdsEnum.Enum.references)) === null || _a === void 0 ? void 0 : _a.value) || "[]";
55
+ const references = JSON.parse(referencesData);
56
+ const hasEventLink = references.some((item) => item.description.toLowerCase() === "event link");
57
+ return hasEventLink && Array.isArray(wiki.events) && wiki.events.length > 0;
58
+ }
59
+ return true;
60
+ };
61
+ exports.validateEventWiki = validateEventWiki;
62
+ /**
63
+ * Checks if all content links in the given text are verified.
64
+ * @param content - The content to check for links.
65
+ * @returns True if all links are verified, false otherwise.
66
+ */
67
+ const areContentLinksVerified = (content) => {
68
+ var _a;
69
+ const markdownLinks = content.match(/\[(.*?)\]\((.*?)\)/g);
70
+ return ((_a = markdownLinks === null || markdownLinks === void 0 ? void 0 : markdownLinks.every((link) => {
71
+ const [, linkText, linkUrl] = RegExp(/\[(.*?)\]\((.*?)\)/).exec(link) || [];
72
+ if (linkText &&
73
+ linkUrl &&
74
+ wiki_1.whiteListedLinkNames.includes(linkText) &&
75
+ !(0, exports.isValidUrl)(linkUrl)) {
76
+ return true;
77
+ }
78
+ if (linkUrl && !linkUrl.startsWith("#")) {
79
+ const validDomainPattern = new RegExp(`^https?://(www\\.)?(${wiki_1.whiteListedDomains.join("|")})`);
80
+ return validDomainPattern.test(linkUrl);
81
+ }
82
+ return true;
83
+ })) !== null && _a !== void 0 ? _a : true);
84
+ };
85
+ exports.areContentLinksVerified = areContentLinksVerified;
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lraS5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9oZWxwZXJzL3dpa2kuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxvREFBeUU7QUFDekUsMERBTWtDO0FBQ2xDLDJDQUE0RTtBQUM1RTs7OztHQUlHO0FBRUksTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUR6QyxRQUFBLFVBQVUsY0FDK0I7QUFFdEQ7Ozs7R0FJRztBQUNJLE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFO0lBQy9DLElBQUk7UUFDSCxPQUFPLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0tBQ25DO0lBQUMsT0FBTyxFQUFFLEVBQUU7UUFDWixPQUFPLEtBQUssQ0FBQztLQUNiO0FBQ0YsQ0FBQyxDQUFDO0FBTlcsUUFBQSxVQUFVLGNBTXJCO0FBRUssTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQ3RELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQzNCLElBQ0MsSUFBSSxDQUFDLE1BQU0sS0FBSyw2QkFBZSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQzdDLElBQUksQ0FBQyxNQUFNLEtBQUssNkJBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUM1QztZQUNELE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssNEJBQWdCLENBQUM7U0FDM0M7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssNkJBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lB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
@@ -1,2 +1,2 @@
1
- import { type Wiki } from "../types/wiki";
1
+ import { type Wiki } from "../schema/wiki.schema";
2
2
  export declare const calculateWikiScore: (wiki: Wiki) => number;
@@ -1,44 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateWikiScore = void 0;
4
- const wiki_1 = require("../types/wiki");
5
- const MIN_CONTENT_WORD_COUNT = 10;
6
- const GOOD_CONTENT_WORD_COUNT = 500;
7
- const IDEAL_CONTENT_WORD_COUNT = 1500;
8
- const CONTENT_SCORE_WEIGHT = 0.8;
9
- const INTERNAL_LINKS_SCORE_WEIGHT = 0.5;
10
- const CITATIONS_SCORE_WEIGHT = 0.5;
11
- const MEDIA_SCORE_WEIGHT = 0.3;
12
- const TAGS_SCORE_WEIGHT = 0.3;
13
- const SUMMARY_SCORE_WEIGHT = 0.5;
14
- const SOCIAL_SCORE_WEIGHT = 0.5;
15
- const IDEAL_INTERNAL_LINKS_COUNT = 10;
16
- const IDEAL_CITATIONS_COUNT = 10;
17
- const IDEAL_MEDIA_COUNT = 5;
18
- const IDEAL_TAGS_COUNT = 3;
19
- const IDEAL_SUMMARY_LENGTH = 100;
20
- const IDEAL_SOCIAL_MEDIA_COUNT = 4;
4
+ const constants_1 = require("../data/constants");
5
+ const wiki_schema_1 = require("../schema/wiki.schema");
21
6
  const contentQuality = (wordCount) => {
22
7
  const scoreMin = 0.0;
23
8
  const scoreMax = 1.0;
24
9
  let score = 0;
25
- if (wordCount < MIN_CONTENT_WORD_COUNT) {
10
+ if (wordCount < constants_1.MIN_CONTENT_WORD_COUNT) {
26
11
  return scoreMin;
27
12
  }
28
- if (wordCount >= MIN_CONTENT_WORD_COUNT &&
29
- wordCount <= GOOD_CONTENT_WORD_COUNT) {
30
- score = wordCount / GOOD_CONTENT_WORD_COUNT;
13
+ if (wordCount >= constants_1.MIN_CONTENT_WORD_COUNT &&
14
+ wordCount <= constants_1.GOOD_CONTENT_WORD_COUNT) {
15
+ score = wordCount / constants_1.GOOD_CONTENT_WORD_COUNT;
31
16
  score *= 0.8;
32
17
  }
33
- if (wordCount > GOOD_CONTENT_WORD_COUNT &&
34
- wordCount < IDEAL_CONTENT_WORD_COUNT) {
18
+ if (wordCount > constants_1.GOOD_CONTENT_WORD_COUNT &&
19
+ wordCount < constants_1.IDEAL_CONTENT_WORD_COUNT) {
35
20
  const baseScore = 0.8;
36
- const wordCountAboveGood = wordCount - GOOD_CONTENT_WORD_COUNT;
37
- const extraScoreFactor = wordCountAboveGood / (IDEAL_CONTENT_WORD_COUNT - GOOD_CONTENT_WORD_COUNT);
21
+ const wordCountAboveGood = wordCount - constants_1.GOOD_CONTENT_WORD_COUNT;
22
+ const extraScoreFactor = wordCountAboveGood / (constants_1.IDEAL_CONTENT_WORD_COUNT - constants_1.GOOD_CONTENT_WORD_COUNT);
38
23
  const extraScore = Math.sqrt(extraScoreFactor) * 0.2;
39
24
  score = baseScore + extraScore;
40
25
  }
41
- if (wordCount >= IDEAL_CONTENT_WORD_COUNT) {
26
+ if (wordCount >= constants_1.IDEAL_CONTENT_WORD_COUNT) {
42
27
  return scoreMax;
43
28
  }
44
29
  if (score < scoreMin) {
@@ -62,7 +47,7 @@ const countQuality = (idealCount, realCount) => {
62
47
  return score;
63
48
  };
64
49
  const getHostnameFromRegex = (url) => {
65
- const matches = url.match(/^https?:\/\/([^/?#]+)(?:[/?#]|$)/i);
50
+ const matches = RegExp(/^https?:\/\/([^/?#]+)(?:[/?#]|$)/i).exec(url);
66
51
  return matches === null || matches === void 0 ? void 0 : matches[1];
67
52
  };
68
53
  const getWikiInternalLinks = (content) => {
@@ -85,7 +70,7 @@ const getWikiInternalLinks = (content) => {
85
70
  };
86
71
  const getWikiCitationLinks = (wiki) => {
87
72
  var _a;
88
- const rawWikiReferences = (_a = wiki.metadata.find((m) => m.id === wiki_1.CommonMetaIds.REFERENCES)) === null || _a === void 0 ? void 0 : _a.value;
73
+ const rawWikiReferences = (_a = wiki.metadata.find((m) => m.id === wiki_schema_1.CommonMetaIdsEnum.Enum.references)) === null || _a === void 0 ? void 0 : _a.value;
89
74
  if (rawWikiReferences === undefined ||
90
75
  (rawWikiReferences === null || rawWikiReferences === void 0 ? void 0 : rawWikiReferences.trim().length) === 0) {
91
76
  return 0;
@@ -96,7 +81,7 @@ const getWikiCitationLinks = (wiki) => {
96
81
  const getSocialsCount = (wiki) => {
97
82
  let socialsCount = 0;
98
83
  for (const meta of wiki.metadata) {
99
- if (wiki_1.WikiPossibleSocialsList.includes(meta.id)) {
84
+ if (wiki_schema_1.WikiPossibleSocialsList.includes(meta.id)) {
100
85
  if (meta.value) {
101
86
  socialsCount += 1;
102
87
  }
@@ -114,29 +99,29 @@ const calculateWikiScore = (wiki) => {
114
99
  const summaryWordCount = ((_c = wiki.summary) === null || _c === void 0 ? void 0 : _c.length) || 0;
115
100
  const socialsCount = getSocialsCount(wiki);
116
101
  const contentScore = contentQuality(wordCount);
117
- const internalLinksScore = countQuality(IDEAL_INTERNAL_LINKS_COUNT, internalLinksCount);
118
- const citationScore = countQuality(IDEAL_CITATIONS_COUNT, citationCount);
119
- const mediaScore = countQuality(IDEAL_MEDIA_COUNT, mediaCount);
120
- const tagsScore = countQuality(IDEAL_TAGS_COUNT, tagsCount);
121
- const summaryScore = countQuality(IDEAL_SUMMARY_LENGTH, summaryWordCount);
122
- const socialsScore = countQuality(IDEAL_SOCIAL_MEDIA_COUNT, socialsCount);
123
- const sumOfWeights = CONTENT_SCORE_WEIGHT +
124
- INTERNAL_LINKS_SCORE_WEIGHT +
125
- CITATIONS_SCORE_WEIGHT +
126
- MEDIA_SCORE_WEIGHT +
127
- TAGS_SCORE_WEIGHT +
128
- SUMMARY_SCORE_WEIGHT +
129
- SOCIAL_SCORE_WEIGHT;
130
- const score = (contentScore * CONTENT_SCORE_WEIGHT +
131
- internalLinksScore * INTERNAL_LINKS_SCORE_WEIGHT +
132
- citationScore * CITATIONS_SCORE_WEIGHT +
133
- mediaScore * MEDIA_SCORE_WEIGHT +
134
- tagsScore * TAGS_SCORE_WEIGHT +
135
- summaryScore * SUMMARY_SCORE_WEIGHT +
136
- socialsScore * SOCIAL_SCORE_WEIGHT) /
102
+ const internalLinksScore = countQuality(constants_1.IDEAL_INTERNAL_LINKS_COUNT, internalLinksCount);
103
+ const citationScore = countQuality(constants_1.IDEAL_CITATIONS_COUNT, citationCount);
104
+ const mediaScore = countQuality(constants_1.IDEAL_MEDIA_COUNT, mediaCount);
105
+ const tagsScore = countQuality(constants_1.IDEAL_TAGS_COUNT, tagsCount);
106
+ const summaryScore = countQuality(constants_1.IDEAL_SUMMARY_LENGTH, summaryWordCount);
107
+ const socialsScore = countQuality(constants_1.IDEAL_SOCIAL_MEDIA_COUNT, socialsCount);
108
+ const sumOfWeights = constants_1.CONTENT_SCORE_WEIGHT +
109
+ constants_1.INTERNAL_LINKS_SCORE_WEIGHT +
110
+ constants_1.CITATIONS_SCORE_WEIGHT +
111
+ constants_1.MEDIA_SCORE_WEIGHT +
112
+ constants_1.TAGS_SCORE_WEIGHT +
113
+ constants_1.SUMMARY_SCORE_WEIGHT +
114
+ constants_1.SOCIAL_SCORE_WEIGHT;
115
+ const score = (contentScore * constants_1.CONTENT_SCORE_WEIGHT +
116
+ internalLinksScore * constants_1.INTERNAL_LINKS_SCORE_WEIGHT +
117
+ citationScore * constants_1.CITATIONS_SCORE_WEIGHT +
118
+ mediaScore * constants_1.MEDIA_SCORE_WEIGHT +
119
+ tagsScore * constants_1.TAGS_SCORE_WEIGHT +
120
+ summaryScore * constants_1.SUMMARY_SCORE_WEIGHT +
121
+ socialsScore * constants_1.SOCIAL_SCORE_WEIGHT) /
137
122
  sumOfWeights;
138
123
  const percentScore = Math.floor(score * 100);
139
124
  return percentScore;
140
125
  };
141
126
  exports.calculateWikiScore = calculateWikiScore;
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lraVNjb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93aWtpU2NvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0NBSXVCO0FBRXZCLE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBQ2xDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBQ3BDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDO0FBRXRDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0sMkJBQTJCLEdBQUcsR0FBRyxDQUFDO0FBQ3hDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0FBQ25DLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDO0FBQzlCLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBRWhDLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxDQUFDO0FBQ3RDLE1BQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBRW5DLE1BQU0sY0FBYyxHQUFHLENBQUMsU0FBaUIsRUFBVSxFQUFFO0lBQ3BELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUNyQixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFFckIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBRWQsSUFBSSxTQUFTLEdBQUcsc0JBQXNCLEVBQUU7UUFDdkMsT0FBTyxRQUFRLENBQUM7S0FDaEI7SUFFRCxJQUNDLFNBQVMsSUFBSSxzQkFBc0I7UUFDbkMsU0FBUyxJQUFJLHVCQUF1QixFQUNuQztRQUNELEtBQUssR0FBRyxTQUFTLEdBQUcsdUJBQXVCLENBQUM7UUFDNUMsS0FBSyxJQUFJLEdBQUcsQ0FBQztLQUNiO0lBRUQsSUFDQyxTQUFTLEdBQUcsdUJBQXVCO1FBQ25DLFNBQVMsR0FBRyx3QkFBd0IsRUFDbkM7UUFDRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFDdEIsTUFBTSxrQkFBa0IsR0FBRyxTQUFTLEdBQUcsdUJBQXVCLENBQUM7UUFDL0QsTUFBTSxnQkFBZ0IsR0FDckIsa0JBQWtCLEdBQUcsQ0FBQyx3QkFBd0IsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDckQsS0FBSyxHQUFHLFNBQVMsR0FBRyxVQUFVLENBQUM7S0FDL0I7SUFFRCxJQUFJLFNBQVMsSUFBSSx3QkFBd0IsRUFBRTtRQUMxQyxPQUFPLFFBQVEsQ0FBQztLQUNoQjtJQUVELElBQUksS0FBSyxHQUFHLFFBQVEsRUFBRTtRQUNyQixPQUFPLFFBQVEsQ0FBQztLQUNoQjtJQUVELElBQUksS0FBSyxHQUFHLFFBQVEsRUFBRTtRQUNyQixPQUFPLFFBQVEsQ0FBQztLQUNoQjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFNBQWlCLEVBQVUsRUFBRTtJQUN0RSxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFDckIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBRXJCLE1BQU0sS0FBSyxHQUFHLFNBQVMsR0FBRyxVQUFVLENBQUM7SUFFckMsSUFBSSxLQUFLLEdBQUcsUUFBUSxFQUFFO1FBQ3JCLE9BQU8sUUFBUSxDQUFDO0tBQ2hCO0lBRUQsSUFBSSxLQUFLLEdBQUcsUUFBUSxFQUFFO1FBQ3JCLE9BQU8sUUFBUSxDQUFDO0tBQ2hCO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDNUMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQy9ELE9BQU8sT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUFlLEVBQVUsRUFBRTtJQUN4RCxNQUFNLGlCQUFpQixHQUFHLHFCQUFxQixDQUFDO0lBQ2hELElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLElBQUksS0FBSyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU1QyxPQUFPLEtBQUssS0FBSyxJQUFJLEVBQUU7UUFDdEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoQyxNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQyxJQUNDLFFBQVEsS0FBSyxnQkFBZ0I7Z0JBQzdCLFFBQVEsS0FBSyxTQUFTO2lCQUN0QixRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUEsRUFDcEM7Z0JBQ0Qsa0JBQWtCLEVBQUUsQ0FBQzthQUNyQjtTQUNEO1FBQ0QsS0FBSyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHVCQUF1QjtLQUNoRTtJQUVELE9BQU8sa0JBQWtCLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQVUsRUFBRSxFQUFFOztJQUMzQyxNQUFNLGlCQUFpQixHQUFHLE1BQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzNDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLG9CQUFhLENBQUMsVUFBVSxDQUN4QywwQ0FBRSxLQUFLLENBQUM7SUFFVCxJQUNDLGlCQUFpQixLQUFLLFNBQVM7UUFDL0IsQ0FBQSxpQkFBaUIsYUFBakIsaUJBQWlCLHVCQUFqQixpQkFBaUIsQ0FBRSxJQUFJLEdBQUcsTUFBTSxNQUFLLENBQUMsRUFDckM7UUFDRCxPQUFPLENBQUMsQ0FBQztLQUNUO0lBRUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXJELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQztBQUM5QixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxDQUFDLElBQVUsRUFBVSxFQUFFO0lBQzlDLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNyQixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDakMsSUFBSSw4QkFBdUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQW1CLENBQUMsRUFBRTtZQUMvRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2YsWUFBWSxJQUFJLENBQUMsQ0FBQzthQUNsQjtTQUNEO0tBQ0Q7SUFDRCxPQUFPLFlBQVksQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFSyxNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBVSxFQUFVLEVBQUU7O0lBQ3hELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxNQUFNLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RCxNQUFNLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRCxNQUFNLFVBQVUsR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsTUFBTSxLQUFJLENBQUMsQ0FBQztJQUMzQyxNQUFNLFNBQVMsR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsTUFBTSxLQUFJLENBQUMsQ0FBQztJQUN6QyxNQUFNLGdCQUFnQixHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxNQUFNLEtBQUksQ0FBQyxDQUFDO0lBQ25ELE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUzQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQ3RDLDBCQUEwQixFQUMxQixrQkFBa0IsQ0FDbEIsQ0FBQztJQUNGLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN6RSxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDL0QsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyx3QkFBd0IsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUUxRSxNQUFNLFlBQVksR0FDakIsb0JBQW9CO1FBQ3BCLDJCQUEyQjtRQUMzQixzQkFBc0I7UUFDdEIsa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQUNqQixvQkFBb0I7UUFDcEIsbUJBQW1CLENBQUM7SUFFckIsTUFBTSxLQUFLLEdBQ1YsQ0FBQyxZQUFZLEdBQUcsb0JBQW9CO1FBQ25DLGtCQUFrQixHQUFHLDJCQUEyQjtRQUNoRCxhQUFhLEdBQUcsc0JBQXNCO1FBQ3RDLFVBQVUsR0FBRyxrQkFBa0I7UUFDL0IsU0FBUyxHQUFHLGlCQUFpQjtRQUM3QixZQUFZLEdBQUcsb0JBQW9CO1FBQ25DLFlBQVksR0FBRyxtQkFBbUIsQ0FBQztRQUNwQyxZQUFZLENBQUM7SUFFZCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM3QyxPQUFPLFlBQVksQ0FBQztBQUNyQixDQUFDLENBQUM7QUF6Q1csUUFBQSxrQkFBa0Isc0JBeUM3QiJ9
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lraVNjb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93aWtpU2NvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBaUIyQjtBQUMzQix1REFJK0I7QUFFL0IsTUFBTSxjQUFjLEdBQUcsQ0FBQyxTQUFpQixFQUFVLEVBQUU7SUFDcEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3JCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUVyQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFZCxJQUFJLFNBQVMsR0FBRyxrQ0FBc0IsRUFBRTtRQUN2QyxPQUFPLFFBQVEsQ0FBQztLQUNoQjtJQUVELElBQ0MsU0FBUyxJQUFJLGtDQUFzQjtRQUNuQyxTQUFTLElBQUksbUNBQXVCLEVBQ25DO1FBQ0QsS0FBSyxHQUFHLFNBQVMsR0FBRyxtQ0FBdUIsQ0FBQztRQUM1QyxLQUFLLElBQUksR0FBRyxDQUFDO0tBQ2I7SUFFRCxJQUNDLFNBQVMsR0FBRyxtQ0FBdUI7UUFDbkMsU0FBUyxHQUFHLG9DQUF3QixFQUNuQztRQUNELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUN0QixNQUFNLGtCQUFrQixHQUFHLFNBQVMsR0FBRyxtQ0FBdUIsQ0FBQztRQUMvRCxNQUFNLGdCQUFnQixHQUNyQixrQkFBa0IsR0FBRyxDQUFDLG9DQUF3QixHQUFHLG1DQUF1QixDQUFDLENBQUM7UUFDM0UsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNyRCxLQUFLLEdBQUcsU0FBUyxHQUFHLFVBQVUsQ0FBQztLQUMvQjtJQUVELElBQUksU0FBUyxJQUFJLG9DQUF3QixFQUFFO1FBQzFDLE9BQU8sUUFBUSxDQUFDO0tBQ2hCO0lBRUQsSUFBSSxLQUFLLEdBQUcsUUFBUSxFQUFFO1FBQ3JCLE9BQU8sUUFBUSxDQUFDO0tBQ2hCO0lBRUQsSUFB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