only_ever_generator 1.0.2 → 1.0.4

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 (168) hide show
  1. package/dist/bootstrap/app.d.ts +92 -0
  2. package/dist/bootstrap/app.d.ts.map +1 -0
  3. package/dist/bootstrap/app.js +120 -84
  4. package/dist/bootstrap/app.js.map +1 -0
  5. package/dist/card_gen/generate_cards.d.ts +7 -0
  6. package/dist/card_gen/generate_cards.d.ts.map +1 -0
  7. package/dist/card_gen/generate_cards.js +60 -0
  8. package/dist/card_gen/generate_cards.js.map +1 -0
  9. package/dist/config.d.ts +8 -0
  10. package/dist/config.d.ts.map +1 -0
  11. package/dist/config.js +4 -1
  12. package/dist/config.js.map +1 -0
  13. package/dist/constants/api_constants.d.ts +3 -0
  14. package/dist/constants/api_constants.d.ts.map +1 -0
  15. package/dist/constants/api_constants.js +11 -0
  16. package/dist/constants/api_constants.js.map +1 -0
  17. package/dist/constants/prompt_data.d.ts +5 -0
  18. package/dist/constants/prompt_data.d.ts.map +1 -0
  19. package/dist/constants/prompt_data.js +303 -0
  20. package/dist/constants/prompt_data.js.map +1 -0
  21. package/dist/constants/prompts/card_gen_prompt.d.ts +2 -0
  22. package/dist/constants/prompts/card_gen_prompt.d.ts.map +1 -0
  23. package/dist/constants/prompts/card_gen_prompt.js +100 -203
  24. package/dist/constants/prompts/card_gen_prompt.js.map +1 -0
  25. package/dist/constants/prompts/typology_prompt.d.ts +2 -0
  26. package/dist/constants/prompts/typology_prompt.d.ts.map +1 -0
  27. package/dist/constants/prompts/typology_prompt.js +78 -34
  28. package/dist/constants/prompts/typology_prompt.js.map +1 -0
  29. package/dist/constants/source_data.d.ts +173 -0
  30. package/dist/constants/source_data.d.ts.map +1 -0
  31. package/dist/constants/source_data.js +962 -10
  32. package/dist/constants/source_data.js.map +1 -0
  33. package/dist/embedding_generation/consolidation/global_consolidation.d.ts +34 -0
  34. package/dist/embedding_generation/consolidation/global_consolidation.d.ts.map +1 -0
  35. package/dist/embedding_generation/consolidation/global_consolidation.js +77 -0
  36. package/dist/embedding_generation/consolidation/global_consolidation.js.map +1 -0
  37. package/dist/embedding_generation/consolidation/local_consolidation.d.ts +39 -0
  38. package/dist/embedding_generation/consolidation/local_consolidation.d.ts.map +1 -0
  39. package/dist/embedding_generation/consolidation/local_consolidation.js +105 -0
  40. package/dist/embedding_generation/consolidation/local_consolidation.js.map +1 -0
  41. package/dist/embedding_generation/consolidation/write_consolidated_data.d.ts +46 -0
  42. package/dist/embedding_generation/consolidation/write_consolidated_data.d.ts.map +1 -0
  43. package/dist/embedding_generation/consolidation/write_consolidated_data.js +69 -0
  44. package/dist/embedding_generation/consolidation/write_consolidated_data.js.map +1 -0
  45. package/dist/embedding_generation/generate_embeddings.d.ts +28 -0
  46. package/dist/embedding_generation/generate_embeddings.d.ts.map +1 -0
  47. package/dist/embedding_generation/generate_embeddings.js +54 -0
  48. package/dist/embedding_generation/generate_embeddings.js.map +1 -0
  49. package/dist/embedding_generation/parse_embedding_response.d.ts +26 -0
  50. package/dist/embedding_generation/parse_embedding_response.d.ts.map +1 -0
  51. package/dist/embedding_generation/parse_embedding_response.js +29 -0
  52. package/dist/embedding_generation/parse_embedding_response.js.map +1 -0
  53. package/dist/gap_fill/calculate_gap_fill.d.ts +5 -0
  54. package/dist/gap_fill/calculate_gap_fill.d.ts.map +1 -0
  55. package/dist/gap_fill/calculate_gap_fill.js +43 -0
  56. package/dist/gap_fill/calculate_gap_fill.js.map +1 -0
  57. package/dist/helper/qdrant_db_methods.d.ts +40 -0
  58. package/dist/helper/qdrant_db_methods.d.ts.map +1 -0
  59. package/dist/helper/qdrant_db_methods.js +63 -0
  60. package/dist/helper/qdrant_db_methods.js.map +1 -0
  61. package/dist/index.d.ts +3 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +86 -140
  64. package/dist/index.js.map +1 -0
  65. package/dist/logger.d.ts +6 -0
  66. package/dist/logger.d.ts.map +1 -0
  67. package/dist/logger.js +42 -0
  68. package/dist/logger.js.map +1 -0
  69. package/dist/parse/parse_card/parse_cloze_card.d.ts +10 -0
  70. package/dist/parse/parse_card/parse_cloze_card.d.ts.map +1 -0
  71. package/dist/parse/parse_card/parse_cloze_card.js +126 -0
  72. package/dist/parse/parse_card/parse_cloze_card.js.map +1 -0
  73. package/dist/parse/parse_card/parse_flash_cards.d.ts +19 -0
  74. package/dist/parse/parse_card/parse_flash_cards.d.ts.map +1 -0
  75. package/dist/parse/parse_card/parse_flash_cards.js +34 -0
  76. package/dist/parse/parse_card/parse_flash_cards.js.map +1 -0
  77. package/dist/parse/parse_card/parse_match_card.d.ts +16 -0
  78. package/dist/parse/parse_card/parse_match_card.d.ts.map +1 -0
  79. package/dist/parse/parse_card/parse_match_card.js +82 -0
  80. package/dist/parse/parse_card/parse_match_card.js.map +1 -0
  81. package/dist/parse/parse_card/parse_mcq_card.d.ts +24 -0
  82. package/dist/parse/parse_card/parse_mcq_card.d.ts.map +1 -0
  83. package/dist/parse/parse_card/parse_mcq_card.js +104 -0
  84. package/dist/parse/parse_card/parse_mcq_card.js.map +1 -0
  85. package/dist/parse/parse_card_response.d.ts +19 -0
  86. package/dist/parse/parse_card_response.d.ts.map +1 -0
  87. package/dist/parse/parse_card_response.js +100 -0
  88. package/dist/parse/parse_card_response.js.map +1 -0
  89. package/dist/parse/parse_source_content.d.ts +25 -0
  90. package/dist/parse/parse_source_content.d.ts.map +1 -0
  91. package/dist/parse/parse_source_content.js +186 -0
  92. package/dist/parse/parse_source_content.js.map +1 -0
  93. package/dist/parse/response_format_card.d.ts +177 -0
  94. package/dist/parse/response_format_card.d.ts.map +1 -0
  95. package/dist/parse/response_format_card.js +372 -0
  96. package/dist/parse/response_format_card.js.map +1 -0
  97. package/dist/parse/response_format_typology.d.ts +2 -0
  98. package/dist/parse/response_format_typology.d.ts.map +1 -0
  99. package/dist/{parse_response → parse}/response_format_typology.js +18 -18
  100. package/dist/parse/response_format_typology.js.map +1 -0
  101. package/dist/services/open_ai_service.d.ts +16 -0
  102. package/dist/services/open_ai_service.d.ts.map +1 -0
  103. package/dist/services/open_ai_service.js +92 -0
  104. package/dist/services/open_ai_service.js.map +1 -0
  105. package/dist/services/qdrant_service.d.ts +4 -0
  106. package/dist/services/qdrant_service.d.ts.map +1 -0
  107. package/dist/services/qdrant_service.js +14 -0
  108. package/dist/services/qdrant_service.js.map +1 -0
  109. package/dist/typology-parsed-response.d.ts +62 -0
  110. package/dist/typology-parsed-response.d.ts.map +1 -0
  111. package/dist/typology-parsed-response.js +1936 -0
  112. package/dist/typology-parsed-response.js.map +1 -0
  113. package/dist/typology_gen/generate_typology.d.ts +29 -0
  114. package/dist/typology_gen/generate_typology.d.ts.map +1 -0
  115. package/dist/typology_gen/generate_typology.js +92 -15
  116. package/dist/typology_gen/generate_typology.js.map +1 -0
  117. package/dist/utils/generate_args.d.ts +8 -0
  118. package/dist/utils/generate_args.d.ts.map +1 -0
  119. package/dist/utils/generate_args.js +28 -0
  120. package/dist/utils/generate_args.js.map +1 -0
  121. package/dist/utils/parse_openai_response.d.ts +11 -0
  122. package/dist/utils/parse_openai_response.d.ts.map +1 -0
  123. package/dist/utils/parse_openai_response.js +11 -10
  124. package/dist/utils/parse_openai_response.js.map +1 -0
  125. package/package.json +19 -7
  126. package/prompts.json +23 -0
  127. package/readme.md +16 -13
  128. package/src/bootstrap/app.ts +167 -107
  129. package/src/card_gen/generate_cards.ts +58 -0
  130. package/src/config.ts +5 -3
  131. package/src/constants/api_constants.ts +7 -0
  132. package/src/constants/prompt_data.ts +301 -0
  133. package/src/constants/prompts/card_gen_prompt.ts +101 -208
  134. package/src/constants/prompts/typology_prompt.ts +81 -33
  135. package/src/constants/source_data.ts +1029 -23
  136. package/src/embedding_generation/consolidation/global_consolidation.ts +96 -0
  137. package/src/embedding_generation/consolidation/local_consolidation.ts +141 -0
  138. package/src/embedding_generation/consolidation/write_consolidated_data.ts +98 -0
  139. package/src/embedding_generation/generate_embeddings.ts +41 -0
  140. package/src/embedding_generation/parse_embedding_response.ts +31 -0
  141. package/src/gap_fill/calculate_gap_fill.ts +50 -0
  142. package/src/helper/qdrant_db_methods.ts +77 -0
  143. package/src/index.ts +98 -164
  144. package/src/logger.ts +30 -0
  145. package/src/parse/parse_card/parse_cloze_card.ts +136 -0
  146. package/src/parse/parse_card/parse_flash_cards.ts +33 -0
  147. package/src/parse/parse_card/parse_match_card.ts +94 -0
  148. package/src/parse/parse_card/parse_mcq_card.ts +105 -0
  149. package/src/parse/parse_card_response.ts +117 -0
  150. package/src/parse/parse_source_content.ts +202 -0
  151. package/src/parse/response_format_card.ts +386 -0
  152. package/src/parse/response_format_typology.ts +44 -0
  153. package/src/services/open_ai_service.ts +88 -0
  154. package/src/services/qdrant_service.ts +10 -0
  155. package/src/typology-parsed-response.ts +1932 -0
  156. package/src/typology_gen/generate_typology.ts +101 -12
  157. package/src/utils/generate_args.ts +29 -0
  158. package/src/utils/parse_openai_response.ts +17 -19
  159. package/tsconfig.json +8 -3
  160. package/dist/class/parse/parse_source_content.js +0 -62
  161. package/dist/class/services/open_ai_service.js +0 -25
  162. package/dist/parse_response/response_format_card.js +0 -210
  163. package/dist/service/open_ai_request.js +0 -58
  164. package/src/class/parse/parse_source_content.ts +0 -71
  165. package/src/class/services/open_ai_service.ts +0 -18
  166. package/src/parse_response/response_format_card.ts +0 -211
  167. package/src/parse_response/response_format_typology.ts +0 -44
  168. package/src/service/open_ai_request.ts +0 -46
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseFlashCard = void 0;
4
+ class ParseFlashCard {
5
+ parse(data) {
6
+ try {
7
+ let displayTitle = this.generateFlashCardDisplayTitle(data.card_content.front, data.card_content.back);
8
+ let flashCardData = {
9
+ type: {
10
+ category: "learning",
11
+ sub_type: data.type,
12
+ },
13
+ heading: "",
14
+ displayTitle: displayTitle,
15
+ content: {
16
+ front_content: data.card_content.front,
17
+ back_content: data.card_content.back,
18
+ },
19
+ concepts: data.concepts,
20
+ explanation: data.card_content.explanation,
21
+ facts: data.facts,
22
+ };
23
+ return flashCardData;
24
+ }
25
+ catch (e) {
26
+ return null;
27
+ }
28
+ }
29
+ generateFlashCardDisplayTitle(front, back) {
30
+ return `${front} ---- ${back}`;
31
+ }
32
+ }
33
+ exports.ParseFlashCard = ParseFlashCard;
34
+ //# sourceMappingURL=parse_flash_cards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_flash_cards.js","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_flash_cards.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAc;IACzB,KAAK,CAAC,IAAS;QACb,IAAI,CAAC;YACH,IAAI,YAAY,GAAG,IAAI,CAAC,6BAA6B,CACnD,IAAI,CAAC,YAAY,CAAC,KAAK,EACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CACvB,CAAC;YACF,IAAI,aAAa,GAAG;gBAClB,IAAI,EAAE;oBACJ,QAAQ,EAAE,UAAU;oBACpB,QAAQ,EAAE,IAAI,CAAC,IAAI;iBACpB;gBACD,OAAO,EAAE,EAAE;gBACX,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE;oBACP,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;oBACtC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;iBACrC;gBACD,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW;gBAC1C,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC;YAEF,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,6BAA6B,CAAC,KAAa,EAAE,IAAY;QACvD,OAAO,GAAG,KAAK,SAAS,IAAI,EAAE,CAAC;IACjC,CAAC;CACF;AAhCD,wCAgCC"}
@@ -0,0 +1,16 @@
1
+ type InputItem = {
2
+ left_item: string;
3
+ right_item: string;
4
+ };
5
+ type OutputItem = {
6
+ left_item: string;
7
+ right_item: string[];
8
+ };
9
+ export declare class ParseMatchCard {
10
+ parse(cardData: any): any;
11
+ _generateMatchCardDisplayTitle(answers: any): string;
12
+ _parseMatchContent: (input: InputItem[]) => OutputItem[];
13
+ _validateMatch(matchCard: any): any;
14
+ }
15
+ export {};
16
+ //# sourceMappingURL=parse_match_card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_match_card.d.ts","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_match_card.ts"],"names":[],"mappings":"AAEA,KAAK,SAAS,GAAG;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,qBAAa,cAAc;IACzB,KAAK,CAAC,QAAQ,EAAE,GAAG;IA0BnB,8BAA8B,CAAC,OAAO,EAAE,GAAG;IAc3C,kBAAkB,UAAW,SAAS,EAAE,KAAG,UAAU,EAAE,CAarD;IAEF,cAAc,CAAC,SAAS,EAAE,GAAG;CAyB9B"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseMatchCard = void 0;
4
+ class ParseMatchCard {
5
+ constructor() {
6
+ this._parseMatchContent = (input) => {
7
+ const grouped = input.reduce((acc, { left_item, right_item }) => {
8
+ if (!acc[left_item]) {
9
+ acc[left_item] = { left_item, right_item: [] };
10
+ }
11
+ acc[left_item].right_item.push(right_item);
12
+ return acc;
13
+ }, {});
14
+ return Object.values(grouped);
15
+ };
16
+ }
17
+ parse(cardData) {
18
+ try {
19
+ let content = cardData.card_content;
20
+ const finalContent = this._parseMatchContent(content);
21
+ let displayTitle = this._generateMatchCardDisplayTitle(content);
22
+ let matchCard = {
23
+ type: {
24
+ category: "learning",
25
+ sub_type: cardData.type,
26
+ },
27
+ heading: "",
28
+ content: finalContent,
29
+ // content: cardData.card_content,
30
+ displayTitle: displayTitle,
31
+ concepts: cardData.concepts,
32
+ facts: cardData.facts,
33
+ explanation: cardData.card_content.explanation,
34
+ };
35
+ return this._validateMatch(matchCard);
36
+ }
37
+ catch (e) {
38
+ return null;
39
+ }
40
+ }
41
+ _generateMatchCardDisplayTitle(answers) {
42
+ let titles = [];
43
+ let counter = 65;
44
+ for (let data of answers) {
45
+ let value = data.right_item;
46
+ let leftData = data.left_item;
47
+ let letter = String.fromCharCode(counter);
48
+ titles.push(`${letter}. ${leftData} -- ${value}`);
49
+ counter++;
50
+ }
51
+ let displayTitle = titles.join(",");
52
+ return displayTitle;
53
+ }
54
+ _validateMatch(matchCard) {
55
+ let matches = matchCard.content;
56
+ let content = [];
57
+ try {
58
+ if (matches.length < 1 || matches.length > 8) {
59
+ throw Error("Invalid number of matches");
60
+ }
61
+ for (let elem of matches) {
62
+ if (elem.left_item.length <= 30 && elem.left_item.length != 0) {
63
+ if (elem.right_item.length <= 40 && elem.right_item.length != 0) {
64
+ content.push(elem);
65
+ }
66
+ }
67
+ }
68
+ if (content.length >= 2) {
69
+ matchCard.content = content;
70
+ }
71
+ else {
72
+ throw Error("Invalid content");
73
+ }
74
+ return matchCard;
75
+ }
76
+ catch (e) {
77
+ return null;
78
+ }
79
+ }
80
+ }
81
+ exports.ParseMatchCard = ParseMatchCard;
82
+ //# sourceMappingURL=parse_match_card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_match_card.js","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_match_card.ts"],"names":[],"mappings":";;;AAYA,MAAa,cAAc;IAA3B;QAyCE,uBAAkB,GAAG,CAAC,KAAkB,EAAgB,EAAE;YACxD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE;gBACjC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;gBACjD,CAAC;gBACD,GAAG,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC3C,OAAO,GAAG,CAAC;YACb,CAAC,EACD,EAAE,CACH,CAAC;YAEF,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC;IA2BJ,CAAC;IAhFC,KAAK,CAAC,QAAa;QACjB,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAEtD,IAAI,YAAY,GAAG,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,SAAS,GAAG;gBACd,IAAI,EAAE;oBACJ,QAAQ,EAAE,UAAU;oBACpB,QAAQ,EAAE,QAAQ,CAAC,IAAI;iBACxB;gBACD,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,YAAY;gBACrB,mCAAmC;gBACnC,YAAY,EAAE,YAAY;gBAC1B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,WAAW;aAC/C,CAAC;YAEF,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,8BAA8B,CAAC,OAAY;QACzC,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5B,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,QAAQ,OAAO,KAAK,EAAE,CAAC,CAAC;YAClD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,YAAY,CAAC;IACtB,CAAC;IAiBD,cAAc,CAAC,SAAc;QAC3B,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAChC,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3C,CAAC;YAED,KAAK,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBAC9D,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBAChE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAjFD,wCAiFC"}
@@ -0,0 +1,24 @@
1
+ export declare class ParseMcqCard {
2
+ parse(data: any): {
3
+ type: {
4
+ category: string;
5
+ sub_type: any;
6
+ };
7
+ heading: string;
8
+ displayTitle: string;
9
+ content: {
10
+ question: any;
11
+ answers: {
12
+ answer: any;
13
+ is_correct: any;
14
+ }[];
15
+ };
16
+ concepts: any;
17
+ facts: any;
18
+ explanation: any;
19
+ } | null;
20
+ _generateMcqCardDisplayTitle(question: string, answers: any): string;
21
+ _validate(mcqCard: any): boolean;
22
+ _checkIfAllAnswersAreWrong(answers: any[]): boolean;
23
+ }
24
+ //# sourceMappingURL=parse_mcq_card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_mcq_card.d.ts","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_mcq_card.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;IACvB,KAAK,CAAC,IAAI,EAAE,GAAG;;;;;;;;;;;;;;;;;;IA+Cf,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAqB3D,SAAS,CAAC,OAAO,EAAE,GAAG;IA2BtB,0BAA0B,CAAC,OAAO,EAAE,GAAG,EAAE;CAQ1C"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseMcqCard = void 0;
4
+ class ParseMcqCard {
5
+ parse(data) {
6
+ try {
7
+ let mcqAnswers = [];
8
+ if (data.card_content.choices !== undefined &&
9
+ data.card_content.choices.length != 0) {
10
+ for (let choice of data.card_content.choices) {
11
+ let answer = {
12
+ answer: choice.choice,
13
+ is_correct: choice.is_correct,
14
+ };
15
+ mcqAnswers.push(answer);
16
+ }
17
+ }
18
+ let displayTitle = this._generateMcqCardDisplayTitle(data.card_content.prompt, mcqAnswers);
19
+ let mcqCard = {
20
+ type: {
21
+ category: "learning",
22
+ sub_type: data.type,
23
+ },
24
+ heading: "",
25
+ displayTitle: displayTitle,
26
+ content: {
27
+ question: data.card_content.prompt,
28
+ answers: mcqAnswers,
29
+ },
30
+ concepts: data.concepts,
31
+ facts: data.facts,
32
+ explanation: data.card_content.explanation,
33
+ };
34
+ // return mcqCard;
35
+ const isValid = this._validate(mcqCard);
36
+ if (isValid == true) {
37
+ return mcqCard;
38
+ }
39
+ else {
40
+ return null;
41
+ }
42
+ }
43
+ catch (e) {
44
+ return null;
45
+ }
46
+ }
47
+ _generateMcqCardDisplayTitle(question, answers) {
48
+ let answersString = [];
49
+ if (answers.length != 0) {
50
+ for (let option of answers) {
51
+ let currentIndex = answers.indexOf(option) + 1;
52
+ let temp = `${currentIndex} . ${option.answer} `;
53
+ answersString.push(temp);
54
+ }
55
+ let resultString = answersString.join("");
56
+ let finalDisplayTitle = `${question} ---- ${resultString}`;
57
+ return finalDisplayTitle;
58
+ }
59
+ else {
60
+ return question;
61
+ }
62
+ }
63
+ /// validate mcq card
64
+ // 1. Check if atleast 1 correct answer exists
65
+ // 2. Length of answer shouldnt exceed 24 chars
66
+ // 3. Length of question shouldnt exceed 90 chars
67
+ // 4. If Any option is Empty
68
+ _validate(mcqCard) {
69
+ var _a;
70
+ try {
71
+ let isQuestionValid = mcqCard.content.question.length <= 90;
72
+ if (!isQuestionValid) {
73
+ throw new Error("Question length exceeded");
74
+ }
75
+ /// check if all are wrong answers
76
+ let exists = this._checkIfAllAnswersAreWrong(mcqCard.content.answers);
77
+ if (exists) {
78
+ }
79
+ else {
80
+ throw new Error("Every answers are wrong");
81
+ }
82
+ /// check if answers are of length <40 or is 0
83
+ let answerWhoseLengthisGreaterThan40or0 = ((_a = mcqCard.content.answers) !== null && _a !== void 0 ? _a : []).find((e) => e.answer.length == 0 || e.answer.length > 40);
84
+ if (answerWhoseLengthisGreaterThan40or0) {
85
+ throw new Error("Option has length more than 40 or is Empty");
86
+ }
87
+ return true;
88
+ }
89
+ catch (e) {
90
+ return false;
91
+ }
92
+ }
93
+ _checkIfAllAnswersAreWrong(answers) {
94
+ let rightAnswer = answers.find((e) => e.is_correct == true);
95
+ if (rightAnswer) {
96
+ return true;
97
+ }
98
+ else {
99
+ return false;
100
+ }
101
+ }
102
+ }
103
+ exports.ParseMcqCard = ParseMcqCard;
104
+ //# sourceMappingURL=parse_mcq_card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_mcq_card.js","sourceRoot":"","sources":["../../../src/parse/parse_card/parse_mcq_card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export declare class ParseCardResponse {
2
+ parse(generatedData: any, isGapFill: boolean, sourceTaxonomy: any): {
3
+ status_code: number;
4
+ metadata: any;
5
+ type: any;
6
+ cards_data: any[];
7
+ } | {
8
+ status_code: number;
9
+ metadata: any;
10
+ type: any;
11
+ cards_data?: undefined;
12
+ };
13
+ _getCardReference(generatedCardData: any, sourceTaxonomy: any): any;
14
+ _mapIdToConcepts(cardConcepts: any[], sourceConceptsFacts: any[]): {
15
+ id: any;
16
+ text: any;
17
+ }[];
18
+ }
19
+ //# sourceMappingURL=parse_card_response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_card_response.d.ts","sourceRoot":"","sources":["../../src/parse/parse_card_response.ts"],"names":[],"mappings":"AAMA,qBAAa,iBAAiB;IAC5B,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG;;;;;;;;;;;IA2EjE,iBAAiB,CAAC,iBAAiB,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG;IAiB7D,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,mBAAmB,EAAE,GAAG,EAAE;;;;CAiBjE"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseCardResponse = void 0;
4
+ const parse_cloze_card_1 = require("./parse_card/parse_cloze_card");
5
+ const parse_flash_cards_1 = require("./parse_card/parse_flash_cards");
6
+ const parse_match_card_1 = require("./parse_card/parse_match_card");
7
+ const parse_mcq_card_1 = require("./parse_card/parse_mcq_card");
8
+ class ParseCardResponse {
9
+ parse(generatedData, isGapFill, sourceTaxonomy) {
10
+ let usage_data = generatedData.metadata;
11
+ try {
12
+ const cardData = [];
13
+ const unparsedTestCards = generatedData.generated_content.test_cards;
14
+ const type = generatedData.type;
15
+ if (unparsedTestCards !== undefined && unparsedTestCards.length != 0) {
16
+ for (let elem of unparsedTestCards) {
17
+ const managedCardConcepts = this._mapIdToConcepts(elem.concepts_facts, sourceTaxonomy.concepts_facts);
18
+ elem.concepts = managedCardConcepts;
19
+ if (elem.type == "flash") {
20
+ const flashCard = new parse_flash_cards_1.ParseFlashCard().parse(elem);
21
+ if (flashCard != null && flashCard) {
22
+ flashCard.heading = this._getCardReference(flashCard, sourceTaxonomy);
23
+ cardData.push(flashCard);
24
+ }
25
+ }
26
+ else if (elem.type == "mcq") {
27
+ const mcqCard = new parse_mcq_card_1.ParseMcqCard().parse(elem);
28
+ if (mcqCard != null && mcqCard) {
29
+ mcqCard.heading = this._getCardReference(mcqCard, sourceTaxonomy);
30
+ cardData.push(mcqCard);
31
+ }
32
+ }
33
+ else if (elem.type == "cloze") {
34
+ const clozeCard = new parse_cloze_card_1.ParseClozeCard().parse(elem);
35
+ if (clozeCard && clozeCard != null) {
36
+ clozeCard.heading = this._getCardReference(clozeCard, sourceTaxonomy);
37
+ cardData.push(clozeCard);
38
+ }
39
+ }
40
+ else if (elem.type == "match") {
41
+ const matchCard = new parse_match_card_1.ParseMatchCard().parse(elem);
42
+ if (matchCard && matchCard != null) {
43
+ matchCard.heading = this._getCardReference(matchCard, sourceTaxonomy);
44
+ cardData.push(matchCard);
45
+ }
46
+ }
47
+ }
48
+ }
49
+ else {
50
+ if (!isGapFill) {
51
+ usage_data.status = "failed";
52
+ }
53
+ }
54
+ if (cardData.length == 0) {
55
+ usage_data.status = "failed";
56
+ }
57
+ return {
58
+ status_code: cardData.length == 0 ? 400 : 200,
59
+ metadata: usage_data,
60
+ type: type,
61
+ cards_data: cardData,
62
+ };
63
+ }
64
+ catch (e) {
65
+ return {
66
+ status_code: 500,
67
+ metadata: usage_data,
68
+ type: generatedData.type,
69
+ };
70
+ }
71
+ }
72
+ _getCardReference(generatedCardData, sourceTaxonomy) {
73
+ var _a, _b;
74
+ const cardConcepts = ((_a = generatedCardData.concepts) !== null && _a !== void 0 ? _a : []).map((e) => e.text);
75
+ const sourceConceptsFacts = (_b = sourceTaxonomy.concepts_facts) !== null && _b !== void 0 ? _b : [];
76
+ const firstMatchedConcept = sourceConceptsFacts.find((elem) => cardConcepts.includes(elem.text));
77
+ if (firstMatchedConcept) {
78
+ return firstMatchedConcept.reference;
79
+ }
80
+ else {
81
+ return "";
82
+ }
83
+ }
84
+ _mapIdToConcepts(cardConcepts, sourceConceptsFacts) {
85
+ // const cardData = cardC
86
+ const managedCardConcepts = [];
87
+ for (const cardConcept of cardConcepts) {
88
+ const matchedConcept = sourceConceptsFacts.find((e) => e.text.toLowerCase().trim() == cardConcept.text.toLowerCase().trim());
89
+ if (matchedConcept) {
90
+ managedCardConcepts.push({
91
+ id: matchedConcept.id,
92
+ text: matchedConcept.text,
93
+ });
94
+ }
95
+ }
96
+ return managedCardConcepts;
97
+ }
98
+ }
99
+ exports.ParseCardResponse = ParseCardResponse;
100
+ //# sourceMappingURL=parse_card_response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_card_response.js","sourceRoot":"","sources":["../../src/parse/parse_card_response.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export declare class ParseSourceContent {
2
+ content: any;
3
+ titles_to_remove: string[];
4
+ block_types_toremove: string[];
5
+ constructor(sourceContent: any);
6
+ parseData(): {
7
+ type: any;
8
+ title: any;
9
+ content: any;
10
+ headings: any;
11
+ taxonomy: any;
12
+ };
13
+ removeSectionsByTitle(data: Array<any>): any[];
14
+ sanitizeTextContent(content: String): String;
15
+ sanitizeBlocks(blocks: Array<any>): any;
16
+ parseVideoContent(data: Array<any>): any[];
17
+ isNonSpeech(content: string): boolean;
18
+ cleanTranscript(data: any): string;
19
+ collapseTimeCodes(data: Array<any>, maxDuration?: number): {
20
+ start_time: null;
21
+ end_time: null;
22
+ content: string;
23
+ }[];
24
+ }
25
+ //# sourceMappingURL=parse_source_content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_source_content.d.ts","sourceRoot":"","sources":["../../src/parse/parse_source_content.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAkB;IACtB,OAAO,EAAE,GAAG,CAAC;IAWpB,gBAAgB,WASd;IACF,oBAAoB,WAA2B;gBACnC,aAAa,EAAE,GAAG;IAI9B,SAAS;;;;;;;IAoBT,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IAqBtC,mBAAmB,CAAC,OAAO,EAAE,MAAM;IAmBnC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC;IAoBjC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IAiBlC,WAAW,CAAC,OAAO,EAAE,MAAM;IAM3B,eAAe,CAAC,IAAI,EAAE,GAAG;IAiBzB,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,SAAO;;;;;CAsDvD"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseSourceContent = void 0;
4
+ class ParseSourceContent {
5
+ constructor(sourceContent) {
6
+ /// Format of Content
7
+ // content: {
8
+ // title: source.title,
9
+ // headings: source.headings,
10
+ // content: source.content,
11
+ // fields: fields,
12
+ // taxonomy: source.source_taxonomy,
13
+ // type: source.source_type
14
+ // },
15
+ this.titles_to_remove = [
16
+ "See also",
17
+ "References",
18
+ "Further reading",
19
+ "External links",
20
+ "Notes and references",
21
+ "Bibliography",
22
+ "Notes",
23
+ "Cited sources",
24
+ ];
25
+ this.block_types_toremove = ["table", "empty_line"];
26
+ this.content = sourceContent;
27
+ }
28
+ parseData() {
29
+ let sourceType = this.content.type;
30
+ let afterSanitized;
31
+ if (sourceType == "video") {
32
+ afterSanitized = this.parseVideoContent(this.content.content);
33
+ }
34
+ else {
35
+ let dataAfterRemovingUnWantedBlocks = this.removeSectionsByTitle(this.content.content);
36
+ afterSanitized = this.sanitizeBlocks(dataAfterRemovingUnWantedBlocks);
37
+ }
38
+ return {
39
+ type: this.content.type,
40
+ title: this.content.title,
41
+ content: afterSanitized,
42
+ headings: this.content.headings,
43
+ taxonomy: this.content.taxonomy,
44
+ };
45
+ }
46
+ removeSectionsByTitle(data) {
47
+ let dataAfterRemoving = [];
48
+ for (let elem of data) {
49
+ if (elem.block_type == "heading" &&
50
+ this.titles_to_remove.includes(elem.content)) {
51
+ continue;
52
+ }
53
+ /// remove unwanted blcok types , for now `table` and `empty_line`
54
+ if (this.block_types_toremove.includes(elem.block_type)) {
55
+ continue;
56
+ }
57
+ if (elem.children) {
58
+ elem.children = this.removeSectionsByTitle(elem.children);
59
+ }
60
+ dataAfterRemoving.push(elem);
61
+ }
62
+ return dataAfterRemoving;
63
+ }
64
+ sanitizeTextContent(content) {
65
+ // Remove newline characters
66
+ content = content.replace(/\\n/g, " ");
67
+ // Remove internal link references, keeping only the link text
68
+ // Pattern explanation: [[link|text|index|wiki]] --> text
69
+ content = content.replace(/\[\[.*?\|(.*?)\|.*?\|wiki\]\]/g, "$1");
70
+ // Remove external links, keeping only the link text
71
+ // Pattern explanation: [url text] --> text
72
+ content = content.replace(/\[http[s]?:\/\/[^\s]+ ([^\]]+)\]/g, "$1");
73
+ // Remove Markdown link references, keeping only the link text
74
+ // Pattern explanation: ![link text](url) --> link text
75
+ content = content.replace(/\!\[([^\]]+)\]\([^\)]+\)/g, "$1");
76
+ return content;
77
+ }
78
+ sanitizeBlocks(blocks) {
79
+ let sanitizedBlocks = [];
80
+ blocks = blocks.filter((item) => item.block_type != "table");
81
+ blocks.forEach((block) => {
82
+ let sanitizedBlock = {};
83
+ for (let key in block) {
84
+ let value = block[key];
85
+ if (typeof value === "string") {
86
+ sanitizedBlock[key] = this.sanitizeTextContent(value);
87
+ }
88
+ else if (Array.isArray(value)) {
89
+ sanitizedBlock[key] = this.sanitizeBlocks(value);
90
+ }
91
+ else {
92
+ sanitizedBlock[key] = value;
93
+ }
94
+ }
95
+ sanitizedBlocks.push(sanitizedBlock);
96
+ });
97
+ return sanitizedBlocks;
98
+ }
99
+ parseVideoContent(data) {
100
+ let finalChapters = [];
101
+ // let cleanedData = this.cleanTranscript(timeCodes);
102
+ data.forEach((e) => {
103
+ let combinedContent = this.cleanTranscript(e);
104
+ finalChapters.push({
105
+ startTime: e.startTime,
106
+ endTime: e.endTime,
107
+ content: combinedContent,
108
+ title: e.content,
109
+ });
110
+ });
111
+ return finalChapters;
112
+ }
113
+ // remove content inside [] which denotes non-speech sounds
114
+ isNonSpeech(content) {
115
+ // Check if the content is non-speech (enclosed in square brackets).
116
+ return /^\[.*\]$/.test(content.trim());
117
+ }
118
+ // remove non-essential content
119
+ cleanTranscript(data) {
120
+ var _a;
121
+ let finalContent = "";
122
+ let children = (_a = data.children) !== null && _a !== void 0 ? _a : [];
123
+ children.forEach((e) => {
124
+ let content = (e.content || "").trim();
125
+ if (this.isNonSpeech(content))
126
+ return;
127
+ content = content.replace(/\s+/g, " ");
128
+ finalContent += content;
129
+ });
130
+ return finalContent;
131
+ }
132
+ // collapse the timecode to 30 seconds
133
+ collapseTimeCodes(data, maxDuration = 30.0) {
134
+ // Collapse time codes into buckets of approximately maxDuration seconds.
135
+ const collapsedData = [];
136
+ let bucketStartTime = null;
137
+ let bucketEndTime = null;
138
+ let bucketContent = [];
139
+ let bucketDuration = 0.0;
140
+ data.forEach((entry) => {
141
+ const startTime = entry.start_time;
142
+ const endTime = entry.end_time;
143
+ const content = entry.content;
144
+ const entryDuration = endTime - startTime;
145
+ if (bucketStartTime === null) {
146
+ // Start a new bucket
147
+ bucketStartTime = startTime;
148
+ bucketEndTime = endTime;
149
+ bucketContent.push(content);
150
+ bucketDuration = entryDuration;
151
+ }
152
+ else if (bucketDuration + entryDuration <= maxDuration) {
153
+ // Add to current bucket
154
+ bucketEndTime = endTime;
155
+ bucketContent.push(content);
156
+ bucketDuration += entryDuration;
157
+ }
158
+ else {
159
+ // Close current bucket and start a new one
160
+ const collapsedEntry = {
161
+ start_time: bucketStartTime,
162
+ end_time: bucketEndTime,
163
+ content: bucketContent.join(" "),
164
+ };
165
+ collapsedData.push(collapsedEntry);
166
+ // Start new bucket with current entry
167
+ bucketStartTime = startTime;
168
+ bucketEndTime = endTime;
169
+ bucketContent = [content];
170
+ bucketDuration = entryDuration;
171
+ }
172
+ });
173
+ // Add the last bucket if it exists
174
+ if (bucketContent.length > 0) {
175
+ const collapsedEntry = {
176
+ start_time: bucketStartTime,
177
+ end_time: bucketEndTime,
178
+ content: bucketContent.join(" "),
179
+ };
180
+ collapsedData.push(collapsedEntry);
181
+ }
182
+ return collapsedData;
183
+ }
184
+ }
185
+ exports.ParseSourceContent = ParseSourceContent;
186
+ //# sourceMappingURL=parse_source_content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_source_content.js","sourceRoot":"","sources":["../../src/parse/parse_source_content.ts"],"names":[],"mappings":"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"}