@voltro/plugin-search 0.86.0 → 0.88.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.
@@ -1,15 +1,15 @@
1
1
  # Third-Party Notices — @voltro/plugin-search
2
2
 
3
- This package uses the open-source software listed below. Each is the
3
+ This package uses the third-party software listed below. Each is the
4
4
  property of its respective copyright holders and is used under the terms of
5
5
  its license. This file is provided for attribution; it grants no rights in
6
6
  @voltro/plugin-search itself, which is proprietary (see LICENSE).
7
7
 
8
- Generated from the resolved runtime dependency closure (56 packages).
8
+ Generated from the resolved runtime dependency closure (54 packages).
9
9
 
10
10
  ---
11
11
 
12
- ## @algolia/abtesting@1.25.0
12
+ ## @algolia/abtesting@1.26.0
13
13
 
14
14
  License: MIT
15
15
 
@@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
37
37
  SOFTWARE.
38
38
  ```
39
39
 
40
- ## @algolia/client-abtesting@5.59.0
40
+ ## @algolia/client-abtesting@5.60.0
41
41
 
42
42
  License: MIT
43
43
 
@@ -65,7 +65,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
65
65
  SOFTWARE.
66
66
  ```
67
67
 
68
- ## @algolia/client-analytics@5.59.0
68
+ ## @algolia/client-analytics@5.60.0
69
69
 
70
70
  License: MIT
71
71
 
@@ -93,7 +93,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
93
93
  SOFTWARE.
94
94
  ```
95
95
 
96
- ## @algolia/client-common@5.59.0
96
+ ## @algolia/client-common@5.60.0
97
97
 
98
98
  License: MIT
99
99
 
@@ -121,7 +121,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
121
121
  SOFTWARE.
122
122
  ```
123
123
 
124
- ## @algolia/client-insights@5.59.0
124
+ ## @algolia/client-insights@5.60.0
125
125
 
126
126
  License: MIT
127
127
 
@@ -149,7 +149,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
149
149
  SOFTWARE.
150
150
  ```
151
151
 
152
- ## @algolia/client-personalization@5.59.0
152
+ ## @algolia/client-personalization@5.60.0
153
153
 
154
154
  License: MIT
155
155
 
@@ -177,7 +177,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
177
177
  SOFTWARE.
178
178
  ```
179
179
 
180
- ## @algolia/client-query-suggestions@5.59.0
180
+ ## @algolia/client-query-suggestions@5.60.0
181
181
 
182
182
  License: MIT
183
183
 
@@ -205,7 +205,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
205
205
  SOFTWARE.
206
206
  ```
207
207
 
208
- ## @algolia/client-search@5.59.0
208
+ ## @algolia/client-search@5.60.0
209
209
 
210
210
  License: MIT
211
211
 
@@ -233,7 +233,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
233
233
  SOFTWARE.
234
234
  ```
235
235
 
236
- ## @algolia/ingestion@1.59.0
236
+ ## @algolia/ingestion@1.60.0
237
237
 
238
238
  License: MIT
239
239
 
@@ -261,7 +261,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
261
261
  SOFTWARE.
262
262
  ```
263
263
 
264
- ## @algolia/monitoring@1.59.0
264
+ ## @algolia/monitoring@1.60.0
265
265
 
266
266
  License: MIT
267
267
 
@@ -289,7 +289,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
289
289
  SOFTWARE.
290
290
  ```
291
291
 
292
- ## @algolia/recommend@5.59.0
292
+ ## @algolia/recommend@5.60.0
293
293
 
294
294
  License: MIT
295
295
 
@@ -317,7 +317,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
317
317
  SOFTWARE.
318
318
  ```
319
319
 
320
- ## @algolia/requester-browser-xhr@5.59.0
320
+ ## @algolia/requester-browser-xhr@5.60.0
321
321
 
322
322
  License: MIT
323
323
 
@@ -345,7 +345,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
345
345
  SOFTWARE.
346
346
  ```
347
347
 
348
- ## @algolia/requester-fetch@5.59.0
348
+ ## @algolia/requester-fetch@5.60.0
349
349
 
350
350
  License: MIT
351
351
 
@@ -373,7 +373,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
373
373
  SOFTWARE.
374
374
  ```
375
375
 
376
- ## @algolia/requester-node-http@5.59.0
376
+ ## @algolia/requester-node-http@5.60.0
377
377
 
378
378
  License: MIT
379
379
 
@@ -485,7 +485,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
485
485
  SOFTWARE.
486
486
  ```
487
487
 
488
- ## @tanstack/react-store@0.11.1
488
+ ## @tanstack/react-store@0.11.2
489
489
 
490
490
  License: MIT
491
491
 
@@ -513,7 +513,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
513
513
  SOFTWARE.
514
514
  ```
515
515
 
516
- ## @tanstack/store@0.11.1
516
+ ## @tanstack/store@0.11.2
517
517
 
518
518
  License: MIT
519
519
 
@@ -547,7 +547,7 @@ License: MIT
547
547
 
548
548
  _(no bundled license text found in the package; see its npm page.)_
549
549
 
550
- ## algoliasearch@5.59.0
550
+ ## algoliasearch@5.60.0
551
551
 
552
552
  License: MIT
553
553
 
@@ -603,7 +603,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
603
603
  SOFTWARE.
604
604
  ```
605
605
 
606
- ## axios@1.20.0
606
+ ## axios@1.21.0
607
607
 
608
608
  License: MIT
609
609
 
@@ -863,7 +863,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
863
863
  SOFTWARE.
864
864
  ```
865
865
 
866
- ## follow-redirects@1.16.1
866
+ ## follow-redirects@1.16.2
867
867
 
868
868
  License: MIT
869
869
 
@@ -1114,7 +1114,7 @@ License: MIT
1114
1114
 
1115
1115
  _(no bundled license text found in the package; see its npm page.)_
1116
1116
 
1117
- ## jose@6.2.12
1117
+ ## jose@6.2.13
1118
1118
 
1119
1119
  License: MIT
1120
1120
 
@@ -1338,215 +1338,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1338
1338
  PERFORMANCE OF THIS SOFTWARE.
1339
1339
  ```
1340
1340
 
1341
- ## typeid-js@1.2.0
1342
-
1343
- License: Apache-2.0
1344
-
1345
- ```
1346
- Apache License
1347
- Version 2.0, January 2004
1348
- http://www.apache.org/licenses/
1349
-
1350
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1351
-
1352
- 1. Definitions.
1353
-
1354
- "License" shall mean the terms and conditions for use, reproduction,
1355
- and distribution as defined by Sections 1 through 9 of this document.
1356
-
1357
- "Licensor" shall mean the copyright owner or entity authorized by
1358
- the copyright owner that is granting the License.
1359
-
1360
- "Legal Entity" shall mean the union of the acting entity and all
1361
- other entities that control, are controlled by, or are under common
1362
- control with that entity. For the purposes of this definition,
1363
- "control" means (i) the power, direct or indirect, to cause the
1364
- direction or management of such entity, whether by contract or
1365
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
1366
- outstanding shares, or (iii) beneficial ownership of such entity.
1367
-
1368
- "You" (or "Your") shall mean an individual or Legal Entity
1369
- exercising permissions granted by this License.
1370
-
1371
- "Source" form shall mean the preferred form for making modifications,
1372
- including but not limited to software source code, documentation
1373
- source, and configuration files.
1374
-
1375
- "Object" form shall mean any form resulting from mechanical
1376
- transformation or translation of a Source form, including but
1377
- not limited to compiled object code, generated documentation,
1378
- and conversions to other media types.
1379
-
1380
- "Work" shall mean the work of authorship, whether in Source or
1381
- Object form, made available under the License, as indicated by a
1382
- copyright notice that is included in or attached to the work
1383
- (an example is provided in the Appendix below).
1384
-
1385
- "Derivative Works" shall mean any work, whether in Source or Object
1386
- form, that is based on (or derived from) the Work and for which the
1387
- editorial revisions, annotations, elaborations, or other modifications
1388
- represent, as a whole, an original work of authorship. For the purposes
1389
- of this License, Derivative Works shall not include works that remain
1390
- separable from, or merely link (or bind by name) to the interfaces of,
1391
- the Work and Derivative Works thereof.
1392
-
1393
- "Contribution" shall mean any work of authorship, including
1394
- the original version of the Work and any modifications or additions
1395
- to that Work or Derivative Works thereof, that is intentionally
1396
- submitted to Licensor for inclusion in the Work by the copyright owner
1397
- or by an individual or Legal Entity authorized to submit on behalf of
1398
- the copyright owner. For the purposes of this definition, "submitted"
1399
- means any form of electronic, verbal, or written communication sent
1400
- to the Licensor or its representatives, including but not limited to
1401
- communication on electronic mailing lists, source code control systems,
1402
- and issue tracking systems that are managed by, or on behalf of, the
1403
- Licensor for the purpose of discussing and improving the Work, but
1404
- excluding communication that is conspicuously marked or otherwise
1405
- designated in writing by the copyright owner as "Not a Contribution."
1406
-
1407
- "Contributor" shall mean Licensor and any individual or Legal Entity
1408
- on behalf of whom a Contribution has been received by Licensor and
1409
- subsequently incorporated within the Work.
1410
-
1411
- 2. Grant of Copyright License. Subject to the terms and conditions of
1412
- this License, each Contributor hereby grants to You a perpetual,
1413
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
1414
- copyright license to reproduce, prepare Derivative Works of,
1415
- publicly display, publicly perform, sublicense, and distribute the
1416
- Work and such Derivative Works in Source or Object form.
1417
-
1418
- 3. Grant of Patent License. Subject to the terms and conditions of
1419
- this License, each Contributor hereby grants to You a perpetual,
1420
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
1421
- (except as stated in this section) patent license to make, have made,
1422
- use, offer to sell, sell, import, and otherwise transfer the Work,
1423
- where such license applies only to those patent claims licensable
1424
- by such Contributor that are necessarily infringed by their
1425
- Contribution(s) alone or by combination of their Contribution(s)
1426
- with the Work to which such Contribution(s) was submitted. If You
1427
- institute patent litigation against any entity (including a
1428
- cross-claim or counterclaim in a lawsuit) alleging that the Work
1429
- or a Contribution incorporated within the Work constitutes direct
1430
- or contributory patent infringement, then any patent licenses
1431
- granted to You under this License for that Work shall terminate
1432
- as of the date such litigation is filed.
1433
-
1434
- 4. Redistribution. You may reproduce and distribute copies of the
1435
- Work or Derivative Works thereof in any medium, with or without
1436
- modifications, and in Source or Object form, provided that You
1437
- meet the following conditions:
1438
-
1439
- (a) You must give any other recipients of the Work or
1440
- Derivative Works a copy of this License; and
1441
-
1442
- (b) You must cause any modified files to carry prominent notices
1443
- stating that You changed the files; and
1444
-
1445
- (c) You must retain, in the Source form of any Derivative Works
1446
- that You distribute, all copyright, patent, trademark, and
1447
- attribution notices from the Source form of the Work,
1448
- excluding those notices that do not pertain to any part of
1449
- the Derivative Works; and
1450
-
1451
- (d) If the Work includes a "NOTICE" text file as part of its
1452
- distribution, then any Derivative Works that You distribute must
1453
- include a readable copy of the attribution notices contained
1454
- within such NOTICE file, excluding those notices that do not
1455
- pertain to any part of the Derivative Works, in at least one
1456
- of the following places: within a NOTICE text file distributed
1457
- as part of the Derivative Works; within the Source form or
1458
- documentation, if provided along with the Derivative Works; or,
1459
- within a display generated by the Derivative Works, if and
1460
- wherever such third-party notices normally appear. The contents
1461
- of the NOTICE file are for informational purposes only and
1462
- do not modify the License. You may add Your own attribution
1463
- notices within Derivative Works that You distribute, alongside
1464
- or as an addendum to the NOTICE text from the Work, provided
1465
- that such additional attribution notices cannot be construed
1466
- as modifying the License.
1467
-
1468
- You may add Your own copyright statement to Your modifications and
1469
- may provide additional or different license terms and conditions
1470
- for use, reproduction, or distribution of Your modifications, or
1471
- for any such Derivative Works as a whole, provided Your use,
1472
- reproduction, and distribution of the Work otherwise complies with
1473
- the conditions stated in this License.
1474
-
1475
- 5. Submission of Contributions. Unless You explicitly state otherwise,
1476
- any Contribution intentionally submitted for inclusion in the Work
1477
- by You to the Licensor shall be under the terms and conditions of
1478
- this License, without any additional terms or conditions.
1479
- Notwithstanding the above, nothing herein shall supersede or modify
1480
- the terms of any separate license agreement you may have executed
1481
- with Licensor regarding such Contributions.
1482
-
1483
- 6. Trademarks. This License does not grant permission to use the trade
1484
- names, trademarks, service marks, or product names of the Licensor,
1485
- except as required for reasonable and customary use in describing the
1486
- origin of the Work and reproducing the content of the NOTICE file.
1487
-
1488
- 7. Disclaimer of Warranty. Unless required by applicable law or
1489
- agreed to in writing, Licensor provides the Work (and each
1490
- Contributor provides its Contributions) on an "AS IS" BASIS,
1491
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
1492
- implied, including, without limitation, any warranties or conditions
1493
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
1494
- PARTICULAR PURPOSE. You are solely responsible for determining the
1495
- appropriateness of using or redistributing the Work and assume any
1496
- risks associated with Your exercise of permissions under this License.
1497
-
1498
- 8. Limitation of Liability. In no event and under no legal theory,
1499
- whether in tort (including negligence), contract, or otherwise,
1500
- unless required by applicable law (such as deliberate and grossly
1501
- negligent acts) or agreed to in writing, shall any Contributor be
1502
- liable to You for damages, including any direct, indirect, special,
1503
- incidental, or consequential damages of any character arising as a
1504
- result of this License or out of the use or inability to use the
1505
- Work (including but not limited to damages for loss of goodwill,
1506
- work stoppage, computer failure or malfunction, or any and all
1507
- other commercial damages or losses), even if such Contributor
1508
- has been advised of the possibility of such damages.
1509
-
1510
- 9. Accepting Warranty or Additional Liability. While redistributing
1511
- the Work or Derivative Works thereof, You may choose to offer,
1512
- and charge a fee for, acceptance of support, warranty, indemnity,
1513
- or other liability obligations and/or rights consistent with this
1514
- License. However, in accepting such obligations, You may act only
1515
- on Your own behalf and on Your sole responsibility, not on behalf
1516
- of any other Contributor, and only if You agree to indemnify,
1517
- defend, and hold each Contributor harmless for any liability
1518
- incurred by, or claims asserted against, such Contributor by reason
1519
- of your accepting any such warranty or additional liability.
1520
-
1521
- END OF TERMS AND CONDITIONS
1522
-
1523
- APPENDIX: How to apply the Apache License to your work.
1524
-
1525
- To apply the Apache License to your work, attach the following
1526
- boilerplate notice, with the fields enclosed by brackets "[]"
1527
- replaced with your own identifying information. (Don't include
1528
- the brackets!) The text should be enclosed in the appropriate
1529
- comment syntax for the file format. We also recommend that a
1530
- file or class name and description of purpose be included on the
1531
- same "printed page" as the copyright notice for easier
1532
- identification within third-party archives.
1533
-
1534
- Copyright [yyyy] [name of copyright owner]
1535
-
1536
- Licensed under the Apache License, Version 2.0 (the "License");
1537
- you may not use this file except in compliance with the License.
1538
- You may obtain a copy of the License at
1539
-
1540
- http://www.apache.org/licenses/LICENSE-2.0
1541
-
1542
- Unless required by applicable law or agreed to in writing, software
1543
- distributed under the License is distributed on an "AS IS" BASIS,
1544
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1545
- See the License for the specific language governing permissions and
1546
- limitations under the License.
1547
- ```
1548
-
1549
- ## typesense@3.0.6
1341
+ ## typesense@3.2.0
1550
1342
 
1551
1343
  License: Apache-2.0
1552
1344
 
@@ -1782,7 +1574,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1782
1574
  SOFTWARE.
1783
1575
  ```
1784
1576
 
1785
- ## use-sync-external-store@1.6.0
1577
+ ## use-sync-external-store@1.7.0
1786
1578
 
1787
1579
  License: MIT
1788
1580
 
@@ -1810,19 +1602,3 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1810
1602
  SOFTWARE.
1811
1603
  ```
1812
1604
 
1813
- ## uuid@11.1.1
1814
-
1815
- License: MIT
1816
-
1817
- ```
1818
- The MIT License (MIT)
1819
-
1820
- Copyright (c) 2010-2020 Robert Kieffer and other contributors
1821
-
1822
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
1823
-
1824
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
1825
-
1826
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1827
- ```
1828
-
package/dist/backend.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { isSafeFieldName as e, sanitizeEngineParams as t } from "./sanitize.js";
2
2
  import { Data as n } from "effect";
3
- //#region src/backend.ts
3
+ // src/backend.ts
4
4
  var r = class extends n.TaggedError("SearchBackendError") {}, i = (e) => Array.isArray(e) ? e : [e], a = (e, t, n) => {
5
5
  if (Math.abs(e.length - t.length) > n) return !1;
6
6
  if (e === t) return !0;
@@ -394,5 +394,4 @@ var r = class extends n.TaggedError("SearchBackendError") {}, i = (e) => Array.i
394
394
  }),
395
395
  facets: e.facets ?? {}
396
396
  });
397
- //#endregion
398
397
  export { r as SearchBackendError, x as algoliaBackend, a as editDistanceWithin, g as meilisearchBackend, s as memoryBackend, p as typesenseBackend };
package/dist/drift.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { and as e, count as t, eq as n, id as r, integer as i, table as a, text as o, timestamp as s } from "@voltro/database";
2
- //#region src/drift.ts
2
+ // src/drift.ts
3
3
  var c = "_voltro_search_drift", l = a(c, {
4
4
  id: r({ prefix: "sdrft" }),
5
5
  indexName: o().maxLength(191),
@@ -117,5 +117,4 @@ var c = "_voltro_search_drift", l = a(c, {
117
117
  await r.deleteMany(c, { where: e(n("indexName", t), n("rowId", i)) });
118
118
  }
119
119
  }), _ = () => [l];
120
- //#endregion
121
120
  export { c as SEARCH_DRIFT_TABLE, g as dataStoreDriftLedger, u as driftSourceQuery, _ as driftTables, p as memoryDriftLedger, l as searchDriftTable };
package/dist/errors.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Schema as e } from "effect";
2
- //#region src/errors.ts
2
+ // src/errors.ts
3
3
  var t = class extends e.TaggedError()("SearchIndexNotFound", { index: e.String }) {}, n = class extends e.TaggedError()("SearchFieldRejected", {
4
4
  field: e.String,
5
5
  where: e.Literals([
@@ -9,5 +9,4 @@ var t = class extends e.TaggedError()("SearchIndexNotFound", { index: e.String }
9
9
  ]),
10
10
  reason: e.Literals(["not-an-identifier", "not-queryable"])
11
11
  }) {};
12
- //#endregion
13
12
  export { n as SearchFieldRejected, t as SearchIndexNotFound };
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ import { SEARCH_DRIFT_TABLE as E, dataStoreDriftLedger as D, driftSourceQuery as
9
9
  import { Cause as ee, Duration as M, Effect as N, Exit as P, Option as F, Schedule as I, Stream as L } from "effect";
10
10
  import { streamTable as te } from "@voltro/database";
11
11
  import { definePlugin as ne, pluginInstanceName as re } from "@voltro/protocol";
12
- //#region src/index.ts
12
+ // src/index.ts
13
13
  var ie = (e, t) => {
14
14
  if (e === void 0 || e === "memory") return p();
15
15
  if (typeof e.query == "function") return e;
@@ -346,5 +346,4 @@ var ie = (e, t) => {
346
346
  })
347
347
  });
348
348
  };
349
- //#endregion
350
349
  export { a as FIELD_NAME_PATTERN, E as SEARCH_DRIFT_TABLE, h as SEARCH_STATS_TABLE, B as SYNC_DEFAULTS, u as SearchBackendError, S as SearchBackendNotDurable, e as SearchFieldRejected, t as SearchIndexNotFound, d as algoliaBackend, o as allowedEngineParams, z as applyChange, H as asBackendError, C as auditMemoryBackend, w as backendKindOf, R as backfillIndex, D as dataStoreDriftLedger, g as dataStoreStatsStore, O as driftSourceQuery, k as driftTables, c as isSafeFieldName, b as makeSearchStatsBuffer, f as meilisearchBackend, p as memoryBackend, A as memoryDriftLedger, _ as memoryStatsStore, T as peerObservedWarning, V as resolveSyncOptions, l as sanitizeEngineParams, W as scopeSearchFilters, j as searchDriftTable, K as searchPlugin, v as searchStatsTable, y as searchTables, x as statsStoreFlush, U as syncRetrySchedule, m as typesenseBackend };
@@ -1,38 +1,14 @@
1
- //#region src/memoryGuard.ts
1
+ // src/memoryGuard.ts
2
2
  var e = (e) => e === void 0 || e === "memory" ? "memory" : typeof e.query == "function" ? e.engineKind === "memory" ? "memory" : "custom" : "vendor", t = class extends Error {
3
3
  _tag = "SearchBackendNotDurable";
4
4
  constructor(e) {
5
5
  super(e), this.name = "SearchBackendNotDurable";
6
6
  }
7
- }, n = [
8
- "plugin-search refuses to boot in production on the in-memory backend.",
9
- "",
10
- "The memory index lives in THIS process's heap. Two consequences, both silent:",
11
- " • every replica holds a different index, so a result depends on which replica served you;",
12
- " • the index starts EMPTY after every restart/deploy, and nothing re-seeds it automatically.",
13
- "",
14
- "Configure a durable engine in app.config.ts:",
15
- " searchPlugin({ backend: { engine: 'typesense', url: …, apiKey: … }, indexes })",
16
- " searchPlugin({ backend: { engine: 'meilisearch', url: …, apiKey: … }, indexes })",
17
- " searchPlugin({ backend: { engine: 'algolia', appId: …, apiKey: … }, indexes })",
18
- "or pass your own `SearchBackend` implementation.",
19
- "",
20
- "If this deployment really is ONE process that re-seeds its index at startup",
21
- "(a `*.startup.tsx` calling `backfillIndex`), say so explicitly:",
22
- " searchPlugin({ singleProcessMemoryIndex: true, indexes })",
23
- "That is a claim about your topology, not a mute switch: if a second replica",
24
- "ever announces itself, the plugin logs that the claim was contradicted."
25
- ].join("\n"), r = [
26
- "plugin-search is running the in-memory backend in production under",
27
- "`singleProcessMemoryIndex: true`. Holding you to the two conditions that makes true:",
28
- "exactly ONE process serves search, and it re-seeds every index at startup",
29
- "(`backfillIndex`) — the index is empty after each restart until it does."
30
- ].join(" "), i = (e) => e.backendKind !== "memory" || !e.production ? { level: "quiet" } : e.singleProcessDeclared ? {
7
+ }, n = "plugin-search refuses to boot in production on the in-memory backend.\n\nThe memory index lives in THIS process's heap. Two consequences, both silent:\n • every replica holds a different index, so a result depends on which replica served you;\n • the index starts EMPTY after every restart/deploy, and nothing re-seeds it automatically.\n\nConfigure a durable engine in app.config.ts:\n searchPlugin({ backend: { engine: 'typesense', url: …, apiKey: … }, indexes })\n searchPlugin({ backend: { engine: 'meilisearch', url: …, apiKey: … }, indexes })\n searchPlugin({ backend: { engine: 'algolia', appId: …, apiKey: … }, indexes })\nor pass your own `SearchBackend` implementation.\n\nIf this deployment really is ONE process that re-seeds its index at startup\n(a `*.startup.tsx` calling `backfillIndex`), say so explicitly:\n searchPlugin({ singleProcessMemoryIndex: true, indexes })\nThat is a claim about your topology, not a mute switch: if a second replica\never announces itself, the plugin logs that the claim was contradicted.", r = "plugin-search is running the in-memory backend in production under `singleProcessMemoryIndex: true`. Holding you to the two conditions that makes true: exactly ONE process serves search, and it re-seeds every index at startup (`backfillIndex`) — the index is empty after each restart until it does.", i = (e) => e.backendKind !== "memory" || !e.production ? { level: "quiet" } : e.singleProcessDeclared ? {
31
8
  level: "note",
32
9
  message: r
33
10
  } : {
34
11
  level: "refuse",
35
12
  message: n
36
13
  }, a = (e, t) => t ? `search: replica "${e}" joined, but this app declared \`singleProcessMemoryIndex: true\`. That declaration is now false: each replica has its own in-memory index, so search results depend on which one serves the request. Configure a durable backend (typesense / meilisearch / algolia) or run one process.` : `search: replica "${e}" joined while search is served from an in-memory index. Each replica indexes only its OWN writes, so results depend on which replica answers. Configure a durable backend (typesense / meilisearch / algolia) before relying on these results.`;
37
- //#endregion
38
14
  export { t as SearchBackendNotDurable, i as auditMemoryBackend, e as backendKindOf, a as peerObservedWarning };
package/dist/rpc.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { SearchFieldRejected as e, SearchIndexNotFound as t } from "./errors.js";
2
2
  import { Schema as n } from "effect";
3
3
  import { defineAction as r } from "@voltro/protocol";
4
- //#region src/rpc.ts
4
+ // src/rpc.ts
5
5
  var i = "@voltro/plugin-search", a = n.Union([
6
6
  n.String,
7
7
  n.Number,
@@ -53,5 +53,4 @@ var i = "@voltro/plugin-search", a = n.Union([
53
53
  name: "queryDescriptor"
54
54
  }
55
55
  }];
56
- //#endregion
57
56
  export { i as BASE_NAME, o as SearchFilterSchema, l as queryDescriptor, u as searchRpcClientImports };
package/dist/sanitize.js CHANGED
@@ -1,4 +1,4 @@
1
- //#region src/sanitize.ts
1
+ // src/sanitize.ts
2
2
  var e = /^[A-Za-z_][A-Za-z0-9_.]*$/, t = (t) => e.test(t), n = (e, n) => {
3
3
  let r = n ? new Set(n) : void 0;
4
4
  for (let [n, i] of e) {
@@ -118,5 +118,4 @@ var e = /^[A-Za-z_][A-Za-z0-9_.]*$/, t = (t) => e.test(t), n = (e, n) => {
118
118
  dropped: u
119
119
  };
120
120
  }, o = (e) => r[e];
121
- //#endregion
122
121
  export { e as FIELD_NAME_PATTERN, o as allowedEngineParams, n as firstRejectedField, t as isSafeFieldName, a as sanitizeEngineParams };
@@ -1,4 +1,4 @@
1
- //#region src/statsBuffer.ts
1
+ // src/statsBuffer.ts
2
2
  var e = (e) => {
3
3
  let t = /* @__PURE__ */ new Map(), n = 0, r = !1, i = async () => {
4
4
  if (t.size === 0) return;
@@ -32,5 +32,4 @@ var e = (e) => {
32
32
  pending: () => n
33
33
  };
34
34
  }, t = (e) => (t, n, r) => e().add(t, n, r);
35
- //#endregion
36
35
  export { e as makeSearchStatsBuffer, t as statsStoreFlush };
@@ -1,7 +1,7 @@
1
1
  import { SearchBackendError as e } from "./backend.js";
2
2
  import { and as t, eq as n, id as r, integer as i, table as a, text as o, timestamp as s } from "@voltro/database";
3
3
  import { replicaId as c } from "@voltro/protocol/identity";
4
- //#region src/statsStore.ts
4
+ // src/statsStore.ts
5
5
  var l = "_voltro_search_stats", u = () => ({
6
6
  synced: 0,
7
7
  removed: 0,
@@ -159,5 +159,4 @@ var l = "_voltro_search_stats", u = () => ({
159
159
  })
160
160
  };
161
161
  };
162
- //#endregion
163
162
  export { l as SEARCH_STATS_TABLE, v as dataStoreStatsStore, p as memoryStatsStore, d as searchStatsTable, f as searchTables, u as zeroStats };
package/dist/web.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { BASE_NAME as e } from "./rpc.js";
2
2
  import { pluginTag as t } from "@voltro/protocol";
3
3
  import { useAction as n } from "@voltro/client";
4
- //#region src/web.ts
4
+ // src/web.ts
5
5
  var r = (n) => t(e, n), i = (e, t = "app") => {
6
6
  let i = n(t, r("query")), a = i.lastResult;
7
7
  return {
@@ -16,5 +16,4 @@ var r = (n) => t(e, n), i = (e, t = "app") => {
16
16
  error: i.error
17
17
  };
18
18
  };
19
- //#endregion
20
19
  export { i as useSearch };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voltro/plugin-search",
3
- "version": "0.86.0",
3
+ "version": "0.88.0",
4
4
  "description": "Keep an external search index (Typesense / Meilisearch / Algolia) in sync with framework tables via the post-commit ChangeEvent tap, then query it — tenant-scoped, with a backfill path and a useSearch() hook.",
5
5
  "keywords": [
6
6
  "voltro",
@@ -43,17 +43,17 @@
43
43
  "node": ">=24.0.0"
44
44
  },
45
45
  "dependencies": {
46
- "@voltro/client": "0.86.0",
47
- "@voltro/database": "0.86.0",
48
- "@voltro/protocol": "0.86.0"
46
+ "@voltro/client": "0.88.0",
47
+ "@voltro/database": "0.88.0",
48
+ "@voltro/protocol": "0.88.0"
49
49
  },
50
50
  "optionalDependencies": {
51
- "algoliasearch": "^5.59.0",
51
+ "algoliasearch": "^5.60.0",
52
52
  "meilisearch": "^0.62.0",
53
- "typesense": "^3.0.6"
53
+ "typesense": "^3.2.0"
54
54
  },
55
55
  "peerDependencies": {
56
- "effect": "4.0.1"
56
+ "effect": "4.1.0"
57
57
  },
58
58
  "publishConfig": {
59
59
  "access": "public"