@memberjunction/ai-vector-sync 0.9.8 → 0.9.12

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.
@@ -0,0 +1,8 @@
1
+ import { DuplicateRecordSearchParams, DuplicateRecordSearchResult } from "./generic/duplicateRecords.types";
2
+ import { VectorSyncBase } from "./models/vectorSyncBase";
3
+ export declare class DuplicateRecordDetector extends VectorSyncBase {
4
+ getDuplicateRecords(params: DuplicateRecordSearchParams): Promise<DuplicateRecordSearchResult>;
5
+ private getEntityDocumennt;
6
+ private getEntityRecord;
7
+ private processDuplicateRecords;
8
+ }
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DuplicateRecordDetector = void 0;
4
+ const ai_1 = require("@memberjunction/ai");
5
+ const vectorSyncBase_1 = require("./models/vectorSyncBase");
6
+ const ai_mistral_1 = require("@memberjunction/ai-mistral");
7
+ const ai_vectors_pinecone_1 = require("@memberjunction/ai-vectors-pinecone");
8
+ class DuplicateRecordDetector extends vectorSyncBase_1.VectorSyncBase {
9
+ async getDuplicateRecords(params) {
10
+ this.start();
11
+ await this.setupDBConnection();
12
+ console.log("Connected to SQL Server");
13
+ console.log("Syncing entities...");
14
+ const pineconeAPIKey = (0, ai_1.GetAIAPIKey)("PineconeDatabase");
15
+ const mistralAPIKey = (0, ai_1.GetAIAPIKey)("MistralLLM");
16
+ this._pineconeDB = new ai_vectors_pinecone_1.PineconeDatabase(pineconeAPIKey);
17
+ this._embedding = new ai_mistral_1.MistralLLM(mistralAPIKey);
18
+ this._languageModel = new ai_mistral_1.MistralLLM(mistralAPIKey);
19
+ const entitiyDocument = await this.getEntityDocumennt(params.entitiyDocumentID);
20
+ console.log("Entity Document: ", entitiyDocument);
21
+ if (!entitiyDocument) {
22
+ console.log("Entity Document not found");
23
+ return { entityID: entitiyDocument.EntityID, duplicates: [] };
24
+ }
25
+ console.log("Registering class", entitiyDocument.Type);
26
+ const entityRecord = await this.getEntityRecord({ entityName: entitiyDocument.Type, recordID: params.recordID });
27
+ console.log("Entity Record: ", entityRecord);
28
+ if (!entityRecord) {
29
+ console.log("Entity Record not found");
30
+ return { entityID: entitiyDocument.EntityID, duplicates: [] };
31
+ }
32
+ const template = super.parseStringTemplate(entitiyDocument.Template, entityRecord);
33
+ const embedding = await this._languageModel.EmbedText({ text: template, model: "mistral-embed" });
34
+ const vector = embedding.data;
35
+ const topK = params.limit || 10;
36
+ const queryResult = await this._pineconeDB.queryRecords({ vector: vector, topK: topK, includeMetadata: true, includeValues: true });
37
+ return this.processDuplicateRecords(queryResult.data.matches, entitiyDocument);
38
+ }
39
+ async getEntityDocumennt(id) {
40
+ const rvResult = await this._runView.RunView({
41
+ EntityName: "Entity Documents",
42
+ ExtraFilter: `ID = '${id}'`
43
+ });
44
+ if (!rvResult || rvResult.RowCount === 0) {
45
+ return null;
46
+ }
47
+ else {
48
+ const vdResults = rvResult?.Results;
49
+ const entityDocument = vdResults[0];
50
+ return entityDocument;
51
+ }
52
+ }
53
+ async getEntityRecord(params) {
54
+ const rvResult = await this._runView.RunView({
55
+ EntityName: params.entityName,
56
+ ExtraFilter: `ID = '${params.recordID}'`
57
+ }, this._userInfo);
58
+ if (!rvResult || rvResult.RowCount === 0) {
59
+ return null;
60
+ }
61
+ else {
62
+ const vdResults = rvResult?.Results;
63
+ const entityDocument = vdResults[0];
64
+ return entityDocument;
65
+ }
66
+ }
67
+ processDuplicateRecords(queryResult, entityDocument) {
68
+ let results = {
69
+ entityID: entityDocument.EntityID,
70
+ duplicates: []
71
+ };
72
+ for (let duplicate of queryResult) {
73
+ if (duplicate.score > 1) {
74
+ continue;
75
+ }
76
+ results.duplicates.push({
77
+ recordID: Number(duplicate.id),
78
+ score: duplicate.score
79
+ });
80
+ }
81
+ return results;
82
+ }
83
+ }
84
+ exports.DuplicateRecordDetector = DuplicateRecordDetector;
85
+ //# sourceMappingURL=duplicateRecordDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplicateRecordDetector.js","sourceRoot":"","sources":["../src/duplicateRecordDetector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { PrimaryKeyValue } from "@memberjunction/core";
2
+ export type DuplicateRecordSearchParams = {
3
+ entityDocumentID: number;
4
+ PrimaryKeyValues: PrimaryKeyValue[];
5
+ recordID: number;
6
+ entityID?: number;
7
+ entityName?: string;
8
+ storedProcedureName?: string;
9
+ options?: any;
10
+ limit?: number;
11
+ range?: number;
12
+ };
13
+ export type DuplicateRecordSearchResult = {
14
+ entityID: number;
15
+ duplicates: PotentialDuplicate[];
16
+ };
17
+ export type PotentialDuplicate = {
18
+ PrimaryKeyValues: PrimaryKeyValue[];
19
+ ProbabilityScore: number;
20
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=duplicateRecords.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplicateRecords.types.js","sourceRoot":"","sources":["../../src/generic/duplicateRecords.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import { EntitySyncConfig } from '../generic/entitySyncConfig.types';
2
+ import { SQLServerDataProvider } from "@memberjunction/sqlserver-dataprovider";
3
+ import { IMetadataProvider, RunView, UserInfo } from "@memberjunction/core";
4
+ import { PineconeDatabase } from '@memberjunction/ai-vectors-pinecone';
5
+ import { Request } from 'mssql';
6
+ import { BaseLLM } from '@memberjunction/ai';
7
+ export declare class EntityVectorSyncer {
8
+ _provider: SQLServerDataProvider;
9
+ _userInfo: UserInfo;
10
+ _runView: RunView;
11
+ _startTime: Date;
12
+ _endTime: Date;
13
+ _pineconeDB: PineconeDatabase;
14
+ _embedding: BaseLLM;
15
+ syncEntityDocuments(): Promise<void>;
16
+ getJSONData: () => EntitySyncConfig[];
17
+ setupDBConnection(): Promise<void>;
18
+ setupAndGetSQLServerProvider: () => Promise<SQLServerDataProvider>;
19
+ getDefaultUser(provider: IMetadataProvider): UserInfo;
20
+ private timer;
21
+ syncEntityDocument(config: EntitySyncConfig): Promise<any>;
22
+ getEntityDocument(entityDocumentID: number): Promise<EntityDocument>;
23
+ getRelatedEntityRecords(entityDocument: EntityDocument): Promise<any>;
24
+ private getEntityRecordDocument;
25
+ private upsertEntityRecordDocument;
26
+ private executeStoredProcedure;
27
+ mapObjectPropertiesToRequest: (obj: any, r: Request) => void;
28
+ private parseStringTemplate;
29
+ private start;
30
+ private end;
31
+ private timeDiff;
32
+ private saveJSONData;
33
+ }
34
+ type EntityDocument = {
35
+ ID: number;
36
+ Name: string;
37
+ EntityID: number;
38
+ TypeID: number;
39
+ Status: string;
40
+ Template: string;
41
+ CreatedAt: Date;
42
+ UpdatedAt: Date;
43
+ Type: string;
44
+ VectorIndexID: number;
45
+ VectorID: number;
46
+ };
47
+ export {};
@@ -0,0 +1,276 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.EntityVectorSyncer = void 0;
30
+ const fs = __importStar(require("fs"));
31
+ const db_1 = __importDefault(require("../db/db"));
32
+ const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
33
+ const dbAI_1 = __importDefault(require("../db/dbAI"));
34
+ const core_1 = require("@memberjunction/core");
35
+ const config_1 = require("../config");
36
+ const ai_vectors_pinecone_1 = require("@memberjunction/ai-vectors-pinecone");
37
+ const ai_1 = require("@memberjunction/ai");
38
+ const ai_mistral_1 = require("@memberjunction/ai-mistral");
39
+ class EntityVectorSyncer {
40
+ _provider;
41
+ _userInfo;
42
+ _runView;
43
+ _startTime;
44
+ _endTime;
45
+ _pineconeDB;
46
+ _embedding;
47
+ async syncEntityDocuments() {
48
+ this.start();
49
+ await this.setupDBConnection();
50
+ console.log("Connected to SQL Server");
51
+ console.log("Syncing entities...");
52
+ const pineconeAPIKey = (0, ai_1.GetAIAPIKey)("PineconeDatabase");
53
+ console.log("Pinecone API Key: ", pineconeAPIKey);
54
+ const mistralAPIKey = (0, ai_1.GetAIAPIKey)("MistralLLM");
55
+ console.log("Mistral API Key: ", mistralAPIKey);
56
+ this._pineconeDB = new ai_vectors_pinecone_1.PineconeDatabase(pineconeAPIKey);
57
+ this._embedding = new ai_mistral_1.MistralLLM(mistralAPIKey);
58
+ const entityConfigs = this.getJSONData();
59
+ const activeCount = entityConfigs.filter((entity) => entity.IncludeInSync).length;
60
+ console.log(`${entityConfigs.length} entity config(s) found, ${activeCount} marked active`);
61
+ for (const entityConfig of entityConfigs) {
62
+ if (entityConfig.IncludeInSync) {
63
+ console.log(`Syncing entity document with ID ${entityConfig.EntityDocumentID}`);
64
+ await this.syncEntityDocument(entityConfig);
65
+ entityConfig.LastRunDate = new Date().toISOString();
66
+ }
67
+ else {
68
+ console.log(`Skipping entity document with ID ${entityConfig.EntityDocumentID}`);
69
+ }
70
+ }
71
+ this.saveJSONData(entityConfigs);
72
+ this.end();
73
+ console.log(`Sync completed in ${this.timeDiff()} seconds`);
74
+ }
75
+ getJSONData = () => {
76
+ const entities = JSON.parse(fs.readFileSync('./data/entitiesToSync.json', 'utf-8'));
77
+ return entities;
78
+ };
79
+ async setupDBConnection() {
80
+ await db_1.default.connect();
81
+ this._provider = await this.setupAndGetSQLServerProvider();
82
+ this._userInfo = this.getDefaultUser(this._provider);
83
+ this._runView = new core_1.RunView();
84
+ }
85
+ setupAndGetSQLServerProvider = async () => {
86
+ const config = new sqlserver_dataprovider_1.SQLServerProviderConfigData(dbAI_1.default, config_1.currentUserEmail);
87
+ return await (0, sqlserver_dataprovider_1.setupSQLServerClient)(config);
88
+ };
89
+ getDefaultUser(provider) {
90
+ return new core_1.UserInfo(provider, { Email: config_1.currentUserEmail,
91
+ UserRoles: [
92
+ { UserID: 24, RoleName: "Developer", CreatedAt: new Date(), UpdatedAt: new Date(), User: "Jonathan Stfelix" },
93
+ { UserID: 24, RoleName: "UI", CreatedAt: new Date(), UpdatedAt: new Date(), User: "Jonathan Stfelix" }
94
+ ]
95
+ });
96
+ }
97
+ async timer(ms) {
98
+ return new Promise(res => setTimeout(res, ms));
99
+ }
100
+ async syncEntityDocument(config) {
101
+ const entityDocument = await this.getEntityDocument(config.EntityDocumentID);
102
+ if (!entityDocument) {
103
+ console.log(`Error: no entity document with ID ${config.EntityDocumentID} found`);
104
+ return;
105
+ }
106
+ if (entityDocument.Status !== "Active") {
107
+ console.log(`Entity document with ID ${config.EntityDocumentID} is not set to Active. Is: ${entityDocument.Status}`);
108
+ return;
109
+ }
110
+ const lastRunDate = new Date(config.LastRunDate);
111
+ console.log(`Last run date for entity document ${entityDocument.ID}: ${lastRunDate}`);
112
+ let offset = 0;
113
+ let fetchNext = 50;
114
+ let limit = 100;
115
+ let shouldContinue = true;
116
+ while (shouldContinue) {
117
+ const rvParams = {
118
+ EntityName: entityDocument.Type,
119
+ OrderBy: `ID OFFSET ${offset} ROWS FETCH NEXT ${fetchNext} ROWS ONLY`,
120
+ IgnoreMaxRows: true
121
+ };
122
+ let result = await this._runView.RunView(rvParams, this._userInfo);
123
+ console.log("processing embedding batch #", (offset / fetchNext) + 1, `of ${entityDocument.Type}-${entityDocument.Name} records`);
124
+ for (const record of result.Results) {
125
+ if (!record.ID || !record.UpdatedAt || record.UpdatedAt <= lastRunDate) {
126
+ continue;
127
+ }
128
+ const formattedTemplate = this.parseStringTemplate(entityDocument.Template, record);
129
+ const embedResponse = this._embedding.EmbedText({ text: formattedTemplate, model: null });
130
+ const embeddingRes = (await embedResponse).data;
131
+ await this.timer(100);
132
+ const recordID = record.ID;
133
+ const entityRecordDocument = await this.getEntityRecordDocument(entityDocument.EntityID, recordID, config.VectorIndexID, config.VectorID);
134
+ const erdID = entityRecordDocument ? entityRecordDocument.ID : -1;
135
+ let upsertResult = await this.upsertEntityRecordDocument({
136
+ ID: erdID,
137
+ EntityID: entityDocument.EntityID,
138
+ RecordID: recordID,
139
+ DocumentText: formattedTemplate,
140
+ VectorIndexID: config.VectorIndexID,
141
+ VectorID: config.VectorID,
142
+ VectorJSON: JSON.stringify(embeddingRes),
143
+ EntitiyRecordUpdatedAt: record.UpdatedAt
144
+ });
145
+ let vectorRecordID = upsertResult?.recordset[0].ID?.toString();
146
+ if (!vectorRecordID) {
147
+ vectorRecordID = `${entityDocument.Type}${entityDocument.Name}${recordID}`;
148
+ }
149
+ const existingRecord = (await this._pineconeDB.getRecord({ id: vectorRecordID })).data;
150
+ if (existingRecord) {
151
+ await this._pineconeDB.updateRecord({
152
+ id: null,
153
+ data: {
154
+ id: vectorRecordID,
155
+ values: embeddingRes
156
+ }
157
+ });
158
+ }
159
+ else {
160
+ const pineconeRecord = {
161
+ id: vectorRecordID,
162
+ values: embeddingRes,
163
+ metadata: {
164
+ Template: formattedTemplate
165
+ }
166
+ };
167
+ await this._pineconeDB.createRecord(pineconeRecord);
168
+ }
169
+ }
170
+ offset += fetchNext;
171
+ if (result.RowCount === 0 || offset >= limit) {
172
+ shouldContinue = false;
173
+ }
174
+ }
175
+ }
176
+ async getEntityDocument(entityDocumentID) {
177
+ const rvResult = await this._runView.RunView({
178
+ EntityName: "Entity Documents",
179
+ ExtraFilter: `ID = '${entityDocumentID}'`
180
+ }, this._userInfo);
181
+ if (!rvResult || rvResult.RowCount === 0) {
182
+ return null;
183
+ }
184
+ else {
185
+ const vdResults = rvResult?.Results;
186
+ const entityDocument = vdResults[0];
187
+ return entityDocument;
188
+ }
189
+ }
190
+ async getRelatedEntityRecords(entityDocument) {
191
+ const rvResult = await this._runView.RunView({
192
+ EntityName: "Entity Documents",
193
+ ExtraFilter: `ID = '${entityDocument.ID}'`
194
+ }, this._userInfo);
195
+ if (!rvResult || rvResult.RowCount === 0) {
196
+ return null;
197
+ }
198
+ else {
199
+ const vdResults = rvResult?.Results;
200
+ const entityDocument = vdResults[0];
201
+ return entityDocument;
202
+ }
203
+ }
204
+ async getEntityRecordDocument(entityID, recordID, VectorIndexID, VectorID) {
205
+ const rvResult = await this._runView.RunView({
206
+ EntityName: "Entity Record Documents",
207
+ ExtraFilter: `EntityID = ${entityID} AND RecordID = ${recordID} AND VectorIndexID = ${VectorIndexID} AND VectorID = ${VectorID}`,
208
+ OrderBy: 'ID'
209
+ }, this._userInfo);
210
+ if (!rvResult || rvResult.RowCount === 0) {
211
+ return null;
212
+ }
213
+ else {
214
+ const vdResults = rvResult?.Results;
215
+ const entityDocument = vdResults[0];
216
+ return entityDocument;
217
+ }
218
+ }
219
+ async upsertEntityRecordDocument(document) {
220
+ const sp = document.ID <= -1 ? "admin.spCreateEntityRecordDocument" : "admin.spUpdateEntityRecordDocument";
221
+ let params = {
222
+ ID: document.ID,
223
+ EntityID: document.EntityID,
224
+ RecordID: document.RecordID,
225
+ DocumentText: document.DocumentText,
226
+ VectorIndexID: document.VectorIndexID,
227
+ VectorID: document.VectorID,
228
+ VectorJSON: document.VectorJSON,
229
+ EntityRecordUpdatedAt: document.EntitiyRecordUpdatedAt
230
+ };
231
+ if (sp === "admin.spCreateEntityRecordDocument") {
232
+ delete params.ID;
233
+ }
234
+ const result = await this.executeStoredProcedure(sp, params);
235
+ return result;
236
+ }
237
+ async executeStoredProcedure(storedProcedure, params) {
238
+ try {
239
+ const request = db_1.default.request();
240
+ this.mapObjectPropertiesToRequest(params, request);
241
+ return request.execute(storedProcedure);
242
+ }
243
+ catch (error) {
244
+ console.log(error);
245
+ return null;
246
+ }
247
+ }
248
+ mapObjectPropertiesToRequest = (obj, r) => {
249
+ Object.keys(obj).map((key) => {
250
+ r.input(key, obj[key]);
251
+ });
252
+ };
253
+ parseStringTemplate(str, obj) {
254
+ let parts = str.split(/\$\{(?!\d)[\wæøåÆØÅ]*\}/);
255
+ let args = str.match(/[^{\}]+(?=})/g) || [];
256
+ let parameters = args.map(argument => obj[argument] || (obj[argument] === undefined ? "" : obj[argument]));
257
+ return String.raw({ raw: parts }, ...parameters);
258
+ }
259
+ start() {
260
+ this._startTime = new Date();
261
+ }
262
+ end() {
263
+ this._endTime = new Date();
264
+ }
265
+ timeDiff() {
266
+ let timeDiff = this._endTime.valueOf() - this._startTime.valueOf();
267
+ timeDiff /= 1000;
268
+ var seconds = Math.round(timeDiff);
269
+ return seconds;
270
+ }
271
+ saveJSONData(data) {
272
+ fs.writeFileSync('./data/entitiesToSync.json', JSON.stringify(data, null, 2));
273
+ }
274
+ }
275
+ exports.EntityVectorSyncer = EntityVectorSyncer;
276
+ //# sourceMappingURL=entityVectorSyncer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entityVectorSyncer.js","sourceRoot":"","sources":["../../src/models/entityVectorSyncer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,33 +1,33 @@
1
1
  {
2
- "name": "@memberjunction/ai-vector-sync",
3
- "version": "0.9.8",
4
- "description": "MemberJunction: AI Vector/Entity Sync Package - handles synchronization between Vector DB and MJ CDP Data",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "files": [
8
- "/dist"
9
- ],
10
- "scripts": {
11
- "start": "ts-node-dev src/index.ts",
12
- "build": "tsc",
13
- "test": "echo \"Error: no test specified\" && exit 1"
14
- },
15
- "author": "MemberJunction.com",
16
- "license": "ISC",
17
- "dependencies": {
18
- "@memberjunction/ai": "^0.9.160",
19
- "@memberjunction/ai-vectordb": "^0.9.4",
20
- "@memberjunction/ai-vectors": "^0.9.5",
21
- "@memberjunction/aiengine": "^0.9.58",
22
- "@memberjunction/core": "^0.9.172",
23
- "@memberjunction/global": "^0.9.153",
24
- "dotenv": "^16.0.3",
25
- "typeorm": "^0.3.20"
26
- },
27
- "devDependencies": {
28
- "@types/mssql": "^9.1.5",
29
- "@types/node": "^20.1.7",
30
- "ts-node-dev": "^2.0.0",
31
- "typescript": "^5.3.3"
32
- }
2
+ "name": "@memberjunction/ai-vector-sync",
3
+ "version": "0.9.12",
4
+ "description": "MemberJunction: AI Vector/Entity Sync Package - handles synchronization between Vector DB and MJ CDP Data",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "/dist"
9
+ ],
10
+ "scripts": {
11
+ "start": "ts-node-dev src/index.ts",
12
+ "build": "tsc",
13
+ "test": "echo \"Error: no test specified\" \u0026\u0026 exit 1"
14
+ },
15
+ "author": "MemberJunction.com",
16
+ "license": "ISC",
17
+ "dependencies": {
18
+ "@memberjunction/ai": "^0.9.165",
19
+ "@memberjunction/ai-vectordb": "^0.9.8",
20
+ "@memberjunction/ai-vectors": "^0.9.9",
21
+ "@memberjunction/aiengine": "^0.9.63",
22
+ "@memberjunction/core": "^0.9.177",
23
+ "@memberjunction/global": "^0.9.158",
24
+ "dotenv": "^16.0.3",
25
+ "typeorm": "^0.3.20"
26
+ },
27
+ "devDependencies": {
28
+ "@types/mssql": "^9.1.5",
29
+ "@types/node": "^20.1.7",
30
+ "ts-node-dev": "^2.0.0",
31
+ "typescript": "^5.3.3"
32
+ }
33
33
  }