chromadb 3.2.1 → 3.2.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/chromadb.d.ts +9 -2
- package/dist/chromadb.legacy-esm.js +72 -21
- package/dist/chromadb.mjs +72 -21
- package/dist/chromadb.mjs.map +1 -1
- package/dist/cjs/chromadb.cjs +72 -21
- package/dist/cjs/chromadb.cjs.map +1 -1
- package/dist/cjs/chromadb.d.cts +9 -2
- package/package.json +1 -1
- package/src/chroma-fetch.ts +16 -8
- package/src/collection-configuration.ts +15 -6
- package/src/collection.ts +17 -13
- package/src/execution/expression/common.ts +3 -1
- package/src/execution/expression/groupBy.ts +5 -9
- package/src/execution/expression/rank.ts +69 -20
- package/src/execution/expression/searchResult.ts +12 -3
- package/src/execution/expression/select.ts +4 -1
- package/src/execution/expression/where.ts +34 -8
- package/src/schema.ts +11 -16
- package/src/types.ts +6 -1
- package/src/utils.ts +9 -3
package/dist/chromadb.d.ts
CHANGED
|
@@ -865,7 +865,7 @@ interface RrfOptions {
|
|
|
865
865
|
weights?: number[];
|
|
866
866
|
normalize?: boolean;
|
|
867
867
|
}
|
|
868
|
-
declare const Rrf: ({ ranks, k, weights, normalize }: RrfOptions) => RankExpression;
|
|
868
|
+
declare const Rrf: ({ ranks, k, weights, normalize, }: RrfOptions) => RankExpression;
|
|
869
869
|
declare const Sum: (...inputs: RankInput[]) => RankExpression;
|
|
870
870
|
declare const Sub: (left: RankInput, right: RankInput) => RankExpression;
|
|
871
871
|
declare const Mul: (...inputs: RankInput[]) => RankExpression;
|
|
@@ -1665,7 +1665,14 @@ interface Collection {
|
|
|
1665
1665
|
* @param searches - Single search payload or array of payloads
|
|
1666
1666
|
* @returns Promise resolving to column-major search results
|
|
1667
1667
|
*/
|
|
1668
|
-
search(searches: SearchLike | SearchLike[]
|
|
1668
|
+
search(searches: SearchLike | SearchLike[], options?: {
|
|
1669
|
+
/**
|
|
1670
|
+
* Controls whether to read from the write-ahead log.
|
|
1671
|
+
* - ReadLevel.INDEX_AND_WAL: Read from both index and WAL (default)
|
|
1672
|
+
* - ReadLevel.INDEX_ONLY: Read only from index, faster but recent writes may not be visible
|
|
1673
|
+
*/
|
|
1674
|
+
readLevel?: ReadLevel;
|
|
1675
|
+
}): Promise<SearchResult>;
|
|
1669
1676
|
/**
|
|
1670
1677
|
* Gets the indexing status of the collection.
|
|
1671
1678
|
* @returns Promise resolving to indexing status information
|
|
@@ -1649,7 +1649,9 @@ var WhereExpression = class _WhereExpression extends WhereExpressionBase {
|
|
|
1649
1649
|
return void 0;
|
|
1650
1650
|
}
|
|
1651
1651
|
if (!isPlainObject(input)) {
|
|
1652
|
-
throw new TypeError(
|
|
1652
|
+
throw new TypeError(
|
|
1653
|
+
"Where input must be a WhereExpression or plain object"
|
|
1654
|
+
);
|
|
1653
1655
|
}
|
|
1654
1656
|
return parseWhereDict(input);
|
|
1655
1657
|
}
|
|
@@ -1735,7 +1737,10 @@ var comparisonOperatorMap = /* @__PURE__ */ new Map([
|
|
|
1735
1737
|
["$in", (key, value) => new ComparisonWhere(key, "$in", value)],
|
|
1736
1738
|
["$nin", (key, value) => new ComparisonWhere(key, "$nin", value)],
|
|
1737
1739
|
["$contains", (key, value) => new ComparisonWhere(key, "$contains", value)],
|
|
1738
|
-
[
|
|
1740
|
+
[
|
|
1741
|
+
"$not_contains",
|
|
1742
|
+
(key, value) => new ComparisonWhere(key, "$not_contains", value)
|
|
1743
|
+
],
|
|
1739
1744
|
["$regex", (key, value) => new ComparisonWhere(key, "$regex", value)],
|
|
1740
1745
|
["$not_regex", (key, value) => new ComparisonWhere(key, "$not_regex", value)]
|
|
1741
1746
|
]);
|
|
@@ -1758,7 +1763,10 @@ var parseWhereDict = (data) => {
|
|
|
1758
1763
|
if (conditions.length === 1) {
|
|
1759
1764
|
return conditions[0];
|
|
1760
1765
|
}
|
|
1761
|
-
return conditions.slice(1).reduce(
|
|
1766
|
+
return conditions.slice(1).reduce(
|
|
1767
|
+
(acc, condition) => AndWhere.combine(acc, condition),
|
|
1768
|
+
conditions[0]
|
|
1769
|
+
);
|
|
1762
1770
|
}
|
|
1763
1771
|
if ("$or" in data) {
|
|
1764
1772
|
if (Object.keys(data).length !== 1) {
|
|
@@ -1778,7 +1786,10 @@ var parseWhereDict = (data) => {
|
|
|
1778
1786
|
if (conditions.length === 1) {
|
|
1779
1787
|
return conditions[0];
|
|
1780
1788
|
}
|
|
1781
|
-
return conditions.slice(1).reduce(
|
|
1789
|
+
return conditions.slice(1).reduce(
|
|
1790
|
+
(acc, condition) => OrWhere.combine(acc, condition),
|
|
1791
|
+
conditions[0]
|
|
1792
|
+
);
|
|
1782
1793
|
}
|
|
1783
1794
|
const entries = Object.entries(data);
|
|
1784
1795
|
if (entries.length !== 1) {
|
|
@@ -1790,7 +1801,9 @@ var parseWhereDict = (data) => {
|
|
|
1790
1801
|
}
|
|
1791
1802
|
const operatorEntries = Object.entries(value);
|
|
1792
1803
|
if (operatorEntries.length !== 1) {
|
|
1793
|
-
throw new Error(
|
|
1804
|
+
throw new Error(
|
|
1805
|
+
`Operator dictionary for field "${field}" must contain exactly one operator`
|
|
1806
|
+
);
|
|
1794
1807
|
}
|
|
1795
1808
|
const [operator, operand] = operatorEntries[0];
|
|
1796
1809
|
const factory = comparisonOperatorMap.get(operator);
|
|
@@ -1985,7 +1998,9 @@ var RankExpressionBase = class {
|
|
|
1985
1998
|
}
|
|
1986
1999
|
const expressions = [
|
|
1987
2000
|
this,
|
|
1988
|
-
...others.map(
|
|
2001
|
+
...others.map(
|
|
2002
|
+
(item, index) => requireRank(item, `multiply operand ${index}`)
|
|
2003
|
+
)
|
|
1989
2004
|
];
|
|
1990
2005
|
return MulRankExpression.create(expressions);
|
|
1991
2006
|
}
|
|
@@ -2042,7 +2057,9 @@ var RankExpression = class _RankExpression extends RankExpressionBase {
|
|
|
2042
2057
|
if (isPlainObject(input)) {
|
|
2043
2058
|
return new RawRankExpression(input);
|
|
2044
2059
|
}
|
|
2045
|
-
throw new TypeError(
|
|
2060
|
+
throw new TypeError(
|
|
2061
|
+
"Rank input must be a RankExpression, number, or plain object"
|
|
2062
|
+
);
|
|
2046
2063
|
}
|
|
2047
2064
|
};
|
|
2048
2065
|
var RawRankExpression = class extends RankExpression {
|
|
@@ -2298,14 +2315,21 @@ var requireRank = (input, context) => {
|
|
|
2298
2315
|
};
|
|
2299
2316
|
var Val = (value) => new ValueRankExpression(requireNumber(value, "Val requires a numeric value"));
|
|
2300
2317
|
var Knn = (options) => new KnnRankExpression(normalizeKnnOptions(options));
|
|
2301
|
-
var Rrf = ({
|
|
2318
|
+
var Rrf = ({
|
|
2319
|
+
ranks,
|
|
2320
|
+
k = 60,
|
|
2321
|
+
weights,
|
|
2322
|
+
normalize = false
|
|
2323
|
+
}) => {
|
|
2302
2324
|
if (!Number.isInteger(k) || k <= 0) {
|
|
2303
2325
|
throw new TypeError("Rrf k must be a positive integer");
|
|
2304
2326
|
}
|
|
2305
2327
|
if (!Array.isArray(ranks) || ranks.length === 0) {
|
|
2306
2328
|
throw new TypeError("Rrf requires at least one rank expression");
|
|
2307
2329
|
}
|
|
2308
|
-
const expressions = ranks.map(
|
|
2330
|
+
const expressions = ranks.map(
|
|
2331
|
+
(rank, index) => requireRank(rank, `ranks[${index}]`)
|
|
2332
|
+
);
|
|
2309
2333
|
let weightValues = weights ? weights.slice() : new Array(expressions.length).fill(1);
|
|
2310
2334
|
if (weightValues.length !== expressions.length) {
|
|
2311
2335
|
throw new Error("Number of weights must match number of ranks");
|
|
@@ -2316,7 +2340,9 @@ var Rrf = ({ ranks, k = 60, weights, normalize = false }) => {
|
|
|
2316
2340
|
if (normalize) {
|
|
2317
2341
|
const total = weightValues.reduce((sum, value) => sum + value, 0);
|
|
2318
2342
|
if (total <= 0) {
|
|
2319
|
-
throw new Error(
|
|
2343
|
+
throw new Error(
|
|
2344
|
+
"Weights must sum to a positive value when normalize=true"
|
|
2345
|
+
);
|
|
2320
2346
|
}
|
|
2321
2347
|
weightValues = weightValues.map((value) => value / total);
|
|
2322
2348
|
}
|
|
@@ -2333,18 +2359,28 @@ var Sum = (...inputs) => {
|
|
|
2333
2359
|
if (inputs.length === 0) {
|
|
2334
2360
|
throw new Error("Sum requires at least one rank expression");
|
|
2335
2361
|
}
|
|
2336
|
-
const expressions = inputs.map(
|
|
2362
|
+
const expressions = inputs.map(
|
|
2363
|
+
(rank, index) => requireRank(rank, `Sum operand ${index}`)
|
|
2364
|
+
);
|
|
2337
2365
|
return SumRankExpression.create(expressions);
|
|
2338
2366
|
};
|
|
2339
|
-
var Sub = (left, right) => new SubRankExpression(
|
|
2367
|
+
var Sub = (left, right) => new SubRankExpression(
|
|
2368
|
+
requireRank(left, "Sub left"),
|
|
2369
|
+
requireRank(right, "Sub right")
|
|
2370
|
+
);
|
|
2340
2371
|
var Mul = (...inputs) => {
|
|
2341
2372
|
if (inputs.length === 0) {
|
|
2342
2373
|
throw new Error("Mul requires at least one rank expression");
|
|
2343
2374
|
}
|
|
2344
|
-
const expressions = inputs.map(
|
|
2375
|
+
const expressions = inputs.map(
|
|
2376
|
+
(rank, index) => requireRank(rank, `Mul operand ${index}`)
|
|
2377
|
+
);
|
|
2345
2378
|
return MulRankExpression.create(expressions);
|
|
2346
2379
|
};
|
|
2347
|
-
var Div = (left, right) => new DivRankExpression(
|
|
2380
|
+
var Div = (left, right) => new DivRankExpression(
|
|
2381
|
+
requireRank(left, "Div left"),
|
|
2382
|
+
requireRank(right, "Div right")
|
|
2383
|
+
);
|
|
2348
2384
|
var Abs = (input) => requireRank(input, "Abs").abs();
|
|
2349
2385
|
var Exp = (input) => requireRank(input, "Exp").exp();
|
|
2350
2386
|
var Log = (input) => requireRank(input, "Log").log();
|
|
@@ -2352,14 +2388,18 @@ var Max = (...inputs) => {
|
|
|
2352
2388
|
if (inputs.length === 0) {
|
|
2353
2389
|
throw new Error("Max requires at least one rank expression");
|
|
2354
2390
|
}
|
|
2355
|
-
const expressions = inputs.map(
|
|
2391
|
+
const expressions = inputs.map(
|
|
2392
|
+
(rank, index) => requireRank(rank, `Max operand ${index}`)
|
|
2393
|
+
);
|
|
2356
2394
|
return MaxRankExpression.create(expressions);
|
|
2357
2395
|
};
|
|
2358
2396
|
var Min = (...inputs) => {
|
|
2359
2397
|
if (inputs.length === 0) {
|
|
2360
2398
|
throw new Error("Min requires at least one rank expression");
|
|
2361
2399
|
}
|
|
2362
|
-
const expressions = inputs.map(
|
|
2400
|
+
const expressions = inputs.map(
|
|
2401
|
+
(rank, index) => requireRank(rank, `Min operand ${index}`)
|
|
2402
|
+
);
|
|
2363
2403
|
return MinRankExpression.create(expressions);
|
|
2364
2404
|
};
|
|
2365
2405
|
|
|
@@ -2472,7 +2512,9 @@ var GroupBy = class _GroupBy {
|
|
|
2472
2512
|
Aggregate.from(data.aggregate)
|
|
2473
2513
|
);
|
|
2474
2514
|
}
|
|
2475
|
-
throw new TypeError(
|
|
2515
|
+
throw new TypeError(
|
|
2516
|
+
"GroupBy input must be a GroupBy instance or plain object"
|
|
2517
|
+
);
|
|
2476
2518
|
}
|
|
2477
2519
|
toJSON() {
|
|
2478
2520
|
return {
|
|
@@ -2581,7 +2623,9 @@ var normalizePayloadArray = (payload, count) => {
|
|
|
2581
2623
|
if (payload.length === count) {
|
|
2582
2624
|
return payload.map((item) => item ? item.slice() : null);
|
|
2583
2625
|
}
|
|
2584
|
-
const result = payload.map(
|
|
2626
|
+
const result = payload.map(
|
|
2627
|
+
(item) => item ? item.slice() : null
|
|
2628
|
+
);
|
|
2585
2629
|
while (result.length < count) {
|
|
2586
2630
|
result.push(null);
|
|
2587
2631
|
}
|
|
@@ -2593,7 +2637,10 @@ var SearchResult = class {
|
|
|
2593
2637
|
const payloadCount = this.ids.length;
|
|
2594
2638
|
this.documents = normalizePayloadArray(response.documents, payloadCount);
|
|
2595
2639
|
this.embeddings = normalizePayloadArray(response.embeddings, payloadCount);
|
|
2596
|
-
const rawMetadatas = normalizePayloadArray(
|
|
2640
|
+
const rawMetadatas = normalizePayloadArray(
|
|
2641
|
+
response.metadatas,
|
|
2642
|
+
payloadCount
|
|
2643
|
+
);
|
|
2597
2644
|
this.metadatas = rawMetadatas.map((payload) => {
|
|
2598
2645
|
if (!payload) {
|
|
2599
2646
|
return null;
|
|
@@ -3298,7 +3345,9 @@ var Schema = class _Schema {
|
|
|
3298
3345
|
validateSparseVectorConfig(config) {
|
|
3299
3346
|
if (config.sourceKey !== null && config.sourceKey !== void 0 && !config.embeddingFunction) {
|
|
3300
3347
|
throw new Error(
|
|
3301
|
-
`If sourceKey is provided then embeddingFunction must also be provided since there is no default embedding function. Config: ${JSON.stringify(
|
|
3348
|
+
`If sourceKey is provided then embeddingFunction must also be provided since there is no default embedding function. Config: ${JSON.stringify(
|
|
3349
|
+
config
|
|
3350
|
+
)}`
|
|
3302
3351
|
);
|
|
3303
3352
|
}
|
|
3304
3353
|
}
|
|
@@ -4356,7 +4405,9 @@ var chromaFetch = async (input, init) => {
|
|
|
4356
4405
|
if (error instanceof ChromaQuotaExceededError || error instanceof ChromaClientError) {
|
|
4357
4406
|
throw error;
|
|
4358
4407
|
}
|
|
4359
|
-
throw new ChromaClientError(
|
|
4408
|
+
throw new ChromaClientError(
|
|
4409
|
+
`Unprocessable Entity: ${response.statusText}`
|
|
4410
|
+
);
|
|
4360
4411
|
}
|
|
4361
4412
|
case 429:
|
|
4362
4413
|
throw new ChromaRateLimitError("Rate limit exceeded");
|
package/dist/chromadb.mjs
CHANGED
|
@@ -1649,7 +1649,9 @@ var WhereExpression = class _WhereExpression extends WhereExpressionBase {
|
|
|
1649
1649
|
return void 0;
|
|
1650
1650
|
}
|
|
1651
1651
|
if (!isPlainObject(input)) {
|
|
1652
|
-
throw new TypeError(
|
|
1652
|
+
throw new TypeError(
|
|
1653
|
+
"Where input must be a WhereExpression or plain object"
|
|
1654
|
+
);
|
|
1653
1655
|
}
|
|
1654
1656
|
return parseWhereDict(input);
|
|
1655
1657
|
}
|
|
@@ -1735,7 +1737,10 @@ var comparisonOperatorMap = /* @__PURE__ */ new Map([
|
|
|
1735
1737
|
["$in", (key, value) => new ComparisonWhere(key, "$in", value)],
|
|
1736
1738
|
["$nin", (key, value) => new ComparisonWhere(key, "$nin", value)],
|
|
1737
1739
|
["$contains", (key, value) => new ComparisonWhere(key, "$contains", value)],
|
|
1738
|
-
[
|
|
1740
|
+
[
|
|
1741
|
+
"$not_contains",
|
|
1742
|
+
(key, value) => new ComparisonWhere(key, "$not_contains", value)
|
|
1743
|
+
],
|
|
1739
1744
|
["$regex", (key, value) => new ComparisonWhere(key, "$regex", value)],
|
|
1740
1745
|
["$not_regex", (key, value) => new ComparisonWhere(key, "$not_regex", value)]
|
|
1741
1746
|
]);
|
|
@@ -1758,7 +1763,10 @@ var parseWhereDict = (data) => {
|
|
|
1758
1763
|
if (conditions.length === 1) {
|
|
1759
1764
|
return conditions[0];
|
|
1760
1765
|
}
|
|
1761
|
-
return conditions.slice(1).reduce(
|
|
1766
|
+
return conditions.slice(1).reduce(
|
|
1767
|
+
(acc, condition) => AndWhere.combine(acc, condition),
|
|
1768
|
+
conditions[0]
|
|
1769
|
+
);
|
|
1762
1770
|
}
|
|
1763
1771
|
if ("$or" in data) {
|
|
1764
1772
|
if (Object.keys(data).length !== 1) {
|
|
@@ -1778,7 +1786,10 @@ var parseWhereDict = (data) => {
|
|
|
1778
1786
|
if (conditions.length === 1) {
|
|
1779
1787
|
return conditions[0];
|
|
1780
1788
|
}
|
|
1781
|
-
return conditions.slice(1).reduce(
|
|
1789
|
+
return conditions.slice(1).reduce(
|
|
1790
|
+
(acc, condition) => OrWhere.combine(acc, condition),
|
|
1791
|
+
conditions[0]
|
|
1792
|
+
);
|
|
1782
1793
|
}
|
|
1783
1794
|
const entries = Object.entries(data);
|
|
1784
1795
|
if (entries.length !== 1) {
|
|
@@ -1790,7 +1801,9 @@ var parseWhereDict = (data) => {
|
|
|
1790
1801
|
}
|
|
1791
1802
|
const operatorEntries = Object.entries(value);
|
|
1792
1803
|
if (operatorEntries.length !== 1) {
|
|
1793
|
-
throw new Error(
|
|
1804
|
+
throw new Error(
|
|
1805
|
+
`Operator dictionary for field "${field}" must contain exactly one operator`
|
|
1806
|
+
);
|
|
1794
1807
|
}
|
|
1795
1808
|
const [operator, operand] = operatorEntries[0];
|
|
1796
1809
|
const factory = comparisonOperatorMap.get(operator);
|
|
@@ -1985,7 +1998,9 @@ var RankExpressionBase = class {
|
|
|
1985
1998
|
}
|
|
1986
1999
|
const expressions = [
|
|
1987
2000
|
this,
|
|
1988
|
-
...others.map(
|
|
2001
|
+
...others.map(
|
|
2002
|
+
(item, index) => requireRank(item, `multiply operand ${index}`)
|
|
2003
|
+
)
|
|
1989
2004
|
];
|
|
1990
2005
|
return MulRankExpression.create(expressions);
|
|
1991
2006
|
}
|
|
@@ -2042,7 +2057,9 @@ var RankExpression = class _RankExpression extends RankExpressionBase {
|
|
|
2042
2057
|
if (isPlainObject(input)) {
|
|
2043
2058
|
return new RawRankExpression(input);
|
|
2044
2059
|
}
|
|
2045
|
-
throw new TypeError(
|
|
2060
|
+
throw new TypeError(
|
|
2061
|
+
"Rank input must be a RankExpression, number, or plain object"
|
|
2062
|
+
);
|
|
2046
2063
|
}
|
|
2047
2064
|
};
|
|
2048
2065
|
var RawRankExpression = class extends RankExpression {
|
|
@@ -2298,14 +2315,21 @@ var requireRank = (input, context) => {
|
|
|
2298
2315
|
};
|
|
2299
2316
|
var Val = (value) => new ValueRankExpression(requireNumber(value, "Val requires a numeric value"));
|
|
2300
2317
|
var Knn = (options) => new KnnRankExpression(normalizeKnnOptions(options));
|
|
2301
|
-
var Rrf = ({
|
|
2318
|
+
var Rrf = ({
|
|
2319
|
+
ranks,
|
|
2320
|
+
k = 60,
|
|
2321
|
+
weights,
|
|
2322
|
+
normalize = false
|
|
2323
|
+
}) => {
|
|
2302
2324
|
if (!Number.isInteger(k) || k <= 0) {
|
|
2303
2325
|
throw new TypeError("Rrf k must be a positive integer");
|
|
2304
2326
|
}
|
|
2305
2327
|
if (!Array.isArray(ranks) || ranks.length === 0) {
|
|
2306
2328
|
throw new TypeError("Rrf requires at least one rank expression");
|
|
2307
2329
|
}
|
|
2308
|
-
const expressions = ranks.map(
|
|
2330
|
+
const expressions = ranks.map(
|
|
2331
|
+
(rank, index) => requireRank(rank, `ranks[${index}]`)
|
|
2332
|
+
);
|
|
2309
2333
|
let weightValues = weights ? weights.slice() : new Array(expressions.length).fill(1);
|
|
2310
2334
|
if (weightValues.length !== expressions.length) {
|
|
2311
2335
|
throw new Error("Number of weights must match number of ranks");
|
|
@@ -2316,7 +2340,9 @@ var Rrf = ({ ranks, k = 60, weights, normalize = false }) => {
|
|
|
2316
2340
|
if (normalize) {
|
|
2317
2341
|
const total = weightValues.reduce((sum, value) => sum + value, 0);
|
|
2318
2342
|
if (total <= 0) {
|
|
2319
|
-
throw new Error(
|
|
2343
|
+
throw new Error(
|
|
2344
|
+
"Weights must sum to a positive value when normalize=true"
|
|
2345
|
+
);
|
|
2320
2346
|
}
|
|
2321
2347
|
weightValues = weightValues.map((value) => value / total);
|
|
2322
2348
|
}
|
|
@@ -2333,18 +2359,28 @@ var Sum = (...inputs) => {
|
|
|
2333
2359
|
if (inputs.length === 0) {
|
|
2334
2360
|
throw new Error("Sum requires at least one rank expression");
|
|
2335
2361
|
}
|
|
2336
|
-
const expressions = inputs.map(
|
|
2362
|
+
const expressions = inputs.map(
|
|
2363
|
+
(rank, index) => requireRank(rank, `Sum operand ${index}`)
|
|
2364
|
+
);
|
|
2337
2365
|
return SumRankExpression.create(expressions);
|
|
2338
2366
|
};
|
|
2339
|
-
var Sub = (left, right) => new SubRankExpression(
|
|
2367
|
+
var Sub = (left, right) => new SubRankExpression(
|
|
2368
|
+
requireRank(left, "Sub left"),
|
|
2369
|
+
requireRank(right, "Sub right")
|
|
2370
|
+
);
|
|
2340
2371
|
var Mul = (...inputs) => {
|
|
2341
2372
|
if (inputs.length === 0) {
|
|
2342
2373
|
throw new Error("Mul requires at least one rank expression");
|
|
2343
2374
|
}
|
|
2344
|
-
const expressions = inputs.map(
|
|
2375
|
+
const expressions = inputs.map(
|
|
2376
|
+
(rank, index) => requireRank(rank, `Mul operand ${index}`)
|
|
2377
|
+
);
|
|
2345
2378
|
return MulRankExpression.create(expressions);
|
|
2346
2379
|
};
|
|
2347
|
-
var Div = (left, right) => new DivRankExpression(
|
|
2380
|
+
var Div = (left, right) => new DivRankExpression(
|
|
2381
|
+
requireRank(left, "Div left"),
|
|
2382
|
+
requireRank(right, "Div right")
|
|
2383
|
+
);
|
|
2348
2384
|
var Abs = (input) => requireRank(input, "Abs").abs();
|
|
2349
2385
|
var Exp = (input) => requireRank(input, "Exp").exp();
|
|
2350
2386
|
var Log = (input) => requireRank(input, "Log").log();
|
|
@@ -2352,14 +2388,18 @@ var Max = (...inputs) => {
|
|
|
2352
2388
|
if (inputs.length === 0) {
|
|
2353
2389
|
throw new Error("Max requires at least one rank expression");
|
|
2354
2390
|
}
|
|
2355
|
-
const expressions = inputs.map(
|
|
2391
|
+
const expressions = inputs.map(
|
|
2392
|
+
(rank, index) => requireRank(rank, `Max operand ${index}`)
|
|
2393
|
+
);
|
|
2356
2394
|
return MaxRankExpression.create(expressions);
|
|
2357
2395
|
};
|
|
2358
2396
|
var Min = (...inputs) => {
|
|
2359
2397
|
if (inputs.length === 0) {
|
|
2360
2398
|
throw new Error("Min requires at least one rank expression");
|
|
2361
2399
|
}
|
|
2362
|
-
const expressions = inputs.map(
|
|
2400
|
+
const expressions = inputs.map(
|
|
2401
|
+
(rank, index) => requireRank(rank, `Min operand ${index}`)
|
|
2402
|
+
);
|
|
2363
2403
|
return MinRankExpression.create(expressions);
|
|
2364
2404
|
};
|
|
2365
2405
|
|
|
@@ -2472,7 +2512,9 @@ var GroupBy = class _GroupBy {
|
|
|
2472
2512
|
Aggregate.from(data.aggregate)
|
|
2473
2513
|
);
|
|
2474
2514
|
}
|
|
2475
|
-
throw new TypeError(
|
|
2515
|
+
throw new TypeError(
|
|
2516
|
+
"GroupBy input must be a GroupBy instance or plain object"
|
|
2517
|
+
);
|
|
2476
2518
|
}
|
|
2477
2519
|
toJSON() {
|
|
2478
2520
|
return {
|
|
@@ -2581,7 +2623,9 @@ var normalizePayloadArray = (payload, count) => {
|
|
|
2581
2623
|
if (payload.length === count) {
|
|
2582
2624
|
return payload.map((item) => item ? item.slice() : null);
|
|
2583
2625
|
}
|
|
2584
|
-
const result = payload.map(
|
|
2626
|
+
const result = payload.map(
|
|
2627
|
+
(item) => item ? item.slice() : null
|
|
2628
|
+
);
|
|
2585
2629
|
while (result.length < count) {
|
|
2586
2630
|
result.push(null);
|
|
2587
2631
|
}
|
|
@@ -2593,7 +2637,10 @@ var SearchResult = class {
|
|
|
2593
2637
|
const payloadCount = this.ids.length;
|
|
2594
2638
|
this.documents = normalizePayloadArray(response.documents, payloadCount);
|
|
2595
2639
|
this.embeddings = normalizePayloadArray(response.embeddings, payloadCount);
|
|
2596
|
-
const rawMetadatas = normalizePayloadArray(
|
|
2640
|
+
const rawMetadatas = normalizePayloadArray(
|
|
2641
|
+
response.metadatas,
|
|
2642
|
+
payloadCount
|
|
2643
|
+
);
|
|
2597
2644
|
this.metadatas = rawMetadatas.map((payload) => {
|
|
2598
2645
|
if (!payload) {
|
|
2599
2646
|
return null;
|
|
@@ -3298,7 +3345,9 @@ var Schema = class _Schema {
|
|
|
3298
3345
|
validateSparseVectorConfig(config) {
|
|
3299
3346
|
if (config.sourceKey !== null && config.sourceKey !== void 0 && !config.embeddingFunction) {
|
|
3300
3347
|
throw new Error(
|
|
3301
|
-
`If sourceKey is provided then embeddingFunction must also be provided since there is no default embedding function. Config: ${JSON.stringify(
|
|
3348
|
+
`If sourceKey is provided then embeddingFunction must also be provided since there is no default embedding function. Config: ${JSON.stringify(
|
|
3349
|
+
config
|
|
3350
|
+
)}`
|
|
3302
3351
|
);
|
|
3303
3352
|
}
|
|
3304
3353
|
}
|
|
@@ -4356,7 +4405,9 @@ var chromaFetch = async (input, init) => {
|
|
|
4356
4405
|
if (error instanceof ChromaQuotaExceededError || error instanceof ChromaClientError) {
|
|
4357
4406
|
throw error;
|
|
4358
4407
|
}
|
|
4359
|
-
throw new ChromaClientError(
|
|
4408
|
+
throw new ChromaClientError(
|
|
4409
|
+
`Unprocessable Entity: ${response.statusText}`
|
|
4410
|
+
);
|
|
4360
4411
|
}
|
|
4361
4412
|
case 429:
|
|
4362
4413
|
throw new ChromaRateLimitError("Rate limit exceeded");
|