@23blocks/block-search 1.0.3 → 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
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { Transport, PageResult, ListParams } from '@23blocks/contracts';
|
|
2
|
+
import type { SearchResult, SearchQuery, LastQuery, FavoriteEntity, EntityType, SearchRequest, SearchResponse, AddFavoriteRequest } from '../types/index.js';
|
|
3
|
+
import type { SearchBlockConfig } from '../search.block.js';
|
|
4
|
+
/**
|
|
5
|
+
* Search service interface
|
|
6
|
+
*/
|
|
7
|
+
export interface SearchService {
|
|
8
|
+
/**
|
|
9
|
+
* Execute a search query
|
|
10
|
+
*/
|
|
11
|
+
search(request: SearchRequest): Promise<SearchResponse>;
|
|
12
|
+
/**
|
|
13
|
+
* Get search suggestions/autocomplete
|
|
14
|
+
*/
|
|
15
|
+
suggest(query: string, limit?: number): Promise<SearchResult[]>;
|
|
16
|
+
/**
|
|
17
|
+
* Get available entity types
|
|
18
|
+
*/
|
|
19
|
+
entityTypes(): Promise<EntityType[]>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Search history service interface
|
|
23
|
+
*/
|
|
24
|
+
export interface SearchHistoryService {
|
|
25
|
+
/**
|
|
26
|
+
* Get recent searches for the current user
|
|
27
|
+
*/
|
|
28
|
+
recent(limit?: number): Promise<LastQuery[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Get a specific query by ID
|
|
31
|
+
*/
|
|
32
|
+
get(id: string): Promise<SearchQuery>;
|
|
33
|
+
/**
|
|
34
|
+
* Clear search history
|
|
35
|
+
*/
|
|
36
|
+
clear(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Delete a specific query from history
|
|
39
|
+
*/
|
|
40
|
+
delete(id: string): Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Favorites service interface
|
|
44
|
+
*/
|
|
45
|
+
export interface FavoritesService {
|
|
46
|
+
/**
|
|
47
|
+
* List user's favorites
|
|
48
|
+
*/
|
|
49
|
+
list(params?: ListParams): Promise<PageResult<FavoriteEntity>>;
|
|
50
|
+
/**
|
|
51
|
+
* Get a favorite by ID
|
|
52
|
+
*/
|
|
53
|
+
get(id: string): Promise<FavoriteEntity>;
|
|
54
|
+
/**
|
|
55
|
+
* Add a favorite
|
|
56
|
+
*/
|
|
57
|
+
add(request: AddFavoriteRequest): Promise<FavoriteEntity>;
|
|
58
|
+
/**
|
|
59
|
+
* Remove a favorite
|
|
60
|
+
*/
|
|
61
|
+
remove(id: string): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Check if an entity is favorited
|
|
64
|
+
*/
|
|
65
|
+
isFavorite(entityUniqueId: string): Promise<boolean>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Create the search service
|
|
69
|
+
*/
|
|
70
|
+
export declare function createSearchService(transport: Transport, _config: SearchBlockConfig): SearchService;
|
|
71
|
+
/**
|
|
72
|
+
* Create the search history service
|
|
73
|
+
*/
|
|
74
|
+
export declare function createSearchHistoryService(transport: Transport, _config: SearchBlockConfig): SearchHistoryService;
|
|
75
|
+
/**
|
|
76
|
+
* Create the favorites service
|
|
77
|
+
*/
|
|
78
|
+
export declare function createFavoritesService(transport: Transport, _config: SearchBlockConfig): FavoritesService;
|
|
79
|
+
//# sourceMappingURL=search.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/search.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG7E,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAExD;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAEhE;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAE7C;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEtC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;IAE/D;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEzC;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE1D;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;OAEG;IACH,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD;AAiCD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,iBAAiB,GACzB,aAAa,CAwHf;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,iBAAiB,GACzB,oBAAoB,CAuBtB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,iBAAiB,GACzB,gBAAgB,CAyClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import type { IdentityCore, EntityStatus } from '@23blocks/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* Search result entity
|
|
4
|
+
*/
|
|
5
|
+
export interface SearchResult extends IdentityCore {
|
|
6
|
+
partition: string | null;
|
|
7
|
+
key: string | null;
|
|
8
|
+
weight: number;
|
|
9
|
+
relevance: number;
|
|
10
|
+
uri: string | null;
|
|
11
|
+
origin: string | null;
|
|
12
|
+
entityUniqueId: string;
|
|
13
|
+
entityAlias: string | null;
|
|
14
|
+
entityDescription: string | null;
|
|
15
|
+
entityAvatarUrl: string | null;
|
|
16
|
+
entityType: string;
|
|
17
|
+
entitySource: string | null;
|
|
18
|
+
entityUrl: string | null;
|
|
19
|
+
counter: number;
|
|
20
|
+
favorite: boolean;
|
|
21
|
+
status: EntityStatus;
|
|
22
|
+
payload: Record<string, unknown> | null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Search query (saved/executed query)
|
|
26
|
+
*/
|
|
27
|
+
export interface SearchQuery extends IdentityCore {
|
|
28
|
+
partition: string | null;
|
|
29
|
+
key: string | null;
|
|
30
|
+
query: string;
|
|
31
|
+
include: string[] | null;
|
|
32
|
+
exclude: string[] | null;
|
|
33
|
+
payload: Record<string, unknown> | null;
|
|
34
|
+
userUniqueId: string | null;
|
|
35
|
+
userProviderName: string | null;
|
|
36
|
+
userName: string | null;
|
|
37
|
+
userEmail: string | null;
|
|
38
|
+
userRole: string | null;
|
|
39
|
+
userRoleUniqueId: string | null;
|
|
40
|
+
userRoleName: string | null;
|
|
41
|
+
queryString: string | null;
|
|
42
|
+
userAgent: string | null;
|
|
43
|
+
url: string | null;
|
|
44
|
+
path: string | null;
|
|
45
|
+
ipaddress: string | null;
|
|
46
|
+
origin: string | null;
|
|
47
|
+
source: string | null;
|
|
48
|
+
submittedAt: Date | null;
|
|
49
|
+
device: string | null;
|
|
50
|
+
browser: string | null;
|
|
51
|
+
hash: string | null;
|
|
52
|
+
elapsedTime: number | null;
|
|
53
|
+
startedAt: Date | null;
|
|
54
|
+
endedAt: Date | null;
|
|
55
|
+
totalRecords: number;
|
|
56
|
+
totalRecordsReturned: number;
|
|
57
|
+
queryOrigin: string | null;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Last query (recent search history)
|
|
61
|
+
*/
|
|
62
|
+
export interface LastQuery extends IdentityCore {
|
|
63
|
+
partition: string | null;
|
|
64
|
+
key: string | null;
|
|
65
|
+
query: string;
|
|
66
|
+
include: string[] | null;
|
|
67
|
+
exclude: string[] | null;
|
|
68
|
+
payload: Record<string, unknown> | null;
|
|
69
|
+
userUniqueId: string | null;
|
|
70
|
+
userProviderName: string | null;
|
|
71
|
+
userName: string | null;
|
|
72
|
+
userEmail: string | null;
|
|
73
|
+
userRole: string | null;
|
|
74
|
+
userRoleUniqueId: string | null;
|
|
75
|
+
userRoleName: string | null;
|
|
76
|
+
queryString: string | null;
|
|
77
|
+
userAgent: string | null;
|
|
78
|
+
url: string | null;
|
|
79
|
+
path: string | null;
|
|
80
|
+
ipaddress: string | null;
|
|
81
|
+
origin: string | null;
|
|
82
|
+
source: string | null;
|
|
83
|
+
submittedAt: Date | null;
|
|
84
|
+
device: string | null;
|
|
85
|
+
browser: string | null;
|
|
86
|
+
hash: string | null;
|
|
87
|
+
elapsedTime: number | null;
|
|
88
|
+
startedAt: Date | null;
|
|
89
|
+
endedAt: Date | null;
|
|
90
|
+
totalRecords: number;
|
|
91
|
+
totalRecordsReturned: number;
|
|
92
|
+
queryOrigin: string | null;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Favorite entity (bookmarked search result)
|
|
96
|
+
*/
|
|
97
|
+
export interface FavoriteEntity extends IdentityCore {
|
|
98
|
+
partition: string | null;
|
|
99
|
+
key: string | null;
|
|
100
|
+
weight: number;
|
|
101
|
+
relevance: number;
|
|
102
|
+
uri: string | null;
|
|
103
|
+
origin: string | null;
|
|
104
|
+
entityUniqueId: string;
|
|
105
|
+
entityType: string;
|
|
106
|
+
entityAlias: string | null;
|
|
107
|
+
entitySource: string | null;
|
|
108
|
+
entityUrl: string | null;
|
|
109
|
+
entityAvatarUrl: string | null;
|
|
110
|
+
counter: number;
|
|
111
|
+
favorite: boolean;
|
|
112
|
+
status: EntityStatus;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Entity type (categorization of searchable entities)
|
|
116
|
+
*/
|
|
117
|
+
export interface EntityType {
|
|
118
|
+
id: string;
|
|
119
|
+
entityType: string;
|
|
120
|
+
entitySource: string | null;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Search request parameters
|
|
124
|
+
*/
|
|
125
|
+
export interface SearchRequest {
|
|
126
|
+
query: string;
|
|
127
|
+
entityTypes?: string[];
|
|
128
|
+
include?: string[];
|
|
129
|
+
exclude?: string[];
|
|
130
|
+
limit?: number;
|
|
131
|
+
offset?: number;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Search response with results and metadata
|
|
135
|
+
*/
|
|
136
|
+
export interface SearchResponse {
|
|
137
|
+
results: SearchResult[];
|
|
138
|
+
query: SearchQuery;
|
|
139
|
+
totalRecords: number;
|
|
140
|
+
elapsedTime: number;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Add favorite request
|
|
144
|
+
*/
|
|
145
|
+
export interface AddFavoriteRequest {
|
|
146
|
+
entityUniqueId: string;
|
|
147
|
+
entityType: string;
|
|
148
|
+
entityAlias?: string;
|
|
149
|
+
entityUrl?: string;
|
|
150
|
+
entityAvatarUrl?: string;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/search.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@23blocks/block-search",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Search block for 23blocks SDK - full-text search, history, favorites",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "23blocks <hello@23blocks.com>",
|
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
"history"
|
|
23
23
|
],
|
|
24
24
|
"type": "module",
|
|
25
|
-
"main": "./dist/index.js",
|
|
26
|
-
"module": "./dist/index.js",
|
|
25
|
+
"main": "./dist/index.esm.js",
|
|
26
|
+
"module": "./dist/index.esm.js",
|
|
27
27
|
"types": "./dist/index.d.ts",
|
|
28
28
|
"exports": {
|
|
29
29
|
"./package.json": "./package.json",
|
|
30
30
|
".": {
|
|
31
31
|
"types": "./dist/index.d.ts",
|
|
32
|
-
"import": "./dist/index.js",
|
|
33
|
-
"default": "./dist/index.js"
|
|
32
|
+
"import": "./dist/index.esm.js",
|
|
33
|
+
"default": "./dist/index.esm.js"
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
"files": [
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"sourceRoot": "packages/block-search/src",
|
|
42
42
|
"targets": {
|
|
43
43
|
"build": {
|
|
44
|
-
"executor": "@nx/
|
|
44
|
+
"executor": "@nx/rollup:rollup",
|
|
45
45
|
"outputs": [
|
|
46
46
|
"{options.outputPath}"
|
|
47
47
|
],
|
|
@@ -49,8 +49,10 @@
|
|
|
49
49
|
"outputPath": "packages/block-search/dist",
|
|
50
50
|
"main": "packages/block-search/src/index.ts",
|
|
51
51
|
"tsConfig": "packages/block-search/tsconfig.lib.json",
|
|
52
|
-
"
|
|
53
|
-
"
|
|
52
|
+
"compiler": "swc",
|
|
53
|
+
"format": [
|
|
54
|
+
"esm"
|
|
55
|
+
]
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
}
|
package/dist/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// Block factory and config
|
|
2
|
-
export { createSearchBlock, searchBlockMetadata } from './lib/search.block.js';
|
|
3
|
-
// Mappers (for advanced use cases)
|
|
4
|
-
export { searchResultMapper, searchQueryMapper, lastQueryMapper, favoriteEntityMapper, entityTypeMapper } from './lib/mappers/index.js';
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Block factory and config\nexport {\n createSearchBlock,\n searchBlockMetadata,\n type SearchBlock,\n type SearchBlockConfig,\n} from './lib/search.block.js';\n\n// Types\nexport type {\n SearchResult,\n SearchQuery,\n LastQuery,\n FavoriteEntity,\n EntityType,\n SearchRequest,\n SearchResponse,\n AddFavoriteRequest,\n} from './lib/types/index.js';\n\n// Services\nexport type {\n SearchService,\n SearchHistoryService,\n FavoritesService,\n} from './lib/services/index.js';\n\n// Mappers (for advanced use cases)\nexport {\n searchResultMapper,\n searchQueryMapper,\n lastQueryMapper,\n favoriteEntityMapper,\n entityTypeMapper,\n} from './lib/mappers/index.js';\n"],"names":["createSearchBlock","searchBlockMetadata","searchResultMapper","searchQueryMapper","lastQueryMapper","favoriteEntityMapper","entityTypeMapper"],"rangeMappings":";;;","mappings":"AAAA,2BAA2B;AAC3B,SACEA,iBAAiB,EACjBC,mBAAmB,QAGd,wBAAwB;AAqB/B,mCAAmC;AACnC,SACEC,kBAAkB,EAClBC,iBAAiB,EACjBC,eAAe,EACfC,oBAAoB,EACpBC,gBAAgB,QACX,yBAAyB"}
|
package/dist/lib/block-search.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/block-search.ts"],"sourcesContent":["export function blockSearch(): string {\n return 'block-search';\n}\n"],"names":["blockSearch"],"rangeMappings":";;","mappings":"AAAA,OAAO,SAASA;IACd,OAAO;AACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/mappers/index.ts"],"sourcesContent":["export {\n searchResultMapper,\n searchQueryMapper,\n lastQueryMapper,\n favoriteEntityMapper,\n entityTypeMapper,\n} from './search.mapper.js';\n\nexport { parseString, parseDate, parseBoolean, parseNumber, parseStringArray } from './utils.js';\n"],"names":["searchResultMapper","searchQueryMapper","lastQueryMapper","favoriteEntityMapper","entityTypeMapper","parseString","parseDate","parseBoolean","parseNumber","parseStringArray"],"rangeMappings":";","mappings":"AAAA,SACEA,kBAAkB,EAClBC,iBAAiB,EACjBC,eAAe,EACfC,oBAAoB,EACpBC,gBAAgB,QACX,qBAAqB;AAE5B,SAASC,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,EAAEC,gBAAgB,QAAQ,aAAa"}
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import { parseString, parseDate, parseNumber, parseBoolean, parseStringArray } from './utils.js';
|
|
2
|
-
/**
|
|
3
|
-
* Mapper for SearchResult resources
|
|
4
|
-
*/ export const searchResultMapper = {
|
|
5
|
-
type: 'SearchResult',
|
|
6
|
-
map (resource, _included) {
|
|
7
|
-
var _resource_attributes;
|
|
8
|
-
const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
|
|
9
|
-
var _parseString, _parseDate, _parseDate1, _attrs_entity_unique_id, _attrs_entity_type, _parseString1;
|
|
10
|
-
return {
|
|
11
|
-
id: resource.id,
|
|
12
|
-
uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
|
|
13
|
-
createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
|
|
14
|
-
updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
|
|
15
|
-
partition: parseString(attrs.partition),
|
|
16
|
-
key: parseString(attrs.key),
|
|
17
|
-
weight: parseNumber(attrs.weight),
|
|
18
|
-
relevance: parseNumber(attrs.relevance),
|
|
19
|
-
uri: parseString(attrs.uri),
|
|
20
|
-
origin: parseString(attrs.origin),
|
|
21
|
-
entityUniqueId: String((_attrs_entity_unique_id = attrs.entity_unique_id) != null ? _attrs_entity_unique_id : ''),
|
|
22
|
-
entityAlias: parseString(attrs.entity_alias),
|
|
23
|
-
entityDescription: parseString(attrs.entity_description),
|
|
24
|
-
entityAvatarUrl: parseString(attrs.entity_avatar_url),
|
|
25
|
-
entityType: String((_attrs_entity_type = attrs.entity_type) != null ? _attrs_entity_type : ''),
|
|
26
|
-
entitySource: parseString(attrs.entity_source),
|
|
27
|
-
entityUrl: parseString(attrs.entity_url),
|
|
28
|
-
counter: parseNumber(attrs.counter),
|
|
29
|
-
favorite: parseBoolean(attrs.favorite),
|
|
30
|
-
status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
|
|
31
|
-
payload: attrs.payload
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Mapper for SearchQuery resources
|
|
37
|
-
*/ export const searchQueryMapper = {
|
|
38
|
-
type: 'Query',
|
|
39
|
-
map (resource, _included) {
|
|
40
|
-
var _resource_attributes;
|
|
41
|
-
const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
|
|
42
|
-
var _parseString, _parseDate, _parseDate1, _attrs_query;
|
|
43
|
-
return {
|
|
44
|
-
id: resource.id,
|
|
45
|
-
uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
|
|
46
|
-
createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
|
|
47
|
-
updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
|
|
48
|
-
partition: parseString(attrs.partition),
|
|
49
|
-
key: parseString(attrs.key),
|
|
50
|
-
query: String((_attrs_query = attrs.query) != null ? _attrs_query : ''),
|
|
51
|
-
include: parseStringArray(attrs.include),
|
|
52
|
-
exclude: parseStringArray(attrs.exclude),
|
|
53
|
-
payload: attrs.payload,
|
|
54
|
-
userUniqueId: parseString(attrs.user_unique_id),
|
|
55
|
-
userProviderName: parseString(attrs.user_provider_name),
|
|
56
|
-
userName: parseString(attrs.user_name),
|
|
57
|
-
userEmail: parseString(attrs.user_email),
|
|
58
|
-
userRole: parseString(attrs.user_role),
|
|
59
|
-
userRoleUniqueId: parseString(attrs.user_role_unique_id),
|
|
60
|
-
userRoleName: parseString(attrs.user_role_name),
|
|
61
|
-
queryString: parseString(attrs.query_string),
|
|
62
|
-
userAgent: parseString(attrs.user_agent),
|
|
63
|
-
url: parseString(attrs.url),
|
|
64
|
-
path: parseString(attrs.path),
|
|
65
|
-
ipaddress: parseString(attrs.ipaddress),
|
|
66
|
-
origin: parseString(attrs.origin),
|
|
67
|
-
source: parseString(attrs.source),
|
|
68
|
-
submittedAt: parseDate(attrs.submitted_at),
|
|
69
|
-
device: parseString(attrs.device),
|
|
70
|
-
browser: parseString(attrs.browser),
|
|
71
|
-
hash: parseString(attrs.hash),
|
|
72
|
-
elapsedTime: attrs.elapsed_time != null ? parseNumber(attrs.elapsed_time) : null,
|
|
73
|
-
startedAt: parseDate(attrs.started_at),
|
|
74
|
-
endedAt: parseDate(attrs.ended_at),
|
|
75
|
-
totalRecords: parseNumber(attrs.total_records),
|
|
76
|
-
totalRecordsReturned: parseNumber(attrs.total_records_returned),
|
|
77
|
-
queryOrigin: parseString(attrs.query_origin)
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
* Mapper for LastQuery resources
|
|
83
|
-
*/ export const lastQueryMapper = {
|
|
84
|
-
type: 'LastQuery',
|
|
85
|
-
map (resource, _included) {
|
|
86
|
-
var _resource_attributes;
|
|
87
|
-
const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
|
|
88
|
-
var _parseString, _parseDate, _parseDate1, _attrs_query;
|
|
89
|
-
return {
|
|
90
|
-
id: resource.id,
|
|
91
|
-
uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
|
|
92
|
-
createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
|
|
93
|
-
updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
|
|
94
|
-
partition: parseString(attrs.partition),
|
|
95
|
-
key: parseString(attrs.key),
|
|
96
|
-
query: String((_attrs_query = attrs.query) != null ? _attrs_query : ''),
|
|
97
|
-
include: parseStringArray(attrs.include),
|
|
98
|
-
exclude: parseStringArray(attrs.exclude),
|
|
99
|
-
payload: attrs.payload,
|
|
100
|
-
userUniqueId: parseString(attrs.user_unique_id),
|
|
101
|
-
userProviderName: parseString(attrs.user_provider_name),
|
|
102
|
-
userName: parseString(attrs.user_name),
|
|
103
|
-
userEmail: parseString(attrs.user_email),
|
|
104
|
-
userRole: parseString(attrs.user_role),
|
|
105
|
-
userRoleUniqueId: parseString(attrs.user_role_unique_id),
|
|
106
|
-
userRoleName: parseString(attrs.user_role_name),
|
|
107
|
-
queryString: parseString(attrs.query_string),
|
|
108
|
-
userAgent: parseString(attrs.user_agent),
|
|
109
|
-
url: parseString(attrs.url),
|
|
110
|
-
path: parseString(attrs.path),
|
|
111
|
-
ipaddress: parseString(attrs.ipaddress),
|
|
112
|
-
origin: parseString(attrs.origin),
|
|
113
|
-
source: parseString(attrs.source),
|
|
114
|
-
submittedAt: parseDate(attrs.submitted_at),
|
|
115
|
-
device: parseString(attrs.device),
|
|
116
|
-
browser: parseString(attrs.browser),
|
|
117
|
-
hash: parseString(attrs.hash),
|
|
118
|
-
elapsedTime: attrs.elapsed_time != null ? parseNumber(attrs.elapsed_time) : null,
|
|
119
|
-
startedAt: parseDate(attrs.started_at),
|
|
120
|
-
endedAt: parseDate(attrs.ended_at),
|
|
121
|
-
totalRecords: parseNumber(attrs.total_records),
|
|
122
|
-
totalRecordsReturned: parseNumber(attrs.total_records_returned),
|
|
123
|
-
queryOrigin: parseString(attrs.query_origin)
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
/**
|
|
128
|
-
* Mapper for FavoriteEntity resources
|
|
129
|
-
*/ export const favoriteEntityMapper = {
|
|
130
|
-
type: 'FavoriteEntity',
|
|
131
|
-
map (resource, _included) {
|
|
132
|
-
var _resource_attributes;
|
|
133
|
-
const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
|
|
134
|
-
var _parseString, _parseDate, _parseDate1, _attrs_entity_unique_id, _attrs_entity_type, _parseString1;
|
|
135
|
-
return {
|
|
136
|
-
id: resource.id,
|
|
137
|
-
uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
|
|
138
|
-
createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
|
|
139
|
-
updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
|
|
140
|
-
partition: parseString(attrs.partition),
|
|
141
|
-
key: parseString(attrs.key),
|
|
142
|
-
weight: parseNumber(attrs.weight),
|
|
143
|
-
relevance: parseNumber(attrs.relevance),
|
|
144
|
-
uri: parseString(attrs.uri),
|
|
145
|
-
origin: parseString(attrs.origin),
|
|
146
|
-
entityUniqueId: String((_attrs_entity_unique_id = attrs.entity_unique_id) != null ? _attrs_entity_unique_id : ''),
|
|
147
|
-
entityType: String((_attrs_entity_type = attrs.entity_type) != null ? _attrs_entity_type : ''),
|
|
148
|
-
entityAlias: parseString(attrs.entity_alias),
|
|
149
|
-
entitySource: parseString(attrs.entity_source),
|
|
150
|
-
entityUrl: parseString(attrs.entity_url),
|
|
151
|
-
entityAvatarUrl: parseString(attrs.entity_avatar_url),
|
|
152
|
-
counter: parseNumber(attrs.counter),
|
|
153
|
-
favorite: parseBoolean(attrs.favorite),
|
|
154
|
-
status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active'
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
};
|
|
158
|
-
/**
|
|
159
|
-
* Mapper for EntityType resources
|
|
160
|
-
*/ export const entityTypeMapper = {
|
|
161
|
-
type: 'EntityType',
|
|
162
|
-
map (resource, _included) {
|
|
163
|
-
var _resource_attributes;
|
|
164
|
-
const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
|
|
165
|
-
var _attrs_entity_type;
|
|
166
|
-
return {
|
|
167
|
-
id: resource.id,
|
|
168
|
-
entityType: String((_attrs_entity_type = attrs.entity_type) != null ? _attrs_entity_type : ''),
|
|
169
|
-
entitySource: parseString(attrs.entity_source)
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
//# sourceMappingURL=search.mapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/mappers/search.mapper.ts"],"sourcesContent":["import type { ResourceMapper, IncludedMap, JsonApiResource } from '@23blocks/jsonapi-codec';\nimport type { EntityStatus } from '@23blocks/contracts';\nimport type {\n SearchResult,\n SearchQuery,\n LastQuery,\n FavoriteEntity,\n EntityType,\n} from '../types/index.js';\nimport { parseString, parseDate, parseNumber, parseBoolean, parseStringArray } from './utils.js';\n\n/**\n * Mapper for SearchResult resources\n */\nexport const searchResultMapper: ResourceMapper<SearchResult> = {\n type: 'SearchResult',\n\n map(resource: JsonApiResource, _included: IncludedMap): SearchResult {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n partition: parseString(attrs.partition),\n key: parseString(attrs.key),\n weight: parseNumber(attrs.weight),\n relevance: parseNumber(attrs.relevance),\n uri: parseString(attrs.uri),\n origin: parseString(attrs.origin),\n entityUniqueId: String(attrs.entity_unique_id ?? ''),\n entityAlias: parseString(attrs.entity_alias),\n entityDescription: parseString(attrs.entity_description),\n entityAvatarUrl: parseString(attrs.entity_avatar_url),\n entityType: String(attrs.entity_type ?? ''),\n entitySource: parseString(attrs.entity_source),\n entityUrl: parseString(attrs.entity_url),\n counter: parseNumber(attrs.counter),\n favorite: parseBoolean(attrs.favorite),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n payload: attrs.payload as Record<string, unknown> | null,\n };\n },\n};\n\n/**\n * Mapper for SearchQuery resources\n */\nexport const searchQueryMapper: ResourceMapper<SearchQuery> = {\n type: 'Query',\n\n map(resource: JsonApiResource, _included: IncludedMap): SearchQuery {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n partition: parseString(attrs.partition),\n key: parseString(attrs.key),\n query: String(attrs.query ?? ''),\n include: parseStringArray(attrs.include),\n exclude: parseStringArray(attrs.exclude),\n payload: attrs.payload as Record<string, unknown> | null,\n userUniqueId: parseString(attrs.user_unique_id),\n userProviderName: parseString(attrs.user_provider_name),\n userName: parseString(attrs.user_name),\n userEmail: parseString(attrs.user_email),\n userRole: parseString(attrs.user_role),\n userRoleUniqueId: parseString(attrs.user_role_unique_id),\n userRoleName: parseString(attrs.user_role_name),\n queryString: parseString(attrs.query_string),\n userAgent: parseString(attrs.user_agent),\n url: parseString(attrs.url),\n path: parseString(attrs.path),\n ipaddress: parseString(attrs.ipaddress),\n origin: parseString(attrs.origin),\n source: parseString(attrs.source),\n submittedAt: parseDate(attrs.submitted_at),\n device: parseString(attrs.device),\n browser: parseString(attrs.browser),\n hash: parseString(attrs.hash),\n elapsedTime: attrs.elapsed_time != null ? parseNumber(attrs.elapsed_time) : null,\n startedAt: parseDate(attrs.started_at),\n endedAt: parseDate(attrs.ended_at),\n totalRecords: parseNumber(attrs.total_records),\n totalRecordsReturned: parseNumber(attrs.total_records_returned),\n queryOrigin: parseString(attrs.query_origin),\n };\n },\n};\n\n/**\n * Mapper for LastQuery resources\n */\nexport const lastQueryMapper: ResourceMapper<LastQuery> = {\n type: 'LastQuery',\n\n map(resource: JsonApiResource, _included: IncludedMap): LastQuery {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n partition: parseString(attrs.partition),\n key: parseString(attrs.key),\n query: String(attrs.query ?? ''),\n include: parseStringArray(attrs.include),\n exclude: parseStringArray(attrs.exclude),\n payload: attrs.payload as Record<string, unknown> | null,\n userUniqueId: parseString(attrs.user_unique_id),\n userProviderName: parseString(attrs.user_provider_name),\n userName: parseString(attrs.user_name),\n userEmail: parseString(attrs.user_email),\n userRole: parseString(attrs.user_role),\n userRoleUniqueId: parseString(attrs.user_role_unique_id),\n userRoleName: parseString(attrs.user_role_name),\n queryString: parseString(attrs.query_string),\n userAgent: parseString(attrs.user_agent),\n url: parseString(attrs.url),\n path: parseString(attrs.path),\n ipaddress: parseString(attrs.ipaddress),\n origin: parseString(attrs.origin),\n source: parseString(attrs.source),\n submittedAt: parseDate(attrs.submitted_at),\n device: parseString(attrs.device),\n browser: parseString(attrs.browser),\n hash: parseString(attrs.hash),\n elapsedTime: attrs.elapsed_time != null ? parseNumber(attrs.elapsed_time) : null,\n startedAt: parseDate(attrs.started_at),\n endedAt: parseDate(attrs.ended_at),\n totalRecords: parseNumber(attrs.total_records),\n totalRecordsReturned: parseNumber(attrs.total_records_returned),\n queryOrigin: parseString(attrs.query_origin),\n };\n },\n};\n\n/**\n * Mapper for FavoriteEntity resources\n */\nexport const favoriteEntityMapper: ResourceMapper<FavoriteEntity> = {\n type: 'FavoriteEntity',\n\n map(resource: JsonApiResource, _included: IncludedMap): FavoriteEntity {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n partition: parseString(attrs.partition),\n key: parseString(attrs.key),\n weight: parseNumber(attrs.weight),\n relevance: parseNumber(attrs.relevance),\n uri: parseString(attrs.uri),\n origin: parseString(attrs.origin),\n entityUniqueId: String(attrs.entity_unique_id ?? ''),\n entityType: String(attrs.entity_type ?? ''),\n entityAlias: parseString(attrs.entity_alias),\n entitySource: parseString(attrs.entity_source),\n entityUrl: parseString(attrs.entity_url),\n entityAvatarUrl: parseString(attrs.entity_avatar_url),\n counter: parseNumber(attrs.counter),\n favorite: parseBoolean(attrs.favorite),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n };\n },\n};\n\n/**\n * Mapper for EntityType resources\n */\nexport const entityTypeMapper: ResourceMapper<EntityType> = {\n type: 'EntityType',\n\n map(resource: JsonApiResource, _included: IncludedMap): EntityType {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n entityType: String(attrs.entity_type ?? ''),\n entitySource: parseString(attrs.entity_source),\n };\n },\n};\n"],"names":["parseString","parseDate","parseNumber","parseBoolean","parseStringArray","searchResultMapper","type","map","resource","_included","attrs","attributes","id","uniqueId","unique_id","createdAt","created_at","Date","updatedAt","updated_at","partition","key","weight","relevance","uri","origin","entityUniqueId","String","entity_unique_id","entityAlias","entity_alias","entityDescription","entity_description","entityAvatarUrl","entity_avatar_url","entityType","entity_type","entitySource","entity_source","entityUrl","entity_url","counter","favorite","status","payload","searchQueryMapper","query","include","exclude","userUniqueId","user_unique_id","userProviderName","user_provider_name","userName","user_name","userEmail","user_email","userRole","user_role","userRoleUniqueId","user_role_unique_id","userRoleName","user_role_name","queryString","query_string","userAgent","user_agent","url","path","ipaddress","source","submittedAt","submitted_at","device","browser","hash","elapsedTime","elapsed_time","startedAt","started_at","endedAt","ended_at","totalRecords","total_records","totalRecordsReturned","total_records_returned","queryOrigin","query_origin","lastQueryMapper","favoriteEntityMapper","entityTypeMapper"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parse a string value, returning null for empty/undefined
|
|
3
|
-
*/ export function parseString(value) {
|
|
4
|
-
if (value === null || value === undefined) {
|
|
5
|
-
return null;
|
|
6
|
-
}
|
|
7
|
-
const str = String(value);
|
|
8
|
-
return str.length > 0 ? str : null;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Parse a date value
|
|
12
|
-
*/ export function parseDate(value) {
|
|
13
|
-
if (value === null || value === undefined) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
if (value instanceof Date) {
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
if (typeof value === 'string' || typeof value === 'number') {
|
|
20
|
-
const date = new Date(value);
|
|
21
|
-
return isNaN(date.getTime()) ? null : date;
|
|
22
|
-
}
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Parse a boolean value
|
|
27
|
-
*/ export function parseBoolean(value) {
|
|
28
|
-
if (typeof value === 'boolean') {
|
|
29
|
-
return value;
|
|
30
|
-
}
|
|
31
|
-
if (value === 'true' || value === '1' || value === 1) {
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Parse an array of strings
|
|
38
|
-
*/ export function parseStringArray(value) {
|
|
39
|
-
if (value === null || value === undefined) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
if (Array.isArray(value)) {
|
|
43
|
-
return value.map(String);
|
|
44
|
-
}
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Parse a number value
|
|
49
|
-
*/ export function parseNumber(value) {
|
|
50
|
-
if (value === null || value === undefined) {
|
|
51
|
-
return 0;
|
|
52
|
-
}
|
|
53
|
-
const num = Number(value);
|
|
54
|
-
return isNaN(num) ? 0 : num;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/mappers/utils.ts"],"sourcesContent":["/**\n * Parse a string value, returning null for empty/undefined\n */\nexport function parseString(value: unknown): string | null {\n if (value === null || value === undefined) {\n return null;\n }\n const str = String(value);\n return str.length > 0 ? str : null;\n}\n\n/**\n * Parse a date value\n */\nexport function parseDate(value: unknown): Date | null {\n if (value === null || value === undefined) {\n return null;\n }\n\n if (value instanceof Date) {\n return value;\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value);\n return isNaN(date.getTime()) ? null : date;\n }\n\n return null;\n}\n\n/**\n * Parse a boolean value\n */\nexport function parseBoolean(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n if (value === 'true' || value === '1' || value === 1) {\n return true;\n }\n return false;\n}\n\n/**\n * Parse an array of strings\n */\nexport function parseStringArray(value: unknown): string[] | null {\n if (value === null || value === undefined) {\n return null;\n }\n if (Array.isArray(value)) {\n return value.map(String);\n }\n return null;\n}\n\n/**\n * Parse a number value\n */\nexport function parseNumber(value: unknown): number {\n if (value === null || value === undefined) {\n return 0;\n }\n const num = Number(value);\n return isNaN(num) ? 0 : num;\n}\n"],"names":["parseString","value","undefined","str","String","length","parseDate","Date","date","isNaN","getTime","parseBoolean","parseStringArray","Array","isArray","map","parseNumber","num","Number"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,YAAYC,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAO;IACT;IACA,MAAMC,MAAMC,OAAOH;IACnB,OAAOE,IAAIE,MAAM,GAAG,IAAIF,MAAM;AAChC;AAEA;;CAEC,GACD,OAAO,SAASG,UAAUL,KAAc;IACtC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAO;IACT;IAEA,IAAID,iBAAiBM,MAAM;QACzB,OAAON;IACT;IAEA,IAAI,OAAOA,UAAU,YAAY,OAAOA,UAAU,UAAU;QAC1D,MAAMO,OAAO,IAAID,KAAKN;QACtB,OAAOQ,MAAMD,KAAKE,OAAO,MAAM,OAAOF;IACxC;IAEA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASG,aAAaV,KAAc;IACzC,IAAI,OAAOA,UAAU,WAAW;QAC9B,OAAOA;IACT;IACA,IAAIA,UAAU,UAAUA,UAAU,OAAOA,UAAU,GAAG;QACpD,OAAO;IACT;IACA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASW,iBAAiBX,KAAc;IAC7C,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAO;IACT;IACA,IAAIW,MAAMC,OAAO,CAACb,QAAQ;QACxB,OAAOA,MAAMc,GAAG,CAACX;IACnB;IACA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASY,YAAYf,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAO;IACT;IACA,MAAMe,MAAMC,OAAOjB;IACnB,OAAOQ,MAAMQ,OAAO,IAAIA;AAC1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/search.block.ts"],"sourcesContent":["import type { Transport, BlockConfig } from '@23blocks/contracts';\nimport {\n createSearchService,\n createSearchHistoryService,\n createFavoritesService,\n type SearchService,\n type SearchHistoryService,\n type FavoritesService,\n} from './services/index.js';\n\n/**\n * Configuration for the Search block\n */\nexport interface SearchBlockConfig extends BlockConfig {\n /** Application ID */\n appId: string;\n /** Default entity types to search (optional) */\n defaultEntityTypes?: string[];\n}\n\n/**\n * Search block interface\n */\nexport interface SearchBlock {\n /**\n * Core search operations\n */\n search: SearchService;\n\n /**\n * Search history management\n */\n history: SearchHistoryService;\n\n /**\n * Favorites/bookmarks management\n */\n favorites: FavoritesService;\n}\n\n/**\n * Create the Search block\n *\n * @example\n * ```typescript\n * import { createSearchBlock } from '@23blocks/block-search';\n * import { createHttpTransport } from '@23blocks/transport-http';\n *\n * const transport = createHttpTransport({\n * baseUrl: 'https://api.example.com',\n * headers: () => ({\n * 'Authorization': `Bearer ${getToken()}`,\n * 'appid': 'your-app-id',\n * }),\n * });\n *\n * const searchBlock = createSearchBlock(transport, { appId: 'your-app-id' });\n *\n * // Execute a search\n * const { results, totalRecords } = await searchBlock.search.search({\n * query: 'hello world',\n * entityTypes: ['Product', 'Article'],\n * limit: 20,\n * });\n *\n * // Get suggestions\n * const suggestions = await searchBlock.search.suggest('hel');\n *\n * // Get recent searches\n * const recent = await searchBlock.history.recent(10);\n *\n * // Add to favorites\n * await searchBlock.favorites.add({\n * entityUniqueId: 'product-123',\n * entityType: 'Product',\n * entityAlias: 'My Favorite Product',\n * });\n * ```\n */\nexport function createSearchBlock(\n transport: Transport,\n config: SearchBlockConfig\n): SearchBlock {\n return {\n search: createSearchService(transport, config),\n history: createSearchHistoryService(transport, config),\n favorites: createFavoritesService(transport, config),\n };\n}\n\n/**\n * Block metadata\n */\nexport const searchBlockMetadata = {\n name: 'search',\n version: '0.0.1',\n description: 'Full-text search, suggestions, history, and favorites',\n resourceTypes: [\n 'SearchResult',\n 'SearchQuery',\n 'LastQuery',\n 'FavoriteEntity',\n 'EntityType',\n ],\n};\n"],"names":["createSearchService","createSearchHistoryService","createFavoritesService","createSearchBlock","transport","config","search","history","favorites","searchBlockMetadata","name","version","description","resourceTypes"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SACEA,mBAAmB,EACnBC,0BAA0B,EAC1BC,sBAAsB,QAIjB,sBAAsB;AAgC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCC,GACD,OAAO,SAASC,kBACdC,SAAoB,EACpBC,MAAyB;IAEzB,OAAO;QACLC,QAAQN,oBAAoBI,WAAWC;QACvCE,SAASN,2BAA2BG,WAAWC;QAC/CG,WAAWN,uBAAuBE,WAAWC;IAC/C;AACF;AAEA;;CAEC,GACD,OAAO,MAAMI,sBAAsB;IACjCC,MAAM;IACNC,SAAS;IACTC,aAAa;IACbC,eAAe;QACb;QACA;QACA;QACA;QACA;KACD;AACH,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/services/index.ts"],"sourcesContent":["export {\n createSearchService,\n createSearchHistoryService,\n createFavoritesService,\n type SearchService,\n type SearchHistoryService,\n type FavoritesService,\n} from './search.service.js';\n"],"names":["createSearchService","createSearchHistoryService","createFavoritesService"],"rangeMappings":"","mappings":"AAAA,SACEA,mBAAmB,EACnBC,0BAA0B,EAC1BC,sBAAsB,QAIjB,sBAAsB"}
|