@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.
Files changed (41) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.esm.js +497 -0
  3. package/dist/src/index.d.ts +5 -0
  4. package/dist/src/index.d.ts.map +1 -0
  5. package/dist/src/lib/block-search.d.ts +2 -0
  6. package/dist/src/lib/block-search.d.ts.map +1 -0
  7. package/dist/{lib/mappers/index.js → src/lib/mappers/index.d.ts} +2 -3
  8. package/dist/src/lib/mappers/index.d.ts.map +1 -0
  9. package/dist/src/lib/mappers/search.mapper.d.ts +23 -0
  10. package/dist/src/lib/mappers/search.mapper.d.ts.map +1 -0
  11. package/dist/src/lib/mappers/utils.d.ts +21 -0
  12. package/dist/src/lib/mappers/utils.d.ts.map +1 -0
  13. package/dist/{lib/search.block.js → src/lib/search.block.d.ts} +37 -21
  14. package/dist/src/lib/search.block.d.ts.map +1 -0
  15. package/dist/src/lib/services/index.d.ts +2 -0
  16. package/dist/src/lib/services/index.d.ts.map +1 -0
  17. package/dist/src/lib/services/search.service.d.ts +79 -0
  18. package/dist/src/lib/services/search.service.d.ts.map +1 -0
  19. package/dist/src/lib/types/index.d.ts +2 -0
  20. package/dist/src/lib/types/index.d.ts.map +1 -0
  21. package/dist/src/lib/types/search.d.ts +152 -0
  22. package/dist/src/lib/types/search.d.ts.map +1 -0
  23. package/package.json +10 -8
  24. package/dist/index.js +0 -6
  25. package/dist/index.js.map +0 -1
  26. package/dist/lib/block-search.js +0 -5
  27. package/dist/lib/block-search.js.map +0 -1
  28. package/dist/lib/mappers/index.js.map +0 -1
  29. package/dist/lib/mappers/search.mapper.js +0 -174
  30. package/dist/lib/mappers/search.mapper.js.map +0 -1
  31. package/dist/lib/mappers/utils.js +0 -57
  32. package/dist/lib/mappers/utils.js.map +0 -1
  33. package/dist/lib/search.block.js.map +0 -1
  34. package/dist/lib/services/index.js +0 -3
  35. package/dist/lib/services/index.js.map +0 -1
  36. package/dist/lib/services/search.service.js +0 -209
  37. package/dist/lib/services/search.service.js.map +0 -1
  38. package/dist/lib/types/index.js +0 -3
  39. package/dist/lib/types/index.js.map +0 -1
  40. package/dist/lib/types/search.js +0 -5
  41. 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,2 @@
1
+ export type { SearchResult, SearchQuery, LastQuery, FavoriteEntity, EntityType, SearchRequest, SearchResponse, AddFavoriteRequest, } from './search.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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",
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/js:swc",
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
- "skipTypeCheck": true,
53
- "stripLeadingPaths": true
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"}
@@ -1,5 +0,0 @@
1
- export function blockSearch() {
2
- return 'block-search';
3
- }
4
-
5
- //# sourceMappingURL=block-search.js.map
@@ -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":"AASA,SAASA,WAAW,EAAEC,SAAS,EAAEC,WAAW,EAAEC,YAAY,EAAEC,gBAAgB,QAAQ,aAAa;AAEjG;;CAEC,GACD,OAAO,MAAMC,qBAAmD;IAC9DC,MAAM;IAENC,KAAIC,QAAyB,EAAEC,SAAsB;YACrCD;QAAd,MAAME,QAAQF,CAAAA,uBAAAA,SAASG,UAAU,YAAnBH,uBAAuB,CAAC;YAI1BR,cACCC,YACAA,aAOYS,yBAIJA,oBAKVV;QApBX,OAAO;YACLY,IAAIJ,SAASI,EAAE;YACfC,UAAUb,CAAAA,eAAAA,YAAYU,MAAMI,SAAS,aAA3Bd,eAAgCQ,SAASI,EAAE;YACrDG,WAAWd,CAAAA,aAAAA,UAAUS,MAAMM,UAAU,aAA1Bf,aAA+B,IAAIgB;YAC9CC,WAAWjB,CAAAA,cAAAA,UAAUS,MAAMS,UAAU,aAA1BlB,cAA+B,IAAIgB;YAC9CG,WAAWpB,YAAYU,MAAMU,SAAS;YACtCC,KAAKrB,YAAYU,MAAMW,GAAG;YAC1BC,QAAQpB,YAAYQ,MAAMY,MAAM;YAChCC,WAAWrB,YAAYQ,MAAMa,SAAS;YACtCC,KAAKxB,YAAYU,MAAMc,GAAG;YAC1BC,QAAQzB,YAAYU,MAAMe,MAAM;YAChCC,gBAAgBC,OAAOjB,CAAAA,0BAAAA,MAAMkB,gBAAgB,YAAtBlB,0BAA0B;YACjDmB,aAAa7B,YAAYU,MAAMoB,YAAY;YAC3CC,mBAAmB/B,YAAYU,MAAMsB,kBAAkB;YACvDC,iBAAiBjC,YAAYU,MAAMwB,iBAAiB;YACpDC,YAAYR,OAAOjB,CAAAA,qBAAAA,MAAM0B,WAAW,YAAjB1B,qBAAqB;YACxC2B,cAAcrC,YAAYU,MAAM4B,aAAa;YAC7CC,WAAWvC,YAAYU,MAAM8B,UAAU;YACvCC,SAASvC,YAAYQ,MAAM+B,OAAO;YAClCC,UAAUvC,aAAaO,MAAMgC,QAAQ;YACrCC,QAAS3C,CAAAA,gBAAAA,YAAYU,MAAMiC,MAAM,aAAxB3C,gBAA6B;YACtC4C,SAASlC,MAAMkC,OAAO;QACxB;IACF;AACF,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMC,oBAAiD;IAC5DvC,MAAM;IAENC,KAAIC,QAAyB,EAAEC,SAAsB;YACrCD;QAAd,MAAME,QAAQF,CAAAA,uBAAAA,SAASG,UAAU,YAAnBH,uBAAuB,CAAC;YAI1BR,cACCC,YACAA,aAGGS;QAPhB,OAAO;YACLE,IAAIJ,SAASI,EAAE;YACfC,UAAUb,CAAAA,eAAAA,YAAYU,MAAMI,SAAS,aAA3Bd,eAAgCQ,SAASI,EAAE;YACrDG,WAAWd,CAAAA,aAAAA,UAAUS,MAAMM,UAAU,aAA1Bf,aAA+B,IAAIgB;YAC9CC,WAAWjB,CAAAA,cAAAA,UAAUS,MAAMS,UAAU,aAA1BlB,cAA+B,IAAIgB;YAC9CG,WAAWpB,YAAYU,MAAMU,SAAS;YACtCC,KAAKrB,YAAYU,MAAMW,GAAG;YAC1ByB,OAAOnB,OAAOjB,CAAAA,eAAAA,MAAMoC,KAAK,YAAXpC,eAAe;YAC7BqC,SAAS3C,iBAAiBM,MAAMqC,OAAO;YACvCC,SAAS5C,iBAAiBM,MAAMsC,OAAO;YACvCJ,SAASlC,MAAMkC,OAAO;YACtBK,cAAcjD,YAAYU,MAAMwC,cAAc;YAC9CC,kBAAkBnD,YAAYU,MAAM0C,kBAAkB;YACtDC,UAAUrD,YAAYU,MAAM4C,SAAS;YACrCC,WAAWvD,YAAYU,MAAM8C,UAAU;YACvCC,UAAUzD,YAAYU,MAAMgD,SAAS;YACrCC,kBAAkB3D,YAAYU,MAAMkD,mBAAmB;YACvDC,cAAc7D,YAAYU,MAAMoD,cAAc;YAC9CC,aAAa/D,YAAYU,MAAMsD,YAAY;YAC3CC,WAAWjE,YAAYU,MAAMwD,UAAU;YACvCC,KAAKnE,YAAYU,MAAMyD,GAAG;YAC1BC,MAAMpE,YAAYU,MAAM0D,IAAI;YAC5BC,WAAWrE,YAAYU,MAAM2D,SAAS;YACtC5C,QAAQzB,YAAYU,MAAMe,MAAM;YAChC6C,QAAQtE,YAAYU,MAAM4D,MAAM;YAChCC,aAAatE,UAAUS,MAAM8D,YAAY;YACzCC,QAAQzE,YAAYU,MAAM+D,MAAM;YAChCC,SAAS1E,YAAYU,MAAMgE,OAAO;YAClCC,MAAM3E,YAAYU,MAAMiE,IAAI;YAC5BC,aAAalE,MAAMmE,YAAY,IAAI,OAAO3E,YAAYQ,MAAMmE,YAAY,IAAI;YAC5EC,WAAW7E,UAAUS,MAAMqE,UAAU;YACrCC,SAAS/E,UAAUS,MAAMuE,QAAQ;YACjCC,cAAchF,YAAYQ,MAAMyE,aAAa;YAC7CC,sBAAsBlF,YAAYQ,MAAM2E,sBAAsB;YAC9DC,aAAatF,YAAYU,MAAM6E,YAAY;QAC7C;IACF;AACF,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMC,kBAA6C;IACxDlF,MAAM;IAENC,KAAIC,QAAyB,EAAEC,SAAsB;YACrCD;QAAd,MAAME,QAAQF,CAAAA,uBAAAA,SAASG,UAAU,YAAnBH,uBAAuB,CAAC;YAI1BR,cACCC,YACAA,aAGGS;QAPhB,OAAO;YACLE,IAAIJ,SAASI,EAAE;YACfC,UAAUb,CAAAA,eAAAA,YAAYU,MAAMI,SAAS,aAA3Bd,eAAgCQ,SAASI,EAAE;YACrDG,WAAWd,CAAAA,aAAAA,UAAUS,MAAMM,UAAU,aAA1Bf,aAA+B,IAAIgB;YAC9CC,WAAWjB,CAAAA,cAAAA,UAAUS,MAAMS,UAAU,aAA1BlB,cAA+B,IAAIgB;YAC9CG,WAAWpB,YAAYU,MAAMU,SAAS;YACtCC,KAAKrB,YAAYU,MAAMW,GAAG;YAC1ByB,OAAOnB,OAAOjB,CAAAA,eAAAA,MAAMoC,KAAK,YAAXpC,eAAe;YAC7BqC,SAAS3C,iBAAiBM,MAAMqC,OAAO;YACvCC,SAAS5C,iBAAiBM,MAAMsC,OAAO;YACvCJ,SAASlC,MAAMkC,OAAO;YACtBK,cAAcjD,YAAYU,MAAMwC,cAAc;YAC9CC,kBAAkBnD,YAAYU,MAAM0C,kBAAkB;YACtDC,UAAUrD,YAAYU,MAAM4C,SAAS;YACrCC,WAAWvD,YAAYU,MAAM8C,UAAU;YACvCC,UAAUzD,YAAYU,MAAMgD,SAAS;YACrCC,kBAAkB3D,YAAYU,MAAMkD,mBAAmB;YACvDC,cAAc7D,YAAYU,MAAMoD,cAAc;YAC9CC,aAAa/D,YAAYU,MAAMsD,YAAY;YAC3CC,WAAWjE,YAAYU,MAAMwD,UAAU;YACvCC,KAAKnE,YAAYU,MAAMyD,GAAG;YAC1BC,MAAMpE,YAAYU,MAAM0D,IAAI;YAC5BC,WAAWrE,YAAYU,MAAM2D,SAAS;YACtC5C,QAAQzB,YAAYU,MAAMe,MAAM;YAChC6C,QAAQtE,YAAYU,MAAM4D,MAAM;YAChCC,aAAatE,UAAUS,MAAM8D,YAAY;YACzCC,QAAQzE,YAAYU,MAAM+D,MAAM;YAChCC,SAAS1E,YAAYU,MAAMgE,OAAO;YAClCC,MAAM3E,YAAYU,MAAMiE,IAAI;YAC5BC,aAAalE,MAAMmE,YAAY,IAAI,OAAO3E,YAAYQ,MAAMmE,YAAY,IAAI;YAC5EC,WAAW7E,UAAUS,MAAMqE,UAAU;YACrCC,SAAS/E,UAAUS,MAAMuE,QAAQ;YACjCC,cAAchF,YAAYQ,MAAMyE,aAAa;YAC7CC,sBAAsBlF,YAAYQ,MAAM2E,sBAAsB;YAC9DC,aAAatF,YAAYU,MAAM6E,YAAY;QAC7C;IACF;AACF,EAAE;AAEF;;CAEC,GACD,OAAO,MAAME,uBAAuD;IAClEnF,MAAM;IAENC,KAAIC,QAAyB,EAAEC,SAAsB;YACrCD;QAAd,MAAME,QAAQF,CAAAA,uBAAAA,SAASG,UAAU,YAAnBH,uBAAuB,CAAC;YAI1BR,cACCC,YACAA,aAOYS,yBACJA,oBAOVV;QAnBX,OAAO;YACLY,IAAIJ,SAASI,EAAE;YACfC,UAAUb,CAAAA,eAAAA,YAAYU,MAAMI,SAAS,aAA3Bd,eAAgCQ,SAASI,EAAE;YACrDG,WAAWd,CAAAA,aAAAA,UAAUS,MAAMM,UAAU,aAA1Bf,aAA+B,IAAIgB;YAC9CC,WAAWjB,CAAAA,cAAAA,UAAUS,MAAMS,UAAU,aAA1BlB,cAA+B,IAAIgB;YAC9CG,WAAWpB,YAAYU,MAAMU,SAAS;YACtCC,KAAKrB,YAAYU,MAAMW,GAAG;YAC1BC,QAAQpB,YAAYQ,MAAMY,MAAM;YAChCC,WAAWrB,YAAYQ,MAAMa,SAAS;YACtCC,KAAKxB,YAAYU,MAAMc,GAAG;YAC1BC,QAAQzB,YAAYU,MAAMe,MAAM;YAChCC,gBAAgBC,OAAOjB,CAAAA,0BAAAA,MAAMkB,gBAAgB,YAAtBlB,0BAA0B;YACjDyB,YAAYR,OAAOjB,CAAAA,qBAAAA,MAAM0B,WAAW,YAAjB1B,qBAAqB;YACxCmB,aAAa7B,YAAYU,MAAMoB,YAAY;YAC3CO,cAAcrC,YAAYU,MAAM4B,aAAa;YAC7CC,WAAWvC,YAAYU,MAAM8B,UAAU;YACvCP,iBAAiBjC,YAAYU,MAAMwB,iBAAiB;YACpDO,SAASvC,YAAYQ,MAAM+B,OAAO;YAClCC,UAAUvC,aAAaO,MAAMgC,QAAQ;YACrCC,QAAS3C,CAAAA,gBAAAA,YAAYU,MAAMiC,MAAM,aAAxB3C,gBAA6B;QACxC;IACF;AACF,EAAE;AAEF;;CAEC,GACD,OAAO,MAAM0F,mBAA+C;IAC1DpF,MAAM;IAENC,KAAIC,QAAyB,EAAEC,SAAsB;YACrCD;QAAd,MAAME,QAAQF,CAAAA,uBAAAA,SAASG,UAAU,YAAnBH,uBAAuB,CAAC;YAIjBE;QAFrB,OAAO;YACLE,IAAIJ,SAASI,EAAE;YACfuB,YAAYR,OAAOjB,CAAAA,qBAAAA,MAAM0B,WAAW,YAAjB1B,qBAAqB;YACxC2B,cAAcrC,YAAYU,MAAM4B,aAAa;QAC/C;IACF;AACF,EAAE"}
@@ -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,3 +0,0 @@
1
- export { createSearchService, createSearchHistoryService, createFavoritesService } from './search.service.js';
2
-
3
- //# sourceMappingURL=index.js.map
@@ -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"}