@boltic/sdk 0.0.1
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/LICENSE +21 -0
- package/README.md +1012 -0
- package/dist/databases/index.d.ts +1560 -0
- package/dist/databases/index.js +2 -0
- package/dist/databases/index.js.map +1 -0
- package/dist/databases/index.mjs +523 -0
- package/dist/databases/index.mjs.map +1 -0
- package/dist/databases/test-client-BM9X5DH9.mjs +4053 -0
- package/dist/databases/test-client-BM9X5DH9.mjs.map +1 -0
- package/dist/databases/test-client-D-SuKCUC.js +2 -0
- package/dist/databases/test-client-D-SuKCUC.js.map +1 -0
- package/dist/databases/testing.d.ts +1077 -0
- package/dist/databases/testing.js +2 -0
- package/dist/databases/testing.js.map +1 -0
- package/dist/databases/testing.mjs +139 -0
- package/dist/databases/testing.mjs.map +1 -0
- package/dist/package.json +15 -0
- package/dist/sdk.js +3972 -0
- package/dist/sdk.js.map +1 -0
- package/dist/sdk.mjs +3972 -0
- package/dist/sdk.mjs.map +1 -0
- package/dist/types/index.d.ts +1087 -0
- package/package.json +82 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./test-client-D-SuKCUC.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):{data:{},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):{data:{},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):{data:{},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
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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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"}
|
|
@@ -0,0 +1,523 @@
|
|
|
1
|
+
import { B as BolticClient } from "./test-client-BM9X5DH9.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-BM9X5DH9.mjs";
|
|
3
|
+
function createClient(apiKey, options = {}) {
|
|
4
|
+
return new BolticClient(apiKey, options);
|
|
5
|
+
}
|
|
6
|
+
class ColumnHelpers {
|
|
7
|
+
/**
|
|
8
|
+
* Convert FieldDefinition to ColumnUpdateRequest
|
|
9
|
+
*/
|
|
10
|
+
static fieldToUpdateRequest(field) {
|
|
11
|
+
return {
|
|
12
|
+
name: field.name,
|
|
13
|
+
type: field.type,
|
|
14
|
+
description: field.description,
|
|
15
|
+
is_nullable: field.is_nullable,
|
|
16
|
+
is_unique: field.is_unique,
|
|
17
|
+
is_indexed: field.is_indexed,
|
|
18
|
+
is_visible: field.is_visible,
|
|
19
|
+
is_primary_key: field.is_primary_key,
|
|
20
|
+
is_readonly: field.is_readonly,
|
|
21
|
+
field_order: field.field_order,
|
|
22
|
+
default_value: field.default_value,
|
|
23
|
+
alignment: field.alignment,
|
|
24
|
+
decimals: field.decimals,
|
|
25
|
+
currency_format: field.currency_format,
|
|
26
|
+
selectable_items: field.selectable_items,
|
|
27
|
+
multiple_selections: field.multiple_selections,
|
|
28
|
+
phone_format: field.phone_format,
|
|
29
|
+
date_format: field.date_format,
|
|
30
|
+
time_format: field.time_format,
|
|
31
|
+
timezone: field.timezone,
|
|
32
|
+
vector_dimension: field.vector_dimension
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Apply default values to column definition
|
|
37
|
+
*/
|
|
38
|
+
static applyDefaultValues(column) {
|
|
39
|
+
if (!column.name || !column.type) {
|
|
40
|
+
throw new Error("Column name and type are required");
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
name: column.name,
|
|
44
|
+
type: column.type,
|
|
45
|
+
is_nullable: true,
|
|
46
|
+
is_unique: false,
|
|
47
|
+
is_indexed: false,
|
|
48
|
+
is_primary_key: false,
|
|
49
|
+
is_visible: true,
|
|
50
|
+
is_readonly: false,
|
|
51
|
+
field_order: 1,
|
|
52
|
+
alignment: "left",
|
|
53
|
+
multiple_selections: false,
|
|
54
|
+
...column
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Create a column definition with proper defaults
|
|
59
|
+
*/
|
|
60
|
+
static createColumnDefinition(name, type, options = {}) {
|
|
61
|
+
return this.applyDefaultValues({
|
|
62
|
+
name,
|
|
63
|
+
type,
|
|
64
|
+
...options
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get column type display name
|
|
69
|
+
*/
|
|
70
|
+
static getColumnTypeDisplayName(type) {
|
|
71
|
+
const typeNames = {
|
|
72
|
+
text: "Text",
|
|
73
|
+
"long-text": "Long Text",
|
|
74
|
+
number: "Number",
|
|
75
|
+
currency: "Currency",
|
|
76
|
+
checkbox: "Checkbox",
|
|
77
|
+
dropdown: "Dropdown",
|
|
78
|
+
email: "Email",
|
|
79
|
+
"phone-number": "Phone Number",
|
|
80
|
+
link: "Link",
|
|
81
|
+
json: "JSON",
|
|
82
|
+
"date-time": "Date & Time",
|
|
83
|
+
vector: "Vector",
|
|
84
|
+
halfvec: "Half Vector",
|
|
85
|
+
sparsevec: "Sparse Vector"
|
|
86
|
+
};
|
|
87
|
+
return typeNames[type] || type;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
class SchemaHelpers {
|
|
91
|
+
/**
|
|
92
|
+
* Create a text field definition
|
|
93
|
+
*/
|
|
94
|
+
static textField(name, options = {}) {
|
|
95
|
+
return {
|
|
96
|
+
name,
|
|
97
|
+
type: "text",
|
|
98
|
+
is_nullable: true,
|
|
99
|
+
is_primary_key: false,
|
|
100
|
+
is_unique: false,
|
|
101
|
+
is_visible: true,
|
|
102
|
+
is_readonly: false,
|
|
103
|
+
is_indexed: false,
|
|
104
|
+
field_order: 1,
|
|
105
|
+
...options
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Create a number field definition
|
|
110
|
+
*/
|
|
111
|
+
static numberField(name, options = {}) {
|
|
112
|
+
return {
|
|
113
|
+
name,
|
|
114
|
+
type: "number",
|
|
115
|
+
is_nullable: true,
|
|
116
|
+
is_primary_key: false,
|
|
117
|
+
is_unique: false,
|
|
118
|
+
is_visible: true,
|
|
119
|
+
is_readonly: false,
|
|
120
|
+
is_indexed: false,
|
|
121
|
+
field_order: 1,
|
|
122
|
+
decimals: "0.00",
|
|
123
|
+
...options
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Create a currency field definition
|
|
128
|
+
*/
|
|
129
|
+
static currencyField(name, currency = "USD", options = {}) {
|
|
130
|
+
return {
|
|
131
|
+
name,
|
|
132
|
+
type: "currency",
|
|
133
|
+
is_nullable: true,
|
|
134
|
+
is_primary_key: false,
|
|
135
|
+
is_unique: false,
|
|
136
|
+
is_visible: true,
|
|
137
|
+
is_readonly: false,
|
|
138
|
+
is_indexed: false,
|
|
139
|
+
field_order: 1,
|
|
140
|
+
decimals: "0.00",
|
|
141
|
+
currency_format: currency,
|
|
142
|
+
...options
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Create a dropdown field definition
|
|
147
|
+
*/
|
|
148
|
+
static dropdownField(name, items, options = {}) {
|
|
149
|
+
return {
|
|
150
|
+
name,
|
|
151
|
+
type: "dropdown",
|
|
152
|
+
is_nullable: true,
|
|
153
|
+
is_primary_key: false,
|
|
154
|
+
is_unique: false,
|
|
155
|
+
is_visible: true,
|
|
156
|
+
is_readonly: false,
|
|
157
|
+
is_indexed: false,
|
|
158
|
+
field_order: 1,
|
|
159
|
+
selection_source: "provide-static-list",
|
|
160
|
+
selectable_items: items,
|
|
161
|
+
multiple_selections: false,
|
|
162
|
+
...options
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Create a vector field definition
|
|
167
|
+
*/
|
|
168
|
+
static vectorField(name, dimension, options = {}) {
|
|
169
|
+
return {
|
|
170
|
+
name,
|
|
171
|
+
type: "vector",
|
|
172
|
+
is_nullable: true,
|
|
173
|
+
is_primary_key: false,
|
|
174
|
+
is_unique: false,
|
|
175
|
+
is_visible: true,
|
|
176
|
+
is_readonly: false,
|
|
177
|
+
is_indexed: false,
|
|
178
|
+
field_order: 1,
|
|
179
|
+
vector_dimension: dimension,
|
|
180
|
+
...options
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Create a JSON field definition
|
|
185
|
+
*/
|
|
186
|
+
static jsonField(name, options = {}) {
|
|
187
|
+
return {
|
|
188
|
+
name,
|
|
189
|
+
type: "json",
|
|
190
|
+
is_nullable: true,
|
|
191
|
+
is_primary_key: false,
|
|
192
|
+
is_unique: false,
|
|
193
|
+
is_visible: true,
|
|
194
|
+
is_readonly: false,
|
|
195
|
+
is_indexed: false,
|
|
196
|
+
field_order: 1,
|
|
197
|
+
...options
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Create a date-time field definition
|
|
202
|
+
*/
|
|
203
|
+
static dateTimeField(name, options = {}) {
|
|
204
|
+
return {
|
|
205
|
+
name,
|
|
206
|
+
type: "date-time",
|
|
207
|
+
is_nullable: true,
|
|
208
|
+
is_primary_key: false,
|
|
209
|
+
is_unique: false,
|
|
210
|
+
is_visible: true,
|
|
211
|
+
is_readonly: false,
|
|
212
|
+
is_indexed: false,
|
|
213
|
+
field_order: 1,
|
|
214
|
+
date_format: "YYYY-MM-DD",
|
|
215
|
+
time_format: "HH:mm:ss",
|
|
216
|
+
...options
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Create an email field definition
|
|
221
|
+
*/
|
|
222
|
+
static emailField(name, options = {}) {
|
|
223
|
+
return {
|
|
224
|
+
name,
|
|
225
|
+
type: "email",
|
|
226
|
+
is_nullable: true,
|
|
227
|
+
is_primary_key: false,
|
|
228
|
+
is_unique: false,
|
|
229
|
+
is_visible: true,
|
|
230
|
+
is_readonly: false,
|
|
231
|
+
is_indexed: false,
|
|
232
|
+
field_order: 1,
|
|
233
|
+
...options
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Create a long-text field definition
|
|
238
|
+
*/
|
|
239
|
+
static longTextField(name, options = {}) {
|
|
240
|
+
return {
|
|
241
|
+
name,
|
|
242
|
+
type: "long-text",
|
|
243
|
+
is_nullable: true,
|
|
244
|
+
is_primary_key: false,
|
|
245
|
+
is_unique: false,
|
|
246
|
+
is_visible: true,
|
|
247
|
+
is_readonly: false,
|
|
248
|
+
is_indexed: false,
|
|
249
|
+
field_order: 1,
|
|
250
|
+
...options
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Create a link field definition
|
|
255
|
+
*/
|
|
256
|
+
static linkField(name, options = {}) {
|
|
257
|
+
return {
|
|
258
|
+
name,
|
|
259
|
+
type: "link",
|
|
260
|
+
is_nullable: true,
|
|
261
|
+
is_primary_key: false,
|
|
262
|
+
is_unique: false,
|
|
263
|
+
is_visible: true,
|
|
264
|
+
is_readonly: false,
|
|
265
|
+
is_indexed: false,
|
|
266
|
+
field_order: 1,
|
|
267
|
+
...options
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Create a phone number field definition
|
|
272
|
+
*/
|
|
273
|
+
static phoneNumberField(name, format = "international", options = {}) {
|
|
274
|
+
return {
|
|
275
|
+
name,
|
|
276
|
+
type: "phone-number",
|
|
277
|
+
is_nullable: true,
|
|
278
|
+
is_primary_key: false,
|
|
279
|
+
is_unique: false,
|
|
280
|
+
is_visible: true,
|
|
281
|
+
is_readonly: false,
|
|
282
|
+
is_indexed: false,
|
|
283
|
+
field_order: 1,
|
|
284
|
+
phone_format: format,
|
|
285
|
+
...options
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Create a checkbox field definition
|
|
290
|
+
*/
|
|
291
|
+
static checkboxField(name, options = {}) {
|
|
292
|
+
return {
|
|
293
|
+
name,
|
|
294
|
+
type: "checkbox",
|
|
295
|
+
is_nullable: true,
|
|
296
|
+
is_primary_key: false,
|
|
297
|
+
is_unique: false,
|
|
298
|
+
is_visible: true,
|
|
299
|
+
is_readonly: false,
|
|
300
|
+
is_indexed: false,
|
|
301
|
+
field_order: 1,
|
|
302
|
+
default_value: false,
|
|
303
|
+
...options
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Create a half-vector field definition
|
|
308
|
+
*/
|
|
309
|
+
static halfVectorField(name, dimension, options = {}) {
|
|
310
|
+
return {
|
|
311
|
+
name,
|
|
312
|
+
type: "halfvec",
|
|
313
|
+
is_nullable: true,
|
|
314
|
+
is_primary_key: false,
|
|
315
|
+
is_unique: false,
|
|
316
|
+
is_visible: true,
|
|
317
|
+
is_readonly: false,
|
|
318
|
+
is_indexed: false,
|
|
319
|
+
field_order: 1,
|
|
320
|
+
vector_dimension: dimension,
|
|
321
|
+
...options
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Create a sparse vector field definition
|
|
326
|
+
*/
|
|
327
|
+
static sparseVectorField(name, dimension, options = {}) {
|
|
328
|
+
return {
|
|
329
|
+
name,
|
|
330
|
+
type: "sparsevec",
|
|
331
|
+
is_nullable: true,
|
|
332
|
+
is_primary_key: false,
|
|
333
|
+
is_unique: false,
|
|
334
|
+
is_visible: true,
|
|
335
|
+
is_readonly: false,
|
|
336
|
+
is_indexed: false,
|
|
337
|
+
field_order: 1,
|
|
338
|
+
vector_dimension: dimension,
|
|
339
|
+
...options
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Create a basic schema from field definitions
|
|
344
|
+
*/
|
|
345
|
+
static createBasicSchema(fields) {
|
|
346
|
+
return fields.map((field, index) => ({
|
|
347
|
+
name: field.name,
|
|
348
|
+
type: field.type,
|
|
349
|
+
is_nullable: true,
|
|
350
|
+
is_primary_key: false,
|
|
351
|
+
is_unique: false,
|
|
352
|
+
is_visible: true,
|
|
353
|
+
is_readonly: false,
|
|
354
|
+
is_indexed: false,
|
|
355
|
+
field_order: index + 1
|
|
356
|
+
}));
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
class ColumnBuilder {
|
|
360
|
+
constructor(options) {
|
|
361
|
+
this.queryOptions = {};
|
|
362
|
+
this.updateData = {};
|
|
363
|
+
this.tableName = options.tableName;
|
|
364
|
+
this.columnResource = options.columnResource;
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Add filter conditions
|
|
368
|
+
*/
|
|
369
|
+
where(conditions) {
|
|
370
|
+
this.queryOptions.where = { ...this.queryOptions.where, ...conditions };
|
|
371
|
+
return this;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Set sorting
|
|
375
|
+
*/
|
|
376
|
+
orderBy(field, direction = "asc") {
|
|
377
|
+
if (!this.queryOptions.sort) {
|
|
378
|
+
this.queryOptions.sort = [];
|
|
379
|
+
}
|
|
380
|
+
this.queryOptions.sort.push({ field, order: direction });
|
|
381
|
+
return this;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Set limit
|
|
385
|
+
*/
|
|
386
|
+
limit(count) {
|
|
387
|
+
this.queryOptions.limit = count;
|
|
388
|
+
return this;
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Set offset
|
|
392
|
+
*/
|
|
393
|
+
offset(count) {
|
|
394
|
+
this.queryOptions.offset = count;
|
|
395
|
+
return this;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Set fields to select
|
|
399
|
+
*/
|
|
400
|
+
select(fields) {
|
|
401
|
+
this.queryOptions.fields = fields;
|
|
402
|
+
return this;
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Set data for update operations
|
|
406
|
+
*/
|
|
407
|
+
set(data) {
|
|
408
|
+
this.updateData = { ...this.updateData, ...data };
|
|
409
|
+
return this;
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Execute findAll operation
|
|
413
|
+
*/
|
|
414
|
+
async findAll() {
|
|
415
|
+
return this.columnResource.findAll(this.tableName, this.queryOptions);
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Execute get operation (was findOne) - requires column name
|
|
419
|
+
*/
|
|
420
|
+
async get() {
|
|
421
|
+
var _a;
|
|
422
|
+
if (!((_a = this.queryOptions.where) == null ? void 0 : _a.name)) {
|
|
423
|
+
return {
|
|
424
|
+
data: {},
|
|
425
|
+
error: {
|
|
426
|
+
code: "MISSING_COLUMN_NAME",
|
|
427
|
+
message: "Column name is required for get operation"
|
|
428
|
+
}
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
return this.columnResource.get(
|
|
432
|
+
this.tableName,
|
|
433
|
+
this.queryOptions.where.name
|
|
434
|
+
);
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Execute update operation - requires column name
|
|
438
|
+
*/
|
|
439
|
+
async update() {
|
|
440
|
+
var _a;
|
|
441
|
+
if (!((_a = this.queryOptions.where) == null ? void 0 : _a.name)) {
|
|
442
|
+
return {
|
|
443
|
+
data: {},
|
|
444
|
+
error: {
|
|
445
|
+
code: "MISSING_COLUMN_NAME",
|
|
446
|
+
message: "Column name is required for update operation"
|
|
447
|
+
}
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
return this.columnResource.update(
|
|
451
|
+
this.tableName,
|
|
452
|
+
this.queryOptions.where.name,
|
|
453
|
+
this.updateData
|
|
454
|
+
);
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Execute delete operation - requires column name
|
|
458
|
+
*/
|
|
459
|
+
async delete() {
|
|
460
|
+
var _a;
|
|
461
|
+
if (!((_a = this.queryOptions.where) == null ? void 0 : _a.name)) {
|
|
462
|
+
return {
|
|
463
|
+
data: {},
|
|
464
|
+
error: {
|
|
465
|
+
code: "MISSING_COLUMN_NAME",
|
|
466
|
+
message: "Column name is required for delete operation"
|
|
467
|
+
}
|
|
468
|
+
};
|
|
469
|
+
}
|
|
470
|
+
return this.columnResource.delete(
|
|
471
|
+
this.tableName,
|
|
472
|
+
this.queryOptions.where.name
|
|
473
|
+
);
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Get the built query options (for debugging)
|
|
477
|
+
*/
|
|
478
|
+
getQueryOptions() {
|
|
479
|
+
return { ...this.queryOptions };
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Get the update data (for debugging)
|
|
483
|
+
*/
|
|
484
|
+
getUpdateData() {
|
|
485
|
+
return { ...this.updateData };
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
function createColumnBuilder(options) {
|
|
489
|
+
return new ColumnBuilder(options);
|
|
490
|
+
}
|
|
491
|
+
const VERSION = "1.0.0";
|
|
492
|
+
export {
|
|
493
|
+
A as ApiError,
|
|
494
|
+
BolticClient,
|
|
495
|
+
ColumnHelpers,
|
|
496
|
+
E as ENV_CONFIGS,
|
|
497
|
+
F as FILTER_OPERATORS,
|
|
498
|
+
d as FilterBuilder,
|
|
499
|
+
R as REGION_CONFIGS,
|
|
500
|
+
SchemaHelpers,
|
|
501
|
+
S as SqlResource,
|
|
502
|
+
VERSION,
|
|
503
|
+
V as ValidationError,
|
|
504
|
+
b as buildApiFilters,
|
|
505
|
+
createClient,
|
|
506
|
+
createColumnBuilder,
|
|
507
|
+
o as createErrorResponse,
|
|
508
|
+
h as createErrorWithContext,
|
|
509
|
+
c as createFilter,
|
|
510
|
+
p as createMockResponse,
|
|
511
|
+
f as createRecordBuilder,
|
|
512
|
+
g as createTableBuilder,
|
|
513
|
+
q as createTestClient,
|
|
514
|
+
j as formatError,
|
|
515
|
+
k as getHttpStatusCode,
|
|
516
|
+
i as isErrorResponse,
|
|
517
|
+
a as isListResponse,
|
|
518
|
+
l as isNetworkError,
|
|
519
|
+
m as mapFiltersToWhere,
|
|
520
|
+
e as mapWhereToFilters,
|
|
521
|
+
n as normalizeFilters
|
|
522
|
+
};
|
|
523
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +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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"}
|