@delali/narsil 0.3.1-next.70 → 0.3.1-next.72

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.
Files changed (57) hide show
  1. package/dist/adapters/filesystem.mjs +1 -1
  2. package/dist/adapters/indexeddb.mjs +1 -1
  3. package/dist/{capabilities-Dt-7B4Wz.d.ts → capabilities-D6gjjQyA.d.ts} +2 -2
  4. package/dist/{chunk-P4DSQ6M4.mjs → chunk-2X2ZQOAB.mjs} +69 -28
  5. package/dist/chunk-3HQPUCCT.mjs +785 -0
  6. package/dist/{chunk-VNMTB3KC.mjs → chunk-7QMTA7AA.mjs} +194 -59
  7. package/dist/{chunk-FVLQ63B7.mjs → chunk-CVPA5Q7R.mjs} +24 -3
  8. package/dist/{chunk-2STVUTNA.mjs → chunk-EDMCZLSJ.mjs} +4 -3
  9. package/dist/{chunk-M76V3OGJ.mjs → chunk-HVJYTKK7.mjs} +940 -647
  10. package/dist/{chunk-HWQLTLNG.mjs → chunk-KZTI25D3.mjs} +1 -1
  11. package/dist/{chunk-YJDQ7NLA.mjs → chunk-LCCL6EEH.mjs} +3 -3
  12. package/dist/{chunk-OI42GWLR.mjs → chunk-LJYTW7GT.mjs} +57 -11
  13. package/dist/{chunk-653BNMAF.mjs → chunk-M6XF5HDE.mjs} +57 -17
  14. package/dist/{chunk-YNVIUGF5.mjs → chunk-P2ZZN32C.mjs} +1 -1
  15. package/dist/{chunk-LMO5TJUS.mjs → chunk-QR4OKRVY.mjs} +637 -196
  16. package/dist/{chunk-USKFU7J5.mjs → chunk-RV77FR2F.mjs} +1 -0
  17. package/dist/{chunk-GIVAGD3Q.mjs → chunk-XZ4PAREY.mjs} +1 -1
  18. package/dist/{chunk-3JGWULDF.mjs → chunk-Y52WZWAU.mjs} +5 -5
  19. package/dist/chunk-ZKRV5M2P.mjs +75 -0
  20. package/dist/{client-COek5GXK.d.ts → client-C2TiW29y.d.ts} +3 -3
  21. package/dist/client.d.ts +8 -8
  22. package/dist/client.mjs +1 -0
  23. package/dist/{config-rBpbgTw8.d.ts → config-BLguB-om.d.ts} +2 -2
  24. package/dist/{config-Dfanyqqt.d.ts → config-C7Ip8Ife.d.ts} +17 -2
  25. package/dist/direct-executor-SVCHXR74.mjs +14 -0
  26. package/dist/distribution/coordinator/etcd.d.ts +2 -2
  27. package/dist/distribution/coordinator/etcd.mjs +2 -2
  28. package/dist/distribution/coordinator/in-memory.d.ts +2 -2
  29. package/dist/distribution/coordinator/in-memory.mjs +1 -1
  30. package/dist/distribution/transport/grpc.mjs +1 -1
  31. package/dist/distribution.d.ts +8 -8
  32. package/dist/distribution.mjs +58 -35
  33. package/dist/embeddings/openai.mjs +1 -1
  34. package/dist/{engine-CXKfmK7I.d.ts → engine-Dm4446j1.d.ts} +104 -62
  35. package/dist/index.browser.mjs +2222 -1100
  36. package/dist/index.d.ts +27 -8
  37. package/dist/index.mjs +14 -12
  38. package/dist/invalidation/filesystem.mjs +1 -1
  39. package/dist/{memory-C7UMCMH3.d.ts → memory-CKHTU1CL.d.ts} +66 -25
  40. package/dist/pattern-Cledccbl.d.ts +18 -0
  41. package/dist/pattern.d.ts +22 -0
  42. package/dist/pattern.mjs +7 -0
  43. package/dist/persistence/durability/checkpoint-worker.d.ts +17 -1
  44. package/dist/persistence/durability/checkpoint-worker.mjs +14 -12
  45. package/dist/react.d.ts +277 -182
  46. package/dist/react.mjs +190 -45
  47. package/dist/{schema-Bgzr4g7b.d.ts → schema-BBOCdhND.d.ts} +9 -7
  48. package/dist/server.d.ts +10 -10
  49. package/dist/server.mjs +13 -12
  50. package/dist/{tasks-BZt_zes6.d.ts → tasks-BECd0b__.d.ts} +1 -1
  51. package/dist/{thread-JEVAYETR.mjs → thread-IBSIZZ6W.mjs} +22 -13
  52. package/dist/{types-gOUqhs2F.d.ts → types-BiUmaiWT.d.ts} +1 -1
  53. package/dist/vector/search-worker.d.ts +1 -1
  54. package/dist/vector/search-worker.mjs +4 -4
  55. package/dist/workers/entry.mjs +4 -4
  56. package/package.json +15 -7
  57. package/dist/direct-executor-GYJEKNV5.mjs +0 -12
@@ -1,5 +1,5 @@
1
1
  import { english } from './chunk-TGP5M5R7.mjs';
2
- import { NarsilError, ErrorCodes } from './chunk-USKFU7J5.mjs';
2
+ import { NarsilError, ErrorCodes } from './chunk-RV77FR2F.mjs';
3
3
 
4
4
  // src/languages/registry.ts
5
5
  var languages = /* @__PURE__ */ new Map();
@@ -1,7 +1,7 @@
1
1
  import { OSQ_STEPS, OSQ_GRID, OSQ_REFINE_ROUNDS, OSQ_REFINE_TOLERANCE, OSQ4_NARROW_DIMENSION_LIMIT, DEFAULT_OSQ4_NARROW_OVERSAMPLE, DEFAULT_OVERSAMPLE_BY_BITS, OSQ_QUERY_BITS, OSQ_LAMBDA } from './chunk-ZJ4CSAB2.mjs';
2
- import { COMPACTION_TOMBSTONE_RATIO, COMPACTION_ABSOLUTE_THRESHOLD, nativeSearchCoreIsEnabled, loadNativeCore, stopUsingTheNativeSearchCore, noteFallback, MAX_LAYER_CAP, PLACEMENT_ROOM_REQUESTS, INITIAL_LIST_CAPACITY, DEFAULT_EF_SEARCH, INITIAL_UPPER_SLOTS } from './chunk-YNVIUGF5.mjs';
3
- import { compareCodePoints } from './chunk-OI42GWLR.mjs';
4
- import { NarsilError, ErrorCodes } from './chunk-USKFU7J5.mjs';
2
+ import { COMPACTION_TOMBSTONE_RATIO, COMPACTION_ABSOLUTE_THRESHOLD, nativeSearchCoreIsEnabled, loadNativeCore, stopUsingTheNativeSearchCore, noteFallback, MAX_LAYER_CAP, PLACEMENT_ROOM_REQUESTS, INITIAL_LIST_CAPACITY, DEFAULT_EF_SEARCH, INITIAL_UPPER_SLOTS } from './chunk-P2ZZN32C.mjs';
3
+ import { compareCodePoints } from './chunk-LJYTW7GT.mjs';
4
+ import { NarsilError, ErrorCodes } from './chunk-RV77FR2F.mjs';
5
5
  import { readSync, closeSync, openSync } from 'fs';
6
6
 
7
7
  // src/vector/constants.ts
@@ -15,6 +15,31 @@ function exceedsCodePoints(value, maximum) {
15
15
  }
16
16
  return false;
17
17
  }
18
+ var SURROGATE_UNIT = /[\ud800-\udfff]/;
19
+ function holdsUnpairedSurrogate(value) {
20
+ if (!SURROGATE_UNIT.test(value)) return false;
21
+ for (let i = 0; i < value.length; i++) {
22
+ const unit = value.charCodeAt(i);
23
+ if (unit < 55296 || unit >= 57344) continue;
24
+ if (unit >= 56320) return true;
25
+ const low = value.charCodeAt(i + 1);
26
+ if (!(low >= 56320 && low < 57344)) return true;
27
+ i++;
28
+ }
29
+ return false;
30
+ }
31
+ function codePointCount(value) {
32
+ let counted = 0;
33
+ for (let i = 0; i < value.length; i++) {
34
+ const unit = value.charCodeAt(i);
35
+ if (unit >= 55296 && unit < 56320 && i + 1 < value.length) {
36
+ const low = value.charCodeAt(i + 1);
37
+ if (low >= 56320 && low < 57344) i++;
38
+ }
39
+ counted++;
40
+ }
41
+ return counted;
42
+ }
18
43
  function adjustUtf16Unit(unit) {
19
44
  if (unit < 55296) return unit;
20
45
  if (unit < 57344) return unit + 8192;
@@ -65,6 +90,10 @@ function multiFoldTable() {
65
90
 
66
91
  // src/core/ordering/fold-compare.ts
67
92
  var EXHAUSTED = -1;
93
+ function foldOf(codePoint, single, multi) {
94
+ if (codePoint < 128) return codePoint >= 65 && codePoint <= 90 ? codePoint + 32 : codePoint;
95
+ return single.get(codePoint) ?? multi.get(codePoint) ?? codePoint;
96
+ }
68
97
  function nextFoldedCodePoint(text, cursor, single, multi) {
69
98
  if (cursor.pending !== null) {
70
99
  const cp2 = cursor.pending[cursor.pendingIndex];
@@ -78,9 +107,6 @@ function nextFoldedCodePoint(text, cursor, single, multi) {
78
107
  if (cursor.index >= text.length) return EXHAUSTED;
79
108
  let cp = text.charCodeAt(cursor.index);
80
109
  cursor.index++;
81
- if (cp < 128) {
82
- return cp >= 65 && cp <= 90 ? cp + 32 : cp;
83
- }
84
110
  if (cp >= 55296 && cp < 56320 && cursor.index < text.length) {
85
111
  const low = text.charCodeAt(cursor.index);
86
112
  if (low >= 56320 && low < 57344) {
@@ -88,15 +114,13 @@ function nextFoldedCodePoint(text, cursor, single, multi) {
88
114
  cursor.index++;
89
115
  }
90
116
  }
91
- const mapped = single.get(cp);
92
- if (mapped !== void 0) return mapped;
93
- const expansion = multi.get(cp);
94
- if (expansion === void 0) return cp;
95
- if (expansion.length > 1) {
96
- cursor.pending = expansion;
117
+ const folded = foldOf(cp, single, multi);
118
+ if (typeof folded === "number") return folded;
119
+ if (folded.length > 1) {
120
+ cursor.pending = folded;
97
121
  cursor.pendingIndex = 1;
98
122
  }
99
- return expansion[0];
123
+ return folded[0];
100
124
  }
101
125
  function compareCaseFolded(a, b) {
102
126
  const shorter = a.length < b.length ? a.length : b.length;
@@ -123,6 +147,28 @@ function compareSortStrings(a, b) {
123
147
  if (folded !== 0) return folded;
124
148
  return compareCodePoints(a, b);
125
149
  }
150
+ function appendFoldedCodePoint(codePoint, out) {
151
+ const folded = foldOf(codePoint, singleFoldTable(), multiFoldTable());
152
+ if (typeof folded === "number") {
153
+ out.push(folded);
154
+ return;
155
+ }
156
+ for (const foldedCodePoint of folded) out.push(foldedCodePoint);
157
+ }
158
+ function appendFoldedCodePoints(text, out) {
159
+ const single = singleFoldTable();
160
+ const multi = multiFoldTable();
161
+ const cursor = { index: 0, pending: null, pendingIndex: 0 };
162
+ for (let codePoint = nextFoldedCodePoint(text, cursor, single, multi); codePoint !== EXHAUSTED; ) {
163
+ out.push(codePoint);
164
+ codePoint = nextFoldedCodePoint(text, cursor, single, multi);
165
+ }
166
+ }
167
+ function foldedCodePointCount(text) {
168
+ const folded = [];
169
+ appendFoldedCodePoints(text, folded);
170
+ return folded.length;
171
+ }
126
172
 
127
173
  // src/core/ordering/constants.ts
128
174
  var SORT_VALUE_MAX_CODE_POINTS = 512;
@@ -244,4 +290,4 @@ function compareSortValues(aValues, bValues, directions) {
244
290
  return 0;
245
291
  }
246
292
 
247
- export { SORT_MODES, SORT_VALUE_MAX_CODE_POINTS, compareCodePoints, compareComparableKeys, compareComparableValues, compareSortValues, defaultSortMode, exceedsCodePoints, isSortMode, readSortField, sortModeOf, toComparableSortValue, toReducedSortValue, truncateSortString };
293
+ export { SORT_MODES, SORT_VALUE_MAX_CODE_POINTS, appendFoldedCodePoint, codePointCount, compareCodePoints, compareComparableKeys, compareComparableValues, compareSortValues, defaultSortMode, exceedsCodePoints, foldedCodePointCount, holdsUnpairedSurrogate, isSortMode, readSortField, sortModeOf, toComparableSortValue, toReducedSortValue, truncateSortString };
@@ -1,6 +1,6 @@
1
- import { MAX_M } from './chunk-YNVIUGF5.mjs';
2
- import { exceedsCodePoints } from './chunk-OI42GWLR.mjs';
3
- import { NarsilError, ErrorCodes } from './chunk-USKFU7J5.mjs';
1
+ import { MAX_M } from './chunk-P2ZZN32C.mjs';
2
+ import { holdsUnpairedSurrogate, exceedsCodePoints } from './chunk-LJYTW7GT.mjs';
3
+ import { NarsilError, ErrorCodes } from './chunk-RV77FR2F.mjs';
4
4
 
5
5
  // src/schema/constants.ts
6
6
  var MAX_NESTING_DEPTH = 4;
@@ -247,6 +247,29 @@ function extractVectorFieldsFromSchema(schema) {
247
247
  return result;
248
248
  }
249
249
 
250
+ // src/geo/constants.ts
251
+ var DEG_TO_RAD = Math.PI / 180;
252
+ var MAX_LATITUDE_DEGREES = 90;
253
+ var MAX_LONGITUDE_DEGREES = 180;
254
+ var MIN_POLYGON_POINTS = 3;
255
+ var ANTIMERIDIAN_SPAN_DEGREES = 180;
256
+ var FULL_TURN_DEGREES = 360;
257
+ var EARTH_RADIUS_METERS = 63710088e-1;
258
+ var LOCATION_CODE_BITS_PER_AXIS = 26;
259
+ var MAX_COVERING_CELLS = 16;
260
+ var RADIUS_BOX_MARGIN_RATIO = 1.02;
261
+ var RADIUS_BOX_MARGIN_RADIANS = 1e-9;
262
+ var VINCENTY_MAX_ITERATIONS = 200;
263
+ var VINCENTY_CONVERGENCE_THRESHOLD = 1e-12;
264
+
265
+ // src/geo/coordinates.ts
266
+ function isLatitude(value) {
267
+ return value >= -MAX_LATITUDE_DEGREES && value <= MAX_LATITUDE_DEGREES;
268
+ }
269
+ function isLongitude(value) {
270
+ return value >= -MAX_LONGITUDE_DEGREES && value <= MAX_LONGITUDE_DEGREES;
271
+ }
272
+
250
273
  // src/schema/validator/field-values.ts
251
274
  function validateGeopoint(path, value) {
252
275
  if (!isPlainObject(value)) {
@@ -266,7 +289,7 @@ function validateGeopoint(path, value) {
266
289
  lon: Number.isNaN(value.lon) ? "NaN" : typeof value.lon
267
290
  });
268
291
  }
269
- if (value.lat < -90 || value.lat > 90) {
292
+ if (!isLatitude(value.lat)) {
270
293
  throw new NarsilError(
271
294
  ErrorCodes.SCHEMA_INVALID_GEOPOINT,
272
295
  `Field "${path}" geopoint lat must be between -90 and 90`,
@@ -276,7 +299,7 @@ function validateGeopoint(path, value) {
276
299
  }
277
300
  );
278
301
  }
279
- if (value.lon < -180 || value.lon > 180) {
302
+ if (!isLongitude(value.lon)) {
280
303
  throw new NarsilError(
281
304
  ErrorCodes.SCHEMA_INVALID_GEOPOINT,
282
305
  `Field "${path}" geopoint lon must be between -180 and 180`,
@@ -306,7 +329,7 @@ function validateVector(path, value, expectedDimension) {
306
329
  );
307
330
  }
308
331
  for (let i = 0; i < arr.length; i++) {
309
- if (typeof arr[i] !== "number" || Number.isNaN(arr[i])) {
332
+ if (typeof arr[i] !== "number" || !Number.isFinite(arr[i])) {
310
333
  throw new NarsilError(
311
334
  ErrorCodes.DOC_VALIDATION_FAILED,
312
335
  `Field "${path}" vector element at index ${i} is not a valid number`,
@@ -331,11 +354,12 @@ function validateTypedArray(path, value, elementType) {
331
354
  { field: path, index: i, expected: elementType, received: typeof el }
332
355
  );
333
356
  }
334
- if (elementType === "number" && Number.isNaN(el)) {
335
- throw new NarsilError(ErrorCodes.DOC_VALIDATION_FAILED, `Field "${path}" array element at index ${i} is NaN`, {
336
- field: path,
337
- index: i
338
- });
357
+ if (elementType === "number" && !Number.isFinite(el)) {
358
+ throw new NarsilError(
359
+ ErrorCodes.DOC_VALIDATION_FAILED,
360
+ `Field "${path}" array element at index ${i} is ${String(el)}, while a number field holds finite numbers alone`,
361
+ { field: path, index: i }
362
+ );
339
363
  }
340
364
  }
341
365
  }
@@ -366,11 +390,11 @@ function validateFieldValue(path, value, type, patternValueLimit) {
366
390
  if (type.pattern) validatePatternValue(path, value, patternValueLimit);
367
391
  return;
368
392
  case "number":
369
- if (typeof value !== "number" || Number.isNaN(value)) {
370
- throw new NarsilError(ErrorCodes.DOC_VALIDATION_FAILED, `Field "${path}" expected a valid number`, {
393
+ if (typeof value !== "number" || !Number.isFinite(value)) {
394
+ throw new NarsilError(ErrorCodes.DOC_VALIDATION_FAILED, `Field "${path}" expected a finite number`, {
371
395
  field: path,
372
396
  expected: "number",
373
- received: Number.isNaN(value) ? "NaN" : typeof value
397
+ received: typeof value === "number" ? String(value) : typeof value
374
398
  });
375
399
  }
376
400
  return;
@@ -428,6 +452,7 @@ function validateFieldValue(path, value, type, patternValueLimit) {
428
452
 
429
453
  // src/schema/validator/storable.ts
430
454
  var RESERVED_OBJECT_KEYS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
455
+ var UNPAIRED_SURROGATE_REASON = "holds an unpaired surrogate, the half of a character such as an emoji whose other half is missing, so the engine cannot store it as UTF-8";
431
456
  function reject(path, reason) {
432
457
  throw new NarsilError(ErrorCodes.DOC_VALIDATION_FAILED, `Field "${path === "" ? "(document)" : path}" ${reason}`, {
433
458
  field: path
@@ -440,8 +465,11 @@ function isPlainObject2(value) {
440
465
  function walkStorable(value, path, depth, ancestors, skip) {
441
466
  if (value === null || value === void 0) return;
442
467
  const kind = typeof value;
443
- if (kind === "string" || kind === "boolean") return;
444
- if (kind === "number") return;
468
+ if (kind === "string") {
469
+ if (holdsUnpairedSurrogate(value)) reject(path, UNPAIRED_SURROGATE_REASON);
470
+ return;
471
+ }
472
+ if (kind === "boolean" || kind === "number") return;
445
473
  if (kind === "bigint" || kind === "symbol" || kind === "function") {
446
474
  reject(path, `holds a ${kind}, which cannot be stored or recovered`);
447
475
  }
@@ -473,6 +501,7 @@ function walkStorable(value, path, depth, ancestors, skip) {
473
501
  if (RESERVED_OBJECT_KEYS.has(key)) {
474
502
  reject(keyPath, "uses a reserved object key");
475
503
  }
504
+ if (holdsUnpairedSurrogate(key)) reject(keyPath, `has a name that ${UNPAIRED_SURROGATE_REASON}`);
476
505
  if (skip.has(keyPath)) continue;
477
506
  walkStorable(record[key], keyPath, depth + 1, ancestors, skip);
478
507
  }
@@ -539,9 +568,20 @@ function validateDocument(document, schema, patternValueLimit = DEFAULT_PATTERN_
539
568
  received: typeof document
540
569
  });
541
570
  }
571
+ requireIdFieldKey(document);
542
572
  assertStorableDocument(document, vectorFieldPaths(schema));
543
573
  validateDocumentFields(document, schema, "", patternValueLimit);
544
574
  }
575
+ function requireIdFieldKey(document) {
576
+ if (!Object.hasOwn(document, "id")) return;
577
+ const id = document.id;
578
+ if (typeof id === "string" && id.length > 0) return;
579
+ throw new NarsilError(
580
+ ErrorCodes.DOC_VALIDATION_FAILED,
581
+ `Field "id" holds ${typeof id === "string" ? "an empty string" : id === null ? "null" : `a ${typeof id}`}, while the engine stores a document under its id field, so that field must hold a non-empty string`,
582
+ { field: "id", received: id === null ? "null" : typeof id }
583
+ );
584
+ }
545
585
  function collectExtraFields(doc, schema, prefix, extras) {
546
586
  for (const key of Object.keys(doc)) {
547
587
  if (key === "id") continue;
@@ -658,4 +698,4 @@ var DEFAULT_LINEAR_ALPHA = 0.5;
658
698
  var MIN_LINEAR_ALPHA = 0;
659
699
  var MAX_LINEAR_ALPHA = 1;
660
700
 
661
- export { DEFAULT_FUZZY_PREFIX_LENGTH, DEFAULT_LINEAR_ALPHA, DEFAULT_MAX_PER_GROUP, DEFAULT_PAGE_SIZE, DEFAULT_RANK_CONSTANT, MAX_CURSOR_ANCHOR_CODE_POINTS, MAX_CURSOR_LENGTH, MAX_LINEAR_ALPHA, MAX_NESTING_DEPTH, MAX_PATTERN_VALUE_LIMIT, MAX_PREFIX_LENGTH, MAX_SORT_FIELDS, MAX_SORT_FIELD_NAME_LENGTH, MAX_TOLERANCE, MIN_LINEAR_ALPHA, MIN_PATTERN_VALUE_LIMIT, MIN_RANK_CONSTANT, PREFIX_MAX_EXPANSIONS, PROTOTYPE_POLLUTION_KEYS, RESULT_WINDOW, VECTOR_PATTERN, extractVectorFieldsFromSchema, flattenSchema, isGeopointOrVectorType, isListBase, isQuantizationMode, isSingleStringFieldType, isStorageMode, isStringValuedBase, isWordIndexedBase, isWordIndexedFieldType, parsedTypeOf, requireValidFieldTypes, schemaFieldsOf, validateDocument, validateDocumentStrict, validateRequiredFields, validateSchema, validateVectorPromotion, validateVectorStorage, withSortableOption };
701
+ export { ANTIMERIDIAN_SPAN_DEGREES, DEFAULT_FUZZY_PREFIX_LENGTH, DEFAULT_LINEAR_ALPHA, DEFAULT_MAX_PER_GROUP, DEFAULT_PAGE_SIZE, DEFAULT_RANK_CONSTANT, DEG_TO_RAD, EARTH_RADIUS_METERS, FULL_TURN_DEGREES, LOCATION_CODE_BITS_PER_AXIS, MAX_COVERING_CELLS, MAX_CURSOR_ANCHOR_CODE_POINTS, MAX_CURSOR_LENGTH, MAX_LATITUDE_DEGREES, MAX_LINEAR_ALPHA, MAX_LONGITUDE_DEGREES, MAX_NESTING_DEPTH, MAX_PATTERN_VALUE_LIMIT, MAX_PREFIX_LENGTH, MAX_SORT_FIELDS, MAX_SORT_FIELD_NAME_LENGTH, MAX_TOLERANCE, MIN_LINEAR_ALPHA, MIN_PATTERN_VALUE_LIMIT, MIN_POLYGON_POINTS, MIN_RANK_CONSTANT, PREFIX_MAX_EXPANSIONS, PROTOTYPE_POLLUTION_KEYS, RADIUS_BOX_MARGIN_RADIANS, RADIUS_BOX_MARGIN_RATIO, RESULT_WINDOW, VECTOR_PATTERN, VINCENTY_CONVERGENCE_THRESHOLD, VINCENTY_MAX_ITERATIONS, extractVectorFieldsFromSchema, flattenSchema, isGeopointOrVectorType, isLatitude, isListBase, isLongitude, isQuantizationMode, isSingleStringFieldType, isStorageMode, isStringValuedBase, isWordIndexedBase, isWordIndexedFieldType, parsedTypeOf, requireValidFieldTypes, schemaFieldsOf, validateDocument, validateDocumentStrict, validateRequiredFields, validateSchema, validateVectorPromotion, validateVectorStorage, withSortableOption };
@@ -1,4 +1,4 @@
1
- import { NarsilError, ErrorCodes } from './chunk-USKFU7J5.mjs';
1
+ import { NarsilError, ErrorCodes } from './chunk-RV77FR2F.mjs';
2
2
  import { existsSync } from 'fs';
3
3
  import { createRequire } from 'module';
4
4
  import { join, dirname } from 'path';