@glance-il/sdk 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/errors.ts","../src/core/http.ts","../src/resources/base.ts","../src/resources/clients.ts","../src/resources/contacts.ts","../src/resources/addresses.ts","../src/resources/products.ts","../src/resources/product-serials.ts","../src/resources/warehouses.ts","../src/resources/inventory.ts","../src/resources/inventory-movements.ts","../src/resources/documents.ts","../src/resources/vendors.ts","../src/resources/purchase.ts","../src/resources/expenses.ts","../src/resources/retainers.ts","../src/resources/reports.ts","../src/resources/employees.ts","../src/resources/files.ts","../src/resources/custom-fields.ts","../src/resources/payments.ts","../src/resources/settings.ts","../src/client.ts","../src/core/pagination.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["export class GlanceError extends Error {\n override name = \"GlanceError\";\n constructor(message: string) {\n super(message);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport class GlanceApiError extends GlanceError {\n override name = \"GlanceApiError\";\n constructor(\n public readonly status: number,\n message: string,\n public readonly code?: string,\n ) {\n super(message);\n }\n}\n\nexport class GlanceAuthenticationError extends GlanceApiError {\n override name = \"GlanceAuthenticationError\";\n constructor(message: string = \"Authentication failed\") {\n super(401, message, \"NO_ACCESS\");\n }\n}\n\nexport class GlanceNotFoundError extends GlanceApiError {\n override name = \"GlanceNotFoundError\";\n constructor(message: string = \"Resource not found\", code?: string) {\n super(404, message, code);\n }\n}\n\nexport class GlanceValidationError extends GlanceApiError {\n override name = \"GlanceValidationError\";\n constructor(\n message: string = \"Validation failed\",\n public readonly issues?: unknown[],\n ) {\n super(400, message, \"INVALID_FIELD\");\n }\n}\n\nexport class GlanceRateLimitError extends GlanceApiError {\n override name = \"GlanceRateLimitError\";\n constructor(message: string = \"Rate limit exceeded\") {\n super(429, message, \"RATE_LIMIT_EXCEEDED\");\n }\n}\n","import type { GlanceClientOptions, RequestOptions } from \"./types\";\nimport {\n GlanceApiError, GlanceAuthenticationError, GlanceNotFoundError,\n GlanceValidationError, GlanceRateLimitError, GlanceError,\n} from \"./errors\";\n\nexport class HttpClient {\n private readonly apiKey: string;\n private readonly baseUrl: string;\n private readonly timeout: number;\n private readonly _fetch: typeof globalThis.fetch;\n\n constructor(options: GlanceClientOptions) {\n this.apiKey = options.apiKey;\n this.baseUrl = (options.baseUrl ?? \"https://api.glance.co.il\").replace(/\\/$/, \"\");\n this.timeout = options.timeout ?? 30_000;\n this._fetch = options.fetch ?? globalThis.fetch;\n }\n\n async get<T>(path: string, query?: Record<string, unknown>, options?: RequestOptions): Promise<T> {\n return this.request<T>(\"GET\", path, undefined, query, options);\n }\n\n async post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return this.request<T>(\"POST\", path, body, undefined, options);\n }\n\n async put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return this.request<T>(\"PUT\", path, body, undefined, options);\n }\n\n async delete<T>(path: string, options?: RequestOptions): Promise<T> {\n return this.request<T>(\"DELETE\", path, undefined, undefined, options);\n }\n\n private async request<T>(\n method: string, path: string, body?: unknown,\n query?: Record<string, unknown>, options?: RequestOptions,\n ): Promise<T> {\n let url = `${this.baseUrl}${path}`;\n if (query) {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) {\n if (value !== undefined && value !== null) {\n params.set(key, String(value));\n }\n }\n const qs = params.toString();\n if (qs) url += `?${qs}`;\n }\n\n const headers: Record<string, string> = {\n Authorization: `Bearer ${this.apiKey}`,\n Accept: \"application/json\",\n };\n if (body !== undefined) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n let signal: AbortSignal = controller.signal;\n if (options?.signal) {\n if (typeof AbortSignal.any === \"function\") {\n signal = AbortSignal.any([controller.signal, options.signal]);\n } else {\n options.signal.addEventListener(\"abort\", () => controller.abort(), { once: true });\n }\n }\n\n try {\n const response = await this._fetch(url, {\n method, headers,\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal,\n });\n const json = await response.json();\n if (!response.ok) {\n throw this.createError(response.status, json);\n }\n return json as T;\n } catch (error) {\n if (error instanceof GlanceError) throw error;\n if (error instanceof DOMException && error.name === \"AbortError\") {\n throw new GlanceError(\"Request timed out\");\n }\n throw new GlanceError(`Network error: ${(error as Error).message}`);\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n private createError(status: number, json: unknown): GlanceApiError {\n const body = json as { error?: { message?: string; code?: string; issues?: unknown[] } };\n const message = body?.error?.message ?? \"Unknown error\";\n const code = body?.error?.code;\n const issues = body?.error?.issues;\n switch (status) {\n case 400: return new GlanceValidationError(message, issues);\n case 401: case 403: return new GlanceAuthenticationError(message);\n case 404: return new GlanceNotFoundError(message, code);\n case 429: return new GlanceRateLimitError(message);\n default: return new GlanceApiError(status, message, code);\n }\n }\n}\n","// src/resources/base.ts\nimport type { HttpClient } from \"../core/http\";\n\nexport abstract class BaseResource {\n constructor(protected readonly http: HttpClient) {}\n}\n","// src/resources/clients.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { Client, CreateClientParams, UpdateClientParams, ListClientsParams } from \"../types/clients\";\n\nexport class ClientsResource extends BaseResource {\n async list(params?: ListClientsParams): Promise<PaginatedResponse<Client>> {\n return this.http.get<PaginatedResponse<Client>>(\"/clients\", params as Record<string, unknown>);\n }\n\n async get(visibleId: string): Promise<ApiResponse<Client>> {\n return this.http.get<ApiResponse<Client>>(`/clients/id/${visibleId}`);\n }\n\n async create(params: CreateClientParams): Promise<ApiResponse<Client>> {\n return this.http.post<ApiResponse<Client>>(\"/clients/create\", params);\n }\n\n async update(visibleId: string, params: UpdateClientParams): Promise<ApiResponse<Client>> {\n return this.http.put<ApiResponse<Client>>(`/clients/edit/${visibleId}`, params);\n }\n}\n","// src/resources/contacts.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { Contact, CreateContactParams, UpdateContactParams, ListContactsParams } from \"../types/contacts\";\n\nexport class ContactsResource extends BaseResource {\n async list(params?: ListContactsParams): Promise<PaginatedResponse<Contact>> {\n return this.http.get<PaginatedResponse<Contact>>(\"/contacts\", params as Record<string, unknown>);\n }\n\n async get(visibleId: string): Promise<ApiResponse<Contact>> {\n return this.http.get<ApiResponse<Contact>>(`/contacts/id/${visibleId}`);\n }\n\n async create(params: CreateContactParams): Promise<ApiResponse<Contact>> {\n return this.http.post<ApiResponse<Contact>>(\"/contacts/create\", params);\n }\n\n async update(visibleId: string, params: UpdateContactParams): Promise<ApiResponse<Contact>> {\n return this.http.put<ApiResponse<Contact>>(`/contacts/edit/${visibleId}`, params);\n }\n\n async delete(visibleId: string): Promise<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`/contacts/delete/${visibleId}`);\n }\n}\n","// src/resources/addresses.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { Address, CreateAddressParams, UpdateAddressParams, ListAddressesParams } from \"../types/addresses\";\n\nexport class AddressesResource extends BaseResource {\n async list(params?: ListAddressesParams): Promise<PaginatedResponse<Address>> {\n return this.http.get<PaginatedResponse<Address>>(\"/addresses\", params as Record<string, unknown>);\n }\n\n async get(id: number): Promise<ApiResponse<Address>> {\n return this.http.get<ApiResponse<Address>>(`/addresses/id/${id}`);\n }\n\n async create(params: CreateAddressParams): Promise<ApiResponse<Address>> {\n return this.http.post<ApiResponse<Address>>(\"/addresses/create\", params);\n }\n\n async update(id: number, params: UpdateAddressParams): Promise<ApiResponse<Address>> {\n return this.http.put<ApiResponse<Address>>(`/addresses/${id}`, params);\n }\n\n async delete(id: number): Promise<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`/addresses/${id}`);\n }\n}\n","// src/resources/products.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { Product, CreateProductParams, UpdateProductParams, ListProductsParams } from \"../types/products\";\n\nexport class ProductsResource extends BaseResource {\n async list(params?: ListProductsParams): Promise<PaginatedResponse<Product>> {\n return this.http.get<PaginatedResponse<Product>>(\"/products\", params as Record<string, unknown>);\n }\n\n async get(id: number): Promise<ApiResponse<Product>> {\n return this.http.get<ApiResponse<Product>>(`/products/id/${id}`);\n }\n\n async getBySku(sku: string): Promise<ApiResponse<Product>> {\n return this.http.get<ApiResponse<Product>>(`/products/sku/${sku}`);\n }\n\n async create(params: CreateProductParams): Promise<ApiResponse<Product>> {\n return this.http.post<ApiResponse<Product>>(\"/products/create\", params);\n }\n\n async update(id: number, params: UpdateProductParams): Promise<ApiResponse<Product>> {\n return this.http.put<ApiResponse<Product>>(`/products/edit/${id}`, params);\n }\n\n async delete(id: number): Promise<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`/products/delete/${id}`);\n }\n}\n","// src/resources/product-serials.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { ProductSerial, CreateProductSerialsParams, UpdateProductSerialParams } from \"../types/product-serials\";\n\nexport class ProductSerialsResource extends BaseResource {\n async list(productId: number): Promise<PaginatedResponse<ProductSerial>> {\n return this.http.get<PaginatedResponse<ProductSerial>>(`/products/id/${productId}/serials`);\n }\n\n async create(productId: number, params: CreateProductSerialsParams): Promise<ApiResponse<ProductSerial[]>> {\n return this.http.post<ApiResponse<ProductSerial[]>>(`/products/id/${productId}/serials`, params);\n }\n\n async update(serialId: number, params: UpdateProductSerialParams): Promise<ApiResponse<ProductSerial>> {\n return this.http.put<ApiResponse<ProductSerial>>(`/products/serials/${serialId}`, params);\n }\n\n async delete(serialId: number): Promise<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`/products/serials/${serialId}`);\n }\n}\n","// src/resources/warehouses.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { Warehouse, CreateWarehouseParams, UpdateWarehouseParams, ListWarehousesParams } from \"../types/warehouses\";\n\nexport class WarehousesResource extends BaseResource {\n async list(params?: ListWarehousesParams): Promise<PaginatedResponse<Warehouse>> {\n return this.http.get<PaginatedResponse<Warehouse>>(\"/warehouses\", params as Record<string, unknown>);\n }\n\n async get(id: number): Promise<ApiResponse<Warehouse>> {\n return this.http.get<ApiResponse<Warehouse>>(`/warehouses/${id}`);\n }\n\n async create(params: CreateWarehouseParams): Promise<ApiResponse<Warehouse>> {\n return this.http.post<ApiResponse<Warehouse>>(\"/warehouses\", params);\n }\n\n async update(id: number, params: UpdateWarehouseParams): Promise<ApiResponse<Warehouse>> {\n return this.http.put<ApiResponse<Warehouse>>(`/warehouses/${id}`, params);\n }\n\n async delete(id: number): Promise<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`/warehouses/${id}`);\n }\n}\n","// src/resources/inventory.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type {\n Inventory, CreateInventoryParams, UpdateInventoryParams,\n AdjustInventoryParams, ListInventoryParams,\n} from \"../types/inventory\";\n\nexport class InventoryResource extends BaseResource {\n async list(params?: ListInventoryParams): Promise<PaginatedResponse<Inventory>> {\n return this.http.get<PaginatedResponse<Inventory>>(\"/inventory\", params as Record<string, unknown>);\n }\n\n async get(id: number): Promise<ApiResponse<Inventory>> {\n return this.http.get<ApiResponse<Inventory>>(`/inventory/${id}`);\n }\n\n async getByProduct(productId: number): Promise<ApiResponse<Inventory[]>> {\n return this.http.get<ApiResponse<Inventory[]>>(`/inventory/product/${productId}`);\n }\n\n async create(params: CreateInventoryParams): Promise<ApiResponse<Inventory>> {\n return this.http.post<ApiResponse<Inventory>>(\"/inventory/create\", params);\n }\n\n async update(id: number, params: UpdateInventoryParams): Promise<ApiResponse<Inventory>> {\n return this.http.put<ApiResponse<Inventory>>(`/inventory/${id}/edit`, params);\n }\n\n async delete(id: number): Promise<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`/inventory/${id}/delete`);\n }\n\n async adjust(params: AdjustInventoryParams): Promise<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(\"/inventory/adjust\", params);\n }\n}\n","// src/resources/inventory-movements.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type {\n InventoryMovement, CreateInventoryMovementParams, ListInventoryMovementsParams,\n} from \"../types/inventory-movements\";\n\nexport class InventoryMovementsResource extends BaseResource {\n async list(params?: ListInventoryMovementsParams): Promise<PaginatedResponse<InventoryMovement>> {\n return this.http.get<PaginatedResponse<InventoryMovement>>(\"/inventory/movements\", params as Record<string, unknown>);\n }\n\n async create(params: CreateInventoryMovementParams): Promise<ApiResponse<InventoryMovement>> {\n return this.http.post<ApiResponse<InventoryMovement>>(\"/inventory/movements/create\", params);\n }\n}\n","// src/resources/documents.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { DocumentType } from \"../types/shared\";\nimport type {\n GlanceDocument, CreateDocumentParams, UpdateDocumentParams,\n ListDocumentsParams, AllocateReceiptParams,\n} from \"../types/documents\";\n\nexport class DocumentsResource extends BaseResource {\n async list(params?: ListDocumentsParams): Promise<PaginatedResponse<GlanceDocument>> {\n return this.http.get<PaginatedResponse<GlanceDocument>>(\"/documents\", params as Record<string, unknown>);\n }\n\n async get(visibleId: string): Promise<ApiResponse<GlanceDocument>> {\n return this.http.get<ApiResponse<GlanceDocument>>(`/documents/id/${visibleId}`);\n }\n\n async create(type: DocumentType, params: CreateDocumentParams): Promise<ApiResponse<GlanceDocument>> {\n return this.http.post<ApiResponse<GlanceDocument>>(`/documents/create/${type}`, params);\n }\n\n async update(visibleId: string, params: UpdateDocumentParams): Promise<ApiResponse<GlanceDocument>> {\n return this.http.put<ApiResponse<GlanceDocument>>(`/documents/edit/${visibleId}`, params);\n }\n\n async close(visibleId: string): Promise<ApiResponse<GlanceDocument>> {\n return this.http.post<ApiResponse<GlanceDocument>>(`/documents/close/${visibleId}`);\n }\n\n async allocate(visibleId: string, params: AllocateReceiptParams): Promise<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`/documents/allocate/${visibleId}`, params);\n }\n\n async cancelReceipt(visibleId: string): Promise<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`/documents/cancel-receipt/${visibleId}`);\n }\n\n async getSettings(route: string): Promise<ApiResponse<unknown>> {\n return this.http.get<ApiResponse<unknown>>(`/documents/settings/${route}`);\n }\n\n async previewPdf(type: DocumentType, params: CreateDocumentParams): Promise<ApiResponse<unknown>> {\n return this.http.post<ApiResponse<unknown>>(`/documents/preview/${type}`, params);\n }\n\n async previewHtml(params: CreateDocumentParams): Promise<ApiResponse<unknown>> {\n return this.http.post<ApiResponse<unknown>>(\"/documents/preview/html\", params);\n }\n}\n","// src/resources/vendors.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { Vendor, CreateVendorParams, UpdateVendorParams, ListVendorsParams } from \"../types/vendors\";\n\nexport class VendorsResource extends BaseResource {\n async list(params?: ListVendorsParams): Promise<PaginatedResponse<Vendor>> {\n return this.http.get<PaginatedResponse<Vendor>>(\"/vendors\", params as Record<string, unknown>);\n }\n\n async get(visibleId: string): Promise<ApiResponse<Vendor>> {\n return this.http.get<ApiResponse<Vendor>>(`/vendors/id/${visibleId}`);\n }\n\n async create(params: CreateVendorParams): Promise<ApiResponse<Vendor>> {\n return this.http.post<ApiResponse<Vendor>>(\"/vendors/create\", params);\n }\n\n async update(visibleId: string, params: UpdateVendorParams): Promise<ApiResponse<Vendor>> {\n return this.http.put<ApiResponse<Vendor>>(`/vendors/edit/${visibleId}`, params);\n }\n}\n","// src/resources/purchase.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { PurchaseDocumentType } from \"../types/shared\";\nimport type {\n PurchaseDocument, CreatePurchaseDocumentParams, ListPurchaseDocumentsParams,\n} from \"../types/purchase\";\n\nexport class PurchaseResource extends BaseResource {\n async list(params?: ListPurchaseDocumentsParams): Promise<PaginatedResponse<PurchaseDocument>> {\n return this.http.get<PaginatedResponse<PurchaseDocument>>(\"/purchase\", params as Record<string, unknown>);\n }\n\n async get(visibleId: string): Promise<ApiResponse<PurchaseDocument>> {\n return this.http.get<ApiResponse<PurchaseDocument>>(`/purchase/id/${visibleId}`);\n }\n\n async create(type: PurchaseDocumentType, params: CreatePurchaseDocumentParams): Promise<ApiResponse<PurchaseDocument>> {\n return this.http.post<ApiResponse<PurchaseDocument>>(`/purchase/create/${type}`, params);\n }\n\n async close(visibleId: string): Promise<ApiResponse<PurchaseDocument>> {\n return this.http.post<ApiResponse<PurchaseDocument>>(`/purchase/close/${visibleId}`);\n }\n\n async getSettings(route: string): Promise<ApiResponse<unknown>> {\n return this.http.get<ApiResponse<unknown>>(`/purchase/settings/${route}`);\n }\n}\n","// src/resources/expenses.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { Expense, CreateExpenseParams, UpdateExpenseParams, ListExpensesParams } from \"../types/expenses\";\n\nexport class ExpensesResource extends BaseResource {\n async list(params?: ListExpensesParams): Promise<PaginatedResponse<Expense>> {\n return this.http.get<PaginatedResponse<Expense>>(\"/expenses\", params as Record<string, unknown>);\n }\n\n async get(id: number): Promise<ApiResponse<Expense>> {\n return this.http.get<ApiResponse<Expense>>(`/expenses/id/${id}`);\n }\n\n async create(params: CreateExpenseParams): Promise<ApiResponse<Expense>> {\n return this.http.post<ApiResponse<Expense>>(\"/expenses/create\", params);\n }\n\n async update(id: number, params: UpdateExpenseParams): Promise<ApiResponse<Expense>> {\n return this.http.put<ApiResponse<Expense>>(`/expenses/edit/${id}`, params);\n }\n\n async delete(id: number): Promise<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`/expenses/delete/${id}`);\n }\n}\n","// src/resources/retainers.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { Retainer, CreateRetainerParams, UpdateRetainerParams, ListRetainersParams } from \"../types/retainers\";\n\nexport class RetainersResource extends BaseResource {\n async list(params?: ListRetainersParams): Promise<PaginatedResponse<Retainer>> {\n return this.http.get<PaginatedResponse<Retainer>>(\"/retainers\", params as Record<string, unknown>);\n }\n\n async get(id: string): Promise<ApiResponse<Retainer>> {\n return this.http.get<ApiResponse<Retainer>>(`/retainers/${id}`);\n }\n\n async create(params: CreateRetainerParams): Promise<ApiResponse<Retainer>> {\n return this.http.post<ApiResponse<Retainer>>(\"/retainers/create\", params);\n }\n\n async update(id: string, params: UpdateRetainerParams): Promise<ApiResponse<Retainer>> {\n return this.http.put<ApiResponse<Retainer>>(`/retainers/${id}`, params);\n }\n\n async delete(id: string): Promise<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`/retainers/${id}`);\n }\n\n async reactivate(id: string): Promise<ApiResponse<Retainer>> {\n return this.http.post<ApiResponse<Retainer>>(`/retainers/reactivate/${id}`);\n }\n}\n","// src/resources/reports.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse } from \"../core/types\";\nimport type {\n IncomeReportParams, ExpensesReportParams,\n DocumentsReportParams, MaamReportParams, ReportResponse,\n} from \"../types/reports\";\n\nexport class ReportsResource extends BaseResource {\n async income(params: IncomeReportParams): Promise<ApiResponse<ReportResponse>> {\n return this.http.post<ApiResponse<ReportResponse>>(\"/reports/income\", params);\n }\n\n async expenses(params: ExpensesReportParams): Promise<ApiResponse<ReportResponse>> {\n return this.http.post<ApiResponse<ReportResponse>>(\"/reports/expenses\", params);\n }\n\n async documents(params: DocumentsReportParams): Promise<ApiResponse<ReportResponse>> {\n return this.http.post<ApiResponse<ReportResponse>>(\"/reports/documents\", params);\n }\n\n async maam(params: MaamReportParams): Promise<ApiResponse<ReportResponse>> {\n return this.http.post<ApiResponse<ReportResponse>>(\"/reports/maam\", params);\n }\n}\n","// src/resources/employees.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { Employee, CreateEmployeeParams, UpdateEmployeeParams, ListEmployeesParams } from \"../types/employees\";\n\nexport class EmployeesResource extends BaseResource {\n async list(params?: ListEmployeesParams): Promise<PaginatedResponse<Employee>> {\n return this.http.get<PaginatedResponse<Employee>>(\"/employees\", params as Record<string, unknown>);\n }\n\n async get(visibleId: string): Promise<ApiResponse<Employee>> {\n return this.http.get<ApiResponse<Employee>>(`/employees/id/${visibleId}`);\n }\n\n async create(params: CreateEmployeeParams): Promise<ApiResponse<Employee>> {\n return this.http.post<ApiResponse<Employee>>(\"/employees/create\", params);\n }\n\n async update(visibleId: string, params: UpdateEmployeeParams): Promise<ApiResponse<Employee>> {\n return this.http.put<ApiResponse<Employee>>(`/employees/edit/${visibleId}`, params);\n }\n\n async delete(visibleId: string): Promise<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`/employees/${visibleId}`);\n }\n}\n","// src/resources/files.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { GlanceFile, ListFilesParams } from \"../types/files\";\n\nexport class FilesResource extends BaseResource {\n async list(params?: ListFilesParams): Promise<PaginatedResponse<GlanceFile>> {\n return this.http.get<PaginatedResponse<GlanceFile>>(\"/files\", params as Record<string, unknown>);\n }\n\n async get(visibleId: string): Promise<ApiResponse<GlanceFile>> {\n return this.http.get<ApiResponse<GlanceFile>>(`/files/file/${visibleId}`);\n }\n\n // Note: file upload requires multipart/form-data — use the REST API directly\n // for uploads. FormData support may be added in a future version.\n}\n","// src/resources/custom-fields.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse } from \"../core/types\";\nimport type { CustomFieldEntityType } from \"../types/shared\";\nimport type {\n CustomField, CreateCustomFieldParams, UpdateCustomFieldParams,\n CustomFieldValue, SetCustomFieldValuesParams,\n} from \"../types/custom-fields\";\n\nexport class CustomFieldsResource extends BaseResource {\n async list(): Promise<ApiResponse<CustomField[]>> {\n return this.http.get<ApiResponse<CustomField[]>>(\"/custom-fields\");\n }\n\n async listByType(entityType: CustomFieldEntityType): Promise<ApiResponse<CustomField[]>> {\n return this.http.get<ApiResponse<CustomField[]>>(`/custom-fields/type/${entityType}`);\n }\n\n async create(params: CreateCustomFieldParams): Promise<ApiResponse<CustomField>> {\n return this.http.post<ApiResponse<CustomField>>(\"/custom-fields/create\", params);\n }\n\n async update(id: number, params: UpdateCustomFieldParams): Promise<ApiResponse<CustomField>> {\n return this.http.put<ApiResponse<CustomField>>(`/custom-fields/edit/${id}`, params);\n }\n\n async delete(id: number): Promise<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`/custom-fields/delete/${id}`);\n }\n\n async getValues(entityId: number): Promise<ApiResponse<CustomFieldValue[]>> {\n return this.http.get<ApiResponse<CustomFieldValue[]>>(`/custom-fields/entities/${entityId}`);\n }\n\n async setValues(entityId: number, params: SetCustomFieldValuesParams): Promise<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`/custom-fields/entities/${entityId}/values`, params);\n }\n\n async getProductValues(productId: number): Promise<ApiResponse<CustomFieldValue[]>> {\n return this.http.get<ApiResponse<CustomFieldValue[]>>(`/custom-fields/products/${productId}`);\n }\n\n async setProductValues(productId: number, params: SetCustomFieldValuesParams): Promise<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`/custom-fields/products/${productId}/values`, params);\n }\n}\n","// src/resources/payments.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse, PaginatedResponse } from \"../core/types\";\nimport type { Transaction, ChargeParams, RefundParams, ListTransactionsParams } from \"../types/payments\";\n\nexport class PaymentsResource extends BaseResource {\n async charge(params: ChargeParams): Promise<ApiResponse<Transaction>> {\n return this.http.post<ApiResponse<Transaction>>(\"/grow/payments/charge\", params);\n }\n\n async refund(params: RefundParams): Promise<ApiResponse<Transaction>> {\n return this.http.post<ApiResponse<Transaction>>(\"/grow/payments/refund\", params);\n }\n\n async listTransactions(params?: ListTransactionsParams): Promise<PaginatedResponse<Transaction>> {\n return this.http.get<PaginatedResponse<Transaction>>(\"/grow/payments/transactions\", params as Record<string, unknown>);\n }\n\n async getTransaction(id: string): Promise<ApiResponse<Transaction>> {\n return this.http.get<ApiResponse<Transaction>>(`/grow/payments/transactions/${id}`);\n }\n}\n","// src/resources/settings.ts\nimport { BaseResource } from \"./base\";\nimport type { ApiResponse } from \"../core/types\";\nimport type { Settings } from \"../types/settings\";\n\nexport class SettingsResource extends BaseResource {\n async get(): Promise<ApiResponse<Settings>> {\n return this.http.get<ApiResponse<Settings>>(\"/settings\");\n }\n}\n","// src/client.ts\nimport { HttpClient } from \"./core/http\";\nimport type { GlanceClientOptions } from \"./core/types\";\nimport { ClientsResource } from \"./resources/clients\";\nimport { ContactsResource } from \"./resources/contacts\";\nimport { AddressesResource } from \"./resources/addresses\";\nimport { ProductsResource } from \"./resources/products\";\nimport { ProductSerialsResource } from \"./resources/product-serials\";\nimport { WarehousesResource } from \"./resources/warehouses\";\nimport { InventoryResource } from \"./resources/inventory\";\nimport { InventoryMovementsResource } from \"./resources/inventory-movements\";\nimport { DocumentsResource } from \"./resources/documents\";\nimport { VendorsResource } from \"./resources/vendors\";\nimport { PurchaseResource } from \"./resources/purchase\";\nimport { ExpensesResource } from \"./resources/expenses\";\nimport { RetainersResource } from \"./resources/retainers\";\nimport { ReportsResource } from \"./resources/reports\";\nimport { EmployeesResource } from \"./resources/employees\";\nimport { FilesResource } from \"./resources/files\";\nimport { CustomFieldsResource } from \"./resources/custom-fields\";\nimport { PaymentsResource } from \"./resources/payments\";\nimport { SettingsResource } from \"./resources/settings\";\n\nexport class GlanceClient {\n readonly clients: ClientsResource;\n readonly contacts: ContactsResource;\n readonly addresses: AddressesResource;\n readonly products: ProductsResource;\n readonly productSerials: ProductSerialsResource;\n readonly warehouses: WarehousesResource;\n readonly inventory: InventoryResource;\n readonly inventoryMovements: InventoryMovementsResource;\n readonly documents: DocumentsResource;\n readonly vendors: VendorsResource;\n readonly purchase: PurchaseResource;\n readonly expenses: ExpensesResource;\n readonly retainers: RetainersResource;\n readonly reports: ReportsResource;\n readonly employees: EmployeesResource;\n readonly files: FilesResource;\n readonly customFields: CustomFieldsResource;\n readonly payments: PaymentsResource;\n readonly settings: SettingsResource;\n\n constructor(options: GlanceClientOptions) {\n if (!options.apiKey) {\n throw new Error(\"apiKey is required\");\n }\n\n const http = new HttpClient(options);\n\n this.clients = new ClientsResource(http);\n this.contacts = new ContactsResource(http);\n this.addresses = new AddressesResource(http);\n this.products = new ProductsResource(http);\n this.productSerials = new ProductSerialsResource(http);\n this.warehouses = new WarehousesResource(http);\n this.inventory = new InventoryResource(http);\n this.inventoryMovements = new InventoryMovementsResource(http);\n this.documents = new DocumentsResource(http);\n this.vendors = new VendorsResource(http);\n this.purchase = new PurchaseResource(http);\n this.expenses = new ExpensesResource(http);\n this.retainers = new RetainersResource(http);\n this.reports = new ReportsResource(http);\n this.employees = new EmployeesResource(http);\n this.files = new FilesResource(http);\n this.customFields = new CustomFieldsResource(http);\n this.payments = new PaymentsResource(http);\n this.settings = new SettingsResource(http);\n }\n}\n","import type { PaginatedResponse, PaginationMeta } from \"./types\";\n\nexport interface PageResult<T> {\n data: T[];\n pagination: PaginationMeta;\n hasMore: boolean;\n}\n\nexport function toPageResult<T>(response: PaginatedResponse<T>): PageResult<T> {\n return {\n data: response.data,\n pagination: response.pagination,\n hasMore: response.pagination.hasMore,\n };\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@glance-il/sdk",
3
+ "version": "0.1.0",
4
+ "description": "Official TypeScript SDK for the Glance API",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.cjs",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "import": {
13
+ "types": "./dist/index.d.ts",
14
+ "default": "./dist/index.js"
15
+ },
16
+ "require": {
17
+ "types": "./dist/index.d.cts",
18
+ "default": "./dist/index.cjs"
19
+ }
20
+ }
21
+ },
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "scripts": {
26
+ "build": "tsup",
27
+ "test": "vitest run",
28
+ "test:watch": "vitest",
29
+ "typecheck": "tsc --noEmit",
30
+ "prepublishOnly": "npm run build"
31
+ },
32
+ "devDependencies": {
33
+ "tsup": "^8.5.0",
34
+ "typescript": "^5.8.0",
35
+ "vitest": "^3.2.0"
36
+ },
37
+ "engines": {
38
+ "node": ">=18.0.0"
39
+ },
40
+ "keywords": [
41
+ "glance",
42
+ "api",
43
+ "sdk",
44
+ "typescript",
45
+ "invoicing",
46
+ "erp"
47
+ ]
48
+ }