@memberjunction/ai-vector-sync 3.3.0 → 4.0.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/config.js +14 -20
- package/dist/config.js.map +1 -1
- package/dist/db/db.d.ts +1 -1
- package/dist/db/db.d.ts.map +1 -1
- package/dist/db/db.js +8 -33
- package/dist/db/db.js.map +1 -1
- package/dist/db/dbAI.d.ts +1 -1
- package/dist/db/dbAI.d.ts.map +1 -1
- package/dist/db/dbAI.js +8 -33
- package/dist/db/dbAI.js.map +1 -1
- package/dist/generic/EntityDocumenTemplateParserBase.d.ts +12 -0
- package/dist/generic/EntityDocumenTemplateParserBase.d.ts.map +1 -1
- package/dist/generic/EntityDocumenTemplateParserBase.js +29 -12
- package/dist/generic/EntityDocumenTemplateParserBase.js.map +1 -1
- package/dist/generic/EntityDocumentTemplateParser.d.ts +16 -1
- package/dist/generic/EntityDocumentTemplateParser.d.ts.map +1 -1
- package/dist/generic/EntityDocumentTemplateParser.js +34 -16
- package/dist/generic/EntityDocumentTemplateParser.js.map +1 -1
- package/dist/generic/entitySyncConfig.types.d.ts +25 -0
- package/dist/generic/entitySyncConfig.types.d.ts.map +1 -1
- package/dist/generic/entitySyncConfig.types.js +1 -2
- package/dist/generic/vectorSync.types.d.ts +20 -0
- package/dist/generic/vectorSync.types.d.ts.map +1 -1
- package/dist/generic/vectorSync.types.js +1 -2
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -20
- package/dist/index.js.map +1 -1
- package/dist/models/BatchWorker.d.ts +33 -2
- package/dist/models/BatchWorker.d.ts.map +1 -1
- package/dist/models/BatchWorker.js +30 -16
- package/dist/models/BatchWorker.js.map +1 -1
- package/dist/models/EntityDocumentCache.d.ts +3 -0
- package/dist/models/EntityDocumentCache.d.ts.map +1 -1
- package/dist/models/EntityDocumentCache.js +17 -17
- package/dist/models/EntityDocumentCache.js.map +1 -1
- package/dist/models/PagedRecords.d.ts +10 -1
- package/dist/models/PagedRecords.d.ts.map +1 -1
- package/dist/models/PagedRecords.js +13 -6
- package/dist/models/PagedRecords.js.map +1 -1
- package/dist/models/entityVectorSync.d.ts +32 -1
- package/dist/models/entityVectorSync.d.ts.map +1 -1
- package/dist/models/entityVectorSync.js +133 -73
- package/dist/models/entityVectorSync.js.map +1 -1
- package/dist/models/workers/UpsertVectors.d.ts.map +1 -1
- package/dist/models/workers/UpsertVectors.js +12 -17
- package/dist/models/workers/UpsertVectors.js.map +1 -1
- package/dist/models/workers/VectorizeTemplates.js +23 -20
- package/dist/models/workers/VectorizeTemplates.js.map +1 -1
- package/dist/models/workers/upserter.js +5 -8
- package/dist/models/workers/upserter.js.map +1 -1
- package/package.json +19 -18
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
1
|
import { UserInfo } from '@memberjunction/core';
|
|
4
2
|
import { Transform } from 'node:stream';
|
|
5
3
|
export type TransformCallback = Parameters<Transform['_flush']>[0];
|
|
@@ -8,13 +6,36 @@ export type WorkerData<TContext = Record<string, unknown>, TRecord = Record<stri
|
|
|
8
6
|
context?: TContext;
|
|
9
7
|
};
|
|
10
8
|
export type BatchWorkerOptions<TContext = Record<string, unknown>> = {
|
|
9
|
+
/**
|
|
10
|
+
* The number of records to process in a batch
|
|
11
|
+
*/
|
|
11
12
|
batchSize?: number;
|
|
13
|
+
/**
|
|
14
|
+
* The path to the worker file used to launch a worker thread
|
|
15
|
+
*/
|
|
12
16
|
workerFile?: string;
|
|
17
|
+
/**
|
|
18
|
+
* An abitrary context to pass to the worker thread
|
|
19
|
+
*/
|
|
13
20
|
workerContext?: TContext;
|
|
21
|
+
/**
|
|
22
|
+
* The maximum number of worker threads to run concurrently
|
|
23
|
+
*/
|
|
14
24
|
concurrencyLimit?: number;
|
|
25
|
+
/**
|
|
26
|
+
* The user context to pass to the worker thread
|
|
27
|
+
*/
|
|
15
28
|
contextUser?: UserInfo;
|
|
29
|
+
/**
|
|
30
|
+
* The time to delay between api calls
|
|
31
|
+
**/
|
|
16
32
|
delayTimeMS?: number;
|
|
17
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* This class processes records in batches using a worker thread. It expects
|
|
36
|
+
* a worker file that exports a function to process the batch of records.
|
|
37
|
+
* The stream operates in object mode and emits processed records.
|
|
38
|
+
*/
|
|
18
39
|
export declare class BatchWorker<TRecord = Record<string, unknown>, TContext = Record<string, unknown>> extends Transform {
|
|
19
40
|
_batchSize: number;
|
|
20
41
|
_workerFile: string;
|
|
@@ -24,8 +45,18 @@ export declare class BatchWorker<TRecord = Record<string, unknown>, TContext = R
|
|
|
24
45
|
_buffer: Array<TRecord>;
|
|
25
46
|
_queue: Array<() => Promise<void>>;
|
|
26
47
|
_contextUser: UserInfo | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* @param {BatchWorkerOptions} options - Options for the BatchWorker
|
|
50
|
+
*/
|
|
27
51
|
constructor(options?: BatchWorkerOptions<TContext>);
|
|
52
|
+
/**
|
|
53
|
+
* Starts the next task in the queue
|
|
54
|
+
*/
|
|
28
55
|
_next(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Enqueues a task to be processed
|
|
58
|
+
* @param task - The task to enqueue
|
|
59
|
+
*/
|
|
29
60
|
_enqueue(task: () => Promise<void>): void;
|
|
30
61
|
_transform(chunk: TRecord, encoding: BufferEncoding, callback: TransformCallback): Promise<void>;
|
|
31
62
|
_flush(callback: TransformCallback): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BatchWorker.d.ts","sourceRoot":"","sources":["../../src/models/BatchWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BatchWorker.d.ts","sourceRoot":"","sources":["../../src/models/BatchWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,MAAM,MAAM,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAC9F,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACnE;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB;;QAEI;IACJ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,SAAS;IAC/G,UAAU,SAAM;IAChB,WAAW,SAAiB;IAC5B,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAM;IACtD,iBAAiB,SAAK;IACtB,QAAQ,SAAK;IAEb,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAM;IAE7B,MAAM,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM;IAExC,YAAY,EAAE,QAAQ,GAAG,SAAS,CAAa;IAE/C;;OAEG;gBACS,OAAO,GAAE,kBAAkB,CAAC,QAAQ,CAAM;IAStD;;OAEG;IACH,KAAK;IAOL;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAK5B,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB;IAiBhF,MAAM,CAAC,QAAQ,EAAE,iBAAiB;IAexC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAoB5D"}
|
|
@@ -1,31 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
_buffer = [];
|
|
13
|
-
_queue = [];
|
|
14
|
-
_contextUser = undefined;
|
|
1
|
+
import { Transform } from 'node:stream';
|
|
2
|
+
import { Worker } from 'node:worker_threads';
|
|
3
|
+
/**
|
|
4
|
+
* This class processes records in batches using a worker thread. It expects
|
|
5
|
+
* a worker file that exports a function to process the batch of records.
|
|
6
|
+
* The stream operates in object mode and emits processed records.
|
|
7
|
+
*/
|
|
8
|
+
export class BatchWorker extends Transform {
|
|
9
|
+
/**
|
|
10
|
+
* @param {BatchWorkerOptions} options - Options for the BatchWorker
|
|
11
|
+
*/
|
|
15
12
|
constructor(options = {}) {
|
|
16
13
|
super({ objectMode: true });
|
|
14
|
+
this._batchSize = 10;
|
|
15
|
+
this._workerFile = './worker.js';
|
|
16
|
+
this._workerContext = {};
|
|
17
|
+
this._concurrencyLimit = 4;
|
|
18
|
+
this._running = 0;
|
|
19
|
+
this._buffer = [];
|
|
20
|
+
this._queue = [];
|
|
21
|
+
this._contextUser = undefined;
|
|
17
22
|
this._batchSize = options.batchSize ?? this._batchSize;
|
|
18
23
|
this._workerFile = options.workerFile ?? this._workerFile;
|
|
19
24
|
this._workerContext = options.workerContext ?? this._workerContext;
|
|
20
25
|
this._concurrencyLimit = options.concurrencyLimit ?? this._concurrencyLimit;
|
|
21
26
|
this._contextUser = options.contextUser ?? this._contextUser;
|
|
22
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Starts the next task in the queue
|
|
30
|
+
*/
|
|
23
31
|
_next() {
|
|
24
32
|
if (this._queue.length > 0 && this._running < this._concurrencyLimit) {
|
|
25
33
|
const task = this._queue.shift();
|
|
26
34
|
task && task().then(() => this._next());
|
|
27
35
|
}
|
|
28
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Enqueues a task to be processed
|
|
39
|
+
* @param task - The task to enqueue
|
|
40
|
+
*/
|
|
29
41
|
_enqueue(task) {
|
|
30
42
|
this._queue.push(task);
|
|
31
43
|
this._next();
|
|
@@ -61,19 +73,21 @@ class BatchWorker extends node_stream_1.Transform {
|
|
|
61
73
|
_processBatchInWorker(batch) {
|
|
62
74
|
return new Promise((resolve, reject) => {
|
|
63
75
|
this._running++;
|
|
64
|
-
const worker = new
|
|
76
|
+
const worker = new Worker(this._workerFile, { workerData: { batch, context: this._workerContext } });
|
|
65
77
|
worker.on('message', ({ batch }) => {
|
|
78
|
+
// Push batch rows to the stream for reading
|
|
66
79
|
batch.forEach((row) => this.push(row));
|
|
80
|
+
// Decrement _running on successful processing
|
|
67
81
|
this._running--;
|
|
68
82
|
resolve();
|
|
69
83
|
});
|
|
70
84
|
worker.on('error', (error) => {
|
|
71
85
|
console.log('Error processing batch in worker:', error);
|
|
86
|
+
// Decrement _running and reject on error
|
|
72
87
|
this._running--;
|
|
73
88
|
reject(error);
|
|
74
89
|
});
|
|
75
90
|
});
|
|
76
91
|
}
|
|
77
92
|
}
|
|
78
|
-
exports.BatchWorker = BatchWorker;
|
|
79
93
|
//# sourceMappingURL=BatchWorker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BatchWorker.js","sourceRoot":"","sources":["../../src/models/BatchWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BatchWorker.js","sourceRoot":"","sources":["../../src/models/BatchWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { UserInfo } from "@memberjunction/core";
|
|
2
2
|
import { EntityDocumentEntity, EntityDocumentTypeEntity } from "@memberjunction/core-entities";
|
|
3
|
+
/**
|
|
4
|
+
* Simple caching class to load all Entity Documents and related data at once into memory
|
|
5
|
+
*/
|
|
3
6
|
export declare class EntityDocumentCache {
|
|
4
7
|
private static _instance;
|
|
5
8
|
private _loaded;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityDocumentCache.d.ts","sourceRoot":"","sources":["../../src/models/EntityDocumentCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAqC,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"EntityDocumentCache.d.ts","sourceRoot":"","sources":["../../src/models/EntityDocumentCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAqC,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAE/F;;GAEG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsB;IAC9C,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,UAAU,CAAmD;IACrE,OAAO,CAAC,YAAY,CAAyB;IAE7C,OAAO;IAMP,WAAkB,QAAQ,IAAI,mBAAmB,CAKhD;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,SAAS,CAAC,KAAK,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAE;IAI1D,SAAS,CAAC,SAAS,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,CAAA;KAAE;IAI3D,WAAW,CAAC,gBAAgB,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IASlE,mCAAmC,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAYlF,qCAAqC,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAYtF,iBAAiB,CAAC,kBAAkB,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAa1E,eAAe,CAAC,oBAAoB,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAU9E,qBAAqB,CAAC,sBAAsB,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAYtF,cAAc,CAAC,IAAI,EAAE,QAAQ;IAIvB,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ;CAsCrE"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class EntityDocumentCache {
|
|
6
|
-
static _instance;
|
|
7
|
-
_loaded = false;
|
|
8
|
-
_cache = {};
|
|
9
|
-
_typeCache = {};
|
|
10
|
-
_contextUser = null;
|
|
1
|
+
import { RunView, LogStatus } from "@memberjunction/core";
|
|
2
|
+
/**
|
|
3
|
+
* Simple caching class to load all Entity Documents and related data at once into memory
|
|
4
|
+
*/
|
|
5
|
+
export class EntityDocumentCache {
|
|
11
6
|
constructor() {
|
|
7
|
+
this._loaded = false;
|
|
8
|
+
this._cache = {};
|
|
9
|
+
this._typeCache = {};
|
|
10
|
+
this._contextUser = null;
|
|
11
|
+
// load up the cache
|
|
12
12
|
this._cache = {};
|
|
13
13
|
this._typeCache = {};
|
|
14
14
|
}
|
|
@@ -30,7 +30,7 @@ class EntityDocumentCache {
|
|
|
30
30
|
GetDocument(EntityDocumentID) {
|
|
31
31
|
let document = this._cache[EntityDocumentID];
|
|
32
32
|
if (!document) {
|
|
33
|
-
|
|
33
|
+
LogStatus(`EntityDocumentCache.GetDocument: Cache miss for EntityDocumentID: ${EntityDocumentID}`);
|
|
34
34
|
}
|
|
35
35
|
return document || null;
|
|
36
36
|
}
|
|
@@ -58,14 +58,14 @@ class EntityDocumentCache {
|
|
|
58
58
|
ed.Name.trim().toLowerCase() === toLower;
|
|
59
59
|
});
|
|
60
60
|
if (!document) {
|
|
61
|
-
|
|
61
|
+
LogStatus(`EntityDocumentCache.GetDocumentByName: Cache miss for EntityDocumentName: ${EntityDocumentName}`);
|
|
62
62
|
}
|
|
63
63
|
return document || null;
|
|
64
64
|
}
|
|
65
65
|
GetDocumentType(EntityDocumentTypeID) {
|
|
66
66
|
let documentType = this._typeCache[EntityDocumentTypeID];
|
|
67
67
|
if (!documentType) {
|
|
68
|
-
|
|
68
|
+
LogStatus(`EntityDocumentCache.GetDocument: Cache miss for EntityDocumentID: ${EntityDocumentTypeID}`);
|
|
69
69
|
return null;
|
|
70
70
|
}
|
|
71
71
|
return documentType;
|
|
@@ -74,7 +74,7 @@ class EntityDocumentCache {
|
|
|
74
74
|
const toLower = EntityDocumentTypeName.trim().toLowerCase();
|
|
75
75
|
let documentType = Object.values(this._typeCache).find((edt) => edt.Name.trim().toLowerCase() === toLower);
|
|
76
76
|
if (!documentType) {
|
|
77
|
-
|
|
77
|
+
LogStatus(`EntityDocumentCache.GetDocumentByName: Cache miss for EntityDocumentName: ${EntityDocumentTypeName}`);
|
|
78
78
|
return null;
|
|
79
79
|
}
|
|
80
80
|
return documentType;
|
|
@@ -87,10 +87,11 @@ class EntityDocumentCache {
|
|
|
87
87
|
if (!forceRefresh && this._loaded) {
|
|
88
88
|
return;
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
LogStatus('Refreshing Entity Document Cache');
|
|
91
91
|
this._cache = {};
|
|
92
92
|
this._typeCache = {};
|
|
93
|
-
|
|
93
|
+
// now load up the cache with all the entity documents
|
|
94
|
+
const rv = new RunView();
|
|
94
95
|
const results = await rv.RunViews([
|
|
95
96
|
{
|
|
96
97
|
EntityName: "Entity Documents",
|
|
@@ -114,5 +115,4 @@ class EntityDocumentCache {
|
|
|
114
115
|
this._loaded = true;
|
|
115
116
|
}
|
|
116
117
|
}
|
|
117
|
-
exports.EntityDocumentCache = EntityDocumentCache;
|
|
118
118
|
//# sourceMappingURL=EntityDocumentCache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityDocumentCache.js","sourceRoot":"","sources":["../../src/models/EntityDocumentCache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EntityDocumentCache.js","sourceRoot":"","sources":["../../src/models/EntityDocumentCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { Readable } from 'node:stream';
|
|
2
|
+
/**
|
|
3
|
+
* A stream to collect pages of records and emit them as individual records
|
|
4
|
+
*/
|
|
3
5
|
export declare class PagedRecords extends Readable {
|
|
4
6
|
constructor();
|
|
5
7
|
_read(): void;
|
|
8
|
+
/**
|
|
9
|
+
* Adds a page of results to the stream
|
|
10
|
+
* @param {Array<Record<string,unknown>>} page - The page of results to add to the stream
|
|
11
|
+
*/
|
|
6
12
|
addPage(page: any): void;
|
|
13
|
+
/**
|
|
14
|
+
* Called when there are no more pages to add to the stream
|
|
15
|
+
*/
|
|
7
16
|
endStream(): void;
|
|
8
17
|
}
|
|
9
18
|
//# sourceMappingURL=PagedRecords.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PagedRecords.d.ts","sourceRoot":"","sources":["../../src/models/PagedRecords.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PagedRecords.d.ts","sourceRoot":"","sources":["../../src/models/PagedRecords.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;GAEG;AACH,qBAAa,YAAa,SAAQ,QAAQ;;IAKxC,KAAK;IAIL;;;OAGG;IACH,OAAO,CAAC,IAAI,KAAA;IAIZ;;OAEG;IACH,SAAS;CAGV"}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class PagedRecords extends
|
|
1
|
+
import { Readable } from 'node:stream';
|
|
2
|
+
/**
|
|
3
|
+
* A stream to collect pages of records and emit them as individual records
|
|
4
|
+
*/
|
|
5
|
+
export class PagedRecords extends Readable {
|
|
6
6
|
constructor() {
|
|
7
7
|
super({ objectMode: true });
|
|
8
8
|
}
|
|
9
9
|
_read() {
|
|
10
|
+
// no-op
|
|
10
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Adds a page of results to the stream
|
|
14
|
+
* @param {Array<Record<string,unknown>>} page - The page of results to add to the stream
|
|
15
|
+
*/
|
|
11
16
|
addPage(page) {
|
|
12
17
|
page.forEach((row) => this.push(row));
|
|
13
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Called when there are no more pages to add to the stream
|
|
21
|
+
*/
|
|
14
22
|
endStream() {
|
|
15
23
|
this.push(null);
|
|
16
24
|
}
|
|
17
25
|
}
|
|
18
|
-
exports.PagedRecords = PagedRecords;
|
|
19
26
|
//# sourceMappingURL=PagedRecords.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PagedRecords.js","sourceRoot":"","sources":["../../src/models/PagedRecords.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PagedRecords.js","sourceRoot":"","sources":["../../src/models/PagedRecords.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC;QACE,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK;QACH,QAAQ;IACV,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,IAAI;QACV,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -1,17 +1,38 @@
|
|
|
1
1
|
import { VectorBase } from '@memberjunction/ai-vectors';
|
|
2
2
|
import { EntityField, EntityInfo, UserInfo } from '@memberjunction/core';
|
|
3
3
|
import { AIModelEntity, EntityDocumentEntity, TemplateEntity, TemplateEntityExtended, VectorDatabaseEntity } from '@memberjunction/core-entities';
|
|
4
|
-
import { EmbeddingData, TemplateParamData, VectorEmeddingData, VectorizeEntityParams, VectorizeEntityResponse } from '../generic/vectorSync.types';
|
|
4
|
+
import { EmbeddingData, TemplateParamData, VectorEmeddingData, VectorizeEntityParams, VectorizeEntityResponse } from '../generic/vectorSync.types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Class that specializes in vectorizing entities using embedding models and upserting them into Vector Databases
|
|
7
|
+
*/
|
|
5
8
|
export declare class EntityVectorSyncer extends VectorBase {
|
|
6
9
|
_startTime: Date;
|
|
7
10
|
_endTime: Date;
|
|
8
11
|
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* Refreshes the EntityDocumentCache and configures the AIEngine and TemplateEngineServer
|
|
14
|
+
* @param forceRefresh If true, the cache and enginges will be refreshed even if it is already loaded
|
|
15
|
+
* @param contextUser The context user to use to refresh the cache and configure the engines
|
|
16
|
+
*/
|
|
9
17
|
Config(forceRefresh: boolean, contextUser?: UserInfo): Promise<void>;
|
|
10
18
|
VectorizeEntity(params: VectorizeEntityParams, contextUser?: UserInfo): Promise<VectorizeEntityResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* This method will create a default Entity Document for the given entityID, vectorDatabase, and AIModel
|
|
21
|
+
* @param entityID
|
|
22
|
+
* @param vectorDatabase
|
|
23
|
+
* @param AIModel
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
11
26
|
CreateDefaultEntityDocument(EntityID: string, VectorDatabase: VectorDatabaseEntity, AIModel: AIModelEntity): Promise<EntityDocumentEntity>;
|
|
12
27
|
protected GetVectorDatabaseAndEmbeddingClassByEntityDocumentID(entityDocumentID: string, createDocumentIfNotFound?: boolean): Promise<VectorEmeddingData>;
|
|
13
28
|
GetEntityDocument(EntityDocumentID: string): Promise<EntityDocumentEntity | null>;
|
|
14
29
|
GetEntityDocumentByName(EntityDocumentName: string, ContextUser?: UserInfo): Promise<EntityDocumentEntity | null>;
|
|
30
|
+
/**
|
|
31
|
+
* Returns all active Entity Documents of the 'Record Duplicate' type.
|
|
32
|
+
* Note that this only returns the first active Entity Document. Meaning if there are multiple Entity Documents for the same entity,
|
|
33
|
+
* only the oldest one will be returned.
|
|
34
|
+
* @param entityIDs If provided, only Entity Documents for the specified entities will be returned.
|
|
35
|
+
*/
|
|
15
36
|
GetActiveEntityDocuments(entityNames?: string[]): Promise<EntityDocumentEntity[]>;
|
|
16
37
|
private GetOrCreateVectorIndex;
|
|
17
38
|
protected CreateTemplateForEntityDocument(entityDocument: EntityDocumentEntity): Promise<TemplateEntity>;
|
|
@@ -22,7 +43,17 @@ export declare class EntityVectorSyncer extends VectorBase {
|
|
|
22
43
|
}>;
|
|
23
44
|
protected GetRelatedTemplateDataForBatch(entity: EntityInfo, records: unknown[], template: TemplateEntityExtended): Promise<TemplateParamData[]>;
|
|
24
45
|
protected UpsertEntityRecordDocumentRecords(embeddingData: EmbeddingData, contextUser: UserInfo): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* This method is resposnible for determining if the template(s) given have aligned parameters, meaning they don't have overlapping parameter names that have
|
|
48
|
+
* different meanings. It is okay for scenarios where there are > 1 template in use for a message to have different parameter names, but if they have the SAME parameter names
|
|
49
|
+
* they must not have different settings.
|
|
50
|
+
*/
|
|
25
51
|
protected ValidateTemplateContextParamAlignment(template: TemplateEntityExtended): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Build the SQL filter to select records that are in the given list.
|
|
54
|
+
* For single PK entities, uses a simple IN clause.
|
|
55
|
+
* For composite PK entities, uses an EXISTS clause that concatenates PK columns to match the RecordID format.
|
|
56
|
+
*/
|
|
26
57
|
protected buildListFilter(entity: EntityInfo, listDetailsSchema: string, listId: string): string;
|
|
27
58
|
}
|
|
28
59
|
//# sourceMappingURL=entityVectorSync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityVectorSync.d.ts","sourceRoot":"","sources":["../../src/models/entityVectorSync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAc,WAAW,EAAE,UAAU,EAAyD,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC5I,OAAO,EAAE,aAAa,EAAE,oBAAoB,EACf,cAAc,EAAE,sBAAsB,EAAuB,oBAAoB,EAAqB,MAAM,+BAA+B,CAAC;AAGzK,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"entityVectorSync.d.ts","sourceRoot":"","sources":["../../src/models/entityVectorSync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAc,WAAW,EAAE,UAAU,EAAyD,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC5I,OAAO,EAAE,aAAa,EAAE,oBAAoB,EACf,cAAc,EAAE,sBAAsB,EAAuB,oBAAoB,EAAqB,MAAM,+BAA+B,CAAC;AAGzK,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AASnJ;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IAChD,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;;IAMf;;;;OAIG;IACU,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpE,eAAe,CAAC,MAAM,EAAE,qBAAqB,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA6JrH;;;;;;OAMG;IACU,2BAA2B,CACtC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,oBAAoB,EACpC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,oBAAoB,CAAC;cA0ChB,oDAAoD,CAAE,gBAAgB,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,OAAO,GAAI,OAAO,CAAC,kBAAkB,CAAC;IAsDpJ,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAQjF,uBAAuB,CAAC,kBAAkB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAQ9H;;;;;OAKG;IACU,wBAAwB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAsChF,sBAAsB;cAoCpB,+BAA+B,CAAC,cAAc,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAqE9G,SAAS,CAAC,oBAAoB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM;cAMnD,kCAAkC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;cAiB5E,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;cAmCzJ,8BAA8B,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;cAsCtI,iCAAiC,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDrH;;;;OAIG;IACH,SAAS,CAAC,qCAAqC,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO;IAkB1F;;;;OAIG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;CAgCjG"}
|