git-coco 0.2.0 → 0.3.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/dist/index.js CHANGED
@@ -15,11 +15,13 @@ var ora = require('ora');
15
15
  var now = require('performance-now');
16
16
  var prettyMilliseconds = require('pretty-ms');
17
17
  var document = require('langchain/document');
18
+ var hf = require('langchain/llms/hf');
18
19
  var chains = require('langchain/chains');
19
20
  var openai = require('langchain/llms/openai');
20
21
  var text_splitter = require('langchain/text_splitter');
21
22
  var diff = require('diff');
22
23
  var GPT3NodeTokenizer = require('gpt3-tokenizer');
24
+ var minimatch = require('minimatch');
23
25
  var simpleGit = require('simple-git');
24
26
 
25
27
  function _interopNamespaceDefault(e) {
@@ -62,7 +64,9 @@ function removeUndefined(obj) {
62
64
  **/
63
65
  function loadEnvConfig(config) {
64
66
  const envConfig = {
67
+ model: process.env.COCO_MODEL || undefined,
65
68
  openAIApiKey: process.env.OPENAI_API_KEY || undefined,
69
+ huggingFaceHubApiKey: process.env.HUGGINGFACE_HUB_API_KEY || undefined,
66
70
  tokenLimit: process.env.COCO_TOKEN_LIMIT
67
71
  ? parseInt(process.env.COCO_TOKEN_LIMIT)
68
72
  : undefined,
@@ -93,7 +97,9 @@ function loadGitConfig(config) {
93
97
  const gitConfigParsed = ini__namespace.parse(gitConfigRaw);
94
98
  config = {
95
99
  ...config,
100
+ model: gitConfigParsed.coco?.model || config.model,
96
101
  openAIApiKey: gitConfigParsed.coco?.openAIApiKey || config.openAIApiKey,
102
+ huggingFaceHubApiKey: gitConfigParsed.coco?.huggingFaceHubApiKey || config.huggingFaceHubApiKey,
97
103
  tokenLimit: parseInt(gitConfigParsed.coco?.tokenLimit) || config.tokenLimit,
98
104
  prompt: gitConfigParsed.coco?.prompt || config.prompt,
99
105
  mode: gitConfigParsed.coco?.mode || config.mode,
@@ -173,7 +179,9 @@ function loadXDGConfig(config) {
173
179
  * Command line options via yargs
174
180
  */
175
181
  const options = {
182
+ model: { type: 'string', description: 'LLM/Model-Name' },
176
183
  openAIApiKey: { type: 'string', description: 'OpenAI API Key' },
184
+ huggingFaceHubApiKey: { type: 'string', description: 'HuggingFace Hub API Key' },
177
185
  tokenLimit: { type: 'number', description: 'Token limit' },
178
186
  prompt: {
179
187
  type: 'string',
@@ -270,7 +278,7 @@ const SUMMARIZE_PROMPT = new prompts.PromptTemplate({
270
278
  * @type {Config}
271
279
  */
272
280
  const DEFAULT_CONFIG = {
273
- openAIApiKey: '',
281
+ model: 'openai/gpt-3.5-turbo',
274
282
  verbose: false,
275
283
  tokenLimit: 1024,
276
284
  prompt: COMMIT_PROMPT.template,
@@ -280,7 +288,6 @@ const DEFAULT_CONFIG = {
280
288
  ignoredFiles: ['package-lock.json'],
281
289
  ignoredExtensions: ['.map', '.lock'],
282
290
  };
283
-
284
291
  /**
285
292
  * Load application config
286
293
  *
@@ -564,18 +571,34 @@ async function collectDiffs(node, getFileDiff, tokenizer, logger = new Logger(co
564
571
  };
565
572
  }
566
573
 
567
- // TODO: Extend this to support other models! 🎉
574
+ /**
575
+ * Get LLM Model Based on Configuration
576
+ *
577
+ * @param fields
578
+ * @param configuration
579
+ * @returns LLM Model
580
+ */
568
581
  function getModel(fields, configuration) {
569
- return new openai.OpenAI(fields, configuration);
570
- // return new HuggingFaceInference({
571
- // // model: 'gpt2',
572
- // // model: 'bigcode/starcoder',
573
- // model: 'bigscience/bloom',
574
- // apiKey: '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',
575
- // maxConcurrency: 4,
576
- // cache: true,
577
- // // maxTokens: 2046,
578
- // })
582
+ const [llm, model] = config.model.split(/\/(.*)/s);
583
+ if (!model) {
584
+ throw new Error(`Invalid model: ${config.model}`);
585
+ }
586
+ switch (llm) {
587
+ case 'huggingface':
588
+ return new hf.HuggingFaceInference({
589
+ model: model,
590
+ apiKey: config.huggingFaceHubApiKey,
591
+ maxConcurrency: 4,
592
+ ...fields,
593
+ });
594
+ case 'openai':
595
+ default:
596
+ return new openai.OpenAI({
597
+ openAIApiKey: config.openAIApiKey,
598
+ modelName: model,
599
+ ...fields,
600
+ }, configuration);
601
+ }
579
602
  }
580
603
  function getTextSplitter(options = {}) {
581
604
  return new text_splitter.RecursiveCharacterTextSplitter(options);
@@ -612,14 +635,11 @@ const parseRenamedFileDiff = async (nodeFile, git, logger) => {
612
635
  const oldFilepath = nodeFile?.oldFilepath || nodeFile.filepath;
613
636
  try {
614
637
  const [headContent, indexContent] = await Promise.all([
615
- // git.diff(['HEAD', '-M', '--', oldFilepath]),
616
- // git.diff(['-z', '-M', '--staged', nodeFile.filepath]),
617
638
  git.show([`HEAD:${oldFilepath}`]),
618
639
  git.show([`:${nodeFile.filepath}`]),
619
- // readFile(nodeFile.filepath),
620
640
  ]);
621
641
  if (headContent !== indexContent) {
622
- result = diff.createTwoFilesPatch(oldFilepath, nodeFile.filepath, headContent, indexContent.toString(), '', '', {
642
+ result = diff.createTwoFilesPatch(oldFilepath, nodeFile.filepath, headContent, indexContent, '', '', {
623
643
  context: 3,
624
644
  });
625
645
  // remove the first 4 lines of the patch (they contain the old and new file names)
@@ -631,7 +651,6 @@ const parseRenamedFileDiff = async (nodeFile, git, logger) => {
631
651
  }
632
652
  catch (err) {
633
653
  logger.verbose(`Error comparing file contents for ${nodeFile.filepath}`, { color: 'red' });
634
- console.log(err);
635
654
  result = 'Error comparing file contents.';
636
655
  }
637
656
  return result;
@@ -674,7 +693,6 @@ const fileChangeParser = async (changes, { tokenizer, git, model }) => {
674
693
  chain: summarizationChain,
675
694
  });
676
695
  logger.stopTimer(`\nSummary generated for ${changes.length} staged files`, { color: 'green' });
677
- logger.verbose(`\nSummary:\n${summary}`, { color: 'blue' });
678
696
  return summary;
679
697
  };
680
698
 
@@ -709,10 +727,25 @@ const getTokenizer = () => {
709
727
  };
710
728
 
711
729
  const llm = async ({ llm, prompt, variables }) => {
730
+ if (!llm || !prompt || !variables) {
731
+ throw new Error('The input parameters "llm", "prompt", and "variables" are all required.');
732
+ }
712
733
  const chain = new chains.LLMChain({ llm, prompt });
713
- const res = await chain.call(variables);
714
- if (res.error)
715
- throw new Error(res.error);
734
+ let res;
735
+ try {
736
+ res = await chain.call(variables);
737
+ }
738
+ catch (error) {
739
+ if (error instanceof Error) {
740
+ throw new Error(`LLMChain call error: ${error.message}`);
741
+ }
742
+ }
743
+ if (!res) {
744
+ throw new Error('Empty response from LLMChain call');
745
+ }
746
+ if (res.error) {
747
+ throw new Error(`LLMChain response error: ${res.error}`);
748
+ }
716
749
  return res.text.trim();
717
750
  };
718
751
 
@@ -750,14 +783,8 @@ const getSummaryText = (file, change) => {
750
783
  return `${status}: ${file.path}`;
751
784
  };
752
785
 
753
- const DEFAULT_IGNORED_FILES = [
754
- ...(config?.ignoredFiles?.length && config?.ignoredFiles?.length > 0 ? config.ignoredFiles : []),
755
- ];
756
- const DEFAULT_IGNORED_EXTENSIONS = [
757
- ...(config?.ignoredExtensions?.length && config?.ignoredExtensions?.length > 0
758
- ? config.ignoredExtensions
759
- : []),
760
- ];
786
+ const DEFAULT_IGNORED_FILES = config?.ignoredFiles?.length ? config.ignoredFiles : [];
787
+ const DEFAULT_IGNORED_EXTENSIONS = config?.ignoredExtensions?.length ? config.ignoredExtensions : [];
761
788
  async function getChanges(git, options = {}) {
762
789
  const { ignoredFiles = DEFAULT_IGNORED_FILES, ignoredExtensions = DEFAULT_IGNORED_EXTENSIONS } = options;
763
790
  const staged = [];
@@ -765,7 +792,6 @@ async function getChanges(git, options = {}) {
765
792
  const untracked = [];
766
793
  const status = await git.status();
767
794
  status.files.forEach((file) => {
768
- // console.log({ file })
769
795
  const fileChange = {
770
796
  filepath: file.path,
771
797
  oldFilepath: status.renamed.filter((renamed) => renamed.to === file.path)[0]?.from,
@@ -792,16 +818,20 @@ async function getChanges(git, options = {}) {
792
818
  const ignoredExtensionsSet = new Set(ignoredExtensions.map((extension) => extension.toLowerCase()));
793
819
  const filteredStaged = staged.filter((file) => {
794
820
  const extension = path.extname(file.filepath).toLowerCase();
795
- return !ignoredExtensionsSet.has(extension) && !ignoredFiles.includes(file.filepath);
821
+ return !ignoredExtensionsSet.has(extension) && !ignoredFiles.some(ignoredPattern => minimatch.minimatch(file.filepath, ignoredPattern));
796
822
  });
797
823
  const filteredUnstaged = unstaged.filter((file) => {
798
824
  const extension = path.extname(file.filepath).toLowerCase();
799
- return !ignoredExtensionsSet.has(extension) && !ignoredFiles.includes(file.filepath);
825
+ return !ignoredExtensionsSet.has(extension) && !ignoredFiles.some(ignoredPattern => minimatch.minimatch(file.filepath, ignoredPattern));
826
+ });
827
+ const filteredUntracked = untracked.filter((file) => {
828
+ const extension = path.extname(file.filepath).toLowerCase();
829
+ return !ignoredExtensionsSet.has(extension) && !ignoredFiles.some(ignoredPattern => minimatch.minimatch(file.filepath, ignoredPattern));
800
830
  });
801
831
  return {
802
832
  staged: filteredStaged,
803
833
  unstaged: filteredUnstaged,
804
- untracked,
834
+ untracked: filteredUntracked,
805
835
  };
806
836
  }
807
837
 
@@ -1,4 +1,10 @@
1
1
  import { Config } from './types';
2
+ /**
3
+ * Default Config
4
+ *
5
+ * @type {Config}
6
+ */
7
+ export declare const DEFAULT_CONFIG: Config;
2
8
  /**
3
9
  * Load application config
4
10
  *
@@ -1,8 +1,22 @@
1
1
  export interface Config {
2
+ /**
3
+ * The LLM model to use for generating results.
4
+ *
5
+ * @default 'openai/gpt-3.5-turbo'
6
+ *
7
+ * @example 'openai/gpt-4'
8
+ * @example 'openai/gpt-3.5-turbo'
9
+ * @example 'huggingface/bigscience/bloom'
10
+ **/
11
+ model: string;
2
12
  /**
3
13
  * The OpenAI API key.
4
14
  */
5
- openAIApiKey: string;
15
+ openAIApiKey?: string;
16
+ /**
17
+ * The HuggingFace Hub API key.
18
+ */
19
+ huggingFaceHubApiKey?: string;
6
20
  /**
7
21
  * The maximum number of tokens per request.
8
22
  *
@@ -5,6 +5,13 @@ import { BaseLLMParams } from 'langchain/llms/base';
5
5
  import { AzureOpenAIInput, OpenAIInput, OpenAI } from 'langchain/llms/openai';
6
6
  import { RecursiveCharacterTextSplitter, RecursiveCharacterTextSplitterParams } from 'langchain/text_splitter';
7
7
  import { ConfigurationParameters } from 'openai';
8
+ /**
9
+ * Get LLM Model Based on Configuration
10
+ *
11
+ * @param fields
12
+ * @param configuration
13
+ * @returns LLM Model
14
+ */
8
15
  export declare function getModel(fields?: (Partial<OpenAIInput> & Partial<AzureOpenAIInput> & BaseLLMParams & {
9
16
  configuration?: ConfigurationParameters | undefined;
10
17
  }) | undefined, configuration?: ConfigurationParameters | undefined): OpenAI | HuggingFaceInference;
package/dist/stats.html CHANGED
@@ -5285,7 +5285,7 @@ var drawChart = (function (exports) {
5285
5285
  </script>
5286
5286
  <script>
5287
5287
  /*<!--*/
5288
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.js","children":[{"name":"src","children":[{"name":"lib","children":[{"name":"utils","children":[{"uid":"3816-79","name":"removeUndefined.ts"},{"uid":"3816-101","name":"logger.ts"},{"uid":"3816-103","name":"getPathFromFilePath.ts"},{"uid":"3816-121","name":"getTokenizer.ts"}]},{"name":"config","children":[{"name":"services","children":[{"uid":"3816-81","name":"env.ts"},{"uid":"3816-83","name":"git.ts"},{"uid":"3816-85","name":"ignore.ts"},{"uid":"3816-87","name":"project.ts"},{"uid":"3816-89","name":"xdg.ts"},{"uid":"3816-91","name":"yargs.ts"}]},{"uid":"3816-97","name":"default.ts"},{"uid":"3816-99","name":"index.ts"}]},{"name":"langchain","children":[{"name":"prompts","children":[{"uid":"3816-93","name":"commitDefault.ts"},{"uid":"3816-95","name":"summarize.ts"}]},{"name":"chains","children":[{"uid":"3816-105","name":"summarize.ts"},{"uid":"3816-123","name":"llm.ts"}]},{"uid":"3816-113","name":"utils.ts"}]},{"name":"parsers","children":[{"name":"default","children":[{"name":"utils","children":[{"uid":"3816-107","name":"summarizeDiffs.ts"},{"uid":"3816-109","name":"createDiffTree.ts"},{"uid":"3816-111","name":"collectDiffs.ts"}]},{"uid":"3816-117","name":"index.ts"}]},{"uid":"3816-131","name":"noResult.ts"}]},{"name":"simple-git","children":[{"uid":"3816-115","name":"getDiff.ts"},{"uid":"3816-125","name":"getStatus.ts"},{"uid":"3816-127","name":"getSummaryText.ts"},{"uid":"3816-129","name":"getChanges.ts"},{"uid":"3816-133","name":"createCommit.ts"}]},{"uid":"3816-119","name":"ui.ts"}]},{"uid":"3816-135","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"3816-79":{"renderedLength":258,"gzipLength":0,"brotliLength":141,"metaUid":"3816-78"},"3816-81":{"renderedLength":858,"gzipLength":0,"brotliLength":282,"metaUid":"3816-80"},"3816-83":{"renderedLength":1183,"gzipLength":0,"brotliLength":354,"metaUid":"3816-82"},"3816-85":{"renderedLength":927,"gzipLength":0,"brotliLength":271,"metaUid":"3816-84"},"3816-87":{"renderedLength":367,"gzipLength":0,"brotliLength":172,"metaUid":"3816-86"},"3816-89":{"renderedLength":539,"gzipLength":0,"brotliLength":260,"metaUid":"3816-88"},"3816-91":{"renderedLength":1588,"gzipLength":0,"brotliLength":524,"metaUid":"3816-90"},"3816-93":{"renderedLength":752,"gzipLength":0,"brotliLength":329,"metaUid":"3816-92"},"3816-95":{"renderedLength":369,"gzipLength":0,"brotliLength":200,"metaUid":"3816-94"},"3816-97":{"renderedLength":347,"gzipLength":0,"brotliLength":210,"metaUid":"3816-96"},"3816-99":{"renderedLength":719,"gzipLength":0,"brotliLength":256,"metaUid":"3816-98"},"3816-101":{"renderedLength":1634,"gzipLength":0,"brotliLength":400,"metaUid":"3816-100"},"3816-103":{"renderedLength":256,"gzipLength":0,"brotliLength":151,"metaUid":"3816-102"},"3816-105":{"renderedLength":442,"gzipLength":0,"brotliLength":201,"metaUid":"3816-104"},"3816-107":{"renderedLength":3948,"gzipLength":0,"brotliLength":1183,"metaUid":"3816-106"},"3816-109":{"renderedLength":1262,"gzipLength":0,"brotliLength":380,"metaUid":"3816-108"},"3816-111":{"renderedLength":1199,"gzipLength":0,"brotliLength":428,"metaUid":"3816-110"},"3816-113":{"renderedLength":1374,"gzipLength":0,"brotliLength":559,"metaUid":"3816-112"},"3816-115":{"renderedLength":1797,"gzipLength":0,"brotliLength":582,"metaUid":"3816-114"},"3816-117":{"renderedLength":1208,"gzipLength":0,"brotliLength":490,"metaUid":"3816-116"},"3816-119":{"renderedLength":290,"gzipLength":0,"brotliLength":177,"metaUid":"3816-118"},"3816-121":{"renderedLength":573,"gzipLength":0,"brotliLength":239,"metaUid":"3816-120"},"3816-123":{"renderedLength":238,"gzipLength":0,"brotliLength":141,"metaUid":"3816-122"},"3816-125":{"renderedLength":602,"gzipLength":0,"brotliLength":177,"metaUid":"3816-124"},"3816-127":{"renderedLength":239,"gzipLength":0,"brotliLength":140,"metaUid":"3816-126"},"3816-129":{"renderedLength":2256,"gzipLength":0,"brotliLength":551,"metaUid":"3816-128"},"3816-131":{"renderedLength":1088,"gzipLength":0,"brotliLength":343,"metaUid":"3816-130"},"3816-133":{"renderedLength":87,"gzipLength":0,"brotliLength":71,"metaUid":"3816-132"},"3816-135":{"renderedLength":5706,"gzipLength":0,"brotliLength":1318,"metaUid":"3816-134"}},"nodeMetas":{"3816-78":{"id":"/src/lib/utils/removeUndefined.ts","moduleParts":{"index.js":"3816-79"},"imported":[],"importedBy":[{"uid":"3816-80"}]},"3816-80":{"id":"/src/lib/config/services/env.ts","moduleParts":{"index.js":"3816-81"},"imported":[{"uid":"3816-78"}],"importedBy":[{"uid":"3816-98"}]},"3816-82":{"id":"/src/lib/config/services/git.ts","moduleParts":{"index.js":"3816-83"},"imported":[{"uid":"3816-150"},{"uid":"3816-151"},{"uid":"3816-149"},{"uid":"3816-152"}],"importedBy":[{"uid":"3816-98"}]},"3816-84":{"id":"/src/lib/config/services/ignore.ts","moduleParts":{"index.js":"3816-85"},"imported":[{"uid":"3816-150"}],"importedBy":[{"uid":"3816-98"}]},"3816-86":{"id":"/src/lib/config/services/project.ts","moduleParts":{"index.js":"3816-87"},"imported":[{"uid":"3816-150"}],"importedBy":[{"uid":"3816-98"}]},"3816-88":{"id":"/src/lib/config/services/xdg.ts","moduleParts":{"index.js":"3816-89"},"imported":[{"uid":"3816-150"},{"uid":"3816-149"},{"uid":"3816-151"}],"importedBy":[{"uid":"3816-98"}]},"3816-90":{"id":"/src/lib/config/services/yargs.ts","moduleParts":{"index.js":"3816-91"},"imported":[{"uid":"3816-139"},{"uid":"3816-140"}],"importedBy":[{"uid":"3816-134"},{"uid":"3816-98"}]},"3816-92":{"id":"/src/lib/langchain/prompts/commitDefault.ts","moduleParts":{"index.js":"3816-93"},"imported":[{"uid":"3816-145"}],"importedBy":[{"uid":"3816-134"},{"uid":"3816-96"}]},"3816-94":{"id":"/src/lib/langchain/prompts/summarize.ts","moduleParts":{"index.js":"3816-95"},"imported":[{"uid":"3816-145"}],"importedBy":[{"uid":"3816-116"},{"uid":"3816-96"}]},"3816-96":{"id":"/src/lib/config/default.ts","moduleParts":{"index.js":"3816-97"},"imported":[{"uid":"3816-92"},{"uid":"3816-94"}],"importedBy":[{"uid":"3816-98"}]},"3816-98":{"id":"/src/lib/config/index.ts","moduleParts":{"index.js":"3816-99"},"imported":[{"uid":"3816-80"},{"uid":"3816-82"},{"uid":"3816-84"},{"uid":"3816-86"},{"uid":"3816-88"},{"uid":"3816-90"},{"uid":"3816-96"}],"importedBy":[{"uid":"3816-134"},{"uid":"3816-116"},{"uid":"3816-128"},{"uid":"3816-106"},{"uid":"3816-110"}]},"3816-100":{"id":"/src/lib/utils/logger.ts","moduleParts":{"index.js":"3816-101"},"imported":[{"uid":"3816-138"},{"uid":"3816-142"},{"uid":"3816-143"},{"uid":"3816-144"}],"importedBy":[{"uid":"3816-134"},{"uid":"3816-116"},{"uid":"3816-106"},{"uid":"3816-110"}]},"3816-102":{"id":"/src/lib/utils/getPathFromFilePath.ts","moduleParts":{"index.js":"3816-103"},"imported":[],"importedBy":[{"uid":"3816-106"}]},"3816-104":{"id":"/src/lib/langchain/chains/summarize.ts","moduleParts":{"index.js":"3816-105"},"imported":[{"uid":"3816-155"}],"importedBy":[{"uid":"3816-106"}]},"3816-106":{"id":"/src/lib/parsers/default/utils/summarizeDiffs.ts","moduleParts":{"index.js":"3816-107"},"imported":[{"uid":"3816-153"},{"uid":"3816-100"},{"uid":"3816-98"},{"uid":"3816-102"},{"uid":"3816-104"}],"importedBy":[{"uid":"3816-116"}]},"3816-108":{"id":"/src/lib/parsers/default/utils/createDiffTree.ts","moduleParts":{"index.js":"3816-109"},"imported":[],"importedBy":[{"uid":"3816-116"}]},"3816-110":{"id":"/src/lib/parsers/default/utils/collectDiffs.ts","moduleParts":{"index.js":"3816-111"},"imported":[{"uid":"3816-98"},{"uid":"3816-100"}],"importedBy":[{"uid":"3816-116"}]},"3816-112":{"id":"/src/lib/langchain/utils.ts","moduleParts":{"index.js":"3816-113"},"imported":[{"uid":"3816-145"},{"uid":"3816-146"},{"uid":"3816-147"},{"uid":"3816-148"}],"importedBy":[{"uid":"3816-134"},{"uid":"3816-116"}]},"3816-114":{"id":"/src/lib/simple-git/getDiff.ts","moduleParts":{"index.js":"3816-115"},"imported":[{"uid":"3816-154"}],"importedBy":[{"uid":"3816-116"}]},"3816-116":{"id":"/src/lib/parsers/default/index.ts","moduleParts":{"index.js":"3816-117"},"imported":[{"uid":"3816-98"},{"uid":"3816-106"},{"uid":"3816-100"},{"uid":"3816-108"},{"uid":"3816-110"},{"uid":"3816-112"},{"uid":"3816-94"},{"uid":"3816-114"}],"importedBy":[{"uid":"3816-134"}]},"3816-118":{"id":"/src/lib/ui.ts","moduleParts":{"index.js":"3816-119"},"imported":[{"uid":"3816-138"}],"importedBy":[{"uid":"3816-134"}]},"3816-120":{"id":"/src/lib/utils/getTokenizer.ts","moduleParts":{"index.js":"3816-121"},"imported":[{"uid":"3816-141"}],"importedBy":[{"uid":"3816-134"}]},"3816-122":{"id":"/src/lib/langchain/chains/llm.ts","moduleParts":{"index.js":"3816-123"},"imported":[{"uid":"3816-146"}],"importedBy":[{"uid":"3816-134"}]},"3816-124":{"id":"/src/lib/simple-git/getStatus.ts","moduleParts":{"index.js":"3816-125"},"imported":[],"importedBy":[{"uid":"3816-128"},{"uid":"3816-126"}]},"3816-126":{"id":"/src/lib/simple-git/getSummaryText.ts","moduleParts":{"index.js":"3816-127"},"imported":[{"uid":"3816-124"}],"importedBy":[{"uid":"3816-128"}]},"3816-128":{"id":"/src/lib/simple-git/getChanges.ts","moduleParts":{"index.js":"3816-129"},"imported":[{"uid":"3816-149"},{"uid":"3816-98"},{"uid":"3816-124"},{"uid":"3816-126"}],"importedBy":[{"uid":"3816-134"},{"uid":"3816-130"}]},"3816-130":{"id":"/src/lib/parsers/noResult.ts","moduleParts":{"index.js":"3816-131"},"imported":[{"uid":"3816-128"}],"importedBy":[{"uid":"3816-134"}]},"3816-132":{"id":"/src/lib/simple-git/createCommit.ts","moduleParts":{"index.js":"3816-133"},"imported":[],"importedBy":[{"uid":"3816-134"}]},"3816-134":{"id":"/src/index.ts","moduleParts":{"index.js":"3816-135"},"imported":[{"uid":"3816-136"},{"uid":"3816-98"},{"uid":"3816-116"},{"uid":"3816-118"},{"uid":"3816-90"},{"uid":"3816-120"},{"uid":"3816-100"},{"uid":"3816-92"},{"uid":"3816-112"},{"uid":"3816-122"},{"uid":"3816-130"},{"uid":"3816-128"},{"uid":"3816-132"},{"uid":"3816-137"}],"importedBy":[],"isEntry":true},"3816-136":{"id":"@inquirer/prompts","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-134"}],"isExternal":true},"3816-137":{"id":"simple-git","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-134"}],"isExternal":true},"3816-138":{"id":"chalk","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-118"},{"uid":"3816-100"}],"isExternal":true},"3816-139":{"id":"yargs","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-90"}],"isExternal":true},"3816-140":{"id":"yargs/helpers","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-90"}],"isExternal":true},"3816-141":{"id":"gpt3-tokenizer","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-120"}],"isExternal":true},"3816-142":{"id":"ora","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-100"}],"isExternal":true},"3816-143":{"id":"performance-now","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-100"}],"isExternal":true},"3816-144":{"id":"pretty-ms","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-100"}],"isExternal":true},"3816-145":{"id":"langchain/prompts","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-92"},{"uid":"3816-112"},{"uid":"3816-94"}],"isExternal":true},"3816-146":{"id":"langchain/chains","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-112"},{"uid":"3816-122"}],"isExternal":true},"3816-147":{"id":"langchain/llms/openai","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-112"}],"isExternal":true},"3816-148":{"id":"langchain/text_splitter","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-112"}],"isExternal":true},"3816-149":{"id":"path","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-128"},{"uid":"3816-82"},{"uid":"3816-88"}],"isExternal":true},"3816-150":{"id":"fs","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-82"},{"uid":"3816-84"},{"uid":"3816-86"},{"uid":"3816-88"}],"isExternal":true},"3816-151":{"id":"os","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-82"},{"uid":"3816-88"}],"isExternal":true},"3816-152":{"id":"ini","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-82"}],"isExternal":true},"3816-153":{"id":"p-queue","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-106"}],"isExternal":true},"3816-154":{"id":"diff","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-114"}],"isExternal":true},"3816-155":{"id":"langchain/document","moduleParts":{},"imported":[],"importedBy":[{"uid":"3816-104"}],"isExternal":true}},"env":{"rollup":"3.26.1"},"options":{"gzip":false,"brotli":true,"sourcemap":false}};
5288
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.js","children":[{"name":"src","children":[{"name":"lib","children":[{"name":"utils","children":[{"uid":"ea0f-79","name":"removeUndefined.ts"},{"uid":"ea0f-99","name":"logger.ts"},{"uid":"ea0f-101","name":"getPathFromFilePath.ts"},{"uid":"ea0f-119","name":"getTokenizer.ts"}]},{"name":"config","children":[{"name":"services","children":[{"uid":"ea0f-81","name":"env.ts"},{"uid":"ea0f-83","name":"git.ts"},{"uid":"ea0f-85","name":"ignore.ts"},{"uid":"ea0f-87","name":"project.ts"},{"uid":"ea0f-89","name":"xdg.ts"},{"uid":"ea0f-91","name":"yargs.ts"}]},{"uid":"ea0f-97","name":"index.ts"}]},{"name":"langchain","children":[{"name":"prompts","children":[{"uid":"ea0f-93","name":"commitDefault.ts"},{"uid":"ea0f-95","name":"summarize.ts"}]},{"name":"chains","children":[{"uid":"ea0f-103","name":"summarize.ts"},{"uid":"ea0f-121","name":"llm.ts"}]},{"uid":"ea0f-111","name":"utils.ts"}]},{"name":"parsers","children":[{"name":"default","children":[{"name":"utils","children":[{"uid":"ea0f-105","name":"summarizeDiffs.ts"},{"uid":"ea0f-107","name":"createDiffTree.ts"},{"uid":"ea0f-109","name":"collectDiffs.ts"}]},{"uid":"ea0f-115","name":"index.ts"}]},{"uid":"ea0f-129","name":"noResult.ts"}]},{"name":"simple-git","children":[{"uid":"ea0f-113","name":"getDiff.ts"},{"uid":"ea0f-123","name":"getStatus.ts"},{"uid":"ea0f-125","name":"getSummaryText.ts"},{"uid":"ea0f-127","name":"getChanges.ts"},{"uid":"ea0f-131","name":"createCommit.ts"}]},{"uid":"ea0f-117","name":"ui.ts"}]},{"uid":"ea0f-133","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"ea0f-79":{"renderedLength":258,"gzipLength":0,"brotliLength":141,"metaUid":"ea0f-78"},"ea0f-81":{"renderedLength":990,"gzipLength":0,"brotliLength":352,"metaUid":"ea0f-80"},"ea0f-83":{"renderedLength":1356,"gzipLength":0,"brotliLength":377,"metaUid":"ea0f-82"},"ea0f-85":{"renderedLength":927,"gzipLength":0,"brotliLength":271,"metaUid":"ea0f-84"},"ea0f-87":{"renderedLength":367,"gzipLength":0,"brotliLength":172,"metaUid":"ea0f-86"},"ea0f-89":{"renderedLength":539,"gzipLength":0,"brotliLength":260,"metaUid":"ea0f-88"},"ea0f-91":{"renderedLength":1736,"gzipLength":0,"brotliLength":534,"metaUid":"ea0f-90"},"ea0f-93":{"renderedLength":752,"gzipLength":0,"brotliLength":329,"metaUid":"ea0f-92"},"ea0f-95":{"renderedLength":369,"gzipLength":0,"brotliLength":200,"metaUid":"ea0f-94"},"ea0f-97":{"renderedLength":1080,"gzipLength":0,"brotliLength":412,"metaUid":"ea0f-96"},"ea0f-99":{"renderedLength":1634,"gzipLength":0,"brotliLength":400,"metaUid":"ea0f-98"},"ea0f-101":{"renderedLength":256,"gzipLength":0,"brotliLength":151,"metaUid":"ea0f-100"},"ea0f-103":{"renderedLength":442,"gzipLength":0,"brotliLength":201,"metaUid":"ea0f-102"},"ea0f-105":{"renderedLength":3948,"gzipLength":0,"brotliLength":1183,"metaUid":"ea0f-104"},"ea0f-107":{"renderedLength":1262,"gzipLength":0,"brotliLength":380,"metaUid":"ea0f-106"},"ea0f-109":{"renderedLength":1199,"gzipLength":0,"brotliLength":428,"metaUid":"ea0f-108"},"ea0f-111":{"renderedLength":1717,"gzipLength":0,"brotliLength":585,"metaUid":"ea0f-110"},"ea0f-113":{"renderedLength":1586,"gzipLength":0,"brotliLength":527,"metaUid":"ea0f-112"},"ea0f-115":{"renderedLength":1143,"gzipLength":0,"brotliLength":468,"metaUid":"ea0f-114"},"ea0f-117":{"renderedLength":290,"gzipLength":0,"brotliLength":177,"metaUid":"ea0f-116"},"ea0f-119":{"renderedLength":573,"gzipLength":0,"brotliLength":239,"metaUid":"ea0f-118"},"ea0f-121":{"renderedLength":678,"gzipLength":0,"brotliLength":281,"metaUid":"ea0f-120"},"ea0f-123":{"renderedLength":602,"gzipLength":0,"brotliLength":177,"metaUid":"ea0f-122"},"ea0f-125":{"renderedLength":239,"gzipLength":0,"brotliLength":140,"metaUid":"ea0f-124"},"ea0f-127":{"renderedLength":2504,"gzipLength":0,"brotliLength":529,"metaUid":"ea0f-126"},"ea0f-129":{"renderedLength":1088,"gzipLength":0,"brotliLength":343,"metaUid":"ea0f-128"},"ea0f-131":{"renderedLength":87,"gzipLength":0,"brotliLength":71,"metaUid":"ea0f-130"},"ea0f-133":{"renderedLength":5706,"gzipLength":0,"brotliLength":1318,"metaUid":"ea0f-132"}},"nodeMetas":{"ea0f-78":{"id":"/src/lib/utils/removeUndefined.ts","moduleParts":{"index.js":"ea0f-79"},"imported":[],"importedBy":[{"uid":"ea0f-80"}]},"ea0f-80":{"id":"/src/lib/config/services/env.ts","moduleParts":{"index.js":"ea0f-81"},"imported":[{"uid":"ea0f-78"}],"importedBy":[{"uid":"ea0f-96"}]},"ea0f-82":{"id":"/src/lib/config/services/git.ts","moduleParts":{"index.js":"ea0f-83"},"imported":[{"uid":"ea0f-150"},{"uid":"ea0f-151"},{"uid":"ea0f-148"},{"uid":"ea0f-152"}],"importedBy":[{"uid":"ea0f-96"}]},"ea0f-84":{"id":"/src/lib/config/services/ignore.ts","moduleParts":{"index.js":"ea0f-85"},"imported":[{"uid":"ea0f-150"}],"importedBy":[{"uid":"ea0f-96"}]},"ea0f-86":{"id":"/src/lib/config/services/project.ts","moduleParts":{"index.js":"ea0f-87"},"imported":[{"uid":"ea0f-150"}],"importedBy":[{"uid":"ea0f-96"}]},"ea0f-88":{"id":"/src/lib/config/services/xdg.ts","moduleParts":{"index.js":"ea0f-89"},"imported":[{"uid":"ea0f-150"},{"uid":"ea0f-148"},{"uid":"ea0f-151"}],"importedBy":[{"uid":"ea0f-96"}]},"ea0f-90":{"id":"/src/lib/config/services/yargs.ts","moduleParts":{"index.js":"ea0f-91"},"imported":[{"uid":"ea0f-137"},{"uid":"ea0f-138"}],"importedBy":[{"uid":"ea0f-132"},{"uid":"ea0f-96"}]},"ea0f-92":{"id":"/src/lib/langchain/prompts/commitDefault.ts","moduleParts":{"index.js":"ea0f-93"},"imported":[{"uid":"ea0f-143"}],"importedBy":[{"uid":"ea0f-132"},{"uid":"ea0f-96"}]},"ea0f-94":{"id":"/src/lib/langchain/prompts/summarize.ts","moduleParts":{"index.js":"ea0f-95"},"imported":[{"uid":"ea0f-143"}],"importedBy":[{"uid":"ea0f-96"},{"uid":"ea0f-114"}]},"ea0f-96":{"id":"/src/lib/config/index.ts","moduleParts":{"index.js":"ea0f-97"},"imported":[{"uid":"ea0f-80"},{"uid":"ea0f-82"},{"uid":"ea0f-84"},{"uid":"ea0f-86"},{"uid":"ea0f-88"},{"uid":"ea0f-90"},{"uid":"ea0f-92"},{"uid":"ea0f-94"}],"importedBy":[{"uid":"ea0f-132"},{"uid":"ea0f-114"},{"uid":"ea0f-110"},{"uid":"ea0f-126"},{"uid":"ea0f-104"},{"uid":"ea0f-108"}]},"ea0f-98":{"id":"/src/lib/utils/logger.ts","moduleParts":{"index.js":"ea0f-99"},"imported":[{"uid":"ea0f-136"},{"uid":"ea0f-140"},{"uid":"ea0f-141"},{"uid":"ea0f-142"}],"importedBy":[{"uid":"ea0f-132"},{"uid":"ea0f-114"},{"uid":"ea0f-104"},{"uid":"ea0f-108"}]},"ea0f-100":{"id":"/src/lib/utils/getPathFromFilePath.ts","moduleParts":{"index.js":"ea0f-101"},"imported":[],"importedBy":[{"uid":"ea0f-104"}]},"ea0f-102":{"id":"/src/lib/langchain/chains/summarize.ts","moduleParts":{"index.js":"ea0f-103"},"imported":[{"uid":"ea0f-155"}],"importedBy":[{"uid":"ea0f-104"}]},"ea0f-104":{"id":"/src/lib/parsers/default/utils/summarizeDiffs.ts","moduleParts":{"index.js":"ea0f-105"},"imported":[{"uid":"ea0f-153"},{"uid":"ea0f-98"},{"uid":"ea0f-96"},{"uid":"ea0f-100"},{"uid":"ea0f-102"}],"importedBy":[{"uid":"ea0f-114"}]},"ea0f-106":{"id":"/src/lib/parsers/default/utils/createDiffTree.ts","moduleParts":{"index.js":"ea0f-107"},"imported":[],"importedBy":[{"uid":"ea0f-114"}]},"ea0f-108":{"id":"/src/lib/parsers/default/utils/collectDiffs.ts","moduleParts":{"index.js":"ea0f-109"},"imported":[{"uid":"ea0f-96"},{"uid":"ea0f-98"}],"importedBy":[{"uid":"ea0f-114"}]},"ea0f-110":{"id":"/src/lib/langchain/utils.ts","moduleParts":{"index.js":"ea0f-111"},"imported":[{"uid":"ea0f-144"},{"uid":"ea0f-143"},{"uid":"ea0f-145"},{"uid":"ea0f-146"},{"uid":"ea0f-147"},{"uid":"ea0f-96"}],"importedBy":[{"uid":"ea0f-132"},{"uid":"ea0f-114"}]},"ea0f-112":{"id":"/src/lib/simple-git/getDiff.ts","moduleParts":{"index.js":"ea0f-113"},"imported":[{"uid":"ea0f-154"}],"importedBy":[{"uid":"ea0f-114"}]},"ea0f-114":{"id":"/src/lib/parsers/default/index.ts","moduleParts":{"index.js":"ea0f-115"},"imported":[{"uid":"ea0f-96"},{"uid":"ea0f-104"},{"uid":"ea0f-98"},{"uid":"ea0f-106"},{"uid":"ea0f-108"},{"uid":"ea0f-110"},{"uid":"ea0f-94"},{"uid":"ea0f-112"}],"importedBy":[{"uid":"ea0f-132"}]},"ea0f-116":{"id":"/src/lib/ui.ts","moduleParts":{"index.js":"ea0f-117"},"imported":[{"uid":"ea0f-136"}],"importedBy":[{"uid":"ea0f-132"}]},"ea0f-118":{"id":"/src/lib/utils/getTokenizer.ts","moduleParts":{"index.js":"ea0f-119"},"imported":[{"uid":"ea0f-139"}],"importedBy":[{"uid":"ea0f-132"}]},"ea0f-120":{"id":"/src/lib/langchain/chains/llm.ts","moduleParts":{"index.js":"ea0f-121"},"imported":[{"uid":"ea0f-145"}],"importedBy":[{"uid":"ea0f-132"}]},"ea0f-122":{"id":"/src/lib/simple-git/getStatus.ts","moduleParts":{"index.js":"ea0f-123"},"imported":[],"importedBy":[{"uid":"ea0f-126"},{"uid":"ea0f-124"}]},"ea0f-124":{"id":"/src/lib/simple-git/getSummaryText.ts","moduleParts":{"index.js":"ea0f-125"},"imported":[{"uid":"ea0f-122"}],"importedBy":[{"uid":"ea0f-126"}]},"ea0f-126":{"id":"/src/lib/simple-git/getChanges.ts","moduleParts":{"index.js":"ea0f-127"},"imported":[{"uid":"ea0f-148"},{"uid":"ea0f-149"},{"uid":"ea0f-96"},{"uid":"ea0f-122"},{"uid":"ea0f-124"}],"importedBy":[{"uid":"ea0f-132"},{"uid":"ea0f-128"}]},"ea0f-128":{"id":"/src/lib/parsers/noResult.ts","moduleParts":{"index.js":"ea0f-129"},"imported":[{"uid":"ea0f-126"}],"importedBy":[{"uid":"ea0f-132"}]},"ea0f-130":{"id":"/src/lib/simple-git/createCommit.ts","moduleParts":{"index.js":"ea0f-131"},"imported":[],"importedBy":[{"uid":"ea0f-132"}]},"ea0f-132":{"id":"/src/index.ts","moduleParts":{"index.js":"ea0f-133"},"imported":[{"uid":"ea0f-134"},{"uid":"ea0f-96"},{"uid":"ea0f-114"},{"uid":"ea0f-116"},{"uid":"ea0f-90"},{"uid":"ea0f-118"},{"uid":"ea0f-98"},{"uid":"ea0f-92"},{"uid":"ea0f-110"},{"uid":"ea0f-120"},{"uid":"ea0f-128"},{"uid":"ea0f-126"},{"uid":"ea0f-130"},{"uid":"ea0f-135"}],"importedBy":[],"isEntry":true},"ea0f-134":{"id":"@inquirer/prompts","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-132"}],"isExternal":true},"ea0f-135":{"id":"simple-git","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-132"}],"isExternal":true},"ea0f-136":{"id":"chalk","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-116"},{"uid":"ea0f-98"}],"isExternal":true},"ea0f-137":{"id":"yargs","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-90"}],"isExternal":true},"ea0f-138":{"id":"yargs/helpers","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-90"}],"isExternal":true},"ea0f-139":{"id":"gpt3-tokenizer","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-118"}],"isExternal":true},"ea0f-140":{"id":"ora","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-98"}],"isExternal":true},"ea0f-141":{"id":"performance-now","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-98"}],"isExternal":true},"ea0f-142":{"id":"pretty-ms","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-98"}],"isExternal":true},"ea0f-143":{"id":"langchain/prompts","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-92"},{"uid":"ea0f-110"},{"uid":"ea0f-94"}],"isExternal":true},"ea0f-144":{"id":"langchain/llms/hf","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-110"}],"isExternal":true},"ea0f-145":{"id":"langchain/chains","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-110"},{"uid":"ea0f-120"}],"isExternal":true},"ea0f-146":{"id":"langchain/llms/openai","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-110"}],"isExternal":true},"ea0f-147":{"id":"langchain/text_splitter","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-110"}],"isExternal":true},"ea0f-148":{"id":"path","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-126"},{"uid":"ea0f-82"},{"uid":"ea0f-88"}],"isExternal":true},"ea0f-149":{"id":"minimatch","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-126"}],"isExternal":true},"ea0f-150":{"id":"fs","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-82"},{"uid":"ea0f-84"},{"uid":"ea0f-86"},{"uid":"ea0f-88"}],"isExternal":true},"ea0f-151":{"id":"os","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-82"},{"uid":"ea0f-88"}],"isExternal":true},"ea0f-152":{"id":"ini","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-82"}],"isExternal":true},"ea0f-153":{"id":"p-queue","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-104"}],"isExternal":true},"ea0f-154":{"id":"diff","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-112"}],"isExternal":true},"ea0f-155":{"id":"langchain/document","moduleParts":{},"imported":[],"importedBy":[{"uid":"ea0f-102"}],"isExternal":true}},"env":{"rollup":"3.26.2"},"options":{"gzip":false,"brotli":true,"sourcemap":false}};
5289
5289
 
5290
5290
  const run = () => {
5291
5291
  const width = window.innerWidth;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "git-coco",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "zero-effort git commits with commit copilot, or coco for short.",
5
5
  "author": "gfargo <ghfargo@gmail.com>",
6
6
  "license": "MIT",
@@ -73,17 +73,17 @@
73
73
  },
74
74
  "dependencies": {
75
75
  "@inquirer/prompts": "^2.3.0",
76
- "chalk": "^4.1.2",
76
+ "chalk": "4.1.2",
77
77
  "diff": "^5.1.0",
78
78
  "gpt3-tokenizer": "^1.1.5",
79
79
  "ini": "^4.1.1",
80
- "langchain": "^0.0.102",
81
- "minimatch": "^9.0.1",
82
- "openai": "^3.2.1",
83
- "ora": "^5.4.1",
84
- "p-queue": "^5.0.0",
85
- "performance-now": "^2.1.0",
86
- "pretty-ms": "^7.0.1",
80
+ "langchain": "^0.0.105",
81
+ "minimatch": "^9.0.3",
82
+ "openai": "3.3.0",
83
+ "ora": "5.4.1",
84
+ "p-queue": "5.0.0",
85
+ "performance-now": "2.1.0",
86
+ "pretty-ms": "7.0.1",
87
87
  "simple-git": "^3.19.1",
88
88
  "yargs": "^17.7.2"
89
89
  }
@@ -1,7 +0,0 @@
1
- import { Config } from './types';
2
- /**
3
- * Default Config
4
- *
5
- * @type {Config}
6
- */
7
- export declare const DEFAULT_CONFIG: Config;
@@ -1 +0,0 @@
1
- export declare function getTruncatedFilePath(filePath: string, maxLength?: number): string;
@@ -1,3 +0,0 @@
1
- /// <reference types="node" />
2
- import * as fs from 'fs';
3
- export declare const readFile: typeof fs.readFile.__promisify__;