@23blocks/block-search 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +497 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/lib/block-search.d.ts +2 -0
- package/dist/src/lib/block-search.d.ts.map +1 -0
- package/dist/{lib/mappers/index.js → src/lib/mappers/index.d.ts} +2 -3
- package/dist/src/lib/mappers/index.d.ts.map +1 -0
- package/dist/src/lib/mappers/search.mapper.d.ts +23 -0
- package/dist/src/lib/mappers/search.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/utils.d.ts +21 -0
- package/dist/src/lib/mappers/utils.d.ts.map +1 -0
- package/dist/{lib/search.block.js → src/lib/search.block.d.ts} +37 -21
- package/dist/src/lib/search.block.d.ts.map +1 -0
- package/dist/src/lib/services/index.d.ts +2 -0
- package/dist/src/lib/services/index.d.ts.map +1 -0
- package/dist/src/lib/services/search.service.d.ts +79 -0
- package/dist/src/lib/services/search.service.d.ts.map +1 -0
- package/dist/src/lib/types/index.d.ts +2 -0
- package/dist/src/lib/types/index.d.ts.map +1 -0
- package/dist/src/lib/types/search.d.ts +152 -0
- package/dist/src/lib/types/search.d.ts.map +1 -0
- package/package.json +10 -8
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/lib/block-search.js +0 -5
- package/dist/lib/block-search.js.map +0 -1
- package/dist/lib/mappers/index.js.map +0 -1
- package/dist/lib/mappers/search.mapper.js +0 -174
- package/dist/lib/mappers/search.mapper.js.map +0 -1
- package/dist/lib/mappers/utils.js +0 -57
- package/dist/lib/mappers/utils.js.map +0 -1
- package/dist/lib/search.block.js.map +0 -1
- package/dist/lib/services/index.js +0 -3
- package/dist/lib/services/index.js.map +0 -1
- package/dist/lib/services/search.service.js +0 -209
- package/dist/lib/services/search.service.js.map +0 -1
- package/dist/lib/types/index.js +0 -3
- package/dist/lib/types/index.js.map +0 -1
- package/dist/lib/types/search.js +0 -5
- package/dist/lib/types/search.js.map +0 -1
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
-
import { searchResultMapper, searchQueryMapper, lastQueryMapper, favoriteEntityMapper, entityTypeMapper } from '../mappers/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Build filter params for list operations
|
|
5
|
-
*/ function buildListParams(params) {
|
|
6
|
-
if (!params) return {};
|
|
7
|
-
const queryParams = {};
|
|
8
|
-
if (params.page) {
|
|
9
|
-
queryParams['page[number]'] = params.page;
|
|
10
|
-
}
|
|
11
|
-
if (params.perPage) {
|
|
12
|
-
queryParams['page[size]'] = params.perPage;
|
|
13
|
-
}
|
|
14
|
-
if (params.sort) {
|
|
15
|
-
const sorts = Array.isArray(params.sort) ? params.sort : [
|
|
16
|
-
params.sort
|
|
17
|
-
];
|
|
18
|
-
queryParams['sort'] = sorts.map((s)=>s.direction === 'desc' ? `-${s.field}` : s.field).join(',');
|
|
19
|
-
}
|
|
20
|
-
if (params.filter) {
|
|
21
|
-
for (const [key, value] of Object.entries(params.filter)){
|
|
22
|
-
queryParams[`filter[${key}]`] = value;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return queryParams;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Create the search service
|
|
29
|
-
*/ export function createSearchService(transport, _config) {
|
|
30
|
-
return {
|
|
31
|
-
async search (request) {
|
|
32
|
-
var _response_meta, _response_meta1, _response_meta2;
|
|
33
|
-
const response = await transport.post('/search', {
|
|
34
|
-
query: request.query,
|
|
35
|
-
entity_types: request.entityTypes,
|
|
36
|
-
include: request.include,
|
|
37
|
-
exclude: request.exclude,
|
|
38
|
-
limit: request.limit,
|
|
39
|
-
offset: request.offset
|
|
40
|
-
});
|
|
41
|
-
const results = decodeMany(response, searchResultMapper);
|
|
42
|
-
// Extract query from meta if available
|
|
43
|
-
let query;
|
|
44
|
-
if ((_response_meta = response.meta) == null ? void 0 : _response_meta.query) {
|
|
45
|
-
var _request_include, _request_exclude, _response_meta_elapsed_time, _response_meta_total_records;
|
|
46
|
-
// The query comes in meta for search responses
|
|
47
|
-
query = {
|
|
48
|
-
id: '',
|
|
49
|
-
uniqueId: '',
|
|
50
|
-
createdAt: new Date(),
|
|
51
|
-
updatedAt: new Date(),
|
|
52
|
-
partition: null,
|
|
53
|
-
key: null,
|
|
54
|
-
query: request.query,
|
|
55
|
-
include: (_request_include = request.include) != null ? _request_include : null,
|
|
56
|
-
exclude: (_request_exclude = request.exclude) != null ? _request_exclude : null,
|
|
57
|
-
payload: null,
|
|
58
|
-
userUniqueId: null,
|
|
59
|
-
userProviderName: null,
|
|
60
|
-
userName: null,
|
|
61
|
-
userEmail: null,
|
|
62
|
-
userRole: null,
|
|
63
|
-
userRoleUniqueId: null,
|
|
64
|
-
userRoleName: null,
|
|
65
|
-
queryString: null,
|
|
66
|
-
userAgent: null,
|
|
67
|
-
url: null,
|
|
68
|
-
path: null,
|
|
69
|
-
ipaddress: null,
|
|
70
|
-
origin: null,
|
|
71
|
-
source: null,
|
|
72
|
-
submittedAt: new Date(),
|
|
73
|
-
device: null,
|
|
74
|
-
browser: null,
|
|
75
|
-
hash: null,
|
|
76
|
-
elapsedTime: (_response_meta_elapsed_time = response.meta.elapsed_time) != null ? _response_meta_elapsed_time : null,
|
|
77
|
-
startedAt: null,
|
|
78
|
-
endedAt: null,
|
|
79
|
-
totalRecords: (_response_meta_total_records = response.meta.total_records) != null ? _response_meta_total_records : results.length,
|
|
80
|
-
totalRecordsReturned: results.length,
|
|
81
|
-
queryOrigin: null
|
|
82
|
-
};
|
|
83
|
-
} else {
|
|
84
|
-
var _request_include1, _request_exclude1;
|
|
85
|
-
query = {
|
|
86
|
-
id: '',
|
|
87
|
-
uniqueId: '',
|
|
88
|
-
createdAt: new Date(),
|
|
89
|
-
updatedAt: new Date(),
|
|
90
|
-
partition: null,
|
|
91
|
-
key: null,
|
|
92
|
-
query: request.query,
|
|
93
|
-
include: (_request_include1 = request.include) != null ? _request_include1 : null,
|
|
94
|
-
exclude: (_request_exclude1 = request.exclude) != null ? _request_exclude1 : null,
|
|
95
|
-
payload: null,
|
|
96
|
-
userUniqueId: null,
|
|
97
|
-
userProviderName: null,
|
|
98
|
-
userName: null,
|
|
99
|
-
userEmail: null,
|
|
100
|
-
userRole: null,
|
|
101
|
-
userRoleUniqueId: null,
|
|
102
|
-
userRoleName: null,
|
|
103
|
-
queryString: null,
|
|
104
|
-
userAgent: null,
|
|
105
|
-
url: null,
|
|
106
|
-
path: null,
|
|
107
|
-
ipaddress: null,
|
|
108
|
-
origin: null,
|
|
109
|
-
source: null,
|
|
110
|
-
submittedAt: new Date(),
|
|
111
|
-
device: null,
|
|
112
|
-
browser: null,
|
|
113
|
-
hash: null,
|
|
114
|
-
elapsedTime: null,
|
|
115
|
-
startedAt: null,
|
|
116
|
-
endedAt: null,
|
|
117
|
-
totalRecords: results.length,
|
|
118
|
-
totalRecordsReturned: results.length,
|
|
119
|
-
queryOrigin: null
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
var _response_meta_total_records1, _response_meta_elapsed_time1;
|
|
123
|
-
return {
|
|
124
|
-
results,
|
|
125
|
-
query,
|
|
126
|
-
totalRecords: (_response_meta_total_records1 = (_response_meta1 = response.meta) == null ? void 0 : _response_meta1.total_records) != null ? _response_meta_total_records1 : results.length,
|
|
127
|
-
elapsedTime: (_response_meta_elapsed_time1 = (_response_meta2 = response.meta) == null ? void 0 : _response_meta2.elapsed_time) != null ? _response_meta_elapsed_time1 : 0
|
|
128
|
-
};
|
|
129
|
-
},
|
|
130
|
-
async suggest (query, limit = 10) {
|
|
131
|
-
const response = await transport.get('/search/suggest', {
|
|
132
|
-
params: {
|
|
133
|
-
q: query,
|
|
134
|
-
limit
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
return decodeMany(response, searchResultMapper);
|
|
138
|
-
},
|
|
139
|
-
async entityTypes () {
|
|
140
|
-
const response = await transport.get('/search/entity_types');
|
|
141
|
-
return decodeMany(response, entityTypeMapper);
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Create the search history service
|
|
147
|
-
*/ export function createSearchHistoryService(transport, _config) {
|
|
148
|
-
return {
|
|
149
|
-
async recent (limit = 20) {
|
|
150
|
-
const response = await transport.get('/search/history', {
|
|
151
|
-
params: {
|
|
152
|
-
limit
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
return decodeMany(response, lastQueryMapper);
|
|
156
|
-
},
|
|
157
|
-
async get (id) {
|
|
158
|
-
const response = await transport.get(`/search/queries/${id}`);
|
|
159
|
-
return decodeOne(response, searchQueryMapper);
|
|
160
|
-
},
|
|
161
|
-
async clear () {
|
|
162
|
-
await transport.delete('/search/history');
|
|
163
|
-
},
|
|
164
|
-
async delete (id) {
|
|
165
|
-
await transport.delete(`/search/history/${id}`);
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Create the favorites service
|
|
171
|
-
*/ export function createFavoritesService(transport, _config) {
|
|
172
|
-
return {
|
|
173
|
-
async list (params) {
|
|
174
|
-
const response = await transport.get('/search/favorites', {
|
|
175
|
-
params: buildListParams(params)
|
|
176
|
-
});
|
|
177
|
-
return decodePageResult(response, favoriteEntityMapper);
|
|
178
|
-
},
|
|
179
|
-
async get (id) {
|
|
180
|
-
const response = await transport.get(`/search/favorites/${id}`);
|
|
181
|
-
return decodeOne(response, favoriteEntityMapper);
|
|
182
|
-
},
|
|
183
|
-
async add (request) {
|
|
184
|
-
const response = await transport.post('/search/favorites', {
|
|
185
|
-
entity_unique_id: request.entityUniqueId,
|
|
186
|
-
entity_type: request.entityType,
|
|
187
|
-
entity_alias: request.entityAlias,
|
|
188
|
-
entity_url: request.entityUrl,
|
|
189
|
-
entity_avatar_url: request.entityAvatarUrl
|
|
190
|
-
});
|
|
191
|
-
return decodeOne(response, favoriteEntityMapper);
|
|
192
|
-
},
|
|
193
|
-
async remove (id) {
|
|
194
|
-
await transport.delete(`/search/favorites/${id}`);
|
|
195
|
-
},
|
|
196
|
-
async isFavorite (entityUniqueId) {
|
|
197
|
-
try {
|
|
198
|
-
var _response_data;
|
|
199
|
-
const response = await transport.get(`/search/favorites/check/${entityUniqueId}`);
|
|
200
|
-
var _response_data_favorite;
|
|
201
|
-
return (_response_data_favorite = (_response_data = response.data) == null ? void 0 : _response_data.favorite) != null ? _response_data_favorite : false;
|
|
202
|
-
} catch (e) {
|
|
203
|
-
return false;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
//# sourceMappingURL=search.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/services/search.service.ts"],"sourcesContent":["import type { Transport, PageResult, ListParams } from '@23blocks/contracts';\nimport type { JsonApiDocument } from '@23blocks/jsonapi-codec';\nimport { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n SearchResult,\n SearchQuery,\n LastQuery,\n FavoriteEntity,\n EntityType,\n SearchRequest,\n SearchResponse,\n AddFavoriteRequest,\n} from '../types/index.js';\nimport {\n searchResultMapper,\n searchQueryMapper,\n lastQueryMapper,\n favoriteEntityMapper,\n entityTypeMapper,\n} from '../mappers/index.js';\nimport type { SearchBlockConfig } from '../search.block.js';\n\n/**\n * Search service interface\n */\nexport interface SearchService {\n /**\n * Execute a search query\n */\n search(request: SearchRequest): Promise<SearchResponse>;\n\n /**\n * Get search suggestions/autocomplete\n */\n suggest(query: string, limit?: number): Promise<SearchResult[]>;\n\n /**\n * Get available entity types\n */\n entityTypes(): Promise<EntityType[]>;\n}\n\n/**\n * Search history service interface\n */\nexport interface SearchHistoryService {\n /**\n * Get recent searches for the current user\n */\n recent(limit?: number): Promise<LastQuery[]>;\n\n /**\n * Get a specific query by ID\n */\n get(id: string): Promise<SearchQuery>;\n\n /**\n * Clear search history\n */\n clear(): Promise<void>;\n\n /**\n * Delete a specific query from history\n */\n delete(id: string): Promise<void>;\n}\n\n/**\n * Favorites service interface\n */\nexport interface FavoritesService {\n /**\n * List user's favorites\n */\n list(params?: ListParams): Promise<PageResult<FavoriteEntity>>;\n\n /**\n * Get a favorite by ID\n */\n get(id: string): Promise<FavoriteEntity>;\n\n /**\n * Add a favorite\n */\n add(request: AddFavoriteRequest): Promise<FavoriteEntity>;\n\n /**\n * Remove a favorite\n */\n remove(id: string): Promise<void>;\n\n /**\n * Check if an entity is favorited\n */\n isFavorite(entityUniqueId: string): Promise<boolean>;\n}\n\n/**\n * Build filter params for list operations\n */\nfunction buildListParams(params?: ListParams): Record<string, string | number | boolean | string[] | undefined> {\n if (!params) return {};\n\n const queryParams: Record<string, string | number | boolean | string[] | undefined> = {};\n\n if (params.page) {\n queryParams['page[number]'] = params.page;\n }\n if (params.perPage) {\n queryParams['page[size]'] = params.perPage;\n }\n\n if (params.sort) {\n const sorts = Array.isArray(params.sort) ? params.sort : [params.sort];\n queryParams['sort'] = sorts\n .map((s) => (s.direction === 'desc' ? `-${s.field}` : s.field))\n .join(',');\n }\n\n if (params.filter) {\n for (const [key, value] of Object.entries(params.filter)) {\n queryParams[`filter[${key}]`] = value;\n }\n }\n\n return queryParams;\n}\n\n/**\n * Create the search service\n */\nexport function createSearchService(\n transport: Transport,\n _config: SearchBlockConfig\n): SearchService {\n return {\n async search(request: SearchRequest): Promise<SearchResponse> {\n const response = await transport.post<JsonApiDocument & {\n meta?: {\n total_records?: number;\n elapsed_time?: number;\n query?: unknown;\n };\n }>('/search', {\n query: request.query,\n entity_types: request.entityTypes,\n include: request.include,\n exclude: request.exclude,\n limit: request.limit,\n offset: request.offset,\n });\n\n const results = decodeMany(response, searchResultMapper);\n\n // Extract query from meta if available\n let query: SearchQuery;\n if (response.meta?.query) {\n // The query comes in meta for search responses\n query = {\n id: '',\n uniqueId: '',\n createdAt: new Date(),\n updatedAt: new Date(),\n partition: null,\n key: null,\n query: request.query,\n include: request.include ?? null,\n exclude: request.exclude ?? null,\n payload: null,\n userUniqueId: null,\n userProviderName: null,\n userName: null,\n userEmail: null,\n userRole: null,\n userRoleUniqueId: null,\n userRoleName: null,\n queryString: null,\n userAgent: null,\n url: null,\n path: null,\n ipaddress: null,\n origin: null,\n source: null,\n submittedAt: new Date(),\n device: null,\n browser: null,\n hash: null,\n elapsedTime: response.meta.elapsed_time ?? null,\n startedAt: null,\n endedAt: null,\n totalRecords: response.meta.total_records ?? results.length,\n totalRecordsReturned: results.length,\n queryOrigin: null,\n };\n } else {\n query = {\n id: '',\n uniqueId: '',\n createdAt: new Date(),\n updatedAt: new Date(),\n partition: null,\n key: null,\n query: request.query,\n include: request.include ?? null,\n exclude: request.exclude ?? null,\n payload: null,\n userUniqueId: null,\n userProviderName: null,\n userName: null,\n userEmail: null,\n userRole: null,\n userRoleUniqueId: null,\n userRoleName: null,\n queryString: null,\n userAgent: null,\n url: null,\n path: null,\n ipaddress: null,\n origin: null,\n source: null,\n submittedAt: new Date(),\n device: null,\n browser: null,\n hash: null,\n elapsedTime: null,\n startedAt: null,\n endedAt: null,\n totalRecords: results.length,\n totalRecordsReturned: results.length,\n queryOrigin: null,\n };\n }\n\n return {\n results,\n query,\n totalRecords: response.meta?.total_records ?? results.length,\n elapsedTime: response.meta?.elapsed_time ?? 0,\n };\n },\n\n async suggest(query: string, limit = 10): Promise<SearchResult[]> {\n const response = await transport.get<JsonApiDocument>(\n '/search/suggest',\n { params: { q: query, limit } }\n );\n return decodeMany(response, searchResultMapper);\n },\n\n async entityTypes(): Promise<EntityType[]> {\n const response = await transport.get<JsonApiDocument>('/search/entity_types');\n return decodeMany(response, entityTypeMapper);\n },\n };\n}\n\n/**\n * Create the search history service\n */\nexport function createSearchHistoryService(\n transport: Transport,\n _config: SearchBlockConfig\n): SearchHistoryService {\n return {\n async recent(limit = 20): Promise<LastQuery[]> {\n const response = await transport.get<JsonApiDocument>(\n '/search/history',\n { params: { limit } }\n );\n return decodeMany(response, lastQueryMapper);\n },\n\n async get(id: string): Promise<SearchQuery> {\n const response = await transport.get<JsonApiDocument>(`/search/queries/${id}`);\n return decodeOne(response, searchQueryMapper);\n },\n\n async clear(): Promise<void> {\n await transport.delete('/search/history');\n },\n\n async delete(id: string): Promise<void> {\n await transport.delete(`/search/history/${id}`);\n },\n };\n}\n\n/**\n * Create the favorites service\n */\nexport function createFavoritesService(\n transport: Transport,\n _config: SearchBlockConfig\n): FavoritesService {\n return {\n async list(params?: ListParams): Promise<PageResult<FavoriteEntity>> {\n const response = await transport.get<JsonApiDocument>(\n '/search/favorites',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, favoriteEntityMapper);\n },\n\n async get(id: string): Promise<FavoriteEntity> {\n const response = await transport.get<JsonApiDocument>(`/search/favorites/${id}`);\n return decodeOne(response, favoriteEntityMapper);\n },\n\n async add(request: AddFavoriteRequest): Promise<FavoriteEntity> {\n const response = await transport.post<JsonApiDocument>('/search/favorites', {\n entity_unique_id: request.entityUniqueId,\n entity_type: request.entityType,\n entity_alias: request.entityAlias,\n entity_url: request.entityUrl,\n entity_avatar_url: request.entityAvatarUrl,\n });\n return decodeOne(response, favoriteEntityMapper);\n },\n\n async remove(id: string): Promise<void> {\n await transport.delete(`/search/favorites/${id}`);\n },\n\n async isFavorite(entityUniqueId: string): Promise<boolean> {\n try {\n const response = await transport.get<{ data: { favorite: boolean } }>(\n `/search/favorites/check/${entityUniqueId}`\n );\n return response.data?.favorite ?? false;\n } catch {\n return false;\n }\n },\n };\n}\n"],"names":["decodeOne","decodeMany","decodePageResult","searchResultMapper","searchQueryMapper","lastQueryMapper","favoriteEntityMapper","entityTypeMapper","buildListParams","params","queryParams","page","perPage","sort","sorts","Array","isArray","map","s","direction","field","join","filter","key","value","Object","entries","createSearchService","transport","_config","search","request","response","post","query","entity_types","entityTypes","include","exclude","limit","offset","results","meta","id","uniqueId","createdAt","Date","updatedAt","partition","payload","userUniqueId","userProviderName","userName","userEmail","userRole","userRoleUniqueId","userRoleName","queryString","userAgent","url","path","ipaddress","origin","source","submittedAt","device","browser","hash","elapsedTime","elapsed_time","startedAt","endedAt","totalRecords","total_records","length","totalRecordsReturned","queryOrigin","suggest","get","q","createSearchHistoryService","recent","clear","delete","createFavoritesService","list","add","entity_unique_id","entityUniqueId","entity_type","entityType","entity_alias","entityAlias","entity_url","entityUrl","entity_avatar_url","entityAvatarUrl","remove","isFavorite","data","favorite"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
package/dist/lib/types/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/types/index.ts"],"sourcesContent":["export type {\n SearchResult,\n SearchQuery,\n LastQuery,\n FavoriteEntity,\n EntityType,\n SearchRequest,\n SearchResponse,\n AddFavoriteRequest,\n} from './search.js';\n"],"names":[],"rangeMappings":"","mappings":"AAAA,WASqB"}
|
package/dist/lib/types/search.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/types/search.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\n/**\n * Search result entity\n */\nexport interface SearchResult extends IdentityCore {\n partition: string | null;\n key: string | null;\n weight: number;\n relevance: number;\n uri: string | null;\n origin: string | null;\n entityUniqueId: string;\n entityAlias: string | null;\n entityDescription: string | null;\n entityAvatarUrl: string | null;\n entityType: string;\n entitySource: string | null;\n entityUrl: string | null;\n counter: number;\n favorite: boolean;\n status: EntityStatus;\n payload: Record<string, unknown> | null;\n}\n\n/**\n * Search query (saved/executed query)\n */\nexport interface SearchQuery extends IdentityCore {\n partition: string | null;\n key: string | null;\n query: string;\n include: string[] | null;\n exclude: string[] | null;\n payload: Record<string, unknown> | null;\n userUniqueId: string | null;\n userProviderName: string | null;\n userName: string | null;\n userEmail: string | null;\n userRole: string | null;\n userRoleUniqueId: string | null;\n userRoleName: string | null;\n queryString: string | null;\n userAgent: string | null;\n url: string | null;\n path: string | null;\n ipaddress: string | null;\n origin: string | null;\n source: string | null;\n submittedAt: Date | null;\n device: string | null;\n browser: string | null;\n hash: string | null;\n elapsedTime: number | null;\n startedAt: Date | null;\n endedAt: Date | null;\n totalRecords: number;\n totalRecordsReturned: number;\n queryOrigin: string | null;\n}\n\n/**\n * Last query (recent search history)\n */\nexport interface LastQuery extends IdentityCore {\n partition: string | null;\n key: string | null;\n query: string;\n include: string[] | null;\n exclude: string[] | null;\n payload: Record<string, unknown> | null;\n userUniqueId: string | null;\n userProviderName: string | null;\n userName: string | null;\n userEmail: string | null;\n userRole: string | null;\n userRoleUniqueId: string | null;\n userRoleName: string | null;\n queryString: string | null;\n userAgent: string | null;\n url: string | null;\n path: string | null;\n ipaddress: string | null;\n origin: string | null;\n source: string | null;\n submittedAt: Date | null;\n device: string | null;\n browser: string | null;\n hash: string | null;\n elapsedTime: number | null;\n startedAt: Date | null;\n endedAt: Date | null;\n totalRecords: number;\n totalRecordsReturned: number;\n queryOrigin: string | null;\n}\n\n/**\n * Favorite entity (bookmarked search result)\n */\nexport interface FavoriteEntity extends IdentityCore {\n partition: string | null;\n key: string | null;\n weight: number;\n relevance: number;\n uri: string | null;\n origin: string | null;\n entityUniqueId: string;\n entityType: string;\n entityAlias: string | null;\n entitySource: string | null;\n entityUrl: string | null;\n entityAvatarUrl: string | null;\n counter: number;\n favorite: boolean;\n status: EntityStatus;\n}\n\n/**\n * Entity type (categorization of searchable entities)\n */\nexport interface EntityType {\n id: string;\n entityType: string;\n entitySource: string | null;\n}\n\n/**\n * Search request parameters\n */\nexport interface SearchRequest {\n query: string;\n entityTypes?: string[];\n include?: string[];\n exclude?: string[];\n limit?: number;\n offset?: number;\n}\n\n/**\n * Search response with results and metadata\n */\nexport interface SearchResponse {\n results: SearchResult[];\n query: SearchQuery;\n totalRecords: number;\n elapsedTime: number;\n}\n\n/**\n * Add favorite request\n */\nexport interface AddFavoriteRequest {\n entityUniqueId: string;\n entityType: string;\n entityAlias?: string;\n entityUrl?: string;\n entityAvatarUrl?: string;\n}\n"],"names":[],"rangeMappings":";;","mappings":"AAqJA;;CAEC,GACD,WAMC"}
|