Automerge backed Markdown editor for the Atmosphere
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829import { compileBasesQuery, executeBasesPlan } from './bases-compile'import { createBasesSnapshot } from './bases-snapshot'import { LimitFault, type BasesEvaluationResult, type BasesRowInput, type BasesQueryPlan } from './bases-contract'
/** * Synchronous compatibility boundary for trusted JSON-like test/plugin inputs. * Its fault model excludes arbitrary Proxy trap execution. Production code must * create a branded snapshot and use the runner API directly. */export function evaluateBasesYamlQuery(rows: readonly BasesRowInput[], source: string, selectedView?: string | number): BasesEvaluationResult { const plan = compileBasesQuery(source, selectedView) if ('status' in plan) return plan try { return executeBasesPlan(plan, createBasesSnapshot(rows)) } catch (error) { const message = error instanceof Error ? error.message : 'Bases input normalization failed' return Object.freeze({ status: 'error' as const, rows: Object.freeze([]), document: (plan as BasesQueryPlan).document, diagnostics: Object.freeze([...plan.document.diagnostics, Object.freeze({ severity: 'error' as const, code: error instanceof LimitFault ? 'limit.query' : 'execution.fault', message, path: Object.freeze([]) })]) }) }}export type { BasesEvaluationResult, BasesEvaluatedGroup, BasesEvaluatedRow, BasesPrimitive, BasesRowInput, BasesRowSnapshot, BasesSummaryResult, BasesValue,} from './bases-contract'