Collections

Functions

Functions

parseMentions

Extract

Signature:

parseMentions(content: string): ParsedMention[]

Parameters:

ParameterTypeRequiredDescription
contentstringYes- The text content to parse

Returns:

ParsedMention[] - Array of parsed mentions with identifier and position

Examples:

parseMentions('Hey

## resolveMentions

Resolve parsed mentions to full DiscussionMention objects

**Signature:**

```typescript
resolveMentions(parsed: ParsedMention[], agentLookup: Map<string, AgentLookupEntry>): DiscussionMention[]

Parameters:

ParameterTypeRequiredDescription
parsedParsedMention[]Yes- Array of parsed mentions from mentionParser
agentLookupMap<string, AgentLookupEntry>Yes- Map of identifier to TeamMember info

Returns:

DiscussionMention[] - Array of resolved DiscussionMention objects

Examples:

const lookup = new Map([
  ['viktor-petrov', { teamMemberId: 'team_abc', isAgent: true }]
]);
const resolved = resolveMentions(parsed, lookup);

nodeJsExample

Example 1: Node.js Script (Imperative API) Use when you need immediate results in scripts, CLI tools, or backend services

Signature:

nodeJsExample(db: RxDatabase): Promise<void>

Parameters:

ParameterTypeRequiredDescription
dbRxDatabaseYes

Returns:

Promise<void> -

reactiveExample

Example 2: Reactive API (Vanilla JavaScript) Use in browsers without frameworks for real-time updates

Signature:

reactiveExample(db: RxDatabase): void

Parameters:

ParameterTypeRequiredDescription
dbRxDatabaseYes

filteredQueriesExample

Example 3: Filtered Queries with Indexes Use optimized queries with composite indexes

Signature:

filteredQueriesExample(db: RxDatabase): Promise<void>

Parameters:

ParameterTypeRequiredDescription
dbRxDatabaseYes

Returns:

Promise<void> -

paginationExample

Example 4: Pagination Implement pagination with limit and skip

Signature:

paginationExample(db: RxDatabase): Promise<void>

Parameters:

ParameterTypeRequiredDescription
dbRxDatabaseYes

Returns:

Promise<void> -

errorHandlingExample

Example 5: Error Handling Handle errors gracefully

Signature:

errorHandlingExample(db: RxDatabase): Promise<void>

Parameters:

ParameterTypeRequiredDescription
dbRxDatabaseYes

Returns:

Promise<void> -

batchOperationsExample

Example 6: Batch Operations Perform multiple operations efficiently

Signature:

batchOperationsExample(db: RxDatabase): Promise<void>

Parameters:

ParameterTypeRequiredDescription
dbRxDatabaseYes

Returns:

Promise<void> -

realTimeUpdatesExample

Example 7: Real-time Updates (Reactive) Monitor task changes in real-time

Signature:

realTimeUpdatesExample(db: RxDatabase): void

Parameters:

ParameterTypeRequiredDescription
dbRxDatabaseYes

lifecycleExample

Example 8: Lifecycle Management Properly manage operator lifecycles

Signature:

lifecycleExample(db: RxDatabase): void

Parameters:

ParameterTypeRequiredDescription
dbRxDatabaseYes

buildBaseFilters

Filter Builder Utilities

Provides helper functions for constructing RxDB MangoQuery selectors from typed filter objects. These utilities ensure consistent filter patterns across all collection queries.

Signature:

buildBaseFilters(filters: BaseFilters): MangoSelector

Parameters:

ParameterTypeRequiredDescription
filtersBaseFiltersYes

Returns:

MangoSelector -

buildHierarchyFilters

Build hierarchy filter selector (workspaceId, projectId, milestoneId)

Hierarchy filters enable navigation through the organizational structure. Only the most specific filter should be applied to leverage composite indexes.

Index strategy:

  • If milestoneId provided -> use [milestoneId, createdAt] index
  • Else if projectId provided -> use [projectId, createdAt] index
  • Else if workspaceId provided -> use [workspaceId, createdAt] index
  • Else -> fallback to [orgId, createdAt] index (via base filters)

Signature:

buildHierarchyFilters(filters: HierarchyFilters): MangoSelector

Parameters:

ParameterTypeRequiredDescription
filtersHierarchyFiltersYes- Hierarchy filter configuration

Returns:

MangoSelector - Partial MangoQuery selector for hierarchy filters

Examples:

// Query tasks within a specific milestone (most specific)
const selector = buildHierarchyFilters({ milestoneId: 'milestone_789' });
// Result: { milestoneId: { $eq: 'milestone_789' } }

// Query tasks within a project (less specific)
const selector = buildHierarchyFilters({ projectId: 'project_456' });
// Result: { projectId: { $eq: 'project_456' } }

buildStatusFilters

Build status filter selector (status, completed, archived)

Status filters enable workflow-based queries across different entity states. Supports both single status and multiple status queries.

Signature:

buildStatusFilters(filters: StatusFilters): MangoSelector

Parameters:

ParameterTypeRequiredDescription
filtersStatusFiltersYes- Status filter configuration

Returns:

MangoSelector - Partial MangoQuery selector for status filters

Examples:

// Single status query
const selector = buildStatusFilters({ status: 'In Progress' });
// Result: { status: { $eq: 'In Progress' } }

// Multiple status query (OR condition)
const selector = buildStatusFilters({ status: ['To Do', 'In Progress'] });
// Result: { status: { $in: ['To Do', 'In Progress'] } }

// Completion query
const selector = buildStatusFilters({ completed: true });
// Result: { completed: { $eq: true } }

buildTimeFilters

Build time-based filter selector (createdAt, updatedAt, dueAt ranges)

Time filters enable date range queries for filtering by creation date, update date, or due date. Uses $gte and $lte operators for efficient index-based range queries.

Signature:

buildTimeFilters(filters: TimeFilters): MangoSelector

Parameters:

ParameterTypeRequiredDescription
filtersTimeFiltersYes- Time filter configuration

Returns:

MangoSelector - Partial MangoQuery selector for time filters

Examples:

// Created in date range
const selector = buildTimeFilters({
  createdAfter: '2025-01-01T00:00:00.000Z',
  createdBefore: '2025-12-31T23:59:59.999Z'
});
// Result: {
//   createdAt: {
//     $gte: '2025-01-01T00:00:00.000Z',
//     $lte: '2025-12-31T23:59:59.999Z'
//   }
// }

// Due in next 7 days
const now = new Date().toISOString();
const sevenDaysLater = new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString();
const selector = buildTimeFilters({
  dueAfter: now,
  dueBefore: sevenDaysLater
});

buildCustomFilters

Build custom field filter selector

Enables filtering on arbitrary document fields with equality checks. Useful for collection-specific fields not covered by standard filters.

Note: Custom filters may not leverage indexes. Use base, hierarchy, status, and time filters whenever possible for optimal performance.

Signature:

buildCustomFilters(customFilters: Record<string, any>): MangoSelector

Parameters:

ParameterTypeRequiredDescription
customFiltersRecord<string, any>Yes- Key-value pairs for custom field filters

Returns:

MangoSelector - Partial MangoQuery selector for custom filters

Examples:

// Filter by custom fields
const selector = buildCustomFilters({
  categoryId: 'cat_123',
  type: 'todo',
  priority: 'high'
});
// Result: {
//   categoryId: { $eq: 'cat_123' },
//   type: { $eq: 'todo' },
//   priority: { $eq: 'high' }
// }

mergeSelectors

Merge multiple filter selectors into a single selector

Combines partial selectors from different filter builders into a complete MangoQuery selector. Handles nested field merging properly.

Signature:

mergeSelectors(selectors: (MangoSelector | undefined)[]): MangoSelector

Parameters:

ParameterTypeRequiredDescription
selectors(MangoSelector | undefined)[]Yes- Array of partial selectors to merge

Returns:

MangoSelector - Merged MangoQuery selector

Examples:

const baseSelector = buildBaseFilters({ orgId: 'org_123' });
const hierarchySelector = buildHierarchyFilters({ projectId: 'project_456' });
const statusSelector = buildStatusFilters({ status: 'In Progress' });

const mergedSelector = mergeSelectors([
  baseSelector,
  hierarchySelector,
  statusSelector
]);
// Result: {
//   orgId: { $eq: 'org_123' },
//   archived: { $eq: false },
//   projectId: { $eq: 'project_456' },
//   status: { $eq: 'In Progress' }
// }

validateSelector

Validate selector for common mistakes

Checks for common query construction errors that could lead to poor performance or unexpected results.

Signature:

validateSelector(selector: MangoSelector | undefined): string[]

Parameters:

ParameterTypeRequiredDescription
selectorMangoSelector | undefinedYes- MangoQuery selector to validate

Returns:

string[] - Array of validation warnings (empty if valid)

Examples:

const selector = {
  // Missing orgId - not multi-tenant safe!
  status: { $eq: 'In Progress' }
};

const warnings = validateSelector(selector);
// Result: ['Missing required orgId filter for multi-tenant isolation']

getHierarchyLevel

Determine the hierarchy level based on provided filters

Analyzes hierarchy filters to determine which level of the hierarchy is being queried. This informs index selection for optimal query performance.

Priority order (most specific to least specific):

  1. milestone - Task-level queries
  2. project - Project-level queries
  3. workspace - Workspace-level queries
  4. org - Organization-level queries (fallback)

Signature:

getHierarchyLevel(filters: HierarchyFilters): "project" | "milestone" | "workspace" | "org"

Parameters:

ParameterTypeRequiredDescription
filtersHierarchyFiltersYes- Hierarchy filter configuration

Returns:

"project" \| "milestone" \| "workspace" \| "org" - The hierarchy level being queried

Examples:

// Task-level query (most specific)
getHierarchyLevel({ milestoneId: 'milestone_789' });
// Returns: 'milestone'

// Project-level query
getHierarchyLevel({ projectId: 'project_456' });
// Returns: 'project'

// Organization-level query (fallback)
getHierarchyLevel({});
// Returns: 'org'

selectBestIndex

Select the best composite index for a query

Analyzes the provided filters and collection schema to automatically select the most efficient composite index. Uses the most specific filter available to maximize index effectiveness.

Index selection strategy:

  1. Identify the most specific hierarchy filter present
  2. Check if collection has a composite index for that field
  3. Return the index field and confidence score
  4. Fallback to orgId index if no hierarchy filters present

Signature:

selectBestIndex(filters: HierarchyFilters, collectionName: string): IndexSelection

Parameters:

ParameterTypeRequiredDescription
filtersHierarchyFiltersYes- Hierarchy filter configuration
collectionNamestringYes- Name of the collection being queried

Returns:

IndexSelection - Index selection recommendation

Examples:

// Query tasks by milestone (most efficient)
selectBestIndex({ milestoneId: 'milestone_789' }, 'tasks');
// Returns: {
//   indexField: 'milestoneId',
//   level: 'milestone',
//   confidence: 1.0
// }

// Query tasks by project
selectBestIndex({ projectId: 'project_456' }, 'tasks');
// Returns: {
//   indexField: 'projectId',
//   level: 'project',
//   confidence: 1.0
// }

// Query without hierarchy filters (fallback)
selectBestIndex({}, 'tasks');
// Returns: {
//   indexField: 'orgId',
//   level: 'org',
//   confidence: 0.8
// }

buildHierarchicalQuery

Build a hierarchical query optimized for composite indexes

Constructs a complete MangoQuery that automatically uses the best available composite index based on the hierarchy filters provided. Ensures queries are structured to maximize RxDB's query performance.

Query construction strategy:

  1. Select the optimal composite index based on filters
  2. Build selector with most specific hierarchy filter first
  3. Add secondary filters after indexed fields
  4. Configure sort to use the same index (field + createdAt)
  5. Add pagination if specified

Signature:

buildHierarchicalQuery(options: { collectionName: string; orgId: string; hierarchy?: HierarchyFilters; additionalSelector?: Partial<MangoQuery<T>["selector"]>; sortDirection?: "asc" | "desc"; customSort?: MangoQuery<T>["sort"]; limit?: number; skip?: number; }): MangoQuery<T>

Parameters:

ParameterTypeRequiredDescription
options{ collectionName: string; orgId: string; hierarchy?: HierarchyFilters; additionalSelector?: Partial<MangoQuery<T>["selector"]>; sortDirection?: "asc" | "desc"; customSort?: MangoQuery<T>["sort"]; limit?: number; skip?: number; }Yes- Query configuration options

Returns:

MangoQuery<T> - Complete MangoQuery optimized for performance

Examples:

// Optimized milestone-level task query
const query = buildHierarchicalQuery({
  collectionName: 'tasks',
  orgId: 'org_123',
  hierarchy: { milestoneId: 'milestone_789' },
  limit: 50,
  sortDirection: 'desc'
});
// Uses [milestoneId, createdAt] index
// Result: {
//   selector: {
//     milestoneId: { $eq: 'milestone_789' },
//     orgId: { $eq: 'org_123' },
//     archived: { $eq: false }
//   },
//   sort: [{ createdAt: 'desc' }],
//   limit: 50
// }

optimizeForIndex

Optimize a query for index usage

Analyzes an existing MangoQuery and restructures it to better utilize available composite indexes. This is useful when converting manually-built queries to use optimal index patterns.

Optimization strategy:

  1. Extract hierarchy filters from selector
  2. Identify best index for these filters
  3. Restructure selector to place indexed field first
  4. Adjust sort to use same index
  5. Return optimized query

Signature:

optimizeForIndex(query: MangoQuery<T>, collectionName: string): MangoQuery<T>

Parameters:

ParameterTypeRequiredDescription
queryMangoQuery<T>Yes- Original MangoQuery to optimize
collectionNamestringYes- Collection name for index lookup

Returns:

MangoQuery<T> - Optimized MangoQuery with better index usage

Examples:

// Sub-optimal query (fields in wrong order)
const originalQuery = {
  selector: {
    status: { $eq: 'In Progress' },
    projectId: { $eq: 'project_456' },
    orgId: { $eq: 'org_123' }
  },
  sort: [{ updatedAt: 'desc' }]
};

const optimized = optimizeForIndex(originalQuery, 'tasks');
// Returns: {
//   selector: {
//     projectId: { $eq: 'project_456' },  // Indexed field first
//     orgId: { $eq: 'org_123' },
//     status: { $eq: 'In Progress' }
//   },
//   sort: [{ createdAt: 'desc' }]  // Sort by index field
// }

analyzeQueryPerformance

Analyze query performance and provide optimization hints

Evaluates a MangoQuery to determine if it's using indexes efficiently and provides actionable suggestions for improvement.

Analysis includes:

  • Index usage detection
  • Sort field optimization
  • Selector field ordering
  • Performance impact estimation

Signature:

analyzeQueryPerformance(query: MangoQuery, collectionName: string): QueryOptimizationHint

Parameters:

ParameterTypeRequiredDescription
queryMangoQueryYes- MangoQuery to analyze
collectionNamestringYes- Collection name for index lookup

Returns:

QueryOptimizationHint - Query optimization hints and suggestions

Examples:

const query = {
  selector: {
    orgId: { $eq: 'org_123' },
    status: { $eq: 'In Progress' }
  },
  sort: [{ title: 'asc' }]
};

const hints = analyzeQueryPerformance(query, 'tasks');
// Returns: {
//   isOptimal: false,
//   indexUsed: 'orgId',
//   suggestions: [
//     'Consider adding hierarchy filter (projectId or milestoneId) for better performance',
//     'Sort by createdAt instead of title to use composite index'
//   ],
//   performanceImpact: 'medium'
// }

getAvailableIndexes

Get available indexes for a collection

Returns the list of composite indexes available for a given collection. Useful for debugging and query planning.

Signature:

getAvailableIndexes(collectionName: string): string[][]

Parameters:

ParameterTypeRequiredDescription
collectionNamestringYes- Collection name

Returns:

string[][] - Array of available composite indexes

Examples:

getAvailableIndexes('tasks');
// Returns: [
//   ['orgId', 'createdAt'],
//   ['projectId', 'createdAt'],
//   ['milestoneId', 'createdAt']
// ]

buildQuery

Query Builder Utilities

Provides a high-level API for constructing optimized RxDB queries from typed filter objects. Automatically handles composite index selection, selector construction, and sort optimization.

Key features:

  • Automatic composite index selection based on hierarchy filters
  • Type-safe filter construction
  • Query validation and optimization hints
  • Support for sorting, pagination, and custom filters

Signature:

buildQuery(options: QueryBuilderOptions<T> & { collectionName: string; }): MangoQuery<T>

Parameters:

ParameterTypeRequiredDescription
optionsQueryBuilderOptions<T> & { collectionName: string; }Yes

Returns:

MangoQuery<T> -

Examples:

Basic Usage
```ts
// Build a simple task query
const query = buildQuery({
collectionName: 'tasks',
base: { orgId: 'org_123' },
hierarchy: { projectId: 'project_456' },
status: { status: 'In Progress' },
pagination: { limit: 50 }
});

```typescript
Advanced Usage
```ts
// Build a complex query with time filters and custom fields
const query = buildQuery({
collectionName: 'tasks',
base: { orgId: 'org_123', userId: 'user_789' },
hierarchy: { milestoneId: 'milestone_101' },
status: { status: ['To Do', 'In Progress'], completed: false },
time: {
createdAfter: '2025-01-01T00:00:00.000Z',
dueBefore: '2025-12-31T23:59:59.999Z'
},
custom: { type: 'todo', categoryId: 'cat_123' },
sort: { field: 'createdAt', direction: 'desc' },
pagination: { limit: 100, skip: 0 }
});

## buildSimpleQuery

Build a simple query with minimal configuration

Convenience function for common query patterns that don't require
complex filtering. Automatically handles base filters and pagination.

Use this for:
- Simple list queries (all tasks in org)
- Basic hierarchy queries (all tasks in project)
- Quick prototypes and testing

For complex queries with multiple filter types, use buildQuery() instead.

**Signature:**

```typescript
buildSimpleQuery(options: { collectionName: string; orgId: string; userId?: string; workspaceId?: string; projectId?: string; milestoneId?: string; trashed?: boolean; sortField?: string; sortDirection?: "asc" | "desc"; limit?: number; skip?: number; }): MangoQuery<T>

Parameters:

ParameterTypeRequiredDescription
options{ collectionName: string; orgId: string; userId?: string; workspaceId?: string; projectId?: string; milestoneId?: string; trashed?: boolean; sortField?: string; sortDirection?: "asc" | "desc"; limit?: number; skip?: number; }Yes- Simplified query options

Returns:

MangoQuery<T> - Optimized MangoQuery

Examples:

All Tasks in Organization
```ts
const query = buildSimpleQuery({
collectionName: 'tasks',
orgId: 'org_123',
limit: 50
});

```typescript
Tasks in Project
```ts
const query = buildSimpleQuery({
collectionName: 'tasks',
orgId: 'org_123',
projectId: 'project_456',
limit: 100
});

```typescript
User-Scoped Tasks
```ts
const query = buildSimpleQuery({
collectionName: 'tasks',
orgId: 'org_123',
userId: 'user_789',
sortField: 'updatedAt',
sortDirection: 'desc'
});

## buildCountQuery

Build a count query for aggregation

Constructs a query optimized for counting documents without retrieving
full document data. Useful for pagination, statistics, and dashboards.

Count queries should:
- Use the same selector as the main query
- Omit limit/skip (count all matching docs)
- Not require sort (count doesn't care about order)

**Signature:**

```typescript
buildCountQuery(options: QueryBuilderOptions<T> & { collectionName: string; }): Pick<MangoQuery<T>, "selector">

Parameters:

ParameterTypeRequiredDescription
optionsQueryBuilderOptions<T> & { collectionName: string; }Yes- Query configuration (same as buildQuery)

Returns:

Pick<MangoQuery<T>, "selector"> - MangoQuery optimized for counting

Examples:

Count Tasks in Project
```ts
const countQuery = buildCountQuery({
collectionName: 'tasks',
base: { orgId: 'org_123' },
hierarchy: { projectId: 'project_456' },
status: { completed: false }
});

// Use with RxDB
const count = await collection.count(countQuery.selector).exec();

## buildIdQuery

Build a query for fetching a single document by ID

Convenience function for primary key lookups. More efficient than
using findOne with a selector when you know the document ID.

Note: This returns a selector-only query. Use with collection.findOne()
instead of collection.find() for optimal performance.

**Signature:**

```typescript
buildIdQuery(id: string, orgId: string): Pick<MangoQuery<T>, "selector">

Parameters:

ParameterTypeRequiredDescription
idstringYes- Document ID
orgIdstringYes- Organization ID (for validation)

Returns:

Pick<MangoQuery<T>, "selector"> - MangoQuery selector for ID lookup

Examples:

Fetch Task by ID
```ts
const query = buildIdQuery('task_123', 'org_456');

// Use with RxDB
const doc = await collection.findOne(query.selector).exec();

## buildBatchIdQuery

Build a batch query for fetching multiple documents by IDs

Efficiently fetch multiple documents by their primary keys.
More performant than multiple individual queries.

**Signature:**

```typescript
buildBatchIdQuery(ids: string[], orgId: string, limit?: number | undefined): MangoQuery<T>

Parameters:

ParameterTypeRequiredDescription
idsstring[]Yes- Array of document IDs
orgIdstringYes- Organization ID (for validation)
limitnumber | undefinedNo- Optional limit on results

Returns:

MangoQuery<T> - MangoQuery for batch ID lookup

Examples:

Fetch Multiple Tasks
```ts
const query = buildBatchIdQuery(
['task_123', 'task_456', 'task_789'],
'org_abc'
);

// Use with RxDB
const docs = await collection.find(query).exec();

## buildSearchQuery

Build a search query with text matching

Constructs a query that searches across multiple text fields.
Uses regex matching for flexible text search.

Note: Regex queries may not use indexes efficiently. For large datasets,
consider using a dedicated search solution like ElasticSearch or Algolia.

**Signature:**

```typescript
buildSearchQuery(options: { collectionName: string; orgId: string; searchTerm: string; searchFields: string[]; projectId?: string; milestoneId?: string; caseSensitive?: boolean; limit?: number; }): MangoQuery<T>

Parameters:

ParameterTypeRequiredDescription
options{ collectionName: string; orgId: string; searchTerm: string; searchFields: string[]; projectId?: string; milestoneId?: string; caseSensitive?: boolean; limit?: number; }Yes- Search query configuration

Returns:

MangoQuery<T> - MangoQuery with text search

Examples:

Search Tasks by Title and Description
```ts
const query = buildSearchQuery({
collectionName: 'tasks',
orgId: 'org_123',
searchTerm: 'authentication',
searchFields: ['title', 'description'],
projectId: 'project_456',
limit: 20
});

## useApproval

Hook to fetch a single approval by ID
Returns the approval object, loading state, and error

**Signature:**

```typescript
useApproval(db: any, approvalId?: string | undefined): UseApprovalResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
approvalIdstring | undefinedNo

Returns:

UseApprovalResult -

useApprovals

Signature:

useApprovals(db: any, filters: ApprovalFilters, options?: UseApprovalsOptions | undefined): UseApprovalsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersApprovalFiltersYes
optionsUseApprovalsOptions | undefinedNo

Returns:

UseApprovalsResult -

useCreateApproval

Signature:

useCreateApproval(db: any): UseMutationResult<ApprovalModel, CreateApprovalInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<ApprovalModel, CreateApprovalInput> -

useUpdateApproval

Signature:

useUpdateApproval(db: any): UseMutationResult<ApprovalModel, UpdateApprovalInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<ApprovalModel, UpdateApprovalInput> -

useDeleteApproval

Signature:

useDeleteApproval(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useAttribute

Hook to fetch a single attribute by ID Returns the attribute object, loading state, and error

Signature:

useAttribute(db: any, attributeId?: string | undefined): UseAttributeResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
attributeIdstring | undefinedNo

Returns:

UseAttributeResult -

useAttributes

Signature:

useAttributes(db: any, filters: AttributeFilters, options?: UseAttributesOptions | undefined): UseAttributesResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersAttributeFiltersYes
optionsUseAttributesOptions | undefinedNo

Returns:

UseAttributesResult -

useCreateAttribute

Signature:

useCreateAttribute(db: any): UseMutationResult<AttributeModel, CreateAttributeInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<AttributeModel, CreateAttributeInput> -

useUpdateAttribute

Signature:

useUpdateAttribute(db: any): UseMutationResult<AttributeModel, UpdateAttributeInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<AttributeModel, UpdateAttributeInput> -

useDeleteAttribute

Signature:

useDeleteAttribute(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useBusinessPlan

Signature:

useBusinessPlan(db: any, planId?: string | undefined): UseBusinessPlanResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
planIdstring | undefinedNo

Returns:

UseBusinessPlanResult -

useBusinessPlans

Signature:

useBusinessPlans(db: any, filters: BusinessPlanFilters, options?: UseBusinessPlansOptions | undefined): UseBusinessPlansResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersBusinessPlanFiltersYes
optionsUseBusinessPlansOptions | undefinedNo

Returns:

UseBusinessPlansResult -

useCreateBusinessPlan

Signature:

useCreateBusinessPlan(db: any): UseMutationResult<BusinessPlanModel, CreateBusinessPlanInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<BusinessPlanModel, CreateBusinessPlanInput> -

useUpdateBusinessPlan

Signature:

useUpdateBusinessPlan(db: any): UseMutationResult<BusinessPlanModel, UpdateBusinessPlanInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<BusinessPlanModel, UpdateBusinessPlanInput> -

useDeleteBusinessPlan

Signature:

useDeleteBusinessPlan(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useClient

Hook to fetch a single client by ID Returns the client object, loading state, and error

Signature:

useClient(db: any, clientId?: string | undefined): UseClientResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
clientIdstring | undefinedNo

Returns:

UseClientResult -

useClients

Signature:

useClients(db: any, filters: ClientFilters, options?: UseClientsOptions | undefined): UseClientsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersClientFiltersYes
optionsUseClientsOptions | undefinedNo

Returns:

UseClientsResult -

useCreateClient

Signature:

useCreateClient(db: any): UseMutationResult<ClientModel, CreateClientInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<ClientModel, CreateClientInput> -

useUpdateClient

Signature:

useUpdateClient(db: any): UseMutationResult<ClientModel, UpdateClientInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<ClientModel, UpdateClientInput> -

useDeleteClient

Signature:

useDeleteClient(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useCodebase

Hook to fetch a single codebase by ID Returns the codebase object, loading state, and error

Signature:

useCodebase(db: any, codebaseId?: string | undefined): UseCodebaseResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
codebaseIdstring | undefinedNo

Returns:

UseCodebaseResult -

useCodebases

Signature:

useCodebases(db: any, filters: CodebaseFilters, options?: UseCodebasesOptions | undefined): UseCodebasesResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersCodebaseFiltersYes
optionsUseCodebasesOptions | undefinedNo

Returns:

UseCodebasesResult -

useCreateCodebase

Signature:

useCreateCodebase(db: any): UseMutationResult<CodebaseModel, CreateCodebaseInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<CodebaseModel, CreateCodebaseInput> -

useUpdateCodebase

Signature:

useUpdateCodebase(db: any): UseMutationResult<CodebaseModel, UpdateCodebaseInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<CodebaseModel, UpdateCodebaseInput> -

useDeleteCodebase

Signature:

useDeleteCodebase(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useCompetitor

Signature:

useCompetitor(db: any, competitorId?: string | undefined): UseCompetitorResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
competitorIdstring | undefinedNo

Returns:

UseCompetitorResult -

useCompetitors

Signature:

useCompetitors(db: any, filters: CompetitorFilters, options?: UseCompetitorsOptions | undefined): UseCompetitorsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersCompetitorFiltersYes
optionsUseCompetitorsOptions | undefinedNo

Returns:

UseCompetitorsResult -

useCreateCompetitor

Signature:

useCreateCompetitor(db: any): UseMutationResult<CompetitorModel, CreateCompetitorInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<CompetitorModel, CreateCompetitorInput> -

useUpdateCompetitor

Signature:

useUpdateCompetitor(db: any): UseMutationResult<CompetitorModel, UpdateCompetitorInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<CompetitorModel, UpdateCompetitorInput> -

useDeleteCompetitor

Signature:

useDeleteCompetitor(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useContact

Hook to fetch a single contact by ID Returns the contact object, loading state, and error

Signature:

useContact(db: any, contactId?: string | undefined): UseContactResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
contactIdstring | undefinedNo

Returns:

UseContactResult -

useContacts

Signature:

useContacts(db: any, filters: ContactFilters, options?: UseContactsOptions | undefined): UseContactsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersContactFiltersYes
optionsUseContactsOptions | undefinedNo

Returns:

UseContactsResult -

useCreateContact

Signature:

useCreateContact(db: any): UseMutationResult<ContactModel, CreateContactInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<ContactModel, CreateContactInput> -

useUpdateContact

Signature:

useUpdateContact(db: any): UseMutationResult<ContactModel, UpdateContactInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<ContactModel, UpdateContactInput> -

useDeleteContact

Signature:

useDeleteContact(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useConversation

Hook to fetch a single conversation by ID Returns the conversation object, loading state, and error

Signature:

useConversation(db: any, conversationId?: string | undefined): UseConversationResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
conversationIdstring | undefinedNo

Returns:

UseConversationResult -

useConversations

Signature:

useConversations(db: any, filters: ConversationFilters, options?: UseConversationsOptions | undefined): UseConversationsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersConversationFiltersYes
optionsUseConversationsOptions | undefinedNo

Returns:

UseConversationsResult -

useCreateConversation

Signature:

useCreateConversation(db: any): UseMutationResult<ConversationModel, CreateConversationInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<ConversationModel, CreateConversationInput> -

useUpdateConversation

Signature:

useUpdateConversation(db: any): UseMutationResult<ConversationModel, UpdateConversationInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<ConversationModel, UpdateConversationInput> -

useDeleteConversation

Signature:

useDeleteConversation(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useDiscussion

Hook to fetch a single discussion by ID Returns the discussion object, loading state, and error

Signature:

useDiscussion(db: any, discussionId?: string | undefined): UseDiscussionResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
discussionIdstring | undefinedNo

Returns:

UseDiscussionResult -

useDiscussions

Signature:

useDiscussions(db: any, filters: DiscussionFilters, options?: UseDiscussionsOptions | undefined): UseDiscussionsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersDiscussionFiltersYes
optionsUseDiscussionsOptions | undefinedNo

Returns:

UseDiscussionsResult -

useCreateDiscussion

Signature:

useCreateDiscussion(db: any): UseMutationResult<DiscussionModel, CreateDiscussionInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<DiscussionModel, CreateDiscussionInput> -

useUpdateDiscussion

Signature:

useUpdateDiscussion(db: any): UseMutationResult<DiscussionModel, UpdateDiscussionInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<DiscussionModel, UpdateDiscussionInput> -

useDeleteDiscussion

Signature:

useDeleteDiscussion(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useDocument

Hook to fetch a single document by ID Returns the document object, loading state, and error

Signature:

useDocument(db: any, documentId?: string | undefined): UseDocumentResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
documentIdstring | undefinedNo

Returns:

UseDocumentResult -

useDocuments

Signature:

useDocuments(db: any, filters: DocumentFilters, options?: UseDocumentsOptions | undefined): UseDocumentsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersDocumentFiltersYes
optionsUseDocumentsOptions | undefinedNo

Returns:

UseDocumentsResult -

useCreateDocument

Signature:

useCreateDocument(db: any): UseMutationResult<DocumentModel, CreateDocumentInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<DocumentModel, CreateDocumentInput> -

useUpdateDocument

Signature:

useUpdateDocument(db: any): UseMutationResult<DocumentModel, UpdateDocumentInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<DocumentModel, UpdateDocumentInput> -

useDeleteDocument

Signature:

useDeleteDocument(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useApproveDocument

Signature:

useApproveDocument(db: any): UseMutationResult<DocumentModel, { id: string; userId: string; }>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<DocumentModel, { id: string; userId: string; }> -

useFinAccount

Hook to fetch a single account by ID Returns the account object, loading state, and error

Signature:

useFinAccount(db: any, accountId?: string | undefined): UseFinAccountResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
accountIdstring | undefinedNo

Returns:

UseFinAccountResult -

useFinAccounts

Signature:

useFinAccounts(db: any, filters: FinAccountFilters, options?: UseFinAccountsOptions | undefined): UseFinAccountsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersFinAccountFiltersYes
optionsUseFinAccountsOptions | undefinedNo

Returns:

UseFinAccountsResult -

useCreateFinAccount

Signature:

useCreateFinAccount(db: any): UseMutationResult<FinAccountModel, CreateFinAccountInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<FinAccountModel, CreateFinAccountInput> -

useUpdateFinAccount

Signature:

useUpdateFinAccount(db: any): UseMutationResult<FinAccountModel, UpdateFinAccountInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<FinAccountModel, UpdateFinAccountInput> -

useDeleteFinAccount

Signature:

useDeleteFinAccount(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useFinBudget

Hook to fetch a single budget by ID Returns the budget object, loading state, and error

Signature:

useFinBudget(db: any, budgetId?: string | undefined): UseFinBudgetResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
budgetIdstring | undefinedNo

Returns:

UseFinBudgetResult -

useFinBudgets

Signature:

useFinBudgets(db: any, filters: FinBudgetFilters, options?: UseFinBudgetsOptions | undefined): UseFinBudgetsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersFinBudgetFiltersYes
optionsUseFinBudgetsOptions | undefinedNo

Returns:

UseFinBudgetsResult -

useCreateFinBudget

Signature:

useCreateFinBudget(db: any): UseMutationResult<BudgetModel, CreateFinBudgetInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<BudgetModel, CreateFinBudgetInput> -

useUpdateFinBudget

Signature:

useUpdateFinBudget(db: any): UseMutationResult<BudgetModel, UpdateFinBudgetInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<BudgetModel, UpdateFinBudgetInput> -

useDeleteFinBudget

Signature:

useDeleteFinBudget(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useFinCategory

Hook to fetch a single category by ID Returns the category object, loading state, and error

Signature:

useFinCategory(db: any, categoryId?: string | undefined): UseFinCategoryResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
categoryIdstring | undefinedNo

Returns:

UseFinCategoryResult -

useFinCategories

Signature:

useFinCategories(db: any, filters: FinCategoryFilters, options?: UseFinCategoriesOptions | undefined): UseFinCategoriesResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersFinCategoryFiltersYes
optionsUseFinCategoriesOptions | undefinedNo

Returns:

UseFinCategoriesResult -

useCreateFinCategory

Signature:

useCreateFinCategory(db: any): UseMutationResult<FinCategoryModel, CreateFinCategoryInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<FinCategoryModel, CreateFinCategoryInput> -

useUpdateFinCategory

Signature:

useUpdateFinCategory(db: any): UseMutationResult<FinCategoryModel, UpdateFinCategoryInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<FinCategoryModel, UpdateFinCategoryInput> -

useDeleteFinCategory

Signature:

useDeleteFinCategory(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useFinIncomeStatement

Hook to fetch a single income statement by ID Returns the income statement object, loading state, and error

Signature:

useFinIncomeStatement(db: any, statementId?: string | undefined): UseFinIncomeStatementResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
statementIdstring | undefinedNo

Returns:

UseFinIncomeStatementResult -

useFinIncomeStatements

Signature:

useFinIncomeStatements(db: any, filters: FinIncomeStatementFilters, options?: UseFinIncomeStatementsOptions | undefined): UseFinIncomeStatementsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersFinIncomeStatementFiltersYes
optionsUseFinIncomeStatementsOptions | undefinedNo

Returns:

UseFinIncomeStatementsResult -

useCreateFinIncomeStatement

Signature:

useCreateFinIncomeStatement(db: any): UseMutationResult<FinIncomeStatementModel, CreateFinIncomeStatementInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<FinIncomeStatementModel, CreateFinIncomeStatementInput> -

useUpdateFinIncomeStatement

Signature:

useUpdateFinIncomeStatement(db: any): UseMutationResult<FinIncomeStatementModel, UpdateFinIncomeStatementInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<FinIncomeStatementModel, UpdateFinIncomeStatementInput> -

useDeleteFinIncomeStatement

Signature:

useDeleteFinIncomeStatement(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useFinScheduledTransaction

Hook to fetch a single scheduled transaction by ID Returns the transaction object, loading state, and error

Signature:

useFinScheduledTransaction(db: any, transactionId?: string | undefined): UseFinScheduledTransactionResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
transactionIdstring | undefinedNo

Returns:

UseFinScheduledTransactionResult -

useFinScheduledTransactions

Signature:

useFinScheduledTransactions(db: any, filters: FinScheduledTransactionFilters, options?: UseFinScheduledTransactionsOptions | undefined): UseFinScheduledTransactionsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersFinScheduledTransactionFiltersYes
optionsUseFinScheduledTransactionsOptions | undefinedNo

Returns:

UseFinScheduledTransactionsResult -

useCreateFinScheduledTransaction

Signature:

useCreateFinScheduledTransaction(db: any): UseMutationResult<FinScheduledTransactionModel, CreateFinScheduledTransactionInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<FinScheduledTransactionModel, CreateFinScheduledTransactionInput> -

useUpdateFinScheduledTransaction

Signature:

useUpdateFinScheduledTransaction(db: any): UseMutationResult<FinScheduledTransactionModel, UpdateFinScheduledTransactionInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<FinScheduledTransactionModel, UpdateFinScheduledTransactionInput> -

useDeleteFinScheduledTransaction

Signature:

useDeleteFinScheduledTransaction(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useFinTransaction

Hook to fetch a single transaction by ID Returns the transaction object, loading state, and error

Signature:

useFinTransaction(db: any, transactionId?: string | undefined): UseFinTransactionResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
transactionIdstring | undefinedNo

Returns:

UseFinTransactionResult -

useFinTransactions

Signature:

useFinTransactions(db: any, filters: FinTransactionFilters, options?: UseFinTransactionsOptions | undefined): UseFinTransactionsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersFinTransactionFiltersYes
optionsUseFinTransactionsOptions | undefinedNo

Returns:

UseFinTransactionsResult -

useCreateFinTransaction

Signature:

useCreateFinTransaction(db: any): UseMutationResult<FinTransactionModel, CreateFinTransactionInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<FinTransactionModel, CreateFinTransactionInput> -

useUpdateFinTransaction

Signature:

useUpdateFinTransaction(db: any): UseMutationResult<FinTransactionModel, UpdateFinTransactionInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<FinTransactionModel, UpdateFinTransactionInput> -

useDeleteFinTransaction

Signature:

useDeleteFinTransaction(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useFlow

Hook to fetch a single flow by ID Returns the flow object, loading state, and error

Signature:

useFlow(db: any, flowId?: string | undefined): UseFlowResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
flowIdstring | undefinedNo

Returns:

UseFlowResult -

useFlows

Signature:

useFlows(db: any, filters: FlowFilters, options?: UseFlowsOptions | undefined): UseFlowsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersFlowFiltersYes
optionsUseFlowsOptions | undefinedNo

Returns:

UseFlowsResult -

useCreateFlow

Signature:

useCreateFlow(db: any): UseMutationResult<FlowModel, CreateFlowInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<FlowModel, CreateFlowInput> -

useUpdateFlow

Signature:

useUpdateFlow(db: any): UseMutationResult<FlowModel, UpdateFlowInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<FlowModel, UpdateFlowInput> -

useDeleteFlow

Signature:

useDeleteFlow(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useGoal

Hook to fetch a single goal by ID Returns the goal object, loading state, and error

Signature:

useGoal(db: any, goalId?: string | undefined): UseGoalResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
goalIdstring | undefinedNo

Returns:

UseGoalResult -

useGoals

Signature:

useGoals(db: any, filters: GoalFilters, options?: UseGoalsOptions | undefined): UseGoalsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersGoalFiltersYes
optionsUseGoalsOptions | undefinedNo

Returns:

UseGoalsResult -

useCreateGoal

Signature:

useCreateGoal(db: any): UseMutationResult<GoalModel, CreateGoalInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<GoalModel, CreateGoalInput> -

useUpdateGoal

Signature:

useUpdateGoal(db: any): UseMutationResult<GoalModel, UpdateGoalInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<GoalModel, UpdateGoalInput> -

useDeleteGoal

Signature:

useDeleteGoal(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useInitiatives

Signature:

useInitiatives(db: any, filters: InitiativeFilters, options?: UseInitiativesOptions | undefined): UseInitiativesResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersInitiativeFiltersYes
optionsUseInitiativesOptions | undefinedNo

Returns:

UseInitiativesResult -

useCreateInitiative

Signature:

useCreateInitiative(db: any): UseMutationResult<InitiativeModel, CreateInitiativeInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<InitiativeModel, CreateInitiativeInput> -

useUpdateInitiative

Signature:

useUpdateInitiative(db: any): UseMutationResult<InitiativeModel, UpdateInitiativeInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<InitiativeModel, UpdateInitiativeInput> -

useDeleteInitiative

Signature:

useDeleteInitiative(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useMarketAnalysis

Signature:

useMarketAnalysis(db: any, analysisId?: string | undefined): UseMarketAnalysisResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
analysisIdstring | undefinedNo

Returns:

UseMarketAnalysisResult -

useMarketAnalyses

Signature:

useMarketAnalyses(db: any, filters: MarketAnalysisFilters, options?: UseMarketAnalysesOptions | undefined): UseMarketAnalysesResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersMarketAnalysisFiltersYes
optionsUseMarketAnalysesOptions | undefinedNo

Returns:

UseMarketAnalysesResult -

useCreateMarketAnalysis

Signature:

useCreateMarketAnalysis(db: any): UseMutationResult<MarketAnalysisModel, CreateMarketAnalysisInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<MarketAnalysisModel, CreateMarketAnalysisInput> -

useUpdateMarketAnalysis

Signature:

useUpdateMarketAnalysis(db: any): UseMutationResult<MarketAnalysisModel, UpdateMarketAnalysisInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<MarketAnalysisModel, UpdateMarketAnalysisInput> -

useDeleteMarketAnalysis

Signature:

useDeleteMarketAnalysis(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useMessage

Hook to fetch a single message by ID Returns the message object, loading state, and error

Signature:

useMessage(db: any, messageId?: string | undefined): UseMessageResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
messageIdstring | undefinedNo

Returns:

UseMessageResult -

useMessages

Signature:

useMessages(db: any, filters: MessageFilters, options?: UseMessagesOptions | undefined): UseMessagesResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersMessageFiltersYes
optionsUseMessagesOptions | undefinedNo

Returns:

UseMessagesResult -

useCreateMessage

Signature:

useCreateMessage(db: any): UseMutationResult<MessageModel, CreateMessageInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<MessageModel, CreateMessageInput> -

useUpdateMessage

Signature:

useUpdateMessage(db: any): UseMutationResult<MessageModel, UpdateMessageInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<MessageModel, UpdateMessageInput> -

useDeleteMessage

Signature:

useDeleteMessage(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useMilestone

Hook to fetch a single milestone by ID Returns the milestone object, loading state, and error

Signature:

useMilestone(db: any, milestoneId?: string | undefined): UseMilestoneResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
milestoneIdstring | undefinedNo

Returns:

UseMilestoneResult -

useMilestones

React hook for querying milestones

Creates a MilestoneOperator query and subscribes to results. Automatically updates when milestones change in the database.

Signature:

useMilestones(db: any, filters: MilestoneFilters, options?: UseMilestonesOptions | undefined): UseMilestonesResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()
filtersMilestoneFiltersYes- Milestone filters to apply
optionsUseMilestonesOptions | undefinedNo- Optional query options

Returns:

UseMilestonesResult - UseMilestonesResult with milestones, isLoading, and error

Examples:

function MilestoneList() {
  const { db } = useDatabase();
  const { milestones, isLoading, error } = useMilestones(db, {
    orgId: 'org_123',
    projectId: 'project_456',
    completed: false
  }, {
    sort: 'createdAt',
    limit: 50
  });

  if (isLoading) return <div>Loading milestones...</div>;
  if (error) return <div>Error: {error.message}</div>;

  return (
    <ul>
      {milestones.map(milestone => (
        <li key={milestone.id}>
          {milestone.title} - {milestone.completed ? 'Complete' : 'In Progress'}
        </li>
      ))}
    </ul>
  );
}

useCreateMilestone

React hook for creating milestones

Signature:

useCreateMilestone(db: any): UseMutationResult<MilestoneModel, CreateMilestoneInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<MilestoneModel, CreateMilestoneInput> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function CreateMilestoneForm({ orgId, projectId, goalId }: { orgId: string; projectId: string; goalId: string }) {
  const { db } = useDatabase();
  const userId = 'user_123';
  const { mutate, isLoading, error, data } = useCreateMilestone(db);

  const handleSubmit = (e) => {
    e.preventDefault();
    mutate({
      name: 'milestone-1',
      title: 'Milestone 1',
      description: 'First milestone',
      orgId,
      userId,
      projectId,
      goalId
    });
  };

  return <form onSubmit={handleSubmit}>...</form>;
}

useUpdateMilestone

React hook for updating milestones

Signature:

useUpdateMilestone(db: any): UseMutationResult<MilestoneModel, UpdateMilestoneInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<MilestoneModel, UpdateMilestoneInput> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function EditMilestoneForm({ milestoneId }: { milestoneId: string }) {
  const { db } = useDatabase();
  const { mutate, isLoading, error } = useUpdateMilestone(db);

  const handleSubmit = (e) => {
    e.preventDefault();
    mutate({
      id: milestoneId,
      updates: {
        title: 'Updated Title',
        completed: true
      }
    });
  };

  return <form onSubmit={handleSubmit}>...</form>;
}

useDeleteMilestone

React hook for deleting milestones (soft delete)

Signature:

useDeleteMilestone(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<void, string> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function DeleteMilestoneButton({ milestoneId }: { milestoneId: string }) {
  const { db } = useDatabase();
  const { mutate, isLoading } = useDeleteMilestone(db);

  const handleDelete = () => {
    if (confirm('Delete this milestone?')) {
      mutate(milestoneId);
    }
  };

  return (
    <button onClick={handleDelete} disabled={isLoading}>
      {isLoading ? 'Deleting...' : 'Delete'}
    </button>
  );
}

useMutation

React hook for framework-agnostic MutationOperator

Subscribes to a MutationOperator's state and provides mutation functions. Handles null operators gracefully and cleans up subscriptions on unmount.

Signature:

useMutation(mutationOperator: MutationOperator<TData, TVariables> | null): UseMutationResult<TData, TVariables>

Parameters:

ParameterTypeRequiredDescription
mutationOperatorMutationOperator<TData, TVariables> | nullYes- MutationOperator instance or null

Returns:

UseMutationResult<TData, TVariables> - UseMutationResult with mutate functions and state

Examples:

function CreateTaskForm() {
  const db = useDatabase();
  const mutationOperator = useMemo(() => {
    if (!db) return null;
    const taskOps = new TaskOperator(db);
    return taskOps.createMutation();
  }, [db]);

  const { mutate, isLoading, error, data } = useMutation(mutationOperator);

  const handleSubmit = (e) => {
    e.preventDefault();
    mutate({
      title: 'New Task',
      description: 'Task description',
      orgId: 'org_123',
      userId: 'user_456',
      projectId: 'proj_789',
      milestoneId: 'mile_101'
    });
  };

  if (isLoading) return <div>Creating task...</div>;
  if (error) return <div>Error: {error.message}</div>;
  if (data) return <div>Task created: {data.id}</div>;

  return <form onSubmit={handleSubmit}>...</form>;
}

useOpportunity

Hook to fetch a single opportunity by ID Returns the opportunity object, loading state, and error

Signature:

useOpportunity(db: any, opportunityId?: string | undefined): UseOpportunityResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
opportunityIdstring | undefinedNo

Returns:

UseOpportunityResult -

useOpportunities

Signature:

useOpportunities(db: any, filters: OpportunityFilters, options?: UseOpportunitiesOptions | undefined): UseOpportunitiesResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersOpportunityFiltersYes
optionsUseOpportunitiesOptions | undefinedNo

Returns:

UseOpportunitiesResult -

useCreateOpportunity

Signature:

useCreateOpportunity(db: any): UseMutationResult<OpportunityModel, CreateOpportunityInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<OpportunityModel, CreateOpportunityInput> -

useUpdateOpportunity

Signature:

useUpdateOpportunity(db: any): UseMutationResult<OpportunityModel, UpdateOpportunityInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<OpportunityModel, UpdateOpportunityInput> -

useDeleteOpportunity

Signature:

useDeleteOpportunity(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useOrg

Hook to fetch a single org by ID Returns the org object, loading state, and error

Signature:

useOrg(db: any, orgId?: string | undefined): UseOrgResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
orgIdstring | undefinedNo

Returns:

UseOrgResult -

useOrgs

React hook for querying orgs

Creates an OrgOperator query and subscribes to results. Automatically updates when orgs change in the database.

Signature:

useOrgs(db: any, filters: OrgFilters, options?: UseOrgsOptions | undefined): UseOrgsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()
filtersOrgFiltersYes- Org filters to apply
optionsUseOrgsOptions | undefinedNo- Optional query options

Returns:

UseOrgsResult - UseOrgsResult with orgs, isLoading, and error

Examples:

function OrgList() {
  const { db } = useDatabase();
  const { orgs, isLoading, error } = useOrgs(db, {
    orgId: 'org_123',
    userId: 'user_456'
  }, {
    sort: 'createdAt',
    limit: 50
  });

  if (isLoading) return <div>Loading orgs...</div>;
  if (error) return <div>Error: {error.message}</div>;

  return (
    <ul>
      {orgs.map(org => (
        <li key={org.id}>
          {org.name} - {org.description}
        </li>
      ))}
    </ul>
  );
}

useCreateOrg

React hook for creating organizations

Signature:

useCreateOrg(db: any): UseMutationResult<OrgModel, CreateOrgInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<OrgModel, CreateOrgInput> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function CreateOrgForm() {
  const { db } = useDatabase();
  const { mutate, isLoading, error, data } = useCreateOrg(db);

  const handleSubmit = (e) => {
    e.preventDefault();
    mutate({
      name: 'My Organization',
      description: 'Organization description',
      userId: 'user_123'
    });
  };

  if (isLoading) return <div>Creating...</div>;
  if (error) return <div>Error: {error.message}</div>;
  if (data) return <div>Created: {data.name}</div>;

  return <form onSubmit={handleSubmit}>...</form>;
}

useUpdateOrg

React hook for updating organizations

Signature:

useUpdateOrg(db: any): UseMutationResult<OrgModel, UpdateOrgInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<OrgModel, UpdateOrgInput> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function EditOrgForm({ orgId }: { orgId: string }) {
  const { db } = useDatabase();
  const { mutate, isLoading, error } = useUpdateOrg(db);

  const handleSubmit = (e) => {
    e.preventDefault();
    mutate({
      id: orgId,
      updates: {
        name: 'Updated Name',
        description: 'Updated description'
      }
    });
  };

  return <form onSubmit={handleSubmit}>...</form>;
}

useDeleteOrg

React hook for deleting organizations (soft delete)

Signature:

useDeleteOrg(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<void, string> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function DeleteOrgButton({ orgId }: { orgId: string }) {
  const { db } = useDatabase();
  const { mutate, isLoading } = useDeleteOrg(db);

  const handleDelete = () => {
    if (confirm('Delete this org?')) {
      mutate(orgId);
    }
  };

  return (
    <button onClick={handleDelete} disabled={isLoading}>
      {isLoading ? 'Deleting...' : 'Delete'}
    </button>
  );
}

useProducts

Signature:

useProducts(db: any, filters: ProductFilters, options?: UseProductsOptions | undefined): UseProductsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersProductFiltersYes
optionsUseProductsOptions | undefinedNo

Returns:

UseProductsResult -

useCreateProduct

Signature:

useCreateProduct(db: any): UseMutationResult<ProductModel, CreateProductInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<ProductModel, CreateProductInput> -

useUpdateProduct

Signature:

useUpdateProduct(db: any): UseMutationResult<ProductModel, UpdateProductInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<ProductModel, UpdateProductInput> -

useDeleteProduct

Signature:

useDeleteProduct(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useProject

Hook to fetch a single project by ID Returns the project object, loading state, and error

Signature:

useProject(db: any, projectId?: string | undefined): UseProjectResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
projectIdstring | undefinedNo

Returns:

UseProjectResult -

useProjects

React hook for querying projects

Creates a ProjectOperator query and subscribes to results. Automatically updates when projects change in the database.

Signature:

useProjects(db: any, filters: ProjectFilters, options?: UseProjectsOptions | undefined): UseProjectsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()
filtersProjectFiltersYes- Project filters to apply
optionsUseProjectsOptions | undefinedNo- Optional query options

Returns:

UseProjectsResult - UseProjectsResult with projects, isLoading, and error

Examples:

function ProjectList() {
  const { db } = useDatabase();
  const { projects, isLoading, error } = useProjects(db, {
    orgId: 'org_123',
    goalId: 'goal_456',
  }, {
    sort: 'createdAt',
    limit: 50
  });

  if (isLoading) return <div>Loading projects...</div>;
  if (error) return <div>Error: {error.message}</div>;

  return (
    <ul>
      {projects.map(project => (
        <li key={project.id}>
          {project.title}
        </li>
      ))}
    </ul>
  );
}

useCreateProject

React hook for creating projects

Signature:

useCreateProject(db: any): UseMutationResult<ProjectModel, CreateProjectInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<ProjectModel, CreateProjectInput> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function CreateProjectForm({ orgId, goalId }: { orgId: string; goalId: string }) {
  const { db } = useDatabase();
  const userId = 'user_123';
  const { mutate, isLoading, error, data } = useCreateProject(db);

  const handleSubmit = (e) => {
    e.preventDefault();
    mutate({
      name: 'my-project',
      title: 'My Project',
      description: 'Project description',
      orgId,
      userId,
      goalId
    });
  };

  if (isLoading) return <div>Creating...</div>;
  if (error) return <div>Error: {error.message}</div>;
  if (data) return <div>Created: {data.title}</div>;

  return <form onSubmit={handleSubmit}>...</form>;
}

useUpdateProject

React hook for updating projects

Signature:

useUpdateProject(db: any): UseMutationResult<ProjectModel, UpdateProjectInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<ProjectModel, UpdateProjectInput> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function EditProjectForm({ projectId }: { projectId: string }) {
  const { db } = useDatabase();
  const { mutate, isLoading, error } = useUpdateProject(db);

  const handleSubmit = (e) => {
    e.preventDefault();
    mutate({
      id: projectId,
      updates: {
        title: 'Updated Title',
        description: 'Updated description'
      }
    });
  };

  return <form onSubmit={handleSubmit}>...</form>;
}

useDeleteProject

React hook for deleting projects (soft delete)

Signature:

useDeleteProject(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<void, string> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function DeleteProjectButton({ projectId }: { projectId: string }) {
  const { db } = useDatabase();
  const { mutate, isLoading } = useDeleteProject(db);

  const handleDelete = () => {
    if (confirm('Delete this project?')) {
      mutate(projectId);
    }
  };

  return (
    <button onClick={handleDelete} disabled={isLoading}>
      {isLoading ? 'Deleting...' : 'Delete'}
    </button>
  );
}

useQuery

React hook for framework-agnostic QueryOperator

Subscribes to a QueryOperator's observable and manages state with React hooks. Handles null operators gracefully and cleans up subscriptions on unmount.

Signature:

useQuery(queryOperator: QueryOperator<T> | null): QueryResult<T>

Parameters:

ParameterTypeRequiredDescription
queryOperatorQueryOperator<T> | nullYes- QueryOperator instance or null

Returns:

QueryResult<T> - QueryResult with data, isLoading, and error

Examples:

function TaskList() {
  const db = useDatabase();
  const queryOperator = useMemo(() => {
    if (!db) return null;
    const taskOps = new TaskOperator(db);
    return taskOps.query({ orgId: 'org_123', status: 'In Progress' });
  }, [db]);

  const result = useQuery(queryOperator);

  if (result.isLoading) return <div>Loading...</div>;
  if (result.error) return <div>Error: {result.error.message}</div>;

  return (
    <ul>
      {result.data.map(task => (
        <li key={task.id}>{task.title}</li>
      ))}
    </ul>
  );
}

useRoadmap

Signature:

useRoadmap(db: any, roadmapId?: string | undefined): UseRoadmapResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
roadmapIdstring | undefinedNo

Returns:

UseRoadmapResult -

useRoadmaps

Signature:

useRoadmaps(db: any, filters: RoadmapFilters, options?: UseRoadmapsOptions | undefined): UseRoadmapsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersRoadmapFiltersYes
optionsUseRoadmapsOptions | undefinedNo

Returns:

UseRoadmapsResult -

useCreateRoadmap

Signature:

useCreateRoadmap(db: any): UseMutationResult<RoadmapModel, CreateRoadmapInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<RoadmapModel, CreateRoadmapInput> -

useUpdateRoadmap

Signature:

useUpdateRoadmap(db: any): UseMutationResult<RoadmapModel, UpdateRoadmapInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<RoadmapModel, UpdateRoadmapInput> -

useDeleteRoadmap

Signature:

useDeleteRoadmap(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useSession

Hook to fetch a single session by ID Returns the session object, loading state, and error

Signature:

useSession(db: any, sessionId?: string | undefined): UseSessionResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
sessionIdstring | undefinedNo

Returns:

UseSessionResult -

useSessions

Signature:

useSessions(db: any, filters: SessionFilters, options?: UseSessionsOptions | undefined): UseSessionsResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersSessionFiltersYes
optionsUseSessionsOptions | undefinedNo

Returns:

UseSessionsResult -

useCreateSession

Signature:

useCreateSession(db: any): UseMutationResult<SessionModel, CreateSessionInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<SessionModel, CreateSessionInput> -

useUpdateSession

Signature:

useUpdateSession(db: any): UseMutationResult<SessionModel, UpdateSessionInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<SessionModel, UpdateSessionInput> -

useDeleteSession

Signature:

useDeleteSession(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useTask

Hook to fetch a single task by ID Returns the task object, loading state, and error

Signature:

useTask(db: any, taskId?: string | undefined): UseTaskResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
taskIdstring | undefinedNo

Returns:

UseTaskResult -

useTasks

React hook for querying tasks

Creates a TaskOperator query and subscribes to results. Automatically updates when tasks change in the database.

Signature:

useTasks(db: any, filters: TaskFilters, options?: UseTasksOptions | undefined): UseTasksResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()
filtersTaskFiltersYes- Task filters to apply
optionsUseTasksOptions | undefinedNo- Optional query options

Returns:

UseTasksResult - UseTasksResult with tasks, isLoading, and error

Examples:

function TaskList() {
  const { db } = useDatabase();
  const { tasks, isLoading, error } = useTasks(db, {
    orgId: 'org_123',
    projectId: 'project_456',
    status: 'In Progress'
  }, {
    sort: 'dueAt',
    limit: 50
  });

  if (isLoading) return <div>Loading tasks...</div>;
  if (error) return <div>Error: {error.message}</div>;

  return (
    <ul>
      {tasks.map(task => (
        <li key={task.id}>
          {task.title} - {task.status}
        </li>
      ))}
    </ul>
  );
}

useCreateTask

React hook for creating tasks

Provides a mutation function for creating new tasks.

Signature:

useCreateTask(db: any): UseMutationResult<TaskModel, CreateTaskInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<TaskModel, CreateTaskInput> - UseMutationResult for task creation

Examples:

function CreateTaskForm() {
  const { db } = useDatabase();
  const { mutate, mutateAsync, isLoading, error, data } = useCreateTask(db);

  const handleSubmit = async (e) => {
    e.preventDefault();
    try {
      const task = await mutateAsync({
        title: 'New Task',
        description: 'Task description',
        orgId: 'org_123',
        userId: 'user_456',
        projectId: 'proj_789',
        milestoneId: 'mile_101'
      });
      console.log('Created task:', task.id);
    } catch (err) {
      console.error('Failed to create task:', err);
    }
  };

  return (
    <form onSubmit={handleSubmit}>
      {isLoading && <div>Creating...</div>}
      {error && <div>Error: {error.message}</div>}
      {data && <div>Created task: {data.id}</div>}
      <button type="submit" disabled={isLoading}>
        Create Task
      </button>
    </form>
  );
}

useUpdateTask

React hook for updating tasks

Provides a mutation function for updating existing tasks.

Signature:

useUpdateTask(db: any): UseMutationResult<TaskModel, UpdateTaskInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<TaskModel, UpdateTaskInput> - UseMutationResult for task updates

Examples:

function TaskItem({ task }) {
  const { db } = useDatabase();
  const { mutate, isLoading } = useUpdateTask(db);

  const handleStatusChange = (status) => {
    mutate({
      id: task.id,
      updates: { status }
    });
  };

  return (
    <div>
      <h3>{task.title}</h3>
      <select
        value={task.status}
        onChange={(e) => handleStatusChange(e.target.value)}
        disabled={isLoading}
      >
        <option value="To Do">To Do</option>
        <option value="In Progress">In Progress</option>
        <option value="Complete">Complete</option>
      </select>
    </div>
  );
}

useDeleteTask

React hook for deleting tasks (soft delete)

Provides a mutation function for archiving tasks.

Signature:

useDeleteTask(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<void, string> - UseMutationResult for task deletion

Examples:

function TaskItem({ task }) {
  const { db } = useDatabase();
  const { mutate, isLoading } = useDeleteTask(db);

  const handleDelete = () => {
    if (confirm('Delete this task?')) {
      mutate(task.id);
    }
  };

  return (
    <div>
      <h3>{task.title}</h3>
      <button onClick={handleDelete} disabled={isLoading}>
        {isLoading ? 'Deleting...' : 'Delete'}
      </button>
    </div>
  );
}

useCompleteTask

React hook for completing tasks

Provides a mutation function for marking tasks as complete.

Signature:

useCompleteTask(db: any): UseMutationResult<TaskModel, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<TaskModel, string> - UseMutationResult for task completion

Examples:

function TaskItem({ task }) {
  const { db } = useDatabase();
  const { mutate, isLoading } = useCompleteTask(db);

  const handleComplete = () => {
    mutate(task.id);
  };

  return (
    <div>
      <h3>{task.title}</h3>
      <input
        type="checkbox"
        checked={task.completed}
        onChange={handleComplete}
        disabled={isLoading}
      />
      <label>Complete</label>
    </div>
  );
}

useTemplate

Hook to fetch a single template by ID Returns the template object, loading state, and error

Signature:

useTemplate(db: any, templateId?: string | undefined): UseTemplateResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
templateIdstring | undefinedNo

Returns:

UseTemplateResult -

useTemplates

Signature:

useTemplates(db: any, filters: TemplateFilters, options?: UseTemplatesOptions | undefined): UseTemplatesResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersTemplateFiltersYes
optionsUseTemplatesOptions | undefinedNo

Returns:

UseTemplatesResult -

useCreateTemplate

Signature:

useCreateTemplate(db: any): UseMutationResult<TemplateModel, CreateTemplateInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<TemplateModel, CreateTemplateInput> -

useUpdateTemplate

Signature:

useUpdateTemplate(db: any): UseMutationResult<TemplateModel, UpdateTemplateInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<TemplateModel, UpdateTemplateInput> -

useDeleteTemplate

Signature:

useDeleteTemplate(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useTimeEntry

Hook to fetch a single time entry by ID Returns the entry object, loading state, and error

Signature:

useTimeEntry(db: any, entryId?: string | undefined): UseTimeEntryResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
entryIdstring | undefinedNo

Returns:

UseTimeEntryResult -

useTimeEntries

React hook for querying time entries

Creates a TimeEntryOperator query and subscribes to results. Automatically updates when time entries change in the database.

Signature:

useTimeEntries(db: any, filters: TimeEntryFilters, options?: UseTimeEntriesOptions | undefined): UseTimeEntriesResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()
filtersTimeEntryFiltersYes- Time entry filters to apply
optionsUseTimeEntriesOptions | undefinedNo- Optional query options

Returns:

UseTimeEntriesResult - UseTimeEntriesResult with timeEntries, isLoading, and error

Examples:

function TimeEntryList() {
  const { db } = useDatabase();
  const { timeEntries, isLoading, error } = useTimeEntries(db, {
    orgId: 'org_123',
    taskId: 'task_456',
    userId: 'user_789'
  }, {
    sort: 'start',
    limit: 50
  });

  if (isLoading) return <div>Loading time entries...</div>;
  if (error) return <div>Error: {error.message}</div>;

  return (
    <ul>
      {timeEntries.map(entry => (
        <li key={entry.id}>
          {entry.name} - {entry.duration}s
        </li>
      ))}
    </ul>
  );
}

useCreateTimeEntry

React hook for creating time entries

Signature:

useCreateTimeEntry(db: any): UseMutationResult<TimeEntryModel, CreateTimeEntryInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<TimeEntryModel, CreateTimeEntryInput> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function CreateTimeEntryForm({ orgId, taskId }: { orgId: string; taskId: string }) {
  const { db } = useDatabase();
  const userId = 'user_123';
  const { mutate, isLoading, error, data } = useCreateTimeEntry(db);

  const handleSubmit = (e) => {
    e.preventDefault();
    const now = new Date().toISOString();
    mutate({
      name: 'Work Session',
      start: now,
      end: new Date(Date.now() + 3600000).toISOString(),
      orgId,
      userId,
      taskId
    });
  };

  return <form onSubmit={handleSubmit}>...</form>;
}

useUpdateTimeEntry

React hook for updating time entries

Signature:

useUpdateTimeEntry(db: any): UseMutationResult<TimeEntryModel, UpdateTimeEntryInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<TimeEntryModel, UpdateTimeEntryInput> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function EditTimeEntryForm({ timeEntryId }: { timeEntryId: string }) {
  const { db } = useDatabase();
  const { mutate, isLoading, error } = useUpdateTimeEntry(db);

  const handleSubmit = (e) => {
    e.preventDefault();
    mutate({
      id: timeEntryId,
      updates: {
        name: 'Updated Work Session',
        end: new Date().toISOString()
      }
    });
  };

  return <form onSubmit={handleSubmit}>...</form>;
}

useDeleteTimeEntry

React hook for deleting time entries (soft delete)

Signature:

useDeleteTimeEntry(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<void, string> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function DeleteTimeEntryButton({ timeEntryId }: { timeEntryId: string }) {
  const { db } = useDatabase();
  const { mutate, isLoading } = useDeleteTimeEntry(db);

  const handleDelete = () => {
    if (confirm('Delete this time entry?')) {
      mutate(timeEntryId);
    }
  };

  return (
    <button onClick={handleDelete} disabled={isLoading}>
      {isLoading ? 'Deleting...' : 'Delete'}
    </button>
  );
}

useUser

Hook to fetch a single user by ID Returns the user object, loading state, and error

Signature:

useUser(db: any, userId?: string | undefined): UseUserResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
userIdstring | undefinedNo

Returns:

UseUserResult -

useUsers

Signature:

useUsers(db: any, filters: UserFilters, options?: UseUsersOptions | undefined): UseUsersResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersUserFiltersYes
optionsUseUsersOptions | undefinedNo

Returns:

UseUsersResult -

useCreateUser

Signature:

useCreateUser(db: any): UseMutationResult<UserModel, CreateUserInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<UserModel, CreateUserInput> -

useUpdateUser

Signature:

useUpdateUser(db: any): UseMutationResult<UserModel, UpdateUserInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<UserModel, UpdateUserInput> -

useDeleteUser

Signature:

useDeleteUser(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useVariable

Hook to fetch a single variable by ID Returns the variable object, loading state, and error

Signature:

useVariable(db: any, variableId?: string | undefined): UseVariableResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
variableIdstring | undefinedNo

Returns:

UseVariableResult -

useVariables

Signature:

useVariables(db: any, filters: VariablesFilters, options?: UseVariablesOptions | undefined): UseVariablesResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
filtersVariablesFiltersYes
optionsUseVariablesOptions | undefinedNo

Returns:

UseVariablesResult -

useCreateVariables

Signature:

useCreateVariables(db: any): UseMutationResult<VariablesModel, CreateVariablesInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<VariablesModel, CreateVariablesInput> -

useUpdateVariables

Signature:

useUpdateVariables(db: any): UseMutationResult<VariablesModel, UpdateVariablesInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<VariablesModel, UpdateVariablesInput> -

useDeleteVariables

Signature:

useDeleteVariables(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes

Returns:

UseMutationResult<void, string> -

useWorkspace

Hook to fetch a single workspace by ID Returns the workspace object, loading state, and error

Signature:

useWorkspace(db: any, workspaceId?: string | undefined): UseWorkspaceResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes
workspaceIdstring | undefinedNo

Returns:

UseWorkspaceResult -

useWorkspaces

React hook for querying workspaces

Creates a WorkspaceOperator query and subscribes to results. Automatically updates when workspaces change in the database.

Signature:

useWorkspaces(db: any, filters: WorkspaceFilters, options?: UseWorkspacesOptions | undefined): UseWorkspacesResult

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()
filtersWorkspaceFiltersYes- Workspace filters to apply
optionsUseWorkspacesOptions | undefinedNo- Optional query options

Returns:

UseWorkspacesResult - UseWorkspacesResult with workspaces, isLoading, and error

Examples:

function WorkspaceList() {
  const { db } = useDatabase();
  const { workspaces, isLoading, error } = useWorkspaces(db, {
    orgId: 'org_123',
    status: 'active'
  }, {
    sort: 'createdAt',
    limit: 50
  });

  if (isLoading) return <div>Loading workspaces...</div>;
  if (error) return <div>Error: {error.message}</div>;

  return (
    <ul>
      {workspaces.map(workspace => (
        <li key={workspace.id}>
          {workspace.title} - {workspace.status}
        </li>
      ))}
    </ul>
  );
}

useCreateWorkspace

React hook for creating workspaces

Signature:

useCreateWorkspace(db: any): UseMutationResult<WorkspaceModel, CreateWorkspaceInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<WorkspaceModel, CreateWorkspaceInput> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function CreateWorkspaceForm({ orgId }: { orgId: string }) {
  const { db } = useDatabase();
  const userId = 'user_123';
  const { mutate, isLoading, error, data } = useCreateWorkspace(db);

  const handleSubmit = (e) => {
    e.preventDefault();
    mutate({
      name: 'my-workspace',
      title: 'My Workspace',
      description: 'Workspace description',
      orgId,
      userId
    });
  };

  if (isLoading) return <div>Creating...</div>;
  if (error) return <div>Error: {error.message}</div>;
  if (data) return <div>Created: {data.title}</div>;

  return <form onSubmit={handleSubmit}>...</form>;
}

useUpdateWorkspace

React hook for updating workspaces

Signature:

useUpdateWorkspace(db: any): UseMutationResult<WorkspaceModel, UpdateWorkspaceInput>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<WorkspaceModel, UpdateWorkspaceInput> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function EditWorkspaceForm({ workspaceId }: { workspaceId: string }) {
  const { db } = useDatabase();
  const { mutate, isLoading, error } = useUpdateWorkspace(db);

  const handleSubmit = (e) => {
    e.preventDefault();
    mutate({
      id: workspaceId,
      updates: {
        title: 'Updated Title',
        description: 'Updated description'
      }
    });
  };

  return <form onSubmit={handleSubmit}>...</form>;
}

useDeleteWorkspace

React hook for deleting workspaces (soft delete)

Signature:

useDeleteWorkspace(db: any): UseMutationResult<void, string>

Parameters:

ParameterTypeRequiredDescription
dbanyYes- RxDatabase instance from useDatabase()

Returns:

UseMutationResult<void, string> - UseMutationResult with mutate, mutateAsync, and state

Examples:

function DeleteWorkspaceButton({ workspaceId }: { workspaceId: string }) {
  const { db } = useDatabase();
  const { mutate, isLoading } = useDeleteWorkspace(db);

  const handleDelete = () => {
    if (confirm('Delete this workspace?')) {
      mutate(workspaceId);
    }
  };

  return (
    <button onClick={handleDelete} disabled={isLoading}>
      {isLoading ? 'Deleting...' : 'Delete'}
    </button>
  );
}
Previous
Classes