diff --git a/__tests__/hooks/useApprovals.test.tsx b/__tests__/hooks/useApprovals.test.tsx index 8d592fc..d71ef54 100644 --- a/__tests__/hooks/useApprovals.test.tsx +++ b/__tests__/hooks/useApprovals.test.tsx @@ -6,11 +6,21 @@ import React from "react"; import { renderHook, waitFor, act } from "@testing-library/react-native"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; -const mockFind = jest.fn(); -const mockUpdate = jest.fn(); +const mockListRequests = jest.fn(); +const mockGetRequest = jest.fn(); +const mockApprove = jest.fn(); +const mockReject = jest.fn(); const mockGet = jest.fn(); jest.mock("@objectstack/client-react", () => ({ - useClient: () => ({ data: { find: mockFind, update: mockUpdate, get: mockGet } }), + useClient: () => ({ + approvals: { + listRequests: mockListRequests, + getRequest: mockGetRequest, + approve: mockApprove, + reject: mockReject, + }, + data: { get: mockGet }, + }), })); import { @@ -36,26 +46,24 @@ const REQ: ApprovalRequest = { }; beforeEach(() => { - mockFind.mockReset(); - mockUpdate.mockReset().mockResolvedValue({}); + mockListRequests.mockReset(); + mockGetRequest.mockReset(); + mockApprove.mockReset().mockResolvedValue({ finalized: true, decision: "approve", resumed: true }); + mockReject.mockReset().mockResolvedValue({ finalized: true, decision: "reject", resumed: true }); mockGet.mockReset(); }); describe("useApprovals", () => { - it("queries pending requests and returns the rows", async () => { - mockFind.mockResolvedValue({ records: [REQ] }); + it("lists pending requests via the approvals service", async () => { + mockListRequests.mockResolvedValue([REQ]); const { result } = renderHook(() => useApprovals(), { wrapper }); await waitFor(() => expect(result.current.isSuccess).toBe(true)); - expect(mockFind).toHaveBeenCalledWith("sys_approval_request", { - filter: ["status", "=", "pending"], - sort: "created_at desc", - top: 50, - }); + expect(mockListRequests).toHaveBeenCalledWith({ status: "pending" }); expect(result.current.data).toEqual([REQ]); }); - it("returns an empty list when there are no records", async () => { - mockFind.mockResolvedValue({}); + it("returns an empty list when the service returns none", async () => { + mockListRequests.mockResolvedValue([]); const { result } = renderHook(() => useApprovals(), { wrapper }); await waitFor(() => expect(result.current.isSuccess).toBe(true)); expect(result.current.data).toEqual([]); @@ -64,10 +72,10 @@ describe("useApprovals", () => { describe("useApproval", () => { it("fetches a single request by id", async () => { - mockGet.mockResolvedValue({ record: REQ }); + mockGetRequest.mockResolvedValue(REQ); const { result } = renderHook(() => useApproval("ar1"), { wrapper }); await waitFor(() => expect(result.current.isSuccess).toBe(true)); - expect(mockGet).toHaveBeenCalledWith("sys_approval_request", "ar1"); + expect(mockGetRequest).toHaveBeenCalledWith("ar1"); expect(result.current.data).toEqual(REQ); }); }); @@ -92,29 +100,26 @@ describe("useApprovalTarget", () => { }); describe("useDecideApproval", () => { - it("approve sets status=approved on the request row", async () => { + it("approve calls approvals.approve (which resumes the flow)", async () => { const { result } = renderHook(() => useDecideApproval(), { wrapper }); let res: { ok: boolean } = { ok: false }; await act(async () => { res = await result.current.approve(REQ); }); expect(res.ok).toBe(true); - expect(mockUpdate).toHaveBeenCalledWith("sys_approval_request", "ar1", { status: "approved" }); + expect(mockApprove).toHaveBeenCalledWith("ar1", undefined); }); - it("reject sets status=rejected and appends the reason to the comment", async () => { + it("reject calls approvals.reject with the reason as comment", async () => { const { result } = renderHook(() => useDecideApproval(), { wrapper }); await act(async () => { await result.current.reject(REQ, "Over budget"); }); - expect(mockUpdate).toHaveBeenCalledWith("sys_approval_request", "ar1", { - status: "rejected", - submitter_comment: "Please approve.\n— Over budget", - }); + expect(mockReject).toHaveBeenCalledWith("ar1", { comment: "Over budget" }); }); - it("reports an error when the update fails", async () => { - mockUpdate.mockRejectedValue(new Error("nope")); + it("reports an error when the decision fails", async () => { + mockApprove.mockRejectedValue(new Error("nope")); const { result } = renderHook(() => useDecideApproval(), { wrapper }); let res: { ok: boolean; error?: string } = { ok: true }; await act(async () => { diff --git a/__tests__/hooks/useAutomation.test.ts b/__tests__/hooks/useAutomation.test.ts deleted file mode 100644 index 4ded14f..0000000 --- a/__tests__/hooks/useAutomation.test.ts +++ /dev/null @@ -1,147 +0,0 @@ -/** - * Tests for useAutomation – validates automation trigger - * and approval/rejection operations. - */ -import { renderHook, act } from "@testing-library/react-native"; - -/* ---- Mock useClient from SDK ---- */ -const mockTrigger = jest.fn(); -const mockApprove = jest.fn(); -const mockReject = jest.fn(); - -const mockClient = { - automation: { trigger: mockTrigger }, - workflow: { approve: mockApprove, reject: mockReject }, -}; - -jest.mock("@objectstack/client-react", () => ({ - useClient: () => mockClient, -})); - -import { useAutomation } from "~/hooks/useAutomation"; - -beforeEach(() => { - mockTrigger.mockReset(); - mockApprove.mockReset(); - mockReject.mockReset(); -}); - -describe("useAutomation", () => { - it("triggers an automation flow with payload", async () => { - mockTrigger.mockResolvedValue({ - executionId: "exec-1", - message: "Started", - data: { status: "ok" }, - }); - - const { result } = renderHook(() => useAutomation()); - - let triggerResult: unknown; - await act(async () => { - triggerResult = await result.current.trigger("onboard-user", { - userId: "123", - }); - }); - - expect(mockTrigger).toHaveBeenCalledWith("onboard-user", { - userId: "123", - }); - expect(triggerResult).toEqual({ - success: true, - executionId: "exec-1", - message: "Started", - data: { status: "ok" }, - }); - expect(result.current.isLoading).toBe(false); - expect(result.current.error).toBeNull(); - }); - - it("triggers without payload", async () => { - mockTrigger.mockResolvedValue({}); - - const { result } = renderHook(() => useAutomation()); - - await act(async () => { - await result.current.trigger("daily-report"); - }); - - expect(mockTrigger).toHaveBeenCalledWith("daily-report", {}); - }); - - it("handles trigger error", async () => { - mockTrigger.mockRejectedValue(new Error("Flow not found")); - - const { result } = renderHook(() => useAutomation()); - - await act(async () => { - await expect( - result.current.trigger("nonexistent"), - ).rejects.toThrow("Flow not found"); - }); - - expect(result.current.error?.message).toBe("Flow not found"); - }); - - it("approves a workflow step", async () => { - mockApprove.mockResolvedValue({ success: true }); - - const { result } = renderHook(() => useAutomation()); - - await act(async () => { - await result.current.approve("tasks", "rec-1", "LGTM"); - }); - - expect(mockApprove).toHaveBeenCalledWith({ - object: "tasks", - recordId: "rec-1", - comment: "LGTM", - }); - expect(result.current.error).toBeNull(); - }); - - it("handles approval error", async () => { - mockApprove.mockRejectedValue(new Error("Not authorized")); - - const { result } = renderHook(() => useAutomation()); - - await act(async () => { - await expect( - result.current.approve("tasks", "rec-1"), - ).rejects.toThrow("Not authorized"); - }); - - expect(result.current.error?.message).toBe("Not authorized"); - }); - - it("rejects a workflow step with reason", async () => { - mockReject.mockResolvedValue({ success: true }); - - const { result } = renderHook(() => useAutomation()); - - await act(async () => { - await result.current.reject("tasks", "rec-1", "Needs changes", "See comments"); - }); - - expect(mockReject).toHaveBeenCalledWith({ - object: "tasks", - recordId: "rec-1", - reason: "Needs changes", - comment: "See comments", - }); - expect(result.current.error).toBeNull(); - }); - - it("handles rejection error", async () => { - mockReject.mockRejectedValue(new Error("Rejection failed")); - - const { result } = renderHook(() => useAutomation()); - - await act(async () => { - await expect( - result.current.reject("tasks", "rec-1", "Bad"), - ).rejects.toThrow("Rejection failed"); - }); - - expect(result.current.error?.message).toBe("Rejection failed"); - }); -}); diff --git a/__tests__/hooks/useWorkflowState.test.ts b/__tests__/hooks/useWorkflowState.test.ts deleted file mode 100644 index 33dbbe1..0000000 --- a/__tests__/hooks/useWorkflowState.test.ts +++ /dev/null @@ -1,178 +0,0 @@ -/** - * Tests for useWorkflowState – validates workflow state - * fetching and transition/approve/reject operations. - */ -import { renderHook, act, waitFor } from "@testing-library/react-native"; - -/* ---- Mock useClient from SDK ---- */ -const mockGetState = jest.fn(); -const mockTransition = jest.fn(); -const mockApprove = jest.fn(); -const mockReject = jest.fn(); - -const mockClient = { - workflow: { - getState: mockGetState, - transition: mockTransition, - approve: mockApprove, - reject: mockReject, - }, -}; - -jest.mock("@objectstack/client-react", () => ({ - useClient: () => mockClient, -})); - -import { useWorkflowState } from "~/hooks/useWorkflowState"; - -beforeEach(() => { - mockGetState.mockReset(); - mockTransition.mockReset(); - mockApprove.mockReset(); - mockReject.mockReset(); -}); - -const mockState = { - object: "tasks", - recordId: "rec-1", - state: { - currentState: "draft", - availableTransitions: [ - { - name: "submit", - targetState: "pending_review", - label: "Submit for Review", - requiresApproval: true, - }, - ], - history: [ - { - fromState: "new", - toState: "draft", - action: "create", - userId: "user-1", - timestamp: "2026-01-01T00:00:00Z", - }, - ], - }, -}; - -describe("useWorkflowState", () => { - it("fetches workflow state on mount", async () => { - mockGetState.mockResolvedValue(mockState); - - const { result } = renderHook(() => - useWorkflowState("tasks", "rec-1"), - ); - - await waitFor(() => { - expect(result.current.isLoading).toBe(false); - }); - - expect(result.current.state).toEqual(mockState.state); - expect(result.current.state?.currentState).toBe("draft"); - expect(result.current.state?.availableTransitions).toHaveLength(1); - expect(result.current.state?.history).toHaveLength(1); - expect(result.current.error).toBeNull(); - }); - - it("handles error when fetching workflow state", async () => { - mockGetState.mockRejectedValue(new Error("Not found")); - - const { result } = renderHook(() => - useWorkflowState("tasks", "rec-1"), - ); - - await waitFor(() => { - expect(result.current.isLoading).toBe(false); - }); - - expect(result.current.state).toBeNull(); - expect(result.current.error?.message).toBe("Not found"); - }); - - it("performs transition and refetches state", async () => { - mockGetState.mockResolvedValue(mockState); - mockTransition.mockResolvedValue({ - object: "tasks", - recordId: "rec-1", - success: true, - state: { currentState: "pending_review", availableTransitions: [] }, - }); - - const { result } = renderHook(() => - useWorkflowState("tasks", "rec-1"), - ); - - await waitFor(() => { - expect(result.current.isLoading).toBe(false); - }); - - await act(async () => { - await result.current.transition("submit", "Ready for review"); - }); - - expect(mockTransition).toHaveBeenCalledWith({ - object: "tasks", - recordId: "rec-1", - transition: "submit", - comment: "Ready for review", - }); - // Should have refetched state (getState called again) - expect(mockGetState).toHaveBeenCalledTimes(2); - }); - - it("performs approve and refetches state", async () => { - mockGetState.mockResolvedValue(mockState); - mockApprove.mockResolvedValue({ - object: "tasks", - recordId: "rec-1", - success: true, - }); - - const { result } = renderHook(() => - useWorkflowState("tasks", "rec-1"), - ); - - await waitFor(() => { - expect(result.current.isLoading).toBe(false); - }); - - await act(async () => { - await result.current.approve("LGTM"); - }); - - expect(mockApprove).toHaveBeenCalledWith({ - object: "tasks", - recordId: "rec-1", - comment: "LGTM", - }); - }); - - it("performs reject and refetches state", async () => { - mockGetState.mockResolvedValue(mockState); - mockReject.mockResolvedValue({ - object: "tasks", - recordId: "rec-1", - success: true, - }); - - const { result } = renderHook(() => - useWorkflowState("tasks", "rec-1"), - ); - - await waitFor(() => { - expect(result.current.isLoading).toBe(false); - }); - - await act(async () => { - await result.current.reject("Needs changes"); - }); - - expect(mockReject).toHaveBeenCalledWith({ - object: "tasks", - recordId: "rec-1", - reason: "Needs changes", - }); - }); -}); diff --git a/apps/server/package.json b/apps/server/package.json index 1baf881..daa0d7d 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -11,17 +11,17 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@objectstack/spec": "^7.5.0", - "@objectstack/runtime": "^7.5.0", - "@objectstack/objectql": "^7.5.0", - "@objectstack/driver-memory": "^7.5.0", - "@objectstack/service-automation": "^7.5.0", - "@objectstack/plugin-trigger-record-change": "^7.5.0", - "@objectstack/plugin-trigger-schedule": "^7.5.0", - "@objectstack/plugin-approvals": "^7.5.0" + "@objectstack/spec": "^7.6.0", + "@objectstack/runtime": "^7.6.0", + "@objectstack/objectql": "^7.6.0", + "@objectstack/driver-memory": "^7.6.0", + "@objectstack/service-automation": "^7.6.0", + "@objectstack/plugin-trigger-record-change": "^7.6.0", + "@objectstack/plugin-trigger-schedule": "^7.6.0", + "@objectstack/plugin-approvals": "^7.6.0" }, "devDependencies": { - "@objectstack/cli": "^7.5.0", + "@objectstack/cli": "^7.6.0", "typescript": "^5.3.0" } } diff --git a/components/workflow/WorkflowStatePanel.tsx b/components/workflow/WorkflowStatePanel.tsx deleted file mode 100644 index 9c51c06..0000000 --- a/components/workflow/WorkflowStatePanel.tsx +++ /dev/null @@ -1,265 +0,0 @@ -import React, { useState } from "react"; -import { View, Text, Pressable, ActivityIndicator, TextInput } from "react-native"; -import { - ArrowRight, - Check, - X, - Clock, - ChevronDown, - ChevronUp, -} from "lucide-react-native"; -import type { - WorkflowState, - WorkflowTransition, - WorkflowHistoryEntry, -} from "~/hooks/useWorkflowState"; - -/* ------------------------------------------------------------------ */ -/* Props */ -/* ------------------------------------------------------------------ */ - -export interface WorkflowStatePanelProps { - /** Current workflow state */ - state: WorkflowState | null; - /** Loading */ - isLoading?: boolean; - /** Transition handler */ - onTransition?: (transitionName: string, comment?: string) => Promise; - /** Approve handler */ - onApprove?: (comment?: string) => Promise; - /** Reject handler */ - onReject?: (comment?: string) => Promise; -} - -/* ------------------------------------------------------------------ */ -/* State Badge */ -/* ------------------------------------------------------------------ */ - -function StateBadge({ state }: { state: string }) { - return ( - - - - {state.replace(/_/g, " ").replace(/\b\w/g, (c) => c.toUpperCase())} - - - ); -} - -/* ------------------------------------------------------------------ */ -/* Transition Button */ -/* ------------------------------------------------------------------ */ - -function TransitionButton({ - transition, - onPress, -}: { - transition: WorkflowTransition; - onPress: (t: WorkflowTransition) => void; -}) { - return ( - onPress(transition)} - > - - - {transition.label ?? transition.name.replace(/_/g, " ")} - - - ); -} - -/* ------------------------------------------------------------------ */ -/* History Entry */ -/* ------------------------------------------------------------------ */ - -function HistoryRow({ entry }: { entry: WorkflowHistoryEntry }) { - return ( - - - - - {entry.fromState} - {" → "} - {entry.toState} - - - {entry.action} by {entry.userId} ·{" "} - {new Date(entry.timestamp).toLocaleDateString()} - - {entry.comment && ( - - “{entry.comment}” - - )} - - - ); -} - -/* ------------------------------------------------------------------ */ -/* Main Component */ -/* ------------------------------------------------------------------ */ - -export function WorkflowStatePanel({ - state, - isLoading = false, - onTransition, - onApprove, - onReject, -}: WorkflowStatePanelProps) { - const [isActing, setIsActing] = useState(false); - const [comment, setComment] = useState(""); - const [showHistory, setShowHistory] = useState(false); - - if (isLoading) { - return ( - - - - ); - } - - if (!state) return null; - - const hasApproval = state.availableTransitions.some( - (t) => t.requiresApproval, - ); - - const handleTransition = async (t: WorkflowTransition) => { - if (!onTransition) return; - setIsActing(true); - try { - await onTransition(t.name, comment || undefined); - setComment(""); - } finally { - setIsActing(false); - } - }; - - const handleApprove = async () => { - if (!onApprove) return; - setIsActing(true); - try { - await onApprove(comment || undefined); - setComment(""); - } finally { - setIsActing(false); - } - }; - - const handleReject = async () => { - if (!onReject) return; - setIsActing(true); - try { - await onReject(comment || undefined); - setComment(""); - } finally { - setIsActing(false); - } - }; - - return ( - - {/* Header: state badge */} - - - Workflow - - - - - {/* Transitions */} - {state.availableTransitions.length > 0 && ( - - {/* Comment input */} - - - {/* Regular transitions */} - - {state.availableTransitions - .filter((t) => !t.requiresApproval) - .map((t) => ( - - ))} - - - {/* Approve / Reject */} - {hasApproval && ( - - {onApprove && ( - - - - Approve - - - )} - {onReject && ( - - - - Reject - - - )} - - )} - - {isActing && ( - - )} - - )} - - {/* History toggle */} - {state.history && state.history.length > 0 && ( - - setShowHistory(!showHistory)} - > - History - {showHistory ? ( - - ) : ( - - )} - - {showHistory && ( - - {state.history.map((entry, idx) => ( - - ))} - - )} - - )} - - {/* Bottom padding when no history */} - {(!state.history || state.history.length === 0) && - state.availableTransitions.length > 0 && ( - - )} - - ); -} diff --git a/hooks/useApprovals.ts b/hooks/useApprovals.ts index 1726031..11990e0 100644 --- a/hooks/useApprovals.ts +++ b/hooks/useApprovals.ts @@ -41,12 +41,9 @@ export function useApprovals(): UseQueryResult { return useQuery({ queryKey: PENDING_KEY, queryFn: async (): Promise => { - const res = await client.data.find("sys_approval_request", { - filter: ["status", "=", "pending"], - sort: "created_at desc", - top: 50, - }); - return res?.records ?? []; + // `approvals` service returns `[]` when no approvals plugin is loaded. + const rows = await client.approvals.listRequests({ status: "pending" }); + return (rows ?? []) as ApprovalRequest[]; }, }); } @@ -60,8 +57,8 @@ export function useApproval( queryKey: ["approval", id], enabled: !!id, queryFn: async () => { - const res = await client.data.get("sys_approval_request", id!); - return (res?.record ?? null) as ApprovalRequest | null; + const row = await client.approvals.getRequest(id!); + return (row ?? null) as ApprovalRequest | null; }, }); } @@ -91,14 +88,11 @@ export function useApprovalTarget(req: ApprovalRequest | null | undefined): { /* ------------------------------------------------------------------ */ /** - * Approve / reject a pending request by recording the decision on the - * `sys_approval_request` row (`status` → `approved` / `rejected`), which drops - * it from the pending inbox. The reject reason is appended to the row's comment - * for an audit trail. The pending list is refreshed afterwards regardless of - * outcome. - * - * Note: this records the decision; resuming a flow that's blocked on the request - * is handled server-side by the approval/workflow service when present. + * Approve / reject a pending request via the approvals service + * (`client.approvals.approve|reject`). The server records the decision AND + * resumes the owning flow run down the matching `approve` / `reject` edge + * (ADR-0019) — unlike a bare `status` write, which would leave the flow blocked. + * The pending list + single-request caches are refreshed afterwards. */ export function useDecideApproval(): { approve: (req: ApprovalRequest, comment?: string) => Promise; @@ -112,18 +106,16 @@ export function useDecideApproval(): { const decide = useCallback( async ( req: ApprovalRequest, - status: "approved" | "rejected", - note?: string, + decision: "approve" | "reject", + comment?: string, ): Promise => { setPendingId(req.id); try { - const patch: Record = { status }; - if (note) { - patch.submitter_comment = req.submitter_comment - ? `${req.submitter_comment}\n— ${note}` - : note; + if (decision === "approve") { + await client.approvals.approve(req.id, comment ? { comment } : undefined); + } else { + await client.approvals.reject(req.id, comment ? { comment } : undefined); } - await client.data.update("sys_approval_request", req.id, patch); return { ok: true }; } catch (err) { return { ok: false, error: err instanceof Error ? err.message : "Decision failed" }; @@ -137,11 +129,11 @@ export function useDecideApproval(): { ); const approve = useCallback( - (req: ApprovalRequest, comment?: string) => decide(req, "approved", comment), + (req: ApprovalRequest, comment?: string) => decide(req, "approve", comment), [decide], ); const reject = useCallback( - (req: ApprovalRequest, reason: string) => decide(req, "rejected", reason), + (req: ApprovalRequest, reason: string) => decide(req, "reject", reason), [decide], ); diff --git a/hooks/useAutomation.ts b/hooks/useAutomation.ts deleted file mode 100644 index ca94d3c..0000000 --- a/hooks/useAutomation.ts +++ /dev/null @@ -1,149 +0,0 @@ -import { useCallback, useState } from "react"; -import { useClient } from "@objectstack/client-react"; - -/* ------------------------------------------------------------------ */ -/* Types */ -/* ------------------------------------------------------------------ */ - -export interface AutomationTriggerResult { - success: boolean; - executionId?: string; - message?: string; - data?: Record; -} - -export interface ApprovalItem { - id: string; - objectName: string; - recordId: string; - stepName: string; - status: "pending" | "approved" | "rejected"; - requestedBy?: string; - requestedAt?: string; - comment?: string; -} - -export interface UseAutomationResult { - /** Trigger an automation flow by name */ - trigger: ( - flowName: string, - payload?: Record, - ) => Promise; - /** Approve a pending workflow step */ - approve: ( - objectName: string, - recordId: string, - comment?: string, - ) => Promise; - /** Reject a pending workflow step */ - reject: ( - objectName: string, - recordId: string, - reason: string, - comment?: string, - ) => Promise; - /** Whether an automation operation is in progress */ - isLoading: boolean; - /** Last error */ - error: Error | null; -} - -/* ------------------------------------------------------------------ */ -/* Hook */ -/* ------------------------------------------------------------------ */ - -/** - * Hook for triggering automation flows and managing approval processes - * via `client.automation.trigger()` and `client.workflow.approve/reject()`. - * - * Satisfies spec/automation: AutomationTrigger + ApprovalProcess protocol. - * - * ```ts - * const { trigger, approve, reject, isLoading } = useAutomation(); - * await trigger("onboard-user", { userId: "123" }); - * ``` - */ -export function useAutomation(): UseAutomationResult { - const client = useClient(); - const [isLoading, setIsLoading] = useState(false); - const [error, setError] = useState(null); - - const trigger = useCallback( - async ( - flowName: string, - payload?: Record, - ): Promise => { - setIsLoading(true); - setError(null); - try { - const result = await client.automation.trigger(flowName, payload ?? {}); - return { - success: true, - executionId: result?.executionId, - message: result?.message, - data: result?.data, - }; - } catch (err: unknown) { - const automationError = - err instanceof Error ? err : new Error("Automation trigger failed"); - setError(automationError); - throw automationError; - } finally { - setIsLoading(false); - } - }, - [client], - ); - - const approve = useCallback( - async ( - objectName: string, - recordId: string, - comment?: string, - ): Promise => { - setIsLoading(true); - setError(null); - try { - await client.workflow.approve({ object: objectName, recordId, comment }); - } catch (err: unknown) { - const approvalError = - err instanceof Error ? err : new Error("Approval failed"); - setError(approvalError); - throw approvalError; - } finally { - setIsLoading(false); - } - }, - [client], - ); - - const reject = useCallback( - async ( - objectName: string, - recordId: string, - reason: string, - comment?: string, - ): Promise => { - setIsLoading(true); - setError(null); - try { - await client.workflow.reject({ - object: objectName, - recordId, - reason, - comment, - }); - } catch (err: unknown) { - const rejectError = - err instanceof Error ? err : new Error("Rejection failed"); - setError(rejectError); - throw rejectError; - } finally { - setIsLoading(false); - } - }, - [client], - ); - - return { trigger, approve, reject, isLoading, error }; -} diff --git a/hooks/useObjectStack.ts b/hooks/useObjectStack.ts index c5569f4..8b54668 100644 --- a/hooks/useObjectStack.ts +++ b/hooks/useObjectStack.ts @@ -25,7 +25,6 @@ export { useAnalyticsMeta } from "./useAnalyticsMeta"; export { useFileUpload } from "./useFileUpload"; /* ---- Phase 9: Spec v2.0.4 Alignment ---- */ -export { useAutomation } from "./useAutomation"; export { usePackageManagement } from "./usePackageManagement"; /* ---- Phase 14: UX Foundation — Navigation & Loading ---- */ diff --git a/hooks/useWorkflowState.ts b/hooks/useWorkflowState.ts deleted file mode 100644 index d332005..0000000 --- a/hooks/useWorkflowState.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { useCallback, useEffect, useState } from "react"; -import { useClient } from "@objectstack/client-react"; -import type { - GetWorkflowStateResponse, - WorkflowTransitionResponse, - WorkflowApproveResponse, - WorkflowRejectResponse, -} from "@objectstack/client"; - -/* ------------------------------------------------------------------ */ -/* Types */ -/* ------------------------------------------------------------------ */ - -export interface WorkflowTransition { - name: string; - targetState: string; - label?: string; - requiresApproval: boolean; -} - -export interface WorkflowHistoryEntry { - fromState: string; - toState: string; - action: string; - userId: string; - timestamp: string; - comment?: string; -} - -export interface WorkflowState { - currentState: string; - availableTransitions: WorkflowTransition[]; - history?: WorkflowHistoryEntry[]; -} - -export interface UseWorkflowStateResult { - /** Current workflow state for the record */ - state: WorkflowState | null; - /** Whether the state is still loading */ - isLoading: boolean; - /** Error that occurred while fetching */ - error: Error | null; - /** Execute a state transition */ - transition: ( - transitionName: string, - comment?: string, - ) => Promise; - /** Approve a workflow step */ - approve: (comment?: string) => Promise; - /** Reject a workflow step */ - reject: (reason: string, comment?: string) => Promise; - /** Refetch the workflow state */ - refetch: () => Promise; -} - -/* ------------------------------------------------------------------ */ -/* Hook */ -/* ------------------------------------------------------------------ */ - -/** - * Hook for managing workflow state of a specific record via - * `client.workflow.getState()`, `.transition()`, `.approve()`, `.reject()`. - */ -export function useWorkflowState( - objectName: string, - recordId: string, -): UseWorkflowStateResult { - const client = useClient(); - const [state, setState] = useState(null); - const [isLoading, setIsLoading] = useState(false); - const [error, setError] = useState(null); - - const fetchState = useCallback(async () => { - if (!recordId) return; - setIsLoading(true); - setError(null); - try { - const result: GetWorkflowStateResponse = - await client.workflow.getState(objectName, recordId); - setState(result.state); - } catch (err) { - setError( - err instanceof Error - ? err - : new Error("Failed to fetch workflow state"), - ); - } finally { - setIsLoading(false); - } - }, [client, objectName, recordId]); - - const doTransition = useCallback( - async ( - transitionName: string, - comment?: string, - ): Promise => { - const result = await client.workflow.transition({ - object: objectName, - recordId, - transition: transitionName, - comment, - }); - // Refresh state after transition - await fetchState(); - return result; - }, - [client, objectName, recordId, fetchState], - ); - - const doApprove = useCallback( - async (comment?: string): Promise => { - const result = await client.workflow.approve({ - object: objectName, - recordId, - comment, - }); - await fetchState(); - return result; - }, - [client, objectName, recordId, fetchState], - ); - - const doReject = useCallback( - async (reason: string, comment?: string): Promise => { - const result = await client.workflow.reject({ - object: objectName, - recordId, - reason, - comment, - }); - await fetchState(); - return result; - }, - [client, objectName, recordId, fetchState], - ); - - useEffect(() => { - void fetchState(); - }, [fetchState]); - - return { - state, - isLoading, - error, - transition: doTransition, - approve: doApprove, - reject: doReject, - refetch: fetchState, - }; -} diff --git a/package.json b/package.json index e0ce73a..4a16774 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,9 @@ }, "dependencies": { "@better-auth/expo": "^1.4.18", - "@objectstack/client": "^7.5.0", - "@objectstack/client-react": "^7.5.0", - "@objectstack/spec": "^7.5.0", + "@objectstack/client": "^7.6.0", + "@objectstack/client-react": "^7.6.0", + "@objectstack/spec": "^7.6.0", "@sentry/react-native": "^7.12.0", "@shopify/flash-list": "^2.2.2", "@tanstack/react-query": "^5.90.20", @@ -76,12 +76,12 @@ "@babel/core": "^7.29.0", "@changesets/changelog-github": "^0.5.2", "@changesets/cli": "^2.29.8", - "@objectstack/cli": "7.5.0", - "@objectstack/core": "^7.5.0", - "@objectstack/driver-memory": "^7.5.0", - "@objectstack/objectql": "^7.5.0", - "@objectstack/plugin-auth": "^7.5.0", - "@objectstack/plugin-hono-server": "^7.5.0", + "@objectstack/cli": "7.6.0", + "@objectstack/core": "^7.6.0", + "@objectstack/driver-memory": "^7.6.0", + "@objectstack/objectql": "^7.6.0", + "@objectstack/plugin-auth": "^7.6.0", + "@objectstack/plugin-hono-server": "^7.6.0", "@testing-library/jest-native": "^5.4.3", "@testing-library/react-native": "^12.9.0", "@types/jest": "^29.5.14", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 36fd654..07fd846 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,14 +12,14 @@ importers: specifier: ^1.4.18 version: 1.4.18(@better-auth/core@1.4.18(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.5(zod@4.3.6))(jose@6.1.3)(kysely@0.29.2)(nanostores@1.3.0))(better-auth@1.4.18(better-sqlite3@12.10.0)(mongodb@7.2.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(expo-constants@18.0.13)(expo-linking@8.0.11)(expo-network@8.0.8(expo@54.0.33)(react@19.1.0))(expo-web-browser@15.0.10(expo@54.0.33)(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))) '@objectstack/client': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.3.6)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.3.6)) '@objectstack/client-react': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.3.6))(react@19.1.0) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.3.6))(react@19.1.0) '@objectstack/spec': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.3.6)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.3.6)) '@sentry/react-native': specifier: ^7.12.0 version: 7.12.0(expo@54.0.33)(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) @@ -172,23 +172,23 @@ importers: specifier: ^2.29.8 version: 2.29.8(@types/node@25.2.2) '@objectstack/cli': - specifier: 7.5.0 - version: 7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@objectstack/core@7.5.0(ai@6.0.193(zod@4.3.6)))(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: 7.6.0 + version: 7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@objectstack/core': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.3.6)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.3.6)) '@objectstack/driver-memory': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.3.6)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.3.6)) '@objectstack/objectql': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.3.6)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.3.6)) '@objectstack/plugin-auth': - specifier: ^7.5.0 - version: 7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^7.6.0 + version: 7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@objectstack/plugin-hono-server': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.3.6)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.3.6)) '@testing-library/jest-native': specifier: ^5.4.3 version: 5.4.3(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0) @@ -302,33 +302,33 @@ importers: apps/server: dependencies: '@objectstack/driver-memory': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.4.3)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.4.3)) '@objectstack/objectql': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.4.3)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.4.3)) '@objectstack/plugin-approvals': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.4.3)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.4.3)) '@objectstack/plugin-trigger-record-change': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.4.3)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.4.3)) '@objectstack/plugin-trigger-schedule': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.4.3)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.4.3)) '@objectstack/runtime': - specifier: ^7.5.0 - version: 7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^7.6.0 + version: 7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@objectstack/service-automation': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.4.3)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.4.3)) '@objectstack/spec': - specifier: ^7.5.0 - version: 7.5.0(ai@6.0.193(zod@4.4.3)) + specifier: ^7.6.0 + version: 7.6.0(ai@6.0.193(zod@4.4.3)) devDependencies: '@objectstack/cli': - specifier: ^7.5.0 - version: 7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@objectstack/core@7.5.0(ai@6.0.193(zod@4.4.3)))(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^7.6.0 + version: 7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) typescript: specifier: ^5.3.0 version: 5.9.3 @@ -2037,43 +2037,41 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@objectstack/account@7.5.0': - resolution: {integrity: sha512-QHUjXIP8nRJexRPkfH8Yw+A85hF8rcs2DyF2P+uZaSuBLYN+ogwDgZnCe0B+e0W/gTkelO5HoUkLXLSiASKoig==} + '@objectstack/account@7.6.0': + resolution: {integrity: sha512-8SF6lcqlEDSvSAjbd7yDV8ZG6qGdSy745fGqSr2GOsDlUm8/nqy73knI81CieMlE8hlm0bi9Jr9IGqqKBvIh3Q==} - '@objectstack/cli@7.5.0': - resolution: {integrity: sha512-NYDaQ2afFJ3wq7eHg4k9dXAn0ApEeCsClEUH2Uzm3TInbnR9QhTDInBM5dWxvXNxTyLq/6XQx4iAdLHcPpZh/w==} + '@objectstack/cli@7.6.0': + resolution: {integrity: sha512-mIm8UHJ8buBRkKDjVjBqZrVQ7cy0ULUPDTv97kKkh5Mhn7al27UzOlod3I4LKvAXIbDM2sb7r8Eg3Cy3VEp41g==} engines: {node: '>=18.0.0'} hasBin: true - peerDependencies: - '@objectstack/core': ^7.5.0 - '@objectstack/client-react@7.5.0': - resolution: {integrity: sha512-4fQbTq6pZ360BrptrEX8HIEg1IYWmMa8xwJqli6ZA7kv26j/pftEOuB9dwJ9plLpzSMS4/n6QcJfscVfJoW9dw==} + '@objectstack/client-react@7.6.0': + resolution: {integrity: sha512-tkMS8AkS390x3IjMB9n19iqDE9VUOz7EdUx6qLDLgwSNGFvpe9rq15dJR7uq0ndZPf7A/HjR0BUA+YXQ57R7eQ==} engines: {node: '>=18.0.0'} peerDependencies: react: '>=18.0.0' - '@objectstack/client@7.5.0': - resolution: {integrity: sha512-PvPe3cMjYS+UdqzS7b7d+21wGJ3n3iKQlWCEkpa+QzHrt5IFiots4dxNHvo/r7aeZfpjNmA4M+qRX7jNkfut4w==} + '@objectstack/client@7.6.0': + resolution: {integrity: sha512-m6l8Lu5pAUuKpGb4VegIVqbf1M2lpFpg2xKWlukaYCxjBxRdcTTDDXjuPGmT/hkJaZ/StBK+c0qqklV5e2w7oQ==} engines: {node: '>=18.0.0'} - '@objectstack/console@7.5.0': - resolution: {integrity: sha512-JjwffUVWutqrNyln70lehIKLNRmXaZQVggOn1PUREGHorWEe2lb3RmlYCUh2L3uYUycWh9iUZYV4WNTlbmqz8A==} + '@objectstack/console@7.6.0': + resolution: {integrity: sha512-sc/zANPglFDHcUr5kr1JljVo5uolD8ppUPlvXLU1Ff1ZpX0264QWxwQjKYCDOoQHxA+clQ+wJ9+Qa+HShSrCWQ==} - '@objectstack/core@7.5.0': - resolution: {integrity: sha512-d+6AGfbhWfANOYZzB+1m9y63FX5xuvThWuE3me5PrhmodtREn7TercimUP6AgIL//RlAIrHMVC4uxhUyOEuwGA==} + '@objectstack/core@7.6.0': + resolution: {integrity: sha512-JuvVF3t0X80TNFZ2l+ySQ0Crcn5tW2gPxHsX4vGJv176JOIumx6IaqdKWsuF7wMhDkWgEn4pksMILPIW4ifZsA==} engines: {node: '>=18.0.0'} - '@objectstack/driver-memory@7.5.0': - resolution: {integrity: sha512-Opb1HuctsvrtA2mhlEUiJSMz0hDnYWUC+ujbi3fstqAuQ6QRUEMw81LluBG4KSodY+UZUv3myb9luBy6Nn5Uvg==} + '@objectstack/driver-memory@7.6.0': + resolution: {integrity: sha512-UzPnSKFwe5jTWCkX8LVev1UJxewsWx8ch11bE2MKg43scyFN+z2B1to3Y+g7it09ip3UlgtkIb9k1nf6w28b/Q==} engines: {node: '>=18.0.0'} - '@objectstack/driver-mongodb@7.5.0': - resolution: {integrity: sha512-Vz+E8TvLF7CRzJ9o+zHMzb6LXtzNcga9M+B1cdwnp0RNJ8EZKsoTO4xfDGWyb+SEnu0rgINwtz0N5t8FuTXO7w==} + '@objectstack/driver-mongodb@7.6.0': + resolution: {integrity: sha512-oTIJm2tz9KUBUW+KUW4MrtdbcTVZa+jWdxBXFtX6/0fjPv+hO6EDsUwLNLsMWMzlz4DRNxan1iUxL/41Hnn79Q==} engines: {node: '>=18.0.0'} - '@objectstack/driver-sql@7.5.0': - resolution: {integrity: sha512-MxMkt0GykLs669+WK41pG+0FoQYYRBSyXSXnpUce0QneqZxrg5DQ2HN7ods2qxfFzYZJzUBqmAN/olsKfL0Vag==} + '@objectstack/driver-sql@7.6.0': + resolution: {integrity: sha512-KOjJoPCSieII7HY862TF8oLNlSFW094Ugkv5f9kJlMWinTHuvsI6hUuJg7c1LIMM0jxdEb12nDxEqlJwKzpP3Q==} engines: {node: '>=18.0.0'} peerDependencies: mysql2: ^3.0.0 @@ -2090,15 +2088,15 @@ packages: tedious: optional: true - '@objectstack/driver-sqlite-wasm@7.5.0': - resolution: {integrity: sha512-vO+yWG2pBABkQoqgVZJJZALjEDqp5lOxXJ+BTFsN4n2lHSo/QpklwkoGEqcePNKCuj3Y+NFrb9mHqJHlQ+3U0A==} + '@objectstack/driver-sqlite-wasm@7.6.0': + resolution: {integrity: sha512-eMoZ+3b7rqiRvBm0GMZGEAWgPW7e24S13Ja2lxmZGSbAIFlwRn5ovl+CmuFSHQx3N8bNcHIhNY7jR0l5Ne3SUQ==} engines: {node: '>=18.0.0'} - '@objectstack/formula@7.5.0': - resolution: {integrity: sha512-O8wX69bRU9jd7H4zuNNQDxAo+JPqh2+FdGmFmdfbRiPJaBAbo2VqrAq8EW7OStpSocA35j5Wdk8/mohrUG2Jng==} + '@objectstack/formula@7.6.0': + resolution: {integrity: sha512-hRztIqND4GphY80LDhhhkiZ6WOy81Ir0UMasPPkQWrmjTwOhsGfo47KS/hYhN3tFi1vy8GmI3jMB8ZAUWJFA2w==} - '@objectstack/metadata-core@7.5.0': - resolution: {integrity: sha512-yNHB/e9cqm1OTsWYKLUFgEFtRI7vGaphVE+A4y+I9StS5Tiy3uz6jG6dWqhCE5PE3J+34e4kWaLkMkVRhI+vPw==} + '@objectstack/metadata-core@7.6.0': + resolution: {integrity: sha512-EIMq+4saBS9VZXumt5Dn7+l94ml6KtXRNV3G6T44oNJLS0QwI/bqOP62AeuGjv7c4KXo9XpVWgwK/AF8QX/L7g==} engines: {node: '>=18.0.0'} peerDependencies: vitest: ^4.0.0 @@ -2106,90 +2104,89 @@ packages: vitest: optional: true - '@objectstack/metadata-fs@7.5.0': - resolution: {integrity: sha512-4x2Yc3XKvBrvvVcjMpBk+WnoDzgKvxGn4SzDbWd8Ipnzs+QtJO/JiJWiVafoYTMwpncZLrWTQL7sZ4YVReYJvA==} + '@objectstack/metadata-fs@7.6.0': + resolution: {integrity: sha512-xCmMcZBvBmSjpwZIhIguO4uur3ifZHeYnN37RRrSezDy+pW+w0TpFuFZnMpCaPr2mNKGpCzvPLXlt3XUb1IGnA==} engines: {node: '>=18.0.0'} - '@objectstack/metadata@7.5.0': - resolution: {integrity: sha512-9sp8v2W7/MKf3HPUpjhQI+Xu02aG3YgGXsMwVRne3SZO8VYS4ppO1Fkgl/C3dnsJASUaNI09w3RdnxnmmMwFbg==} + '@objectstack/metadata@7.6.0': + resolution: {integrity: sha512-OCsINrsPiSD/Q7+0vTKwbNZ+TkZQghBZN2qBKxzuu9pBVJDkBvDW8TGZFdbynO3f2JrZT8SI/FtJ26sV4UtO9g==} engines: {node: '>=18.0.0'} - '@objectstack/objectql@7.5.0': - resolution: {integrity: sha512-67V57vm1fJL1hSnuhQ9P7j0TvaHww4Sb9loAv3JjEZFqt0PJNu7D5o/8CFWRRt5pYxV15mSh/SuPBTXb8jWzyA==} + '@objectstack/objectql@7.6.0': + resolution: {integrity: sha512-1aBWRRL86uxejekZu+BlaxPE0MbiWRe9n/XV+zEcG+RsCukWHb/gvqLuojJn5p306zwJHsadf3kHAZnRoSftqA==} engines: {node: '>=18.0.0'} - '@objectstack/observability@7.5.0': - resolution: {integrity: sha512-mlKl8eT9eF5oQG99YTe43Uw/zs/LDWJvYQ6o3XRcd6qPL2czEJDQGTQIJM738xyO9p2zVSAMUkvYl19n/g6+cA==} + '@objectstack/observability@7.6.0': + resolution: {integrity: sha512-rjdQT0TcLnccwRpaj82XkfRR50nvPEIUWKoAKNnPxn6A0VbtyolPO6CjxGokASdfAe5yNoaCfj+z6SZFL+EDMA==} engines: {node: '>=18.0.0'} - '@objectstack/platform-objects@7.5.0': - resolution: {integrity: sha512-enY22BtWGuRpu+XmSRXHbM+KgDrYv4qmZ0/syMdYLRAGv+hKzvBxRnsuIZqP2hIlb+2o1ywWg/RekZnNZSGJrw==} + '@objectstack/platform-objects@7.6.0': + resolution: {integrity: sha512-ttq9dW9AgBaNM7KzvIlD/OC9sUruVIhy99SGpFDH+OOwsU621M8woQFkpMWpiP5ZoDOMI/FnkCvpZJTBj1RgqQ==} engines: {node: '>=18.0.0'} - '@objectstack/plugin-approvals@7.5.0': - resolution: {integrity: sha512-j1uh+sz1yK2z8TMntDSXiXrmfAOY9wKUl2S2vZg3qTMbT3Op9MpAP+D1d5tOg0o9bMQh2oWaj9s84VhAiCVb0g==} + '@objectstack/plugin-approvals@7.6.0': + resolution: {integrity: sha512-p6EPaQsuFPMRxn3F9hz4YJoZIMs5ScXRQEPDFVsVr9igC8YZ20+XSHyzU0/BbxNKHLovh4pBGQ8GXv1pZuwWmw==} - '@objectstack/plugin-audit@7.5.0': - resolution: {integrity: sha512-CCFZAr+LQF72a+QQQcTTuOv0zGhs+ESuj8gzgpbMnJBY1mT9DCyJFbLw1LAPKhltq4RFp9VhwUpItOhQyyvNfw==} + '@objectstack/plugin-audit@7.6.0': + resolution: {integrity: sha512-nFK5OB2n4oqHXPMNwMKEWn1YV1cwO5IbM34+LqCKwOoBNMMN9gWAIwjj3gnbOYsaPz4tqxg+hBVNhNmxVQupuQ==} engines: {node: '>=18.0.0'} - '@objectstack/plugin-auth@7.5.0': - resolution: {integrity: sha512-/B+invJ+92JCQpzsfosvVJWoe/5YFx2QQDmCWKSAI2Mmc5d/75C2PnJbZkNTHDvw0HTqB0rghkX29op3B81H5A==} + '@objectstack/plugin-auth@7.6.0': + resolution: {integrity: sha512-Co/LHevLXkyduL4oXexKgFJ45WXXEl3Gp2IPMaftRuMlFmBQ3cA+29UiipNqL6ujnPKFJsCQvCPX2ZPTi72jMg==} engines: {node: '>=18.0.0'} - '@objectstack/plugin-email@7.5.0': - resolution: {integrity: sha512-wIxwCs+G/+FAmuxdHfHvFra6BMQzMcVnFaZa1Pl4J4YliuKTM37QwGnruDLFnj+F3Uu6teOdi648ssl8mi+jZg==} + '@objectstack/plugin-email@7.6.0': + resolution: {integrity: sha512-hnR9jarGdiHPLunYZIvkJM7lzPUUKLJ53UmS5XWGjqmpspbhVQVtc+yVKe6AYo1tLp5Vu2jZY/GOLbB2519TqQ==} - '@objectstack/plugin-hono-server@7.5.0': - resolution: {integrity: sha512-l9tF7RuDmX12gZf3c0g3KkpRPaz/cIF6U9Gung8kpPJqfv5gIhw9r+cv3z874Qp+k4D9RXMExhwbi22Irn67Sw==} + '@objectstack/plugin-hono-server@7.6.0': + resolution: {integrity: sha512-qKvnuMAZANf77KBdvSSckJNKPGroP3iUMnXS0rqCMXwBy6hpyFnc5ZB4pNKxJt8jeh9z4ruRAeH3f+gvQuOpZg==} engines: {node: '>=18.0.0'} - '@objectstack/plugin-mcp-server@7.5.0': - resolution: {integrity: sha512-SvvLnt1SBKG7vowsTTIDLX3sfvQr/3BHtwqDeterdDyVv4Ipf4l/dpdAhGa4ugkzPeZW88yBUfd1iPqpPJ7B3g==} + '@objectstack/plugin-mcp-server@7.6.0': + resolution: {integrity: sha512-In4sI4QkOMs5knt7fVNys7fUfGFgKJmmqwbPEdnojxiNGEHA3DFMXjZg2xi8UNIQ4j1SfBIta2Y+5wBeRdXaew==} engines: {node: '>=18.0.0'} - '@objectstack/plugin-org-scoping@7.5.0': - resolution: {integrity: sha512-vyXMx5ULp1fpRJG1Ccc3KD8BGvY4ruKq+256GVmiiOoOfC9TJdFzYRnXcaiVZz9qRla9LyiomC93WknQ6Hytag==} + '@objectstack/plugin-org-scoping@7.6.0': + resolution: {integrity: sha512-6iX3idyMyDFifl8W/DlR9nAIS+RtkYEsYQN6UbTcxaJJq39sQSsyzjQE90Nl6U0/32oGTFxOzW1kGw6r1kUzEA==} engines: {node: '>=18.0.0'} - '@objectstack/plugin-reports@7.5.0': - resolution: {integrity: sha512-uEOwIEl6porOkSTJvz72E2ve4rlsXQpQAOuwcCn3Xn9RSR4cpmsaVz2sHt7SYqosCUPjqKoJFPNhnrBf3VB0Mw==} + '@objectstack/plugin-reports@7.6.0': + resolution: {integrity: sha512-AnMFxSMMQKiDJnxz7RwCq5c8CeJuy04zDPPUo7ef5UssSVH4hBdsvrHWu0UjhtQZDYY5eOk85XB3AxSDMvPMCw==} - '@objectstack/plugin-security@7.5.0': - resolution: {integrity: sha512-PUDf6zvP1chyjwL42jCaVjFD70h9HS/ndUEVe9kaAJOZW2NjyJjo15BKCABF76pYFur05uoNhKElD79XSTGIpA==} + '@objectstack/plugin-security@7.6.0': + resolution: {integrity: sha512-DYxraAVkQi4CLZY+za7T5A6+8AZCU2bTqGpukg6TdTw7rX+eF9ZRp8mvA6l8/r9ly0BT6LVvY/FwI3VhThwL8A==} engines: {node: '>=18.0.0'} - '@objectstack/plugin-sharing@7.5.0': - resolution: {integrity: sha512-4DGe+TbP0XCOryJlwj6HuFXgsut0oQodp+UWpMGJlluADHHwsKspfw6OV1qlHnqDVEiK3qw+crA5urxc3VxapQ==} + '@objectstack/plugin-sharing@7.6.0': + resolution: {integrity: sha512-fH/u+e8coDT+ftsA6ga8IqmZaaaygzqpuaJB6dkPdreCPL4USGG7JVVkun7iL4K6EiNkJlFb9ZG5NHtRGVZtpA==} - '@objectstack/plugin-trigger-record-change@7.5.0': - resolution: {integrity: sha512-tUZby8lkNyf9NSJTFEKNRnCXmTWO04nNEf+DawAbpNRhPvd0b4Sbp2YTBg5hOd3CX5ARSAWfAa1Sxu8bllwBog==} + '@objectstack/plugin-trigger-record-change@7.6.0': + resolution: {integrity: sha512-YhrDN2ILAs6r6Cv9o/qPZBLItIhPactL33QtWl7+i8NqxQWZCEwKTfTPCI1kq0iDq81tz3Sjqb8akWx01cbEYg==} engines: {node: '>=18.0.0'} - '@objectstack/plugin-trigger-schedule@7.5.0': - resolution: {integrity: sha512-/j89XchSvoiX2ONnfZYWIJO8Gia/M9UQ8vQtEcvJQ6wPwFI7PirH3KOx8vnv455dKASqqoZfy9EXDyq3epVv3g==} + '@objectstack/plugin-trigger-schedule@7.6.0': + resolution: {integrity: sha512-khvIMoU5dFcTjdj1CNv280WY8ZpbqTkF44dxGdcoT7YJE/NrDDZfs/rOqe7SMhWlm6vzA3toeNAwJWUTXyEYHg==} engines: {node: '>=18.0.0'} - '@objectstack/plugin-webhooks@7.5.0': - resolution: {integrity: sha512-c4UcaqvL6LU0EQ3Ihz/myuBmCV85S+TxNizYv81ZlkkpVB0Za0cpGvQFgIemfwAdFPg5neKCoMh8y6U1xWo8ig==} + '@objectstack/plugin-webhooks@7.6.0': + resolution: {integrity: sha512-n8wcFmZnLdOqEhIi+j+LobqFtV8u/kBNHDYNi4EcU08i5HK54yvluvLnMQklZH22ZK9IyxR0kz7fS/NsiNI5Qg==} - '@objectstack/rest@7.5.0': - resolution: {integrity: sha512-y+vrLGlrD8feOR1guiGBDtqyOWFtO1Bz1n8VzjMkzIxFmpBLIq/CXJnWTS5IZ7V5sIXiQZbRWE4+YSOs1fcQRQ==} + '@objectstack/rest@7.6.0': + resolution: {integrity: sha512-fLR1/fn5vRqW+M0pD95zQEO5137dj/OrzJrTAQLUuLoxWcSn93Z32K+02GznxYbTazD6faTeGK0aqEqfewg7PQ==} engines: {node: '>=18.0.0'} - '@objectstack/runtime@7.5.0': - resolution: {integrity: sha512-Q6KsS0B/2FdW9bF9046gEl6R68kSXK91HVuxagZ8FqpVKv2HV2t5ZB1DwZ9QQQQNef3C8J7nOKFnevFRAdi8HQ==} + '@objectstack/runtime@7.6.0': + resolution: {integrity: sha512-GxJJDEwjuITjDlOv86ohodBpgOk4VgUsB/tE6Z0F/w6De92A3SdESACCHyZ1FJrSZJWSQLEZQ0gfj121IY1Rlg==} engines: {node: '>=18.0.0'} - '@objectstack/service-ai@7.5.0': - resolution: {integrity: sha512-Y4sNgsvSGS+l63aKs5IN/mpN6QwESE8H+8j4p70p+OwQjJwADPe3FKPHduQT+mRPvQXmFWAWXUZOAymVLzoPrA==} + '@objectstack/service-ai@7.6.0': + resolution: {integrity: sha512-eJZLi/A8lC212mu3cRuUJLhL51k3PuD5hnOdr2/VeAgJRFhf3hMWe2boku59Jf5e0tUe4EWfsfCU2ZKYjsT98A==} engines: {node: '>=18.0.0'} peerDependencies: '@ai-sdk/anthropic': ^3.0.0 '@ai-sdk/gateway': ^3.0.0 '@ai-sdk/google': ^3.0.0 '@ai-sdk/openai': ^3.0.0 - '@objectstack/embedder-openai': ^7.5.0 peerDependenciesMeta: '@ai-sdk/anthropic': optional: true @@ -2199,61 +2196,59 @@ packages: optional: true '@ai-sdk/openai': optional: true - '@objectstack/embedder-openai': - optional: true - '@objectstack/service-analytics@7.5.0': - resolution: {integrity: sha512-KJQvGwcmXf637NHN4+iheXk1lfZPJTDOkVrtsXLMVt70qe/359DUqKcx8aGe4dVOZM8BkRHObuM32RxrT9026Q==} + '@objectstack/service-analytics@7.6.0': + resolution: {integrity: sha512-f19WvNVcGbofw+1bfzydJJiO8uzJpPC1Eqe2S3KZoYRLnD4eG0ou8Nm8PHKp8VV0eX2X4Dnhk/Vr/MNjqDLw/A==} engines: {node: '>=18.0.0'} - '@objectstack/service-automation@7.5.0': - resolution: {integrity: sha512-w8NjUgSzut/CFbXH9LtqSr9t6z6Hl4uh2jmamp/yNWTXxOcqL6Tw0YZg13K5B7popo9I6TJ5vkRENjsV4cvZ+w==} + '@objectstack/service-automation@7.6.0': + resolution: {integrity: sha512-tu10VzdbY8qSfCMc+ZPmpdxjHH7pWxzCUe29JTtenNgkgv0L6oxLmifYCT9Khltotk02gEIn+aGVoJ0ilOEjRg==} engines: {node: '>=18.0.0'} - '@objectstack/service-cache@7.5.0': - resolution: {integrity: sha512-bQ0jHvExFY5t/RkjaSaI19FVj0BQBy/z1FYx0XIRtTFoXg/JhGuw0vbGLoGiaMU+csCTdWdE1rX59N+LkLRkAQ==} + '@objectstack/service-cache@7.6.0': + resolution: {integrity: sha512-P98gXqjkB9U7lMWl2u0OLs1XlY++XHno7QnP4AQPwlTt8dzZ6ieb8S9gulbblUWhk+6RMhMHqBVy8kJTsBL/aw==} engines: {node: '>=18.0.0'} - '@objectstack/service-cluster@7.5.0': - resolution: {integrity: sha512-wbwZeK1k2rS8j/GlfiDLQ46GHMnb5lhDMzKMJ/Yq7UMCEzhwf/JBz/PgDYZ7SmtoB/CaDKzN71CBpHGTL0lkMg==} + '@objectstack/service-cluster@7.6.0': + resolution: {integrity: sha512-3anyL9TRg8YYOr+06kl6lD7Jw+4WCsHVITaAwR9c/EN7TUtZWPmZ4lzAS45oiHQx64LEa6TwF3cfGcJRAtu3GA==} - '@objectstack/service-external-datasource@7.5.0': - resolution: {integrity: sha512-6gmXNyBsHBCQeNL7M64F5H4KBEb/eRqOOMjQeGp0Uf0Ci4qrd5mdywTmzviBj5LDG8SHYWZtiDu7ylAcWGsZ2Q==} + '@objectstack/service-datasource@7.6.0': + resolution: {integrity: sha512-HIHt2Vtww2s6Y4/gjSOdOsjMZpqWfT6H90l3z+bzRG5BCZo9257gRs+wjSzSoNW93y5CwHw9Dl8FFova/3WBMg==} - '@objectstack/service-feed@7.5.0': - resolution: {integrity: sha512-KrfRCieMTU4ituAvwUCs1N8HkaYYPXslL4ARUCb5R5CHCgcHKkXwNBBqqDP8zfaSBPbD3lsON8PLyWBD+L/CzA==} + '@objectstack/service-feed@7.6.0': + resolution: {integrity: sha512-/3bUqaCWOHjoqHKfFHTbuvE7IkfCDPHlH3G7tc1zlg1TU4aBOacF2AVrR68ceanNPuFcJaTSzw985iaM9j9euQ==} engines: {node: '>=18.0.0'} - '@objectstack/service-i18n@7.5.0': - resolution: {integrity: sha512-Qsc8Jv4YiIlylEyWgvW8EYZb9I43qZAiyWTGJ/AzMGYgYWQVV7xgKwHsKIN9j7JVkj7c6sLVBUfyIahBquTR3A==} + '@objectstack/service-i18n@7.6.0': + resolution: {integrity: sha512-v4hhSVZGaiMOHGjYPsDMuSpyXPvkw3ZJ08x8oSz1ilc/6PXp8eLD8oStgWXlIyrMBCAo47JxuCgfMjQh+/6fug==} engines: {node: '>=18.0.0'} - '@objectstack/service-job@7.5.0': - resolution: {integrity: sha512-tHFJVBnuFCNCEP+Ijxc0r9TTV6S4Zdmj20SRF2SDoYYDO1vkX7x8otwgKaBuiCk7XpKyo75l2N1MBk7e3jUyDg==} + '@objectstack/service-job@7.6.0': + resolution: {integrity: sha512-V9VUa41fDOcjK2CLdiP8b18AFNes7mGLd9HXm2asJhdHl+dR1pJR1Ec455aYNL3ZRea0Y4D7sUfmQ+9GFc7qww==} engines: {node: '>=18.0.0'} - '@objectstack/service-messaging@7.5.0': - resolution: {integrity: sha512-AQPVJsCbEoNNulmiykn/fYr2xgZgm1z22OPL94kEL3W57t16SlrHP7fzJGS/57Ej7xBXKlxJje/Drf26umYFoQ==} + '@objectstack/service-messaging@7.6.0': + resolution: {integrity: sha512-pVeyMacT1UyFHNyg4j1Sn2dx2Lb9yhdfpOUiZjKnsfSWbgxzzRnERiUctR7ApFf6DyjF9uzH61HcvrTx590paA==} engines: {node: '>=18.0.0'} - '@objectstack/service-package@7.5.0': - resolution: {integrity: sha512-9dZYC0eIwp2gyfZcjNKzm7hHbfAY5p3ptF6V0pwIJIOepKfn1oVOmijLPmKEvukVYtBsOj0GeBfK5HY0cFY8Ow==} + '@objectstack/service-package@7.6.0': + resolution: {integrity: sha512-gB9PA2GR4fbyLNTAahpwt2xYIVIvwHbaNmcuctBHQpWOTE7U5i54lgxEWzoD6JF4dneAX2x6oq2Q3+4bgjBJCQ==} engines: {node: '>=18.0.0'} - '@objectstack/service-queue@7.5.0': - resolution: {integrity: sha512-1KE55SS4cHBQCVzmJwMG2I7jM1CxWb1YxCCZmsinalqcSovc+sPP8Eu1XS7Gxml9jaI+IaAJmWLeFDY7qle2pg==} + '@objectstack/service-queue@7.6.0': + resolution: {integrity: sha512-eTCnpL15KhuBtiHiM8MhU+gPB8zAtUFvLd+s9axWRObu+LR0Ui29p7ABQcp0YvDepvGB+kihfXAVmGCqNmgolA==} engines: {node: '>=18.0.0'} - '@objectstack/service-realtime@7.5.0': - resolution: {integrity: sha512-D8O+EmoOtzhtZSShNCmj3BXtLKwlE63K1oVqmvWzlV7uSg3O3KE4FkBNPH3EicmLYPypzeUQdjgkB2D/P8Wndw==} + '@objectstack/service-realtime@7.6.0': + resolution: {integrity: sha512-3dd/3LWn+MI4ywwxvqJ0cnEq/wfzJ/nAfs+Cv2aI6ABcuJf8Q0GKm0P25YjZjl9HAN/qqahDXR0QK9VPkRPnEw==} engines: {node: '>=18.0.0'} - '@objectstack/service-settings@7.5.0': - resolution: {integrity: sha512-5VwEi8MhTHLBSyXyj73Kyhe7cbhfTMTSDrYrmC/9vmH07WNE3yRdyzA3RPSCf1pf/iu0VIcigjsvLmpCk5mkyw==} + '@objectstack/service-settings@7.6.0': + resolution: {integrity: sha512-esWI25N5tBKg9XsQZPWBit9srkajge9FnTjwreMn3LRxsTnOE3GdwJ3P6O6ujqUTRuYBSEt5oT9LeyZhnm9l/g==} engines: {node: '>=18.0.0'} - '@objectstack/service-storage@7.5.0': - resolution: {integrity: sha512-BK53BZgUjFkEIHhUxHpp4de4eF+n6KEinwRJz9bcGMReXD7xJAygd2rxaNUlbl0F9fjxRwt65/a8pFLHUQV7Sw==} + '@objectstack/service-storage@7.6.0': + resolution: {integrity: sha512-ehmTUvlCQrO9Kq0MZysJBljqFYGJuk3sl8geN2iLmm5RECWNUCBkXODI3KrghUcQ5LDjLa2xaQllFf3gNFmEbA==} engines: {node: '>=18.0.0'} peerDependencies: '@aws-sdk/client-s3': ^3.0.0 @@ -2264,8 +2259,8 @@ packages: '@aws-sdk/s3-request-presigner': optional: true - '@objectstack/spec@7.5.0': - resolution: {integrity: sha512-jHjMvXeGLANkvbhfqeXO2PlZpewK8RJ7wDbHxIUXEgiD+hwEcQIXh62QOs/Qu4cloQcpWTH/dbs6b2wywNGLPw==} + '@objectstack/spec@7.6.0': + resolution: {integrity: sha512-R1RHMbkPxbygMkMZf7MixYlNte8V6kMr5fN2gc8nHeSZXjrxGeyUSnQ6m0pFt8ae1TKFMzbKE8raPlHJa68RFA==} engines: {node: '>=18.0.0'} peerDependencies: ai: ^6.0.0 @@ -2273,8 +2268,8 @@ packages: ai: optional: true - '@objectstack/types@7.5.0': - resolution: {integrity: sha512-75V3Wrpu9yw+2x4yMQLJuvFYNiGEVEiVS0uig1pB2/NP6QF+2Y25BZT+AAJB4BKGJ7pzKrnuYIybzhJGwyGmvA==} + '@objectstack/types@7.6.0': + resolution: {integrity: sha512-RZcgJP5bep38AYXToJr6WbSacqujMpjybFfL1H49w39e/TFaTys30I90241hRl/yR2bswqkxH1rlb46z9CYqOg==} engines: {node: '>=18.0.0'} '@oclif/core@4.11.4': @@ -10484,52 +10479,53 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@objectstack/account@7.5.0': {} + '@objectstack/account@7.6.0': {} - '@objectstack/cli@7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@objectstack/core@7.5.0(ai@6.0.193(zod@4.3.6)))(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@objectstack/cli@7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@ai-sdk/gateway': 3.0.121(zod@4.4.3) - '@objectstack/account': 7.5.0 - '@objectstack/client': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/console': 7.5.0 - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/driver-memory': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/driver-mongodb': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/driver-sql': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/driver-sqlite-wasm': 7.5.0(ai@6.0.193(zod@4.3.6))(better-sqlite3@12.10.0) - '@objectstack/objectql': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/observability': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-approvals': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-audit': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-auth': 7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@objectstack/plugin-email': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-hono-server': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-mcp-server': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-org-scoping': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-reports': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-security': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-sharing': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-trigger-record-change': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-trigger-schedule': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-webhooks': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/rest': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/runtime': 7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@objectstack/service-ai': 7.5.0(@ai-sdk/gateway@3.0.121(zod@4.4.3)) - '@objectstack/service-analytics': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-automation': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-cache': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-external-datasource': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-feed': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-job': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-messaging': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-package': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-queue': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-realtime': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-settings': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-storage': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/account': 7.6.0 + '@objectstack/client': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/console': 7.6.0 + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/driver-memory': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/driver-mongodb': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/driver-sql': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/driver-sqlite-wasm': 7.6.0(ai@6.0.193(zod@4.3.6))(better-sqlite3@12.10.0) + '@objectstack/formula': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/objectql': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/observability': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-approvals': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-audit': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-auth': 7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@objectstack/plugin-email': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-hono-server': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-mcp-server': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-org-scoping': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-reports': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-security': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-sharing': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-trigger-record-change': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-trigger-schedule': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-webhooks': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/rest': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/runtime': 7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@objectstack/service-ai': 7.6.0(@ai-sdk/gateway@3.0.121(zod@4.4.3)) + '@objectstack/service-analytics': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-automation': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-cache': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-datasource': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-feed': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-job': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-messaging': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-package': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-queue': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-realtime': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-settings': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-storage': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.3.6)) '@oclif/core': 4.11.4 bundle-require: 5.1.0(esbuild@0.28.0) chalk: 5.6.2 @@ -10553,7 +10549,6 @@ snapshots: - '@cloudflare/workers-types' - '@lynx-js/react' - '@mongodb-js/zstd' - - '@objectstack/embedder-openai' - '@opentelemetry/api' - '@prisma/client' - '@sveltejs/kit' @@ -10590,50 +10585,51 @@ snapshots: - vitest - vue - '@objectstack/cli@7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@objectstack/core@7.5.0(ai@6.0.193(zod@4.4.3)))(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@objectstack/cli@7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@ai-sdk/gateway': 3.0.121(zod@4.4.3) - '@objectstack/account': 7.5.0 - '@objectstack/client': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/console': 7.5.0 - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/driver-memory': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/driver-mongodb': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/driver-sql': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/driver-sqlite-wasm': 7.5.0(ai@6.0.193(zod@4.4.3))(better-sqlite3@12.10.0) - '@objectstack/objectql': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/observability': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-approvals': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-audit': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-auth': 7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@objectstack/plugin-email': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-hono-server': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-mcp-server': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-org-scoping': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-reports': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-security': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-sharing': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-trigger-record-change': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-trigger-schedule': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-webhooks': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/rest': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/runtime': 7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@objectstack/service-ai': 7.5.0(@ai-sdk/gateway@3.0.121(zod@4.4.3)) - '@objectstack/service-analytics': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-automation': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-cache': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-external-datasource': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-feed': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-job': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-messaging': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-package': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-queue': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-realtime': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-settings': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-storage': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/account': 7.6.0 + '@objectstack/client': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/console': 7.6.0 + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/driver-memory': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/driver-mongodb': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/driver-sql': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/driver-sqlite-wasm': 7.6.0(ai@6.0.193(zod@4.4.3))(better-sqlite3@12.10.0) + '@objectstack/formula': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/objectql': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/observability': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-approvals': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-audit': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-auth': 7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@objectstack/plugin-email': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-hono-server': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-mcp-server': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-org-scoping': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-reports': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-security': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-sharing': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-trigger-record-change': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-trigger-schedule': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-webhooks': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/rest': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/runtime': 7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@objectstack/service-ai': 7.6.0(@ai-sdk/gateway@3.0.121(zod@4.4.3)) + '@objectstack/service-analytics': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-automation': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-cache': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-datasource': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-feed': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-job': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-messaging': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-package': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-queue': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-realtime': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-settings': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-storage': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.4.3)) '@oclif/core': 4.11.4 bundle-require: 5.1.0(esbuild@0.28.0) chalk: 5.6.2 @@ -10657,7 +10653,6 @@ snapshots: - '@cloudflare/workers-types' - '@lynx-js/react' - '@mongodb-js/zstd' - - '@objectstack/embedder-openai' - '@opentelemetry/api' - '@prisma/client' - '@sveltejs/kit' @@ -10694,65 +10689,65 @@ snapshots: - vitest - vue - '@objectstack/client-react@7.5.0(ai@6.0.193(zod@4.3.6))(react@19.1.0)': + '@objectstack/client-react@7.6.0(ai@6.0.193(zod@4.3.6))(react@19.1.0)': dependencies: - '@objectstack/client': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/client': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) react: 19.1.0 transitivePeerDependencies: - ai - '@objectstack/client@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/client@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/client@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/client@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/console@7.5.0': {} + '@objectstack/console@7.6.0': {} - '@objectstack/core@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/core@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) zod: 4.4.3 transitivePeerDependencies: - ai - '@objectstack/core@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/core@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) zod: 4.4.3 transitivePeerDependencies: - ai - '@objectstack/driver-memory@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/driver-memory@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) mingo: 7.2.1 transitivePeerDependencies: - ai - '@objectstack/driver-memory@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/driver-memory@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) mingo: 7.2.1 transitivePeerDependencies: - ai - '@objectstack/driver-mongodb@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/driver-mongodb@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) mongodb: 7.2.0 nanoid: 5.1.11 transitivePeerDependencies: @@ -10765,10 +10760,10 @@ snapshots: - snappy - socks - '@objectstack/driver-mongodb@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/driver-mongodb@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) mongodb: 7.2.0 nanoid: 5.1.11 transitivePeerDependencies: @@ -10781,10 +10776,10 @@ snapshots: - snappy - socks - '@objectstack/driver-sql@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/driver-sql@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) knex: 3.2.10(better-sqlite3@12.10.0) nanoid: 5.1.11 optionalDependencies: @@ -10796,10 +10791,10 @@ snapshots: - pg-query-stream - supports-color - '@objectstack/driver-sql@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/driver-sql@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) knex: 3.2.10(better-sqlite3@12.10.0) nanoid: 5.1.11 optionalDependencies: @@ -10811,11 +10806,11 @@ snapshots: - pg-query-stream - supports-color - '@objectstack/driver-sqlite-wasm@7.5.0(ai@6.0.193(zod@4.3.6))(better-sqlite3@12.10.0)': + '@objectstack/driver-sqlite-wasm@7.6.0(ai@6.0.193(zod@4.3.6))(better-sqlite3@12.10.0)': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/driver-sql': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/driver-sql': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) knex: 3.2.10(better-sqlite3@12.10.0) nanoid: 5.1.11 sql.js: 1.14.1 @@ -10831,11 +10826,11 @@ snapshots: - supports-color - tedious - '@objectstack/driver-sqlite-wasm@7.5.0(ai@6.0.193(zod@4.4.3))(better-sqlite3@12.10.0)': + '@objectstack/driver-sqlite-wasm@7.6.0(ai@6.0.193(zod@4.4.3))(better-sqlite3@12.10.0)': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/driver-sql': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/driver-sql': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) knex: 3.2.10(better-sqlite3@12.10.0) nanoid: 5.1.11 sql.js: 1.14.1 @@ -10851,39 +10846,39 @@ snapshots: - supports-color - tedious - '@objectstack/formula@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/formula@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: '@marcbachmann/cel-js': 7.6.1 - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/formula@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/formula@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: '@marcbachmann/cel-js': 7.6.1 - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/metadata-core@7.5.0': + '@objectstack/metadata-core@7.6.0': dependencies: zod: 4.4.3 - '@objectstack/metadata-fs@7.5.0': + '@objectstack/metadata-fs@7.6.0': dependencies: - '@objectstack/metadata-core': 7.5.0 + '@objectstack/metadata-core': 7.6.0 chokidar: 5.0.0 transitivePeerDependencies: - vitest - '@objectstack/metadata@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/metadata@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/metadata-core': 7.5.0 - '@objectstack/metadata-fs': 7.5.0 - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/metadata-core': 7.6.0 + '@objectstack/metadata-fs': 7.6.0 + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.3.6)) chokidar: 5.0.0 glob: 13.0.6 js-yaml: 4.2.0 @@ -10892,14 +10887,14 @@ snapshots: - ai - vitest - '@objectstack/metadata@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/metadata@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/metadata-core': 7.5.0 - '@objectstack/metadata-fs': 7.5.0 - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/metadata-core': 7.6.0 + '@objectstack/metadata-fs': 7.6.0 + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.4.3)) chokidar: 5.0.0 glob: 13.0.6 js-yaml: 4.2.0 @@ -10908,101 +10903,103 @@ snapshots: - ai - vitest - '@objectstack/objectql@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/objectql@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/formula': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/metadata-core': 7.5.0 - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/formula': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/metadata-core': 7.6.0 + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.3.6)) + ajv: 8.20.0 zod: 4.4.3 transitivePeerDependencies: - ai - vitest - '@objectstack/objectql@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/objectql@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/formula': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/metadata-core': 7.5.0 - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/formula': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/metadata-core': 7.6.0 + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.4.3)) + ajv: 8.20.0 zod: 4.4.3 transitivePeerDependencies: - ai - vitest - '@objectstack/observability@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/observability@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/observability@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/observability@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/platform-objects@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/platform-objects@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/platform-objects@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/platform-objects@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/plugin-approvals@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/plugin-approvals@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/formula': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/metadata-core': 7.5.0 - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/formula': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/metadata-core': 7.6.0 + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - vitest - '@objectstack/plugin-approvals@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/plugin-approvals@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/formula': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/metadata-core': 7.5.0 - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/formula': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/metadata-core': 7.6.0 + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - vitest - '@objectstack/plugin-audit@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/plugin-audit@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/plugin-audit@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/plugin-audit@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/plugin-auth@7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@objectstack/plugin-auth@7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@better-auth/core': 1.6.13(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.1.3)(kysely@0.29.2)(nanostores@1.3.0) '@better-auth/oauth-provider': 1.6.13(@better-auth/core@1.6.13(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.1.3)(kysely@0.29.2)(nanostores@1.3.0))(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(better-auth@1.6.13(@opentelemetry/api@1.9.1)(better-sqlite3@12.10.0)(mongodb@7.2.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(better-call@1.3.5(zod@4.3.6)) '@noble/hashes': 2.2.0 - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.3.6)) better-auth: 1.6.13(@opentelemetry/api@1.9.1)(better-sqlite3@12.10.0)(mongodb@7.2.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@better-auth/utils' @@ -11034,15 +11031,15 @@ snapshots: - vitest - vue - '@objectstack/plugin-auth@7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@objectstack/plugin-auth@7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@better-auth/core': 1.6.13(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.1.3)(kysely@0.29.2)(nanostores@1.3.0) '@better-auth/oauth-provider': 1.6.13(@better-auth/core@1.6.13(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.1.3)(kysely@0.29.2)(nanostores@1.3.0))(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(better-auth@1.6.13(@opentelemetry/api@1.9.1)(better-sqlite3@12.10.0)(mongodb@7.2.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(better-call@1.3.5(zod@4.3.6)) '@noble/hashes': 2.2.0 - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.4.3)) better-auth: 1.6.13(@opentelemetry/api@1.9.1)(better-sqlite3@12.10.0)(mongodb@7.2.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@better-auth/utils' @@ -11074,222 +11071,218 @@ snapshots: - vitest - vue - '@objectstack/plugin-email@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/plugin-email@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/plugin-email@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/plugin-email@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/plugin-hono-server@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/plugin-hono-server@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: '@hono/node-server': 2.0.4(hono@4.12.23) - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.3.6)) hono: 4.12.23 transitivePeerDependencies: - ai - '@objectstack/plugin-hono-server@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/plugin-hono-server@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: '@hono/node-server': 2.0.4(hono@4.12.23) - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.4.3)) hono: 4.12.23 transitivePeerDependencies: - ai - '@objectstack/plugin-mcp-server@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/plugin-mcp-server@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: '@modelcontextprotocol/sdk': 1.29.0(zod@4.4.3) - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.3.6)) zod: 4.4.3 transitivePeerDependencies: - '@cfworker/json-schema' - ai - supports-color - '@objectstack/plugin-mcp-server@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/plugin-mcp-server@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: '@modelcontextprotocol/sdk': 1.29.0(zod@4.4.3) - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.4.3)) zod: 4.4.3 transitivePeerDependencies: - '@cfworker/json-schema' - ai - supports-color - '@objectstack/plugin-org-scoping@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/plugin-org-scoping@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/plugin-org-scoping@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/plugin-org-scoping@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/plugin-reports@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/plugin-reports@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/plugin-reports@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/plugin-reports@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/plugin-security@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/plugin-security@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/plugin-security@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/plugin-security@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/plugin-sharing@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/plugin-sharing@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/objectql': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/objectql': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - vitest - '@objectstack/plugin-sharing@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/plugin-sharing@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/objectql': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/objectql': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - vitest - '@objectstack/plugin-trigger-record-change@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/plugin-trigger-record-change@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/plugin-trigger-record-change@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/plugin-trigger-record-change@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/plugin-trigger-schedule@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/plugin-trigger-schedule@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/plugin-trigger-schedule@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/plugin-trigger-schedule@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/plugin-webhooks@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/plugin-webhooks@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-cluster': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-messaging': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/plugin-webhooks@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/plugin-webhooks@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-cluster': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-messaging': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/rest@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/rest@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-package': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-package': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) zod: 4.4.3 transitivePeerDependencies: - ai - '@objectstack/rest@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/rest@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-package': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-package': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) zod: 4.4.3 transitivePeerDependencies: - ai - '@objectstack/runtime@7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/driver-memory': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/driver-sql': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/driver-sqlite-wasm': 7.5.0(ai@6.0.193(zod@4.3.6))(better-sqlite3@12.10.0) - '@objectstack/formula': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/metadata': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/objectql': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/observability': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-auth': 7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@objectstack/plugin-org-scoping': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/plugin-security': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/rest': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-cluster': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/service-i18n': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/runtime@7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/driver-memory': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/driver-sql': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/driver-sqlite-wasm': 7.6.0(ai@6.0.193(zod@4.3.6))(better-sqlite3@12.10.0) + '@objectstack/formula': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/metadata': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/objectql': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/observability': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-auth': 7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.3.6))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@objectstack/plugin-org-scoping': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/plugin-security': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/rest': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-cluster': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/service-i18n': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.3.6)) quickjs-emscripten: 0.32.0 zod: 4.4.3 optionalDependencies: - '@objectstack/driver-mongodb': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/driver-mongodb': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - '@aws-sdk/credential-providers' - '@better-auth/utils' @@ -11333,28 +11326,28 @@ snapshots: - vitest - vue - '@objectstack/runtime@7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/driver-memory': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/driver-sql': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/driver-sqlite-wasm': 7.5.0(ai@6.0.193(zod@4.4.3))(better-sqlite3@12.10.0) - '@objectstack/formula': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/metadata': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/objectql': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/observability': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-auth': 7.5.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@objectstack/plugin-org-scoping': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/plugin-security': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/rest': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-cluster': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/service-i18n': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/runtime@7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/driver-memory': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/driver-sql': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/driver-sqlite-wasm': 7.6.0(ai@6.0.193(zod@4.4.3))(better-sqlite3@12.10.0) + '@objectstack/formula': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/metadata': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/objectql': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/observability': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-auth': 7.6.0(@better-auth/utils@0.4.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(ai@6.0.193(zod@4.4.3))(better-call@1.3.5(zod@4.3.6))(better-sqlite3@12.10.0)(jose@6.1.3)(kysely@0.29.2)(mongodb@7.2.0)(nanostores@1.3.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@objectstack/plugin-org-scoping': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/plugin-security': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/rest': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-cluster': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/service-i18n': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.4.3)) quickjs-emscripten: 0.32.0 zod: 4.4.3 optionalDependencies: - '@objectstack/driver-mongodb': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/driver-mongodb': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - '@aws-sdk/credential-providers' - '@better-auth/utils' @@ -11398,254 +11391,255 @@ snapshots: - vitest - vue - '@objectstack/service-ai@7.5.0(@ai-sdk/gateway@3.0.121(zod@4.4.3))': + '@objectstack/service-ai@7.6.0(@ai-sdk/gateway@3.0.121(zod@4.4.3))': dependencies: '@ai-sdk/provider': 3.0.10 - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/formula': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.4.3)) ai: 6.0.193(zod@4.4.3) zod: 4.4.3 optionalDependencies: '@ai-sdk/gateway': 3.0.121(zod@4.4.3) - '@objectstack/service-analytics@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-analytics@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-analytics@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-analytics@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/service-automation@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-automation@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/formula': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/formula': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-automation@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-automation@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/formula': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/formula': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/service-cache@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-cache@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/observability': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/observability': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-cache@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-cache@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/observability': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/observability': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/service-cluster@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-cluster@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-cluster@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-cluster@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/service-external-datasource@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-datasource@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-external-datasource@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-datasource@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/service-feed@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-feed@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-feed@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-feed@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/service-i18n@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-i18n@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-i18n@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-i18n@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/service-job@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-job@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) croner: 10.0.1 transitivePeerDependencies: - ai - '@objectstack/service-job@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-job@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) croner: 10.0.1 transitivePeerDependencies: - ai - '@objectstack/service-messaging@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-messaging@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-messaging@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-messaging@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/service-package@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-package@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-package@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-package@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/service-queue@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-queue@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-queue@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-queue@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/service-realtime@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-realtime@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-realtime@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-realtime@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/service-settings@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-settings@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: '@noble/ciphers': 2.2.0 - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-settings@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-settings@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: '@noble/ciphers': 2.2.0 - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/platform-objects': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/types': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/platform-objects': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/types': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/service-storage@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/service-storage@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/observability': 7.5.0(ai@6.0.193(zod@4.3.6)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/observability': 7.6.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/service-storage@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/service-storage@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/core': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/observability': 7.5.0(ai@6.0.193(zod@4.4.3)) - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/core': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/observability': 7.6.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai - '@objectstack/spec@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/spec@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: zod: 4.4.3 optionalDependencies: ai: 6.0.193(zod@4.3.6) - '@objectstack/spec@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/spec@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: zod: 4.4.3 optionalDependencies: ai: 6.0.193(zod@4.4.3) - '@objectstack/types@7.5.0(ai@6.0.193(zod@4.3.6))': + '@objectstack/types@7.6.0(ai@6.0.193(zod@4.3.6))': dependencies: - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.3.6)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.3.6)) transitivePeerDependencies: - ai - '@objectstack/types@7.5.0(ai@6.0.193(zod@4.4.3))': + '@objectstack/types@7.6.0(ai@6.0.193(zod@4.4.3))': dependencies: - '@objectstack/spec': 7.5.0(ai@6.0.193(zod@4.4.3)) + '@objectstack/spec': 7.6.0(ai@6.0.193(zod@4.4.3)) transitivePeerDependencies: - ai