@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
@@ -1,20 +1,5 @@
1
- import { CommonMetaIds, WikiPossibleSocialsList, } from "../types/wiki";
2
- const MIN_CONTENT_WORD_COUNT = 10;
3
- const GOOD_CONTENT_WORD_COUNT = 500;
4
- const IDEAL_CONTENT_WORD_COUNT = 1500;
5
- const CONTENT_SCORE_WEIGHT = 0.8;
6
- const INTERNAL_LINKS_SCORE_WEIGHT = 0.5;
7
- const CITATIONS_SCORE_WEIGHT = 0.5;
8
- const MEDIA_SCORE_WEIGHT = 0.3;
9
- const TAGS_SCORE_WEIGHT = 0.3;
10
- const SUMMARY_SCORE_WEIGHT = 0.5;
11
- const SOCIAL_SCORE_WEIGHT = 0.5;
12
- const IDEAL_INTERNAL_LINKS_COUNT = 10;
13
- const IDEAL_CITATIONS_COUNT = 10;
14
- const IDEAL_MEDIA_COUNT = 5;
15
- const IDEAL_TAGS_COUNT = 3;
16
- const IDEAL_SUMMARY_LENGTH = 100;
17
- const IDEAL_SOCIAL_MEDIA_COUNT = 4;
1
+ import { CITATIONS_SCORE_WEIGHT, CONTENT_SCORE_WEIGHT, GOOD_CONTENT_WORD_COUNT, IDEAL_CITATIONS_COUNT, IDEAL_CONTENT_WORD_COUNT, IDEAL_INTERNAL_LINKS_COUNT, IDEAL_MEDIA_COUNT, IDEAL_SOCIAL_MEDIA_COUNT, IDEAL_SUMMARY_LENGTH, IDEAL_TAGS_COUNT, INTERNAL_LINKS_SCORE_WEIGHT, MEDIA_SCORE_WEIGHT, MIN_CONTENT_WORD_COUNT, SOCIAL_SCORE_WEIGHT, SUMMARY_SCORE_WEIGHT, TAGS_SCORE_WEIGHT, } from "../data/constants";
2
+ import { CommonMetaIdsEnum, WikiPossibleSocialsList, } from "../schema/wiki.schema";
18
3
  const contentQuality = (wordCount) => {
19
4
  const scoreMin = 0.0;
20
5
  const scoreMax = 1.0;
@@ -59,7 +44,7 @@ const countQuality = (idealCount, realCount) => {
59
44
  return score;
60
45
  };
61
46
  const getHostnameFromRegex = (url) => {
62
- const matches = url.match(/^https?:\/\/([^/?#]+)(?:[/?#]|$)/i);
47
+ const matches = RegExp(/^https?:\/\/([^/?#]+)(?:[/?#]|$)/i).exec(url);
63
48
  return matches?.[1];
64
49
  };
65
50
  const getWikiInternalLinks = (content) => {
@@ -81,7 +66,7 @@ const getWikiInternalLinks = (content) => {
81
66
  return internalLinksCount;
82
67
  };
83
68
  const getWikiCitationLinks = (wiki) => {
84
- const rawWikiReferences = wiki.metadata.find((m) => m.id === CommonMetaIds.REFERENCES)?.value;
69
+ const rawWikiReferences = wiki.metadata.find((m) => m.id === CommonMetaIdsEnum.Enum.references)?.value;
85
70
  if (rawWikiReferences === undefined ||
86
71
  rawWikiReferences?.trim().length === 0) {
87
72
  return 0;
@@ -133,4 +118,4 @@ export const calculateWikiScore = (wiki) => {
133
118
  const percentScore = Math.floor(score * 100);
134
119
  return percentScore;
135
120
  };
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lraVNjb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93aWtpU2NvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLGFBQWEsRUFFYix1QkFBdUIsR0FDdkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFDbEMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFDcEMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLENBQUM7QUFFdEMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFDakMsTUFBTSwyQkFBMkIsR0FBRyxHQUFHLENBQUM7QUFDeEMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUM7QUFDbkMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFDL0IsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFDOUIsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFDakMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFFaEMsTUFBTSwwQkFBMEIsR0FBRyxFQUFFLENBQUM7QUFDdEMsTUFBTSxxQkFBcUIsR0FBRyxFQUFFLENBQUM7QUFDakMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFDNUIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFDM0IsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFDakMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLENBQUM7QUFFbkMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxTQUFpQixFQUFVLEVBQUU7SUFDcEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3JCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUVyQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFZCxJQUFJLFNBQVMsR0FBRyxzQkFBc0IsRUFBRTtRQUN2QyxPQUFPLFFBQVEsQ0FBQztLQUNoQjtJQUVELElB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
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lraVNjb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93aWtpU2NvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQiwyQkFBMkIsRUFDM0Isa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGlCQUFpQixHQUNqQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFDTixpQkFBaUIsRUFFakIsdUJBQXVCLEdBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsTUFBTSxjQUFjLEdBQUcsQ0FBQyxTQUFpQixFQUFVLEVBQUU7SUFDcEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3JCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUVyQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFZCxJQUFJLFNBQVMsR0FBRyxzQkFBc0IsRUFBRTtRQUN2QyxPQUFPLFFBQVEsQ0FBQztLQUNoQjtJQUVELElBQ0MsU0FBUyxJQUFJLHNCQUFzQjtRQUNuQyxTQUFTLElBQUksdUJBQXVCLEVBQ25DO1FBQ0QsS0FBSyxHQUFHLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQztRQUM1QyxLQUFLLElBQUksR0FBRyxDQUFDO0tBQ2I7SUFFRCxJQUNDLFNBQVMsR0FBRyx1QkFBdUI7UUFDbkMsU0FBUyxHQUFHLHdCQUF3QixFQUNuQztRQUNELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUN0QixNQUFNLGtCQUFrQixHQUFHLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQztRQUMvRCxNQUFNLGdCQUFnQixHQUNyQixrQkFBa0IsR0FB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