@memberjunction/search-engine 6.1.0-edge.1 → 6.1.0-edge.2
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/generic/EntitySearchProvider.d.ts +20 -7
- package/dist/generic/EntitySearchProvider.d.ts.map +1 -1
- package/dist/generic/EntitySearchProvider.js +26 -13
- package/dist/generic/EntitySearchProvider.js.map +1 -1
- package/dist/generic/FullTextSearchProvider.d.ts +3 -1
- package/dist/generic/FullTextSearchProvider.d.ts.map +1 -1
- package/dist/generic/FullTextSearchProvider.js +5 -2
- package/dist/generic/FullTextSearchProvider.js.map +1 -1
- package/dist/generic/env-config.d.ts +19 -0
- package/dist/generic/env-config.d.ts.map +1 -0
- package/dist/generic/env-config.js +36 -0
- package/dist/generic/env-config.js.map +1 -0
- package/package.json +8 -8
|
@@ -34,16 +34,29 @@ export declare class EntitySearchProvider extends BaseSearchProvider {
|
|
|
34
34
|
* many candidates; the engine still trims the fused, relevance-sorted result set back to
|
|
35
35
|
* `topK`, so the returned count is unchanged — we only widen the candidate pool per entity.
|
|
36
36
|
* Public + static so a deployment can tune it at startup (larger entity counts may lower it
|
|
37
|
-
* to bound the row-materialization cost of the parallel fan-out)
|
|
37
|
+
* to bound the row-materialization cost of the parallel fan-out), or override the default at
|
|
38
|
+
* process start via the `MJ_SEARCH_PER_ENTITY_FETCH_DEPTH` environment variable.
|
|
38
39
|
*/
|
|
39
40
|
static PerEntityFetchDepth: number;
|
|
40
41
|
/**
|
|
41
|
-
* Per-entity hard timeout. If one entity's RunView
|
|
42
|
-
* we drop its results rather than hold the entire fan-out hostage. The
|
|
43
|
-
* keeps running in SQL Server until completion (we can't cancel mssql
|
|
44
|
-
* here), but other entities' results still land for the user.
|
|
42
|
+
* Per-entity hard timeout, in milliseconds. If one entity's RunView takes longer
|
|
43
|
+
* than this, we drop its results rather than hold the entire fan-out hostage. The
|
|
44
|
+
* query keeps running in SQL Server until completion (we can't cancel mssql
|
|
45
|
+
* Requests here), but the other entities' results still land for the user.
|
|
46
|
+
*
|
|
47
|
+
* Public + static so a deployment can tune it at startup — mirroring
|
|
48
|
+
* {@link PerEntityFetchDepth}. The 3s default keeps interactive/omnibar fan-outs
|
|
49
|
+
* responsive by dropping a pathological entity promptly instead of stalling the
|
|
50
|
+
* whole fan-out; deployments doing large unindexed LIKE scans can raise it, either
|
|
51
|
+
* by overriding the default at process start via the `MJ_SEARCH_PER_ENTITY_TIMEOUT_MS`
|
|
52
|
+
* environment variable or by assigning the static before serving:
|
|
53
|
+
*
|
|
54
|
+
* ```ts
|
|
55
|
+
* import { EntitySearchProvider } from '@memberjunction/search-engine';
|
|
56
|
+
* EntitySearchProvider.PerEntityTimeoutMS = 30_000;
|
|
57
|
+
* ```
|
|
45
58
|
*/
|
|
46
|
-
|
|
59
|
+
static PerEntityTimeoutMS: number;
|
|
47
60
|
/**
|
|
48
61
|
* Execute an entity search across all entities with AllowUserSearchAPI=true.
|
|
49
62
|
*
|
|
@@ -69,7 +82,7 @@ export declare class EntitySearchProvider extends BaseSearchProvider {
|
|
|
69
82
|
private getSearchableEntities;
|
|
70
83
|
/**
|
|
71
84
|
* Search a single entity using RunView with UserSearchString. Wraps the
|
|
72
|
-
* underlying RunView in a hard
|
|
85
|
+
* underlying RunView in a hard PerEntityTimeoutMS timeout so a slow
|
|
73
86
|
* entity cannot hold up the whole fan-out — partial results from the
|
|
74
87
|
* other entities still land.
|
|
75
88
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntitySearchProvider.d.ts","sourceRoot":"","sources":["../../src/generic/EntitySearchProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAmD,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAoB,gBAAgB,EAAyB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"EntitySearchProvider.d.ts","sourceRoot":"","sources":["../../src/generic/EntitySearchProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAmD,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAoB,gBAAgB,EAAyB,MAAM,gBAAgB,CAAC;AAG1I;;;;GAIG;AACH,qBACa,oBAAqB,SAAQ,kBAAkB;IACxD,SAAgB,UAAU,EAAE,YAAY,CAAY;IAEpD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAK;IAE5C;;;;;;;;;;;OAWG;IACH,OAAc,mBAAmB,SAA0D;IAE3F;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAc,kBAAkB,SAA2D;IAE3F;;;;;;;;OAQG;IACU,MAAM,CACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GAAG,SAAS,EAClC,WAAW,EAAE,QAAQ,EACrB,gBAAgB,CAAC,EAAE,gBAAgB,GACpC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAmF9B;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;;;;;;;;OASG;YACW,eAAe;YAsBf,kBAAkB;IA8BhC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAwDtB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAmCpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,wBAAwB;CAGnC"}
|
|
@@ -17,6 +17,7 @@ var EntitySearchProvider_1;
|
|
|
17
17
|
import { LogError, LogStatus, RunView } from '@memberjunction/core';
|
|
18
18
|
import { RegisterClass } from '@memberjunction/global';
|
|
19
19
|
import { BaseSearchProvider } from './ISearchProvider.js';
|
|
20
|
+
import { envIntOverride } from './env-config.js';
|
|
20
21
|
/**
|
|
21
22
|
* Provides entity-level LIKE-based search using RunView + UserSearchString.
|
|
22
23
|
* Searches all entities where AllowUserSearchAPI=true, returning results
|
|
@@ -45,16 +46,29 @@ let EntitySearchProvider = class EntitySearchProvider extends BaseSearchProvider
|
|
|
45
46
|
* many candidates; the engine still trims the fused, relevance-sorted result set back to
|
|
46
47
|
* `topK`, so the returned count is unchanged — we only widen the candidate pool per entity.
|
|
47
48
|
* Public + static so a deployment can tune it at startup (larger entity counts may lower it
|
|
48
|
-
* to bound the row-materialization cost of the parallel fan-out)
|
|
49
|
+
* to bound the row-materialization cost of the parallel fan-out), or override the default at
|
|
50
|
+
* process start via the `MJ_SEARCH_PER_ENTITY_FETCH_DEPTH` environment variable.
|
|
49
51
|
*/
|
|
50
|
-
static { this.PerEntityFetchDepth = 15; }
|
|
52
|
+
static { this.PerEntityFetchDepth = envIntOverride('MJ_SEARCH_PER_ENTITY_FETCH_DEPTH', 15); }
|
|
51
53
|
/**
|
|
52
|
-
* Per-entity hard timeout. If one entity's RunView
|
|
53
|
-
* we drop its results rather than hold the entire fan-out hostage. The
|
|
54
|
-
* keeps running in SQL Server until completion (we can't cancel mssql
|
|
55
|
-
* here), but other entities' results still land for the user.
|
|
54
|
+
* Per-entity hard timeout, in milliseconds. If one entity's RunView takes longer
|
|
55
|
+
* than this, we drop its results rather than hold the entire fan-out hostage. The
|
|
56
|
+
* query keeps running in SQL Server until completion (we can't cancel mssql
|
|
57
|
+
* Requests here), but the other entities' results still land for the user.
|
|
58
|
+
*
|
|
59
|
+
* Public + static so a deployment can tune it at startup — mirroring
|
|
60
|
+
* {@link PerEntityFetchDepth}. The 3s default keeps interactive/omnibar fan-outs
|
|
61
|
+
* responsive by dropping a pathological entity promptly instead of stalling the
|
|
62
|
+
* whole fan-out; deployments doing large unindexed LIKE scans can raise it, either
|
|
63
|
+
* by overriding the default at process start via the `MJ_SEARCH_PER_ENTITY_TIMEOUT_MS`
|
|
64
|
+
* environment variable or by assigning the static before serving:
|
|
65
|
+
*
|
|
66
|
+
* ```ts
|
|
67
|
+
* import { EntitySearchProvider } from '@memberjunction/search-engine';
|
|
68
|
+
* EntitySearchProvider.PerEntityTimeoutMS = 30_000;
|
|
69
|
+
* ```
|
|
56
70
|
*/
|
|
57
|
-
static { this.
|
|
71
|
+
static { this.PerEntityTimeoutMS = envIntOverride('MJ_SEARCH_PER_ENTITY_TIMEOUT_MS', 3000); }
|
|
58
72
|
/**
|
|
59
73
|
* Execute an entity search across all entities with AllowUserSearchAPI=true.
|
|
60
74
|
*
|
|
@@ -113,9 +127,8 @@ let EntitySearchProvider = class EntitySearchProvider extends BaseSearchProvider
|
|
|
113
127
|
// capped at topK anyway); the fused set is relevance-sorted and sliced to topK below.
|
|
114
128
|
const perEntityLimit = Math.min(topK, Math.max(EntitySearchProvider_1.PerEntityFetchDepth, Math.ceil(topK / Math.max(1, scoped.length))));
|
|
115
129
|
// Search all entities in parallel, threading per-entity ExtraFilter + UserSearchString
|
|
116
|
-
// override; each call is gated by a hard
|
|
117
|
-
//
|
|
118
|
-
// entities still land.
|
|
130
|
+
// override; each call is gated by a hard PerEntityTimeoutMS timeout so a slow entity
|
|
131
|
+
// cannot hold up the whole fan-out — partial results from the other entities still land.
|
|
119
132
|
const searchPromises = scoped.map(item => this.searchOneEntity(item.EntityName, item.UserSearchString ?? effectiveQuery, perEntityLimit, contextUser, item.ExtraFilter));
|
|
120
133
|
const results = await Promise.all(searchPromises);
|
|
121
134
|
// Re-score against the original query for field-match relevance (not the transform)
|
|
@@ -166,7 +179,7 @@ let EntitySearchProvider = class EntitySearchProvider extends BaseSearchProvider
|
|
|
166
179
|
}
|
|
167
180
|
/**
|
|
168
181
|
* Search a single entity using RunView with UserSearchString. Wraps the
|
|
169
|
-
* underlying RunView in a hard
|
|
182
|
+
* underlying RunView in a hard PerEntityTimeoutMS timeout so a slow
|
|
170
183
|
* entity cannot hold up the whole fan-out — partial results from the
|
|
171
184
|
* other entities still land.
|
|
172
185
|
*
|
|
@@ -179,9 +192,9 @@ let EntitySearchProvider = class EntitySearchProvider extends BaseSearchProvider
|
|
|
179
192
|
let timer;
|
|
180
193
|
const timeout = new Promise(resolve => {
|
|
181
194
|
timer = setTimeout(() => {
|
|
182
|
-
LogError(`EntitySearchProvider: timeout (${EntitySearchProvider_1.
|
|
195
|
+
LogError(`EntitySearchProvider: timeout (${EntitySearchProvider_1.PerEntityTimeoutMS}ms) searching "${entityName}"`);
|
|
183
196
|
resolve([]);
|
|
184
|
-
}, EntitySearchProvider_1.
|
|
197
|
+
}, EntitySearchProvider_1.PerEntityTimeoutMS);
|
|
185
198
|
});
|
|
186
199
|
try {
|
|
187
200
|
return await Promise.race([work, timeout]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntitySearchProvider.js","sourceRoot":"","sources":["../../src/generic/EntitySearchProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;;;;;;;AAEH,OAAO,EAAqB,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAY,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"EntitySearchProvider.js","sourceRoot":"","sources":["../../src/generic/EntitySearchProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,9 @@ export declare class FullTextSearchProvider extends BaseSearchProvider {
|
|
|
28
28
|
* Rows to fetch PER ENTITY as the ranking candidate pool — decoupled from the global `topK`
|
|
29
29
|
* budget (bug C3). Previously `topK / 10`, which capped every FTS entity to a tiny arbitrary
|
|
30
30
|
* slice regardless of how many entities matched. The engine still trims the fused set to topK.
|
|
31
|
-
* Public + static so a deployment can tune it at startup
|
|
31
|
+
* Public + static so a deployment can tune it at startup, or override the default at process
|
|
32
|
+
* start via the `MJ_SEARCH_FULLTEXT_PER_ENTITY_FETCH_DEPTH` environment variable. Mirrors
|
|
33
|
+
* EntitySearchProvider.
|
|
32
34
|
*/
|
|
33
35
|
static PerEntityFetchDepth: number;
|
|
34
36
|
private enricher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullTextSearchProvider.d.ts","sourceRoot":"","sources":["../../src/generic/FullTextSearchProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAA8B,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAwB,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAoB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"FullTextSearchProvider.d.ts","sourceRoot":"","sources":["../../src/generic/FullTextSearchProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAA8B,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAwB,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAoB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;;GAGG;AACH,qBACa,sBAAuB,SAAQ,kBAAkB;IAC1D,SAAgB,UAAU,EAAE,YAAY,CAAc;IAEtD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAK;IAE5C;;;;;;;OAOG;IACH,OAAc,mBAAmB,SAAmE;IAEpG,OAAO,CAAC,QAAQ,CAA+B;IAE/C,4EAA4E;IACrE,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIlD;;;;;;;;OAQG;IACU,MAAM,CACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GAAG,SAAS,EAClC,WAAW,EAAE,QAAQ,EACrB,gBAAgB,CAAC,EAAE,gBAAgB,GACpC,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAgEjC"}
|
|
@@ -18,6 +18,7 @@ var FullTextSearchProvider_1;
|
|
|
18
18
|
import { LogError } from '@memberjunction/core';
|
|
19
19
|
import { RegisterClass } from '@memberjunction/global';
|
|
20
20
|
import { BaseSearchProvider } from './ISearchProvider.js';
|
|
21
|
+
import { envIntOverride } from './env-config.js';
|
|
21
22
|
/**
|
|
22
23
|
* Provides full-text search using the MJ Metadata.FullTextSearch() method.
|
|
23
24
|
* Always available since it relies on the standard MJ provider infrastructure.
|
|
@@ -39,9 +40,11 @@ let FullTextSearchProvider = class FullTextSearchProvider extends BaseSearchProv
|
|
|
39
40
|
* Rows to fetch PER ENTITY as the ranking candidate pool — decoupled from the global `topK`
|
|
40
41
|
* budget (bug C3). Previously `topK / 10`, which capped every FTS entity to a tiny arbitrary
|
|
41
42
|
* slice regardless of how many entities matched. The engine still trims the fused set to topK.
|
|
42
|
-
* Public + static so a deployment can tune it at startup
|
|
43
|
+
* Public + static so a deployment can tune it at startup, or override the default at process
|
|
44
|
+
* start via the `MJ_SEARCH_FULLTEXT_PER_ENTITY_FETCH_DEPTH` environment variable. Mirrors
|
|
45
|
+
* EntitySearchProvider.
|
|
43
46
|
*/
|
|
44
|
-
static { this.PerEntityFetchDepth = 15; }
|
|
47
|
+
static { this.PerEntityFetchDepth = envIntOverride('MJ_SEARCH_FULLTEXT_PER_ENTITY_FETCH_DEPTH', 15); }
|
|
45
48
|
/** Set the enricher instance. Called by SearchEngine after construction. */
|
|
46
49
|
SetEnricher(enricher) {
|
|
47
50
|
this.enricher = enricher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullTextSearchProvider.js","sourceRoot":"","sources":["../../src/generic/FullTextSearchProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;;;;;;;;AAEH,OAAO,EAAoB,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAwB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"FullTextSearchProvider.js","sourceRoot":"","sources":["../../src/generic/FullTextSearchProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Internal helpers for reading deployment-time configuration overrides from the
|
|
3
|
+
* environment. Not part of the package's public API — `index.ts` does not re-export this module.
|
|
4
|
+
*
|
|
5
|
+
* @module @memberjunction/search-engine
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Read a positive-integer deployment override from an environment variable, falling back to
|
|
9
|
+
* `defaultValue` when the variable is unset, non-numeric, or non-positive. The `typeof process`
|
|
10
|
+
* guard keeps this safe in browser bundles, where `process` is undefined. Mirrors the
|
|
11
|
+
* `Number(process.env.X)` + `Number.isFinite && > 0` idiom used for the `MJ_INTEGRATION_*`
|
|
12
|
+
* ceilings in `@memberjunction/integration`.
|
|
13
|
+
*
|
|
14
|
+
* When the variable is *present but invalid* (e.g. `"5s"`, `"0"`, `"-1"`) a warning is logged so
|
|
15
|
+
* an ops-side typo surfaces at boot instead of silently reverting to the default. An unset
|
|
16
|
+
* variable is the normal path and stays silent.
|
|
17
|
+
*/
|
|
18
|
+
export declare function envIntOverride(name: string, defaultValue: number): number;
|
|
19
|
+
//# sourceMappingURL=env-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-config.d.ts","sourceRoot":"","sources":["../../src/generic/env-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAgBzE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Internal helpers for reading deployment-time configuration overrides from the
|
|
3
|
+
* environment. Not part of the package's public API — `index.ts` does not re-export this module.
|
|
4
|
+
*
|
|
5
|
+
* @module @memberjunction/search-engine
|
|
6
|
+
*/
|
|
7
|
+
import { LogErrorEx } from '@memberjunction/core';
|
|
8
|
+
/**
|
|
9
|
+
* Read a positive-integer deployment override from an environment variable, falling back to
|
|
10
|
+
* `defaultValue` when the variable is unset, non-numeric, or non-positive. The `typeof process`
|
|
11
|
+
* guard keeps this safe in browser bundles, where `process` is undefined. Mirrors the
|
|
12
|
+
* `Number(process.env.X)` + `Number.isFinite && > 0` idiom used for the `MJ_INTEGRATION_*`
|
|
13
|
+
* ceilings in `@memberjunction/integration`.
|
|
14
|
+
*
|
|
15
|
+
* When the variable is *present but invalid* (e.g. `"5s"`, `"0"`, `"-1"`) a warning is logged so
|
|
16
|
+
* an ops-side typo surfaces at boot instead of silently reverting to the default. An unset
|
|
17
|
+
* variable is the normal path and stays silent.
|
|
18
|
+
*/
|
|
19
|
+
export function envIntOverride(name, defaultValue) {
|
|
20
|
+
const raw = typeof process !== 'undefined' ? process.env?.[name] : undefined;
|
|
21
|
+
// Unset (or explicitly emptied) — the normal path, no override, no noise.
|
|
22
|
+
if (raw === undefined || raw === '') {
|
|
23
|
+
return defaultValue;
|
|
24
|
+
}
|
|
25
|
+
const override = Number(raw);
|
|
26
|
+
if (Number.isFinite(override) && override > 0) {
|
|
27
|
+
return Math.floor(override);
|
|
28
|
+
}
|
|
29
|
+
LogErrorEx({
|
|
30
|
+
message: `Ignoring invalid ${name}="${raw}" — expected a positive integer; using default ${defaultValue}.`,
|
|
31
|
+
severity: 'warning',
|
|
32
|
+
category: 'SearchEngineConfig',
|
|
33
|
+
});
|
|
34
|
+
return defaultValue;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=env-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-config.js","sourceRoot":"","sources":["../../src/generic/env-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,YAAoB;IAC7D,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,0EAA0E;IAC1E,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QAClC,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,UAAU,CAAC;QACP,OAAO,EAAE,oBAAoB,IAAI,KAAK,GAAG,kDAAkD,YAAY,GAAG;QAC1G,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,oBAAoB;KACjC,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/search-engine",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "6.1.0-edge.
|
|
4
|
+
"version": "6.1.0-edge.2",
|
|
5
5
|
"description": "MemberJunction: Reusable server-side search engine - vector + full-text + entity search with RRF fusion",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
"author": "MemberJunction.com",
|
|
12
12
|
"license": "ISC",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@memberjunction/ai": "6.1.0-edge.
|
|
15
|
-
"@memberjunction/ai-vectordb": "6.1.0-edge.
|
|
16
|
-
"@memberjunction/aiengine": "6.1.0-edge.
|
|
17
|
-
"@memberjunction/core": "6.1.0-edge.
|
|
18
|
-
"@memberjunction/core-entities": "6.1.0-edge.
|
|
19
|
-
"@memberjunction/global": "6.1.0-edge.
|
|
20
|
-
"@memberjunction/storage": "6.1.0-edge.
|
|
14
|
+
"@memberjunction/ai": "6.1.0-edge.2",
|
|
15
|
+
"@memberjunction/ai-vectordb": "6.1.0-edge.2",
|
|
16
|
+
"@memberjunction/aiengine": "6.1.0-edge.2",
|
|
17
|
+
"@memberjunction/core": "6.1.0-edge.2",
|
|
18
|
+
"@memberjunction/core-entities": "6.1.0-edge.2",
|
|
19
|
+
"@memberjunction/global": "6.1.0-edge.2",
|
|
20
|
+
"@memberjunction/storage": "6.1.0-edge.2",
|
|
21
21
|
"nunjucks": "^3.2.4"
|
|
22
22
|
},
|
|
23
23
|
"optionalDependencies": {
|