@rubixstudios/payload-typesense 1.1.0 → 1.1.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.
Files changed (105) hide show
  1. package/README.md +1 -16
  2. package/dist/components/HeadlessSearchInput.d.ts +2 -92
  3. package/dist/components/HeadlessSearchInput.d.ts.map +1 -1
  4. package/dist/components/HeadlessSearchInput.js +23 -140
  5. package/dist/components/ThemeProvider.d.ts +3 -2
  6. package/dist/components/ThemeProvider.d.ts.map +1 -1
  7. package/dist/components/ThemeProvider.js +1 -1
  8. package/dist/components/index.d.ts +5 -5
  9. package/dist/components/index.d.ts.map +1 -1
  10. package/dist/components/index.js +3 -3
  11. package/dist/components/themes/hooks.d.ts +5 -5
  12. package/dist/components/themes/hooks.d.ts.map +1 -1
  13. package/dist/components/themes/hooks.js +16 -16
  14. package/dist/components/themes/index.d.ts +4 -4
  15. package/dist/components/themes/index.js +4 -4
  16. package/dist/components/themes/themes.d.ts +1 -1
  17. package/dist/components/themes/themes.d.ts.map +1 -1
  18. package/dist/components/themes/themes.js +109 -109
  19. package/dist/components/themes/types.d.ts.map +1 -1
  20. package/dist/components/themes/utils.d.ts +1 -1
  21. package/dist/components/themes/utils.d.ts.map +1 -1
  22. package/dist/components/themes/utils.js +140 -140
  23. package/dist/endpoints/handler/createAdvancedSearch.d.ts +5 -0
  24. package/dist/endpoints/handler/createAdvancedSearch.d.ts.map +1 -0
  25. package/dist/endpoints/handler/createAdvancedSearch.js +40 -0
  26. package/dist/endpoints/handler/createCollections.d.ts +4 -0
  27. package/dist/endpoints/handler/createCollections.d.ts.map +1 -0
  28. package/dist/endpoints/handler/createCollections.js +23 -0
  29. package/dist/endpoints/handler/createSearch.d.ts +5 -0
  30. package/dist/endpoints/handler/createSearch.d.ts.map +1 -0
  31. package/dist/endpoints/handler/createSearch.js +119 -0
  32. package/dist/endpoints/handler/createSuggest.d.ts +5 -0
  33. package/dist/endpoints/handler/createSuggest.d.ts.map +1 -0
  34. package/dist/endpoints/handler/createSuggest.js +50 -0
  35. package/dist/endpoints/health.d.ts +4 -10
  36. package/dist/endpoints/health.d.ts.map +1 -1
  37. package/dist/endpoints/health.js +45 -103
  38. package/dist/endpoints/search.d.ts +4 -5
  39. package/dist/endpoints/search.d.ts.map +1 -1
  40. package/dist/endpoints/search.js +26 -355
  41. package/dist/index.d.ts +3 -3
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +6 -101
  44. package/dist/lib/cache.d.ts +6 -27
  45. package/dist/lib/cache.d.ts.map +1 -1
  46. package/dist/lib/cache.js +11 -29
  47. package/dist/lib/client.d.ts +4 -0
  48. package/dist/lib/client.d.ts.map +1 -0
  49. package/dist/lib/{typesense-client.js → client.js} +10 -18
  50. package/dist/lib/headlessSearch.d.ts +89 -0
  51. package/dist/lib/headlessSearch.d.ts.map +1 -0
  52. package/dist/lib/headlessSearch.js +2 -0
  53. package/dist/lib/hooks.d.ts +12 -3
  54. package/dist/lib/hooks.d.ts.map +1 -1
  55. package/dist/lib/hooks.js +37 -37
  56. package/dist/lib/initialization.d.ts +3 -3
  57. package/dist/lib/initialization.d.ts.map +1 -1
  58. package/dist/lib/initialization.js +36 -49
  59. package/dist/lib/schema-mapper.d.ts +17 -7
  60. package/dist/lib/schema-mapper.d.ts.map +1 -1
  61. package/dist/lib/schema-mapper.js +53 -89
  62. package/dist/lib/{config-validation.d.ts → validation.d.ts} +18 -22
  63. package/dist/lib/validation.d.ts.map +1 -0
  64. package/dist/lib/{config-validation.js → validation.js} +32 -49
  65. package/dist/{lib/types.d.ts → types.d.ts} +22 -5
  66. package/dist/types.d.ts.map +1 -0
  67. package/dist/utils/buildError.d.ts +2 -0
  68. package/dist/utils/buildError.d.ts.map +1 -0
  69. package/dist/utils/buildError.js +10 -0
  70. package/dist/utils/ensureCollection.d.ts +3 -0
  71. package/dist/utils/ensureCollection.d.ts.map +1 -0
  72. package/dist/utils/ensureCollection.js +13 -0
  73. package/dist/utils/extractText.d.ts +2 -0
  74. package/dist/utils/extractText.d.ts.map +1 -0
  75. package/dist/utils/extractText.js +20 -0
  76. package/dist/utils/getAllCollections.d.ts +9 -0
  77. package/dist/utils/getAllCollections.d.ts.map +1 -0
  78. package/dist/utils/getAllCollections.js +84 -0
  79. package/dist/utils/getCacheStats.d.ts +6 -0
  80. package/dist/utils/getCacheStats.d.ts.map +1 -0
  81. package/dist/utils/getCacheStats.js +9 -0
  82. package/dist/utils/getCollectionInfo.d.ts +3 -0
  83. package/dist/utils/getCollectionInfo.d.ts.map +1 -0
  84. package/dist/utils/getCollectionInfo.js +8 -0
  85. package/dist/utils/keyboard.d.ts +8 -0
  86. package/dist/utils/keyboard.d.ts.map +1 -0
  87. package/dist/utils/keyboard.js +41 -0
  88. package/dist/utils/testConnection.d.ts +3 -0
  89. package/dist/utils/testConnection.d.ts.map +1 -0
  90. package/dist/utils/testConnection.js +8 -0
  91. package/dist/utils/useDebounce.d.ts +2 -0
  92. package/dist/utils/useDebounce.d.ts.map +1 -0
  93. package/dist/utils/useDebounce.js +15 -0
  94. package/dist/utils/useSearch.d.ts +17 -0
  95. package/dist/utils/useSearch.d.ts.map +1 -0
  96. package/dist/utils/useSearch.js +78 -0
  97. package/package.json +14 -11
  98. package/dist/endpoints/customEndpointHandler.d.ts +0 -3
  99. package/dist/endpoints/customEndpointHandler.d.ts.map +0 -1
  100. package/dist/endpoints/customEndpointHandler.js +0 -5
  101. package/dist/lib/config-validation.d.ts.map +0 -1
  102. package/dist/lib/types.d.ts.map +0 -1
  103. package/dist/lib/typesense-client.d.ts +0 -5
  104. package/dist/lib/typesense-client.d.ts.map +0 -1
  105. /package/dist/{lib/types.js → types.js} +0 -0
@@ -0,0 +1,84 @@
1
+ import { searchCache } from '../lib/cache.js';
2
+ export const getAllCollections = async (typesenseClient, pluginOptions, query, options)=>{
3
+ try {
4
+ const cachedResult = searchCache.get(query, 'universal', options);
5
+ if (cachedResult) {
6
+ return Response.json(cachedResult);
7
+ }
8
+ const enabledCollections = Object.entries(pluginOptions.collections || {}).filter(([_, config])=>config?.enabled);
9
+ if (enabledCollections.length === 0) {
10
+ return Response.json({
11
+ error: 'No collections enabled for search'
12
+ }, {
13
+ status: 400
14
+ });
15
+ }
16
+ const searchPromises = enabledCollections.map(async ([collectionName, config])=>{
17
+ try {
18
+ const searchParameters = {
19
+ highlight_full_fields: config?.searchFields?.join(',') || 'title,content',
20
+ num_typos: 0,
21
+ page: options.page,
22
+ per_page: Math.ceil(options.per_page / enabledCollections.length),
23
+ q: query,
24
+ query_by: config?.searchFields?.join(',') || 'title,content',
25
+ snippet_threshold: 30,
26
+ typo_tokens_threshold: 1
27
+ };
28
+ const results = await typesenseClient.collections(collectionName).documents().search(searchParameters);
29
+ return {
30
+ collection: collectionName,
31
+ displayName: config?.displayName || collectionName,
32
+ icon: config?.icon || '📄',
33
+ ...results,
34
+ hits: results.hits?.map((hit)=>({
35
+ ...hit,
36
+ collection: collectionName,
37
+ displayName: config?.displayName || collectionName,
38
+ icon: config?.icon || '📄'
39
+ })) || []
40
+ };
41
+ } catch (_error) {
42
+ return {
43
+ collection: collectionName,
44
+ displayName: config?.displayName || collectionName,
45
+ error: _error instanceof Error ? _error.message : 'Unknown error',
46
+ found: 0,
47
+ hits: [],
48
+ icon: config?.icon || '📄'
49
+ };
50
+ }
51
+ });
52
+ const results = await Promise.all(searchPromises);
53
+ const combinedHits = results.flatMap((result)=>result.hits || []);
54
+ const totalFound = results.reduce((sum, result)=>sum + (result.found || 0), 0);
55
+ combinedHits.sort((a, b)=>(b.text_match || 0) - (a.text_match || 0));
56
+ const searchResult = {
57
+ collections: results.map((r)=>({
58
+ collection: r.collection,
59
+ displayName: r.displayName,
60
+ error: r.error,
61
+ found: r.found || 0,
62
+ icon: r.icon
63
+ })),
64
+ found: totalFound,
65
+ hits: combinedHits.slice(0, options.per_page),
66
+ page: options.page,
67
+ request_params: {
68
+ per_page: options.per_page,
69
+ q: query
70
+ },
71
+ search_cutoff: false,
72
+ search_time_ms: 0
73
+ };
74
+ searchCache.set(query, searchResult, 'universal', options);
75
+ return Response.json(searchResult);
76
+ } catch (error) {
77
+ return Response.json({
78
+ details: error instanceof Error ? error.message : 'Unknown error',
79
+ error: 'Universal search failed'
80
+ }, {
81
+ status: 500
82
+ });
83
+ }
84
+ };
@@ -0,0 +1,6 @@
1
+ export declare const getCacheStats: () => {
2
+ hitRate: number;
3
+ maxSize: number;
4
+ size: number;
5
+ };
6
+ //# sourceMappingURL=getCacheStats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCacheStats.d.ts","sourceRoot":"","sources":["../../src/utils/getCacheStats.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;CAOzB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { searchCache } from '../lib/cache.js';
2
+ export const getCacheStats = ()=>{
3
+ const stats = searchCache.getStats();
4
+ return {
5
+ hitRate: stats.hitRate || 0,
6
+ maxSize: stats.maxSize,
7
+ size: stats.size
8
+ };
9
+ };
@@ -0,0 +1,3 @@
1
+ import type Typesense from 'typesense';
2
+ export declare const getCollectionInfo: (client: Typesense.Client) => Promise<string[]>;
3
+ //# sourceMappingURL=getCollectionInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCollectionInfo.d.ts","sourceRoot":"","sources":["../../src/utils/getCollectionInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,WAAW,CAAA;AAEtC,eAAO,MAAM,iBAAiB,GAAU,QAAQ,SAAS,CAAC,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAOlF,CAAA"}
@@ -0,0 +1,8 @@
1
+ export const getCollectionInfo = async (client)=>{
2
+ try {
3
+ const collections = await client.collections().retrieve();
4
+ return collections.map((c)=>c.name);
5
+ } catch {
6
+ return [];
7
+ }
8
+ };
@@ -0,0 +1,8 @@
1
+ import type React from 'react';
2
+ export declare function handleKeyboard(e: React.KeyboardEvent, options: {
3
+ inputRef: React.RefObject<HTMLInputElement | null>;
4
+ isOpen: boolean;
5
+ results: any;
6
+ resultsRef: React.RefObject<HTMLDivElement | null>;
7
+ }): void;
8
+ //# sourceMappingURL=keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../src/utils/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,wBAAgB,cAAc,CAC5B,CAAC,EAAE,KAAK,CAAC,aAAa,EACtB,OAAO,EAAE;IACP,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;IAClD,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,GAAG,CAAA;IACZ,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;CACnD,QA2CF"}
@@ -0,0 +1,41 @@
1
+ export function handleKeyboard(e, options) {
2
+ const { inputRef, isOpen, results, resultsRef } = options;
3
+ if (!isOpen || !results) {
4
+ return;
5
+ }
6
+ const resultItems = resultsRef.current?.querySelectorAll('[data-result-item]');
7
+ if (!resultItems) {
8
+ return;
9
+ }
10
+ const currentIndex = Array.from(resultItems).findIndex((item)=>item === document.activeElement);
11
+ switch(e.key){
12
+ case 'ArrowDown':
13
+ {
14
+ e.preventDefault();
15
+ const nextIndex = currentIndex < resultItems.length - 1 ? currentIndex + 1 : 0;
16
+ resultItems[nextIndex]?.focus();
17
+ break;
18
+ }
19
+ case 'ArrowUp':
20
+ {
21
+ e.preventDefault();
22
+ const prevIndex = currentIndex > 0 ? currentIndex - 1 : resultItems.length - 1;
23
+ resultItems[prevIndex]?.focus();
24
+ break;
25
+ }
26
+ case 'Enter':
27
+ {
28
+ e.preventDefault();
29
+ if (currentIndex >= 0 && resultItems[currentIndex]) {
30
+ ;
31
+ resultItems[currentIndex]?.click();
32
+ }
33
+ break;
34
+ }
35
+ case 'Escape':
36
+ {
37
+ inputRef.current?.blur();
38
+ break;
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,3 @@
1
+ import type Typesense from 'typesense';
2
+ export declare const testConnection: (client: Typesense.Client) => Promise<boolean>;
3
+ //# sourceMappingURL=testConnection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testConnection.d.ts","sourceRoot":"","sources":["../../src/utils/testConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,WAAW,CAAA;AAEtC,eAAO,MAAM,cAAc,GAAU,QAAQ,SAAS,CAAC,MAAM,KAAG,OAAO,CAAC,OAAO,CAO9E,CAAA"}
@@ -0,0 +1,8 @@
1
+ export const testConnection = async (client)=>{
2
+ try {
3
+ const health = await client.health.retrieve();
4
+ return health.ok === true;
5
+ } catch {
6
+ return false;
7
+ }
8
+ };
@@ -0,0 +1,2 @@
1
+ export declare function useDebounce<T>(value: T, delay: number): T;
2
+ //# sourceMappingURL=useDebounce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebounce.d.ts","sourceRoot":"","sources":["../../src/utils/useDebounce.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAWzD"}
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { useEffect, useState } from 'react';
3
+ export function useDebounce(value, delay) {
4
+ const [debounced, setDebounced] = useState(value);
5
+ useEffect(()=>{
6
+ const handle = setTimeout(()=>setDebounced(value), delay);
7
+ return ()=>{
8
+ clearTimeout(handle);
9
+ };
10
+ }, [
11
+ value,
12
+ delay
13
+ ]);
14
+ return debounced;
15
+ }
@@ -0,0 +1,17 @@
1
+ import { type SearchResponse } from '../types.js';
2
+ type UseSearchOptions<T> = {
3
+ baseUrl: string;
4
+ collections?: string | string[];
5
+ minQueryLength: number;
6
+ onResults?: (results: SearchResponse<T>) => void;
7
+ onSearch?: (query: string, results: SearchResponse<T>) => void;
8
+ perPage: number;
9
+ };
10
+ export declare function useSearch<T = Record<string, unknown>>({ baseUrl, collections, minQueryLength, onResults, onSearch, perPage, }: UseSearchOptions<T>): {
11
+ error: string | null;
12
+ isLoading: boolean;
13
+ results: SearchResponse<T> | null;
14
+ search: (searchQuery: string) => Promise<void>;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=useSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSearch.d.ts","sourceRoot":"","sources":["../../src/utils/useSearch.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,KAAK,gBAAgB,CAAC,CAAC,IAAI;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC/B,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAChD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAC9D,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACrD,OAAO,EACP,WAAW,EACX,cAAc,EACd,SAAS,EACT,QAAQ,EACR,OAAO,GACR,EAAE,gBAAgB,CAAC,CAAC,CAAC;;;;0BAsBE,MAAM;EA0E7B"}
@@ -0,0 +1,78 @@
1
+ 'use client';
2
+ import { useCallback, useEffect, useRef, useState } from 'react';
3
+ export function useSearch({ baseUrl, collections, minQueryLength, onResults, onSearch, perPage }) {
4
+ const [results, setResults] = useState(null);
5
+ const [isLoading, setIsLoading] = useState(false);
6
+ const [error, setError] = useState(null);
7
+ const collectionsRef = useRef(collections);
8
+ const onResultsRef = useRef(onResults);
9
+ const onSearchRef = useRef(onSearch);
10
+ useEffect(()=>{
11
+ collectionsRef.current = collections;
12
+ }, [
13
+ collections
14
+ ]);
15
+ useEffect(()=>{
16
+ onResultsRef.current = onResults;
17
+ }, [
18
+ onResults
19
+ ]);
20
+ useEffect(()=>{
21
+ onSearchRef.current = onSearch;
22
+ }, [
23
+ onSearch
24
+ ]);
25
+ const search = useCallback(async (searchQuery)=>{
26
+ if (searchQuery.length < minQueryLength) {
27
+ setResults(null);
28
+ setIsLoading(false);
29
+ return;
30
+ }
31
+ setIsLoading(true);
32
+ setError(null);
33
+ try {
34
+ const activeCollections = collectionsRef.current;
35
+ let searchUrl;
36
+ if (typeof activeCollections === 'string' && activeCollections) {
37
+ searchUrl = `${baseUrl}/api/search/${activeCollections}?q=${encodeURIComponent(searchQuery)}&per_page=${perPage}`;
38
+ } else if (Array.isArray(activeCollections) && activeCollections.length > 0) {
39
+ searchUrl = `${baseUrl}/api/search?q=${encodeURIComponent(searchQuery)}&per_page=${perPage * 2}`;
40
+ } else {
41
+ searchUrl = `${baseUrl}/api/search?q=${encodeURIComponent(searchQuery)}&per_page=${perPage}`;
42
+ }
43
+ const response = await fetch(searchUrl);
44
+ if (!response.ok) {
45
+ throw new Error(`Search failed: ${response.status} ${response.statusText}`);
46
+ }
47
+ let searchResults = await response.json();
48
+ if (Array.isArray(activeCollections) && activeCollections.length > 0) {
49
+ const filteredHits = searchResults.hits?.filter((hit)=>hit.collection && activeCollections.includes(hit.collection)) || [];
50
+ const filteredCollections = searchResults.collections?.filter((col)=>col.collection && activeCollections.includes(col.collection)) || [];
51
+ searchResults = {
52
+ ...searchResults,
53
+ collections: filteredCollections,
54
+ found: filteredHits.length,
55
+ hits: filteredHits
56
+ };
57
+ }
58
+ setResults(searchResults);
59
+ onResultsRef.current?.(searchResults);
60
+ onSearchRef.current?.(searchQuery, searchResults);
61
+ } catch (err) {
62
+ setError(err instanceof Error ? err.message : 'Search failed');
63
+ setResults(null);
64
+ } finally{
65
+ setIsLoading(false);
66
+ }
67
+ }, [
68
+ baseUrl,
69
+ minQueryLength,
70
+ perPage
71
+ ]);
72
+ return {
73
+ error,
74
+ isLoading,
75
+ results,
76
+ search
77
+ };
78
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubixstudios/payload-typesense",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "A production-ready search plugin that integrates Typesense with Payload CMS, offering fast, typo-tolerant search with real-time synchronization. This fork by Rubix Studios reduces bloat and introduces targeted changes for improved performance, maintainability, and flexibility.",
5
5
  "license": "MIT",
6
6
  "author": "Rubix Studios <hello@rubixstudios.com.au> (https://rubixstudios.com.au)",
@@ -50,6 +50,8 @@
50
50
  "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
51
51
  "build:types": "tsc -p tsconfig.json",
52
52
  "clean": "rimraf -g {dist,*.tsbuildinfo}",
53
+ "format": "pnpx prettier --write . --log-level warn",
54
+ "format:check": "pnpx prettier --check .",
53
55
  "lint": "eslint .",
54
56
  "lint:fix": "eslint . --fix",
55
57
  "update": "pnpm update --latest && pnpm install && pnpm prune && pnpm dedupe",
@@ -59,15 +61,16 @@
59
61
  "@payloadcms/eslint-config": "3.28.0",
60
62
  "@semantic-release/changelog": "^6.0.3",
61
63
  "@semantic-release/git": "^10.0.1",
62
- "@semantic-release/github": "^11.0.6",
63
- "@semantic-release/npm": "^12.0.2",
64
- "@swc/cli": "^0.7.8",
65
- "@swc/core": "^1.13.5",
66
- "@types/react": "19.2.2",
67
- "eslint": "^9.37.0",
68
- "payload": "3.59.1",
69
- "rimraf": "6.0.1",
70
- "semantic-release": "^24.2.9",
64
+ "@semantic-release/github": "^12.0.2",
65
+ "@semantic-release/npm": "^13.1.1",
66
+ "@swc/cli": "^0.7.9",
67
+ "@swc/core": "^1.15.1",
68
+ "@types/react": "19.2.4",
69
+ "eslint": "^9.39.1",
70
+ "payload": "3.63.0",
71
+ "prettier": "^3.6.2",
72
+ "rimraf": "6.1.0",
73
+ "semantic-release": "^25.0.2",
71
74
  "typescript": "5.9.3"
72
75
  },
73
76
  "peerDependencies": {
@@ -94,5 +97,5 @@
94
97
  "typesense": "^2.1.0",
95
98
  "zod": "^4.1.12"
96
99
  },
97
- "packageManager": "pnpm@10.18.2"
100
+ "packageManager": "pnpm@10.21.0"
98
101
  }
@@ -1,3 +0,0 @@
1
- import type { PayloadHandler } from "payload";
2
- export declare const customEndpointHandler: PayloadHandler;
3
- //# sourceMappingURL=customEndpointHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"customEndpointHandler.d.ts","sourceRoot":"","sources":["../../src/endpoints/customEndpointHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,eAAO,MAAM,qBAAqB,EAAE,cAEnC,CAAA"}
@@ -1,5 +0,0 @@
1
- export const customEndpointHandler = ()=>{
2
- return Response.json({
3
- message: "Custom endpoint response"
4
- });
5
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-validation.d.ts","sourceRoot":"","sources":["../../src/lib/config-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA4CvB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAYtC,CAAA;AAGF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CACnD,OAAO,2BAA2B,CAClC,CAAA;AAGD,MAAM,WAAW,gBAAgB;IAChC,IAAI,CAAC,EAAE,8BAA8B,CAAA;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAyBhE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAyB5E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACvC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,OAAO,GACb,gBAAgB,CAyBlB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;iBAW7B,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEtE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAyBtE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import Typesense from "typesense";
2
- import type { TypesenseSearchConfig } from "../index.js";
3
- export declare const createTypesenseClient: (typesenseConfig: TypesenseSearchConfig["typesense"]) => Typesense.Client;
4
- export declare const testTypesenseConnection: (c: Typesense.Client) => Promise<boolean>;
5
- //# sourceMappingURL=typesense-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typesense-client.d.ts","sourceRoot":"","sources":["../../src/lib/typesense-client.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;AAEjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAiDxD,eAAO,MAAM,qBAAqB,GACjC,iBAAiB,qBAAqB,CAAC,WAAW,CAAC,KACjD,SAAS,CAAC,MAoBZ,CAAA;AAED,eAAO,MAAM,uBAAuB,GACnC,GAAG,SAAS,CAAC,MAAM,KACjB,OAAO,CAAC,OAAO,CAQjB,CAAA"}
File without changes