@everipedia/iq-utils 0.4.4 → 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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## 0.2.8
2
2
 
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - cd21c32: Update wiki to use zod
8
+
3
9
  ## 0.4.4
4
10
 
5
11
  ### 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==
@@ -1,4 +1,4 @@
1
- import { type Wiki } from "../types/wiki";
1
+ import { type Wiki } from "../schema/wiki.schema";
2
2
  /**
3
3
  * Counts the number of words in a given string.
4
4
  * @param text - The input string to count words from.
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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.
@@ -57,21 +58,23 @@ const isMediaValid = (wiki) => {
57
58
  if (!wiki.media)
58
59
  return true;
59
60
  const isMediaContentValid = wiki.media.every((media) => {
60
- if (media.source === wiki_1.MediaSource.IPFS_IMG ||
61
- 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) {
62
63
  return media.id.length === constants_1.IPFS_HASH_LENGTH;
63
64
  }
64
- if (media.source === wiki_1.MediaSource.YOUTUBE) {
65
+ if (media.source === wiki_schema_1.MediaSourceEnum.Enum.YOUTUBE) {
65
66
  const youtubePattern = /^.*(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/|watch\?v=)([^#&?]*).*/;
66
67
  return (media.id === `https://www.youtube.com/watch?v=${media.name}` &&
67
68
  youtubePattern.test(media.id));
68
69
  }
69
- if (media.source === wiki_1.MediaSource.VIMEO) {
70
+ if (media.source === wiki_schema_1.MediaSourceEnum.Enum.VIMEO) {
70
71
  return media.id === `https://vimeo.com/${media.name}`;
71
72
  }
72
- 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;
73
76
  });
74
- 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;
75
78
  return (wiki.media.length <= constants_1.MAX_MEDIA_COUNT &&
76
79
  isMediaContentValid &&
77
80
  iconMediaCount <= 1);
@@ -95,7 +98,7 @@ exports.isAnyMediaUploading = isAnyMediaUploading;
95
98
  const isEventUrlMissing = (wiki) => {
96
99
  var _a;
97
100
  if (wiki.tags.some((tag) => tag.id === "Events")) {
98
- 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) || "[]";
99
102
  const references = JSON.parse(referencesData);
100
103
  return !references.some((item) => item.description.toLowerCase() === "event link");
101
104
  }
@@ -122,7 +125,7 @@ exports.isSummaryTooLong = isSummaryTooLong;
122
125
  * @returns True if there are no citations, false otherwise.
123
126
  */
124
127
  const hasNoCitations = (wiki) => {
125
- 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);
126
129
  return !(references === null || references === void 0 ? void 0 : references.value) || references.value.length === 0;
127
130
  };
128
131
  exports.hasNoCitations = hasNoCitations;
@@ -203,4 +206,4 @@ const validateWiki = (wiki) => {
203
206
  return { isValid: true };
204
207
  };
205
208
  exports.validateWiki = validateWiki;
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tXaWtpVmFsaWRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NoZWNrV2lraVZhbGlkaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQU8yQjtBQUMzQix3Q0FRdUI7QUFFdkI7Ozs7R0FJRztBQUNJLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFEekMsUUFBQSxVQUFVLGNBQytCO0FBRXREOzs7O0dBSUc7QUFDSSxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtJQUMvQyxJQUFJO1FBQ0gsT0FBTyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUNuQztJQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ1osT0FBTyxLQUFLLENBQUM7S0FDYjtBQUNGLENBQUMsQ0FBQztBQU5XLFFBQUEsVUFBVSxjQU1yQjtBQUVGOzs7O0dBSUc7QUFDSSxNQUFNLHVCQUF1QixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7O0lBQzFELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUMzRCxPQUFPLENBQ04sTUFBQSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDN0IsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUMxQixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRS9DLElBQ0MsUUFBUTtZQUNSLE9BQU87WUFDUCwyQkFBb0Is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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) {
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lraVNjb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93aWtpU2NvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0NBSXVCO0FBRXZCLE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBQ2xDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBQ3BDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDO0FBRXRDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0sMkJBQTJCLEdBQUcsR0FBRyxDQUFDO0FBQ3hDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0FBQ25DLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDO0FBQzlCLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBRWhDLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxDQUFDO0FBQ3RDLE1BQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBRW5DLE1BQU0sY0FBYyxHQUFHLENBQUMsU0FBaUIsRUFBVSxFQUFFO0lBQ3BELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUNyQixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFFckIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBRWQsSUFBSSxTQUFTLEdBQUcsc0JBQXNCLEVBQUU7UUFDdkMsT0FBTyxRQUFRLENBQUM7S0FDaEI7SUFFRCxJQUNDLFNBQVMsSUFBSSxzQkFBc0I7UUFDbkMsU0FBUyxJQUFJLHVC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
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lraVNjb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93aWtpU2NvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBaUIyQjtBQUMzQix1REFJK0I7QUFFL0IsTUFBTSxjQUFjLEdBQUcsQ0FBQyxTQUFpQixFQUFVLEVBQUU7SUFDcEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3JCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUVyQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFZCxJQUFJLFNBQVMsR0FBRyxrQ0FBc0IsRUFBRTtRQUN2QyxPQUFPLFFBQVEsQ0FBQztLQUNoQjtJQUVELElBQ0MsU0FBUyxJQUFJLGtDQUFzQjtRQUNuQyxTQUFTLElBQUksbUNBQXVCLEVBQ25DO1FBQ0QsS0FBSyxHQUFHLFNBQVMsR0FBRyxtQ0FBdUIsQ0FBQztRQUM1QyxLQUFLLElBQUksR0FBRyxDQUFDO0tBQ2I7SUFFRCxJQUNDLFNBQVMsR0FBRyxtQ0FBdUI7UUFDbkMsU0FBUyxHQUFHLG9DQUF3QixFQUNuQztRQUNELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUN0QixNQUFNLGtCQUFrQixHQUFHLFNBQVMsR0FBRyxtQ0FBdUIsQ0FBQztRQUMvRCxNQUFNLGdCQUFnQixHQUNyQixrQkFBa0IsR0FBRyxDQUFDLG9DQUF3QixHQUFHLG1DQUF1QixDQUFDLENBQUM7UUFDM0UsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNyRCxLQUFLLEdBQUcsU0FBUyxHQUFHLFVBQVUsQ0FBQztLQUMvQjtJQUVELElBQUksU0FBUyxJQUFJLG9DQUF3QixFQUFFO1FBQzFDLE9BQU8sUUFBUSxDQUFDO0tBQ2hCO0lBRUQsSUFBSSxLQUFLLEdBQUcsUUFBUSxFQUFFO1FBQ3JCLE9BQU8sUUFBUSxDQUFDO0tBQ2hCO0lBRUQsSUFBSSxLQUFLLEdBQUcsUUFBUSxFQUFFO1FBQ3JCLE9BQU8sUUFBUSxDQUFDO0tBQ2hCO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxDQUFDLFVBQWtCLEVBQUUsU0FBaUIsRUFBVSxFQUFFO0lBQ3RFLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUNyQixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFFckIsTUFBTSxLQUFLLEdBQUcsU0FBUyxHQUFHLFVBQVUsQ0FBQztJQUVyQyxJQUFJLEtBQUssR0FBRyxRQUFRLEVBQUU7UUFDckIsT0FBTyxRQUFRLENBQUM7S0FDaEI7SUFFRCxJQUFJLEtBQUssR0FBRyxRQUFRLEVBQUU7UUFDckIsT0FBTyxRQUFRLENBQUM7S0FDaEI7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUM1QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEUsT0FBTyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUcsQ0FBQyxDQUFDLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQWUsRUFBVSxFQUFFO0lBQ3hELE1BQU0saUJBQWlCLEdBQUcscUJBQXFCLENBQUM7SUFDaEQsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7SUFDM0IsSUFBSSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTVDLE9BQU8sS0FBSyxLQUFLLElBQUksRUFBRTtRQUN0QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sUUFBUSxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLElBQ0MsUUFBUSxLQUFLLGdCQUFnQjtnQkFDN0IsUUFBUSxLQUFLLFNBQVM7aUJBQ3RCLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQSxFQUNwQztnQkFDRCxrQkFBa0IsRUFBRSxDQUFDO2FBQ3JCO1NBQ0Q7UUFDRCxLQUFLLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsdUJBQXVCO0tBQ2hFO0lBRUQsT0FBTyxrQkFBa0IsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7O0lBQzNDLE1BQU0saUJBQWlCLEdBQUcsTUFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDM0MsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssK0JBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FDakQsMENBQUUsS0FBSyxDQUFDO0lBRVQsSUFDQyxpQkFBaUIsS0FBSyxTQUFTO1FBQy9CLENBQUEsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsSUFBSSxHQUFHLE1BQU0sTUFBSyxDQUFDLEVBQ3JDO1FBQ0QsT0FBTyxDQUFDLENBQUM7S0FDVDtJQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVyRCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUM7QUFDOUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFVLEVBQVUsRUFBRTtJQUM5QyxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDckIsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQ2pDLElBQ0MscUNBQXVCLENBQUMsUUFBUSxDQUMvQixJQUFJLENBQUMsRUFBeUMsQ0FDOUMsRUFDQTtZQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDZixZQUFZLElBQUksQ0FBQyxDQUFDO2FBQ2xCO1NBQ0Q7S0FDRDtJQUNELE9BQU8sWUFBWSxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVLLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFVLEVBQVUsRUFBRTs7SUFDeEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pELE1BQU0sa0JBQWtCLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlELE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sVUFBVSxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxNQUFNLEtBQUksQ0FBQyxDQUFDO0lBQzNDLE1BQU0sU0FBUyxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxNQUFNLEtBQUksQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLE1BQU0sS0FBSSxDQUFDLENBQUM7SUFDbkQsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTNDLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FDdEMsc0NBQTBCLEVBQzFCLGtCQUFrQixDQUNsQixDQUFDO0lBQ0YsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLGlDQUFxQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyw2QkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMvRCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsNEJBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDNUQsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLGdDQUFvQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDMUUsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLG9DQUF3QixFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRTFFLE1BQU0sWUFBWSxHQUNqQixnQ0FBb0I7UUFDcEIsdUNBQTJCO1FBQzNCLGtDQUFzQjtRQUN0Qiw4QkFBa0I7UUFDbEIsNkJBQWlCO1FBQ2pCLGdDQUFvQjtRQUNwQiwrQkFBbUIsQ0FBQztJQUVyQixNQUFNLEtBQUssR0FDVixDQUFDLFlBQVksR0FBRyxnQ0FBb0I7UUFDbkMsa0JBQWtCLEdBQUcsdUNBQTJCO1FBQ2hELGFBQWEsR0FBRyxrQ0FBc0I7UUFDdEMsVUFBVSxHQUFHLDhCQUFrQjtRQUMvQixTQUFTLEdBQUcsNkJBQWlCO1FBQzdCLFlBQVksR0FBRyxnQ0FBb0I7UUFDbkMsWUFBWSxHQUFHLCtCQUFtQixDQUFDO1FBQ3BDLFlBQVksQ0FBQztJQUVkLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sWUFBWSxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQXpDVyxRQUFBLGtCQUFrQixzQkF5QzdCIn0=