bright-client 0.5.0 → 0.6.6

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/README.md CHANGED
@@ -1,6 +1,10 @@
1
- # Bright JS
1
+ <div align="center">
2
+ <img src="assets/logo.svg" alt="Bright Logo" width="200"/>
3
+ </div>
2
4
 
3
- TypeScript/JavaScript client library for [Bright](https://github.com/nnstd/bright) full-text search database.
5
+ <div align="center">
6
+ TypeScript/JavaScript client library for <a href="https://github.com/nnstd/bright">Bright</a> full-text search database.
7
+ </div>
4
8
 
5
9
  ## Installation
6
10
 
package/dist/index.cjs CHANGED
@@ -212,7 +212,7 @@ function createBrightError(statusCode, errorResponse) {
212
212
  case "PARSE_ERROR": return new ParseError(message, details);
213
213
  case "INDEX_NOT_FOUND": return new IndexNotFoundError(message, details);
214
214
  case "DOCUMENT_NOT_FOUND": return new DocumentNotFoundError(message, details);
215
- case "NOT_LEADER": return new NotLeaderError(message, details?.leaderUrl, details);
215
+ case "NOT_LEADER": return new NotLeaderError(message, typeof details?.leaderUrl === "string" ? details.leaderUrl : void 0, details);
216
216
  case "CLUSTER_UNAVAILABLE": return new ClusterUnavailableError(message, details);
217
217
  case "INSUFFICIENT_PERMISSIONS": return new InsufficientPermissionsError(message, details);
218
218
  case "LEADER_ONLY_OPERATION": return new LeaderOnlyOperationError(message, details);
@@ -238,8 +238,76 @@ function createBrightError(statusCode, errorResponse) {
238
238
  }
239
239
  }
240
240
 
241
+ //#endregion
242
+ //#region src/types.ts
243
+ /**
244
+ * Build a field query with optional boost
245
+ * @example field('name', 'water', 5) => 'name:water^5'
246
+ */
247
+ function field(name, value, boost) {
248
+ const base = `${String(name)}:${String(value)}`;
249
+ return boost ? `${base}^${boost}` : base;
250
+ }
251
+ /**
252
+ * Build a required (MUST) clause
253
+ * @example must('name:water') => '+name:water'
254
+ */
255
+ function must(query) {
256
+ return `+${query}`;
257
+ }
258
+ /**
259
+ * Build an excluded (MUST NOT) clause
260
+ * @example mustNot('name:water') => '-name:water'
261
+ */
262
+ function mustNot(query) {
263
+ return `-${query}`;
264
+ }
265
+ /**
266
+ * Build a phrase query
267
+ * @example phrase('light beer') => '"light beer"'
268
+ */
269
+ function phrase(text) {
270
+ return `"${text}"`;
271
+ }
272
+ /**
273
+ * Build a range query
274
+ * @example range('price', { gte: 10, lt: 100 }) => 'price:>=10 price:<100'
275
+ */
276
+ function range(name, filter) {
277
+ const parts = [];
278
+ const n = String(name);
279
+ if (filter.gt !== void 0) parts.push(`${n}:>${filter.gt}`);
280
+ if (filter.gte !== void 0) parts.push(`${n}:>=${filter.gte}`);
281
+ if (filter.lt !== void 0) parts.push(`${n}:<${filter.lt}`);
282
+ if (filter.lte !== void 0) parts.push(`${n}:<=${filter.lte}`);
283
+ return parts.join(" ");
284
+ }
285
+
241
286
  //#endregion
242
287
  //#region src/index.ts
288
+ function buildQueryFromFilters(filter, range$1) {
289
+ const parts = [];
290
+ if (filter) for (const [key, val] of Object.entries(filter)) {
291
+ if (val === void 0) continue;
292
+ if (typeof val === "object" && val !== null && "value" in val) {
293
+ const { value, boost } = val;
294
+ parts.push(boost ? `${key}:${value}^${boost}` : `${key}:${value}`);
295
+ } else parts.push(`${key}:${val}`);
296
+ }
297
+ if (range$1) for (const [key, rangeVal] of Object.entries(range$1)) {
298
+ if (rangeVal === void 0) continue;
299
+ const r = rangeVal;
300
+ if (r.gt !== void 0) parts.push(`${key}:>${r.gt}`);
301
+ if (r.gte !== void 0) parts.push(`${key}:>=${r.gte}`);
302
+ if (r.lt !== void 0) parts.push(`${key}:<${r.lt}`);
303
+ if (r.lte !== void 0) parts.push(`${key}:<=${r.lte}`);
304
+ }
305
+ return parts.join(" ");
306
+ }
307
+ function normalizeSortField(sort) {
308
+ if (typeof sort === "object" && sort !== null && "field" in sort) return sort.order === "desc" ? `-${String(sort.field)}` : String(sort.field);
309
+ return String(sort);
310
+ }
243
311
  var BrightClient = class {
244
312
  constructor(options) {
245
313
  this.baseUrl = options.baseUrl.replace(/\/$/, "");
@@ -304,15 +372,38 @@ var BrightClient = class {
304
372
  }
305
373
  async search(indexId, params) {
306
374
  const searchParams = new URLSearchParams();
307
- if (params?.q) searchParams.append("q", params.q);
375
+ const filterQuery = buildQueryFromFilters(params?.filter, params?.range);
376
+ const fullQuery = [params?.q, filterQuery].filter(Boolean).join(" ");
377
+ if (fullQuery) searchParams.append("q", fullQuery);
308
378
  if (params?.offset) searchParams.append("offset", params.offset.toString());
309
379
  if (params?.limit) searchParams.append("limit", params.limit.toString());
310
380
  if (params?.page) searchParams.append("page", params.page.toString());
311
- if (params?.sort) params.sort.forEach((s) => searchParams.append("sort[]", s));
312
- if (params?.attributesToRetrieve) params.attributesToRetrieve.forEach((attr) => searchParams.append("attributesToRetrieve[]", attr));
313
- if (params?.attributesToExclude) params.attributesToExclude.forEach((attr) => searchParams.append("attributesToExclude[]", attr));
381
+ if (params?.sort) params.sort.forEach((s) => searchParams.append("sort[]", normalizeSortField(s)));
382
+ if (params?.attributesToRetrieve) params.attributesToRetrieve.forEach((attr) => searchParams.append("attributesToRetrieve[]", String(attr)));
383
+ if (params?.attributesToExclude) params.attributesToExclude.forEach((attr) => searchParams.append("attributesToExclude[]", String(attr)));
314
384
  return this.request(`/indexes/${indexId}/searches?${searchParams}`, { method: "POST" });
315
385
  }
386
+ async listIngresses(indexId) {
387
+ return (await this.request(`/indexes/${indexId}/ingresses`)).ingresses;
388
+ }
389
+ async createIngress(indexId, params) {
390
+ return this.request(`/indexes/${indexId}/ingresses`, {
391
+ method: "POST",
392
+ body: JSON.stringify(params)
393
+ });
394
+ }
395
+ async getIngress(indexId, ingressId) {
396
+ return this.request(`/indexes/${indexId}/ingresses/${ingressId}`);
397
+ }
398
+ async updateIngress(indexId, ingressId, state) {
399
+ return this.request(`/indexes/${indexId}/ingresses/${ingressId}`, {
400
+ method: "PATCH",
401
+ body: JSON.stringify({ state })
402
+ });
403
+ }
404
+ async deleteIngress(indexId, ingressId) {
405
+ return this.request(`/indexes/${indexId}/ingresses/${ingressId}`, { method: "DELETE" });
406
+ }
316
407
  index(indexId) {
317
408
  return {
318
409
  id: indexId,
@@ -322,7 +413,12 @@ var BrightClient = class {
322
413
  updateDocument: (documentId, updates) => this.updateDocument(indexId, documentId, updates),
323
414
  deleteDocument: (documentId) => this.deleteDocument(indexId, documentId),
324
415
  deleteDocuments: (options) => this.deleteDocuments(indexId, options),
325
- search: (params) => this.search(indexId, params)
416
+ search: (params) => this.search(indexId, params),
417
+ listIngresses: () => this.listIngresses(indexId),
418
+ createIngress: (params) => this.createIngress(indexId, params),
419
+ getIngress: (ingressId) => this.getIngress(indexId, ingressId),
420
+ updateIngress: (ingressId, state) => this.updateIngress(indexId, ingressId, state),
421
+ deleteIngress: (ingressId) => this.deleteIngress(indexId, ingressId)
326
422
  };
327
423
  }
328
424
  };
@@ -360,4 +456,9 @@ exports.SerializationFailedError = SerializationFailedError;
360
456
  exports.UuidGenerationFailedError = UuidGenerationFailedError;
361
457
  exports.ValidationError = ValidationError;
362
458
  exports.createBrightError = createBrightError;
363
- exports.createClient = createClient;
459
+ exports.createClient = createClient;
460
+ exports.field = field;
461
+ exports.must = must;
462
+ exports.mustNot = mustNot;
463
+ exports.phrase = phrase;
464
+ exports.range = range;
package/dist/index.d.cts CHANGED
@@ -1,125 +1,252 @@
1
+ //#region src/types.d.ts
2
+ interface IndexConfig {
3
+ id: string;
4
+ primaryKey?: string;
5
+ }
6
+ /** Field filter with optional boost: `field:value` or `field:value^boost` */
7
+ type FieldFilter<T> = { [K in keyof T]?: T[K] extends string | number | boolean | Date ? T[K] | {
8
+ value: T[K];
9
+ boost?: number;
10
+ } : never };
11
+ /** Numeric range filter for a field */
12
+ interface RangeFilter<T> {
13
+ gt?: T;
14
+ gte?: T;
15
+ lt?: T;
16
+ lte?: T;
17
+ }
18
+ /** Field range filters: `field:>value`, `field:>=value`, etc. */
19
+ type FieldRangeFilter<T> = { [K in keyof T]?: T[K] extends number | Date ? RangeFilter<T[K]> : never };
20
+ /** Sort direction for a field */
21
+ type SortDirection = 'asc' | 'desc';
22
+ /** Typed sort options */
23
+ type SortField<T> = keyof T | `-${string & keyof T}` | {
24
+ field: keyof T;
25
+ order: SortDirection;
26
+ };
27
+ interface SearchParams<T = Record<string, unknown>, Exclude extends keyof T = never> {
28
+ /** Query string (supports Bleve syntax: field:value, +required, -excluded, ^boost) */
29
+ q?: string;
30
+ /** Typed field filters (alternative to query string) */
31
+ filter?: FieldFilter<T>;
32
+ /** Typed range filters for numeric/date fields */
33
+ range?: FieldRangeFilter<T>;
34
+ /** Pagination offset */
35
+ offset?: number;
36
+ /** Results per page limit */
37
+ limit?: number;
38
+ /** Page number (1-indexed) */
39
+ page?: number;
40
+ /** Sort fields (prefix with - for descending) */
41
+ sort?: Array<SortField<T>>;
42
+ /** Fields to retrieve (defaults to all) */
43
+ attributesToRetrieve?: Array<keyof T>;
44
+ /** Fields to exclude from results */
45
+ attributesToExclude?: Exclude[];
46
+ }
47
+ /** Search response with excluded fields removed from type */
48
+ interface SearchResponse<T = Record<string, unknown>, Exclude extends keyof T = never> {
49
+ hits: Array<Omit<T, Exclude>>;
50
+ totalHits: number;
51
+ totalPages: number;
52
+ }
53
+ /**
54
+ * Build a field query with optional boost
55
+ * @example field('name', 'water', 5) => 'name:water^5'
56
+ */
57
+ declare function field<T, K$1 extends keyof T>(name: K$1, value: T[K$1], boost?: number): string;
58
+ /**
59
+ * Build a required (MUST) clause
60
+ * @example must('name:water') => '+name:water'
61
+ */
62
+ declare function must(query: string): string;
63
+ /**
64
+ * Build an excluded (MUST NOT) clause
65
+ * @example mustNot('name:water') => '-name:water'
66
+ */
67
+ declare function mustNot(query: string): string;
68
+ /**
69
+ * Build a phrase query
70
+ * @example phrase('light beer') => '"light beer"'
71
+ */
72
+ declare function phrase(text: string): string;
73
+ /**
74
+ * Build a range query
75
+ * @example range('price', { gte: 10, lt: 100 }) => 'price:>=10 price:<100'
76
+ */
77
+ declare function range<T, K$1 extends keyof T>(name: K$1, filter: RangeFilter<T[K$1]>): string;
78
+ interface BrightClientOptions {
79
+ baseUrl: string;
80
+ apiKey?: string;
81
+ fetch?: typeof fetch;
82
+ }
83
+ //#endregion
84
+ //#region src/ingress.d.ts
85
+ type IngressState = 'running' | 'paused' | 'resyncing';
86
+ type IngressStatus = 'stopped' | 'starting' | 'running' | 'syncing' | 'paused' | 'failed';
87
+ interface PostgresIngressConfig {
88
+ /** PostgreSQL connection string (required) */
89
+ dsn: string;
90
+ /** Table name to sync (required) */
91
+ table: string;
92
+ /** PostgreSQL schema (default: "public") */
93
+ schema?: string;
94
+ /** Primary key column (default: "id") */
95
+ primary_key?: string;
96
+ /** Columns to sync, empty means all columns (default: all) */
97
+ columns?: string[];
98
+ /** Rename columns via mapping */
99
+ column_mapping?: Record<string, string>;
100
+ /** Timestamp column for change detection (default: "updated_at") */
101
+ updated_at_column?: string;
102
+ /** Filter rows with SQL WHERE condition */
103
+ where_clause?: string;
104
+ /** Sync mode: "polling" or "listen" (default: "polling") */
105
+ sync_mode?: 'polling' | 'listen';
106
+ /** Poll interval, e.g. "10s", "1m" (default: "30s") */
107
+ poll_interval?: string;
108
+ /** Documents per batch (default: 1000) */
109
+ batch_size?: number;
110
+ /** Auto-create PostgreSQL triggers for LISTEN mode (default: true) */
111
+ auto_triggers?: boolean;
112
+ }
113
+ interface IngressStatistics {
114
+ last_sync_at?: string;
115
+ documents_synced: number;
116
+ documents_deleted: number;
117
+ full_sync_complete: boolean;
118
+ last_error?: string;
119
+ error_count: number;
120
+ }
121
+ interface IngressBase {
122
+ id: string;
123
+ index_id: string;
124
+ status: IngressStatus;
125
+ statistics: IngressStatistics;
126
+ }
127
+ interface PostgresIngressResponse extends IngressBase {
128
+ type: 'postgres';
129
+ config: PostgresIngressConfig;
130
+ }
131
+ /** Fallback for unknown ingress types */
132
+ interface GenericIngressResponse extends IngressBase {
133
+ type: string;
134
+ config: Record<string, unknown>;
135
+ }
136
+ /** Discriminated union of all ingress response types */
137
+ type IngressConfig = PostgresIngressResponse | GenericIngressResponse;
138
+ interface CreateIngressParams {
139
+ id: string;
140
+ type: string;
141
+ config: Record<string, unknown>;
142
+ }
143
+ interface CreatePostgresIngressParams {
144
+ id: string;
145
+ type: 'postgres';
146
+ config: PostgresIngressConfig;
147
+ }
148
+ /** Union of all typed ingress creation params. Use CreateIngressParams for generic/unknown types. */
149
+ type TypedCreateIngressParams = CreatePostgresIngressParams;
150
+ //#endregion
1
151
  //#region src/errors.d.ts
2
152
  type ErrorCode = 'MISSING_PARAMETER' | 'INVALID_PARAMETER' | 'INVALID_REQUEST_BODY' | 'CONFLICTING_PARAMETERS' | 'INVALID_FORMAT' | 'PARSE_ERROR' | 'INDEX_NOT_FOUND' | 'DOCUMENT_NOT_FOUND' | 'NOT_LEADER' | 'CLUSTER_UNAVAILABLE' | 'INSUFFICIENT_PERMISSIONS' | 'LEADER_ONLY_OPERATION' | 'RESOURCE_ALREADY_EXISTS' | 'UUID_GENERATION_FAILED' | 'SERIALIZATION_FAILED' | 'RAFT_APPLY_FAILED' | 'INDEX_OPERATION_FAILED' | 'DOCUMENT_OPERATION_FAILED' | 'BATCH_OPERATION_FAILED' | 'SEARCH_FAILED' | 'INTERNAL_ERROR';
3
153
  interface BrightErrorResponse {
4
154
  error: string;
5
155
  code?: ErrorCode;
6
- details?: Record<string, any>;
156
+ details?: Record<string, unknown>;
7
157
  }
8
158
  declare class BrightError extends Error {
9
159
  readonly code?: ErrorCode;
10
160
  readonly statusCode: number;
11
- readonly details?: Record<string, any>;
12
- constructor(message: string, statusCode: number, code?: ErrorCode, details?: Record<string, any>);
161
+ readonly details?: Record<string, unknown>;
162
+ constructor(message: string, statusCode: number, code?: ErrorCode, details?: Record<string, unknown>);
13
163
  toJSON(): BrightErrorResponse & {
14
164
  statusCode: number;
15
165
  };
16
166
  }
17
167
  declare class ValidationError extends BrightError {
18
- constructor(message: string, code?: ErrorCode, details?: Record<string, any>);
168
+ constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>);
19
169
  }
20
170
  declare class MissingParameterError extends ValidationError {
21
- constructor(message: string, details?: Record<string, any>);
171
+ constructor(message: string, details?: Record<string, unknown>);
22
172
  }
23
173
  declare class InvalidParameterError extends ValidationError {
24
- constructor(message: string, details?: Record<string, any>);
174
+ constructor(message: string, details?: Record<string, unknown>);
25
175
  }
26
176
  declare class InvalidRequestBodyError extends ValidationError {
27
- constructor(message: string, details?: Record<string, any>);
177
+ constructor(message: string, details?: Record<string, unknown>);
28
178
  }
29
179
  declare class ConflictingParametersError extends ValidationError {
30
- constructor(message: string, details?: Record<string, any>);
180
+ constructor(message: string, details?: Record<string, unknown>);
31
181
  }
32
182
  declare class InvalidFormatError extends ValidationError {
33
- constructor(message: string, details?: Record<string, any>);
183
+ constructor(message: string, details?: Record<string, unknown>);
34
184
  }
35
185
  declare class ParseError extends ValidationError {
36
- constructor(message: string, details?: Record<string, any>);
186
+ constructor(message: string, details?: Record<string, unknown>);
37
187
  }
38
188
  declare class NotFoundError extends BrightError {
39
- constructor(message: string, code?: ErrorCode, details?: Record<string, any>);
189
+ constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>);
40
190
  }
41
191
  declare class IndexNotFoundError extends NotFoundError {
42
- constructor(message: string, details?: Record<string, any>);
192
+ constructor(message: string, details?: Record<string, unknown>);
43
193
  }
44
194
  declare class DocumentNotFoundError extends NotFoundError {
45
- constructor(message: string, details?: Record<string, any>);
195
+ constructor(message: string, details?: Record<string, unknown>);
46
196
  }
47
197
  declare class ClusterError extends BrightError {
48
- constructor(message: string, statusCode: number, code?: ErrorCode, details?: Record<string, any>);
198
+ constructor(message: string, statusCode: number, code?: ErrorCode, details?: Record<string, unknown>);
49
199
  }
50
200
  declare class NotLeaderError extends ClusterError {
51
201
  readonly leaderUrl?: string;
52
- constructor(message: string, leaderUrl?: string, details?: Record<string, any>);
202
+ constructor(message: string, leaderUrl?: string, details?: Record<string, unknown>);
53
203
  }
54
204
  declare class ClusterUnavailableError extends ClusterError {
55
- constructor(message: string, details?: Record<string, any>);
205
+ constructor(message: string, details?: Record<string, unknown>);
56
206
  }
57
207
  declare class AuthorizationError extends BrightError {
58
- constructor(message: string, code?: ErrorCode, details?: Record<string, any>);
208
+ constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>);
59
209
  }
60
210
  declare class InsufficientPermissionsError extends AuthorizationError {
61
- constructor(message: string, details?: Record<string, any>);
211
+ constructor(message: string, details?: Record<string, unknown>);
62
212
  }
63
213
  declare class LeaderOnlyOperationError extends AuthorizationError {
64
- constructor(message: string, details?: Record<string, any>);
214
+ constructor(message: string, details?: Record<string, unknown>);
65
215
  }
66
216
  declare class ConflictError extends BrightError {
67
- constructor(message: string, code?: ErrorCode, details?: Record<string, any>);
217
+ constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>);
68
218
  }
69
219
  declare class ResourceAlreadyExistsError extends ConflictError {
70
- constructor(message: string, details?: Record<string, any>);
220
+ constructor(message: string, details?: Record<string, unknown>);
71
221
  }
72
222
  declare class InternalError extends BrightError {
73
- constructor(message: string, code?: ErrorCode, details?: Record<string, any>);
223
+ constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>);
74
224
  }
75
225
  declare class UuidGenerationFailedError extends InternalError {
76
- constructor(message: string, details?: Record<string, any>);
226
+ constructor(message: string, details?: Record<string, unknown>);
77
227
  }
78
228
  declare class SerializationFailedError extends InternalError {
79
- constructor(message: string, details?: Record<string, any>);
229
+ constructor(message: string, details?: Record<string, unknown>);
80
230
  }
81
231
  declare class RaftApplyFailedError extends InternalError {
82
- constructor(message: string, details?: Record<string, any>);
232
+ constructor(message: string, details?: Record<string, unknown>);
83
233
  }
84
234
  declare class IndexOperationFailedError extends InternalError {
85
- constructor(message: string, details?: Record<string, any>);
235
+ constructor(message: string, details?: Record<string, unknown>);
86
236
  }
87
237
  declare class DocumentOperationFailedError extends InternalError {
88
- constructor(message: string, details?: Record<string, any>);
238
+ constructor(message: string, details?: Record<string, unknown>);
89
239
  }
90
240
  declare class BatchOperationFailedError extends InternalError {
91
- constructor(message: string, details?: Record<string, any>);
241
+ constructor(message: string, details?: Record<string, unknown>);
92
242
  }
93
243
  declare class SearchFailedError extends InternalError {
94
- constructor(message: string, details?: Record<string, any>);
244
+ constructor(message: string, details?: Record<string, unknown>);
95
245
  }
96
246
  declare function createBrightError(statusCode: number, errorResponse: BrightErrorResponse): BrightError;
97
247
  //#endregion
98
248
  //#region src/index.d.ts
99
- interface IndexConfig {
100
- id: string;
101
- primaryKey?: string;
102
- }
103
- interface SearchParams {
104
- q?: string;
105
- offset?: number;
106
- limit?: number;
107
- page?: number;
108
- sort?: string[];
109
- attributesToRetrieve?: string[];
110
- attributesToExclude?: string[];
111
- }
112
- interface SearchResponse<T = Record<string, any>> {
113
- hits: T[];
114
- totalHits: number;
115
- totalPages: number;
116
- }
117
- interface BrightClientOptions {
118
- baseUrl: string;
119
- apiKey?: string;
120
- fetch?: typeof fetch;
121
- }
122
- interface IndexHandle<T = Record<string, any>> {
249
+ interface IndexHandle<T = Record<string, unknown>> {
123
250
  readonly id: string;
124
251
  update(config: Partial<IndexConfig>): Promise<IndexConfig>;
125
252
  delete(): Promise<void>;
@@ -135,7 +262,12 @@ interface IndexHandle<T = Record<string, any>> {
135
262
  ids?: string[];
136
263
  filter?: string;
137
264
  }): Promise<void>;
138
- search(params?: SearchParams): Promise<SearchResponse<T>>;
265
+ search<Exclude extends keyof T = never>(params?: SearchParams<T, Exclude>): Promise<SearchResponse<T, Exclude>>;
266
+ listIngresses(): Promise<IngressConfig[]>;
267
+ createIngress(params: CreateIngressParams | TypedCreateIngressParams): Promise<IngressConfig>;
268
+ getIngress(ingressId: string): Promise<IngressConfig>;
269
+ updateIngress(ingressId: string, state: IngressState): Promise<IngressConfig>;
270
+ deleteIngress(ingressId: string): Promise<void>;
139
271
  }
140
272
  declare class BrightClient {
141
273
  private baseUrl;
@@ -146,22 +278,27 @@ declare class BrightClient {
146
278
  createIndex(id: string, primaryKey?: string): Promise<IndexConfig>;
147
279
  updateIndex(id: string, config: Partial<IndexConfig>): Promise<IndexConfig>;
148
280
  deleteIndex(id: string): Promise<void>;
149
- addDocuments<T = Record<string, any>>(indexId: string, documents: T[], options?: {
281
+ addDocuments<T = Record<string, unknown>>(indexId: string, documents: T[], options?: {
150
282
  format?: 'jsoneachrow';
151
283
  primaryKey?: string;
152
284
  }): Promise<{
153
285
  indexed: number;
154
286
  }>;
155
- updateDocument<T = Record<string, any>>(indexId: string, documentId: string, updates: Partial<T>): Promise<T>;
287
+ updateDocument<T = Record<string, unknown>>(indexId: string, documentId: string, updates: Partial<T>): Promise<T>;
156
288
  deleteDocument(indexId: string, documentId: string): Promise<void>;
157
289
  deleteDocuments(indexId: string, options: {
158
290
  ids?: string[];
159
291
  filter?: string;
160
292
  }): Promise<void>;
161
- search<T = Record<string, any>>(indexId: string, params?: SearchParams): Promise<SearchResponse<T>>;
162
- index<T = Record<string, any>>(indexId: string): IndexHandle<T>;
293
+ search<T = Record<string, unknown>, Exclude extends keyof T = never>(indexId: string, params?: SearchParams<T, Exclude>): Promise<SearchResponse<T, Exclude>>;
294
+ listIngresses(indexId: string): Promise<IngressConfig[]>;
295
+ createIngress(indexId: string, params: CreateIngressParams | TypedCreateIngressParams): Promise<IngressConfig>;
296
+ getIngress(indexId: string, ingressId: string): Promise<IngressConfig>;
297
+ updateIngress(indexId: string, ingressId: string, state: IngressState): Promise<IngressConfig>;
298
+ deleteIngress(indexId: string, ingressId: string): Promise<void>;
299
+ index<T = Record<string, unknown>>(indexId: string): IndexHandle<T>;
163
300
  }
164
301
  declare function createClient(options: BrightClientOptions): BrightClient;
165
302
  //#endregion
166
- export { AuthorizationError, BatchOperationFailedError, BrightClient, BrightClientOptions, BrightError, BrightErrorResponse, ClusterError, ClusterUnavailableError, ConflictError, ConflictingParametersError, DocumentNotFoundError, DocumentOperationFailedError, ErrorCode, IndexConfig, IndexHandle, IndexNotFoundError, IndexOperationFailedError, InsufficientPermissionsError, InternalError, InvalidFormatError, InvalidParameterError, InvalidRequestBodyError, LeaderOnlyOperationError, MissingParameterError, NotFoundError, NotLeaderError, ParseError, RaftApplyFailedError, ResourceAlreadyExistsError, SearchFailedError, SearchParams, SearchResponse, SerializationFailedError, UuidGenerationFailedError, ValidationError, createBrightError, createClient };
303
+ export { AuthorizationError, BatchOperationFailedError, BrightClient, BrightClientOptions, BrightError, BrightErrorResponse, ClusterError, ClusterUnavailableError, ConflictError, ConflictingParametersError, CreateIngressParams, CreatePostgresIngressParams, DocumentNotFoundError, DocumentOperationFailedError, ErrorCode, FieldFilter, FieldRangeFilter, GenericIngressResponse, IndexConfig, IndexHandle, IndexNotFoundError, IndexOperationFailedError, IngressConfig, IngressState, IngressStatistics, IngressStatus, InsufficientPermissionsError, InternalError, InvalidFormatError, InvalidParameterError, InvalidRequestBodyError, LeaderOnlyOperationError, MissingParameterError, NotFoundError, NotLeaderError, ParseError, PostgresIngressConfig, PostgresIngressResponse, RaftApplyFailedError, RangeFilter, ResourceAlreadyExistsError, SearchFailedError, SearchParams, SearchResponse, SerializationFailedError, SortDirection, SortField, TypedCreateIngressParams, UuidGenerationFailedError, ValidationError, createBrightError, createClient, field, must, mustNot, phrase, range };
167
304
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/ingress.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -1,125 +1,252 @@
1
+ //#region src/types.d.ts
2
+ interface IndexConfig {
3
+ id: string;
4
+ primaryKey?: string;
5
+ }
6
+ /** Field filter with optional boost: `field:value` or `field:value^boost` */
7
+ type FieldFilter<T> = { [K in keyof T]?: T[K] extends string | number | boolean | Date ? T[K] | {
8
+ value: T[K];
9
+ boost?: number;
10
+ } : never };
11
+ /** Numeric range filter for a field */
12
+ interface RangeFilter<T> {
13
+ gt?: T;
14
+ gte?: T;
15
+ lt?: T;
16
+ lte?: T;
17
+ }
18
+ /** Field range filters: `field:>value`, `field:>=value`, etc. */
19
+ type FieldRangeFilter<T> = { [K in keyof T]?: T[K] extends number | Date ? RangeFilter<T[K]> : never };
20
+ /** Sort direction for a field */
21
+ type SortDirection = 'asc' | 'desc';
22
+ /** Typed sort options */
23
+ type SortField<T> = keyof T | `-${string & keyof T}` | {
24
+ field: keyof T;
25
+ order: SortDirection;
26
+ };
27
+ interface SearchParams<T = Record<string, unknown>, Exclude extends keyof T = never> {
28
+ /** Query string (supports Bleve syntax: field:value, +required, -excluded, ^boost) */
29
+ q?: string;
30
+ /** Typed field filters (alternative to query string) */
31
+ filter?: FieldFilter<T>;
32
+ /** Typed range filters for numeric/date fields */
33
+ range?: FieldRangeFilter<T>;
34
+ /** Pagination offset */
35
+ offset?: number;
36
+ /** Results per page limit */
37
+ limit?: number;
38
+ /** Page number (1-indexed) */
39
+ page?: number;
40
+ /** Sort fields (prefix with - for descending) */
41
+ sort?: Array<SortField<T>>;
42
+ /** Fields to retrieve (defaults to all) */
43
+ attributesToRetrieve?: Array<keyof T>;
44
+ /** Fields to exclude from results */
45
+ attributesToExclude?: Exclude[];
46
+ }
47
+ /** Search response with excluded fields removed from type */
48
+ interface SearchResponse<T = Record<string, unknown>, Exclude extends keyof T = never> {
49
+ hits: Array<Omit<T, Exclude>>;
50
+ totalHits: number;
51
+ totalPages: number;
52
+ }
53
+ /**
54
+ * Build a field query with optional boost
55
+ * @example field('name', 'water', 5) => 'name:water^5'
56
+ */
57
+ declare function field<T, K$1 extends keyof T>(name: K$1, value: T[K$1], boost?: number): string;
58
+ /**
59
+ * Build a required (MUST) clause
60
+ * @example must('name:water') => '+name:water'
61
+ */
62
+ declare function must(query: string): string;
63
+ /**
64
+ * Build an excluded (MUST NOT) clause
65
+ * @example mustNot('name:water') => '-name:water'
66
+ */
67
+ declare function mustNot(query: string): string;
68
+ /**
69
+ * Build a phrase query
70
+ * @example phrase('light beer') => '"light beer"'
71
+ */
72
+ declare function phrase(text: string): string;
73
+ /**
74
+ * Build a range query
75
+ * @example range('price', { gte: 10, lt: 100 }) => 'price:>=10 price:<100'
76
+ */
77
+ declare function range<T, K$1 extends keyof T>(name: K$1, filter: RangeFilter<T[K$1]>): string;
78
+ interface BrightClientOptions {
79
+ baseUrl: string;
80
+ apiKey?: string;
81
+ fetch?: typeof fetch;
82
+ }
83
+ //#endregion
84
+ //#region src/ingress.d.ts
85
+ type IngressState = 'running' | 'paused' | 'resyncing';
86
+ type IngressStatus = 'stopped' | 'starting' | 'running' | 'syncing' | 'paused' | 'failed';
87
+ interface PostgresIngressConfig {
88
+ /** PostgreSQL connection string (required) */
89
+ dsn: string;
90
+ /** Table name to sync (required) */
91
+ table: string;
92
+ /** PostgreSQL schema (default: "public") */
93
+ schema?: string;
94
+ /** Primary key column (default: "id") */
95
+ primary_key?: string;
96
+ /** Columns to sync, empty means all columns (default: all) */
97
+ columns?: string[];
98
+ /** Rename columns via mapping */
99
+ column_mapping?: Record<string, string>;
100
+ /** Timestamp column for change detection (default: "updated_at") */
101
+ updated_at_column?: string;
102
+ /** Filter rows with SQL WHERE condition */
103
+ where_clause?: string;
104
+ /** Sync mode: "polling" or "listen" (default: "polling") */
105
+ sync_mode?: 'polling' | 'listen';
106
+ /** Poll interval, e.g. "10s", "1m" (default: "30s") */
107
+ poll_interval?: string;
108
+ /** Documents per batch (default: 1000) */
109
+ batch_size?: number;
110
+ /** Auto-create PostgreSQL triggers for LISTEN mode (default: true) */
111
+ auto_triggers?: boolean;
112
+ }
113
+ interface IngressStatistics {
114
+ last_sync_at?: string;
115
+ documents_synced: number;
116
+ documents_deleted: number;
117
+ full_sync_complete: boolean;
118
+ last_error?: string;
119
+ error_count: number;
120
+ }
121
+ interface IngressBase {
122
+ id: string;
123
+ index_id: string;
124
+ status: IngressStatus;
125
+ statistics: IngressStatistics;
126
+ }
127
+ interface PostgresIngressResponse extends IngressBase {
128
+ type: 'postgres';
129
+ config: PostgresIngressConfig;
130
+ }
131
+ /** Fallback for unknown ingress types */
132
+ interface GenericIngressResponse extends IngressBase {
133
+ type: string;
134
+ config: Record<string, unknown>;
135
+ }
136
+ /** Discriminated union of all ingress response types */
137
+ type IngressConfig = PostgresIngressResponse | GenericIngressResponse;
138
+ interface CreateIngressParams {
139
+ id: string;
140
+ type: string;
141
+ config: Record<string, unknown>;
142
+ }
143
+ interface CreatePostgresIngressParams {
144
+ id: string;
145
+ type: 'postgres';
146
+ config: PostgresIngressConfig;
147
+ }
148
+ /** Union of all typed ingress creation params. Use CreateIngressParams for generic/unknown types. */
149
+ type TypedCreateIngressParams = CreatePostgresIngressParams;
150
+ //#endregion
1
151
  //#region src/errors.d.ts
2
152
  type ErrorCode = 'MISSING_PARAMETER' | 'INVALID_PARAMETER' | 'INVALID_REQUEST_BODY' | 'CONFLICTING_PARAMETERS' | 'INVALID_FORMAT' | 'PARSE_ERROR' | 'INDEX_NOT_FOUND' | 'DOCUMENT_NOT_FOUND' | 'NOT_LEADER' | 'CLUSTER_UNAVAILABLE' | 'INSUFFICIENT_PERMISSIONS' | 'LEADER_ONLY_OPERATION' | 'RESOURCE_ALREADY_EXISTS' | 'UUID_GENERATION_FAILED' | 'SERIALIZATION_FAILED' | 'RAFT_APPLY_FAILED' | 'INDEX_OPERATION_FAILED' | 'DOCUMENT_OPERATION_FAILED' | 'BATCH_OPERATION_FAILED' | 'SEARCH_FAILED' | 'INTERNAL_ERROR';
3
153
  interface BrightErrorResponse {
4
154
  error: string;
5
155
  code?: ErrorCode;
6
- details?: Record<string, any>;
156
+ details?: Record<string, unknown>;
7
157
  }
8
158
  declare class BrightError extends Error {
9
159
  readonly code?: ErrorCode;
10
160
  readonly statusCode: number;
11
- readonly details?: Record<string, any>;
12
- constructor(message: string, statusCode: number, code?: ErrorCode, details?: Record<string, any>);
161
+ readonly details?: Record<string, unknown>;
162
+ constructor(message: string, statusCode: number, code?: ErrorCode, details?: Record<string, unknown>);
13
163
  toJSON(): BrightErrorResponse & {
14
164
  statusCode: number;
15
165
  };
16
166
  }
17
167
  declare class ValidationError extends BrightError {
18
- constructor(message: string, code?: ErrorCode, details?: Record<string, any>);
168
+ constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>);
19
169
  }
20
170
  declare class MissingParameterError extends ValidationError {
21
- constructor(message: string, details?: Record<string, any>);
171
+ constructor(message: string, details?: Record<string, unknown>);
22
172
  }
23
173
  declare class InvalidParameterError extends ValidationError {
24
- constructor(message: string, details?: Record<string, any>);
174
+ constructor(message: string, details?: Record<string, unknown>);
25
175
  }
26
176
  declare class InvalidRequestBodyError extends ValidationError {
27
- constructor(message: string, details?: Record<string, any>);
177
+ constructor(message: string, details?: Record<string, unknown>);
28
178
  }
29
179
  declare class ConflictingParametersError extends ValidationError {
30
- constructor(message: string, details?: Record<string, any>);
180
+ constructor(message: string, details?: Record<string, unknown>);
31
181
  }
32
182
  declare class InvalidFormatError extends ValidationError {
33
- constructor(message: string, details?: Record<string, any>);
183
+ constructor(message: string, details?: Record<string, unknown>);
34
184
  }
35
185
  declare class ParseError extends ValidationError {
36
- constructor(message: string, details?: Record<string, any>);
186
+ constructor(message: string, details?: Record<string, unknown>);
37
187
  }
38
188
  declare class NotFoundError extends BrightError {
39
- constructor(message: string, code?: ErrorCode, details?: Record<string, any>);
189
+ constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>);
40
190
  }
41
191
  declare class IndexNotFoundError extends NotFoundError {
42
- constructor(message: string, details?: Record<string, any>);
192
+ constructor(message: string, details?: Record<string, unknown>);
43
193
  }
44
194
  declare class DocumentNotFoundError extends NotFoundError {
45
- constructor(message: string, details?: Record<string, any>);
195
+ constructor(message: string, details?: Record<string, unknown>);
46
196
  }
47
197
  declare class ClusterError extends BrightError {
48
- constructor(message: string, statusCode: number, code?: ErrorCode, details?: Record<string, any>);
198
+ constructor(message: string, statusCode: number, code?: ErrorCode, details?: Record<string, unknown>);
49
199
  }
50
200
  declare class NotLeaderError extends ClusterError {
51
201
  readonly leaderUrl?: string;
52
- constructor(message: string, leaderUrl?: string, details?: Record<string, any>);
202
+ constructor(message: string, leaderUrl?: string, details?: Record<string, unknown>);
53
203
  }
54
204
  declare class ClusterUnavailableError extends ClusterError {
55
- constructor(message: string, details?: Record<string, any>);
205
+ constructor(message: string, details?: Record<string, unknown>);
56
206
  }
57
207
  declare class AuthorizationError extends BrightError {
58
- constructor(message: string, code?: ErrorCode, details?: Record<string, any>);
208
+ constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>);
59
209
  }
60
210
  declare class InsufficientPermissionsError extends AuthorizationError {
61
- constructor(message: string, details?: Record<string, any>);
211
+ constructor(message: string, details?: Record<string, unknown>);
62
212
  }
63
213
  declare class LeaderOnlyOperationError extends AuthorizationError {
64
- constructor(message: string, details?: Record<string, any>);
214
+ constructor(message: string, details?: Record<string, unknown>);
65
215
  }
66
216
  declare class ConflictError extends BrightError {
67
- constructor(message: string, code?: ErrorCode, details?: Record<string, any>);
217
+ constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>);
68
218
  }
69
219
  declare class ResourceAlreadyExistsError extends ConflictError {
70
- constructor(message: string, details?: Record<string, any>);
220
+ constructor(message: string, details?: Record<string, unknown>);
71
221
  }
72
222
  declare class InternalError extends BrightError {
73
- constructor(message: string, code?: ErrorCode, details?: Record<string, any>);
223
+ constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>);
74
224
  }
75
225
  declare class UuidGenerationFailedError extends InternalError {
76
- constructor(message: string, details?: Record<string, any>);
226
+ constructor(message: string, details?: Record<string, unknown>);
77
227
  }
78
228
  declare class SerializationFailedError extends InternalError {
79
- constructor(message: string, details?: Record<string, any>);
229
+ constructor(message: string, details?: Record<string, unknown>);
80
230
  }
81
231
  declare class RaftApplyFailedError extends InternalError {
82
- constructor(message: string, details?: Record<string, any>);
232
+ constructor(message: string, details?: Record<string, unknown>);
83
233
  }
84
234
  declare class IndexOperationFailedError extends InternalError {
85
- constructor(message: string, details?: Record<string, any>);
235
+ constructor(message: string, details?: Record<string, unknown>);
86
236
  }
87
237
  declare class DocumentOperationFailedError extends InternalError {
88
- constructor(message: string, details?: Record<string, any>);
238
+ constructor(message: string, details?: Record<string, unknown>);
89
239
  }
90
240
  declare class BatchOperationFailedError extends InternalError {
91
- constructor(message: string, details?: Record<string, any>);
241
+ constructor(message: string, details?: Record<string, unknown>);
92
242
  }
93
243
  declare class SearchFailedError extends InternalError {
94
- constructor(message: string, details?: Record<string, any>);
244
+ constructor(message: string, details?: Record<string, unknown>);
95
245
  }
96
246
  declare function createBrightError(statusCode: number, errorResponse: BrightErrorResponse): BrightError;
97
247
  //#endregion
98
248
  //#region src/index.d.ts
99
- interface IndexConfig {
100
- id: string;
101
- primaryKey?: string;
102
- }
103
- interface SearchParams {
104
- q?: string;
105
- offset?: number;
106
- limit?: number;
107
- page?: number;
108
- sort?: string[];
109
- attributesToRetrieve?: string[];
110
- attributesToExclude?: string[];
111
- }
112
- interface SearchResponse<T = Record<string, any>> {
113
- hits: T[];
114
- totalHits: number;
115
- totalPages: number;
116
- }
117
- interface BrightClientOptions {
118
- baseUrl: string;
119
- apiKey?: string;
120
- fetch?: typeof fetch;
121
- }
122
- interface IndexHandle<T = Record<string, any>> {
249
+ interface IndexHandle<T = Record<string, unknown>> {
123
250
  readonly id: string;
124
251
  update(config: Partial<IndexConfig>): Promise<IndexConfig>;
125
252
  delete(): Promise<void>;
@@ -135,7 +262,12 @@ interface IndexHandle<T = Record<string, any>> {
135
262
  ids?: string[];
136
263
  filter?: string;
137
264
  }): Promise<void>;
138
- search(params?: SearchParams): Promise<SearchResponse<T>>;
265
+ search<Exclude extends keyof T = never>(params?: SearchParams<T, Exclude>): Promise<SearchResponse<T, Exclude>>;
266
+ listIngresses(): Promise<IngressConfig[]>;
267
+ createIngress(params: CreateIngressParams | TypedCreateIngressParams): Promise<IngressConfig>;
268
+ getIngress(ingressId: string): Promise<IngressConfig>;
269
+ updateIngress(ingressId: string, state: IngressState): Promise<IngressConfig>;
270
+ deleteIngress(ingressId: string): Promise<void>;
139
271
  }
140
272
  declare class BrightClient {
141
273
  private baseUrl;
@@ -146,22 +278,27 @@ declare class BrightClient {
146
278
  createIndex(id: string, primaryKey?: string): Promise<IndexConfig>;
147
279
  updateIndex(id: string, config: Partial<IndexConfig>): Promise<IndexConfig>;
148
280
  deleteIndex(id: string): Promise<void>;
149
- addDocuments<T = Record<string, any>>(indexId: string, documents: T[], options?: {
281
+ addDocuments<T = Record<string, unknown>>(indexId: string, documents: T[], options?: {
150
282
  format?: 'jsoneachrow';
151
283
  primaryKey?: string;
152
284
  }): Promise<{
153
285
  indexed: number;
154
286
  }>;
155
- updateDocument<T = Record<string, any>>(indexId: string, documentId: string, updates: Partial<T>): Promise<T>;
287
+ updateDocument<T = Record<string, unknown>>(indexId: string, documentId: string, updates: Partial<T>): Promise<T>;
156
288
  deleteDocument(indexId: string, documentId: string): Promise<void>;
157
289
  deleteDocuments(indexId: string, options: {
158
290
  ids?: string[];
159
291
  filter?: string;
160
292
  }): Promise<void>;
161
- search<T = Record<string, any>>(indexId: string, params?: SearchParams): Promise<SearchResponse<T>>;
162
- index<T = Record<string, any>>(indexId: string): IndexHandle<T>;
293
+ search<T = Record<string, unknown>, Exclude extends keyof T = never>(indexId: string, params?: SearchParams<T, Exclude>): Promise<SearchResponse<T, Exclude>>;
294
+ listIngresses(indexId: string): Promise<IngressConfig[]>;
295
+ createIngress(indexId: string, params: CreateIngressParams | TypedCreateIngressParams): Promise<IngressConfig>;
296
+ getIngress(indexId: string, ingressId: string): Promise<IngressConfig>;
297
+ updateIngress(indexId: string, ingressId: string, state: IngressState): Promise<IngressConfig>;
298
+ deleteIngress(indexId: string, ingressId: string): Promise<void>;
299
+ index<T = Record<string, unknown>>(indexId: string): IndexHandle<T>;
163
300
  }
164
301
  declare function createClient(options: BrightClientOptions): BrightClient;
165
302
  //#endregion
166
- export { AuthorizationError, BatchOperationFailedError, BrightClient, BrightClientOptions, BrightError, BrightErrorResponse, ClusterError, ClusterUnavailableError, ConflictError, ConflictingParametersError, DocumentNotFoundError, DocumentOperationFailedError, ErrorCode, IndexConfig, IndexHandle, IndexNotFoundError, IndexOperationFailedError, InsufficientPermissionsError, InternalError, InvalidFormatError, InvalidParameterError, InvalidRequestBodyError, LeaderOnlyOperationError, MissingParameterError, NotFoundError, NotLeaderError, ParseError, RaftApplyFailedError, ResourceAlreadyExistsError, SearchFailedError, SearchParams, SearchResponse, SerializationFailedError, UuidGenerationFailedError, ValidationError, createBrightError, createClient };
303
+ export { AuthorizationError, BatchOperationFailedError, BrightClient, BrightClientOptions, BrightError, BrightErrorResponse, ClusterError, ClusterUnavailableError, ConflictError, ConflictingParametersError, CreateIngressParams, CreatePostgresIngressParams, DocumentNotFoundError, DocumentOperationFailedError, ErrorCode, FieldFilter, FieldRangeFilter, GenericIngressResponse, IndexConfig, IndexHandle, IndexNotFoundError, IndexOperationFailedError, IngressConfig, IngressState, IngressStatistics, IngressStatus, InsufficientPermissionsError, InternalError, InvalidFormatError, InvalidParameterError, InvalidRequestBodyError, LeaderOnlyOperationError, MissingParameterError, NotFoundError, NotLeaderError, ParseError, PostgresIngressConfig, PostgresIngressResponse, RaftApplyFailedError, RangeFilter, ResourceAlreadyExistsError, SearchFailedError, SearchParams, SearchResponse, SerializationFailedError, SortDirection, SortField, TypedCreateIngressParams, UuidGenerationFailedError, ValidationError, createBrightError, createClient, field, must, mustNot, phrase, range };
167
304
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/ingress.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -211,7 +211,7 @@ function createBrightError(statusCode, errorResponse) {
211
211
  case "PARSE_ERROR": return new ParseError(message, details);
212
212
  case "INDEX_NOT_FOUND": return new IndexNotFoundError(message, details);
213
213
  case "DOCUMENT_NOT_FOUND": return new DocumentNotFoundError(message, details);
214
- case "NOT_LEADER": return new NotLeaderError(message, details?.leaderUrl, details);
214
+ case "NOT_LEADER": return new NotLeaderError(message, typeof details?.leaderUrl === "string" ? details.leaderUrl : void 0, details);
215
215
  case "CLUSTER_UNAVAILABLE": return new ClusterUnavailableError(message, details);
216
216
  case "INSUFFICIENT_PERMISSIONS": return new InsufficientPermissionsError(message, details);
217
217
  case "LEADER_ONLY_OPERATION": return new LeaderOnlyOperationError(message, details);
@@ -237,8 +237,76 @@ function createBrightError(statusCode, errorResponse) {
237
237
  }
238
238
  }
239
239
 
240
+ //#endregion
241
+ //#region src/types.ts
242
+ /**
243
+ * Build a field query with optional boost
244
+ * @example field('name', 'water', 5) => 'name:water^5'
245
+ */
246
+ function field(name, value, boost) {
247
+ const base = `${String(name)}:${String(value)}`;
248
+ return boost ? `${base}^${boost}` : base;
249
+ }
250
+ /**
251
+ * Build a required (MUST) clause
252
+ * @example must('name:water') => '+name:water'
253
+ */
254
+ function must(query) {
255
+ return `+${query}`;
256
+ }
257
+ /**
258
+ * Build an excluded (MUST NOT) clause
259
+ * @example mustNot('name:water') => '-name:water'
260
+ */
261
+ function mustNot(query) {
262
+ return `-${query}`;
263
+ }
264
+ /**
265
+ * Build a phrase query
266
+ * @example phrase('light beer') => '"light beer"'
267
+ */
268
+ function phrase(text) {
269
+ return `"${text}"`;
270
+ }
271
+ /**
272
+ * Build a range query
273
+ * @example range('price', { gte: 10, lt: 100 }) => 'price:>=10 price:<100'
274
+ */
275
+ function range(name, filter) {
276
+ const parts = [];
277
+ const n = String(name);
278
+ if (filter.gt !== void 0) parts.push(`${n}:>${filter.gt}`);
279
+ if (filter.gte !== void 0) parts.push(`${n}:>=${filter.gte}`);
280
+ if (filter.lt !== void 0) parts.push(`${n}:<${filter.lt}`);
281
+ if (filter.lte !== void 0) parts.push(`${n}:<=${filter.lte}`);
282
+ return parts.join(" ");
283
+ }
284
+
240
285
  //#endregion
241
286
  //#region src/index.ts
287
+ function buildQueryFromFilters(filter, range$1) {
288
+ const parts = [];
289
+ if (filter) for (const [key, val] of Object.entries(filter)) {
290
+ if (val === void 0) continue;
291
+ if (typeof val === "object" && val !== null && "value" in val) {
292
+ const { value, boost } = val;
293
+ parts.push(boost ? `${key}:${value}^${boost}` : `${key}:${value}`);
294
+ } else parts.push(`${key}:${val}`);
295
+ }
296
+ if (range$1) for (const [key, rangeVal] of Object.entries(range$1)) {
297
+ if (rangeVal === void 0) continue;
298
+ const r = rangeVal;
299
+ if (r.gt !== void 0) parts.push(`${key}:>${r.gt}`);
300
+ if (r.gte !== void 0) parts.push(`${key}:>=${r.gte}`);
301
+ if (r.lt !== void 0) parts.push(`${key}:<${r.lt}`);
302
+ if (r.lte !== void 0) parts.push(`${key}:<=${r.lte}`);
303
+ }
304
+ return parts.join(" ");
305
+ }
306
+ function normalizeSortField(sort) {
307
+ if (typeof sort === "object" && sort !== null && "field" in sort) return sort.order === "desc" ? `-${String(sort.field)}` : String(sort.field);
308
+ return String(sort);
309
+ }
242
310
  var BrightClient = class {
243
311
  constructor(options) {
244
312
  this.baseUrl = options.baseUrl.replace(/\/$/, "");
@@ -303,15 +371,38 @@ var BrightClient = class {
303
371
  }
304
372
  async search(indexId, params) {
305
373
  const searchParams = new URLSearchParams();
306
- if (params?.q) searchParams.append("q", params.q);
374
+ const filterQuery = buildQueryFromFilters(params?.filter, params?.range);
375
+ const fullQuery = [params?.q, filterQuery].filter(Boolean).join(" ");
376
+ if (fullQuery) searchParams.append("q", fullQuery);
307
377
  if (params?.offset) searchParams.append("offset", params.offset.toString());
308
378
  if (params?.limit) searchParams.append("limit", params.limit.toString());
309
379
  if (params?.page) searchParams.append("page", params.page.toString());
310
- if (params?.sort) params.sort.forEach((s) => searchParams.append("sort[]", s));
311
- if (params?.attributesToRetrieve) params.attributesToRetrieve.forEach((attr) => searchParams.append("attributesToRetrieve[]", attr));
312
- if (params?.attributesToExclude) params.attributesToExclude.forEach((attr) => searchParams.append("attributesToExclude[]", attr));
380
+ if (params?.sort) params.sort.forEach((s) => searchParams.append("sort[]", normalizeSortField(s)));
381
+ if (params?.attributesToRetrieve) params.attributesToRetrieve.forEach((attr) => searchParams.append("attributesToRetrieve[]", String(attr)));
382
+ if (params?.attributesToExclude) params.attributesToExclude.forEach((attr) => searchParams.append("attributesToExclude[]", String(attr)));
313
383
  return this.request(`/indexes/${indexId}/searches?${searchParams}`, { method: "POST" });
314
384
  }
385
+ async listIngresses(indexId) {
386
+ return (await this.request(`/indexes/${indexId}/ingresses`)).ingresses;
387
+ }
388
+ async createIngress(indexId, params) {
389
+ return this.request(`/indexes/${indexId}/ingresses`, {
390
+ method: "POST",
391
+ body: JSON.stringify(params)
392
+ });
393
+ }
394
+ async getIngress(indexId, ingressId) {
395
+ return this.request(`/indexes/${indexId}/ingresses/${ingressId}`);
396
+ }
397
+ async updateIngress(indexId, ingressId, state) {
398
+ return this.request(`/indexes/${indexId}/ingresses/${ingressId}`, {
399
+ method: "PATCH",
400
+ body: JSON.stringify({ state })
401
+ });
402
+ }
403
+ async deleteIngress(indexId, ingressId) {
404
+ return this.request(`/indexes/${indexId}/ingresses/${ingressId}`, { method: "DELETE" });
405
+ }
315
406
  index(indexId) {
316
407
  return {
317
408
  id: indexId,
@@ -321,7 +412,12 @@ var BrightClient = class {
321
412
  updateDocument: (documentId, updates) => this.updateDocument(indexId, documentId, updates),
322
413
  deleteDocument: (documentId) => this.deleteDocument(indexId, documentId),
323
414
  deleteDocuments: (options) => this.deleteDocuments(indexId, options),
324
- search: (params) => this.search(indexId, params)
415
+ search: (params) => this.search(indexId, params),
416
+ listIngresses: () => this.listIngresses(indexId),
417
+ createIngress: (params) => this.createIngress(indexId, params),
418
+ getIngress: (ingressId) => this.getIngress(indexId, ingressId),
419
+ updateIngress: (ingressId, state) => this.updateIngress(indexId, ingressId, state),
420
+ deleteIngress: (ingressId) => this.deleteIngress(indexId, ingressId)
325
421
  };
326
422
  }
327
423
  };
@@ -330,5 +426,5 @@ function createClient(options) {
330
426
  }
331
427
 
332
428
  //#endregion
333
- export { AuthorizationError, BatchOperationFailedError, BrightClient, BrightError, ClusterError, ClusterUnavailableError, ConflictError, ConflictingParametersError, DocumentNotFoundError, DocumentOperationFailedError, IndexNotFoundError, IndexOperationFailedError, InsufficientPermissionsError, InternalError, InvalidFormatError, InvalidParameterError, InvalidRequestBodyError, LeaderOnlyOperationError, MissingParameterError, NotFoundError, NotLeaderError, ParseError, RaftApplyFailedError, ResourceAlreadyExistsError, SearchFailedError, SerializationFailedError, UuidGenerationFailedError, ValidationError, createBrightError, createClient };
429
+ export { AuthorizationError, BatchOperationFailedError, BrightClient, BrightError, ClusterError, ClusterUnavailableError, ConflictError, ConflictingParametersError, DocumentNotFoundError, DocumentOperationFailedError, IndexNotFoundError, IndexOperationFailedError, InsufficientPermissionsError, InternalError, InvalidFormatError, InvalidParameterError, InvalidRequestBodyError, LeaderOnlyOperationError, MissingParameterError, NotFoundError, NotLeaderError, ParseError, RaftApplyFailedError, ResourceAlreadyExistsError, SearchFailedError, SerializationFailedError, UuidGenerationFailedError, ValidationError, createBrightError, createClient, field, must, mustNot, phrase, range };
334
430
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/errors.ts","../src/index.ts"],"sourcesContent":["export type ErrorCode =\n // Validation Errors (400)\n | 'MISSING_PARAMETER'\n | 'INVALID_PARAMETER'\n | 'INVALID_REQUEST_BODY'\n | 'CONFLICTING_PARAMETERS'\n | 'INVALID_FORMAT'\n | 'PARSE_ERROR'\n // Not Found Errors (404)\n | 'INDEX_NOT_FOUND'\n | 'DOCUMENT_NOT_FOUND'\n // Cluster Errors (307/503)\n | 'NOT_LEADER'\n | 'CLUSTER_UNAVAILABLE'\n // Authorization Errors (403)\n | 'INSUFFICIENT_PERMISSIONS'\n | 'LEADER_ONLY_OPERATION'\n // Resource Conflict Errors (409)\n | 'RESOURCE_ALREADY_EXISTS'\n // Internal Errors (500)\n | 'UUID_GENERATION_FAILED'\n | 'SERIALIZATION_FAILED'\n | 'RAFT_APPLY_FAILED'\n | 'INDEX_OPERATION_FAILED'\n | 'DOCUMENT_OPERATION_FAILED'\n | 'BATCH_OPERATION_FAILED'\n | 'SEARCH_FAILED'\n | 'INTERNAL_ERROR';\n\nexport interface BrightErrorResponse {\n error: string;\n code?: ErrorCode;\n details?: Record<string, any>;\n}\n\nexport class BrightError extends Error {\n public readonly code?: ErrorCode;\n public readonly statusCode: number;\n public readonly details?: Record<string, any>;\n\n constructor(message: string, statusCode: number, code?: ErrorCode, details?: Record<string, any>) {\n super(message);\n this.name = 'BrightError';\n this.code = code;\n this.statusCode = statusCode;\n this.details = details;\n Object.setPrototypeOf(this, BrightError.prototype);\n }\n\n toJSON(): BrightErrorResponse & { statusCode: number } {\n return {\n error: this.message,\n code: this.code,\n details: this.details,\n statusCode: this.statusCode,\n };\n }\n}\n\n// Validation Errors (400)\nexport class ValidationError extends BrightError {\n constructor(message: string, code?: ErrorCode, details?: Record<string, any>) {\n super(message, 400, code, details);\n this.name = 'ValidationError';\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport class MissingParameterError extends ValidationError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'MISSING_PARAMETER', details);\n this.name = 'MissingParameterError';\n Object.setPrototypeOf(this, MissingParameterError.prototype);\n }\n}\n\nexport class InvalidParameterError extends ValidationError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'INVALID_PARAMETER', details);\n this.name = 'InvalidParameterError';\n Object.setPrototypeOf(this, InvalidParameterError.prototype);\n }\n}\n\nexport class InvalidRequestBodyError extends ValidationError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'INVALID_REQUEST_BODY', details);\n this.name = 'InvalidRequestBodyError';\n Object.setPrototypeOf(this, InvalidRequestBodyError.prototype);\n }\n}\n\nexport class ConflictingParametersError extends ValidationError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'CONFLICTING_PARAMETERS', details);\n this.name = 'ConflictingParametersError';\n Object.setPrototypeOf(this, ConflictingParametersError.prototype);\n }\n}\n\nexport class InvalidFormatError extends ValidationError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'INVALID_FORMAT', details);\n this.name = 'InvalidFormatError';\n Object.setPrototypeOf(this, InvalidFormatError.prototype);\n }\n}\n\nexport class ParseError extends ValidationError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'PARSE_ERROR', details);\n this.name = 'ParseError';\n Object.setPrototypeOf(this, ParseError.prototype);\n }\n}\n\n// Not Found Errors (404)\nexport class NotFoundError extends BrightError {\n constructor(message: string, code?: ErrorCode, details?: Record<string, any>) {\n super(message, 404, code, details);\n this.name = 'NotFoundError';\n Object.setPrototypeOf(this, NotFoundError.prototype);\n }\n}\n\nexport class IndexNotFoundError extends NotFoundError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'INDEX_NOT_FOUND', details);\n this.name = 'IndexNotFoundError';\n Object.setPrototypeOf(this, IndexNotFoundError.prototype);\n }\n}\n\nexport class DocumentNotFoundError extends NotFoundError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'DOCUMENT_NOT_FOUND', details);\n this.name = 'DocumentNotFoundError';\n Object.setPrototypeOf(this, DocumentNotFoundError.prototype);\n }\n}\n\n// Cluster Errors\nexport class ClusterError extends BrightError {\n constructor(message: string, statusCode: number, code?: ErrorCode, details?: Record<string, any>) {\n super(message, statusCode, code, details);\n this.name = 'ClusterError';\n Object.setPrototypeOf(this, ClusterError.prototype);\n }\n}\n\nexport class NotLeaderError extends ClusterError {\n public readonly leaderUrl?: string;\n\n constructor(message: string, leaderUrl?: string, details?: Record<string, any>) {\n super(message, 307, 'NOT_LEADER', details);\n this.name = 'NotLeaderError';\n this.leaderUrl = leaderUrl;\n Object.setPrototypeOf(this, NotLeaderError.prototype);\n }\n}\n\nexport class ClusterUnavailableError extends ClusterError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 503, 'CLUSTER_UNAVAILABLE', details);\n this.name = 'ClusterUnavailableError';\n Object.setPrototypeOf(this, ClusterUnavailableError.prototype);\n }\n}\n\n// Authorization Errors (403)\nexport class AuthorizationError extends BrightError {\n constructor(message: string, code?: ErrorCode, details?: Record<string, any>) {\n super(message, 403, code, details);\n this.name = 'AuthorizationError';\n Object.setPrototypeOf(this, AuthorizationError.prototype);\n }\n}\n\nexport class InsufficientPermissionsError extends AuthorizationError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'INSUFFICIENT_PERMISSIONS', details);\n this.name = 'InsufficientPermissionsError';\n Object.setPrototypeOf(this, InsufficientPermissionsError.prototype);\n }\n}\n\nexport class LeaderOnlyOperationError extends AuthorizationError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'LEADER_ONLY_OPERATION', details);\n this.name = 'LeaderOnlyOperationError';\n Object.setPrototypeOf(this, LeaderOnlyOperationError.prototype);\n }\n}\n\n// Resource Conflict Errors (409)\nexport class ConflictError extends BrightError {\n constructor(message: string, code?: ErrorCode, details?: Record<string, any>) {\n super(message, 409, code, details);\n this.name = 'ConflictError';\n Object.setPrototypeOf(this, ConflictError.prototype);\n }\n}\n\nexport class ResourceAlreadyExistsError extends ConflictError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'RESOURCE_ALREADY_EXISTS', details);\n this.name = 'ResourceAlreadyExistsError';\n Object.setPrototypeOf(this, ResourceAlreadyExistsError.prototype);\n }\n}\n\n// Internal Errors (500)\nexport class InternalError extends BrightError {\n constructor(message: string, code?: ErrorCode, details?: Record<string, any>) {\n super(message, 500, code, details);\n this.name = 'InternalError';\n Object.setPrototypeOf(this, InternalError.prototype);\n }\n}\n\nexport class UuidGenerationFailedError extends InternalError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'UUID_GENERATION_FAILED', details);\n this.name = 'UuidGenerationFailedError';\n Object.setPrototypeOf(this, UuidGenerationFailedError.prototype);\n }\n}\n\nexport class SerializationFailedError extends InternalError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'SERIALIZATION_FAILED', details);\n this.name = 'SerializationFailedError';\n Object.setPrototypeOf(this, SerializationFailedError.prototype);\n }\n}\n\nexport class RaftApplyFailedError extends InternalError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'RAFT_APPLY_FAILED', details);\n this.name = 'RaftApplyFailedError';\n Object.setPrototypeOf(this, RaftApplyFailedError.prototype);\n }\n}\n\nexport class IndexOperationFailedError extends InternalError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'INDEX_OPERATION_FAILED', details);\n this.name = 'IndexOperationFailedError';\n Object.setPrototypeOf(this, IndexOperationFailedError.prototype);\n }\n}\n\nexport class DocumentOperationFailedError extends InternalError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'DOCUMENT_OPERATION_FAILED', details);\n this.name = 'DocumentOperationFailedError';\n Object.setPrototypeOf(this, DocumentOperationFailedError.prototype);\n }\n}\n\nexport class BatchOperationFailedError extends InternalError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'BATCH_OPERATION_FAILED', details);\n this.name = 'BatchOperationFailedError';\n Object.setPrototypeOf(this, BatchOperationFailedError.prototype);\n }\n}\n\nexport class SearchFailedError extends InternalError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'SEARCH_FAILED', details);\n this.name = 'SearchFailedError';\n Object.setPrototypeOf(this, SearchFailedError.prototype);\n }\n}\n\n// Error factory function to create appropriate error instances\nexport function createBrightError(\n statusCode: number,\n errorResponse: BrightErrorResponse\n): BrightError {\n const { error: message, code, details } = errorResponse;\n\n // Match by error code first\n if (code) {\n switch (code) {\n // Validation Errors\n case 'MISSING_PARAMETER':\n return new MissingParameterError(message, details);\n case 'INVALID_PARAMETER':\n return new InvalidParameterError(message, details);\n case 'INVALID_REQUEST_BODY':\n return new InvalidRequestBodyError(message, details);\n case 'CONFLICTING_PARAMETERS':\n return new ConflictingParametersError(message, details);\n case 'INVALID_FORMAT':\n return new InvalidFormatError(message, details);\n case 'PARSE_ERROR':\n return new ParseError(message, details);\n\n // Not Found Errors\n case 'INDEX_NOT_FOUND':\n return new IndexNotFoundError(message, details);\n case 'DOCUMENT_NOT_FOUND':\n return new DocumentNotFoundError(message, details);\n\n // Cluster Errors\n case 'NOT_LEADER':\n return new NotLeaderError(message, details?.leaderUrl, details);\n case 'CLUSTER_UNAVAILABLE':\n return new ClusterUnavailableError(message, details);\n\n // Authorization Errors\n case 'INSUFFICIENT_PERMISSIONS':\n return new InsufficientPermissionsError(message, details);\n case 'LEADER_ONLY_OPERATION':\n return new LeaderOnlyOperationError(message, details);\n\n // Conflict Errors\n case 'RESOURCE_ALREADY_EXISTS':\n return new ResourceAlreadyExistsError(message, details);\n\n // Internal Errors\n case 'UUID_GENERATION_FAILED':\n return new UuidGenerationFailedError(message, details);\n case 'SERIALIZATION_FAILED':\n return new SerializationFailedError(message, details);\n case 'RAFT_APPLY_FAILED':\n return new RaftApplyFailedError(message, details);\n case 'INDEX_OPERATION_FAILED':\n return new IndexOperationFailedError(message, details);\n case 'DOCUMENT_OPERATION_FAILED':\n return new DocumentOperationFailedError(message, details);\n case 'BATCH_OPERATION_FAILED':\n return new BatchOperationFailedError(message, details);\n case 'SEARCH_FAILED':\n return new SearchFailedError(message, details);\n case 'INTERNAL_ERROR':\n return new InternalError(message, code, details);\n }\n }\n\n // Fallback to status code\n switch (statusCode) {\n case 400:\n return new ValidationError(message, code, details);\n case 404:\n return new NotFoundError(message, code, details);\n case 403:\n return new AuthorizationError(message, code, details);\n case 409:\n return new ConflictError(message, code, details);\n case 307:\n case 503:\n return new ClusterError(message, statusCode, code, details);\n case 500:\n return new InternalError(message, code, details);\n default:\n return new BrightError(message, statusCode, code, details);\n }\n}\n","import { BrightErrorResponse, createBrightError } from './errors';\n\n// Re-export all error classes\nexport * from './errors';\n\nexport interface IndexConfig {\n id: string;\n primaryKey?: string;\n}\n\nexport interface SearchParams {\n q?: string;\n offset?: number;\n limit?: number;\n page?: number;\n sort?: string[];\n attributesToRetrieve?: string[];\n attributesToExclude?: string[];\n}\n\nexport interface SearchResponse<T = Record<string, any>> {\n hits: T[];\n totalHits: number;\n totalPages: number;\n}\n\nexport interface BrightClientOptions {\n baseUrl: string;\n apiKey?: string;\n fetch?: typeof fetch;\n}\n\nexport interface IndexHandle<T = Record<string, any>> {\n readonly id: string;\n\n // Index operations\n update(config: Partial<IndexConfig>): Promise<IndexConfig>;\n delete(): Promise<void>;\n\n // Document operations\n addDocuments(documents: T[], options?: { format?: 'jsoneachrow'; primaryKey?: string }): Promise<{ indexed: number }>;\n updateDocument(documentId: string, updates: Partial<T>): Promise<T>;\n deleteDocument(documentId: string): Promise<void>;\n deleteDocuments(options: { ids?: string[]; filter?: string }): Promise<void>;\n\n // Search\n search(params?: SearchParams): Promise<SearchResponse<T>>;\n}\n\nexport class BrightClient {\n private baseUrl: string;\n private apiKey?: string;\n private fetchFn: typeof fetch;\n\n constructor(options: BrightClientOptions) {\n this.baseUrl = options.baseUrl.replace(/\\/$/, '');\n this.apiKey = options.apiKey;\n this.fetchFn = options.fetch || globalThis.fetch;\n }\n\n private async request<T>(\n path: string,\n options?: RequestInit\n ): Promise<T> {\n const url = `${this.baseUrl}${path}`;\n const response = await this.fetchFn(url, {\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...(this.apiKey ? { Authorization: `Bearer ${this.apiKey}` } : {}),\n ...options?.headers,\n },\n });\n\n if (!response.ok) {\n const errorResponse: BrightErrorResponse = await response\n .json()\n .catch(() => ({ error: response.statusText }));\n throw createBrightError(response.status, errorResponse);\n }\n\n if (response.status === 204) {\n return undefined as T;\n }\n\n return response.json();\n }\n\n // Index Management\n\n async createIndex(id: string, primaryKey?: string): Promise<IndexConfig> {\n const params = new URLSearchParams({ id });\n if (primaryKey) params.append('primaryKey', primaryKey);\n \n return this.request<IndexConfig>(`/indexes?${params}`, {\n method: 'POST',\n });\n }\n\n async updateIndex(id: string, config: Partial<IndexConfig>): Promise<IndexConfig> {\n return this.request<IndexConfig>(`/indexes/${id}`, {\n method: 'PATCH',\n body: JSON.stringify(config),\n });\n }\n\n async deleteIndex(id: string): Promise<void> {\n return this.request<void>(`/indexes/${id}`, {\n method: 'DELETE',\n });\n }\n\n // Document Operations\n\n async addDocuments<T = Record<string, any>>(\n indexId: string,\n documents: T[],\n options?: { format?: 'jsoneachrow'; primaryKey?: string }\n ): Promise<{ indexed: number }> {\n const body = documents.map(doc => JSON.stringify(doc)).join('\\n');\n const params = new URLSearchParams();\n\n params.append('format', options?.format || 'jsoneachrow');\n if (options?.primaryKey) {\n params.append('primaryKey', options.primaryKey);\n }\n\n return this.request<{ indexed: number }>(`/indexes/${indexId}/documents?${params}`, {\n method: 'POST',\n body,\n });\n }\n\n async updateDocument<T = Record<string, any>>(\n indexId: string,\n documentId: string,\n updates: Partial<T>\n ): Promise<T> {\n return this.request<T>(`/indexes/${indexId}/documents/${documentId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates),\n });\n }\n\n async deleteDocument(indexId: string, documentId: string): Promise<void> {\n return this.request<void>(`/indexes/${indexId}/documents/${documentId}`, {\n method: 'DELETE',\n });\n }\n\n async deleteDocuments(\n indexId: string,\n options: { ids?: string[]; filter?: string }\n ): Promise<void> {\n const params = new URLSearchParams();\n \n if (options.ids) {\n options.ids.forEach(id => params.append('ids[]', id));\n }\n \n if (options.filter) {\n params.append('filter', options.filter);\n }\n \n return this.request<void>(`/indexes/${indexId}/documents?${params}`, {\n method: 'DELETE',\n });\n }\n\n // Search\n\n async search<T = Record<string, any>>(\n indexId: string,\n params?: SearchParams\n ): Promise<SearchResponse<T>> {\n const searchParams = new URLSearchParams();\n\n if (params?.q) searchParams.append('q', params.q);\n if (params?.offset) searchParams.append('offset', params.offset.toString());\n if (params?.limit) searchParams.append('limit', params.limit.toString());\n if (params?.page) searchParams.append('page', params.page.toString());\n\n if (params?.sort) {\n params.sort.forEach(s => searchParams.append('sort[]', s));\n }\n\n if (params?.attributesToRetrieve) {\n params.attributesToRetrieve.forEach(attr =>\n searchParams.append('attributesToRetrieve[]', attr)\n );\n }\n\n if (params?.attributesToExclude) {\n params.attributesToExclude.forEach(attr =>\n searchParams.append('attributesToExclude[]', attr)\n );\n }\n\n return this.request<SearchResponse<T>>(`/indexes/${indexId}/searches?${searchParams}`, {\n method: 'POST',\n });\n }\n\n // Typed Index Handle\n\n index<T = Record<string, any>>(indexId: string): IndexHandle<T> {\n return {\n id: indexId,\n\n update: (config) => this.updateIndex(indexId, config),\n delete: () => this.deleteIndex(indexId),\n\n addDocuments: (documents, options) => this.addDocuments<T>(indexId, documents, options),\n updateDocument: (documentId, updates) => this.updateDocument<T>(indexId, documentId, updates),\n deleteDocument: (documentId) => this.deleteDocument(indexId, documentId),\n deleteDocuments: (options) => this.deleteDocuments(indexId, options),\n\n search: (params) => this.search<T>(indexId, params),\n };\n }\n}\n\n// Convenience function\nexport function createClient(options: BrightClientOptions): BrightClient {\n return new BrightClient(options);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["range"],"sources":["../src/errors.ts","../src/types.ts","../src/index.ts"],"sourcesContent":["export type ErrorCode =\n // Validation Errors (400)\n | 'MISSING_PARAMETER'\n | 'INVALID_PARAMETER'\n | 'INVALID_REQUEST_BODY'\n | 'CONFLICTING_PARAMETERS'\n | 'INVALID_FORMAT'\n | 'PARSE_ERROR'\n // Not Found Errors (404)\n | 'INDEX_NOT_FOUND'\n | 'DOCUMENT_NOT_FOUND'\n // Cluster Errors (307/503)\n | 'NOT_LEADER'\n | 'CLUSTER_UNAVAILABLE'\n // Authorization Errors (403)\n | 'INSUFFICIENT_PERMISSIONS'\n | 'LEADER_ONLY_OPERATION'\n // Resource Conflict Errors (409)\n | 'RESOURCE_ALREADY_EXISTS'\n // Internal Errors (500)\n | 'UUID_GENERATION_FAILED'\n | 'SERIALIZATION_FAILED'\n | 'RAFT_APPLY_FAILED'\n | 'INDEX_OPERATION_FAILED'\n | 'DOCUMENT_OPERATION_FAILED'\n | 'BATCH_OPERATION_FAILED'\n | 'SEARCH_FAILED'\n | 'INTERNAL_ERROR';\n\nexport interface BrightErrorResponse {\n error: string;\n code?: ErrorCode;\n details?: Record<string, unknown>;\n}\n\nexport class BrightError extends Error {\n public readonly code?: ErrorCode;\n public readonly statusCode: number;\n public readonly details?: Record<string, unknown>;\n\n constructor(message: string, statusCode: number, code?: ErrorCode, details?: Record<string, unknown>) {\n super(message);\n this.name = 'BrightError';\n this.code = code;\n this.statusCode = statusCode;\n this.details = details;\n Object.setPrototypeOf(this, BrightError.prototype);\n }\n\n toJSON(): BrightErrorResponse & { statusCode: number } {\n return {\n error: this.message,\n code: this.code,\n details: this.details,\n statusCode: this.statusCode,\n };\n }\n}\n\n// Validation Errors (400)\nexport class ValidationError extends BrightError {\n constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>) {\n super(message, 400, code, details);\n this.name = 'ValidationError';\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport class MissingParameterError extends ValidationError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'MISSING_PARAMETER', details);\n this.name = 'MissingParameterError';\n Object.setPrototypeOf(this, MissingParameterError.prototype);\n }\n}\n\nexport class InvalidParameterError extends ValidationError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'INVALID_PARAMETER', details);\n this.name = 'InvalidParameterError';\n Object.setPrototypeOf(this, InvalidParameterError.prototype);\n }\n}\n\nexport class InvalidRequestBodyError extends ValidationError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'INVALID_REQUEST_BODY', details);\n this.name = 'InvalidRequestBodyError';\n Object.setPrototypeOf(this, InvalidRequestBodyError.prototype);\n }\n}\n\nexport class ConflictingParametersError extends ValidationError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'CONFLICTING_PARAMETERS', details);\n this.name = 'ConflictingParametersError';\n Object.setPrototypeOf(this, ConflictingParametersError.prototype);\n }\n}\n\nexport class InvalidFormatError extends ValidationError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'INVALID_FORMAT', details);\n this.name = 'InvalidFormatError';\n Object.setPrototypeOf(this, InvalidFormatError.prototype);\n }\n}\n\nexport class ParseError extends ValidationError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'PARSE_ERROR', details);\n this.name = 'ParseError';\n Object.setPrototypeOf(this, ParseError.prototype);\n }\n}\n\n// Not Found Errors (404)\nexport class NotFoundError extends BrightError {\n constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>) {\n super(message, 404, code, details);\n this.name = 'NotFoundError';\n Object.setPrototypeOf(this, NotFoundError.prototype);\n }\n}\n\nexport class IndexNotFoundError extends NotFoundError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'INDEX_NOT_FOUND', details);\n this.name = 'IndexNotFoundError';\n Object.setPrototypeOf(this, IndexNotFoundError.prototype);\n }\n}\n\nexport class DocumentNotFoundError extends NotFoundError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'DOCUMENT_NOT_FOUND', details);\n this.name = 'DocumentNotFoundError';\n Object.setPrototypeOf(this, DocumentNotFoundError.prototype);\n }\n}\n\n// Cluster Errors\nexport class ClusterError extends BrightError {\n constructor(message: string, statusCode: number, code?: ErrorCode, details?: Record<string, unknown>) {\n super(message, statusCode, code, details);\n this.name = 'ClusterError';\n Object.setPrototypeOf(this, ClusterError.prototype);\n }\n}\n\nexport class NotLeaderError extends ClusterError {\n public readonly leaderUrl?: string;\n\n constructor(message: string, leaderUrl?: string, details?: Record<string, unknown>) {\n super(message, 307, 'NOT_LEADER', details);\n this.name = 'NotLeaderError';\n this.leaderUrl = leaderUrl;\n Object.setPrototypeOf(this, NotLeaderError.prototype);\n }\n}\n\nexport class ClusterUnavailableError extends ClusterError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 503, 'CLUSTER_UNAVAILABLE', details);\n this.name = 'ClusterUnavailableError';\n Object.setPrototypeOf(this, ClusterUnavailableError.prototype);\n }\n}\n\n// Authorization Errors (403)\nexport class AuthorizationError extends BrightError {\n constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>) {\n super(message, 403, code, details);\n this.name = 'AuthorizationError';\n Object.setPrototypeOf(this, AuthorizationError.prototype);\n }\n}\n\nexport class InsufficientPermissionsError extends AuthorizationError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'INSUFFICIENT_PERMISSIONS', details);\n this.name = 'InsufficientPermissionsError';\n Object.setPrototypeOf(this, InsufficientPermissionsError.prototype);\n }\n}\n\nexport class LeaderOnlyOperationError extends AuthorizationError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'LEADER_ONLY_OPERATION', details);\n this.name = 'LeaderOnlyOperationError';\n Object.setPrototypeOf(this, LeaderOnlyOperationError.prototype);\n }\n}\n\n// Resource Conflict Errors (409)\nexport class ConflictError extends BrightError {\n constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>) {\n super(message, 409, code, details);\n this.name = 'ConflictError';\n Object.setPrototypeOf(this, ConflictError.prototype);\n }\n}\n\nexport class ResourceAlreadyExistsError extends ConflictError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'RESOURCE_ALREADY_EXISTS', details);\n this.name = 'ResourceAlreadyExistsError';\n Object.setPrototypeOf(this, ResourceAlreadyExistsError.prototype);\n }\n}\n\n// Internal Errors (500)\nexport class InternalError extends BrightError {\n constructor(message: string, code?: ErrorCode, details?: Record<string, unknown>) {\n super(message, 500, code, details);\n this.name = 'InternalError';\n Object.setPrototypeOf(this, InternalError.prototype);\n }\n}\n\nexport class UuidGenerationFailedError extends InternalError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'UUID_GENERATION_FAILED', details);\n this.name = 'UuidGenerationFailedError';\n Object.setPrototypeOf(this, UuidGenerationFailedError.prototype);\n }\n}\n\nexport class SerializationFailedError extends InternalError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'SERIALIZATION_FAILED', details);\n this.name = 'SerializationFailedError';\n Object.setPrototypeOf(this, SerializationFailedError.prototype);\n }\n}\n\nexport class RaftApplyFailedError extends InternalError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'RAFT_APPLY_FAILED', details);\n this.name = 'RaftApplyFailedError';\n Object.setPrototypeOf(this, RaftApplyFailedError.prototype);\n }\n}\n\nexport class IndexOperationFailedError extends InternalError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'INDEX_OPERATION_FAILED', details);\n this.name = 'IndexOperationFailedError';\n Object.setPrototypeOf(this, IndexOperationFailedError.prototype);\n }\n}\n\nexport class DocumentOperationFailedError extends InternalError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'DOCUMENT_OPERATION_FAILED', details);\n this.name = 'DocumentOperationFailedError';\n Object.setPrototypeOf(this, DocumentOperationFailedError.prototype);\n }\n}\n\nexport class BatchOperationFailedError extends InternalError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'BATCH_OPERATION_FAILED', details);\n this.name = 'BatchOperationFailedError';\n Object.setPrototypeOf(this, BatchOperationFailedError.prototype);\n }\n}\n\nexport class SearchFailedError extends InternalError {\n constructor(message: string, details?: Record<string, unknown>) {\n super(message, 'SEARCH_FAILED', details);\n this.name = 'SearchFailedError';\n Object.setPrototypeOf(this, SearchFailedError.prototype);\n }\n}\n\n// Error factory function to create appropriate error instances\nexport function createBrightError(\n statusCode: number,\n errorResponse: BrightErrorResponse\n): BrightError {\n const { error: message, code, details } = errorResponse;\n\n // Match by error code first\n if (code) {\n switch (code) {\n // Validation Errors\n case 'MISSING_PARAMETER':\n return new MissingParameterError(message, details);\n case 'INVALID_PARAMETER':\n return new InvalidParameterError(message, details);\n case 'INVALID_REQUEST_BODY':\n return new InvalidRequestBodyError(message, details);\n case 'CONFLICTING_PARAMETERS':\n return new ConflictingParametersError(message, details);\n case 'INVALID_FORMAT':\n return new InvalidFormatError(message, details);\n case 'PARSE_ERROR':\n return new ParseError(message, details);\n\n // Not Found Errors\n case 'INDEX_NOT_FOUND':\n return new IndexNotFoundError(message, details);\n case 'DOCUMENT_NOT_FOUND':\n return new DocumentNotFoundError(message, details);\n\n // Cluster Errors\n case 'NOT_LEADER': {\n const leaderUrl = typeof details?.leaderUrl === 'string' ? details.leaderUrl : undefined;\n return new NotLeaderError(message, leaderUrl, details);\n }\n case 'CLUSTER_UNAVAILABLE':\n return new ClusterUnavailableError(message, details);\n\n // Authorization Errors\n case 'INSUFFICIENT_PERMISSIONS':\n return new InsufficientPermissionsError(message, details);\n case 'LEADER_ONLY_OPERATION':\n return new LeaderOnlyOperationError(message, details);\n\n // Conflict Errors\n case 'RESOURCE_ALREADY_EXISTS':\n return new ResourceAlreadyExistsError(message, details);\n\n // Internal Errors\n case 'UUID_GENERATION_FAILED':\n return new UuidGenerationFailedError(message, details);\n case 'SERIALIZATION_FAILED':\n return new SerializationFailedError(message, details);\n case 'RAFT_APPLY_FAILED':\n return new RaftApplyFailedError(message, details);\n case 'INDEX_OPERATION_FAILED':\n return new IndexOperationFailedError(message, details);\n case 'DOCUMENT_OPERATION_FAILED':\n return new DocumentOperationFailedError(message, details);\n case 'BATCH_OPERATION_FAILED':\n return new BatchOperationFailedError(message, details);\n case 'SEARCH_FAILED':\n return new SearchFailedError(message, details);\n case 'INTERNAL_ERROR':\n return new InternalError(message, code, details);\n }\n }\n\n // Fallback to status code\n switch (statusCode) {\n case 400:\n return new ValidationError(message, code, details);\n case 404:\n return new NotFoundError(message, code, details);\n case 403:\n return new AuthorizationError(message, code, details);\n case 409:\n return new ConflictError(message, code, details);\n case 307:\n case 503:\n return new ClusterError(message, statusCode, code, details);\n case 500:\n return new InternalError(message, code, details);\n default:\n return new BrightError(message, statusCode, code, details);\n }\n}\n","export interface IndexConfig {\n id: string;\n primaryKey?: string;\n}\n\n// Field query helpers for type-safe query building\n\n/** Field filter with optional boost: `field:value` or `field:value^boost` */\nexport type FieldFilter<T> = {\n [K in keyof T]?: T[K] extends string | number | boolean | Date\n ? T[K] | { value: T[K]; boost?: number }\n : never;\n};\n\n/** Numeric range filter for a field */\nexport interface RangeFilter<T> {\n gt?: T;\n gte?: T;\n lt?: T;\n lte?: T;\n}\n\n/** Field range filters: `field:>value`, `field:>=value`, etc. */\nexport type FieldRangeFilter<T> = {\n [K in keyof T]?: T[K] extends number | Date ? RangeFilter<T[K]> : never;\n};\n\n/** Sort direction for a field */\nexport type SortDirection = 'asc' | 'desc';\n\n/** Typed sort options */\nexport type SortField<T> = keyof T | `-${string & keyof T}` | { field: keyof T; order: SortDirection };\n\n// Search params with full type support\n\nexport interface SearchParams<\n T = Record<string, unknown>,\n Exclude extends keyof T = never\n> {\n /** Query string (supports Bleve syntax: field:value, +required, -excluded, ^boost) */\n q?: string;\n\n /** Typed field filters (alternative to query string) */\n filter?: FieldFilter<T>;\n\n /** Typed range filters for numeric/date fields */\n range?: FieldRangeFilter<T>;\n\n /** Pagination offset */\n offset?: number;\n\n /** Results per page limit */\n limit?: number;\n\n /** Page number (1-indexed) */\n page?: number;\n\n /** Sort fields (prefix with - for descending) */\n sort?: Array<SortField<T>>;\n\n /** Fields to retrieve (defaults to all) */\n attributesToRetrieve?: Array<keyof T>;\n\n /** Fields to exclude from results */\n attributesToExclude?: Exclude[];\n}\n\n/** Search response with excluded fields removed from type */\nexport interface SearchResponse<\n T = Record<string, unknown>,\n Exclude extends keyof T = never\n> {\n hits: Array<Omit<T, Exclude>>;\n totalHits: number;\n totalPages: number;\n}\n\n// Query builder helpers\n\n/**\n * Build a field query with optional boost\n * @example field('name', 'water', 5) => 'name:water^5'\n */\nexport function field<T, K extends keyof T>(\n name: K,\n value: T[K],\n boost?: number\n): string {\n const base = `${String(name)}:${String(value)}`;\n return boost ? `${base}^${boost}` : base;\n}\n\n/**\n * Build a required (MUST) clause\n * @example must('name:water') => '+name:water'\n */\nexport function must(query: string): string {\n return `+${query}`;\n}\n\n/**\n * Build an excluded (MUST NOT) clause\n * @example mustNot('name:water') => '-name:water'\n */\nexport function mustNot(query: string): string {\n return `-${query}`;\n}\n\n/**\n * Build a phrase query\n * @example phrase('light beer') => '\"light beer\"'\n */\nexport function phrase(text: string): string {\n return `\"${text}\"`;\n}\n\n/**\n * Build a range query\n * @example range('price', { gte: 10, lt: 100 }) => 'price:>=10 price:<100'\n */\nexport function range<T, K extends keyof T>(\n name: K,\n filter: RangeFilter<T[K]>\n): string {\n const parts: string[] = [];\n const n = String(name);\n if (filter.gt !== undefined) parts.push(`${n}:>${filter.gt}`);\n if (filter.gte !== undefined) parts.push(`${n}:>=${filter.gte}`);\n if (filter.lt !== undefined) parts.push(`${n}:<${filter.lt}`);\n if (filter.lte !== undefined) parts.push(`${n}:<=${filter.lte}`);\n return parts.join(' ');\n}\n\nexport interface BrightClientOptions {\n baseUrl: string;\n apiKey?: string;\n fetch?: typeof fetch;\n}\n","import { BrightErrorResponse, createBrightError } from './errors';\nimport {\n IndexConfig,\n SearchParams,\n SearchResponse,\n BrightClientOptions,\n FieldFilter,\n FieldRangeFilter,\n SortField,\n} from './types';\nimport {\n IngressConfig,\n IngressState,\n CreateIngressParams,\n TypedCreateIngressParams,\n} from './ingress';\n\n// Re-export all types\nexport * from './errors';\nexport * from './types';\nexport * from './ingress';\n\nexport interface IndexHandle<T = Record<string, unknown>> {\n readonly id: string;\n\n // Index operations\n update(config: Partial<IndexConfig>): Promise<IndexConfig>;\n delete(): Promise<void>;\n\n // Document operations\n addDocuments(documents: T[], options?: { format?: 'jsoneachrow'; primaryKey?: string }): Promise<{ indexed: number }>;\n updateDocument(documentId: string, updates: Partial<T>): Promise<T>;\n deleteDocument(documentId: string): Promise<void>;\n deleteDocuments(options: { ids?: string[]; filter?: string }): Promise<void>;\n\n // Search with typed exclusion\n search<Exclude extends keyof T = never>(\n params?: SearchParams<T, Exclude>\n ): Promise<SearchResponse<T, Exclude>>;\n\n // Ingress (Data Ingestion)\n listIngresses(): Promise<IngressConfig[]>;\n createIngress(params: CreateIngressParams | TypedCreateIngressParams): Promise<IngressConfig>;\n getIngress(ingressId: string): Promise<IngressConfig>;\n updateIngress(ingressId: string, state: IngressState): Promise<IngressConfig>;\n deleteIngress(ingressId: string): Promise<void>;\n}\n\n// Helper to build query string from typed filters\nfunction buildQueryFromFilters<T>(\n filter?: FieldFilter<T>,\n range?: FieldRangeFilter<T>\n): string {\n const parts: string[] = [];\n\n if (filter) {\n for (const [key, val] of Object.entries(filter)) {\n if (val === undefined) continue;\n if (typeof val === 'object' && val !== null && 'value' in val) {\n const { value, boost } = val as { value: unknown; boost?: number };\n parts.push(boost ? `${key}:${value}^${boost}` : `${key}:${value}`);\n } else {\n parts.push(`${key}:${val}`);\n }\n }\n }\n\n if (range) {\n for (const [key, rangeVal] of Object.entries(range)) {\n if (rangeVal === undefined) continue;\n const r = rangeVal as { gt?: unknown; gte?: unknown; lt?: unknown; lte?: unknown };\n if (r.gt !== undefined) parts.push(`${key}:>${r.gt}`);\n if (r.gte !== undefined) parts.push(`${key}:>=${r.gte}`);\n if (r.lt !== undefined) parts.push(`${key}:<${r.lt}`);\n if (r.lte !== undefined) parts.push(`${key}:<=${r.lte}`);\n }\n }\n\n return parts.join(' ');\n}\n\n// Helper to normalize sort fields to string\nfunction normalizeSortField<T>(sort: SortField<T>): string {\n if (typeof sort === 'object' && sort !== null && 'field' in sort) {\n return sort.order === 'desc' ? `-${String(sort.field)}` : String(sort.field);\n }\n return String(sort);\n}\n\nexport class BrightClient {\n private baseUrl: string;\n private apiKey?: string;\n private fetchFn: typeof fetch;\n\n constructor(options: BrightClientOptions) {\n this.baseUrl = options.baseUrl.replace(/\\/$/, '');\n this.apiKey = options.apiKey;\n this.fetchFn = options.fetch || globalThis.fetch;\n }\n\n private async request<T>(\n path: string,\n options?: RequestInit\n ): Promise<T> {\n const url = `${this.baseUrl}${path}`;\n const response = await this.fetchFn(url, {\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...(this.apiKey ? { Authorization: `Bearer ${this.apiKey}` } : {}),\n ...options?.headers,\n },\n });\n\n if (!response.ok) {\n const errorResponse: BrightErrorResponse = await response\n .json()\n .catch(() => ({ error: response.statusText }));\n throw createBrightError(response.status, errorResponse);\n }\n\n if (response.status === 204) {\n return undefined as T;\n }\n\n return response.json();\n }\n\n // Index Management\n\n async createIndex(id: string, primaryKey?: string): Promise<IndexConfig> {\n const params = new URLSearchParams({ id });\n if (primaryKey) params.append('primaryKey', primaryKey);\n\n return this.request<IndexConfig>(`/indexes?${params}`, {\n method: 'POST',\n });\n }\n\n async updateIndex(id: string, config: Partial<IndexConfig>): Promise<IndexConfig> {\n return this.request<IndexConfig>(`/indexes/${id}`, {\n method: 'PATCH',\n body: JSON.stringify(config),\n });\n }\n\n async deleteIndex(id: string): Promise<void> {\n return this.request<void>(`/indexes/${id}`, {\n method: 'DELETE',\n });\n }\n\n // Document Operations\n\n async addDocuments<T = Record<string, unknown>>(\n indexId: string,\n documents: T[],\n options?: { format?: 'jsoneachrow'; primaryKey?: string }\n ): Promise<{ indexed: number }> {\n const body = documents.map(doc => JSON.stringify(doc)).join('\\n');\n const params = new URLSearchParams();\n\n params.append('format', options?.format || 'jsoneachrow');\n if (options?.primaryKey) {\n params.append('primaryKey', options.primaryKey);\n }\n\n return this.request<{ indexed: number }>(`/indexes/${indexId}/documents?${params}`, {\n method: 'POST',\n body,\n });\n }\n\n async updateDocument<T = Record<string, unknown>>(\n indexId: string,\n documentId: string,\n updates: Partial<T>\n ): Promise<T> {\n return this.request<T>(`/indexes/${indexId}/documents/${documentId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates),\n });\n }\n\n async deleteDocument(indexId: string, documentId: string): Promise<void> {\n return this.request<void>(`/indexes/${indexId}/documents/${documentId}`, {\n method: 'DELETE',\n });\n }\n\n async deleteDocuments(\n indexId: string,\n options: { ids?: string[]; filter?: string }\n ): Promise<void> {\n const params = new URLSearchParams();\n\n if (options.ids) {\n options.ids.forEach(id => params.append('ids[]', id));\n }\n\n if (options.filter) {\n params.append('filter', options.filter);\n }\n\n return this.request<void>(`/indexes/${indexId}/documents?${params}`, {\n method: 'DELETE',\n });\n }\n\n // Search\n\n async search<T = Record<string, unknown>, Exclude extends keyof T = never>(\n indexId: string,\n params?: SearchParams<T, Exclude>\n ): Promise<SearchResponse<T, Exclude>> {\n const searchParams = new URLSearchParams();\n\n // Build query from q + typed filters\n const filterQuery = buildQueryFromFilters(params?.filter, params?.range);\n const fullQuery = [params?.q, filterQuery].filter(Boolean).join(' ');\n if (fullQuery) searchParams.append('q', fullQuery);\n\n if (params?.offset) searchParams.append('offset', params.offset.toString());\n if (params?.limit) searchParams.append('limit', params.limit.toString());\n if (params?.page) searchParams.append('page', params.page.toString());\n\n if (params?.sort) {\n params.sort.forEach(s => searchParams.append('sort[]', normalizeSortField(s)));\n }\n\n if (params?.attributesToRetrieve) {\n params.attributesToRetrieve.forEach(attr =>\n searchParams.append('attributesToRetrieve[]', String(attr))\n );\n }\n\n if (params?.attributesToExclude) {\n params.attributesToExclude.forEach(attr =>\n searchParams.append('attributesToExclude[]', String(attr))\n );\n }\n\n return this.request<SearchResponse<T, Exclude>>(`/indexes/${indexId}/searches?${searchParams}`, {\n method: 'POST',\n });\n }\n\n // Ingress (Data Ingestion)\n\n async listIngresses(indexId: string): Promise<IngressConfig[]> {\n const response = await this.request<{ ingresses: IngressConfig[] }>(`/indexes/${indexId}/ingresses`);\n return response.ingresses;\n }\n\n async createIngress(\n indexId: string,\n params: CreateIngressParams | TypedCreateIngressParams\n ): Promise<IngressConfig> {\n return this.request<IngressConfig>(`/indexes/${indexId}/ingresses`, {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n async getIngress(indexId: string, ingressId: string): Promise<IngressConfig> {\n return this.request<IngressConfig>(`/indexes/${indexId}/ingresses/${ingressId}`);\n }\n\n async updateIngress(\n indexId: string,\n ingressId: string,\n state: IngressState\n ): Promise<IngressConfig> {\n return this.request<IngressConfig>(`/indexes/${indexId}/ingresses/${ingressId}`, {\n method: 'PATCH',\n body: JSON.stringify({ state }),\n });\n }\n\n async deleteIngress(indexId: string, ingressId: string): Promise<void> {\n return this.request<void>(`/indexes/${indexId}/ingresses/${ingressId}`, {\n method: 'DELETE',\n });\n }\n\n // Typed Index Handle\n\n index<T = Record<string, unknown>>(indexId: string): IndexHandle<T> {\n return {\n id: indexId,\n\n update: (config) => this.updateIndex(indexId, config),\n delete: () => this.deleteIndex(indexId),\n\n addDocuments: (documents, options) => this.addDocuments<T>(indexId, documents, options),\n updateDocument: (documentId, updates) => this.updateDocument<T>(indexId, documentId, updates),\n deleteDocument: (documentId) => this.deleteDocument(indexId, documentId),\n deleteDocuments: (options) => this.deleteDocuments(indexId, options),\n\n search: <Exclude extends keyof T = never>(params?: SearchParams<T, Exclude>) =>\n this.search<T, Exclude>(indexId, params),\n\n listIngresses: () => this.listIngresses(indexId),\n createIngress: (params) => this.createIngress(indexId, params),\n getIngress: (ingressId) => this.getIngress(indexId, ingressId),\n updateIngress: (ingressId, state) => this.updateIngress(indexId, ingressId, state),\n deleteIngress: (ingressId) => this.deleteIngress(indexId, ingressId),\n };\n }\n}\n\n// Convenience function\nexport function createClient(options: BrightClientOptions): BrightClient {\n return new BrightClient(options);\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bright-client",
3
- "version": "0.5.0",
3
+ "version": "0.6.6",
4
4
  "description": "TypeScript client library for Bright search database",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",