From 6ffb161618e426482c6bc07fb1867cec853a7985 Mon Sep 17 00:00:00 2001 From: Thuc Pham <51660321+thucpn@users.noreply.github.com> Date: Wed, 3 Apr 2024 14:21:13 +0700 Subject: [PATCH] feat: add ts eslint plugin (#688) --- examples/agent/multi_document_agent.ts | 2 +- examples/agent/openai.ts | 2 +- examples/agent/query_openai_agent.ts | 2 +- examples/agent/react_agent.ts | 2 +- examples/agent/step_wise_openai.ts | 2 +- examples/agent/step_wise_query_tool.ts | 2 +- examples/agent/step_wise_react.ts | 2 +- examples/agent/stream_openai_agent.ts | 2 +- examples/agent/wikipedia-tool.ts | 2 +- examples/astradb/example.ts | 2 +- examples/astradb/load.ts | 2 +- examples/astradb/query.ts | 2 +- examples/chromadb/preFilters.ts | 2 +- examples/chromadb/test.ts | 2 +- examples/evaluation/correctness.ts | 2 +- examples/evaluation/faithfulness.ts | 2 +- examples/evaluation/relevancy.ts | 2 +- examples/milvus/load.ts | 2 +- examples/milvus/query.ts | 2 +- examples/mongo.ts | 2 +- examples/mongodb/1_import.ts | 2 +- examples/mongodb/3_query.ts | 2 +- examples/multimodal/clip.ts | 2 +- examples/nodeParser/MarkdownNodeParser.ts | 2 +- examples/pg-vector-store/load-docs.ts | 6 +- examples/pinecone-vector-store/load-docs.ts | 4 +- examples/prompts/promptMixin.ts | 2 +- examples/qdrantdb/preFilters.ts | 2 +- examples/readers/src/docx.ts | 2 +- examples/readers/src/markdown.ts | 2 +- examples/recipes/cost-analysis.ts | 2 +- examples/routerQueryEngine.ts | 2 +- examples/split.ts | 2 +- packages/core/src/indices/keyword/index.ts | 2 +- packages/core/src/indices/summary/index.ts | 2 +- .../core/src/indices/vectorStore/index.ts | 4 +- .../strategies/DuplicatesStrategy.ts | 2 +- .../ingestion/strategies/UpsertsStrategy.ts | 2 +- packages/core/src/objects/base.ts | 4 +- .../src/storage/docStore/KVDocumentStore.ts | 6 +- .../storage/vectorStore/MilvusVectorStore.ts | 2 +- .../src/storage/vectorStore/PGVectorStore.ts | 2 +- .../vectorStore/PineconeVectorStore.ts | 6 +- .../tests/indices/VectorStoreIndex.test.ts | 4 +- .../core/tests/objects/ObjectIndex.test.ts | 2 +- packages/core/tests/utility/mockOpenAI.ts | 8 +- packages/eslint-config-custom/index.js | 55 +++++- packages/eslint-config-custom/package.json | 3 +- .../experimental/examples/jsonQueryEngine.ts | 2 +- packages/experimental/examples/tsconfig.json | 22 +++ pnpm-lock.yaml | 175 +++++++++++++++++- 51 files changed, 306 insertions(+), 69 deletions(-) create mode 100644 packages/experimental/examples/tsconfig.json diff --git a/examples/agent/multi_document_agent.ts b/examples/agent/multi_document_agent.ts index ecdd805b8..0a70ecacb 100644 --- a/examples/agent/multi_document_agent.ts +++ b/examples/agent/multi_document_agent.ts @@ -145,4 +145,4 @@ async function main() { }); } -main(); +void main(); diff --git a/examples/agent/openai.ts b/examples/agent/openai.ts index 58eb11a0a..62b8e35cf 100644 --- a/examples/agent/openai.ts +++ b/examples/agent/openai.ts @@ -71,6 +71,6 @@ async function main() { console.log(String(response)); } -main().then(() => { +void main().then(() => { console.log("Done"); }); diff --git a/examples/agent/query_openai_agent.ts b/examples/agent/query_openai_agent.ts index f3da8592a..69281f4b5 100644 --- a/examples/agent/query_openai_agent.ts +++ b/examples/agent/query_openai_agent.ts @@ -41,6 +41,6 @@ async function main() { console.log(String(response)); } -main().then(() => { +void main().then(() => { console.log("Done"); }); diff --git a/examples/agent/react_agent.ts b/examples/agent/react_agent.ts index 1df04fffb..bfd8b8221 100644 --- a/examples/agent/react_agent.ts +++ b/examples/agent/react_agent.ts @@ -77,6 +77,6 @@ async function main() { console.log(String(response)); } -main().then(() => { +void main().then(() => { console.log("Done"); }); diff --git a/examples/agent/step_wise_openai.ts b/examples/agent/step_wise_openai.ts index abbc273c5..853b577fe 100644 --- a/examples/agent/step_wise_openai.ts +++ b/examples/agent/step_wise_openai.ts @@ -90,6 +90,6 @@ async function main() { } } -main().then(() => { +void main().then(() => { console.log("Done"); }); diff --git a/examples/agent/step_wise_query_tool.ts b/examples/agent/step_wise_query_tool.ts index d7a17295a..4b8d4db19 100644 --- a/examples/agent/step_wise_query_tool.ts +++ b/examples/agent/step_wise_query_tool.ts @@ -59,6 +59,6 @@ async function main() { } } -main().then(() => { +void main().then(() => { console.log("Done"); }); diff --git a/examples/agent/step_wise_react.ts b/examples/agent/step_wise_react.ts index 4230db586..4e9280cea 100644 --- a/examples/agent/step_wise_react.ts +++ b/examples/agent/step_wise_react.ts @@ -85,6 +85,6 @@ async function main() { } } -main().then(() => { +void main().then(() => { console.log("Done"); }); diff --git a/examples/agent/stream_openai_agent.ts b/examples/agent/stream_openai_agent.ts index 3693381f3..219037064 100644 --- a/examples/agent/stream_openai_agent.ts +++ b/examples/agent/stream_openai_agent.ts @@ -72,6 +72,6 @@ async function main() { } } -main().then(() => { +void main().then(() => { console.log("\nDone"); }); diff --git a/examples/agent/wikipedia-tool.ts b/examples/agent/wikipedia-tool.ts index 3cb961733..1a5e82fc1 100644 --- a/examples/agent/wikipedia-tool.ts +++ b/examples/agent/wikipedia-tool.ts @@ -18,6 +18,6 @@ async function main() { console.log(response); } -main().then(() => { +void main().then(() => { console.log("Done"); }); diff --git a/examples/astradb/example.ts b/examples/astradb/example.ts index 67b0170bc..92831d890 100644 --- a/examples/astradb/example.ts +++ b/examples/astradb/example.ts @@ -55,4 +55,4 @@ async function main() { } } -main(); +void main(); diff --git a/examples/astradb/load.ts b/examples/astradb/load.ts index d1982505b..bc306e633 100644 --- a/examples/astradb/load.ts +++ b/examples/astradb/load.ts @@ -27,4 +27,4 @@ async function main() { } } -main(); +void main(); diff --git a/examples/astradb/query.ts b/examples/astradb/query.ts index 546920a8b..ff8cb98f4 100644 --- a/examples/astradb/query.ts +++ b/examples/astradb/query.ts @@ -23,4 +23,4 @@ async function main() { } } -main(); +void main(); diff --git a/examples/chromadb/preFilters.ts b/examples/chromadb/preFilters.ts index df5da1c86..5265e201d 100644 --- a/examples/chromadb/preFilters.ts +++ b/examples/chromadb/preFilters.ts @@ -54,4 +54,4 @@ async function main() { } } -main(); +void main(); diff --git a/examples/chromadb/test.ts b/examples/chromadb/test.ts index c901e82b3..f1084566e 100644 --- a/examples/chromadb/test.ts +++ b/examples/chromadb/test.ts @@ -37,4 +37,4 @@ async function main() { } } -main(); +void main(); diff --git a/examples/evaluation/correctness.ts b/examples/evaluation/correctness.ts index 4d920a062..f9f9b7cbb 100644 --- a/examples/evaluation/correctness.ts +++ b/examples/evaluation/correctness.ts @@ -22,4 +22,4 @@ However, general relativity, published in 1915, extended these ideas to include console.log(result); } -main(); +void main(); diff --git a/examples/evaluation/faithfulness.ts b/examples/evaluation/faithfulness.ts index 8456e3f47..f5b48288f 100644 --- a/examples/evaluation/faithfulness.ts +++ b/examples/evaluation/faithfulness.ts @@ -36,4 +36,4 @@ async function main() { console.log(result); } -main(); +void main(); diff --git a/examples/evaluation/relevancy.ts b/examples/evaluation/relevancy.ts index 2467d66fd..91360783c 100644 --- a/examples/evaluation/relevancy.ts +++ b/examples/evaluation/relevancy.ts @@ -37,4 +37,4 @@ async function main() { console.log(result); } -main(); +void main(); diff --git a/examples/milvus/load.ts b/examples/milvus/load.ts index cb4bd19ba..38a62080e 100644 --- a/examples/milvus/load.ts +++ b/examples/milvus/load.ts @@ -23,4 +23,4 @@ async function main() { } } -main(); +void main(); diff --git a/examples/milvus/query.ts b/examples/milvus/query.ts index 38ad3a7b1..ff33fc69a 100644 --- a/examples/milvus/query.ts +++ b/examples/milvus/query.ts @@ -22,4 +22,4 @@ async function main() { } } -main(); +void main(); diff --git a/examples/mongo.ts b/examples/mongo.ts index 6cabbfe35..24f245ea3 100644 --- a/examples/mongo.ts +++ b/examples/mongo.ts @@ -61,4 +61,4 @@ async function main() { } } -main(); +void main(); diff --git a/examples/mongodb/1_import.ts b/examples/mongodb/1_import.ts index 73d6a3a87..a24d16c9f 100644 --- a/examples/mongodb/1_import.ts +++ b/examples/mongodb/1_import.ts @@ -31,4 +31,4 @@ async function importJsonToMongo() { } // Run the import function -importJsonToMongo(); +void importJsonToMongo(); diff --git a/examples/mongodb/3_query.ts b/examples/mongodb/3_query.ts index 9585d90a8..d8158dc49 100644 --- a/examples/mongodb/3_query.ts +++ b/examples/mongodb/3_query.ts @@ -27,4 +27,4 @@ async function query() { await client.close(); } -query(); +void query(); diff --git a/examples/multimodal/clip.ts b/examples/multimodal/clip.ts index 6d02b7ea9..f3eaa984d 100644 --- a/examples/multimodal/clip.ts +++ b/examples/multimodal/clip.ts @@ -30,4 +30,4 @@ async function main() { console.log(`Similarity between "${text2}" and the image is ${sim2}`); } -main(); +void main(); diff --git a/examples/nodeParser/MarkdownNodeParser.ts b/examples/nodeParser/MarkdownNodeParser.ts index 3ff7b4d99..acb3146e7 100644 --- a/examples/nodeParser/MarkdownNodeParser.ts +++ b/examples/nodeParser/MarkdownNodeParser.ts @@ -21,4 +21,4 @@ Sub-header content console.log(splits); } -main(); +void main(); diff --git a/examples/pg-vector-store/load-docs.ts b/examples/pg-vector-store/load-docs.ts index 829bb39b8..32e140041 100755 --- a/examples/pg-vector-store/load-docs.ts +++ b/examples/pg-vector-store/load-docs.ts @@ -32,7 +32,7 @@ async function main(args: any) { console.log(`Found ${count} files`); console.log(`Importing contents from ${count} files in ${sourceDir}`); - var fileName = ""; + const fileName = ""; try { // Passing callback fn to the ctor here // will enable looging to console. @@ -42,7 +42,7 @@ async function main(args: any) { const pgvs = new PGVectorStore(); pgvs.setCollection(sourceDir); - pgvs.clearCollection(); + await pgvs.clearCollection(); const ctx = await storageContextFromDefaults({ vectorStore: pgvs }); @@ -65,4 +65,4 @@ async function main(args: any) { process.exit(0); } -main(process.argv).catch((err) => console.error(err)); +void main(process.argv).catch((err) => console.error(err)); diff --git a/examples/pinecone-vector-store/load-docs.ts b/examples/pinecone-vector-store/load-docs.ts index 12a50f546..d5d485021 100755 --- a/examples/pinecone-vector-store/load-docs.ts +++ b/examples/pinecone-vector-store/load-docs.ts @@ -32,7 +32,7 @@ async function main(args: any) { console.log(`Found ${count} files`); console.log(`Importing contents from ${count} files in ${sourceDir}`); - var fileName = ""; + const fileName = ""; try { // Passing callback fn to the ctor here // will enable looging to console. @@ -63,4 +63,4 @@ async function main(args: any) { process.exit(0); } -main(process.argv).catch((err) => console.error(err)); +void main(process.argv).catch((err) => console.error(err)); diff --git a/examples/prompts/promptMixin.ts b/examples/prompts/promptMixin.ts index bd60fd375..7200d526e 100644 --- a/examples/prompts/promptMixin.ts +++ b/examples/prompts/promptMixin.ts @@ -45,4 +45,4 @@ async function main() { await queryEngine.query({ query }); } -main(); +void main(); diff --git a/examples/qdrantdb/preFilters.ts b/examples/qdrantdb/preFilters.ts index 0cc105a52..35a04e04a 100644 --- a/examples/qdrantdb/preFilters.ts +++ b/examples/qdrantdb/preFilters.ts @@ -79,4 +79,4 @@ async function main() { } } -main(); +void main(); diff --git a/examples/readers/src/docx.ts b/examples/readers/src/docx.ts index fee35b099..2e1a1a16c 100644 --- a/examples/readers/src/docx.ts +++ b/examples/readers/src/docx.ts @@ -20,4 +20,4 @@ async function main() { console.log(`Test query > ${SAMPLE_QUERY}:\n`, response.toString()); } -main(); +void main(); diff --git a/examples/readers/src/markdown.ts b/examples/readers/src/markdown.ts index e9fb52e46..4037f745e 100644 --- a/examples/readers/src/markdown.ts +++ b/examples/readers/src/markdown.ts @@ -20,4 +20,4 @@ async function main() { console.log(`Test query > ${SAMPLE_QUERY}:\n`, response.toString()); } -main(); +void main(); diff --git a/examples/recipes/cost-analysis.ts b/examples/recipes/cost-analysis.ts index c27a8c6c8..1070118b0 100644 --- a/examples/recipes/cost-analysis.ts +++ b/examples/recipes/cost-analysis.ts @@ -31,7 +31,7 @@ Settings.callbackManager.on("llm-end", (event) => { const question = "Hello, how are you?"; console.log("Question:", question); -llm +void llm .chat({ stream: true, messages: [ diff --git a/examples/routerQueryEngine.ts b/examples/routerQueryEngine.ts index d28f9e30d..5bd169008 100644 --- a/examples/routerQueryEngine.ts +++ b/examples/routerQueryEngine.ts @@ -65,4 +65,4 @@ async function main() { }); } -main().then(() => console.log("Done")); +void main().then(() => console.log("Done")); diff --git a/examples/split.ts b/examples/split.ts index ca077f826..ce070c5f3 100644 --- a/examples/split.ts +++ b/examples/split.ts @@ -13,4 +13,4 @@ async function main() { console.log(chunks); } -main(); +void main(); diff --git a/packages/core/src/indices/keyword/index.ts b/packages/core/src/indices/keyword/index.ts index 3fedcef49..2f0441e0c 100644 --- a/packages/core/src/indices/keyword/index.ts +++ b/packages/core/src/indices/keyword/index.ts @@ -278,7 +278,7 @@ export class KeywordTableIndex extends BaseIndex<KeywordTable> { serviceContext = serviceContext ?? serviceContextFromDefaults({}); const docStore = storageContext.docStore; - docStore.addDocuments(documents, true); + await docStore.addDocuments(documents, true); for (const doc of documents) { docStore.setDocumentHash(doc.id_, doc.hash); } diff --git a/packages/core/src/indices/summary/index.ts b/packages/core/src/indices/summary/index.ts index 140347963..54f381738 100644 --- a/packages/core/src/indices/summary/index.ts +++ b/packages/core/src/indices/summary/index.ts @@ -135,7 +135,7 @@ export class SummaryIndex extends BaseIndex<IndexList> { serviceContext = serviceContext; const docStore = storageContext.docStore; - docStore.addDocuments(documents, true); + await docStore.addDocuments(documents, true); for (const doc of documents) { docStore.setDocumentHash(doc.id_, doc.hash); } diff --git a/packages/core/src/indices/vectorStore/index.ts b/packages/core/src/indices/vectorStore/index.ts index 06f5c20c9..5619f7cb8 100644 --- a/packages/core/src/indices/vectorStore/index.ts +++ b/packages/core/src/indices/vectorStore/index.ts @@ -364,7 +364,7 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> { vectorStore: VectorStore, refDocId: string, ): Promise<void> { - vectorStore.delete(refDocId); + await vectorStore.delete(refDocId); if (!vectorStore.storesText) { const refDocInfo = await this.docStore.getRefDocInfo(refDocId); @@ -372,7 +372,7 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> { if (refDocInfo) { for (const nodeId of refDocInfo.nodeIds) { this.indexStruct.delete(nodeId); - vectorStore.delete(nodeId); + await vectorStore.delete(nodeId); } } await this.indexStore.addIndexStruct(this.indexStruct); diff --git a/packages/core/src/ingestion/strategies/DuplicatesStrategy.ts b/packages/core/src/ingestion/strategies/DuplicatesStrategy.ts index 096b27c19..3aee977bc 100644 --- a/packages/core/src/ingestion/strategies/DuplicatesStrategy.ts +++ b/packages/core/src/ingestion/strategies/DuplicatesStrategy.ts @@ -25,7 +25,7 @@ export class DuplicatesStrategy implements TransformComponent { } } - this.docStore.addDocuments(nodesToRun, true); + await this.docStore.addDocuments(nodesToRun, true); return nodesToRun; } diff --git a/packages/core/src/ingestion/strategies/UpsertsStrategy.ts b/packages/core/src/ingestion/strategies/UpsertsStrategy.ts index 1a4eeca7f..b562b1e42 100644 --- a/packages/core/src/ingestion/strategies/UpsertsStrategy.ts +++ b/packages/core/src/ingestion/strategies/UpsertsStrategy.ts @@ -26,7 +26,7 @@ export class UpsertsStrategy implements TransformComponent { } } // add non-duplicate docs - this.docStore.addDocuments(dedupedNodes, true); + await this.docStore.addDocuments(dedupedNodes, true); return dedupedNodes; } } diff --git a/packages/core/src/objects/base.ts b/packages/core/src/objects/base.ts index 2934de25f..b7bd96399 100644 --- a/packages/core/src/objects/base.ts +++ b/packages/core/src/objects/base.ts @@ -170,10 +170,10 @@ export class ObjectIndex { return new ObjectIndex(index, objectMapping); } - insertObject(obj: any): void { + async insertObject(obj: any): Promise<void> { this._objectNodeMapping.addObj(obj); const node = this._objectNodeMapping.toNode(obj); - this._index.insertNodes([node]); + await this._index.insertNodes([node]); } get tools(): Record<string, BaseTool> { diff --git a/packages/core/src/storage/docStore/KVDocumentStore.ts b/packages/core/src/storage/docStore/KVDocumentStore.ts index c18d233c1..ac644faba 100644 --- a/packages/core/src/storage/docStore/KVDocumentStore.ts +++ b/packages/core/src/storage/docStore/KVDocumentStore.ts @@ -70,7 +70,7 @@ export class KVDocumentStore extends BaseDocumentStore { metadata.refDocId = doc.sourceNode.nodeId!; } - this.kvstore.put(nodeKey, metadata, this.metadataCollection); + await this.kvstore.put(nodeKey, metadata, this.metadataCollection); } } @@ -126,9 +126,9 @@ export class KVDocumentStore extends BaseDocumentStore { !_.pull(refDocInfo.nodeIds, docId); if (refDocInfo.nodeIds.length > 0) { - this.kvstore.put(refDocId, refDocInfo, this.refDocCollection); + await this.kvstore.put(refDocId, refDocInfo, this.refDocCollection); } - this.kvstore.delete(refDocId, this.metadataCollection); + await this.kvstore.delete(refDocId, this.metadataCollection); } } diff --git a/packages/core/src/storage/vectorStore/MilvusVectorStore.ts b/packages/core/src/storage/vectorStore/MilvusVectorStore.ts index 0f06d7b73..0a5f3f107 100644 --- a/packages/core/src/storage/vectorStore/MilvusVectorStore.ts +++ b/packages/core/src/storage/vectorStore/MilvusVectorStore.ts @@ -167,7 +167,7 @@ export class MilvusVectorStore implements VectorStore { refDocId: string, deleteOptions?: Omit<DeleteReq, "ids">, ): Promise<void> { - this.ensureCollection(); + await this.ensureCollection(); await this.milvusClient.delete({ ids: [refDocId], diff --git a/packages/core/src/storage/vectorStore/PGVectorStore.ts b/packages/core/src/storage/vectorStore/PGVectorStore.ts index 74faa5055..bc5954245 100644 --- a/packages/core/src/storage/vectorStore/PGVectorStore.ts +++ b/packages/core/src/storage/vectorStore/PGVectorStore.ts @@ -94,7 +94,7 @@ export class PGVectorStore implements VectorStore { await db.connect(); // Check vector extension - db.query("CREATE EXTENSION IF NOT EXISTS vector"); + await db.query("CREATE EXTENSION IF NOT EXISTS vector"); await registerType(db); // Check schema, table(s), index(es) diff --git a/packages/core/src/storage/vectorStore/PineconeVectorStore.ts b/packages/core/src/storage/vectorStore/PineconeVectorStore.ts index 515995469..e537ca234 100644 --- a/packages/core/src/storage/vectorStore/PineconeVectorStore.ts +++ b/packages/core/src/storage/vectorStore/PineconeVectorStore.ts @@ -142,11 +142,11 @@ export class PineconeVectorStore implements VectorStore { */ async query( query: VectorStoreQuery, - options?: any, + _options?: any, ): Promise<VectorStoreQueryResult> { const filter = this.toPineconeFilter(query.filters); - var options: any = { + const defaultOptions: any = { vector: query.queryEmbedding, topK: query.similarityTopK, includeValues: true, @@ -155,7 +155,7 @@ export class PineconeVectorStore implements VectorStore { }; const idx = await this.index(); - const results = await idx.query(options); + const results = await idx.query(defaultOptions); const idList = results.matches.map((row) => row.id); const records: FetchResponse<any> = await idx.fetch(idList); diff --git a/packages/core/tests/indices/VectorStoreIndex.test.ts b/packages/core/tests/indices/VectorStoreIndex.test.ts index 2d05195d4..50365b59e 100644 --- a/packages/core/tests/indices/VectorStoreIndex.test.ts +++ b/packages/core/tests/indices/VectorStoreIndex.test.ts @@ -63,9 +63,7 @@ describe.sequential("VectorStoreIndex", () => { expect(entries[0]).toBe(entries[1]); }); - afterAll(async () => { - // TODO: VectorStoreIndex.fromDocuments running twice is causing a cleanup issue - await new Promise((resolve) => setTimeout(resolve, 100)); + afterAll(() => { rmSync(testDir, { recursive: true }); }); }); diff --git a/packages/core/tests/objects/ObjectIndex.test.ts b/packages/core/tests/objects/ObjectIndex.test.ts index 356657919..cd74ac261 100644 --- a/packages/core/tests/objects/ObjectIndex.test.ts +++ b/packages/core/tests/objects/ObjectIndex.test.ts @@ -109,7 +109,7 @@ describe("ObjectIndex", () => { expect(Object.keys(tools).length).toBe(1); - objectRetriever.insertObject(tool2); + await objectRetriever.insertObject(tool2); tools = objectRetriever.tools; diff --git a/packages/core/tests/utility/mockOpenAI.ts b/packages/core/tests/utility/mockOpenAI.ts index 8fac02b5b..97fd1e418 100644 --- a/packages/core/tests/utility/mockOpenAI.ts +++ b/packages/core/tests/utility/mockOpenAI.ts @@ -20,7 +20,7 @@ export function mockLlmGeneration({ const chunks = text.split("-"); for (let i = 0; i < chunks.length; i++) { const chunk = chunks[i]; - callbackManager?.onLLMStream({ + await callbackManager?.onLLMStream({ index: i, token: { id: "id", @@ -39,7 +39,7 @@ export function mockLlmGeneration({ }, }); } - callbackManager?.onLLMStream({ + await callbackManager?.onLLMStream({ index: chunks.length, isDone: true, }); @@ -121,7 +121,7 @@ export function mocStructuredkLlmGeneration({ const chunks = text.split("-"); for (let i = 0; i < chunks.length; i++) { const chunk = chunks[i]; - callbackManager?.onLLMStream({ + await callbackManager?.onLLMStream({ index: i, token: { id: "id", @@ -140,7 +140,7 @@ export function mocStructuredkLlmGeneration({ }, }); } - callbackManager?.onLLMStream({ + await callbackManager?.onLLMStream({ index: chunks.length, isDone: true, }); diff --git a/packages/eslint-config-custom/index.js b/packages/eslint-config-custom/index.js index 41427af2b..cb717fde3 100644 --- a/packages/eslint-config-custom/index.js +++ b/packages/eslint-config-custom/index.js @@ -1,7 +1,58 @@ module.exports = { - extends: ["next", "turbo", "prettier"], + extends: [ + "next", + "turbo", + "prettier", + "plugin:@typescript-eslint/recommended-type-checked-only", + ], rules: { "@next/next/no-html-link-for-pages": "off", + "@typescript-eslint/no-floating-promises": [ + "error", + { + ignoreIIFE: true, + }, + ], + "@typescript-eslint/await-thenable": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/ban-types": "off", + "no-array-constructor": "off", + "@typescript-eslint/no-array-constructor": "off", + "@typescript-eslint/no-base-to-string": "off", + "@typescript-eslint/no-duplicate-enum-values": "off", + "@typescript-eslint/no-duplicate-type-constituents": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-extra-non-null-assertion": "off", + "@typescript-eslint/no-for-in-array": "off", + "no-implied-eval": "off", + "@typescript-eslint/no-implied-eval": "off", + "no-loss-of-precision": "off", + "@typescript-eslint/no-loss-of-precision": "off", + "@typescript-eslint/no-misused-new": "off", + "@typescript-eslint/no-misused-promises": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-non-null-asserted-optional-chain": "off", + "@typescript-eslint/no-redundant-type-constituents": "off", + "@typescript-eslint/no-this-alias": "off", + "@typescript-eslint/no-unnecessary-type-assertion": "off", + "@typescript-eslint/no-unnecessary-type-constraint": "off", + "@typescript-eslint/no-unsafe-argument": "off", + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unsafe-declaration-merging": "off", + "@typescript-eslint/no-unsafe-enum-comparison": "off", + "@typescript-eslint/no-unsafe-member-access": "off", + "@typescript-eslint/no-unsafe-return": "off", + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": "off", + "@typescript-eslint/no-var-requires": "off", + "@typescript-eslint/prefer-as-const": "off", + "require-await": "off", + "@typescript-eslint/require-await": "off", + "@typescript-eslint/restrict-plus-operands": "off", + "@typescript-eslint/restrict-template-expressions": "off", + "@typescript-eslint/triple-slash-reference": "off", + "@typescript-eslint/unbound-method": "off", }, // NOTE I think because we've temporarily removed all of the NextJS stuff // from the turborepo not having next in the devDeps causes an error on only @@ -13,6 +64,8 @@ module.exports = { babelOptions: { presets: [require.resolve("next/babel")], }, + project: true, + __tsconfigRootDir: __dirname, }, settings: { react: { diff --git a/packages/eslint-config-custom/package.json b/packages/eslint-config-custom/package.json index 055b7262d..ce4cbd829 100644 --- a/packages/eslint-config-custom/package.json +++ b/packages/eslint-config-custom/package.json @@ -8,7 +8,8 @@ "eslint-config-next": "^13.5.6", "eslint-config-prettier": "^8.10.0", "eslint-config-turbo": "^1.11.3", - "eslint-plugin-react": "7.28.0" + "eslint-plugin-react": "7.28.0", + "@typescript-eslint/eslint-plugin": "^7.5.0" }, "publishConfig": { "access": "public" diff --git a/packages/experimental/examples/jsonQueryEngine.ts b/packages/experimental/examples/jsonQueryEngine.ts index 2757e60f6..44dc9cf08 100644 --- a/packages/experimental/examples/jsonQueryEngine.ts +++ b/packages/experimental/examples/jsonQueryEngine.ts @@ -111,4 +111,4 @@ async function main() { console.log({ rawResponse }); } -main(); +void main(); diff --git a/packages/experimental/examples/tsconfig.json b/packages/experimental/examples/tsconfig.json new file mode 100644 index 000000000..722089b2e --- /dev/null +++ b/packages/experimental/examples/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "es2017", + "module": "esnext", + "moduleResolution": "bundler", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "outDir": "./lib", + "tsBuildInfoFile": "./lib/.tsbuildinfo", + "incremental": true, + "composite": true + }, + "ts-node": { + "files": true, + "compilerOptions": { + "module": "commonjs" + } + }, + "include": ["./**/*.ts"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1dbf088e6..8d1774216 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -489,6 +489,9 @@ importers: packages/eslint-config-custom: dependencies: + '@typescript-eslint/eslint-plugin': + specifier: ^7.5.0 + version: 7.5.0(@typescript-eslint/parser@7.5.0)(eslint@8.57.0)(typescript@5.4.3) eslint-config-next: specifier: ^13.5.6 version: 13.5.6(eslint@8.57.0)(typescript@5.4.3) @@ -4701,7 +4704,6 @@ packages: /@types/semver@7.5.6: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} - dev: true /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -4759,6 +4761,35 @@ packages: dependencies: '@types/yargs-parser': 21.0.3 + /@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-HpqNTH8Du34nLxbKgVMGljZMG0rJd2O9ecvr2QLYp+7512ty1j42KnsFwspPXg1Vh8an9YImf6CokUBltisZFQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.5.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/scope-manager': 7.5.0 + '@typescript-eslint/type-utils': 7.5.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/utils': 7.5.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/visitor-keys': 7.5.0 + debug: 4.3.4 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.0.3(typescript@5.4.3) + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/parser@6.19.1(eslint@8.57.0)(typescript@5.4.3): resolution: {integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -4780,6 +4811,27 @@ packages: - supports-color dev: false + /@typescript-eslint/parser@7.5.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.5.0 + '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.4.3) + '@typescript-eslint/visitor-keys': 7.5.0 + debug: 4.3.4 + eslint: 8.57.0 + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/scope-manager@6.19.1: resolution: {integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==} engines: {node: ^16.0.0 || >=18.0.0} @@ -4788,6 +4840,34 @@ packages: '@typescript-eslint/visitor-keys': 6.19.1 dev: false + /@typescript-eslint/scope-manager@7.5.0: + resolution: {integrity: sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/visitor-keys': 7.5.0 + dev: false + + /@typescript-eslint/type-utils@7.5.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-A021Rj33+G8mx2Dqh0nMO9GyjjIBK3MqgVgZ2qlKf6CJy51wY/lkkFqq3TqqnH34XyAHUkq27IjlUkWlQRpLHw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.4.3) + '@typescript-eslint/utils': 7.5.0(eslint@8.57.0)(typescript@5.4.3) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.0.3(typescript@5.4.3) + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/types@4.33.0: resolution: {integrity: sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} @@ -4803,6 +4883,11 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: false + /@typescript-eslint/types@7.5.0: + resolution: {integrity: sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==} + engines: {node: ^18.18.0 || >=20.0.0} + dev: false + /@typescript-eslint/typescript-estree@4.33.0(typescript@3.9.10): resolution: {integrity: sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==} engines: {node: ^10.12.0 || >=12.0.0} @@ -4867,6 +4952,47 @@ packages: - supports-color dev: false + /@typescript-eslint/typescript-estree@7.5.0(typescript@5.4.3): + resolution: {integrity: sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/visitor-keys': 7.5.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.0.3(typescript@5.4.3) + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/utils@7.5.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-3vZl9u0R+/FLQcpy2EHyRGNqAS/ofJ3Ji8aebilfJe+fobK8+LbIFmrHciLVDxjDoONmufDcnVSF38KwMEOjzw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 7.5.0 + '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.4.3) + eslint: 8.57.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + /@typescript-eslint/visitor-keys@4.33.0: resolution: {integrity: sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} @@ -4891,6 +5017,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: false + /@typescript-eslint/visitor-keys@7.5.0: + resolution: {integrity: sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.5.0 + eslint-visitor-keys: 3.4.3 + dev: false + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -7464,7 +7598,7 @@ packages: eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.5.0)(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) eslint-plugin-react: 7.33.2(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) @@ -7513,7 +7647,7 @@ packages: enhanced-resolve: 5.15.0 eslint: 8.57.0 eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.5.0)(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -7555,7 +7689,36 @@ packages: - supports-color dev: false - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.5.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 7.5.0(eslint@8.57.0)(typescript@5.4.3) + debug: 3.2.7 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.5.0)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -7565,7 +7728,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.19.1(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/parser': 7.5.0(eslint@8.57.0)(typescript@5.4.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -7574,7 +7737,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.5.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 -- GitLab