diff --git a/apps/server/src/api/v2/electric-shape/_helpers/electricHandler.ts b/apps/server/src/api/v2/electric-shape/_helpers/electricHandler.ts index 15357c476..79a7bbbd3 100644 --- a/apps/server/src/api/v2/electric-shape/_helpers/electricHandler.ts +++ b/apps/server/src/api/v2/electric-shape/_helpers/electricHandler.ts @@ -24,4 +24,3 @@ export const createProxiedResponse = async (url: URL): Promise => { headers, }); }; - diff --git a/apps/server/src/api/v2/electric-shape/index.ts b/apps/server/src/api/v2/electric-shape/index.ts index 9542349a6..0e5598113 100644 --- a/apps/server/src/api/v2/electric-shape/index.ts +++ b/apps/server/src/api/v2/electric-shape/index.ts @@ -45,6 +45,12 @@ const app = new Hono() return response; } catch (_error) { + // If it's already an HTTP error (like 403/404), re-throw it + if (_error && typeof _error === 'object' && 'getResponse' in _error) { + throw _error; + } + + // Otherwise, log and throw generic error console.error('Error fetching data from Electric Shape', _error); throw errorResponse('Error fetching data from Electric Shape', 500); } diff --git a/apps/server/src/api/v2/electric-shape/report-files.ts b/apps/server/src/api/v2/electric-shape/report-files.ts index c5a9a98ab..30e7c7231 100644 --- a/apps/server/src/api/v2/electric-shape/report-files.ts +++ b/apps/server/src/api/v2/electric-shape/report-files.ts @@ -1,3 +1,5 @@ +import { type WorkspaceSharing, hasAssetPermission } from '@buster/access-controls'; +import { and, db, eq, isNull, reportFiles } from '@buster/database'; import { markdownToPlatejs } from '@buster/server-utils/report'; import type { Context } from 'hono'; import { errorResponse } from '../../../utils/response'; @@ -102,27 +104,33 @@ export const reportFilesProxyRouter = async (url: URL, _userId: string, c: Conte throw errorResponse('Report ID (id) is required', 403); } - // TODO: Implement proper access control for reports - // Should check: - // 1. If user created the report (createdBy === userId) - // 2. If user is in the same organization as the report - // 3. If workspace sharing is enabled ('can_view' or 'can_edit') - // 4. If report has individual permissions for the user - // 5. If report is publicly accessible - // - // const userHasAccess = await canUserAccessReport({ - // userId: c.get('supabaseUser').id, - // reportId, - // }); - // - // if (!userHasAccess) { - // throw errorResponse('You do not have access to this report', 403); - // } + // Get report metadata for access control + const reportData = await db + .select({ + organizationId: reportFiles.organizationId, + workspaceSharing: reportFiles.workspaceSharing, + }) + .from(reportFiles) + .where(and(eq(reportFiles.id, reportId), isNull(reportFiles.deletedAt))) + .limit(1); - // For now, allow access with a warning - console.warn( - `TODO: Implement access control for report ${reportId} for user ${c.get('supabaseUser').id}` - ); + if (!reportData[0]) { + throw errorResponse('Report not found', 404); + } + + // Check access using existing asset permission system + const hasAccess = await hasAssetPermission({ + userId: c.get('supabaseUser').id, + assetId: reportId, + assetType: 'report_file', + requiredRole: 'can_view', + organizationId: reportData[0].organizationId, + workspaceSharing: reportData[0].workspaceSharing as WorkspaceSharing, + }); + + if (!hasAccess) { + throw errorResponse('You do not have access to this report', 403); + } // Fetch the response and transform it const response = await createProxiedResponse(url); diff --git a/apps/trigger/src/tasks/analyst-agent-task/analyst-agent-task.ts b/apps/trigger/src/tasks/analyst-agent-task/analyst-agent-task.ts index d572a84bf..55dc7bdc1 100644 --- a/apps/trigger/src/tasks/analyst-agent-task/analyst-agent-task.ts +++ b/apps/trigger/src/tasks/analyst-agent-task/analyst-agent-task.ts @@ -293,8 +293,12 @@ export const analystAgentTask: ReturnType< const datasetsPromise = messageContextPromise.then(async (context) => { try { // Using the existing access control function - const datasets = await getPermissionedDatasets(context.userId, 0, 1000); - return datasets; + const datasets = await getPermissionedDatasets({ + userId: context.userId, + page: 0, + pageSize: 1000, + }); + return datasets.datasets; } catch (error) { logger.error('Failed to fetch datasets for user', { userId: context.userId, diff --git a/packages/access-controls/src/assets/cache.ts b/packages/access-controls/src/assets/cache.ts index 70f4c8e6e..924123114 100644 --- a/packages/access-controls/src/assets/cache.ts +++ b/packages/access-controls/src/assets/cache.ts @@ -8,14 +8,14 @@ type CacheKey = string; // Permission cache - stores the full permission result const permissionCache = new LRUCache({ max: 10000, // Maximum 10k entries - ttl: 30 * 1000, // 30 seconds + ttl: 10 * 1000, // 10 seconds updateAgeOnGet: true, // Refresh TTL on access }); // Cascading permission cache - stores boolean results for cascading checks const cascadingCache = new LRUCache({ max: 5000, // Maximum 5k entries - ttl: 30 * 1000, // 30 seconds + ttl: 10 * 1000, // 10 seconds updateAgeOnGet: true, }); diff --git a/packages/access-controls/src/chats-cached.ts b/packages/access-controls/src/chats-cached.ts index 2155fbac0..7716fcc8d 100644 --- a/packages/access-controls/src/chats-cached.ts +++ b/packages/access-controls/src/chats-cached.ts @@ -4,7 +4,7 @@ import { canUserAccessChat } from './chats'; // Cache configuration const cache = new LRUCache({ max: 10000, // Maximum 10k entries - ttl: 30 * 1000, // 30 seconds + ttl: 10 * 1000, // 10 seconds updateAgeOnGet: true, // Refresh TTL on access }); @@ -14,7 +14,7 @@ let cacheMisses = 0; /** * Cached version of canUserAccessChat - * Caches the boolean result for userId:chatId for 30 seconds + * Caches the boolean result for userId:chatId for 10 seconds * TTL is refreshed on each access */ export async function canUserAccessChatCached({ diff --git a/packages/access-controls/src/datasets/cache.ts b/packages/access-controls/src/datasets/cache.ts index b963b5ef9..63ac310b3 100644 --- a/packages/access-controls/src/datasets/cache.ts +++ b/packages/access-controls/src/datasets/cache.ts @@ -10,7 +10,7 @@ const datasetCache = new LRUCache< } >({ max: 1000, // Maximum 1k entries - ttl: 30 * 1000, // 30 seconds + ttl: 10 * 1000, // 10 seconds updateAgeOnGet: true, }); @@ -23,7 +23,7 @@ interface CachedDatasetAccess { const accessCache = new LRUCache({ max: 5000, // Maximum 5k entries - ttl: 30 * 1000, // 30 seconds + ttl: 10 * 1000, // 10 seconds updateAgeOnGet: true, }); diff --git a/packages/ai/src/agents/analyst-agent/analyst-agent.ts b/packages/ai/src/agents/analyst-agent/analyst-agent.ts index 9733a8c8c..473ae71fe 100644 --- a/packages/ai/src/agents/analyst-agent/analyst-agent.ts +++ b/packages/ai/src/agents/analyst-agent/analyst-agent.ts @@ -63,8 +63,8 @@ export function createAnalystAgent(analystAgentOptions: AnalystAgentOptions) { // Create second system message with datasets information const datasetsContent = datasets - .filter((d) => d.ymlFile) - .map((d) => d.ymlFile) + .filter((d) => d.ymlContent) + .map((d) => d.ymlContent) .join('\n\n'); const datasetsSystemMessage = { diff --git a/packages/ai/src/agents/think-and-prep-agent/think-and-prep-agent.ts b/packages/ai/src/agents/think-and-prep-agent/think-and-prep-agent.ts index 5ae819f6a..1b7a4ba69 100644 --- a/packages/ai/src/agents/think-and-prep-agent/think-and-prep-agent.ts +++ b/packages/ai/src/agents/think-and-prep-agent/think-and-prep-agent.ts @@ -83,8 +83,8 @@ export function createThinkAndPrepAgent(thinkAndPrepAgentSchema: ThinkAndPrepAge // Create second system message with datasets information const datasetsContent = datasets - .filter((d) => d.ymlFile) - .map((d) => d.ymlFile) + .filter((d) => d.ymlContent) + .map((d) => d.ymlContent) .join('\n\n'); const datasetsSystemMessage = { diff --git a/packages/ai/src/tools/visualization-tools/metrics/create-metrics-tool/create-metrics-tool.ts b/packages/ai/src/tools/visualization-tools/metrics/create-metrics-tool/create-metrics-tool.ts index d47df1135..38c01c3df 100644 --- a/packages/ai/src/tools/visualization-tools/metrics/create-metrics-tool/create-metrics-tool.ts +++ b/packages/ai/src/tools/visualization-tools/metrics/create-metrics-tool/create-metrics-tool.ts @@ -1,11 +1,11 @@ import { StatusSchema } from '@buster/server-shared/chats'; import { tool } from 'ai'; import { z } from 'zod'; -import { getMetricToolDescription } from '../helpers/get-metric-tool-description'; import { createCreateMetricsDelta } from './create-metrics-delta'; import { createCreateMetricsExecute } from './create-metrics-execute'; import { createCreateMetricsFinish } from './create-metrics-finish'; import { createCreateMetricsStart } from './create-metrics-start'; +import METRIC_TOOL_DESCRIPTION from './metric-tool-description.txt'; export const CREATE_METRICS_TOOL_NAME = 'createMetrics'; @@ -102,7 +102,7 @@ export function createCreateMetricsTool(context: CreateMetricsContext) { const onInputAvailable = createCreateMetricsFinish(context, state); return tool({ - description: getMetricToolDescription(), + description: METRIC_TOOL_DESCRIPTION, inputSchema: CreateMetricsInputSchema, outputSchema: CreateMetricsOutputSchema, execute, diff --git a/packages/ai/src/tools/visualization-tools/metrics/helpers/get-metric-tool-description.test.ts b/packages/ai/src/tools/visualization-tools/metrics/helpers/get-metric-tool-description.test.ts deleted file mode 100644 index d91290f9e..000000000 --- a/packages/ai/src/tools/visualization-tools/metrics/helpers/get-metric-tool-description.test.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { describe, expect, it } from 'vitest'; -import { getMetricToolDescription } from './get-metric-tool-description'; -import metricToolDescription from './metric-tool-description.txt'; - -describe('getMetricToolDescription', () => { - it('should return the metric tool description from the .txt file', () => { - const description = getMetricToolDescription(); - - // Verify it returns a non-empty string - expect(typeof description).toBe('string'); - expect(description.length).toBeGreaterThan(0); - - // Verify it contains the expected content from the actual .txt file - expect(description).toContain('Creates metric configuration files with YAML content'); - expect(description).toContain('COMPLETE METRIC YAML SCHEMA SPECIFICATION'); - expect(description).toContain('selectedChartType'); - expect(description).toContain('columnLabelFormats'); - - // Verify it has the full schema documentation - expect(description).toContain('# METRIC CONFIGURATION - YML STRUCTURE'); - expect(description).toContain('bar, line, scatter, pie, combo, metric, table'); - }); - - it('should have no template variables in the .txt file', () => { - const content = metricToolDescription; - - // Find any template variables in the file - const templateVariablePattern = /\{\{([^}]+)\}\}/g; - const foundVariables = new Set(); - - const matches = Array.from(content.matchAll(templateVariablePattern)); - for (const match of matches) { - if (match[1]) { - foundVariables.add(match[1]); - } - } - - // Should have no template variables since this tool just returns the raw content - expect(foundVariables.size).toBe(0); - - // If any variables are found, list them for debugging - if (foundVariables.size > 0) { - console.error('Found unexpected template variables:', Array.from(foundVariables)); - } - }); -}); diff --git a/packages/ai/src/tools/visualization-tools/metrics/helpers/get-metric-tool-description.ts b/packages/ai/src/tools/visualization-tools/metrics/helpers/get-metric-tool-description.ts deleted file mode 100644 index 6c6bec53e..000000000 --- a/packages/ai/src/tools/visualization-tools/metrics/helpers/get-metric-tool-description.ts +++ /dev/null @@ -1,8 +0,0 @@ -import metricToolDescription from './metric-tool-description.txt'; - -/** - * Export the template function for use in metric tool - */ -export const getMetricToolDescription = (): string => { - return metricToolDescription; -}; diff --git a/packages/ai/src/tools/visualization-tools/metrics/helpers/metric-tool-description.txt b/packages/ai/src/tools/visualization-tools/metrics/helpers/metric-tool-description.txt index bcfdf09d0..608f3ac87 100644 --- a/packages/ai/src/tools/visualization-tools/metrics/helpers/metric-tool-description.txt +++ b/packages/ai/src/tools/visualization-tools/metrics/helpers/metric-tool-description.txt @@ -46,6 +46,69 @@ Only utilize the required/default fields unless the user specifically requests t # 3. Metric name, timeframe, or description CANNOT contain `:` # ------------------------------------- +# --- COLUMN LABEL FORMATS --- +# columnLabelFormats is REQUIRED for ALL columns in your SQL result. +# This section defines how each column should be formatted and displayed. +# +# REQUIRED fields for each column: +# - columnType: Must be one of: number, string, date +# - style: Must match columnType: +# - For number: currency, percent, number +# - For string: string +# - For date: date +# - replaceMissingDataWith: Value when data is missing (0 for numbers, null for others) +# - numberSeparatorStyle: Either ',' or null (not "null" in quotes) +# +# OPTIONAL fields: +# - displayName: Custom display name for the column +# - multiplier: Value to multiply numbers by (default: 1) +# - For percentages from database columns: use 1 +# - For calculated percentages not already multiplied by 100: use 100 +# - minimumFractionDigits: Min decimal places to show +# - maximumFractionDigits: Max decimal places to show +# - prefix: Text to show before the value +# - suffix: Text to show after the value +# - compactNumbers: Show as 1K, 1M, etc. (boolean) +# - currency: Currency code for currency style (e.g., USD, EUR) +# - dateFormat: Format string for dates (Day.js compatible) +# - year: 'YYYY' (e.g., 2025) +# - quarter: '[Q]Q YYYY' (e.g., Q1 2025) +# - month: 'MMM YYYY' (e.g., Jan 2025) +# - week/day: 'MMM D, YYYY' (e.g., Jan 25, 2025) +# - useRelativeTime: Show dates as "2 days ago" (boolean) +# - isUtc: Interpret dates as UTC (boolean) +# - convertNumberTo: Convert numbers to time units (day_of_week, month_of_year, quarter) +# +# Example columnLabelFormats: +# columnLabelFormats: +# total_sales: +# columnType: number +# style: currency +# replaceMissingDataWith: 0 +# numberSeparatorStyle: ',' +# currency: USD +# displayName: Total Sales +# order_date: +# columnType: date +# style: date +# replaceMissingDataWith: null +# numberSeparatorStyle: null +# dateFormat: MMM D, YYYY +# product_name: +# columnType: string +# style: string +# replaceMissingDataWith: null +# numberSeparatorStyle: null +# profit_margin: +# columnType: number +# style: percent +# replaceMissingDataWith: 0 +# numberSeparatorStyle: ',' +# multiplier: 100 # if calculated and not already multiplied +# minimumFractionDigits: 1 +# maximumFractionDigits: 2 +# ------------------------------------- + # --- FORMAL SCHEMA --- (Used for validation, reflects rules above) type: object name: Metric Configuration Schema diff --git a/packages/ai/src/tools/visualization-tools/metrics/modify-metrics-tool/modify-metrics-tool.ts b/packages/ai/src/tools/visualization-tools/metrics/modify-metrics-tool/modify-metrics-tool.ts index 9e0011d06..0d8e62404 100644 --- a/packages/ai/src/tools/visualization-tools/metrics/modify-metrics-tool/modify-metrics-tool.ts +++ b/packages/ai/src/tools/visualization-tools/metrics/modify-metrics-tool/modify-metrics-tool.ts @@ -1,7 +1,7 @@ import { StatusSchema } from '@buster/server-shared/chats'; import { tool } from 'ai'; import { z } from 'zod'; -import { getMetricToolDescription } from '../helpers/get-metric-tool-description'; +import METRIC_TOOL_DESCRIPTION from './metric-tool-description.txt'; import { createModifyMetricsDelta } from './modify-metrics-delta'; import { createModifyMetricsExecute } from './modify-metrics-execute'; import { createModifyMetricsFinish } from './modify-metrics-finish'; @@ -101,7 +101,7 @@ export function createModifyMetricsTool(context: ModifyMetricsContext) { // Build the description with the metric schema const description = `Updates existing metric configuration files with new YAML content. Provide the complete YAML content for each metric, replacing the entire existing file. This tool is ideal for bulk modifications when you need to update multiple metrics simultaneously. The system will preserve version history and perform all necessary validations on the new content. For each metric, you need its UUID and the complete updated YAML content. **Prefer modifying metrics in bulk using this tool rather than one by one.** -${getMetricToolDescription()}`; +${METRIC_TOOL_DESCRIPTION}`; return tool({ description, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b484d2670..58de6044d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -286,11 +286,7 @@ importers: version: 5.0.5(zod@3.25.76) braintrust: specifier: 'catalog:' -<<<<<<< HEAD - version: 0.2.4(@aws-sdk/credential-provider-web-identity@3.840.0)(zod@3.25.76) -======= - version: 0.0.209(@aws-sdk/credential-provider-web-identity@3.864.0)(openai@4.104.0(ws@8.18.3)(zod@3.25.1))(react@18.3.1)(sswr@2.2.0(svelte@5.34.9))(svelte@5.34.9)(vue@3.5.17(typescript@5.8.3))(zod@3.25.1) ->>>>>>> origin/staging + version: 0.2.4(@aws-sdk/credential-provider-web-identity@3.864.0)(zod@3.25.76) drizzle-orm: specifier: 'catalog:' version: 0.44.2(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(mysql2@3.14.1)(pg@8.16.3)(postgres@3.4.7) @@ -357,13 +353,13 @@ importers: version: 49.2.4(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) '@platejs/autoformat': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/basic-nodes': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/basic-styles': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/callout': specifier: ^49.0.0 version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -381,7 +377,7 @@ importers: version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/date': specifier: 'catalog:' - version: 49.0.2(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.2(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/dnd': specifier: ^49.2.10 version: 49.2.10(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dnd-html5-backend@16.0.1)(react-dnd@16.0.1(@types/node@24.0.10)(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -393,37 +389,37 @@ importers: version: 49.0.0(@emoji-mart/data@1.2.1)(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/floating': specifier: ^49.0.0 - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/indent': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/juice': specifier: ^49.0.0 version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/layout': specifier: 'catalog:' - version: 49.2.1(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.2.1(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/link': specifier: 'catalog:' - version: 49.1.1(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.1.1(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/list': specifier: 'catalog:' - version: 49.2.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.2.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/markdown': specifier: 'catalog:' - version: 49.2.1(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) + version: 49.2.1(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) '@platejs/math': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/media': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/mention': specifier: ^49.0.0 version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/resizable': specifier: ^49.0.0 - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/selection': specifier: ^49.2.4 version: 49.2.4(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -435,13 +431,13 @@ importers: version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/table': specifier: 'catalog:' - version: 49.1.13(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.1.13(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/toc': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/toggle': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@posthog/nextjs-config': specifier: ^1.1.2 version: 1.1.2(next@14.2.30(@babel/core@7.28.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.54.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.90.0)) @@ -925,11 +921,7 @@ importers: version: 0.0.130(ws@8.18.3) braintrust: specifier: 'catalog:' -<<<<<<< HEAD - version: 0.2.4(@aws-sdk/credential-provider-web-identity@3.840.0)(zod@3.25.76) -======= - version: 0.0.209(@aws-sdk/credential-provider-web-identity@3.864.0)(openai@4.104.0(ws@8.18.3)(zod@3.25.1))(react@18.3.1)(sswr@2.2.0(svelte@5.34.9))(svelte@5.34.9)(vue@3.5.17(typescript@5.8.3))(zod@3.25.1) ->>>>>>> origin/staging + version: 0.2.4(@aws-sdk/credential-provider-web-identity@3.864.0)(zod@3.25.76) drizzle-orm: specifier: 'catalog:' version: 0.44.2(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(mysql2@3.14.1)(pg@8.16.3)(postgres@3.4.7) @@ -1105,46 +1097,46 @@ importers: version: link:../vitest-config '@platejs/autoformat': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/basic-nodes': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/basic-styles': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/date': specifier: 'catalog:' - version: 49.0.2(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.2(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/indent': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/layout': specifier: 'catalog:' - version: 49.2.1(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.2.1(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/link': specifier: 'catalog:' - version: 49.1.1(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.1.1(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/list': specifier: 'catalog:' - version: 49.2.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.2.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/markdown': specifier: 'catalog:' - version: 49.2.1(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) + version: 49.2.1(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) '@platejs/math': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/media': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/table': specifier: 'catalog:' - version: 49.1.13(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.1.13(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/toc': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@platejs/toggle': specifier: 'catalog:' - version: 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) platejs: specifier: 'catalog:' version: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) @@ -1397,17 +1389,10 @@ packages: resolution: {integrity: sha512-T5Rh72Rcq1xIaM8KkTr1Wpr7/WPCYO++KrM+/Em0rq2jxpjMMhj77ITpgH7eEmNxWmwIndTwqpgfmbpNfk7Gbw==} engines: {node: '>=18.0.0'} -<<<<<<< HEAD -======= '@aws-sdk/client-s3@3.864.0': resolution: {integrity: sha512-QGYi9bWliewxumsvbJLLyx9WC0a4DP4F+utygBcq0zwPxaM0xDfBspQvP1dsepi7mW5aAjZmJ2+Xb7X0EhzJ/g==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-sagemaker@3.843.0': - resolution: {integrity: sha512-03l299V90XKCShXkIGyfPnzJJh+RmcSIVVJVNR/j9ytOrAboXoRlBxcHRuInNP5AFl7kfjdlj+AqkkA6qi9zPw==} - engines: {node: '>=18.0.0'} - ->>>>>>> origin/staging '@aws-sdk/client-sso@3.840.0': resolution: {integrity: sha512-3Zp+FWN2hhmKdpS0Ragi5V2ZPsZNScE3jlbgoJjzjI/roHZqO+e3/+XFN4TlM0DsPKYJNp+1TAjmhxN6rOnfYA==} engines: {node: '>=18.0.0'} @@ -1420,17 +1405,10 @@ packages: resolution: {integrity: sha512-x3Zgb39tF1h2XpU+yA4OAAQlW6LVEfXNlSedSYJ7HGKXqA/E9h3rWQVpYfhXXVVsLdYXdNw5KBUkoAoruoZSZA==} engines: {node: '>=18.0.0'} -<<<<<<< HEAD -======= '@aws-sdk/core@3.864.0': resolution: {integrity: sha512-LFUREbobleHEln+Zf7IG83lAZwvHZG0stI7UU0CtwyuhQy5Yx0rKksHNOCmlM7MpTEbSCfntEhYi3jUaY5e5lg==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-cognito-identity@3.840.0': - resolution: {integrity: sha512-p1RaMVd6+6ruYjKsWRCZT/jWhrYfDKbXY+/ScIYTvcaOOf9ArMtVnhFk3egewrC7kPXFGRYhg2GPmxRotNYMng==} - engines: {node: '>=18.0.0'} - ->>>>>>> origin/staging '@aws-sdk/credential-provider-env@3.840.0': resolution: {integrity: sha512-EzF6VcJK7XvQ/G15AVEfJzN2mNXU8fcVpXo4bRyr1S6t2q5zx6UPH/XjDbn18xyUmOq01t+r8gG+TmHEVo18fA==} engines: {node: '>=18.0.0'} @@ -1483,17 +1461,10 @@ packages: resolution: {integrity: sha512-dpEeVXG8uNZSmVXReE4WP0lwoioX2gstk4RnUgrdUE3YaPq8A+hJiVAyc3h+cjDeIqfbsQbZm9qFetKC2LF9dQ==} engines: {node: '>=18.0.0'} -<<<<<<< HEAD -======= '@aws-sdk/credential-provider-web-identity@3.864.0': resolution: {integrity: sha512-nNcjPN4SYg8drLwqK0vgVeSvxeGQiD0FxOaT38mV2H8cu0C5NzpvA+14Xy+W6vT84dxgmJYKk71Cr5QL2Oz+rA==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-providers@3.840.0': - resolution: {integrity: sha512-+CxYdGd+uM4NZ9VUvFTU1c/H61qhDB4q362k8xKU+bz24g//LDQ5Mpwksv8OUD1en44v4fUwgZ4SthPZMs+eFQ==} - engines: {node: '>=18.0.0'} - ->>>>>>> origin/staging '@aws-sdk/ec2-metadata-service@3.840.0': resolution: {integrity: sha512-6P6yrFDbfb9REjANghra5kWogMZHbUYBvFX03fooLfpGR1dCpveyOVvIvedzkj4PHmooEaM072E+LJRiHIyBdg==} engines: {node: '>=18.0.0'} @@ -6392,7 +6363,6 @@ packages: bun@1.2.18: resolution: {integrity: sha512-OR+EpNckoJN4tHMVZPaTPxDj2RgpJgJwLruTIFYbO3bQMguLd0YrmkWKYqsiihcLgm2ehIjF/H1RLfZiRa7+qQ==} - cpu: [arm64, x64, aarch64] os: [darwin, linux, win32] hasBin: true @@ -12452,8 +12422,6 @@ snapshots: transitivePeerDependencies: - aws-crt -<<<<<<< HEAD -======= '@aws-sdk/client-s3@3.864.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 @@ -12517,54 +12485,6 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sagemaker@3.843.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.840.0 - '@aws-sdk/credential-provider-node': 3.840.0 - '@aws-sdk/middleware-host-header': 3.840.0 - '@aws-sdk/middleware-logger': 3.840.0 - '@aws-sdk/middleware-recursion-detection': 3.840.0 - '@aws-sdk/middleware-user-agent': 3.840.0 - '@aws-sdk/region-config-resolver': 3.840.0 - '@aws-sdk/types': 3.840.0 - '@aws-sdk/util-endpoints': 3.840.0 - '@aws-sdk/util-user-agent-browser': 3.840.0 - '@aws-sdk/util-user-agent-node': 3.840.0 - '@smithy/config-resolver': 4.1.4 - '@smithy/core': 3.7.1 - '@smithy/fetch-http-handler': 5.1.0 - '@smithy/hash-node': 4.0.4 - '@smithy/invalid-dependency': 4.0.4 - '@smithy/middleware-content-length': 4.0.4 - '@smithy/middleware-endpoint': 4.1.16 - '@smithy/middleware-retry': 4.1.14 - '@smithy/middleware-serde': 4.0.8 - '@smithy/middleware-stack': 4.0.4 - '@smithy/node-config-provider': 4.1.3 - '@smithy/node-http-handler': 4.1.0 - '@smithy/protocol-http': 5.1.2 - '@smithy/smithy-client': 4.4.8 - '@smithy/types': 4.3.1 - '@smithy/url-parser': 4.0.4 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.21 - '@smithy/util-defaults-mode-node': 4.0.21 - '@smithy/util-endpoints': 3.0.6 - '@smithy/util-middleware': 4.0.4 - '@smithy/util-retry': 4.0.6 - '@smithy/util-utf8': 4.0.0 - '@smithy/util-waiter': 4.0.6 - '@types/uuid': 9.0.8 - tslib: 2.8.1 - uuid: 9.0.1 - transitivePeerDependencies: - - aws-crt - ->>>>>>> origin/staging '@aws-sdk/client-sso@3.840.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 @@ -12669,8 +12589,6 @@ snapshots: fast-xml-parser: 4.4.1 tslib: 2.8.1 -<<<<<<< HEAD -======= '@aws-sdk/core@3.864.0': dependencies: '@aws-sdk/types': 3.862.0 @@ -12689,17 +12607,6 @@ snapshots: fast-xml-parser: 5.2.5 tslib: 2.8.1 - '@aws-sdk/credential-provider-cognito-identity@3.840.0': - dependencies: - '@aws-sdk/client-cognito-identity': 3.840.0 - '@aws-sdk/types': 3.840.0 - '@smithy/property-provider': 4.0.4 - '@smithy/types': 4.3.1 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - ->>>>>>> origin/staging '@aws-sdk/credential-provider-env@3.840.0': dependencies: '@aws-sdk/core': 3.840.0 @@ -12867,8 +12774,6 @@ snapshots: transitivePeerDependencies: - aws-crt -<<<<<<< HEAD -======= '@aws-sdk/credential-provider-web-identity@3.864.0': dependencies: '@aws-sdk/core': 3.864.0 @@ -12880,31 +12785,6 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-providers@3.840.0': - dependencies: - '@aws-sdk/client-cognito-identity': 3.840.0 - '@aws-sdk/core': 3.840.0 - '@aws-sdk/credential-provider-cognito-identity': 3.840.0 - '@aws-sdk/credential-provider-env': 3.840.0 - '@aws-sdk/credential-provider-http': 3.840.0 - '@aws-sdk/credential-provider-ini': 3.840.0 - '@aws-sdk/credential-provider-node': 3.840.0 - '@aws-sdk/credential-provider-process': 3.840.0 - '@aws-sdk/credential-provider-sso': 3.840.0 - '@aws-sdk/credential-provider-web-identity': 3.840.0 - '@aws-sdk/nested-clients': 3.840.0 - '@aws-sdk/types': 3.840.0 - '@smithy/config-resolver': 4.1.4 - '@smithy/core': 3.7.1 - '@smithy/credential-provider-imds': 4.0.6 - '@smithy/node-config-provider': 4.1.3 - '@smithy/property-provider': 4.0.4 - '@smithy/types': 4.3.1 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - ->>>>>>> origin/staging '@aws-sdk/ec2-metadata-service@3.840.0': dependencies: '@aws-sdk/types': 3.840.0 @@ -15376,7 +15256,7 @@ snapshots: '@platejs/ai@49.2.4(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)': dependencies: - '@platejs/markdown': 49.2.1(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) + '@platejs/markdown': 49.2.1(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) '@platejs/selection': 49.2.4(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) @@ -15386,20 +15266,20 @@ snapshots: - supports-color - typescript - '@platejs/autoformat@49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/autoformat@49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: lodash: 4.17.21 platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/basic-nodes@49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/basic-nodes@49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/basic-styles@49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/basic-styles@49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 @@ -15449,7 +15329,7 @@ snapshots: html-entities: 2.6.0 is-hotkey: 0.2.0 jotai: 2.8.4(@types/react@18.3.23)(react@18.3.1) - jotai-optics: 0.4.0(jotai@2.8.4(@types/react@18.3.23)(react@18.3.1))(optics-ts@2.4.1) + jotai-optics: 0.4.0(jotai@2.8.4(react@18.3.1))(optics-ts@2.4.1) jotai-x: 2.3.3(@types/react@18.3.23)(jotai@2.8.4(@types/react@18.3.23)(react@18.3.1))(react@18.3.1) lodash: 4.17.21 nanoid: 5.1.5 @@ -15460,7 +15340,7 @@ snapshots: slate-react: 0.117.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0) use-deep-compare: 1.3.0(react@18.3.1) zustand: 5.0.7(@types/react@18.3.23)(immer@10.1.1)(react@18.3.1)(use-sync-external-store@1.5.0(react@18.3.1)) - zustand-x: 6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(zustand@5.0.7(@types/react@18.3.23)(immer@10.1.1)(react@18.3.1)(use-sync-external-store@1.5.0(react@18.3.1))) + zustand-x: 6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(zustand@5.0.7(immer@10.1.1)(react@18.3.1)(use-sync-external-store@1.5.0(react@18.3.1))) transitivePeerDependencies: - '@types/react' - immer @@ -15470,7 +15350,7 @@ snapshots: - slate-dom - use-sync-external-store - '@platejs/date@49.0.2(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/date@49.0.2(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 @@ -15509,7 +15389,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/floating@49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/floating@49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/core': 1.7.2 '@floating-ui/react': 0.27.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -15517,7 +15397,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/indent@49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/indent@49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 @@ -15530,28 +15410,28 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/layout@49.2.1(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/layout@49.2.1(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/link@49.1.1(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/link@49.1.1(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@platejs/floating': 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@platejs/floating': 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/list@49.2.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/list@49.2.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@platejs/indent': 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@platejs/indent': 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 2.1.1 platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/markdown@49.2.1(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)': + '@platejs/markdown@49.2.1(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)': dependencies: marked: 15.0.12 mdast-util-math: 3.0.0 @@ -15568,14 +15448,14 @@ snapshots: - supports-color - typescript - '@platejs/math@49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/math@49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: katex: 0.16.22 platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/media@49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/media@49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: js-video-url-parser: 0.5.1 platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) @@ -15589,7 +15469,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/resizable@49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/resizable@49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 @@ -15625,23 +15505,23 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/table@49.1.13(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/table@49.1.13(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@platejs/resizable': 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@platejs/resizable': 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/toc@49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/toc@49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@platejs/toggle@49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@platejs/toggle@49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@platejs/indent': 49.0.0(platejs@49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@platejs/indent': 49.0.0(platejs@49.2.9(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 platejs: 49.2.9(@types/react@18.3.23)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(slate-dom@0.116.0(slate@0.117.0))(slate@0.117.0)(use-sync-external-store@1.5.0(react@18.3.1)) react: 18.3.1 @@ -18092,6 +17972,15 @@ snapshots: msw: 2.10.4(@types/node@20.19.4)(typescript@5.8.3) vite: 7.0.5(@types/node@20.19.4)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + '@vitest/mocker@3.2.4(msw@2.10.4(@types/node@24.0.10)(typescript@5.8.3))(vite@7.0.5(@types/node@20.19.4)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.10.4(@types/node@24.0.10)(typescript@5.8.3) + vite: 7.0.5(@types/node@20.19.4)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + '@vitest/mocker@3.2.4(msw@2.10.4(@types/node@24.0.10)(typescript@5.8.3))(vite@7.0.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@vitest/spy': 3.2.4 @@ -18130,7 +18019,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.14 tinyrainbow: 2.0.0 - vitest: 3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@24.0.10)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(msw@2.10.4(@types/node@24.0.10)(typescript@5.8.3))(sass@1.90.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@20.19.4)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(msw@2.10.4(@types/node@20.19.4)(typescript@5.8.3))(sass@1.90.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) '@vitest/utils@3.2.4': dependencies: @@ -18723,21 +18612,12 @@ snapshots: dependencies: fill-range: 7.1.1 -<<<<<<< HEAD - braintrust@0.2.4(@aws-sdk/credential-provider-web-identity@3.840.0)(zod@3.25.76): -======= - braintrust@0.0.209(@aws-sdk/credential-provider-web-identity@3.864.0)(openai@4.104.0(ws@8.18.3)(zod@3.25.1))(react@18.3.1)(sswr@2.2.0(svelte@5.34.9))(svelte@5.34.9)(vue@3.5.17(typescript@5.8.3))(zod@3.25.1): ->>>>>>> origin/staging + braintrust@0.2.4(@aws-sdk/credential-provider-web-identity@3.864.0)(zod@3.25.76): dependencies: '@ai-sdk/provider': 1.1.3 '@braintrust/core': 0.0.93 '@next/env': 14.2.30 -<<<<<<< HEAD - '@vercel/functions': 1.6.0(@aws-sdk/credential-provider-web-identity@3.840.0) -======= '@vercel/functions': 1.6.0(@aws-sdk/credential-provider-web-identity@3.864.0) - ai: 3.4.33(openai@4.104.0(ws@8.18.3)(zod@3.25.1))(react@18.3.1)(sswr@2.2.0(svelte@5.34.9))(svelte@5.34.9)(vue@3.5.17(typescript@5.8.3))(zod@3.25.1) ->>>>>>> origin/staging argparse: 2.0.1 chalk: 4.1.2 cli-progress: 3.12.0 @@ -18853,9 +18733,9 @@ snapshots: dependencies: run-applescript: 7.0.0 - bundle-require@5.1.0(esbuild@0.25.5): + bundle-require@5.1.0(esbuild@0.25.8): dependencies: - esbuild: 0.25.5 + esbuild: 0.25.8 load-tsconfig: 0.2.5 busboy@1.6.0: @@ -21339,7 +21219,7 @@ snapshots: jose@5.10.0: {} - jotai-optics@0.4.0(jotai@2.8.4(@types/react@18.3.23)(react@18.3.1))(optics-ts@2.4.1): + jotai-optics@0.4.0(jotai@2.8.4(react@18.3.1))(optics-ts@2.4.1): dependencies: jotai: 2.8.4(@types/react@18.3.23)(react@18.3.1) optics-ts: 2.4.1 @@ -24708,12 +24588,12 @@ snapshots: tsup@8.5.0(jiti@2.4.2)(postcss@8.5.6)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0): dependencies: - bundle-require: 5.1.0(esbuild@0.25.5) + bundle-require: 5.1.0(esbuild@0.25.8) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 debug: 4.4.1 - esbuild: 0.25.5 + esbuild: 0.25.8 fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 @@ -24736,7 +24616,7 @@ snapshots: tsx@4.20.3: dependencies: - esbuild: 0.25.5 + esbuild: 0.25.8 get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 @@ -25164,7 +25044,7 @@ snapshots: vite@7.0.5(@types/node@20.19.4)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): dependencies: - esbuild: 0.25.5 + esbuild: 0.25.8 fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 postcss: 8.5.6 @@ -25182,7 +25062,7 @@ snapshots: vite@7.0.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): dependencies: - esbuild: 0.25.5 + esbuild: 0.25.8 fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 postcss: 8.5.6 @@ -25247,7 +25127,7 @@ snapshots: dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.10.4(@types/node@24.0.10)(typescript@5.8.3))(vite@7.0.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@vitest/mocker': 3.2.4(msw@2.10.4(@types/node@24.0.10)(typescript@5.8.3))(vite@7.0.5(@types/node@20.19.4)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -25652,7 +25532,7 @@ snapshots: zod@3.25.76: {} - zustand-x@6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(zustand@5.0.7(@types/react@18.3.23)(immer@10.1.1)(react@18.3.1)(use-sync-external-store@1.5.0(react@18.3.1))): + zustand-x@6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2)(zustand@5.0.7(immer@10.1.1)(react@18.3.1)(use-sync-external-store@1.5.0(react@18.3.1))): dependencies: immer: 10.1.1 lodash.mapvalues: 4.6.0