@bemoje/cli 0.1.25 → 0.1.27

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 (176) hide show
  1. package/cjs/index.d.ts +1 -25
  2. package/cjs/index.d.ts.map +1 -1
  3. package/cjs/index.js +3 -26
  4. package/cjs/index.js.map +1 -1
  5. package/cjs/lib/autostudy.d.ts +2 -0
  6. package/cjs/lib/autostudy.d.ts.map +1 -0
  7. package/cjs/lib/autostudy.js +33 -0
  8. package/cjs/lib/autostudy.js.map +1 -0
  9. package/cjs/lib/core/assertValidOptions.d.ts +3 -0
  10. package/cjs/lib/core/assertValidOptions.d.ts.map +1 -0
  11. package/cjs/lib/core/assertValidOptions.js +32 -0
  12. package/cjs/lib/core/assertValidOptions.js.map +1 -0
  13. package/cjs/lib/core/defaultParams.d.ts +4 -0
  14. package/cjs/lib/core/defaultParams.d.ts.map +1 -0
  15. package/cjs/lib/core/defaultParams.js +18 -0
  16. package/cjs/lib/core/defaultParams.js.map +1 -0
  17. package/cjs/lib/core/ensureEnglish.d.ts +3 -0
  18. package/cjs/lib/core/ensureEnglish.d.ts.map +1 -0
  19. package/cjs/lib/core/ensureEnglish.js +15 -0
  20. package/cjs/lib/core/ensureEnglish.js.map +1 -0
  21. package/cjs/lib/core/pdfParser.d.ts +2 -0
  22. package/cjs/lib/core/pdfParser.d.ts.map +1 -0
  23. package/cjs/lib/core/pdfParser.js +19 -0
  24. package/cjs/lib/core/pdfParser.js.map +1 -0
  25. package/cjs/lib/core/renderMarkdown.d.ts +3 -0
  26. package/cjs/lib/core/renderMarkdown.d.ts.map +1 -0
  27. package/cjs/lib/core/renderMarkdown.js +32 -0
  28. package/cjs/lib/core/renderMarkdown.js.map +1 -0
  29. package/cjs/lib/core/study.d.ts +7 -0
  30. package/cjs/lib/core/study.d.ts.map +1 -0
  31. package/cjs/lib/core/study.js +33 -0
  32. package/cjs/lib/core/study.js.map +1 -0
  33. package/cjs/lib/core/studySelections.d.ts +7 -0
  34. package/cjs/lib/core/studySelections.d.ts.map +1 -0
  35. package/cjs/lib/core/studySelections.js +30 -0
  36. package/cjs/lib/core/studySelections.js.map +1 -0
  37. package/cjs/lib/core/writeMarkdownFileResult.d.ts +6 -0
  38. package/cjs/lib/core/writeMarkdownFileResult.d.ts.map +1 -0
  39. package/cjs/lib/core/writeMarkdownFileResult.js +22 -0
  40. package/cjs/lib/core/writeMarkdownFileResult.js.map +1 -0
  41. package/cjs/lib/gpt/determineLanguage.d.ts +3 -0
  42. package/cjs/lib/gpt/determineLanguage.d.ts.map +1 -0
  43. package/cjs/lib/gpt/determineLanguage.js +16 -0
  44. package/cjs/lib/gpt/determineLanguage.js.map +1 -0
  45. package/cjs/lib/gpt/getAnswer.d.ts +4 -0
  46. package/cjs/lib/gpt/getAnswer.d.ts.map +1 -0
  47. package/cjs/lib/gpt/getAnswer.js +17 -0
  48. package/cjs/lib/gpt/getAnswer.js.map +1 -0
  49. package/cjs/lib/gpt/getConcepts.d.ts +4 -0
  50. package/cjs/lib/gpt/getConcepts.d.ts.map +1 -0
  51. package/cjs/lib/gpt/getConcepts.js +17 -0
  52. package/cjs/lib/gpt/getConcepts.js.map +1 -0
  53. package/cjs/lib/gpt/getSummary.d.ts +4 -0
  54. package/cjs/lib/gpt/getSummary.d.ts.map +1 -0
  55. package/cjs/lib/gpt/getSummary.js +17 -0
  56. package/cjs/lib/gpt/getSummary.js.map +1 -0
  57. package/cjs/lib/gpt/translateDaToEn.d.ts +3 -0
  58. package/cjs/lib/gpt/translateDaToEn.d.ts.map +1 -0
  59. package/cjs/lib/gpt/translateDaToEn.js +14 -0
  60. package/cjs/lib/gpt/translateDaToEn.js.map +1 -0
  61. package/cjs/lib/main.d.ts +2 -0
  62. package/cjs/lib/main.d.ts.map +1 -0
  63. package/cjs/lib/main.js +9 -0
  64. package/cjs/lib/main.js.map +1 -0
  65. package/cjs/lib/templates/getArticleConfigTemplate.d.ts +3 -0
  66. package/cjs/lib/templates/getArticleConfigTemplate.d.ts.map +1 -0
  67. package/cjs/lib/templates/getArticleConfigTemplate.js +28 -0
  68. package/cjs/lib/templates/getArticleConfigTemplate.js.map +1 -0
  69. package/cjs/lib/templates/getBookConfigTemplate.d.ts +3 -0
  70. package/cjs/lib/templates/getBookConfigTemplate.d.ts.map +1 -0
  71. package/cjs/lib/templates/getBookConfigTemplate.js +35 -0
  72. package/cjs/lib/templates/getBookConfigTemplate.js.map +1 -0
  73. package/cjs/lib/types.d.ts +37 -0
  74. package/cjs/lib/types.d.ts.map +1 -0
  75. package/cjs/{types/IConfig.js → lib/types.js} +1 -1
  76. package/cjs/lib/types.js.map +1 -0
  77. package/package.json +1 -1
  78. package/cjs/arg/ArgumentBuilder.d.ts +0 -23
  79. package/cjs/arg/ArgumentBuilder.d.ts.map +0 -1
  80. package/cjs/arg/ArgumentBuilder.js +0 -52
  81. package/cjs/arg/ArgumentBuilder.js.map +0 -1
  82. package/cjs/arg/ArgumentParserSelector.d.ts +0 -9
  83. package/cjs/arg/ArgumentParserSelector.d.ts.map +0 -1
  84. package/cjs/arg/ArgumentParserSelector.js +0 -15
  85. package/cjs/arg/ArgumentParserSelector.js.map +0 -1
  86. package/cjs/arg/ArgumentReader.d.ts +0 -15
  87. package/cjs/arg/ArgumentReader.d.ts.map +0 -1
  88. package/cjs/arg/ArgumentReader.js +0 -38
  89. package/cjs/arg/ArgumentReader.js.map +0 -1
  90. package/cjs/arg/ArgumentValidatorSelector.d.ts +0 -8
  91. package/cjs/arg/ArgumentValidatorSelector.d.ts.map +0 -1
  92. package/cjs/arg/ArgumentValidatorSelector.js +0 -16
  93. package/cjs/arg/ArgumentValidatorSelector.js.map +0 -1
  94. package/cjs/cmd/CommandBuilder.d.ts +0 -410
  95. package/cjs/cmd/CommandBuilder.d.ts.map +0 -1
  96. package/cjs/cmd/CommandBuilder.js +0 -1277
  97. package/cjs/cmd/CommandBuilder.js.map +0 -1
  98. package/cjs/cmd/CommandBuilderMetaData.d.ts +0 -26
  99. package/cjs/cmd/CommandBuilderMetaData.d.ts.map +0 -1
  100. package/cjs/cmd/CommandBuilderMetaData.js +0 -45
  101. package/cjs/cmd/CommandBuilderMetaData.js.map +0 -1
  102. package/cjs/cmd/CommandFeatureSelector.d.ts +0 -80
  103. package/cjs/cmd/CommandFeatureSelector.d.ts.map +0 -1
  104. package/cjs/cmd/CommandFeatureSelector.js +0 -114
  105. package/cjs/cmd/CommandFeatureSelector.js.map +0 -1
  106. package/cjs/cmd/DefaultHelpConfig.d.ts +0 -29
  107. package/cjs/cmd/DefaultHelpConfig.d.ts.map +0 -1
  108. package/cjs/cmd/DefaultHelpConfig.js +0 -177
  109. package/cjs/cmd/DefaultHelpConfig.js.map +0 -1
  110. package/cjs/cmd/commanderBackRefs.d.ts +0 -10
  111. package/cjs/cmd/commanderBackRefs.d.ts.map +0 -1
  112. package/cjs/cmd/commanderBackRefs.js +0 -38
  113. package/cjs/cmd/commanderBackRefs.js.map +0 -1
  114. package/cjs/core/OutputManager.d.ts +0 -64
  115. package/cjs/core/OutputManager.d.ts.map +0 -1
  116. package/cjs/core/OutputManager.js +0 -92
  117. package/cjs/core/OutputManager.js.map +0 -1
  118. package/cjs/core/ParserSelector.d.ts +0 -23
  119. package/cjs/core/ParserSelector.d.ts.map +0 -1
  120. package/cjs/core/ParserSelector.js +0 -46
  121. package/cjs/core/ParserSelector.js.map +0 -1
  122. package/cjs/core/ValidatorSelector.d.ts +0 -19
  123. package/cjs/core/ValidatorSelector.d.ts.map +0 -1
  124. package/cjs/core/ValidatorSelector.js +0 -42
  125. package/cjs/core/ValidatorSelector.js.map +0 -1
  126. package/cjs/core/splitCombinedArgvShorts.d.ts +0 -2
  127. package/cjs/core/splitCombinedArgvShorts.d.ts.map +0 -1
  128. package/cjs/core/splitCombinedArgvShorts.js +0 -15
  129. package/cjs/core/splitCombinedArgvShorts.js.map +0 -1
  130. package/cjs/db/AbstractJsonFileSection.d.ts +0 -136
  131. package/cjs/db/AbstractJsonFileSection.d.ts.map +0 -1
  132. package/cjs/db/AbstractJsonFileSection.js +0 -190
  133. package/cjs/db/AbstractJsonFileSection.js.map +0 -1
  134. package/cjs/db/AppDataSection.d.ts +0 -31
  135. package/cjs/db/AppDataSection.d.ts.map +0 -1
  136. package/cjs/db/AppDataSection.js +0 -49
  137. package/cjs/db/AppDataSection.js.map +0 -1
  138. package/cjs/db/ConfigSection.d.ts +0 -46
  139. package/cjs/db/ConfigSection.d.ts.map +0 -1
  140. package/cjs/db/ConfigSection.js +0 -71
  141. package/cjs/db/ConfigSection.js.map +0 -1
  142. package/cjs/db/JsonFile.d.ts +0 -36
  143. package/cjs/db/JsonFile.d.ts.map +0 -1
  144. package/cjs/db/JsonFile.js +0 -60
  145. package/cjs/db/JsonFile.js.map +0 -1
  146. package/cjs/db/PresetsSection.d.ts +0 -45
  147. package/cjs/db/PresetsSection.d.ts.map +0 -1
  148. package/cjs/db/PresetsSection.js +0 -82
  149. package/cjs/db/PresetsSection.js.map +0 -1
  150. package/cjs/opt/OptionArgumentParserSelector.d.ts +0 -8
  151. package/cjs/opt/OptionArgumentParserSelector.d.ts.map +0 -1
  152. package/cjs/opt/OptionArgumentParserSelector.js +0 -16
  153. package/cjs/opt/OptionArgumentParserSelector.js.map +0 -1
  154. package/cjs/opt/OptionArgumentValidatorSelector.d.ts +0 -8
  155. package/cjs/opt/OptionArgumentValidatorSelector.d.ts.map +0 -1
  156. package/cjs/opt/OptionArgumentValidatorSelector.js +0 -19
  157. package/cjs/opt/OptionArgumentValidatorSelector.js.map +0 -1
  158. package/cjs/opt/OptionBuilder.d.ts +0 -32
  159. package/cjs/opt/OptionBuilder.d.ts.map +0 -1
  160. package/cjs/opt/OptionBuilder.js +0 -97
  161. package/cjs/opt/OptionBuilder.js.map +0 -1
  162. package/cjs/opt/OptionHelpers.d.ts +0 -33
  163. package/cjs/opt/OptionHelpers.d.ts.map +0 -1
  164. package/cjs/opt/OptionHelpers.js +0 -57
  165. package/cjs/opt/OptionHelpers.js.map +0 -1
  166. package/cjs/opt/OptionReader.d.ts +0 -24
  167. package/cjs/opt/OptionReader.d.ts.map +0 -1
  168. package/cjs/opt/OptionReader.js +0 -66
  169. package/cjs/opt/OptionReader.js.map +0 -1
  170. package/cjs/types/IConfig.d.ts +0 -22
  171. package/cjs/types/IConfig.d.ts.map +0 -1
  172. package/cjs/types/IConfig.js.map +0 -1
  173. package/cjs/types/IPreset.d.ts +0 -15
  174. package/cjs/types/IPreset.d.ts.map +0 -1
  175. package/cjs/types/IPreset.js +0 -3
  176. package/cjs/types/IPreset.js.map +0 -1
package/cjs/index.d.ts CHANGED
@@ -1,26 +1,2 @@
1
- export * from './arg/ArgumentBuilder';
2
- export * from './arg/ArgumentParserSelector';
3
- export * from './arg/ArgumentReader';
4
- export * from './arg/ArgumentValidatorSelector';
5
- export * from './cmd/CommandBuilder';
6
- export * from './cmd/CommandBuilderMetaData';
7
- export * from './cmd/commanderBackRefs';
8
- export * from './cmd/CommandFeatureSelector';
9
- export * from './cmd/DefaultHelpConfig';
10
- export * from './core/OutputManager';
11
- export * from './core/ParserSelector';
12
- export * from './core/splitCombinedArgvShorts';
13
- export * from './core/ValidatorSelector';
14
- export * from './db/AbstractJsonFileSection';
15
- export * from './db/AppDataSection';
16
- export * from './db/ConfigSection';
17
- export * from './db/JsonFile';
18
- export * from './db/PresetsSection';
19
- export * from './opt/OptionArgumentParserSelector';
20
- export * from './opt/OptionArgumentValidatorSelector';
21
- export * from './opt/OptionBuilder';
22
- export * from './opt/OptionHelpers';
23
- export * from './opt/OptionReader';
24
- export * from './types/IConfig';
25
- export * from './types/IPreset';
1
+ export { main } from './lib/main';
26
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/cli/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oCAAoC,CAAA;AAClD,cAAc,uCAAuC,CAAA;AACrD,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/autostudy/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA"}
package/cjs/index.js CHANGED
@@ -1,29 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./arg/ArgumentBuilder"), exports);
5
- tslib_1.__exportStar(require("./arg/ArgumentParserSelector"), exports);
6
- tslib_1.__exportStar(require("./arg/ArgumentReader"), exports);
7
- tslib_1.__exportStar(require("./arg/ArgumentValidatorSelector"), exports);
8
- tslib_1.__exportStar(require("./cmd/CommandBuilder"), exports);
9
- tslib_1.__exportStar(require("./cmd/CommandBuilderMetaData"), exports);
10
- tslib_1.__exportStar(require("./cmd/commanderBackRefs"), exports);
11
- tslib_1.__exportStar(require("./cmd/CommandFeatureSelector"), exports);
12
- tslib_1.__exportStar(require("./cmd/DefaultHelpConfig"), exports);
13
- tslib_1.__exportStar(require("./core/OutputManager"), exports);
14
- tslib_1.__exportStar(require("./core/ParserSelector"), exports);
15
- tslib_1.__exportStar(require("./core/splitCombinedArgvShorts"), exports);
16
- tslib_1.__exportStar(require("./core/ValidatorSelector"), exports);
17
- tslib_1.__exportStar(require("./db/AbstractJsonFileSection"), exports);
18
- tslib_1.__exportStar(require("./db/AppDataSection"), exports);
19
- tslib_1.__exportStar(require("./db/ConfigSection"), exports);
20
- tslib_1.__exportStar(require("./db/JsonFile"), exports);
21
- tslib_1.__exportStar(require("./db/PresetsSection"), exports);
22
- tslib_1.__exportStar(require("./opt/OptionArgumentParserSelector"), exports);
23
- tslib_1.__exportStar(require("./opt/OptionArgumentValidatorSelector"), exports);
24
- tslib_1.__exportStar(require("./opt/OptionBuilder"), exports);
25
- tslib_1.__exportStar(require("./opt/OptionHelpers"), exports);
26
- tslib_1.__exportStar(require("./opt/OptionReader"), exports);
27
- tslib_1.__exportStar(require("./types/IConfig"), exports);
28
- tslib_1.__exportStar(require("./types/IPreset"), exports);
3
+ exports.main = void 0;
4
+ var main_1 = require("./lib/main");
5
+ Object.defineProperty(exports, "main", { enumerable: true, get: function () { return main_1.main; } });
29
6
  //# sourceMappingURL=index.js.map
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/cli/src/index.ts"],"names":[],"mappings":";;;AAAA,gEAAqC;AACrC,uEAA4C;AAC5C,+DAAoC;AACpC,0EAA+C;AAC/C,+DAAoC;AACpC,uEAA4C;AAC5C,kEAAuC;AACvC,uEAA4C;AAC5C,kEAAuC;AACvC,+DAAoC;AACpC,gEAAqC;AACrC,yEAA8C;AAC9C,mEAAwC;AACxC,uEAA4C;AAC5C,8DAAmC;AACnC,6DAAkC;AAClC,wDAA6B;AAC7B,8DAAmC;AACnC,6EAAkD;AAClD,gFAAqD;AACrD,8DAAmC;AACnC,8DAAmC;AACnC,6DAAkC;AAClC,0DAA+B;AAC/B,0DAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/autostudy/src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AAAxB,4FAAA,IAAI,OAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const autostudy: import("@bemoje/cli").CommandBuilder<unknown[], import("@commander-js/extra-typings").OptionValues>;
2
+ //# sourceMappingURL=autostudy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autostudy.d.ts","sourceRoot":"","sources":["../../../../../packages/autostudy/src/lib/autostudy.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,SAAS,qGA+BpB,CAAA"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.autostudy = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
6
+ const cli_1 = require("@bemoje/cli");
7
+ const getArticleConfigTemplate_1 = require("./templates/getArticleConfigTemplate");
8
+ const getBookConfigTemplate_1 = require("./templates/getBookConfigTemplate");
9
+ const yaml_1 = require("yaml");
10
+ const study_1 = require("./core/study");
11
+ exports.autostudy = (0, cli_1.CLI)('autostudy', (c) => {
12
+ c.version('0.0.2');
13
+ c.description(`Use ChatGPT to study a book or article.`);
14
+ c.argument('filepath', 'JSON or YAML configuration filepath.');
15
+ c.option('-t, --template [type]', 'Instead of reading at filepath, write a template/example config file to it.', (c) => {
16
+ c.choices(['book', 'article']);
17
+ });
18
+ c.option('-a, --apiKey <key>', 'OpenAI API key');
19
+ c.action(async (filepath, opts) => {
20
+ if (opts.template) {
21
+ const config = opts.template === 'book' ? (0, getBookConfigTemplate_1.getBookConfigTemplate)() : (0, getArticleConfigTemplate_1.getArticleConfigTemplate)();
22
+ const string = filepath.endsWith('json') ? JSON.stringify(config, null, 2) : (0, yaml_1.stringify)(config);
23
+ await fs_extra_1.default.writeFile(filepath, string);
24
+ }
25
+ else {
26
+ const config = (filepath.endsWith('json') ? await fs_extra_1.default.readJSON(filepath) : (0, yaml_1.parse)(await fs_extra_1.default.readFile(filepath, 'utf8')));
27
+ if (opts.apiKey)
28
+ config.apiKey = opts.apiKey;
29
+ await (0, study_1.study)(config);
30
+ }
31
+ });
32
+ });
33
+ //# sourceMappingURL=autostudy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autostudy.js","sourceRoot":"","sources":["../../../../../packages/autostudy/src/lib/autostudy.ts"],"names":[],"mappings":";;;;AAAA,gEAAyB;AACzB,qCAAiC;AACjC,mFAA+E;AAC/E,6EAAyE;AACzE,+BAAqE;AACrE,wCAAoC;AAGvB,QAAA,SAAS,GAAG,IAAA,SAAG,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;IAC9C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAA;IAExD,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,sCAAsC,CAAC,CAAA;IAE9D,CAAC,CAAC,MAAM,CACN,uBAAuB,EACvB,6EAA6E,EAC7E,CAAC,CAAC,EAAE,EAAE;QACJ,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IAChC,CAAC,CACF,CAAA;IAED,CAAC,CAAC,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAA;IAEhD,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAAwD,EAAE,EAAE;QAC5F,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAA,6CAAqB,GAAE,CAAC,CAAC,CAAC,IAAA,mDAAwB,GAAE,CAAA;YAC9F,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,gBAAa,EAAC,MAAM,CAAC,CAAA;YAClG,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;SACrC;aAAM;YACL,MAAM,MAAM,GAAG,CACb,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,YAAS,EAAC,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CACzF,CAAA;YAEjB,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAE5C,MAAM,IAAA,aAAK,EAAC,MAAM,CAAC,CAAA;SACpB;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { StudyOptions } from '../types';
2
+ export declare function assertValidOptions(opts: StudyOptions): void;
3
+ //# sourceMappingURL=assertValidOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertValidOptions.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/assertValidOptions.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,QA2BpD"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertValidOptions = void 0;
4
+ const is_1 = require("@bemoje/is");
5
+ function assertValidOptions(opts) {
6
+ const isValidType = (0, is_1.createIsAnyOf)('isValidType', ['book', 'article']);
7
+ const isGptModel = (0, is_1.createIsAnyOf)('isGptModel', ['gpt-4-0125-preview', 'gpt-3.5-turbo-0125']);
8
+ const isStringArray = (0, is_1.createTypedArrayValidator)([is_1.isString]);
9
+ const isLengthOf2 = (0, is_1.createLengthValidator)(2);
10
+ const isNonZeroPosIntArray = (0, is_1.createTypedArrayValidator)([is_1.isNonZeroPositiveInteger]);
11
+ const isValidRange = (v) => Array.isArray(v) && v[0] <= v[1];
12
+ const isPageRange = (v) => isLengthOf2(v) && isNonZeroPosIntArray(v) && isValidRange(v);
13
+ (0, is_1.ensureThat)(opts.type, isValidType);
14
+ (0, is_1.ensureThat)(opts.title, is_1.isString);
15
+ (0, is_1.ensureThat)(opts.authors, is_1.isString);
16
+ (0, is_1.ensureThat)(opts.year, is_1.isNonZeroPositiveInteger);
17
+ (0, is_1.ensureThat)(opts.subject, is_1.isString);
18
+ (0, is_1.ensureThat)(opts.filepath, is_1.isString);
19
+ (0, is_1.ensureThatDefined)(opts.gptModel, isGptModel);
20
+ (0, is_1.ensureThatDefined)(opts.outpath, is_1.isString);
21
+ (0, is_1.ensureThatDefined)(opts.apiKey, is_1.isString);
22
+ (0, is_1.ensureThatDefined)(opts.silent, is_1.isBoolean);
23
+ (0, is_1.ensureThatDefined)(opts.overwriteCache, is_1.isBoolean);
24
+ for (const sel of opts.selections) {
25
+ (0, is_1.ensureThat)(sel.title, is_1.isString);
26
+ (0, is_1.ensureThat)(sel.pages, isPageRange);
27
+ (0, is_1.ensureThat)(sel.questions, isStringArray);
28
+ (0, is_1.ensureThatDefined)(sel.no, is_1.isPositiveInteger);
29
+ }
30
+ }
31
+ exports.assertValidOptions = assertValidOptions;
32
+ //# sourceMappingURL=assertValidOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertValidOptions.js","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/assertValidOptions.ts"],"names":[],"mappings":";;;AAAA,mCAUmB;AAGnB,SAAgB,kBAAkB,CAAC,IAAkB;IACnD,MAAM,WAAW,GAAG,IAAA,kBAAa,EAAC,aAAa,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IACrE,MAAM,UAAU,GAAG,IAAA,kBAAa,EAAC,YAAY,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAA;IAC5F,MAAM,aAAa,GAAG,IAAA,8BAAyB,EAAC,CAAC,aAAQ,CAAC,CAAC,CAAA;IAC3D,MAAM,WAAW,GAAG,IAAA,0BAAqB,EAAC,CAAC,CAAC,CAAA;IAC5C,MAAM,oBAAoB,GAAG,IAAA,8BAAyB,EAAC,CAAC,6BAAwB,CAAC,CAAC,CAAA;IAClF,MAAM,YAAY,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,MAAM,WAAW,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;IAEhG,IAAA,eAAU,EAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAClC,IAAA,eAAU,EAAC,IAAI,CAAC,KAAK,EAAE,aAAQ,CAAC,CAAA;IAChC,IAAA,eAAU,EAAC,IAAI,CAAC,OAAO,EAAE,aAAQ,CAAC,CAAA;IAClC,IAAA,eAAU,EAAC,IAAI,CAAC,IAAI,EAAE,6BAAwB,CAAC,CAAA;IAC/C,IAAA,eAAU,EAAC,IAAI,CAAC,OAAO,EAAE,aAAQ,CAAC,CAAA;IAClC,IAAA,eAAU,EAAC,IAAI,CAAC,QAAQ,EAAE,aAAQ,CAAC,CAAA;IACnC,IAAA,sBAAiB,EAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC5C,IAAA,sBAAiB,EAAC,IAAI,CAAC,OAAO,EAAE,aAAQ,CAAC,CAAA;IACzC,IAAA,sBAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,aAAQ,CAAC,CAAA;IACxC,IAAA,sBAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,cAAS,CAAC,CAAA;IACzC,IAAA,sBAAiB,EAAC,IAAI,CAAC,cAAc,EAAE,cAAS,CAAC,CAAA;IAEjD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE;QACjC,IAAA,eAAU,EAAC,GAAG,CAAC,KAAK,EAAE,aAAQ,CAAC,CAAA;QAC/B,IAAA,eAAU,EAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QAClC,IAAA,eAAU,EAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACxC,IAAA,sBAAiB,EAAC,GAAG,CAAC,EAAE,EAAE,sBAAiB,CAAC,CAAA;KAC7C;AACH,CAAC;AA3BD,gDA2BC"}
@@ -0,0 +1,4 @@
1
+ import { GPTParams } from '@bemoje/openai-gpt-client';
2
+ import { StudyOptions } from '../types';
3
+ export declare function defaultParams(opts: StudyOptions): (params: GPTParams) => void;
4
+ //# sourceMappingURL=defaultParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultParams.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/defaultParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,YAC9B,SAAS,UAW1B"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultParams = void 0;
4
+ function defaultParams(opts) {
5
+ return (params) => {
6
+ params.model(opts.gptModel ?? 'gpt-3.5-turbo-0125');
7
+ params.temperature(0.5);
8
+ params.system_message([
9
+ `You are a helpful university professor. You teach a ${opts.subject} course.`,
10
+ '',
11
+ `You will help me study. Corriculum: '${opts.title}' (${opts.year}) by ${opts.authors}.`,
12
+ '',
13
+ 'You will be given a chapter from the text that we will focus on.',
14
+ ]);
15
+ };
16
+ }
17
+ exports.defaultParams = defaultParams;
18
+ //# sourceMappingURL=defaultParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultParams.js","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/defaultParams.ts"],"names":[],"mappings":";;;AAGA,SAAgB,aAAa,CAAC,IAAkB;IAC9C,OAAO,CAAC,MAAiB,EAAE,EAAE;QAC3B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,oBAAoB,CAAC,CAAA;QACnD,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACvB,MAAM,CAAC,cAAc,CAAC;YACpB,uDAAuD,IAAI,CAAC,OAAO,UAAU;YAC7E,EAAE;YACF,wCAAwC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,OAAO,GAAG;YACxF,EAAE;YACF,kEAAkE;SACnE,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC;AAZD,sCAYC"}
@@ -0,0 +1,3 @@
1
+ import GPT from '@bemoje/openai-gpt-client';
2
+ export declare function ensureEnglish(gpt: GPT, text: string): Promise<string>;
3
+ //# sourceMappingURL=ensureEnglish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureEnglish.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/ensureEnglish.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,2BAA2B,CAAA;AAI3C,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,mBAKzD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureEnglish = void 0;
4
+ const determineLanguage_1 = require("../gpt/determineLanguage");
5
+ const translateDaToEn_1 = require("../gpt/translateDaToEn");
6
+ async function ensureEnglish(gpt, text) {
7
+ const language = await (0, determineLanguage_1.determineLanguage)(gpt, text);
8
+ if (language === 'en')
9
+ return text;
10
+ if (language === 'da')
11
+ return await (0, translateDaToEn_1.translateDaToEn)(gpt, text);
12
+ throw new Error('Unsupported language: ' + language);
13
+ }
14
+ exports.ensureEnglish = ensureEnglish;
15
+ //# sourceMappingURL=ensureEnglish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureEnglish.js","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/ensureEnglish.ts"],"names":[],"mappings":";;;AACA,gEAA4D;AAC5D,4DAAwD;AAEjD,KAAK,UAAU,aAAa,CAAC,GAAQ,EAAE,IAAY;IACxD,MAAM,QAAQ,GAAG,MAAM,IAAA,qCAAiB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACnD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAClC,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,MAAM,IAAA,iCAAe,EAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC9D,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,QAAQ,CAAC,CAAA;AACtD,CAAC;AALD,sCAKC"}
@@ -0,0 +1,2 @@
1
+ export declare function pdfParser(filepath: string): Promise<(pages: [number, number]) => Promise<string>>;
2
+ //# sourceMappingURL=pdfParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdfParser.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/pdfParser.ts"],"names":[],"mappings":"AAGA,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,mBAOD,CAAC,MAAM,EAAE,MAAM,CAAC,sBAK9D"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pdfParser = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pdf_parse_1 = tslib_1.__importDefault(require("pdf-parse"));
6
+ const pdf_util_1 = require("@bemoje/pdf-util");
7
+ async function pdfParser(filepath) {
8
+ if (!/\.pdf$/i.test(filepath)) {
9
+ throw new Error('filepath must point to a PDF file.');
10
+ }
11
+ const doc = await (0, pdf_util_1.pdfReadFile)(filepath);
12
+ return async function pageRangeAsText(pages) {
13
+ const buffer = Buffer.from(await (await (0, pdf_util_1.pdfGetPages)(doc, [pages])).save());
14
+ const parsed = await (0, pdf_parse_1.default)(buffer);
15
+ return parsed.text;
16
+ };
17
+ }
18
+ exports.pdfParser = pdfParser;
19
+ //# sourceMappingURL=pdfParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdfParser.js","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/pdfParser.ts"],"names":[],"mappings":";;;;AAAA,kEAAgC;AAChC,+CAA2D;AAEpD,KAAK,UAAU,SAAS,CAAC,QAAgB;IAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;KACtD;IAED,MAAM,GAAG,GAAG,MAAM,IAAA,sBAAW,EAAC,QAAQ,CAAC,CAAA;IAEvC,OAAO,KAAK,UAAU,eAAe,CAAC,KAAuB;QAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAA,sBAAW,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1E,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAQ,EAAC,MAAM,CAAC,CAAA;QACrC,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC,CAAA;AACH,CAAC;AAZD,8BAYC"}
@@ -0,0 +1,3 @@
1
+ import { SelectionAnalysis, StudyOptions } from '../types';
2
+ export declare function renderMarkdown(opts: StudyOptions, analyses: SelectionAnalysis[]): string;
3
+ //# sourceMappingURL=renderMarkdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderMarkdown.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/renderMarkdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE1D,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UA2C/E"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderMarkdown = void 0;
4
+ function renderMarkdown(opts, analyses) {
5
+ let result = section('# ' + opts.title, //
6
+ 'type: ' + opts.type, 'year: ' + opts.year, 'authors: ' + opts.authors, 'subject: ' + opts.subject);
7
+ result += analyses
8
+ .map((analysis) => {
9
+ return [
10
+ section(`## ${analysis.no ? analysis.no + '.' : ''} ${analysis.title}`, `Pages: ${analysis.pages[0]}-${analysis.pages[1]} (of pdf)`),
11
+ section('### Summary', //
12
+ analysis.summary),
13
+ section('### Concepts', ...analysis.concepts.map((concept) => {
14
+ return `**${concept.concept}**: ${concept.elaborated}\n`;
15
+ })),
16
+ section('### Questions', ...analysis.questions.map((q) => {
17
+ return section(`#### ${q.question}`, q.answer //
18
+ );
19
+ })),
20
+ ].join('\n');
21
+ })
22
+ .join('\n');
23
+ return maxTwoConsecutiveEmptyLines(result);
24
+ }
25
+ exports.renderMarkdown = renderMarkdown;
26
+ function section(header, ...body) {
27
+ return ['', '', header, ...body.flat(), ''].join('\n');
28
+ }
29
+ function maxTwoConsecutiveEmptyLines(string) {
30
+ return string.replace(/(\r?\n){4,}/g, '\n\n\n').trim();
31
+ }
32
+ //# sourceMappingURL=renderMarkdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderMarkdown.js","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/renderMarkdown.ts"],"names":[],"mappings":";;;AAEA,SAAgB,cAAc,CAAC,IAAkB,EAAE,QAA6B;IAC9E,IAAI,MAAM,GAAG,OAAO,CAClB,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE;IACrB,QAAQ,GAAG,IAAI,CAAC,IAAI,EACpB,QAAQ,GAAG,IAAI,CAAC,IAAI,EACpB,WAAW,GAAG,IAAI,CAAC,OAAO,EAC1B,WAAW,GAAG,IAAI,CAAC,OAAO,CAC3B,CAAA;IAED,MAAM,IAAI,QAAQ;SACf,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAChB,OAAO;YACL,OAAO,CACL,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,EAC9D,UAAU,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAC5D;YAED,OAAO,CACL,aAAa,EAAE,EAAE;YACjB,QAAQ,CAAC,OAAO,CACjB;YAED,OAAO,CACL,cAAc,EACd,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACnC,OAAO,KAAK,OAAO,CAAC,OAAO,OAAO,OAAO,CAAC,UAAU,IAAI,CAAA;YAC1D,CAAC,CAAC,CACH;YAED,OAAO,CACL,eAAe,EACf,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC9B,OAAO,OAAO,CACZ,QAAQ,CAAC,CAAC,QAAQ,EAAE,EACpB,CAAC,CAAC,MAAM,CAAC,EAAE;iBACZ,CAAA;YACH,CAAC,CAAC,CACH;SACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACd,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAA;AAC5C,CAAC;AA3CD,wCA2CC;AAED,SAAS,OAAO,CAAC,MAAc,EAAE,GAAG,IAA2B;IAC7D,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAc;IACjD,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;AACxD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { SelectionAnalysis, StudyOptions } from '../types';
2
+ import 'dotenv/config';
3
+ /**
4
+ * @param options - options or filepath to json file with options
5
+ */
6
+ export declare function study(opts: StudyOptions): Promise<SelectionAnalysis[]>;
7
+ //# sourceMappingURL=study.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"study.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/study.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAG1D,OAAO,eAAe,CAAA;AAEtB;;GAEG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAqB5E"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.study = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const cloneDeep_1 = tslib_1.__importDefault(require("lodash/cloneDeep"));
6
+ const openai_gpt_client_1 = tslib_1.__importDefault(require("@bemoje/openai-gpt-client"));
7
+ const api_util_1 = require("@bemoje/api-util");
8
+ const assertValidOptions_1 = require("./assertValidOptions");
9
+ const studySelections_1 = require("./studySelections");
10
+ const writeMarkdownFileResult_1 = require("./writeMarkdownFileResult");
11
+ require("dotenv/config");
12
+ /**
13
+ * @param options - options or filepath to json file with options
14
+ */
15
+ async function study(opts) {
16
+ opts = (0, cloneDeep_1.default)(opts);
17
+ (0, assertValidOptions_1.assertValidOptions)(opts);
18
+ const openai = opts?.apiKey ? { openai: { apiKey: opts.apiKey } } : {};
19
+ const gpt = new openai_gpt_client_1.default(openai);
20
+ gpt.useCache(new api_util_1.ApiReponseCache({ name: 'openai-api' }));
21
+ const usage = { n: 0, prompt: 0, completion: 0 };
22
+ gpt.emitter.on('finalUsage', (u) => {
23
+ usage.n++;
24
+ usage.prompt += u.prompt_tokens;
25
+ usage.completion += u.completion_tokens;
26
+ console.log({ total_tokens: usage });
27
+ });
28
+ const analyses = await (0, studySelections_1.studySelections)(opts, gpt);
29
+ await (0, writeMarkdownFileResult_1.writeMarkdownFileResult)(opts, analyses);
30
+ return analyses;
31
+ }
32
+ exports.study = study;
33
+ //# sourceMappingURL=study.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"study.js","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/study.ts"],"names":[],"mappings":";;;;AAAA,yEAAwC;AACxC,0FAA2C;AAC3C,+CAAkD;AAClD,6DAAyD;AAIzD,uDAAmD;AACnD,uEAAmE;AACnE,yBAAsB;AAEtB;;GAEG;AACI,KAAK,UAAU,KAAK,CAAC,IAAkB;IAC5C,IAAI,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAA;IACtB,IAAA,uCAAkB,EAAC,IAAI,CAAC,CAAA;IACxB,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEtE,MAAM,GAAG,GAAG,IAAI,2BAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,GAAG,CAAC,QAAQ,CAAC,IAAI,0BAAe,CAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;IAEzE,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;IAChD,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAkB,EAAE,EAAE;QAClD,KAAK,CAAC,CAAC,EAAE,CAAA;QACT,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,aAAa,CAAA;QAC/B,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,iBAAiB,CAAA;QACvC,OAAO,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAe,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAEjD,MAAM,IAAA,iDAAuB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAE7C,OAAO,QAAQ,CAAA;AACjB,CAAC;AArBD,sBAqBC"}
@@ -0,0 +1,7 @@
1
+ import GPT from '@bemoje/openai-gpt-client';
2
+ import { SelectionAnalysis, StudyOptions } from '../types';
3
+ /**
4
+ *
5
+ */
6
+ export declare function studySelections(opts: StudyOptions, gpt: GPT): Promise<SelectionAnalysis[]>;
7
+ //# sourceMappingURL=studySelections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studySelections.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/studySelections.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,2BAA2B,CAAA;AAK3C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE1D;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAmBhG"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.studySelections = void 0;
4
+ const getAnswer_1 = require("../gpt/getAnswer");
5
+ const getConcepts_1 = require("../gpt/getConcepts");
6
+ const getSummary_1 = require("../gpt/getSummary");
7
+ const pdfParser_1 = require("./pdfParser");
8
+ /**
9
+ *
10
+ */
11
+ async function studySelections(opts, gpt) {
12
+ const pageRangeAsText = await (0, pdfParser_1.pdfParser)(opts.filepath);
13
+ return await Promise.all(opts.selections.map(async (selection) => {
14
+ const text = await pageRangeAsText(selection.pages);
15
+ const analysis = {};
16
+ await Promise.all([
17
+ (async () => (analysis.summary = await (0, getSummary_1.getSummary)(opts, gpt, text)))(),
18
+ (async () => (analysis.concepts = await (0, getConcepts_1.getConcepts)(opts, gpt, text)))(),
19
+ ...selection.questions.map(async (question, i) => {
20
+ const answer = await (0, getAnswer_1.getAnswer)(opts, gpt, text, question);
21
+ if (!analysis.questions)
22
+ analysis.questions = [];
23
+ analysis.questions[i] = { question, answer };
24
+ }),
25
+ ]);
26
+ return { ...selection, ...analysis };
27
+ }));
28
+ }
29
+ exports.studySelections = studySelections;
30
+ //# sourceMappingURL=studySelections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studySelections.js","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/studySelections.ts"],"names":[],"mappings":";;;AACA,gDAA4C;AAC5C,oDAAgD;AAChD,kDAA8C;AAC9C,2CAAuC;AAGvC;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,IAAkB,EAAE,GAAQ;IAChE,MAAM,eAAe,GAAG,MAAM,IAAA,qBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEtD,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACnD,MAAM,QAAQ,GAA+B,EAAE,CAAA;QAC/C,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,MAAM,IAAA,uBAAU,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;YACtE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,IAAA,yBAAW,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;YACxE,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;gBAC/C,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAS,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;gBACzD,IAAI,CAAC,QAAQ,CAAC,SAAS;oBAAE,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAA;gBAChD,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;YAC9C,CAAC,CAAC;SACH,CAAC,CAAA;QACF,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,QAAQ,EAAuB,CAAA;IAC3D,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAnBD,0CAmBC"}
@@ -0,0 +1,6 @@
1
+ import { SelectionAnalysis, StudyOptions } from '../types';
2
+ /**
3
+ *
4
+ */
5
+ export declare function writeMarkdownFileResult(opts: StudyOptions, analyses: SelectionAnalysis[]): Promise<void>;
6
+ //# sourceMappingURL=writeMarkdownFileResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeMarkdownFileResult.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/writeMarkdownFileResult.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE1D;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,iBAO9F"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.writeMarkdownFileResult = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
6
+ const path_1 = tslib_1.__importDefault(require("path"));
7
+ const renderMarkdown_1 = require("./renderMarkdown");
8
+ /**
9
+ *
10
+ */
11
+ async function writeMarkdownFileResult(opts, analyses) {
12
+ const markdown = (0, renderMarkdown_1.renderMarkdown)(opts, analyses);
13
+ const outpath = opts.outpath ?? opts.filepath.replace(/\.pdf$/i, '.md');
14
+ await fs_extra_1.default.ensureDir(path_1.default.dirname(outpath));
15
+ await fs_extra_1.default.writeFile(outpath, markdown, 'utf8');
16
+ if (!opts.silent)
17
+ console.log('\nWrote file: ' + outpath);
18
+ if (!opts.silent)
19
+ console.log();
20
+ }
21
+ exports.writeMarkdownFileResult = writeMarkdownFileResult;
22
+ //# sourceMappingURL=writeMarkdownFileResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeMarkdownFileResult.js","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/writeMarkdownFileResult.ts"],"names":[],"mappings":";;;;AAAA,gEAAyB;AACzB,wDAAuB;AACvB,qDAAiD;AAGjD;;GAEG;AACI,KAAK,UAAU,uBAAuB,CAAC,IAAkB,EAAE,QAA6B;IAC7F,MAAM,QAAQ,GAAG,IAAA,+BAAc,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IACvE,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IACzC,MAAM,kBAAE,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC7C,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,OAAO,CAAC,CAAA;IACzD,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,EAAE,CAAA;AACjC,CAAC;AAPD,0DAOC"}
@@ -0,0 +1,3 @@
1
+ import GPT from '@bemoje/openai-gpt-client';
2
+ export declare function determineLanguage(gpt: GPT, text: string): Promise<'da' | 'en'>;
3
+ //# sourceMappingURL=determineLanguage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"determineLanguage.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/gpt/determineLanguage.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,2BAA2B,CAAA;AAE3C,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAUpF"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.determineLanguage = void 0;
4
+ async function determineLanguage(gpt, text) {
5
+ const response = await gpt.chat((params) => {
6
+ params.model('gpt-3.5-turbo-0125');
7
+ params.temperature(0.3);
8
+ params.system_message('Determine whether the text is Danish or English language.');
9
+ params.json_mode(`{ language: 'da' | 'en' }`);
10
+ params.user_message(text);
11
+ });
12
+ const result = response.getParsedJsonContent();
13
+ return result.language;
14
+ }
15
+ exports.determineLanguage = determineLanguage;
16
+ //# sourceMappingURL=determineLanguage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"determineLanguage.js","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/gpt/determineLanguage.ts"],"names":[],"mappings":";;;AAEO,KAAK,UAAU,iBAAiB,CAAC,GAAQ,EAAE,IAAY;IAC5D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAClC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACvB,MAAM,CAAC,cAAc,CAAC,2DAA2D,CAAC,CAAA;QAClF,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAA;QAC7C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,EAA+B,CAAA;IAC3E,OAAO,MAAM,CAAC,QAAQ,CAAA;AACxB,CAAC;AAVD,8CAUC"}
@@ -0,0 +1,4 @@
1
+ import GPT from '@bemoje/openai-gpt-client';
2
+ import { StudyOptions } from '../types';
3
+ export declare function getAnswer(opts: StudyOptions, gpt: GPT, chapter: string, question: string): Promise<string>;
4
+ //# sourceMappingURL=getAnswer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAnswer.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/gpt/getAnswer.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,2BAA2B,CAAA;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,wBAAsB,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAS9F"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAnswer = void 0;
4
+ const defaultParams_1 = require("../core/defaultParams");
5
+ const ensureEnglish_1 = require("../core/ensureEnglish");
6
+ async function getAnswer(opts, gpt, chapter, question) {
7
+ const questionEn = await (0, ensureEnglish_1.ensureEnglish)(gpt, question);
8
+ const chatOptions = { overwriteCache: opts.overwriteCache };
9
+ const response = await gpt.chat((params) => {
10
+ params.load((0, defaultParams_1.defaultParams)(opts));
11
+ params.extend_system_message('Your task is to answer the following question about the given chapter: ', questionEn);
12
+ params.user_message(chapter);
13
+ }, chatOptions);
14
+ return response.getContent() || '';
15
+ }
16
+ exports.getAnswer = getAnswer;
17
+ //# sourceMappingURL=getAnswer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAnswer.js","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/gpt/getAnswer.ts"],"names":[],"mappings":";;;AACA,yDAAqD;AACrD,yDAAqD;AAG9C,KAAK,UAAU,SAAS,CAAC,IAAkB,EAAE,GAAQ,EAAE,OAAe,EAAE,QAAgB;IAC7F,MAAM,UAAU,GAAG,MAAM,IAAA,6BAAa,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IACrD,MAAM,WAAW,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAA;IAC3D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,CAAC,IAAI,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,qBAAqB,CAAC,yEAAyE,EAAE,UAAU,CAAC,CAAA;QACnH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC,EAAE,WAAW,CAAC,CAAA;IACf,OAAO,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,CAAA;AACpC,CAAC;AATD,8BASC"}
@@ -0,0 +1,4 @@
1
+ import GPT from '@bemoje/openai-gpt-client';
2
+ import { Concept, StudyOptions } from '../types';
3
+ export declare function getConcepts(opts: StudyOptions, gpt: GPT, text: string): Promise<Concept[]>;
4
+ //# sourceMappingURL=getConcepts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConcepts.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/gpt/getConcepts.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,2BAA2B,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGhD,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,sBAW3E"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConcepts = void 0;
4
+ const defaultParams_1 = require("../core/defaultParams");
5
+ async function getConcepts(opts, gpt, text) {
6
+ const chatOptions = { overwriteCache: opts.overwriteCache };
7
+ const response = await gpt.chat((params) => {
8
+ params.load((0, defaultParams_1.defaultParams)(opts));
9
+ params.extend_system_message('Your task is to identify and explain on the key concepts of the given chapter.');
10
+ params.json_mode('{ concepts: { concept: string, elaborated: string }[]');
11
+ params.user_message(text);
12
+ }, chatOptions);
13
+ const result = response.getParsedJsonContent();
14
+ return result.concepts;
15
+ }
16
+ exports.getConcepts = getConcepts;
17
+ //# sourceMappingURL=getConcepts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConcepts.js","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/gpt/getConcepts.ts"],"names":[],"mappings":";;;AAEA,yDAAqD;AAE9C,KAAK,UAAU,WAAW,CAAC,IAAkB,EAAE,GAAQ,EAAE,IAAY;IAC1E,MAAM,WAAW,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAA;IAC3D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,CAAC,IAAI,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,qBAAqB,CAAC,gFAAgF,CAAC,CAAA;QAC9G,MAAM,CAAC,SAAS,CAAC,uDAAuD,CAAC,CAAA;QACzE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC,EAAE,WAAW,CAAC,CAAA;IAEf,MAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,EAA6B,CAAA;IACzE,OAAO,MAAM,CAAC,QAAQ,CAAA;AACxB,CAAC;AAXD,kCAWC"}
@@ -0,0 +1,4 @@
1
+ import GPT from '@bemoje/openai-gpt-client';
2
+ import { StudyOptions } from '../types';
3
+ export declare function getSummary(opts: StudyOptions, gpt: GPT, text: string): Promise<string>;
4
+ //# sourceMappingURL=getSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSummary.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/gpt/getSummary.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,2BAA2B,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,wBAAsB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,mBAW1E"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSummary = void 0;
4
+ const defaultParams_1 = require("../core/defaultParams");
5
+ async function getSummary(opts, gpt, text) {
6
+ const chatOptions = { overwriteCache: opts.overwriteCache };
7
+ const response = await gpt.chat((params) => {
8
+ params.load((0, defaultParams_1.defaultParams)(opts));
9
+ params.extend_system_message('Your task is to summarize the given chapter.:');
10
+ params.json_mode('{ summary: string }');
11
+ params.user_message(text);
12
+ }, chatOptions);
13
+ const result = response.getParsedJsonContent();
14
+ return result.summary;
15
+ }
16
+ exports.getSummary = getSummary;
17
+ //# sourceMappingURL=getSummary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSummary.js","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/gpt/getSummary.ts"],"names":[],"mappings":";;;AACA,yDAAqD;AAG9C,KAAK,UAAU,UAAU,CAAC,IAAkB,EAAE,GAAQ,EAAE,IAAY;IACzE,MAAM,WAAW,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAA;IAC3D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,CAAC,IAAI,CAAC,IAAA,6BAAa,EAAC,IAAI,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,qBAAqB,CAAC,+CAA+C,CAAC,CAAA;QAC7E,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAA;QACvC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC,EAAE,WAAW,CAAC,CAAA;IAEf,MAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,EAAyB,CAAA;IACrE,OAAO,MAAM,CAAC,OAAO,CAAA;AACvB,CAAC;AAXD,gCAWC"}
@@ -0,0 +1,3 @@
1
+ import GPT from '@bemoje/openai-gpt-client';
2
+ export declare function translateDaToEn(gpt: GPT, text: string): Promise<string>;
3
+ //# sourceMappingURL=translateDaToEn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translateDaToEn.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/gpt/translateDaToEn.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,2BAA2B,CAAA;AAE3C,wBAAsB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,mBAQ3D"}