@delali/narsil 0.3.1-next.73 → 0.3.1-next.74

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 (46) hide show
  1. package/dist/{capabilities-CYeAWYxQ.d.ts → capabilities-CAMzmkAg.d.ts} +2 -2
  2. package/dist/{chunk-PU43WDY4.mjs → chunk-2E35UM3G.mjs} +1 -13
  3. package/dist/chunk-3DDUNI6N.mjs +48 -0
  4. package/dist/{chunk-THMSFOJO.mjs → chunk-BVBIQQKG.mjs} +576 -547
  5. package/dist/{chunk-ZULSEZCE.mjs → chunk-CTOSGRM7.mjs} +100 -19
  6. package/dist/{chunk-CVFAFZSN.mjs → chunk-CUZOX6CN.mjs} +23 -15
  7. package/dist/chunk-I23G3IZC.mjs +593 -0
  8. package/dist/chunk-KEHK2O6P.mjs +13 -0
  9. package/dist/{chunk-AFKH4ZK3.mjs → chunk-LX4JERXI.mjs} +1 -1
  10. package/dist/{chunk-LPBWCHBE.mjs → chunk-NOZUQM7J.mjs} +2 -2
  11. package/dist/{chunk-WVDFG45M.mjs → chunk-PO53FV4Q.mjs} +2 -1
  12. package/dist/chunk-T5ZWEWVD.mjs +658 -0
  13. package/dist/{chunk-2WLD2NFW.mjs → chunk-TVFLHM7M.mjs} +2 -2
  14. package/dist/{chunk-3YKWSO54.mjs → chunk-VKX2BPXD.mjs} +147 -647
  15. package/dist/{chunk-AK3BLGCI.mjs → chunk-Z3DQPOJQ.mjs} +15 -48
  16. package/dist/{client-D698E5ge.d.ts → client-C-I70ArH.d.ts} +3 -3
  17. package/dist/client.d.ts +8 -8
  18. package/dist/{config-Bv8etwUZ.d.ts → config-C6Iw5rCX.d.ts} +2 -2
  19. package/dist/{config-QXU3HMpq.d.ts → config-DJPH3IQB.d.ts} +2 -2
  20. package/dist/direct-executor-KFAGILJC.mjs +17 -0
  21. package/dist/distribution/coordinator/etcd.d.ts +2 -2
  22. package/dist/distribution/coordinator/in-memory.d.ts +2 -2
  23. package/dist/distribution.d.ts +8 -8
  24. package/dist/distribution.mjs +19 -9
  25. package/dist/{engine-D_OzKZ-6.d.ts → engine-B8eRPO7m.d.ts} +2 -2
  26. package/dist/index.browser.mjs +1200 -808
  27. package/dist/index.d.ts +27 -8
  28. package/dist/index.mjs +12 -8
  29. package/dist/{memory-B4jMmygw.d.ts → memory-DJEwWoCi.d.ts} +1205 -1180
  30. package/dist/partial-words-DTIHO8G4.d.ts +19 -0
  31. package/dist/partial-words.d.ts +22 -0
  32. package/dist/partial-words.mjs +11 -0
  33. package/dist/persistence/durability/checkpoint-worker.d.ts +33 -13
  34. package/dist/persistence/durability/checkpoint-worker.mjs +12 -8
  35. package/dist/react.d.ts +7 -7
  36. package/dist/{schema-BBOCdhND.d.ts → schema-DgyDijhf.d.ts} +6 -2
  37. package/dist/server.d.ts +10 -10
  38. package/dist/server.mjs +8 -6
  39. package/dist/{tasks-DpgCpW1x.d.ts → tasks-BVmAKYBh.d.ts} +1 -1
  40. package/dist/{thread-3LNVA43V.mjs → thread-W6DPKEF6.mjs} +8 -5
  41. package/dist/{types-BiUmaiWT.d.ts → types-ChrVy4lH.d.ts} +1 -1
  42. package/dist/vector/search-worker.d.ts +1 -1
  43. package/dist/vector/search-worker.mjs +3 -2
  44. package/dist/workers/entry.mjs +3 -3
  45. package/package.json +15 -7
  46. package/dist/direct-executor-5SRDFZAS.mjs +0 -13
@@ -0,0 +1,19 @@
1
+ /**
2
+ * An app passes an object of this type to {@link registerPartialWordSearch}
3
+ * to give the engine its partial-word search code. The engine uses that code
4
+ * to match each query word inside the longer words of a field whose type
5
+ * includes `partial`, whenever a query has {@link QueryParams.partialWords}
6
+ * set.
7
+ *
8
+ * A Node process loads this code by itself. A browser bundle contains it only
9
+ * when the app imports `partialWordSearch` from `@delali/narsil/partial-words`,
10
+ * so a bundler can leave it out of an app that has no `partial` field.
11
+ *
12
+ * @public
13
+ */
14
+ interface PartialWordSearch {
15
+ /** The engine checks that this name is `'partialWords'` when an app registers the object. */
16
+ readonly name: 'partialWords';
17
+ }
18
+
19
+ export type { PartialWordSearch as P };
@@ -0,0 +1,22 @@
1
+ import { P as PartialWordSearch } from './partial-words-DTIHO8G4.js';
2
+
3
+ /**
4
+ * This object contains the partial-word search code. A browser app has to
5
+ * pass it to {@link registerPartialWordSearch} before the app creates or
6
+ * loads an index with a `partial` field.
7
+ *
8
+ * ```ts
9
+ * import { registerPartialWordSearch } from '@delali/narsil'
10
+ * import { partialWordSearch } from '@delali/narsil/partial-words'
11
+ *
12
+ * registerPartialWordSearch(partialWordSearch)
13
+ * ```
14
+ *
15
+ * A Node process loads that code by itself, so only a browser app has to make
16
+ * this call.
17
+ *
18
+ * @public
19
+ */
20
+ declare const partialWordSearch: PartialWordSearch;
21
+
22
+ export { PartialWordSearch, partialWordSearch };
@@ -0,0 +1,11 @@
1
+ import { partialWordSearchModule } from './chunk-T5ZWEWVD.mjs';
2
+ import './chunk-I23G3IZC.mjs';
3
+ import './chunk-Z3DQPOJQ.mjs';
4
+ import './chunk-KEHK2O6P.mjs';
5
+ import './chunk-LJYTW7GT.mjs';
6
+ import './chunk-I64LXKO3.mjs';
7
+
8
+ // src/partial-words/index.ts
9
+ var partialWordSearch = partialWordSearchModule;
10
+
11
+ export { partialWordSearch };
@@ -1,12 +1,11 @@
1
- import { P as PartitionConfig, d as ScoringMode, V as VectorIndexConfig } from '../../schema-BBOCdhND.js';
1
+ import { P as PartitionConfig, d as ScoringMode, V as VectorIndexConfig } from '../../schema-DgyDijhf.js';
2
2
  import '../../adapters-79OIa4xm.js';
3
3
 
4
- interface PatternIndexArrays {
5
- fieldPath: string;
6
- docIds: Uint32Array;
7
- runs: Uint32Array;
4
+ interface FrozenTokenTableData {
5
+ blob: Uint8Array;
8
6
  offsets: Uint32Array;
9
- postings: Uint32Array;
7
+ payloadSlots: Uint32Array;
8
+ documentFrequencies: Uint32Array;
10
9
  }
11
10
 
12
11
  interface IndexMetadata {
@@ -60,6 +59,32 @@ interface IndexEmbeddingMetadata {
60
59
  */
61
60
  type SerializedSurfaceForms = Record<string, number | [number, string]>;
62
61
 
62
+ interface PatternIndexArrays {
63
+ fieldPath: string;
64
+ docIds: Uint32Array;
65
+ runs: Uint32Array;
66
+ offsets: Uint32Array;
67
+ postings: Uint32Array;
68
+ }
69
+
70
+ interface PartialSpellings {
71
+ fields: string[];
72
+ tokens: string[];
73
+ spellings: string[];
74
+ counts: number[];
75
+ }
76
+
77
+ interface PartialWordTableData {
78
+ fields: string[];
79
+ spellings: Uint8Array;
80
+ spellingOffsets: Uint32Array;
81
+ spellingTokens: Uint32Array;
82
+ spellingCounts: Uint32Array;
83
+ runs: Uint32Array;
84
+ runOffsets: Uint32Array;
85
+ runEntries: Uint32Array;
86
+ }
87
+
63
88
  interface SegmentPayload {
64
89
  documentCount: number;
65
90
  docIds: string[];
@@ -76,6 +101,7 @@ interface SegmentPayload {
76
101
  totalFieldLengths: Record<string, number>;
77
102
  docFrequencies: Record<string, number>;
78
103
  surfaceForms: SerializedSurfaceForms | null;
104
+ partialSpellings: PartialSpellings | null;
79
105
  numeric: Array<{
80
106
  fieldPath: string;
81
107
  docIds: Uint32Array;
@@ -147,13 +173,6 @@ interface SurfaceTableData {
147
173
  counts: Uint32Array;
148
174
  }
149
175
 
150
- interface FrozenTokenTableData {
151
- blob: Uint8Array;
152
- offsets: Uint32Array;
153
- payloadSlots: Uint32Array;
154
- documentFrequencies: Uint32Array;
155
- }
156
-
157
176
  interface SharedSegmentSnapshot extends Omit<SegmentColumns, 'surfaceForms'> {
158
177
  segmentId: string;
159
178
  tokenTable: FrozenTokenTableData;
@@ -161,6 +180,7 @@ interface SharedSegmentSnapshot extends Omit<SegmentColumns, 'surfaceForms'> {
161
180
  documentTable: EncodedDocumentTableData;
162
181
  /** The surface forms packed flat, or null where the segment holds none. */
163
182
  surfaceTable: SurfaceTableData | null;
183
+ partialWords: PartialWordTableData | null;
164
184
  }
165
185
 
166
186
  interface PartitionCheckpoint {
@@ -1,17 +1,21 @@
1
- import { CHECKPOINT_WORKER_HEARTBEAT_MS, createDurableDirectory, writeCheckpointSegments, directoryCheckpointStore } from '../../chunk-CVFAFZSN.mjs';
1
+ import { CHECKPOINT_WORKER_HEARTBEAT_MS, createDurableDirectory, writeCheckpointSegments, directoryCheckpointStore } from '../../chunk-CUZOX6CN.mjs';
2
+ import '../../chunk-CTOSGRM7.mjs';
2
3
  import '../../chunk-GCM3JFVA.mjs';
3
- import '../../chunk-AFKH4ZK3.mjs';
4
- import '../../chunk-THMSFOJO.mjs';
4
+ import '../../chunk-LX4JERXI.mjs';
5
+ import '../../chunk-BVBIQQKG.mjs';
6
+ import '../../chunk-VKX2BPXD.mjs';
5
7
  import '../../chunk-4MQ5F4IL.mjs';
6
- import '../../chunk-ZULSEZCE.mjs';
7
- import '../../chunk-3YKWSO54.mjs';
8
- import '../../chunk-AK3BLGCI.mjs';
8
+ import '../../chunk-3DDUNI6N.mjs';
9
9
  import '../../chunk-TGP5M5R7.mjs';
10
- import '../../chunk-WVDFG45M.mjs';
10
+ import '../../chunk-PO53FV4Q.mjs';
11
11
  import '../../chunk-ZJ4CSAB2.mjs';
12
- import '../../chunk-PU43WDY4.mjs';
12
+ import '../../chunk-2E35UM3G.mjs';
13
13
  import '../../chunk-XW25X6AU.mjs';
14
14
  import '../../chunk-ZKRV5M2P.mjs';
15
+ import '../../chunk-T5ZWEWVD.mjs';
16
+ import '../../chunk-I23G3IZC.mjs';
17
+ import '../../chunk-Z3DQPOJQ.mjs';
18
+ import '../../chunk-KEHK2O6P.mjs';
15
19
  import '../../chunk-U2BKYEC7.mjs';
16
20
  import '../../chunk-LJYTW7GT.mjs';
17
21
  import '../../chunk-POWOTUKJ.mjs';
package/dist/react.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import { N as NarsilError, L as ListParams, h as ListResult, I as IndexInfo, g as IndexStats, Q as QueryParams, j as PreflightResult, e as QueryResult, k as SuggestParams, l as SuggestResult } from './memory-B4jMmygw.js';
2
- export { C as ClientErrorCode, a as ClientErrorCodes, E as ErrorCode, b as ErrorCodes, c as NarsilErrorCode, S as ServerErrorCode, d as ServerErrorCodes, i as isNarsilError } from './memory-B4jMmygw.js';
3
- import { e as TaskRecord, d as TaskProgress, b as ImportResult, c as TaskListQuery, T as TaskListPage } from './tasks-DpgCpW1x.js';
4
- export { I as ImportError, f as TaskStatus, g as TaskType } from './tasks-DpgCpW1x.js';
1
+ import { N as NarsilError, L as ListParams, h as ListResult, I as IndexInfo, g as IndexStats, Q as QueryParams, j as PreflightResult, e as QueryResult, k as SuggestParams, l as SuggestResult } from './memory-DJEwWoCi.js';
2
+ export { C as ClientErrorCode, a as ClientErrorCodes, E as ErrorCode, b as ErrorCodes, c as NarsilErrorCode, S as ServerErrorCode, d as ServerErrorCodes, i as isNarsilError } from './memory-DJEwWoCi.js';
3
+ import { e as TaskRecord, d as TaskProgress, b as ImportResult, c as TaskListQuery, T as TaskListPage } from './tasks-BVmAKYBh.js';
4
+ export { I as ImportError, f as TaskStatus, g as TaskType } from './tasks-BVmAKYBh.js';
5
5
  import { ReactNode, ReactElement } from 'react';
6
- import { N as Narsil } from './engine-D_OzKZ-6.js';
7
- import { N as NarsilClient, I as ImportSource } from './client-D698E5ge.js';
8
- import { A as AnyDocument } from './schema-BBOCdhND.js';
6
+ import { N as Narsil } from './engine-B8eRPO7m.js';
7
+ import { N as NarsilClient, I as ImportSource } from './client-C-I70ArH.js';
8
+ import { A as AnyDocument } from './schema-DgyDijhf.js';
9
9
  import './adapters-79OIa4xm.js';
10
10
 
11
11
  /**
@@ -23,8 +23,12 @@ type AnyDocument = Record<string, unknown> & {
23
23
  * `in`, `nin`, `startsWith`, and `endsWith` on that field from the index,
24
24
  * comparing case folds for any of those tests that sets `caseFold`. The engine
25
25
  * raises `DOC_VALIDATION_FAILED` for a value longer than
26
- * {@link IndexConfig.patternValueLimit} in such a field. A later release will
27
- * add partial-word search for the fields whose types include `partial`.
26
+ * {@link IndexConfig.patternValueLimit} in such a field. For a query with
27
+ * {@link QueryParams.partialWords} set, the engine also matches each query
28
+ * word inside the longer words of a field whose type includes `partial`. It
29
+ * raises `CONFIG_INVALID` for such a field in an index whose `surfaceForms`
30
+ * setting is false, because it matches inside the original spellings of
31
+ * words, which it records only while that setting is on.
28
32
  *
29
33
  * @public
30
34
  */
package/dist/server.d.ts CHANGED
@@ -1,14 +1,14 @@
1
- export { C as ClientErrorCode, a as ClientErrorCodes, E as ErrorCode, b as ErrorCodes, N as NarsilError, c as NarsilErrorCode, S as ServerErrorCode, d as ServerErrorCodes, i as isNarsilError } from './memory-B4jMmygw.js';
2
- import { b as ServerOptions, N as NarsilServer } from './capabilities-CYeAWYxQ.js';
3
- export { A as ASYNC_IMPORT_CAPABILITY, C as CorsOptions, D as DOCUMENT_EXPORT_CAPABILITY, E as ErrorEnvelope, I as INDEX_LIFECYCLE_CAPABILITY, O as OnRequestHook, R as REBUILD_ANALYSIS_CAPABILITY, c as RequestContext, d as RequestDenial, S as SERVER_CAPABILITIES, e as ServerLimits, T as TASK_CANCEL_CAPABILITY, a as TASK_FILTER_CAPABILITY } from './capabilities-CYeAWYxQ.js';
4
- import { N as Narsil } from './engine-D_OzKZ-6.js';
5
- import { d as TaskProgress, b as ImportResult, h as TaskStore, e as TaskRecord } from './tasks-DpgCpW1x.js';
6
- export { C as CapabilitiesResponse, a as CreateIndexEmbedding, i as CreateIndexRequest, H as HttpIndexConfig, I as ImportError, M as MemoryStatsResponse, T as TaskListPage, c as TaskListQuery, f as TaskStatus, g as TaskType } from './tasks-DpgCpW1x.js';
7
- import './schema-BBOCdhND.js';
1
+ export { C as ClientErrorCode, a as ClientErrorCodes, E as ErrorCode, b as ErrorCodes, N as NarsilError, c as NarsilErrorCode, S as ServerErrorCode, d as ServerErrorCodes, i as isNarsilError } from './memory-DJEwWoCi.js';
2
+ import { b as ServerOptions, N as NarsilServer } from './capabilities-CAMzmkAg.js';
3
+ export { A as ASYNC_IMPORT_CAPABILITY, C as CorsOptions, D as DOCUMENT_EXPORT_CAPABILITY, E as ErrorEnvelope, I as INDEX_LIFECYCLE_CAPABILITY, O as OnRequestHook, R as REBUILD_ANALYSIS_CAPABILITY, c as RequestContext, d as RequestDenial, S as SERVER_CAPABILITIES, e as ServerLimits, T as TASK_CANCEL_CAPABILITY, a as TASK_FILTER_CAPABILITY } from './capabilities-CAMzmkAg.js';
4
+ import { N as Narsil } from './engine-B8eRPO7m.js';
5
+ import { d as TaskProgress, b as ImportResult, h as TaskStore, e as TaskRecord } from './tasks-BVmAKYBh.js';
6
+ export { C as CapabilitiesResponse, a as CreateIndexEmbedding, i as CreateIndexRequest, H as HttpIndexConfig, I as ImportError, M as MemoryStatsResponse, T as TaskListPage, c as TaskListQuery, f as TaskStatus, g as TaskType } from './tasks-BVmAKYBh.js';
7
+ import './schema-DgyDijhf.js';
8
8
  import './adapters-79OIa4xm.js';
9
- import './config-Bv8etwUZ.js';
10
- import './config-QXU3HMpq.js';
11
- import './types-BiUmaiWT.js';
9
+ import './config-C6Iw5rCX.js';
10
+ import './config-DJPH3IQB.js';
11
+ import './types-ChrVy4lH.js';
12
12
  import './types-Cb9kiY5P.js';
13
13
 
14
14
  /**
package/dist/server.mjs CHANGED
@@ -1,11 +1,13 @@
1
- import { DEFAULT_MAX_RETAINED_TASKS, loadUWebSockets, resolveCors, authorizerFor, createSharedGateBuffer, gateSlotOfWorker, createRouteRunner, corsHeaderReader, createSharedRequestGate, MAIN_THREAD_GATE_SLOT, registerServerRoutes, DEFAULT_MAX_CONCURRENT_TASKS, DEFAULT_MAX_TASK_PAGE_SIZE, DEFAULT_MAX_IMPORT_ERRORS, DEFAULT_MAX_FETCH_DOCUMENTS, DEFAULT_MAX_RESULT_WINDOW, DEFAULT_MAX_CONCURRENT_REQUESTS, DEFAULT_IMPORT_BATCH_SIZE, DEFAULT_MAX_LINE_BYTES, DEFAULT_MAX_RESTORE_BYTES, DEFAULT_MAX_IMPORT_BYTES, DEFAULT_MAX_BODY_BYTES, RUNNING_TASK_TTL_MS, DEFAULT_TASK_PAGE_SIZE, TERMINAL_TASK_TTL_MS, TASK_PROGRESS_WRITE_INTERVAL_MS, serializeNarsilError, createVersionHandler, acceptorOf, createDocumentReadHandlers, sendError, respondError, respondJson, MAX_INDEX_TOUCH_INTERVAL_MS, INDEX_TOUCH_INTERVALS_PER_IDLE_TIMEOUT, clearGateSlot, parseJson, validateCreateIndex, rejectInvalid, validateBatch, serializeBatchResult, validateDocumentBody, validateSuggest, validateQuery, parseTaskListQuery, parseJsonOptional, validateRebalance, sendStream, SNAPSHOT_ARCHIVE_CONTENT_TYPE, DOCUMENT_EXPORT_CONTENT_TYPE, IMPORT_FLUSHES_IN_FLIGHT, badRequest, SERVER_CAPABILITIES, toHttpError, RELAY_STREAM_CHUNKS_IN_FLIGHT, MIN_UNBOUNDED_SERVER_LIMIT, MIN_COUNTED_SERVER_LIMIT } from './chunk-LPBWCHBE.mjs';
2
- export { ASYNC_IMPORT_CAPABILITY, DOCUMENT_EXPORT_CAPABILITY, INDEX_LIFECYCLE_CAPABILITY, REBUILD_ANALYSIS_CAPABILITY, SERVER_CAPABILITIES, TASK_CANCEL_CAPABILITY, TASK_FILTER_CAPABILITY, httpStatusForNarsilError } from './chunk-LPBWCHBE.mjs';
3
- import { validateIndexName } from './chunk-2WLD2NFW.mjs';
4
- import { engineCoreOf, providedDocId, resolveVectorText } from './chunk-AFKH4ZK3.mjs';
1
+ import { DEFAULT_MAX_RETAINED_TASKS, loadUWebSockets, resolveCors, authorizerFor, createSharedGateBuffer, gateSlotOfWorker, createRouteRunner, corsHeaderReader, createSharedRequestGate, MAIN_THREAD_GATE_SLOT, registerServerRoutes, DEFAULT_MAX_CONCURRENT_TASKS, DEFAULT_MAX_TASK_PAGE_SIZE, DEFAULT_MAX_IMPORT_ERRORS, DEFAULT_MAX_FETCH_DOCUMENTS, DEFAULT_MAX_RESULT_WINDOW, DEFAULT_MAX_CONCURRENT_REQUESTS, DEFAULT_IMPORT_BATCH_SIZE, DEFAULT_MAX_LINE_BYTES, DEFAULT_MAX_RESTORE_BYTES, DEFAULT_MAX_IMPORT_BYTES, DEFAULT_MAX_BODY_BYTES, RUNNING_TASK_TTL_MS, DEFAULT_TASK_PAGE_SIZE, TERMINAL_TASK_TTL_MS, TASK_PROGRESS_WRITE_INTERVAL_MS, serializeNarsilError, createVersionHandler, acceptorOf, createDocumentReadHandlers, sendError, respondError, respondJson, MAX_INDEX_TOUCH_INTERVAL_MS, INDEX_TOUCH_INTERVALS_PER_IDLE_TIMEOUT, clearGateSlot, parseJson, validateCreateIndex, rejectInvalid, validateBatch, serializeBatchResult, validateDocumentBody, validateSuggest, validateQuery, parseTaskListQuery, parseJsonOptional, validateRebalance, sendStream, SNAPSHOT_ARCHIVE_CONTENT_TYPE, DOCUMENT_EXPORT_CONTENT_TYPE, IMPORT_FLUSHES_IN_FLIGHT, badRequest, SERVER_CAPABILITIES, toHttpError, RELAY_STREAM_CHUNKS_IN_FLIGHT, MIN_UNBOUNDED_SERVER_LIMIT, MIN_COUNTED_SERVER_LIMIT } from './chunk-NOZUQM7J.mjs';
2
+ export { ASYNC_IMPORT_CAPABILITY, DOCUMENT_EXPORT_CAPABILITY, INDEX_LIFECYCLE_CAPABILITY, REBUILD_ANALYSIS_CAPABILITY, SERVER_CAPABILITIES, TASK_CANCEL_CAPABILITY, TASK_FILTER_CAPABILITY, httpStatusForNarsilError } from './chunk-NOZUQM7J.mjs';
3
+ import { validateIndexName } from './chunk-TVFLHM7M.mjs';
4
+ import { engineCoreOf, providedDocId, resolveVectorText } from './chunk-LX4JERXI.mjs';
5
5
  import { detectRuntime } from './chunk-4MQ5F4IL.mjs';
6
- import './chunk-AK3BLGCI.mjs';
6
+ import './chunk-3DDUNI6N.mjs';
7
7
  import './chunk-TGP5M5R7.mjs';
8
- import './chunk-PU43WDY4.mjs';
8
+ import './chunk-2E35UM3G.mjs';
9
+ import './chunk-Z3DQPOJQ.mjs';
10
+ import './chunk-KEHK2O6P.mjs';
9
11
  import './chunk-U2BKYEC7.mjs';
10
12
  import './chunk-LJYTW7GT.mjs';
11
13
  import { startIdleHeapCleanup } from './chunk-Y3L5MDRV.mjs';
@@ -1,4 +1,4 @@
1
- import { M as MemoryStats } from './memory-B4jMmygw.js';
1
+ import { M as MemoryStats } from './memory-DJEwWoCi.js';
2
2
 
3
3
  /** Declarative index configuration accepted over HTTP. Function-valued engine
4
4
  * options (custom tokenizer, stopWords-as-function, group reducer, embedding
@@ -1,10 +1,13 @@
1
- import { loadUWebSockets, childAppOf, createRouteRunner, corsHeaderReader, createSharedRequestGate, registerServerRoutes, sendRelayed, createDocumentReadHandlers, respondJson, SERVER_CAPABILITIES, versionReport, statusLine, sendError, serverRoutes, parseJson, validateSuggest, rejectInvalid, respondError, validateQuery } from './chunk-LPBWCHBE.mjs';
2
- import { executeListDocuments, executeSuggest, executePreflight, queryBindingOf, executeQuery } from './chunk-ZULSEZCE.mjs';
3
- import { resolveProjection, projectionKeepsField, setNestedValue } from './chunk-3YKWSO54.mjs';
4
- import { extractVectorFieldsFromSchema } from './chunk-AK3BLGCI.mjs';
1
+ import { loadUWebSockets, childAppOf, createRouteRunner, corsHeaderReader, createSharedRequestGate, registerServerRoutes, sendRelayed, createDocumentReadHandlers, respondJson, SERVER_CAPABILITIES, versionReport, statusLine, sendError, serverRoutes, parseJson, validateSuggest, rejectInvalid, respondError, validateQuery } from './chunk-NOZUQM7J.mjs';
2
+ import { executeListDocuments, executeSuggest, executePreflight, queryBindingOf, executeQuery } from './chunk-CTOSGRM7.mjs';
3
+ import { resolveProjection, projectionKeepsField, setNestedValue } from './chunk-VKX2BPXD.mjs';
4
+ import './chunk-3DDUNI6N.mjs';
5
5
  import './chunk-ZJ4CSAB2.mjs';
6
- import './chunk-PU43WDY4.mjs';
6
+ import './chunk-2E35UM3G.mjs';
7
7
  import './chunk-ZKRV5M2P.mjs';
8
+ import './chunk-I23G3IZC.mjs';
9
+ import { extractVectorFieldsFromSchema } from './chunk-Z3DQPOJQ.mjs';
10
+ import './chunk-KEHK2O6P.mjs';
8
11
  import './chunk-LJYTW7GT.mjs';
9
12
  import { ServerErrorCodes, NarsilError, ErrorCodes } from './chunk-I64LXKO3.mjs';
10
13
 
@@ -1,4 +1,4 @@
1
- import { S as SchemaDefinition } from './schema-BBOCdhND.js';
1
+ import { S as SchemaDefinition } from './schema-DgyDijhf.js';
2
2
 
3
3
  /**
4
4
  * What a node does in a cluster. A node may hold several roles at once.
@@ -1,4 +1,4 @@
1
- import { e as VectorQuantizationMode } from '../schema-BBOCdhND.js';
1
+ import { e as VectorQuantizationMode } from '../schema-DgyDijhf.js';
2
2
  import { A as ArenaSimd } from '../simd-DW5AtJ6B.js';
3
3
  import '../adapters-79OIa4xm.js';
4
4
 
@@ -1,6 +1,7 @@
1
- import { openSharedVectorField, MAX_WORKER_COPIES, createVectorStore, osqBitsOf, createHNSWIndex, createOsqQuantizer, osqRecordBytes } from '../chunk-WVDFG45M.mjs';
1
+ import { openSharedVectorField, MAX_WORKER_COPIES, createVectorStore, osqBitsOf, createHNSWIndex, createOsqQuantizer, osqRecordBytes } from '../chunk-PO53FV4Q.mjs';
2
2
  import '../chunk-ZJ4CSAB2.mjs';
3
- import '../chunk-PU43WDY4.mjs';
3
+ import '../chunk-2E35UM3G.mjs';
4
+ import '../chunk-KEHK2O6P.mjs';
4
5
  import '../chunk-LJYTW7GT.mjs';
5
6
  import '../chunk-I64LXKO3.mjs';
6
7
 
@@ -18,7 +18,7 @@ async function importBootstrapModule(moduleUrl) {
18
18
  await import(moduleUrl);
19
19
  }
20
20
  async function stopServingRequests() {
21
- const { closeRequestThread } = await import('../thread-3LNVA43V.mjs');
21
+ const { closeRequestThread } = await import('../thread-W6DPKEF6.mjs');
22
22
  closeRequestThread();
23
23
  }
24
24
  function holdsCopies(executor) {
@@ -49,7 +49,7 @@ function createActionHandler(executor) {
49
49
  if (!holdsCopies(executor)) {
50
50
  throw new NarsilError(ErrorCodes.CONFIG_INVALID, "This executor holds no copies to answer requests from");
51
51
  }
52
- const starting = import('../thread-3LNVA43V.mjs').then(
52
+ const starting = import('../thread-W6DPKEF6.mjs').then(
53
53
  ({ serveRequests }) => serveRequests(executor, action.settings)
54
54
  );
55
55
  serving.start = starting.then(
@@ -102,7 +102,7 @@ async function setup() {
102
102
  } catch {
103
103
  parentPort = null;
104
104
  }
105
- const { createDirectExecutor } = await import('../direct-executor-5SRDFZAS.mjs');
105
+ const { createDirectExecutor } = await import('../direct-executor-KFAGILJC.mjs');
106
106
  const handleAction = createActionHandler(createDirectExecutor({ threadSlot }));
107
107
  if (parentPort) {
108
108
  const port = parentPort;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delali/narsil",
3
- "version": "0.3.1-next.73",
3
+ "version": "0.3.1-next.74",
4
4
  "type": "module",
5
5
  "description": "Distributed search engine with full-text, vector, hybrid, and geosearch. One engine, embedded or on a server, with a cross-language .nrsl format.",
6
6
  "author": "Delali (https://sondelali.com)",
@@ -54,6 +54,10 @@
54
54
  "#platform/pattern-search": {
55
55
  "browser": "./src/core/pattern-index/platform.browser.ts",
56
56
  "default": "./src/core/pattern-index/platform.ts"
57
+ },
58
+ "#platform/partial-word-search": {
59
+ "browser": "./src/core/partition/partial-words/platform.browser.ts",
60
+ "default": "./src/core/partition/partial-words/platform.ts"
57
61
  }
58
62
  },
59
63
  "sideEffects": false,
@@ -139,6 +143,10 @@
139
143
  "import": "./dist/pattern.mjs",
140
144
  "types": "./dist/pattern.d.ts"
141
145
  },
146
+ "./partial-words": {
147
+ "import": "./dist/partial-words.mjs",
148
+ "types": "./dist/partial-words.d.ts"
149
+ },
142
150
  "./languages/*": {
143
151
  "import": "./dist/languages/*.mjs",
144
152
  "types": "./dist/languages/*.d.ts"
@@ -231,11 +239,11 @@
231
239
  }
232
240
  },
233
241
  "optionalDependencies": {
234
- "@delali/narsil-native-darwin-arm64": "0.3.1-next.73",
235
- "@delali/narsil-native-darwin-x64": "0.3.1-next.73",
236
- "@delali/narsil-native-linux-arm64": "0.3.1-next.73",
237
- "@delali/narsil-native-linux-x64": "0.3.1-next.73",
238
- "@delali/narsil-native-win32-arm64": "0.3.1-next.73",
239
- "@delali/narsil-native-win32-x64": "0.3.1-next.73"
242
+ "@delali/narsil-native-darwin-arm64": "0.3.1-next.74",
243
+ "@delali/narsil-native-darwin-x64": "0.3.1-next.74",
244
+ "@delali/narsil-native-linux-arm64": "0.3.1-next.74",
245
+ "@delali/narsil-native-linux-x64": "0.3.1-next.74",
246
+ "@delali/narsil-native-win32-arm64": "0.3.1-next.74",
247
+ "@delali/narsil-native-win32-x64": "0.3.1-next.74"
240
248
  }
241
249
  }
@@ -1,13 +0,0 @@
1
- export { createDirectExecutor } from './chunk-THMSFOJO.mjs';
2
- import './chunk-4MQ5F4IL.mjs';
3
- import './chunk-3YKWSO54.mjs';
4
- import './chunk-AK3BLGCI.mjs';
5
- import './chunk-TGP5M5R7.mjs';
6
- import './chunk-WVDFG45M.mjs';
7
- import './chunk-ZJ4CSAB2.mjs';
8
- import './chunk-PU43WDY4.mjs';
9
- import './chunk-XW25X6AU.mjs';
10
- import './chunk-ZKRV5M2P.mjs';
11
- import './chunk-U2BKYEC7.mjs';
12
- import './chunk-LJYTW7GT.mjs';
13
- import './chunk-I64LXKO3.mjs';