@boltic/sdk 0.0.1 → 0.0.3
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 +1 -1
- package/dist/databases/index.d.ts +47 -25
- package/dist/databases/index.js +1 -1
- package/dist/databases/index.js.map +1 -1
- package/dist/databases/index.mjs +2 -5
- package/dist/databases/index.mjs.map +1 -1
- package/dist/databases/test-client-BI3VkYA6.js +2 -0
- package/dist/databases/test-client-BI3VkYA6.js.map +1 -0
- package/dist/databases/{test-client-BM9X5DH9.mjs → test-client-BffJwqJq.mjs} +191 -180
- package/dist/databases/test-client-BffJwqJq.mjs.map +1 -0
- package/dist/databases/testing.d.ts +103 -76
- package/dist/databases/testing.js +1 -1
- package/dist/databases/testing.mjs +1 -1
- package/package.json +6 -3
- package/dist/databases/test-client-BM9X5DH9.mjs.map +0 -1
- package/dist/databases/test-client-D-SuKCUC.js +0 -2
- package/dist/databases/test-client-D-SuKCUC.js.map +0 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Boltic SDK is an open-source TypeScript library, developed by Fynd, designed to
|
|
|
4
4
|
|
|
5
5
|
## Documentation
|
|
6
6
|
|
|
7
|
-
- **[Boltic SDK Documentation](https://docs.
|
|
7
|
+
- **[Boltic SDK Documentation](https://docs.boltic.io/docs/category/sdk/)** - Complete SDK documentation
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
@@ -44,6 +44,8 @@ declare class AuthManager {
|
|
|
44
44
|
validateApiKeyAsync(): Promise<boolean>;
|
|
45
45
|
getTokenInfo(): TokenInfo | null;
|
|
46
46
|
getMaxRetries(): number;
|
|
47
|
+
toString(): string;
|
|
48
|
+
toJSON(): object;
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
declare class BaseClient {
|
|
@@ -91,12 +93,12 @@ export declare class BolticClient {
|
|
|
91
93
|
getCurrentDatabase(): DatabaseContext | null;
|
|
92
94
|
get tables(): {
|
|
93
95
|
create: (data: TableCreateRequest) => Promise<BolticSuccessResponse<TableCreateResponse>>;
|
|
94
|
-
findAll: (options?: TableQueryOptions) => Promise<ApiResponse<TableRecord
|
|
95
|
-
findById: (id: string) => Promise<BolticSuccessResponse<TableRecord | null>>;
|
|
96
|
-
findByName: (name: string) => Promise<BolticSuccessResponse<TableRecord | null>>;
|
|
97
|
-
findOne: (options: TableQueryOptions) => Promise<BolticSuccessResponse<TableRecord | null>>;
|
|
98
|
-
update: (name: string, data: TableUpdateRequest) => Promise<BolticSuccessResponse<TableRecord>>;
|
|
99
|
-
delete: (name: string) => Promise<BolticSuccessResponse< {
|
|
96
|
+
findAll: (options?: TableQueryOptions) => Promise<ApiResponse<TableRecord>>;
|
|
97
|
+
findById: (id: string) => Promise<BolticErrorResponse | BolticSuccessResponse<TableRecord | null>>;
|
|
98
|
+
findByName: (name: string) => Promise<BolticErrorResponse | BolticSuccessResponse<TableRecord | null>>;
|
|
99
|
+
findOne: (options: TableQueryOptions) => Promise<BolticErrorResponse | BolticSuccessResponse<TableRecord | null>>;
|
|
100
|
+
update: (name: string, data: TableUpdateRequest) => Promise<BolticErrorResponse | BolticSuccessResponse<TableRecord>>;
|
|
101
|
+
delete: (name: string) => Promise<BolticErrorResponse | BolticSuccessResponse< {
|
|
100
102
|
message: string;
|
|
101
103
|
}>>;
|
|
102
104
|
rename: (oldName: string, newName: string) => Promise<BolticSuccessResponse<TableRecord>>;
|
|
@@ -131,6 +133,9 @@ export declare class BolticClient {
|
|
|
131
133
|
};
|
|
132
134
|
records: () => {
|
|
133
135
|
insert: (data: RecordData) => Promise<BolticErrorResponse | BolticSuccessResponse<RecordWithId>>;
|
|
136
|
+
insertMany: (records: RecordData[], options?: {
|
|
137
|
+
validation?: boolean;
|
|
138
|
+
}) => Promise<RecordBulkInsertResponse | BolticErrorResponse>;
|
|
134
139
|
findOne: (recordId: string) => Promise<BolticErrorResponse | BolticSuccessResponse<RecordWithId>>;
|
|
135
140
|
update: (options: RecordUpdateOptions) => Promise<BolticErrorResponse | BolticListResponse<RecordWithId>>;
|
|
136
141
|
updateById: (recordId: string, data: RecordData) => Promise<BolticErrorResponse | BolticSuccessResponse<RecordWithId>>;
|
|
@@ -145,6 +150,9 @@ export declare class BolticClient {
|
|
|
145
150
|
};
|
|
146
151
|
get records(): {
|
|
147
152
|
insert: (tableName: string, data: RecordData) => Promise<BolticErrorResponse | BolticSuccessResponse<RecordWithId>>;
|
|
153
|
+
insertMany: (tableName: string, records: RecordData[], options?: {
|
|
154
|
+
validation?: boolean;
|
|
155
|
+
}) => Promise<RecordBulkInsertResponse | BolticErrorResponse>;
|
|
148
156
|
findAll: (tableName: string, options?: RecordQueryOptions) => Promise<BolticErrorResponse | BolticListResponse<RecordWithId>>;
|
|
149
157
|
findOne: (tableName: string, recordId: string) => Promise<BolticErrorResponse | BolticSuccessResponse<RecordWithId>>;
|
|
150
158
|
update: (tableName: string, options: RecordUpdateOptions) => Promise<BolticErrorResponse | BolticListResponse<RecordWithId>>;
|
|
@@ -159,7 +167,7 @@ export declare class BolticClient {
|
|
|
159
167
|
record(tableName: string): RecordBuilder;
|
|
160
168
|
get sql(): {
|
|
161
169
|
textToSQL: (prompt: string, options?: TextToSQLOptions) => Promise<AsyncIterable<string>>;
|
|
162
|
-
executeSQL: (query: string) => Promise<ExecuteSQLApiResponse>;
|
|
170
|
+
executeSQL: (query: string) => Promise<BolticErrorResponse | ExecuteSQLApiResponse>;
|
|
163
171
|
};
|
|
164
172
|
getSqlResource(): SqlResource;
|
|
165
173
|
updateApiKey(newApiKey: string): void;
|
|
@@ -179,10 +187,13 @@ export declare class BolticClient {
|
|
|
179
187
|
enableDebug(): void;
|
|
180
188
|
disableDebug(): void;
|
|
181
189
|
isDebugEnabled(): boolean;
|
|
190
|
+
private updateAllResourcesConfig;
|
|
191
|
+
toString(): string;
|
|
192
|
+
toJSON(): object;
|
|
182
193
|
}
|
|
183
194
|
|
|
184
195
|
export declare interface BolticErrorResponse {
|
|
185
|
-
data?:
|
|
196
|
+
data?: never;
|
|
186
197
|
message?: string;
|
|
187
198
|
error: {
|
|
188
199
|
code?: string;
|
|
@@ -192,7 +203,7 @@ export declare interface BolticErrorResponse {
|
|
|
192
203
|
}
|
|
193
204
|
|
|
194
205
|
declare interface BolticErrorResponse_2 {
|
|
195
|
-
data
|
|
206
|
+
data?: never;
|
|
196
207
|
error: {
|
|
197
208
|
code?: string;
|
|
198
209
|
message?: string;
|
|
@@ -620,6 +631,11 @@ export declare interface ExecuteSQLApiResponse {
|
|
|
620
631
|
type: string;
|
|
621
632
|
};
|
|
622
633
|
message?: string;
|
|
634
|
+
error?: {
|
|
635
|
+
code?: string;
|
|
636
|
+
message?: string;
|
|
637
|
+
meta?: string[];
|
|
638
|
+
};
|
|
623
639
|
}
|
|
624
640
|
|
|
625
641
|
export declare interface ExecutionResult {
|
|
@@ -949,6 +965,23 @@ declare interface RecordBuilderOptions {
|
|
|
949
965
|
recordResource: RecordResource;
|
|
950
966
|
}
|
|
951
967
|
|
|
968
|
+
export declare interface RecordBulkInsertOptions {
|
|
969
|
+
validation?: boolean;
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
export declare interface RecordBulkInsertResponse {
|
|
973
|
+
data: {
|
|
974
|
+
records: RecordWithId[];
|
|
975
|
+
insert_count: number;
|
|
976
|
+
};
|
|
977
|
+
message?: string;
|
|
978
|
+
error?: {
|
|
979
|
+
code?: string;
|
|
980
|
+
message?: string;
|
|
981
|
+
meta?: string[];
|
|
982
|
+
};
|
|
983
|
+
}
|
|
984
|
+
|
|
952
985
|
export declare interface RecordCreateRequest {
|
|
953
986
|
[fieldName: string]: unknown;
|
|
954
987
|
}
|
|
@@ -997,6 +1030,10 @@ declare class RecordResource {
|
|
|
997
1030
|
* Insert a single record
|
|
998
1031
|
*/
|
|
999
1032
|
insert(tableName: string, data: RecordData): Promise<BolticSuccessResponse<RecordWithId> | BolticErrorResponse>;
|
|
1033
|
+
/**
|
|
1034
|
+
* Insert multiple records in bulk
|
|
1035
|
+
*/
|
|
1036
|
+
insertMany(tableName: string, records: RecordData[], options?: RecordBulkInsertOptions): Promise<RecordBulkInsertResponse | BolticErrorResponse>;
|
|
1000
1037
|
/**
|
|
1001
1038
|
* Get a single record by ID
|
|
1002
1039
|
*/
|
|
@@ -1152,7 +1189,7 @@ export declare class SqlResource {
|
|
|
1152
1189
|
* @returns Promise<ExecuteSQLApiResponse> with raw API response following Boltic API Response Structure
|
|
1153
1190
|
*
|
|
1154
1191
|
*/
|
|
1155
|
-
executeSQL(query: string): Promise<ExecuteSQLApiResponse>;
|
|
1192
|
+
executeSQL(query: string): Promise<ExecuteSQLApiResponse | BolticErrorResponse>;
|
|
1156
1193
|
}
|
|
1157
1194
|
|
|
1158
1195
|
export declare interface SuccessResponse<T> {
|
|
@@ -1294,21 +1331,6 @@ declare class TableBuilder {
|
|
|
1294
1331
|
nullable?: boolean;
|
|
1295
1332
|
description?: string;
|
|
1296
1333
|
}): TableBuilder;
|
|
1297
|
-
/**
|
|
1298
|
-
/**
|
|
1299
|
-
* Add a half-precision vector field
|
|
1300
|
-
*/
|
|
1301
|
-
halfVector(name: string, dimension: number, options?: {
|
|
1302
|
-
nullable?: boolean;
|
|
1303
|
-
description?: string;
|
|
1304
|
-
}): TableBuilder;
|
|
1305
|
-
/**
|
|
1306
|
-
* Add a sparse vector field
|
|
1307
|
-
*/
|
|
1308
|
-
sparseVector(name: string, dimension: number, options?: {
|
|
1309
|
-
nullable?: boolean;
|
|
1310
|
-
description?: string;
|
|
1311
|
-
}): TableBuilder;
|
|
1312
1334
|
/**
|
|
1313
1335
|
* Add a custom field
|
|
1314
1336
|
*/
|
package/dist/databases/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./test-client-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./test-client-BI3VkYA6.js");class i{constructor(e){this.queryOptions={},this.updateData={},this.tableName=e.tableName,this.columnResource=e.columnResource}where(e){return this.queryOptions.where={...this.queryOptions.where,...e},this}orderBy(e,i="asc"){return this.queryOptions.sort||(this.queryOptions.sort=[]),this.queryOptions.sort.push({field:e,order:i}),this}limit(e){return this.queryOptions.limit=e,this}offset(e){return this.queryOptions.offset=e,this}select(e){return this.queryOptions.fields=e,this}set(e){return this.updateData={...this.updateData,...e},this}async findAll(){return this.columnResource.findAll(this.tableName,this.queryOptions)}async get(){var e;return(null==(e=this.queryOptions.where)?void 0:e.name)?this.columnResource.get(this.tableName,this.queryOptions.where.name):{error:{code:"MISSING_COLUMN_NAME",message:"Column name is required for get operation"}}}async update(){var e;return(null==(e=this.queryOptions.where)?void 0:e.name)?this.columnResource.update(this.tableName,this.queryOptions.where.name,this.updateData):{error:{code:"MISSING_COLUMN_NAME",message:"Column name is required for update operation"}}}async delete(){var e;return(null==(e=this.queryOptions.where)?void 0:e.name)?this.columnResource.delete(this.tableName,this.queryOptions.where.name):{error:{code:"MISSING_COLUMN_NAME",message:"Column name is required for delete operation"}}}getQueryOptions(){return{...this.queryOptions}}getUpdateData(){return{...this.updateData}}}exports.ApiError=e.ApiError,exports.BolticClient=e.BolticClient,exports.ENV_CONFIGS=e.ENV_CONFIGS,exports.FILTER_OPERATORS=e.FILTER_OPERATORS,exports.FilterBuilder=e.FilterBuilder,exports.REGION_CONFIGS=e.REGION_CONFIGS,exports.SqlResource=e.SqlResource,exports.ValidationError=e.ValidationError,exports.buildApiFilters=e.buildApiFilters,exports.createErrorResponse=e.createErrorResponse,exports.createErrorWithContext=e.createErrorWithContext,exports.createFilter=e.createFilter,exports.createMockResponse=e.createMockResponse,exports.createRecordBuilder=e.createRecordBuilder,exports.createTableBuilder=e.createTableBuilder,exports.createTestClient=e.createTestClient,exports.formatError=e.formatError,exports.getHttpStatusCode=e.getHttpStatusCode,exports.isErrorResponse=e.isErrorResponse,exports.isListResponse=e.isListResponse,exports.isNetworkError=e.isNetworkError,exports.mapFiltersToWhere=e.mapFiltersToWhere,exports.mapWhereToFilters=e.mapWhereToFilters,exports.normalizeFilters=e.normalizeFilters,exports.ColumnHelpers=class{static fieldToUpdateRequest(e){return{name:e.name,type:e.type,description:e.description,is_nullable:e.is_nullable,is_unique:e.is_unique,is_indexed:e.is_indexed,is_visible:e.is_visible,is_primary_key:e.is_primary_key,is_readonly:e.is_readonly,field_order:e.field_order,default_value:e.default_value,alignment:e.alignment,decimals:e.decimals,currency_format:e.currency_format,selectable_items:e.selectable_items,multiple_selections:e.multiple_selections,phone_format:e.phone_format,date_format:e.date_format,time_format:e.time_format,timezone:e.timezone,vector_dimension:e.vector_dimension}}static applyDefaultValues(e){if(!e.name||!e.type)throw new Error("Column name and type are required");return{name:e.name,type:e.type,is_nullable:!0,is_unique:!1,is_indexed:!1,is_primary_key:!1,is_visible:!0,is_readonly:!1,field_order:1,alignment:"left",multiple_selections:!1,...e}}static createColumnDefinition(e,i,r={}){return this.applyDefaultValues({name:e,type:i,...r})}static getColumnTypeDisplayName(e){return{text:"Text","long-text":"Long Text",number:"Number",currency:"Currency",checkbox:"Checkbox",dropdown:"Dropdown",email:"Email","phone-number":"Phone Number",link:"Link",json:"JSON","date-time":"Date & Time",vector:"Vector",halfvec:"Half Vector",sparsevec:"Sparse Vector"}[e]||e}},exports.SchemaHelpers=class{static textField(e,i={}){return{name:e,type:"text",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,...i}}static numberField(e,i={}){return{name:e,type:"number",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,decimals:"0.00",...i}}static currencyField(e,i="USD",r={}){return{name:e,type:"currency",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,decimals:"0.00",currency_format:i,...r}}static dropdownField(e,i,r={}){return{name:e,type:"dropdown",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,selection_source:"provide-static-list",selectable_items:i,multiple_selections:!1,...r}}static vectorField(e,i,r={}){return{name:e,type:"vector",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,vector_dimension:i,...r}}static jsonField(e,i={}){return{name:e,type:"json",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,...i}}static dateTimeField(e,i={}){return{name:e,type:"date-time",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,date_format:"YYYY-MM-DD",time_format:"HH:mm:ss",...i}}static emailField(e,i={}){return{name:e,type:"email",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,...i}}static longTextField(e,i={}){return{name:e,type:"long-text",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,...i}}static linkField(e,i={}){return{name:e,type:"link",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,...i}}static phoneNumberField(e,i="international",r={}){return{name:e,type:"phone-number",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,phone_format:i,...r}}static checkboxField(e,i={}){return{name:e,type:"checkbox",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,default_value:!1,...i}}static halfVectorField(e,i,r={}){return{name:e,type:"halfvec",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,vector_dimension:i,...r}}static sparseVectorField(e,i,r={}){return{name:e,type:"sparsevec",is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:1,vector_dimension:i,...r}}static createBasicSchema(e){return e.map((e,i)=>({name:e.name,type:e.type,is_nullable:!0,is_primary_key:!1,is_unique:!1,is_visible:!0,is_readonly:!1,is_indexed:!1,field_order:i+1}))}},exports.VERSION="1.0.0",exports.createClient=function(i,r={}){return new e.BolticClient(i,r)},exports.createColumnBuilder=function(e){return new i(e)};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/client/resources/column-builder.ts","../src/utils/column/helpers.ts","../src/utils/table/schema-helpers.ts","../src/index.ts","../src/client/index.ts"],"sourcesContent":["import {\n ColumnDetails,\n ColumnQueryOptions,\n ColumnUpdateRequest,\n} from '../../types/api/column';\nimport {\n BolticErrorResponse,\n BolticListResponse,\n BolticSuccessResponse,\n} from '../../types/common/responses';\nimport { ColumnResource } from './column';\n\nexport interface ColumnBuilderOptions {\n tableName: string;\n columnResource: ColumnResource;\n}\n\n/**\n * Column Builder - provides a fluent interface for building column queries and operations\n */\nexport class ColumnBuilder {\n private tableName: string;\n private columnResource: ColumnResource;\n private queryOptions: ColumnQueryOptions = {};\n private updateData: ColumnUpdateRequest = {};\n\n constructor(options: ColumnBuilderOptions) {\n this.tableName = options.tableName;\n this.columnResource = options.columnResource;\n }\n\n /**\n * Add filter conditions\n */\n where(conditions: Partial<ColumnQueryOptions['where']>): ColumnBuilder {\n this.queryOptions.where = { ...this.queryOptions.where, ...conditions };\n return this;\n }\n\n /**\n * Set sorting\n */\n orderBy(\n field: keyof ColumnDetails,\n direction: 'asc' | 'desc' = 'asc'\n ): ColumnBuilder {\n if (!this.queryOptions.sort) {\n this.queryOptions.sort = [];\n }\n this.queryOptions.sort.push({ field, order: direction });\n return this;\n }\n\n /**\n * Set limit\n */\n limit(count: number): ColumnBuilder {\n this.queryOptions.limit = count;\n return this;\n }\n\n /**\n * Set offset\n */\n offset(count: number): ColumnBuilder {\n this.queryOptions.offset = count;\n return this;\n }\n\n /**\n * Set fields to select\n */\n select(fields: Array<keyof ColumnDetails>): ColumnBuilder {\n this.queryOptions.fields = fields;\n return this;\n }\n\n /**\n * Set data for update operations\n */\n set(data: ColumnUpdateRequest): ColumnBuilder {\n this.updateData = { ...this.updateData, ...data };\n return this;\n }\n\n /**\n * Execute findAll operation\n */\n async findAll(): Promise<\n BolticListResponse<ColumnDetails> | BolticErrorResponse\n > {\n return this.columnResource.findAll(this.tableName, this.queryOptions);\n }\n\n /**\n * Execute get operation (was findOne) - requires column name\n */\n async get(): Promise<\n BolticSuccessResponse<ColumnDetails> | BolticErrorResponse\n > {\n if (!this.queryOptions.where?.name) {\n return {\n data: {},\n error: {\n code: 'MISSING_COLUMN_NAME',\n message: 'Column name is required for get operation',\n },\n };\n }\n\n return this.columnResource.get(\n this.tableName,\n this.queryOptions.where.name as string\n );\n }\n\n /**\n * Execute update operation - requires column name\n */\n async update(): Promise<\n BolticSuccessResponse<ColumnDetails> | BolticErrorResponse\n > {\n if (!this.queryOptions.where?.name) {\n return {\n data: {},\n error: {\n code: 'MISSING_COLUMN_NAME',\n message: 'Column name is required for update operation',\n },\n };\n }\n\n return this.columnResource.update(\n this.tableName,\n this.queryOptions.where.name as string,\n this.updateData\n );\n }\n\n /**\n * Execute delete operation - requires column name\n */\n async delete(): Promise<\n | BolticSuccessResponse<{ success: boolean; message?: string }>\n | BolticErrorResponse\n > {\n if (!this.queryOptions.where?.name) {\n return {\n data: {},\n error: {\n code: 'MISSING_COLUMN_NAME',\n message: 'Column name is required for delete operation',\n },\n };\n }\n\n return this.columnResource.delete(\n this.tableName,\n this.queryOptions.where.name as string\n );\n }\n\n /**\n * Get the built query options (for debugging)\n */\n getQueryOptions(): ColumnQueryOptions {\n return { ...this.queryOptions };\n }\n\n /**\n * Get the update data (for debugging)\n */\n getUpdateData(): ColumnUpdateRequest {\n return { ...this.updateData };\n }\n}\n\n/**\n * Create a new column builder\n */\nexport function createColumnBuilder(\n options: ColumnBuilderOptions\n): ColumnBuilder {\n return new ColumnBuilder(options);\n}\n","import {\n ColumnUpdateRequest,\n DateFormatEnum,\n DecimalType,\n PhoneFormatType,\n TimeFormatEnum,\n} from '../../types/api/column';\nimport { FieldDefinition, FieldType } from '../../types/api/table';\n\nexport class ColumnHelpers {\n /**\n * Convert FieldDefinition to ColumnUpdateRequest\n */\n static fieldToUpdateRequest(field: FieldDefinition): ColumnUpdateRequest {\n return {\n name: field.name,\n type: field.type,\n description: field.description,\n is_nullable: field.is_nullable,\n is_unique: field.is_unique,\n is_indexed: field.is_indexed,\n is_visible: field.is_visible,\n is_primary_key: field.is_primary_key,\n is_readonly: field.is_readonly,\n field_order: field.field_order,\n default_value: field.default_value,\n alignment: field.alignment,\n decimals: field.decimals as DecimalType,\n currency_format: field.currency_format,\n selectable_items: field.selectable_items,\n multiple_selections: field.multiple_selections,\n phone_format: field.phone_format as PhoneFormatType,\n date_format: field.date_format as keyof typeof DateFormatEnum,\n time_format: field.time_format as keyof typeof TimeFormatEnum,\n timezone: field.timezone,\n vector_dimension: field.vector_dimension,\n };\n }\n\n /**\n * Apply default values to column definition\n */\n static applyDefaultValues(column: Partial<FieldDefinition>): FieldDefinition {\n if (!column.name || !column.type) {\n throw new Error('Column name and type are required');\n }\n\n return {\n name: column.name,\n type: column.type,\n is_nullable: true,\n is_unique: false,\n is_indexed: false,\n is_primary_key: false,\n is_visible: true,\n is_readonly: false,\n field_order: 1,\n alignment: 'left',\n multiple_selections: false,\n ...column,\n };\n }\n\n /**\n * Create a column definition with proper defaults\n */\n static createColumnDefinition(\n name: string,\n type: FieldType,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return this.applyDefaultValues({\n name,\n type,\n ...options,\n });\n }\n\n /**\n * Get column type display name\n */\n static getColumnTypeDisplayName(type: FieldType): string {\n const typeNames: Record<FieldType, string> = {\n text: 'Text',\n 'long-text': 'Long Text',\n number: 'Number',\n currency: 'Currency',\n checkbox: 'Checkbox',\n dropdown: 'Dropdown',\n email: 'Email',\n 'phone-number': 'Phone Number',\n link: 'Link',\n json: 'JSON',\n 'date-time': 'Date & Time',\n vector: 'Vector',\n halfvec: 'Half Vector',\n sparsevec: 'Sparse Vector',\n };\n\n return typeNames[type] || type;\n }\n}\n","import { FieldDefinition, FieldType } from '../../types/api/table';\n\nexport class SchemaHelpers {\n /**\n * Create a text field definition\n */\n static textField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'text',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a number field definition\n */\n static numberField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'number',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n decimals: '0.00',\n ...options,\n };\n }\n\n /**\n * Create a currency field definition\n */\n static currencyField(\n name: string,\n currency: string = 'USD',\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'currency',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n decimals: '0.00',\n currency_format: currency,\n ...options,\n };\n }\n\n /**\n * Create a dropdown field definition\n */\n static dropdownField(\n name: string,\n items: string[],\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'dropdown',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n selection_source: 'provide-static-list',\n selectable_items: items,\n multiple_selections: false,\n ...options,\n };\n }\n\n /**\n * Create a vector field definition\n */\n static vectorField(\n name: string,\n dimension: number,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'vector',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n vector_dimension: dimension,\n ...options,\n };\n }\n\n /**\n * Create a JSON field definition\n */\n static jsonField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'json',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a date-time field definition\n */\n static dateTimeField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'date-time',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n date_format: 'YYYY-MM-DD',\n time_format: 'HH:mm:ss',\n ...options,\n };\n }\n\n /**\n * Create an email field definition\n */\n static emailField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'email',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a long-text field definition\n */\n static longTextField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'long-text',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a link field definition\n */\n static linkField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'link',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a phone number field definition\n */\n static phoneNumberField(\n name: string,\n format: string = 'international',\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'phone-number',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n phone_format: format,\n ...options,\n };\n }\n\n /**\n * Create a checkbox field definition\n */\n static checkboxField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'checkbox',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n default_value: false,\n ...options,\n };\n }\n\n /**\n * Create a half-vector field definition\n */\n static halfVectorField(\n name: string,\n dimension: number,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'halfvec',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n vector_dimension: dimension,\n ...options,\n };\n }\n\n /**\n * Create a sparse vector field definition\n */\n static sparseVectorField(\n name: string,\n dimension: number,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'sparsevec',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n vector_dimension: dimension,\n ...options,\n };\n }\n\n /**\n * Create a basic schema from field definitions\n */\n static createBasicSchema(\n fields: Array<{ name: string; type: FieldType }>\n ): FieldDefinition[] {\n return fields.map((field, index) => ({\n name: field.name,\n type: field.type,\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: index + 1,\n }));\n }\n}\n","// Main SDK exports\nexport { BolticClient, createClient } from './client';\nexport type { ClientOptions } from './client';\n\n// Type exports for external use\nexport type {\n ColumnDetails,\n ColumnQueryOptions,\n ColumnUpdateRequest,\n} from './types/api/column';\nexport type {\n RecordData,\n RecordDeleteOptions,\n RecordQueryOptions,\n RecordWithId,\n} from './types/api/record';\nexport type {\n FieldDefinition,\n TableCreateRequest,\n TableRecord,\n TableUpdateRequest,\n} from './types/api/table';\n\n// Response types and helpers - Essential for type checking\nexport { isErrorResponse, isListResponse } from './types/common/responses';\nexport type {\n ApiResponse,\n BolticErrorResponse,\n BolticListResponse,\n BolticSuccessResponse,\n BulkResponse,\n ErrorResponse,\n QueryOptions,\n SuccessResponse,\n} from './types/common/responses';\n\n// Pagination and operation types\nexport type { PaginationInfo } from './types/common/operations';\n\n// Utility classes for schema and column management\nexport { ColumnHelpers } from './utils/column/helpers';\nexport { SchemaHelpers } from './utils/table/schema-helpers';\n\n// Filter utilities and constants\nexport {\n buildApiFilters,\n createFilter,\n FILTER_OPERATORS,\n FilterBuilder,\n mapFiltersToWhere,\n mapWhereToFilters,\n normalizeFilters,\n} from './utils/filters/filter-mapper';\nexport type { ApiFilter } from './utils/filters/filter-mapper';\n\n// Builder creation functions\nexport { createColumnBuilder } from './client/resources/column-builder';\nexport { createRecordBuilder } from './client/resources/record-builder';\nexport { createTableBuilder } from './client/resources/table-builder';\n\n// Error handling utilities\nexport {\n ApiError,\n createErrorWithContext,\n formatError,\n getHttpStatusCode,\n isNetworkError,\n ValidationError,\n} from './errors/utils';\nexport type { ValidationFailure } from './errors/utils';\n\n// HTTP adapter types for advanced users\nexport type {\n HttpAdapter,\n HttpRequestConfig,\n HttpResponse,\n} from './utils/http/adapter';\n\n// Testing utilities for SDK users\nexport {\n createErrorResponse,\n createMockResponse,\n createTestClient,\n} from './testing/test-client';\nexport type { MockClientOptions } from './testing/test-client';\n\n// Export all errors\nexport * from './errors';\n\n// Export all types\nexport * from './types';\n\n// SQL exports\nexport * from './client/resources/sql';\n\n// Version information\nexport const VERSION = '1.0.0';\n","import { BolticClient, ClientOptions } from './boltic-client';\n\nexport function createClient(\n apiKey: string,\n options: ClientOptions = {}\n): BolticClient {\n return new BolticClient(apiKey, options);\n}\n\nexport type { Region } from '../types/config/environment';\nexport * from './core/auth-manager';\nexport * from './core/base-client';\nexport * from './core/base-resource';\nexport * from './core/config';\nexport * from './resources/record';\nexport * from './resources/record-builder';\nexport * from './resources/table';\nexport {\n createTableBuilder,\n TableBuilder,\n type TableBuilderOptions,\n} from './resources/table-builder';\nexport { BolticClient };\nexport type { ClientOptions };\n"],"names":["ColumnBuilder","constructor","options","this","queryOptions","updateData","tableName","columnResource","where","conditions","orderBy","field","direction","sort","push","order","limit","count","offset","select","fields","set","data","findAll","get","_a","name","error","code","message","update","delete","getQueryOptions","getUpdateData","fieldToUpdateRequest","type","description","is_nullable","is_unique","is_indexed","is_visible","is_primary_key","is_readonly","field_order","default_value","alignment","decimals","currency_format","selectable_items","multiple_selections","phone_format","date_format","time_format","timezone","vector_dimension","applyDefaultValues","column","Error","createColumnDefinition","getColumnTypeDisplayName","text","number","currency","checkbox","dropdown","email","link","json","vector","halfvec","sparsevec","textField","numberField","currencyField","dropdownField","items","selection_source","vectorField","dimension","jsonField","dateTimeField","emailField","longTextField","linkField","phoneNumberField","format","checkboxField","halfVectorField","sparseVectorField","createBasicSchema","map","index","apiKey","BolticClient"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/client/resources/column-builder.ts","../src/utils/column/helpers.ts","../src/utils/table/schema-helpers.ts","../src/index.ts","../src/client/index.ts"],"sourcesContent":["import {\n ColumnDetails,\n ColumnQueryOptions,\n ColumnUpdateRequest,\n} from '../../types/api/column';\nimport {\n BolticErrorResponse,\n BolticListResponse,\n BolticSuccessResponse,\n} from '../../types/common/responses';\nimport { ColumnResource } from './column';\n\nexport interface ColumnBuilderOptions {\n tableName: string;\n columnResource: ColumnResource;\n}\n\n/**\n * Column Builder - provides a fluent interface for building column queries and operations\n */\nexport class ColumnBuilder {\n private tableName: string;\n private columnResource: ColumnResource;\n private queryOptions: ColumnQueryOptions = {};\n private updateData: ColumnUpdateRequest = {};\n\n constructor(options: ColumnBuilderOptions) {\n this.tableName = options.tableName;\n this.columnResource = options.columnResource;\n }\n\n /**\n * Add filter conditions\n */\n where(conditions: Partial<ColumnQueryOptions['where']>): ColumnBuilder {\n this.queryOptions.where = { ...this.queryOptions.where, ...conditions };\n return this;\n }\n\n /**\n * Set sorting\n */\n orderBy(\n field: keyof ColumnDetails,\n direction: 'asc' | 'desc' = 'asc'\n ): ColumnBuilder {\n if (!this.queryOptions.sort) {\n this.queryOptions.sort = [];\n }\n this.queryOptions.sort.push({ field, order: direction });\n return this;\n }\n\n /**\n * Set limit\n */\n limit(count: number): ColumnBuilder {\n this.queryOptions.limit = count;\n return this;\n }\n\n /**\n * Set offset\n */\n offset(count: number): ColumnBuilder {\n this.queryOptions.offset = count;\n return this;\n }\n\n /**\n * Set fields to select\n */\n select(fields: Array<keyof ColumnDetails>): ColumnBuilder {\n this.queryOptions.fields = fields;\n return this;\n }\n\n /**\n * Set data for update operations\n */\n set(data: ColumnUpdateRequest): ColumnBuilder {\n this.updateData = { ...this.updateData, ...data };\n return this;\n }\n\n /**\n * Execute findAll operation\n */\n async findAll(): Promise<\n BolticListResponse<ColumnDetails> | BolticErrorResponse\n > {\n return this.columnResource.findAll(this.tableName, this.queryOptions);\n }\n\n /**\n * Execute get operation (was findOne) - requires column name\n */\n async get(): Promise<\n BolticSuccessResponse<ColumnDetails> | BolticErrorResponse\n > {\n if (!this.queryOptions.where?.name) {\n return {\n error: {\n code: 'MISSING_COLUMN_NAME',\n message: 'Column name is required for get operation',\n },\n };\n }\n\n return this.columnResource.get(\n this.tableName,\n this.queryOptions.where.name as string\n );\n }\n\n /**\n * Execute update operation - requires column name\n */\n async update(): Promise<\n BolticSuccessResponse<ColumnDetails> | BolticErrorResponse\n > {\n if (!this.queryOptions.where?.name) {\n return {\n error: {\n code: 'MISSING_COLUMN_NAME',\n message: 'Column name is required for update operation',\n },\n };\n }\n\n return this.columnResource.update(\n this.tableName,\n this.queryOptions.where.name as string,\n this.updateData\n );\n }\n\n /**\n * Execute delete operation - requires column name\n */\n async delete(): Promise<\n | BolticSuccessResponse<{ success: boolean; message?: string }>\n | BolticErrorResponse\n > {\n if (!this.queryOptions.where?.name) {\n return {\n error: {\n code: 'MISSING_COLUMN_NAME',\n message: 'Column name is required for delete operation',\n },\n };\n }\n\n return this.columnResource.delete(\n this.tableName,\n this.queryOptions.where.name as string\n );\n }\n\n /**\n * Get the built query options (for debugging)\n */\n getQueryOptions(): ColumnQueryOptions {\n return { ...this.queryOptions };\n }\n\n /**\n * Get the update data (for debugging)\n */\n getUpdateData(): ColumnUpdateRequest {\n return { ...this.updateData };\n }\n}\n\n/**\n * Create a new column builder\n */\nexport function createColumnBuilder(\n options: ColumnBuilderOptions\n): ColumnBuilder {\n return new ColumnBuilder(options);\n}\n","import {\n ColumnUpdateRequest,\n DateFormatEnum,\n DecimalType,\n PhoneFormatType,\n TimeFormatEnum,\n} from '../../types/api/column';\nimport { FieldDefinition, FieldType } from '../../types/api/table';\n\nexport class ColumnHelpers {\n /**\n * Convert FieldDefinition to ColumnUpdateRequest\n */\n static fieldToUpdateRequest(field: FieldDefinition): ColumnUpdateRequest {\n return {\n name: field.name,\n type: field.type,\n description: field.description,\n is_nullable: field.is_nullable,\n is_unique: field.is_unique,\n is_indexed: field.is_indexed,\n is_visible: field.is_visible,\n is_primary_key: field.is_primary_key,\n is_readonly: field.is_readonly,\n field_order: field.field_order,\n default_value: field.default_value,\n alignment: field.alignment,\n decimals: field.decimals as DecimalType,\n currency_format: field.currency_format,\n selectable_items: field.selectable_items,\n multiple_selections: field.multiple_selections,\n phone_format: field.phone_format as PhoneFormatType,\n date_format: field.date_format as keyof typeof DateFormatEnum,\n time_format: field.time_format as keyof typeof TimeFormatEnum,\n timezone: field.timezone,\n vector_dimension: field.vector_dimension,\n };\n }\n\n /**\n * Apply default values to column definition\n */\n static applyDefaultValues(column: Partial<FieldDefinition>): FieldDefinition {\n if (!column.name || !column.type) {\n throw new Error('Column name and type are required');\n }\n\n return {\n name: column.name,\n type: column.type,\n is_nullable: true,\n is_unique: false,\n is_indexed: false,\n is_primary_key: false,\n is_visible: true,\n is_readonly: false,\n field_order: 1,\n alignment: 'left',\n multiple_selections: false,\n ...column,\n };\n }\n\n /**\n * Create a column definition with proper defaults\n */\n static createColumnDefinition(\n name: string,\n type: FieldType,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return this.applyDefaultValues({\n name,\n type,\n ...options,\n });\n }\n\n /**\n * Get column type display name\n */\n static getColumnTypeDisplayName(type: FieldType): string {\n const typeNames: Record<FieldType, string> = {\n text: 'Text',\n 'long-text': 'Long Text',\n number: 'Number',\n currency: 'Currency',\n checkbox: 'Checkbox',\n dropdown: 'Dropdown',\n email: 'Email',\n 'phone-number': 'Phone Number',\n link: 'Link',\n json: 'JSON',\n 'date-time': 'Date & Time',\n vector: 'Vector',\n halfvec: 'Half Vector',\n sparsevec: 'Sparse Vector',\n };\n\n return typeNames[type] || type;\n }\n}\n","import { FieldDefinition, FieldType } from '../../types/api/table';\n\nexport class SchemaHelpers {\n /**\n * Create a text field definition\n */\n static textField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'text',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a number field definition\n */\n static numberField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'number',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n decimals: '0.00',\n ...options,\n };\n }\n\n /**\n * Create a currency field definition\n */\n static currencyField(\n name: string,\n currency: string = 'USD',\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'currency',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n decimals: '0.00',\n currency_format: currency,\n ...options,\n };\n }\n\n /**\n * Create a dropdown field definition\n */\n static dropdownField(\n name: string,\n items: string[],\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'dropdown',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n selection_source: 'provide-static-list',\n selectable_items: items,\n multiple_selections: false,\n ...options,\n };\n }\n\n /**\n * Create a vector field definition\n */\n static vectorField(\n name: string,\n dimension: number,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'vector',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n vector_dimension: dimension,\n ...options,\n };\n }\n\n /**\n * Create a JSON field definition\n */\n static jsonField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'json',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a date-time field definition\n */\n static dateTimeField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'date-time',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n date_format: 'YYYY-MM-DD',\n time_format: 'HH:mm:ss',\n ...options,\n };\n }\n\n /**\n * Create an email field definition\n */\n static emailField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'email',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a long-text field definition\n */\n static longTextField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'long-text',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a link field definition\n */\n static linkField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'link',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a phone number field definition\n */\n static phoneNumberField(\n name: string,\n format: string = 'international',\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'phone-number',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n phone_format: format,\n ...options,\n };\n }\n\n /**\n * Create a checkbox field definition\n */\n static checkboxField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'checkbox',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n default_value: false,\n ...options,\n };\n }\n\n /**\n * Create a half-vector field definition\n */\n static halfVectorField(\n name: string,\n dimension: number,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'halfvec',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n vector_dimension: dimension,\n ...options,\n };\n }\n\n /**\n * Create a sparse vector field definition\n */\n static sparseVectorField(\n name: string,\n dimension: number,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'sparsevec',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n vector_dimension: dimension,\n ...options,\n };\n }\n\n /**\n * Create a basic schema from field definitions\n */\n static createBasicSchema(\n fields: Array<{ name: string; type: FieldType }>\n ): FieldDefinition[] {\n return fields.map((field, index) => ({\n name: field.name,\n type: field.type,\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: index + 1,\n }));\n }\n}\n","// Main SDK exports\nexport { BolticClient, createClient } from './client';\nexport type { ClientOptions } from './client';\n\n// Type exports for external use\nexport type {\n ColumnDetails,\n ColumnQueryOptions,\n ColumnUpdateRequest,\n} from './types/api/column';\nexport type {\n RecordData,\n RecordDeleteOptions,\n RecordQueryOptions,\n RecordWithId,\n} from './types/api/record';\nexport type {\n FieldDefinition,\n TableCreateRequest,\n TableRecord,\n TableUpdateRequest,\n} from './types/api/table';\n\n// Response types and helpers - Essential for type checking\nexport { isErrorResponse, isListResponse } from './types/common/responses';\nexport type {\n ApiResponse,\n BolticErrorResponse,\n BolticListResponse,\n BolticSuccessResponse,\n BulkResponse,\n ErrorResponse,\n QueryOptions,\n SuccessResponse,\n} from './types/common/responses';\n\n// Pagination and operation types\nexport type { PaginationInfo } from './types/common/operations';\n\n// Utility classes for schema and column management\nexport { ColumnHelpers } from './utils/column/helpers';\nexport { SchemaHelpers } from './utils/table/schema-helpers';\n\n// Filter utilities and constants\nexport {\n buildApiFilters,\n createFilter,\n FILTER_OPERATORS,\n FilterBuilder,\n mapFiltersToWhere,\n mapWhereToFilters,\n normalizeFilters,\n} from './utils/filters/filter-mapper';\nexport type { ApiFilter } from './utils/filters/filter-mapper';\n\n// Builder creation functions\nexport { createColumnBuilder } from './client/resources/column-builder';\nexport { createRecordBuilder } from './client/resources/record-builder';\nexport { createTableBuilder } from './client/resources/table-builder';\n\n// Error handling utilities\nexport {\n ApiError,\n createErrorWithContext,\n formatError,\n getHttpStatusCode,\n isNetworkError,\n ValidationError,\n} from './errors/utils';\nexport type { ValidationFailure } from './errors/utils';\n\n// HTTP adapter types for advanced users\nexport type {\n HttpAdapter,\n HttpRequestConfig,\n HttpResponse,\n} from './utils/http/adapter';\n\n// Testing utilities for SDK users\nexport {\n createErrorResponse,\n createMockResponse,\n createTestClient,\n} from './testing/test-client';\nexport type { MockClientOptions } from './testing/test-client';\n\n// Export all errors\nexport * from './errors';\n\n// Export all types\nexport * from './types';\n\n// SQL exports\nexport * from './client/resources/sql';\n\n// Version information\nexport const VERSION = '1.0.0';\n","import { BolticClient, ClientOptions } from './boltic-client';\n\nexport function createClient(\n apiKey: string,\n options: ClientOptions = {}\n): BolticClient {\n return new BolticClient(apiKey, options);\n}\n\nexport type { Region } from '../types/config/environment';\nexport * from './core/auth-manager';\nexport * from './core/base-client';\nexport * from './core/base-resource';\nexport * from './core/config';\nexport * from './resources/record';\nexport * from './resources/record-builder';\nexport * from './resources/table';\nexport {\n createTableBuilder,\n TableBuilder,\n type TableBuilderOptions,\n} from './resources/table-builder';\nexport { BolticClient };\nexport type { ClientOptions };\n"],"names":["ColumnBuilder","constructor","options","this","queryOptions","updateData","tableName","columnResource","where","conditions","orderBy","field","direction","sort","push","order","limit","count","offset","select","fields","set","data","findAll","get","_a","name","error","code","message","update","delete","getQueryOptions","getUpdateData","fieldToUpdateRequest","type","description","is_nullable","is_unique","is_indexed","is_visible","is_primary_key","is_readonly","field_order","default_value","alignment","decimals","currency_format","selectable_items","multiple_selections","phone_format","date_format","time_format","timezone","vector_dimension","applyDefaultValues","column","Error","createColumnDefinition","getColumnTypeDisplayName","text","number","currency","checkbox","dropdown","email","link","json","vector","halfvec","sparsevec","textField","numberField","currencyField","dropdownField","items","selection_source","vectorField","dimension","jsonField","dateTimeField","emailField","longTextField","linkField","phoneNumberField","format","checkboxField","halfVectorField","sparseVectorField","createBasicSchema","map","index","apiKey","BolticClient"],"mappings":"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"}
|
package/dist/databases/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as BolticClient } from "./test-client-
|
|
2
|
-
import { A, E, F, d, R, S, V, b, o, h, c, p, f, g, q, j, k, i, a, l, m, e, n } from "./test-client-
|
|
1
|
+
import { B as BolticClient } from "./test-client-BffJwqJq.mjs";
|
|
2
|
+
import { A, E, F, d, R, S, V, b, o, h, c, p, f, g, q, j, k, i, a, l, m, e, n } from "./test-client-BffJwqJq.mjs";
|
|
3
3
|
function createClient(apiKey, options = {}) {
|
|
4
4
|
return new BolticClient(apiKey, options);
|
|
5
5
|
}
|
|
@@ -421,7 +421,6 @@ class ColumnBuilder {
|
|
|
421
421
|
var _a;
|
|
422
422
|
if (!((_a = this.queryOptions.where) == null ? void 0 : _a.name)) {
|
|
423
423
|
return {
|
|
424
|
-
data: {},
|
|
425
424
|
error: {
|
|
426
425
|
code: "MISSING_COLUMN_NAME",
|
|
427
426
|
message: "Column name is required for get operation"
|
|
@@ -440,7 +439,6 @@ class ColumnBuilder {
|
|
|
440
439
|
var _a;
|
|
441
440
|
if (!((_a = this.queryOptions.where) == null ? void 0 : _a.name)) {
|
|
442
441
|
return {
|
|
443
|
-
data: {},
|
|
444
442
|
error: {
|
|
445
443
|
code: "MISSING_COLUMN_NAME",
|
|
446
444
|
message: "Column name is required for update operation"
|
|
@@ -460,7 +458,6 @@ class ColumnBuilder {
|
|
|
460
458
|
var _a;
|
|
461
459
|
if (!((_a = this.queryOptions.where) == null ? void 0 : _a.name)) {
|
|
462
460
|
return {
|
|
463
|
-
data: {},
|
|
464
461
|
error: {
|
|
465
462
|
code: "MISSING_COLUMN_NAME",
|
|
466
463
|
message: "Column name is required for delete operation"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/client/index.ts","../src/utils/column/helpers.ts","../src/utils/table/schema-helpers.ts","../src/client/resources/column-builder.ts","../src/index.ts"],"sourcesContent":["import { BolticClient, ClientOptions } from './boltic-client';\n\nexport function createClient(\n apiKey: string,\n options: ClientOptions = {}\n): BolticClient {\n return new BolticClient(apiKey, options);\n}\n\nexport type { Region } from '../types/config/environment';\nexport * from './core/auth-manager';\nexport * from './core/base-client';\nexport * from './core/base-resource';\nexport * from './core/config';\nexport * from './resources/record';\nexport * from './resources/record-builder';\nexport * from './resources/table';\nexport {\n createTableBuilder,\n TableBuilder,\n type TableBuilderOptions,\n} from './resources/table-builder';\nexport { BolticClient };\nexport type { ClientOptions };\n","import {\n ColumnUpdateRequest,\n DateFormatEnum,\n DecimalType,\n PhoneFormatType,\n TimeFormatEnum,\n} from '../../types/api/column';\nimport { FieldDefinition, FieldType } from '../../types/api/table';\n\nexport class ColumnHelpers {\n /**\n * Convert FieldDefinition to ColumnUpdateRequest\n */\n static fieldToUpdateRequest(field: FieldDefinition): ColumnUpdateRequest {\n return {\n name: field.name,\n type: field.type,\n description: field.description,\n is_nullable: field.is_nullable,\n is_unique: field.is_unique,\n is_indexed: field.is_indexed,\n is_visible: field.is_visible,\n is_primary_key: field.is_primary_key,\n is_readonly: field.is_readonly,\n field_order: field.field_order,\n default_value: field.default_value,\n alignment: field.alignment,\n decimals: field.decimals as DecimalType,\n currency_format: field.currency_format,\n selectable_items: field.selectable_items,\n multiple_selections: field.multiple_selections,\n phone_format: field.phone_format as PhoneFormatType,\n date_format: field.date_format as keyof typeof DateFormatEnum,\n time_format: field.time_format as keyof typeof TimeFormatEnum,\n timezone: field.timezone,\n vector_dimension: field.vector_dimension,\n };\n }\n\n /**\n * Apply default values to column definition\n */\n static applyDefaultValues(column: Partial<FieldDefinition>): FieldDefinition {\n if (!column.name || !column.type) {\n throw new Error('Column name and type are required');\n }\n\n return {\n name: column.name,\n type: column.type,\n is_nullable: true,\n is_unique: false,\n is_indexed: false,\n is_primary_key: false,\n is_visible: true,\n is_readonly: false,\n field_order: 1,\n alignment: 'left',\n multiple_selections: false,\n ...column,\n };\n }\n\n /**\n * Create a column definition with proper defaults\n */\n static createColumnDefinition(\n name: string,\n type: FieldType,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return this.applyDefaultValues({\n name,\n type,\n ...options,\n });\n }\n\n /**\n * Get column type display name\n */\n static getColumnTypeDisplayName(type: FieldType): string {\n const typeNames: Record<FieldType, string> = {\n text: 'Text',\n 'long-text': 'Long Text',\n number: 'Number',\n currency: 'Currency',\n checkbox: 'Checkbox',\n dropdown: 'Dropdown',\n email: 'Email',\n 'phone-number': 'Phone Number',\n link: 'Link',\n json: 'JSON',\n 'date-time': 'Date & Time',\n vector: 'Vector',\n halfvec: 'Half Vector',\n sparsevec: 'Sparse Vector',\n };\n\n return typeNames[type] || type;\n }\n}\n","import { FieldDefinition, FieldType } from '../../types/api/table';\n\nexport class SchemaHelpers {\n /**\n * Create a text field definition\n */\n static textField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'text',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a number field definition\n */\n static numberField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'number',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n decimals: '0.00',\n ...options,\n };\n }\n\n /**\n * Create a currency field definition\n */\n static currencyField(\n name: string,\n currency: string = 'USD',\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'currency',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n decimals: '0.00',\n currency_format: currency,\n ...options,\n };\n }\n\n /**\n * Create a dropdown field definition\n */\n static dropdownField(\n name: string,\n items: string[],\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'dropdown',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n selection_source: 'provide-static-list',\n selectable_items: items,\n multiple_selections: false,\n ...options,\n };\n }\n\n /**\n * Create a vector field definition\n */\n static vectorField(\n name: string,\n dimension: number,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'vector',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n vector_dimension: dimension,\n ...options,\n };\n }\n\n /**\n * Create a JSON field definition\n */\n static jsonField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'json',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a date-time field definition\n */\n static dateTimeField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'date-time',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n date_format: 'YYYY-MM-DD',\n time_format: 'HH:mm:ss',\n ...options,\n };\n }\n\n /**\n * Create an email field definition\n */\n static emailField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'email',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a long-text field definition\n */\n static longTextField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'long-text',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a link field definition\n */\n static linkField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'link',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a phone number field definition\n */\n static phoneNumberField(\n name: string,\n format: string = 'international',\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'phone-number',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n phone_format: format,\n ...options,\n };\n }\n\n /**\n * Create a checkbox field definition\n */\n static checkboxField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'checkbox',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n default_value: false,\n ...options,\n };\n }\n\n /**\n * Create a half-vector field definition\n */\n static halfVectorField(\n name: string,\n dimension: number,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'halfvec',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n vector_dimension: dimension,\n ...options,\n };\n }\n\n /**\n * Create a sparse vector field definition\n */\n static sparseVectorField(\n name: string,\n dimension: number,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'sparsevec',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n vector_dimension: dimension,\n ...options,\n };\n }\n\n /**\n * Create a basic schema from field definitions\n */\n static createBasicSchema(\n fields: Array<{ name: string; type: FieldType }>\n ): FieldDefinition[] {\n return fields.map((field, index) => ({\n name: field.name,\n type: field.type,\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: index + 1,\n }));\n }\n}\n","import {\n ColumnDetails,\n ColumnQueryOptions,\n ColumnUpdateRequest,\n} from '../../types/api/column';\nimport {\n BolticErrorResponse,\n BolticListResponse,\n BolticSuccessResponse,\n} from '../../types/common/responses';\nimport { ColumnResource } from './column';\n\nexport interface ColumnBuilderOptions {\n tableName: string;\n columnResource: ColumnResource;\n}\n\n/**\n * Column Builder - provides a fluent interface for building column queries and operations\n */\nexport class ColumnBuilder {\n private tableName: string;\n private columnResource: ColumnResource;\n private queryOptions: ColumnQueryOptions = {};\n private updateData: ColumnUpdateRequest = {};\n\n constructor(options: ColumnBuilderOptions) {\n this.tableName = options.tableName;\n this.columnResource = options.columnResource;\n }\n\n /**\n * Add filter conditions\n */\n where(conditions: Partial<ColumnQueryOptions['where']>): ColumnBuilder {\n this.queryOptions.where = { ...this.queryOptions.where, ...conditions };\n return this;\n }\n\n /**\n * Set sorting\n */\n orderBy(\n field: keyof ColumnDetails,\n direction: 'asc' | 'desc' = 'asc'\n ): ColumnBuilder {\n if (!this.queryOptions.sort) {\n this.queryOptions.sort = [];\n }\n this.queryOptions.sort.push({ field, order: direction });\n return this;\n }\n\n /**\n * Set limit\n */\n limit(count: number): ColumnBuilder {\n this.queryOptions.limit = count;\n return this;\n }\n\n /**\n * Set offset\n */\n offset(count: number): ColumnBuilder {\n this.queryOptions.offset = count;\n return this;\n }\n\n /**\n * Set fields to select\n */\n select(fields: Array<keyof ColumnDetails>): ColumnBuilder {\n this.queryOptions.fields = fields;\n return this;\n }\n\n /**\n * Set data for update operations\n */\n set(data: ColumnUpdateRequest): ColumnBuilder {\n this.updateData = { ...this.updateData, ...data };\n return this;\n }\n\n /**\n * Execute findAll operation\n */\n async findAll(): Promise<\n BolticListResponse<ColumnDetails> | BolticErrorResponse\n > {\n return this.columnResource.findAll(this.tableName, this.queryOptions);\n }\n\n /**\n * Execute get operation (was findOne) - requires column name\n */\n async get(): Promise<\n BolticSuccessResponse<ColumnDetails> | BolticErrorResponse\n > {\n if (!this.queryOptions.where?.name) {\n return {\n data: {},\n error: {\n code: 'MISSING_COLUMN_NAME',\n message: 'Column name is required for get operation',\n },\n };\n }\n\n return this.columnResource.get(\n this.tableName,\n this.queryOptions.where.name as string\n );\n }\n\n /**\n * Execute update operation - requires column name\n */\n async update(): Promise<\n BolticSuccessResponse<ColumnDetails> | BolticErrorResponse\n > {\n if (!this.queryOptions.where?.name) {\n return {\n data: {},\n error: {\n code: 'MISSING_COLUMN_NAME',\n message: 'Column name is required for update operation',\n },\n };\n }\n\n return this.columnResource.update(\n this.tableName,\n this.queryOptions.where.name as string,\n this.updateData\n );\n }\n\n /**\n * Execute delete operation - requires column name\n */\n async delete(): Promise<\n | BolticSuccessResponse<{ success: boolean; message?: string }>\n | BolticErrorResponse\n > {\n if (!this.queryOptions.where?.name) {\n return {\n data: {},\n error: {\n code: 'MISSING_COLUMN_NAME',\n message: 'Column name is required for delete operation',\n },\n };\n }\n\n return this.columnResource.delete(\n this.tableName,\n this.queryOptions.where.name as string\n );\n }\n\n /**\n * Get the built query options (for debugging)\n */\n getQueryOptions(): ColumnQueryOptions {\n return { ...this.queryOptions };\n }\n\n /**\n * Get the update data (for debugging)\n */\n getUpdateData(): ColumnUpdateRequest {\n return { ...this.updateData };\n }\n}\n\n/**\n * Create a new column builder\n */\nexport function createColumnBuilder(\n options: ColumnBuilderOptions\n): ColumnBuilder {\n return new ColumnBuilder(options);\n}\n","// Main SDK exports\nexport { BolticClient, createClient } from './client';\nexport type { ClientOptions } from './client';\n\n// Type exports for external use\nexport type {\n ColumnDetails,\n ColumnQueryOptions,\n ColumnUpdateRequest,\n} from './types/api/column';\nexport type {\n RecordData,\n RecordDeleteOptions,\n RecordQueryOptions,\n RecordWithId,\n} from './types/api/record';\nexport type {\n FieldDefinition,\n TableCreateRequest,\n TableRecord,\n TableUpdateRequest,\n} from './types/api/table';\n\n// Response types and helpers - Essential for type checking\nexport { isErrorResponse, isListResponse } from './types/common/responses';\nexport type {\n ApiResponse,\n BolticErrorResponse,\n BolticListResponse,\n BolticSuccessResponse,\n BulkResponse,\n ErrorResponse,\n QueryOptions,\n SuccessResponse,\n} from './types/common/responses';\n\n// Pagination and operation types\nexport type { PaginationInfo } from './types/common/operations';\n\n// Utility classes for schema and column management\nexport { ColumnHelpers } from './utils/column/helpers';\nexport { SchemaHelpers } from './utils/table/schema-helpers';\n\n// Filter utilities and constants\nexport {\n buildApiFilters,\n createFilter,\n FILTER_OPERATORS,\n FilterBuilder,\n mapFiltersToWhere,\n mapWhereToFilters,\n normalizeFilters,\n} from './utils/filters/filter-mapper';\nexport type { ApiFilter } from './utils/filters/filter-mapper';\n\n// Builder creation functions\nexport { createColumnBuilder } from './client/resources/column-builder';\nexport { createRecordBuilder } from './client/resources/record-builder';\nexport { createTableBuilder } from './client/resources/table-builder';\n\n// Error handling utilities\nexport {\n ApiError,\n createErrorWithContext,\n formatError,\n getHttpStatusCode,\n isNetworkError,\n ValidationError,\n} from './errors/utils';\nexport type { ValidationFailure } from './errors/utils';\n\n// HTTP adapter types for advanced users\nexport type {\n HttpAdapter,\n HttpRequestConfig,\n HttpResponse,\n} from './utils/http/adapter';\n\n// Testing utilities for SDK users\nexport {\n createErrorResponse,\n createMockResponse,\n createTestClient,\n} from './testing/test-client';\nexport type { MockClientOptions } from './testing/test-client';\n\n// Export all errors\nexport * from './errors';\n\n// Export all types\nexport * from './types';\n\n// SQL exports\nexport * from './client/resources/sql';\n\n// Version information\nexport const VERSION = '1.0.0';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/client/index.ts","../src/utils/column/helpers.ts","../src/utils/table/schema-helpers.ts","../src/client/resources/column-builder.ts","../src/index.ts"],"sourcesContent":["import { BolticClient, ClientOptions } from './boltic-client';\n\nexport function createClient(\n apiKey: string,\n options: ClientOptions = {}\n): BolticClient {\n return new BolticClient(apiKey, options);\n}\n\nexport type { Region } from '../types/config/environment';\nexport * from './core/auth-manager';\nexport * from './core/base-client';\nexport * from './core/base-resource';\nexport * from './core/config';\nexport * from './resources/record';\nexport * from './resources/record-builder';\nexport * from './resources/table';\nexport {\n createTableBuilder,\n TableBuilder,\n type TableBuilderOptions,\n} from './resources/table-builder';\nexport { BolticClient };\nexport type { ClientOptions };\n","import {\n ColumnUpdateRequest,\n DateFormatEnum,\n DecimalType,\n PhoneFormatType,\n TimeFormatEnum,\n} from '../../types/api/column';\nimport { FieldDefinition, FieldType } from '../../types/api/table';\n\nexport class ColumnHelpers {\n /**\n * Convert FieldDefinition to ColumnUpdateRequest\n */\n static fieldToUpdateRequest(field: FieldDefinition): ColumnUpdateRequest {\n return {\n name: field.name,\n type: field.type,\n description: field.description,\n is_nullable: field.is_nullable,\n is_unique: field.is_unique,\n is_indexed: field.is_indexed,\n is_visible: field.is_visible,\n is_primary_key: field.is_primary_key,\n is_readonly: field.is_readonly,\n field_order: field.field_order,\n default_value: field.default_value,\n alignment: field.alignment,\n decimals: field.decimals as DecimalType,\n currency_format: field.currency_format,\n selectable_items: field.selectable_items,\n multiple_selections: field.multiple_selections,\n phone_format: field.phone_format as PhoneFormatType,\n date_format: field.date_format as keyof typeof DateFormatEnum,\n time_format: field.time_format as keyof typeof TimeFormatEnum,\n timezone: field.timezone,\n vector_dimension: field.vector_dimension,\n };\n }\n\n /**\n * Apply default values to column definition\n */\n static applyDefaultValues(column: Partial<FieldDefinition>): FieldDefinition {\n if (!column.name || !column.type) {\n throw new Error('Column name and type are required');\n }\n\n return {\n name: column.name,\n type: column.type,\n is_nullable: true,\n is_unique: false,\n is_indexed: false,\n is_primary_key: false,\n is_visible: true,\n is_readonly: false,\n field_order: 1,\n alignment: 'left',\n multiple_selections: false,\n ...column,\n };\n }\n\n /**\n * Create a column definition with proper defaults\n */\n static createColumnDefinition(\n name: string,\n type: FieldType,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return this.applyDefaultValues({\n name,\n type,\n ...options,\n });\n }\n\n /**\n * Get column type display name\n */\n static getColumnTypeDisplayName(type: FieldType): string {\n const typeNames: Record<FieldType, string> = {\n text: 'Text',\n 'long-text': 'Long Text',\n number: 'Number',\n currency: 'Currency',\n checkbox: 'Checkbox',\n dropdown: 'Dropdown',\n email: 'Email',\n 'phone-number': 'Phone Number',\n link: 'Link',\n json: 'JSON',\n 'date-time': 'Date & Time',\n vector: 'Vector',\n halfvec: 'Half Vector',\n sparsevec: 'Sparse Vector',\n };\n\n return typeNames[type] || type;\n }\n}\n","import { FieldDefinition, FieldType } from '../../types/api/table';\n\nexport class SchemaHelpers {\n /**\n * Create a text field definition\n */\n static textField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'text',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a number field definition\n */\n static numberField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'number',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n decimals: '0.00',\n ...options,\n };\n }\n\n /**\n * Create a currency field definition\n */\n static currencyField(\n name: string,\n currency: string = 'USD',\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'currency',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n decimals: '0.00',\n currency_format: currency,\n ...options,\n };\n }\n\n /**\n * Create a dropdown field definition\n */\n static dropdownField(\n name: string,\n items: string[],\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'dropdown',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n selection_source: 'provide-static-list',\n selectable_items: items,\n multiple_selections: false,\n ...options,\n };\n }\n\n /**\n * Create a vector field definition\n */\n static vectorField(\n name: string,\n dimension: number,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'vector',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n vector_dimension: dimension,\n ...options,\n };\n }\n\n /**\n * Create a JSON field definition\n */\n static jsonField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'json',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a date-time field definition\n */\n static dateTimeField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'date-time',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n date_format: 'YYYY-MM-DD',\n time_format: 'HH:mm:ss',\n ...options,\n };\n }\n\n /**\n * Create an email field definition\n */\n static emailField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'email',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a long-text field definition\n */\n static longTextField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'long-text',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a link field definition\n */\n static linkField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'link',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n ...options,\n };\n }\n\n /**\n * Create a phone number field definition\n */\n static phoneNumberField(\n name: string,\n format: string = 'international',\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'phone-number',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n phone_format: format,\n ...options,\n };\n }\n\n /**\n * Create a checkbox field definition\n */\n static checkboxField(\n name: string,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'checkbox',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n default_value: false,\n ...options,\n };\n }\n\n /**\n * Create a half-vector field definition\n */\n static halfVectorField(\n name: string,\n dimension: number,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'halfvec',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n vector_dimension: dimension,\n ...options,\n };\n }\n\n /**\n * Create a sparse vector field definition\n */\n static sparseVectorField(\n name: string,\n dimension: number,\n options: Partial<FieldDefinition> = {}\n ): FieldDefinition {\n return {\n name,\n type: 'sparsevec',\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: 1,\n vector_dimension: dimension,\n ...options,\n };\n }\n\n /**\n * Create a basic schema from field definitions\n */\n static createBasicSchema(\n fields: Array<{ name: string; type: FieldType }>\n ): FieldDefinition[] {\n return fields.map((field, index) => ({\n name: field.name,\n type: field.type,\n is_nullable: true,\n is_primary_key: false,\n is_unique: false,\n is_visible: true,\n is_readonly: false,\n is_indexed: false,\n field_order: index + 1,\n }));\n }\n}\n","import {\n ColumnDetails,\n ColumnQueryOptions,\n ColumnUpdateRequest,\n} from '../../types/api/column';\nimport {\n BolticErrorResponse,\n BolticListResponse,\n BolticSuccessResponse,\n} from '../../types/common/responses';\nimport { ColumnResource } from './column';\n\nexport interface ColumnBuilderOptions {\n tableName: string;\n columnResource: ColumnResource;\n}\n\n/**\n * Column Builder - provides a fluent interface for building column queries and operations\n */\nexport class ColumnBuilder {\n private tableName: string;\n private columnResource: ColumnResource;\n private queryOptions: ColumnQueryOptions = {};\n private updateData: ColumnUpdateRequest = {};\n\n constructor(options: ColumnBuilderOptions) {\n this.tableName = options.tableName;\n this.columnResource = options.columnResource;\n }\n\n /**\n * Add filter conditions\n */\n where(conditions: Partial<ColumnQueryOptions['where']>): ColumnBuilder {\n this.queryOptions.where = { ...this.queryOptions.where, ...conditions };\n return this;\n }\n\n /**\n * Set sorting\n */\n orderBy(\n field: keyof ColumnDetails,\n direction: 'asc' | 'desc' = 'asc'\n ): ColumnBuilder {\n if (!this.queryOptions.sort) {\n this.queryOptions.sort = [];\n }\n this.queryOptions.sort.push({ field, order: direction });\n return this;\n }\n\n /**\n * Set limit\n */\n limit(count: number): ColumnBuilder {\n this.queryOptions.limit = count;\n return this;\n }\n\n /**\n * Set offset\n */\n offset(count: number): ColumnBuilder {\n this.queryOptions.offset = count;\n return this;\n }\n\n /**\n * Set fields to select\n */\n select(fields: Array<keyof ColumnDetails>): ColumnBuilder {\n this.queryOptions.fields = fields;\n return this;\n }\n\n /**\n * Set data for update operations\n */\n set(data: ColumnUpdateRequest): ColumnBuilder {\n this.updateData = { ...this.updateData, ...data };\n return this;\n }\n\n /**\n * Execute findAll operation\n */\n async findAll(): Promise<\n BolticListResponse<ColumnDetails> | BolticErrorResponse\n > {\n return this.columnResource.findAll(this.tableName, this.queryOptions);\n }\n\n /**\n * Execute get operation (was findOne) - requires column name\n */\n async get(): Promise<\n BolticSuccessResponse<ColumnDetails> | BolticErrorResponse\n > {\n if (!this.queryOptions.where?.name) {\n return {\n error: {\n code: 'MISSING_COLUMN_NAME',\n message: 'Column name is required for get operation',\n },\n };\n }\n\n return this.columnResource.get(\n this.tableName,\n this.queryOptions.where.name as string\n );\n }\n\n /**\n * Execute update operation - requires column name\n */\n async update(): Promise<\n BolticSuccessResponse<ColumnDetails> | BolticErrorResponse\n > {\n if (!this.queryOptions.where?.name) {\n return {\n error: {\n code: 'MISSING_COLUMN_NAME',\n message: 'Column name is required for update operation',\n },\n };\n }\n\n return this.columnResource.update(\n this.tableName,\n this.queryOptions.where.name as string,\n this.updateData\n );\n }\n\n /**\n * Execute delete operation - requires column name\n */\n async delete(): Promise<\n | BolticSuccessResponse<{ success: boolean; message?: string }>\n | BolticErrorResponse\n > {\n if (!this.queryOptions.where?.name) {\n return {\n error: {\n code: 'MISSING_COLUMN_NAME',\n message: 'Column name is required for delete operation',\n },\n };\n }\n\n return this.columnResource.delete(\n this.tableName,\n this.queryOptions.where.name as string\n );\n }\n\n /**\n * Get the built query options (for debugging)\n */\n getQueryOptions(): ColumnQueryOptions {\n return { ...this.queryOptions };\n }\n\n /**\n * Get the update data (for debugging)\n */\n getUpdateData(): ColumnUpdateRequest {\n return { ...this.updateData };\n }\n}\n\n/**\n * Create a new column builder\n */\nexport function createColumnBuilder(\n options: ColumnBuilderOptions\n): ColumnBuilder {\n return new ColumnBuilder(options);\n}\n","// Main SDK exports\nexport { BolticClient, createClient } from './client';\nexport type { ClientOptions } from './client';\n\n// Type exports for external use\nexport type {\n ColumnDetails,\n ColumnQueryOptions,\n ColumnUpdateRequest,\n} from './types/api/column';\nexport type {\n RecordData,\n RecordDeleteOptions,\n RecordQueryOptions,\n RecordWithId,\n} from './types/api/record';\nexport type {\n FieldDefinition,\n TableCreateRequest,\n TableRecord,\n TableUpdateRequest,\n} from './types/api/table';\n\n// Response types and helpers - Essential for type checking\nexport { isErrorResponse, isListResponse } from './types/common/responses';\nexport type {\n ApiResponse,\n BolticErrorResponse,\n BolticListResponse,\n BolticSuccessResponse,\n BulkResponse,\n ErrorResponse,\n QueryOptions,\n SuccessResponse,\n} from './types/common/responses';\n\n// Pagination and operation types\nexport type { PaginationInfo } from './types/common/operations';\n\n// Utility classes for schema and column management\nexport { ColumnHelpers } from './utils/column/helpers';\nexport { SchemaHelpers } from './utils/table/schema-helpers';\n\n// Filter utilities and constants\nexport {\n buildApiFilters,\n createFilter,\n FILTER_OPERATORS,\n FilterBuilder,\n mapFiltersToWhere,\n mapWhereToFilters,\n normalizeFilters,\n} from './utils/filters/filter-mapper';\nexport type { ApiFilter } from './utils/filters/filter-mapper';\n\n// Builder creation functions\nexport { createColumnBuilder } from './client/resources/column-builder';\nexport { createRecordBuilder } from './client/resources/record-builder';\nexport { createTableBuilder } from './client/resources/table-builder';\n\n// Error handling utilities\nexport {\n ApiError,\n createErrorWithContext,\n formatError,\n getHttpStatusCode,\n isNetworkError,\n ValidationError,\n} from './errors/utils';\nexport type { ValidationFailure } from './errors/utils';\n\n// HTTP adapter types for advanced users\nexport type {\n HttpAdapter,\n HttpRequestConfig,\n HttpResponse,\n} from './utils/http/adapter';\n\n// Testing utilities for SDK users\nexport {\n createErrorResponse,\n createMockResponse,\n createTestClient,\n} from './testing/test-client';\nexport type { MockClientOptions } from './testing/test-client';\n\n// Export all errors\nexport * from './errors';\n\n// Export all types\nexport * from './types';\n\n// SQL exports\nexport * from './client/resources/sql';\n\n// Version information\nexport const VERSION = '1.0.0';\n"],"names":[],"mappings":"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"}
|