| null = null,
+): void {
+ const resolvedContext = context ?? injectOpenUiContext();
+
+ if (
+ !options.isStreaming &&
+ options.existingValue === undefined &&
+ options.defaultValue !== undefined
+ ) {
+ resolvedContext.setFieldValue(
+ options.formName,
+ options.componentType,
+ options.name,
+ options.defaultValue,
+ options.shouldTriggerSaveCallback ?? false,
+ );
+ }
+}
diff --git a/packages/angular-lang/src/lib/library.spec.ts b/packages/angular-lang/src/lib/library.spec.ts
new file mode 100644
index 000000000..147c82856
--- /dev/null
+++ b/packages/angular-lang/src/lib/library.spec.ts
@@ -0,0 +1,85 @@
+import { Component } from "@angular/core";
+import { describe, expect, it } from "vitest";
+import { z } from "zod/v4";
+import { createLibrary, defineComponent } from "./library";
+
+@Component({
+ selector: "test-card",
+ template: "",
+})
+class TestCardComponent {}
+
+@Component({
+ selector: "test-stack",
+ template: "",
+})
+class TestStackComponent {}
+
+describe("angular-lang library wrapper", () => {
+ it("defines an Angular component with schema metadata and a reusable ref", () => {
+ const Card = defineComponent({
+ name: "Card",
+ description: "A card container",
+ props: z.object({
+ title: z.string(),
+ }),
+ component: TestCardComponent,
+ });
+
+ expect(Card.name).toBe("Card");
+ expect(Card.description).toBe("A card container");
+ expect(Card.component).toBe(TestCardComponent);
+ expect(Card.ref).toBe(Card.props);
+ });
+
+ it("creates a library with registered Angular components and a root", () => {
+ const Card = defineComponent({
+ name: "Card",
+ description: "A card container",
+ props: z.object({
+ title: z.string(),
+ }),
+ component: TestCardComponent,
+ });
+
+ const Stack = defineComponent({
+ name: "Stack",
+ description: "A vertical layout",
+ props: z.object({
+ gap: z.number().optional(),
+ }),
+ component: TestStackComponent,
+ });
+
+ const library = createLibrary({
+ components: [Card, Stack],
+ root: "Card",
+ id: "angular-demo",
+ });
+
+ expect(library.root).toBe("Card");
+ expect(library.id).toBe("angular-demo");
+ expect(library.components["Card"]?.component).toBe(TestCardComponent);
+ expect(library.components["Stack"]?.component).toBe(TestStackComponent);
+ expect(library.toJSONSchema().$defs).toHaveProperty("Card");
+ expect(library.toJSONSchema().$defs).toHaveProperty("Stack");
+ });
+
+ it("throws when the configured root does not exist", () => {
+ const Card = defineComponent({
+ name: "Card",
+ description: "A card container",
+ props: z.object({
+ title: z.string(),
+ }),
+ component: TestCardComponent,
+ });
+
+ expect(() => {
+ createLibrary({
+ components: [Card],
+ root: "MissingRoot",
+ });
+ }).toThrow(/Root component/);
+ });
+});
diff --git a/packages/angular-lang/src/lib/library.ts b/packages/angular-lang/src/lib/library.ts
new file mode 100644
index 000000000..1a020808f
--- /dev/null
+++ b/packages/angular-lang/src/lib/library.ts
@@ -0,0 +1,59 @@
+import type { Type } from "@angular/core";
+import {
+ createLibrary as coreCreateLibrary,
+ defineComponent as coreDefineComponent,
+ type ComponentRenderProps as CoreComponentRenderProps,
+ type DefinedComponent as CoreDefinedComponent,
+ type Library as CoreLibrary,
+ type LibraryDefinition as CoreLibraryDefinition,
+} from "@openuidev/lang-core";
+import type { $ZodObject } from "zod/v4/core";
+
+export type {
+ ComponentGroup,
+ PromptOptions,
+ SubComponentOf,
+ ToolDescriptor,
+} from "@openuidev/lang-core";
+
+export interface ComponentRenderProps> extends CoreComponentRenderProps<
+ P,
+ unknown
+> {}
+
+/**
+ * Angular component type registered in an OpenUI library.
+ *
+ * The runtime treats this value opaquely and instantiates it through Angular's
+ * dynamic component APIs. The package does not require the component instance
+ * to implement a specific interface at the type level during v0.1.
+ */
+export type ComponentRenderer = Type;
+
+export type DefinedComponent = CoreDefinedComponent<
+ T,
+ ComponentRenderer
+>;
+
+export type Library = CoreLibrary;
+
+export type LibraryDefinition = CoreLibraryDefinition;
+
+/**
+ * Define a single Angular-rendered OpenUI component.
+ */
+export function defineComponent(config: {
+ name: string;
+ props: T;
+ description: string;
+ component: ComponentRenderer;
+}): DefinedComponent {
+ return coreDefineComponent(config);
+}
+
+/**
+ * Create an Angular OpenUI component library.
+ */
+export function createLibrary(input: LibraryDefinition): Library {
+ return coreCreateLibrary(input) as Library;
+}
diff --git a/packages/angular-lang/src/lib/query.spec.ts b/packages/angular-lang/src/lib/query.spec.ts
new file mode 100644
index 000000000..9d4d1f81d
--- /dev/null
+++ b/packages/angular-lang/src/lib/query.spec.ts
@@ -0,0 +1,178 @@
+import { Component, Input } from "@angular/core";
+import { TestBed } from "@angular/core/testing";
+import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
+import { z } from "zod/v4";
+import { injectOpenUiContext } from "./context";
+import { createLibrary, defineComponent } from "./library";
+import { OpenUiRendererComponent } from "./renderer.component";
+
+@Component({
+ selector: "query-display",
+ standalone: true,
+ template: `{{ props?.text }}
`,
+})
+class QueryDisplayComponent {
+ @Input() props: { text: string } | null = null;
+ @Input() renderNode: ((value: unknown) => unknown) | null = null;
+ @Input() statementId: string | undefined = undefined;
+}
+
+@Component({
+ selector: "loading-probe",
+ standalone: true,
+ template: `{{ context.isQueryLoading ? "loading" : "idle" }}
`,
+})
+class LoadingProbeComponent {
+ @Input() props: Record | null = null;
+ @Input() renderNode: ((value: unknown) => unknown) | null = null;
+ @Input() statementId: string | undefined = undefined;
+ protected readonly context = injectOpenUiContext();
+}
+
+@Component({
+ selector: "custom-loader",
+ standalone: true,
+ template: `custom loader
`,
+})
+class CustomLoaderComponent {}
+
+@Component({
+ selector: "run-mutation",
+ standalone: true,
+ template: ``,
+})
+class RunMutationComponent {
+ @Input() props: { label: string; mutationId: string } | null = null;
+ @Input() renderNode: ((value: unknown) => unknown) | null = null;
+ @Input() statementId: string | undefined = undefined;
+ private readonly context = injectOpenUiContext();
+
+ run(): void {
+ if (!this.props) return;
+ void this.context.triggerAction(this.props.label, undefined, {
+ steps: [{ type: "run", statementId: this.props.mutationId, refType: "mutation" }],
+ });
+ }
+}
+
+describe("OpenUiRendererComponent query foundation", () => {
+ beforeEach(async () => {
+ TestBed.resetTestingModule();
+ await TestBed.configureTestingModule({
+ imports: [OpenUiRendererComponent],
+ }).compileComponents();
+ });
+
+ afterEach(() => {
+ TestBed.resetTestingModule();
+ });
+
+ it("renders query results through toolProvider function maps", async () => {
+ const Display = defineComponent({
+ name: "Display",
+ description: "Shows query text",
+ props: z.object({
+ text: z.string(),
+ }),
+ component: QueryDisplayComponent,
+ });
+
+ const library = createLibrary({
+ components: [Display],
+ root: "Display",
+ });
+
+ const fixture = TestBed.createComponent(OpenUiRendererComponent);
+ fixture.componentRef.setInput("library", library);
+ fixture.componentRef.setInput("toolProvider", {
+ get_message: async () => "Hello from query",
+ });
+ fixture.componentRef.setInput(
+ "response",
+ 'message = Query("get_message", {})\nroot = Display(message)',
+ );
+ fixture.detectChanges();
+ await fixture.whenStable();
+ await new Promise((resolve) => setTimeout(resolve, 0));
+ fixture.detectChanges();
+
+ expect(fixture.nativeElement.textContent).toContain("Hello from query");
+ });
+
+ it("exposes query loading state while requests are in flight", async () => {
+ let resolveTool: ((value: unknown) => void) | null = null;
+
+ const Probe = defineComponent({
+ name: "Probe",
+ description: "Reads query loading state",
+ props: z.object({}),
+ component: LoadingProbeComponent,
+ });
+
+ const library = createLibrary({
+ components: [Probe],
+ root: "Probe",
+ });
+
+ const fixture = TestBed.createComponent(OpenUiRendererComponent);
+ fixture.componentRef.setInput("library", library);
+ fixture.componentRef.setInput("queryLoader", CustomLoaderComponent);
+ fixture.componentRef.setInput("toolProvider", {
+ slow_tool: () =>
+ new Promise((resolve) => {
+ resolveTool = resolve;
+ }),
+ });
+ fixture.componentRef.setInput("response", 'data = Query("slow_tool", {})\nroot = Probe()');
+ fixture.detectChanges();
+ await fixture.whenStable();
+ fixture.detectChanges();
+
+ expect(fixture.nativeElement.textContent).toContain("loading");
+ expect(fixture.nativeElement.textContent).toContain("custom loader");
+
+ resolveTool?.("done");
+ await fixture.whenStable();
+ await new Promise((resolve) => setTimeout(resolve, 0));
+ fixture.detectChanges();
+
+ expect(fixture.nativeElement.textContent).not.toContain("custom loader");
+ });
+
+ it("runs registered mutations through action run steps", async () => {
+ const mutate = vi.fn(async (args: Record) => ({ ok: true, args }));
+
+ const Runner = defineComponent({
+ name: "Runner",
+ description: "Runs a mutation",
+ props: z.object({
+ label: z.string(),
+ mutationId: z.string(),
+ }),
+ component: RunMutationComponent,
+ });
+
+ const library = createLibrary({
+ components: [Runner],
+ root: "Runner",
+ });
+
+ const fixture = TestBed.createComponent(OpenUiRendererComponent);
+ fixture.componentRef.setInput("library", library);
+ fixture.componentRef.setInput("toolProvider", {
+ save_message: mutate,
+ });
+ fixture.componentRef.setInput(
+ "response",
+ 'save = Mutation("save_message", { value: "done" })\nroot = Runner("Save", "save")',
+ );
+ fixture.detectChanges();
+ await fixture.whenStable();
+ fixture.detectChanges();
+
+ (fixture.nativeElement.querySelector("button.run") as HTMLButtonElement).click();
+ await new Promise((resolve) => setTimeout(resolve, 0));
+
+ expect(mutate).toHaveBeenCalledWith({ value: "done" });
+ });
+});
diff --git a/packages/angular-lang/src/lib/render-error.spec.ts b/packages/angular-lang/src/lib/render-error.spec.ts
new file mode 100644
index 000000000..4d703498f
--- /dev/null
+++ b/packages/angular-lang/src/lib/render-error.spec.ts
@@ -0,0 +1,93 @@
+import { Component, Input } from "@angular/core";
+import { TestBed } from "@angular/core/testing";
+import type { OpenUIError } from "@openuidev/lang-core";
+import { afterEach, beforeEach, describe, expect, it } from "vitest";
+import { z } from "zod/v4";
+import { createLibrary, defineComponent } from "./library";
+import { OpenUiRendererComponent } from "./renderer.component";
+
+@Component({
+ selector: "maybe-crash",
+ standalone: true,
+ template: `{{ displayText() }}
`,
+})
+class MaybeCrashComponent {
+ @Input() props: { text: string; crash?: boolean } | null = null;
+ @Input() renderNode: ((value: unknown) => unknown) | null = null;
+ @Input() statementId: string | undefined = undefined;
+
+ displayText(): string {
+ if (this.props?.crash) {
+ throw new Error("boom");
+ }
+ return this.props?.text ?? "";
+ }
+}
+
+describe("OpenUiRendererComponent render error handling", () => {
+ beforeEach(async () => {
+ TestBed.resetTestingModule();
+ await TestBed.configureTestingModule({
+ imports: [OpenUiRendererComponent],
+ }).compileComponents();
+ });
+
+ afterEach(() => {
+ TestBed.resetTestingModule();
+ });
+
+ it("reports structured render errors, preserves the last good render, and recovers cleanly", async () => {
+ const MaybeCrash = defineComponent({
+ name: "MaybeCrash",
+ description: "Renders text unless crash is enabled",
+ props: z.object({
+ text: z.string(),
+ crash: z.boolean().optional(),
+ }),
+ component: MaybeCrashComponent,
+ });
+
+ const library = createLibrary({
+ components: [MaybeCrash],
+ root: "MaybeCrash",
+ });
+
+ const fixture = TestBed.createComponent(OpenUiRendererComponent);
+ const receivedErrors: OpenUIError[][] = [];
+ fixture.componentInstance.error.subscribe((errors) => {
+ receivedErrors.push(errors);
+ });
+
+ fixture.componentRef.setInput("library", library);
+ fixture.componentRef.setInput("response", 'root = MaybeCrash("still here", false)');
+ fixture.detectChanges();
+ await fixture.whenStable();
+ fixture.detectChanges();
+
+ expect(fixture.nativeElement.textContent).toContain("still here");
+ expect(receivedErrors.at(-1)).toEqual([]);
+
+ fixture.componentRef.setInput("response", 'root = MaybeCrash("still here", true)');
+ fixture.detectChanges();
+ await fixture.whenStable();
+ fixture.detectChanges();
+
+ expect(fixture.nativeElement.textContent).toContain("still here");
+ expect(receivedErrors.at(-1)).toEqual([
+ expect.objectContaining({
+ source: "runtime",
+ code: "render-error",
+ component: "MaybeCrash",
+ message: expect.stringContaining("boom"),
+ }),
+ ]);
+
+ fixture.componentRef.setInput("response", 'root = MaybeCrash("recovered", false)');
+ fixture.detectChanges();
+ await fixture.whenStable();
+ fixture.detectChanges();
+
+ expect(fixture.nativeElement.textContent).toContain("recovered");
+ expect(receivedErrors.at(-1)).toEqual([]);
+ });
+});
diff --git a/packages/angular-lang/src/lib/render-node.component.ts b/packages/angular-lang/src/lib/render-node.component.ts
new file mode 100644
index 000000000..55818d1d6
--- /dev/null
+++ b/packages/angular-lang/src/lib/render-node.component.ts
@@ -0,0 +1,223 @@
+import {
+ ApplicationRef,
+ ChangeDetectionStrategy,
+ Component,
+ ComponentRef,
+ ElementRef,
+ EnvironmentInjector,
+ ErrorHandler,
+ Injector,
+ Input,
+ OnChanges,
+ OnDestroy,
+ Renderer2,
+ SimpleChanges,
+ Type,
+ createComponent,
+ inject,
+} from "@angular/core";
+import type { ElementNode } from "@openuidev/lang-core";
+import type { OpenUiContextValue } from "./context";
+import type { Library } from "./library";
+import { OPENUI_CONTEXT, OPENUI_FORM_NAME } from "./tokens";
+
+function isElementNode(value: unknown): value is ElementNode {
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
+ return false;
+ }
+
+ const node = value as Record;
+ return (
+ node["type"] === "element" &&
+ typeof node["typeName"] === "string" &&
+ typeof node["props"] === "object" &&
+ node["props"] !== null &&
+ typeof node["partial"] === "boolean"
+ );
+}
+
+class RenderNodeError extends Error {
+ constructor(
+ message: string,
+ readonly componentName?: string,
+ readonly statementId?: string,
+ ) {
+ super(message);
+ this.name = "RenderNodeError";
+ }
+}
+
+@Component({
+ selector: "openui-render-node",
+ standalone: true,
+ template: "",
+ styles: [
+ `
+ :host {
+ display: contents;
+ }
+ `,
+ ],
+ changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class OpenUiRenderNodeComponent implements OnChanges, OnDestroy {
+ @Input() value: unknown = null;
+ @Input() library: Library | null = null;
+ @Input() context: OpenUiContextValue | null = null;
+ @Input() formName: string | undefined = undefined;
+
+ private readonly applicationRef = inject(ApplicationRef);
+ private readonly environmentInjector = inject(EnvironmentInjector);
+ private readonly hostElement = inject(ElementRef);
+ private readonly injector = inject(Injector);
+ private readonly renderer = inject(Renderer2);
+
+ private componentRefs: ComponentRef[] = [];
+
+ ngOnChanges(_changes: SimpleChanges): void {
+ this.renderValue(this.value, this.library, this.context, this.formName);
+ }
+
+ ngOnDestroy(): void {
+ this.destroyComponentRefs(this.componentRefs);
+ this.componentRefs = [];
+ this.hostElement.nativeElement.replaceChildren();
+ }
+
+ private renderValue(
+ value: unknown,
+ library: Library | null,
+ context: OpenUiContextValue | null,
+ formName: string | undefined,
+ ): void {
+ const stagingHost = this.renderer.createElement("openui-staging-host") as HTMLElement;
+ this.renderer.setStyle(stagingHost, "display", "contents");
+ const nextComponentRefs: ComponentRef[] = [];
+
+ try {
+ this.appendValue(stagingHost, value, library, context, formName, nextComponentRefs);
+
+ const nextChildren = Array.from(stagingHost.childNodes);
+ this.destroyComponentRefs(this.componentRefs);
+ this.componentRefs = nextComponentRefs;
+ this.hostElement.nativeElement.replaceChildren();
+ for (const child of nextChildren) {
+ this.renderer.appendChild(this.hostElement.nativeElement, child);
+ }
+ } catch (error) {
+ this.destroyComponentRefs(nextComponentRefs);
+ const message = error instanceof Error ? error.message : String(error);
+ const renderError = error instanceof RenderNodeError ? error : null;
+ context?.reportError?.({
+ source: "runtime",
+ code: "render-error",
+ component: renderError?.componentName,
+ statementId: renderError?.statementId,
+ message,
+ });
+ }
+ }
+
+ private appendValue(
+ parent: HTMLElement,
+ value: unknown,
+ library: Library | null,
+ context: OpenUiContextValue | null,
+ formName: string | undefined,
+ componentRefs: ComponentRef[],
+ ): void {
+ if (value == null) {
+ return;
+ }
+
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
+ this.renderer.appendChild(parent, this.renderer.createText(String(value)));
+ return;
+ }
+
+ if (Array.isArray(value)) {
+ for (const item of value) {
+ this.appendValue(parent, item, library, context, formName, componentRefs);
+ }
+ return;
+ }
+
+ if (isElementNode(value)) {
+ this.appendElementNode(parent, value, library, context, formName, componentRefs);
+ }
+ }
+
+ private appendElementNode(
+ parent: HTMLElement,
+ node: ElementNode,
+ library: Library | null,
+ context: OpenUiContextValue | null,
+ formName: string | undefined,
+ componentRefs: ComponentRef[],
+ ): void {
+ if (!library || !context) {
+ return;
+ }
+
+ const componentDef = library.components[node.typeName];
+ if (!componentDef) {
+ return;
+ }
+
+ const childHost = this.renderer.createElement("openui-dynamic-host") as HTMLElement;
+ this.renderer.setStyle(childHost, "display", "contents");
+ this.renderer.appendChild(parent, childHost);
+
+ const childInjector = Injector.create({
+ providers: [
+ { provide: OPENUI_CONTEXT, useValue: context },
+ { provide: OPENUI_FORM_NAME, useValue: formName },
+ {
+ provide: ErrorHandler,
+ useValue: {
+ handleError(error: unknown) {
+ throw error;
+ },
+ },
+ },
+ ],
+ parent: this.injector,
+ });
+
+ let componentRef: ComponentRef | null = null;
+
+ try {
+ componentRef = createComponent(componentDef.component as Type, {
+ environmentInjector: this.environmentInjector,
+ elementInjector: childInjector,
+ hostElement: childHost,
+ });
+
+ this.applicationRef.attachView(componentRef.hostView);
+ componentRef.setInput("props", node.props);
+ componentRef.setInput("renderNode", context.renderNode);
+ componentRef.setInput("statementId", node.statementId);
+ componentRef.changeDetectorRef.detectChanges();
+ context.clearError?.(node.typeName, node.statementId);
+ componentRefs.push(componentRef);
+ } catch (error) {
+ if (componentRef) {
+ this.applicationRef.detachView(componentRef.hostView);
+ componentRef.destroy();
+ }
+ const message = error instanceof Error ? error.message : String(error);
+ throw new RenderNodeError(
+ `Component ${node.typeName} render failed: ${message}`,
+ node.typeName,
+ node.statementId,
+ );
+ }
+ }
+
+ private destroyComponentRefs(componentRefs: ComponentRef[]): void {
+ for (const componentRef of componentRefs) {
+ this.applicationRef.detachView(componentRef.hostView);
+ componentRef.destroy();
+ }
+ }
+}
diff --git a/packages/angular-lang/src/lib/renderer.component.ts b/packages/angular-lang/src/lib/renderer.component.ts
new file mode 100644
index 000000000..8bfa5ad2d
--- /dev/null
+++ b/packages/angular-lang/src/lib/renderer.component.ts
@@ -0,0 +1,587 @@
+import { NgComponentOutlet } from "@angular/common";
+import {
+ ChangeDetectionStrategy,
+ ChangeDetectorRef,
+ Component,
+ EventEmitter,
+ inject,
+ Input,
+ OnChanges,
+ OnDestroy,
+ Output,
+ SimpleChanges,
+ Type,
+} from "@angular/core";
+import {
+ BuiltinActionType,
+ createQueryManager,
+ createStore,
+ createStreamingParser,
+ evaluate,
+ evaluateElementProps,
+ extractToolResult,
+ ToolNotFoundError,
+ type ActionEvent,
+ type ActionPlan,
+ type EvaluationContext,
+ type McpClientLike,
+ type OpenUIError,
+ type ParseResult,
+ type QueryManager,
+ type QuerySnapshot,
+ type Store,
+ type StreamParser,
+ type ToolProvider,
+ type ValidationError,
+} from "@openuidev/lang-core";
+import type { ActionConfig, OpenUiContextValue } from "./context";
+import type { Library } from "./library";
+import { OpenUiRenderNodeComponent } from "./render-node.component";
+import type { OpenUiToolProvider } from "./types";
+
+function unwrapFieldValue(v: unknown): unknown {
+ if (
+ v &&
+ typeof v === "object" &&
+ !Array.isArray(v) &&
+ "value" in (v as Record)
+ ) {
+ return (v as Record)["value"];
+ }
+
+ return v;
+}
+
+function isActionPlan(action: ActionPlan | ActionConfig | undefined): action is ActionPlan {
+ return !!action && typeof action === "object" && "steps" in action;
+}
+
+@Component({
+ selector: "openui-renderer",
+ standalone: true,
+ imports: [NgComponentOutlet, OpenUiRenderNodeComponent],
+ template: `
+
+ @if (context.isQueryLoading) {
+
+ @if (queryLoader) {
+
+ } @else {
+
+ }
+
+ }
+
+
+ @if (rootNode) {
+
+ }
+
+
+ `,
+ styles: [
+ `
+ :host {
+ display: block;
+ }
+
+ .openui-renderer-shell {
+ position: relative;
+ }
+
+ .openui-query-loader {
+ position: absolute;
+ top: 8px;
+ right: 8px;
+ z-index: 1;
+ }
+
+ .openui-renderer-content {
+ transition: opacity 0.2s ease;
+ }
+
+ .openui-renderer-content.openui-renderer-loading {
+ opacity: 0.7;
+ }
+
+ .openui-default-loader {
+ width: 16px;
+ height: 16px;
+ border: 2px solid #e5e7eb;
+ border-top-color: #3b82f6;
+ border-radius: 50%;
+ animation: openui-spin 0.6s linear infinite;
+ }
+
+ @keyframes openui-spin {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+ }
+ `,
+ ],
+ changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class OpenUiRendererComponent implements OnChanges, OnDestroy {
+ private readonly cdr = inject(ChangeDetectorRef);
+
+ @Input() response: string | null = null;
+ @Input() library: Library | null = null;
+ @Input() isStreaming = false;
+ @Input() initialState: Record | undefined = undefined;
+ @Input() toolProvider: OpenUiToolProvider = null;
+ @Input() queryLoader: Type | null = null;
+
+ @Output() readonly action = new EventEmitter();
+ @Output() readonly stateUpdate = new EventEmitter>();
+ @Output() readonly parseResult = new EventEmitter();
+ @Output() readonly error = new EventEmitter();
+
+ rootNode: unknown = null;
+
+ private parser: StreamParser | null = null;
+ private parserLibraryId: string | null = null;
+ private lastStoreInitKey: string | null = null;
+ private latestParseResult: ParseResult | null = null;
+ private latestRuntimeErrors: OpenUIError[] = [];
+ private readonly store: Store = createStore();
+ private currentToolProviderInput: OpenUiToolProvider = null;
+ private readonly stableToolProvider: ToolProvider = {
+ callTool: async (toolName: string, args: Record): Promise => {
+ const current = this.currentToolProviderInput ?? null;
+
+ if (current == null) {
+ throw new Error("[openui] toolProvider is null");
+ }
+
+ if (typeof (current as McpClientLike).callTool === "function") {
+ const result = await (current as McpClientLike).callTool({
+ name: toolName,
+ arguments: args,
+ });
+ return extractToolResult(result);
+ }
+
+ const map = current as Record) => Promise>;
+ const fn = map[toolName];
+ if (!fn) {
+ throw new ToolNotFoundError(toolName, Object.keys(map));
+ }
+ return await fn(args);
+ },
+ };
+ private readonly queryManager: QueryManager = createQueryManager(this.stableToolProvider);
+ private querySnapshot: QuerySnapshot = this.queryManager.getSnapshot();
+ private unsubscribeStore: (() => void) | null = null;
+ private unsubscribeQueryManager: (() => void) | null = null;
+ private readonly renderErrors = new Map();
+
+ private readonly evaluationContext: EvaluationContext = {
+ getState: (name: string) => unwrapFieldValue(this.store.get(name)),
+ resolveRef: (name: string) => {
+ const mutation = this.queryManager.getMutationResult(name);
+ if (mutation) return mutation;
+ return this.queryManager.getResult(name);
+ },
+ };
+
+ readonly context: OpenUiContextValue = {
+ library: null,
+ isStreaming: false,
+ renderNode: (value) => value,
+ triggerAction: (userMessage, formName, action) =>
+ this.triggerAction(userMessage, formName, action),
+ getFieldValue: (formName, name) => this.getFieldValue(formName, name),
+ setFieldValue: (formName, componentType, name, value, shouldTriggerSaveCallback = true) =>
+ this.setFieldValue(formName, componentType, name, value, shouldTriggerSaveCallback),
+ store: this.store,
+ evaluationContext: this.evaluationContext,
+ isQueryLoading: false,
+ reportParseResult: (result) => this.parseResult.emit(result),
+ reportErrors: (errors) => this.error.emit(errors),
+ reportError: (error) => {
+ this.recordRenderError(error);
+ this.cdr.markForCheck();
+ },
+ clearError: (component, statementId) => {
+ this.clearRenderError(component, statementId);
+ this.cdr.markForCheck();
+ },
+ };
+
+ constructor() {
+ this.queryManager.activate();
+ this.attachQueryManagerSubscription();
+ this.unsubscribeStore = this.store.subscribe(() => {
+ if (!this.latestParseResult || !this.library) return;
+ this.evaluateQueryAndMutationNodes();
+ this.refreshEvaluatedState();
+ });
+ }
+
+ ngOnChanges(_changes: SimpleChanges): void {
+ this.context.library = this.library;
+ this.context.isStreaming = this.isStreaming;
+ this.updateToolProviderIfNeeded();
+
+ if (!this.library || !this.response) {
+ this.latestParseResult = null;
+ this.latestRuntimeErrors = [];
+ this.renderErrors.clear();
+ this.queryManager.evaluateQueries([]);
+ this.queryManager.registerMutations([]);
+ this.querySnapshot = this.queryManager.getSnapshot();
+ this.context.isQueryLoading = false;
+ this.rootNode = null;
+ this.parseResult.emit(null);
+ this.error.emit([]);
+ this.cdr.markForCheck();
+ return;
+ }
+
+ this.ensureParser(this.library);
+
+ try {
+ const parseResult = this.parser?.set(this.response) ?? null;
+ this.latestParseResult = parseResult;
+ this.initializeStore(parseResult);
+ this.evaluateQueryAndMutationNodes();
+ this.parseResult.emit(parseResult);
+ this.refreshEvaluatedState();
+ } catch (error) {
+ const message = error instanceof Error ? error.message : String(error);
+ this.latestParseResult = null;
+ this.latestRuntimeErrors = [];
+ this.renderErrors.clear();
+ this.rootNode = null;
+ this.queryManager.evaluateQueries([]);
+ this.queryManager.registerMutations([]);
+ this.querySnapshot = this.queryManager.getSnapshot();
+ this.context.isQueryLoading = false;
+ this.parseResult.emit(null);
+ this.error.emit([
+ {
+ source: "parser",
+ code: "parse-exception",
+ message: `Parser crashed: ${message}`,
+ hint: "The response may contain syntax the parser cannot handle.",
+ },
+ ]);
+ this.cdr.markForCheck();
+ }
+ }
+
+ ngOnDestroy(): void {
+ this.unsubscribeStore?.();
+ this.unsubscribeQueryManager?.();
+ this.queryManager.dispose();
+ this.store.dispose();
+ }
+
+ private updateToolProviderIfNeeded(): void {
+ if (this.currentToolProviderInput === this.toolProvider) {
+ return;
+ }
+
+ this.currentToolProviderInput = this.toolProvider;
+ this.queryManager.invalidate();
+ this.querySnapshot = this.queryManager.getSnapshot();
+ this.context.isQueryLoading = this.querySnapshot.__openui_loading.length > 0;
+ }
+
+ private attachQueryManagerSubscription(): void {
+ this.unsubscribeQueryManager = this.queryManager.subscribe(() => {
+ this.querySnapshot = this.queryManager.getSnapshot();
+ this.context.isQueryLoading = this.querySnapshot.__openui_loading.length > 0;
+ this.refreshEvaluatedState();
+ });
+ }
+
+ private ensureParser(library: Library): void {
+ if (this.parser && this.parserLibraryId === library.__libraryId) {
+ return;
+ }
+
+ this.parser = createStreamingParser(library.toJSONSchema(), library.root);
+ this.parserLibraryId = library.__libraryId;
+ }
+
+ private initializeStore(parseResult: ParseResult | null): void {
+ const defaults = parseResult?.stateDeclarations ?? {};
+ const key = `${JSON.stringify(defaults)}::${JSON.stringify(this.initialState ?? {})}`;
+ if (this.lastStoreInitKey === key) {
+ return;
+ }
+
+ this.lastStoreInitKey = key;
+
+ const bindingDefaults: Record = {};
+ if (this.initialState) {
+ for (const [stateKey, value] of Object.entries(this.initialState)) {
+ if (stateKey.startsWith("$")) {
+ bindingDefaults[stateKey] = value;
+ } else {
+ this.store.set(stateKey, value);
+ }
+ }
+ }
+
+ this.store.initialize(defaults, bindingDefaults);
+ }
+
+ private refreshEvaluatedState(): void {
+ if (!this.library || !this.latestParseResult) {
+ this.rootNode = null;
+ this.latestRuntimeErrors = [];
+ this.emitCurrentErrors();
+ this.cdr.markForCheck();
+ return;
+ }
+
+ const runtimeErrors: OpenUIError[] = [];
+ this.renderErrors.clear();
+
+ this.rootNode = this.latestParseResult.root
+ ? evaluateElementProps(this.latestParseResult.root, {
+ ctx: this.evaluationContext,
+ library: this.library,
+ store: this.store,
+ errors: runtimeErrors,
+ })
+ : null;
+
+ this.latestRuntimeErrors = runtimeErrors;
+ this.emitCurrentErrors();
+ this.cdr.markForCheck();
+ }
+
+ private getRenderErrorKey(component?: string, statementId?: string): string {
+ return `${statementId ?? ""}::${component ?? ""}`;
+ }
+
+ private recordRenderError(error: OpenUIError): void {
+ this.renderErrors.set(this.getRenderErrorKey(error.component, error.statementId), error);
+ this.emitCurrentErrors();
+ }
+
+ private clearRenderError(component?: string, statementId?: string): void {
+ const key = this.getRenderErrorKey(component, statementId);
+ if (this.renderErrors.delete(key)) {
+ this.emitCurrentErrors();
+ }
+ }
+
+ private emitCurrentErrors(): void {
+ this.error.emit([
+ ...this.mapValidationErrors(this.latestParseResult?.meta.errors ?? []),
+ ...this.latestRuntimeErrors,
+ ...this.querySnapshot.__openui_errors,
+ ...this.renderErrors.values(),
+ ]);
+ }
+
+ private evaluateQueryAndMutationNodes(): void {
+ if (!this.latestParseResult) {
+ this.queryManager.evaluateQueries([]);
+ this.queryManager.registerMutations([]);
+ return;
+ }
+
+ if (!this.isStreaming) {
+ const queryNodes = this.latestParseResult.queryStatements.map((statement) => {
+ const relevantDeps: Record = {};
+ if (statement.deps) {
+ for (const ref of statement.deps) {
+ relevantDeps[ref] = this.store.getSnapshot()[ref];
+ }
+ }
+
+ return {
+ statementId: statement.statementId,
+ toolName: statement.toolAST
+ ? (evaluate(statement.toolAST, this.evaluationContext) as string)
+ : "",
+ args: statement.argsAST ? evaluate(statement.argsAST, this.evaluationContext) : null,
+ defaults: statement.defaultsAST
+ ? evaluate(statement.defaultsAST, this.evaluationContext)
+ : null,
+ refreshInterval: statement.refreshAST
+ ? (evaluate(statement.refreshAST, this.evaluationContext) as number)
+ : undefined,
+ deps: Object.keys(relevantDeps).length > 0 ? relevantDeps : undefined,
+ complete: statement.complete,
+ };
+ });
+
+ this.queryManager.evaluateQueries(queryNodes);
+
+ const mutationNodes = this.latestParseResult.mutationStatements.map((statement) => ({
+ statementId: statement.statementId,
+ toolName: statement.toolAST
+ ? (evaluate(statement.toolAST, this.evaluationContext) as string)
+ : "",
+ }));
+
+ this.queryManager.registerMutations(mutationNodes);
+ }
+
+ this.querySnapshot = this.queryManager.getSnapshot();
+ this.context.isQueryLoading = this.querySnapshot.__openui_loading.length > 0;
+ }
+
+ private getFieldValue(formName: string | undefined, name: string): unknown {
+ if (!formName) {
+ return unwrapFieldValue(this.store.get(name));
+ }
+
+ const formData = this.store.get(formName);
+ if (!formData || typeof formData !== "object" || Array.isArray(formData)) {
+ return undefined;
+ }
+
+ return unwrapFieldValue((formData as Record)[name]);
+ }
+
+ private setFieldValue(
+ formName: string | undefined,
+ componentType: string | undefined,
+ name: string,
+ value: unknown,
+ shouldTriggerSaveCallback: boolean,
+ ): void {
+ const wrapped = { value, componentType };
+
+ if (!formName) {
+ this.store.set(name, wrapped);
+ } else {
+ const raw = this.store.get(formName);
+ const formData =
+ raw && typeof raw === "object" && !Array.isArray(raw)
+ ? (raw as Record)
+ : {};
+ this.store.set(formName, { ...formData, [name]: wrapped });
+ }
+
+ if (shouldTriggerSaveCallback) {
+ this.stateUpdate.emit(this.store.getSnapshot());
+ }
+ }
+
+ private getFormPayload(formName?: string): Record | undefined {
+ if (formName) {
+ const raw = this.store.get(formName);
+ if (raw && typeof raw === "object" && !Array.isArray(raw)) {
+ return { [formName]: raw as Record };
+ }
+ }
+
+ return this.store.getSnapshot();
+ }
+
+ private async triggerAction(
+ userMessage: string,
+ formName?: string,
+ action?: ActionPlan | ActionConfig,
+ ): Promise {
+ const formPayload = this.getFormPayload(formName);
+
+ if (action && !("steps" in action)) {
+ const actionType = action.type || BuiltinActionType.ContinueConversation;
+ const params = { ...(action.params || {}) };
+ const legacy = action as Record;
+ if (typeof legacy["url"] === "string") params["url"] = legacy["url"];
+ if (typeof legacy["context"] === "string") params["context"] = legacy["context"];
+
+ this.action.emit({
+ type: actionType,
+ params,
+ humanFriendlyMessage: userMessage,
+ formState: formPayload,
+ formName,
+ });
+ return;
+ }
+
+ if (isActionPlan(action)) {
+ let storeMutated = false;
+
+ for (const step of action.steps) {
+ switch (step.type) {
+ case "continue_conversation":
+ this.action.emit({
+ type: BuiltinActionType.ContinueConversation,
+ params: step.context ? { context: step.context } : {},
+ humanFriendlyMessage: step.message,
+ formState: formPayload,
+ formName,
+ });
+ break;
+ case "open_url":
+ this.action.emit({
+ type: BuiltinActionType.OpenUrl,
+ params: { url: step.url },
+ humanFriendlyMessage: "",
+ formState: formPayload,
+ formName,
+ });
+ break;
+ case "set": {
+ const value = evaluate(step.valueAST, this.evaluationContext);
+ this.store.set(step.target, value);
+ storeMutated = true;
+ break;
+ }
+ case "reset": {
+ const declarations = this.latestParseResult?.stateDeclarations ?? {};
+ for (const target of step.targets) {
+ this.store.set(target, declarations[target] ?? null);
+ }
+ storeMutated = true;
+ break;
+ }
+ case "run": {
+ if (step.refType === "mutation") {
+ const statement = this.latestParseResult?.mutationStatements.find(
+ (candidate) => candidate.statementId === step.statementId,
+ );
+ const evaluatedArgs = statement?.argsAST
+ ? (evaluate(statement.argsAST, this.evaluationContext) as Record)
+ : {};
+ await this.queryManager.fireMutation(step.statementId, evaluatedArgs);
+ } else {
+ this.queryManager.invalidate([step.statementId]);
+ }
+ break;
+ }
+ }
+ }
+
+ if (storeMutated) {
+ this.stateUpdate.emit(this.store.getSnapshot());
+ }
+ return;
+ }
+
+ this.action.emit({
+ type: BuiltinActionType.ContinueConversation,
+ params: {},
+ humanFriendlyMessage: userMessage,
+ formState: formPayload,
+ formName,
+ });
+ }
+
+ private mapValidationErrors(errors: ValidationError[]): OpenUIError[] {
+ return errors.map((validationError) => ({
+ source: "parser",
+ code: validationError.code,
+ component: validationError.component,
+ path: validationError.path,
+ message: validationError.message,
+ statementId: validationError.statementId,
+ }));
+ }
+}
diff --git a/packages/angular-lang/src/lib/renderer.spec.ts b/packages/angular-lang/src/lib/renderer.spec.ts
new file mode 100644
index 000000000..62547d5f1
--- /dev/null
+++ b/packages/angular-lang/src/lib/renderer.spec.ts
@@ -0,0 +1,154 @@
+import { Component, Input } from "@angular/core";
+import { TestBed } from "@angular/core/testing";
+import { afterEach, beforeEach, describe, expect, it } from "vitest";
+import { z } from "zod/v4";
+import { injectOpenUiContext } from "./context";
+import { createLibrary, defineComponent } from "./library";
+import { OpenUiRenderNodeComponent } from "./render-node.component";
+import { OpenUiRendererComponent } from "./renderer.component";
+
+@Component({
+ selector: "test-title",
+ standalone: true,
+ template: `{{ props?.text }}
`,
+})
+class TestTitleComponent {
+ @Input() props: { text: string } | null = null;
+ @Input() renderNode: ((value: unknown) => unknown) | null = null;
+ @Input() statementId: string | undefined = undefined;
+}
+
+@Component({
+ selector: "test-stack",
+ standalone: true,
+ imports: [OpenUiRenderNodeComponent],
+ template: `
+
+ `,
+})
+class TestStackComponent {
+ @Input() props: { children: unknown[] } | null = null;
+ @Input() renderNode: ((value: unknown) => unknown) | null = null;
+ @Input() statementId: string | undefined = undefined;
+ protected readonly context = injectOpenUiContext();
+}
+
+describe("OpenUiRendererComponent", () => {
+ beforeEach(async () => {
+ TestBed.resetTestingModule();
+ await TestBed.configureTestingModule({
+ imports: [OpenUiRendererComponent],
+ }).compileComponents();
+ });
+
+ afterEach(() => {
+ TestBed.resetTestingModule();
+ });
+
+ it("renders a simple root component from OpenUI source", async () => {
+ const Title = defineComponent({
+ name: "Title",
+ description: "Simple title text",
+ props: z.object({
+ text: z.string(),
+ }),
+ component: TestTitleComponent,
+ });
+
+ const library = createLibrary({
+ components: [Title],
+ root: "Title",
+ });
+
+ const fixture = TestBed.createComponent(OpenUiRendererComponent);
+ fixture.componentRef.setInput("library", library);
+ fixture.componentRef.setInput("response", 'root = Title("Hello Angular")');
+ fixture.detectChanges();
+ await fixture.whenStable();
+ fixture.detectChanges();
+
+ expect(fixture.nativeElement.textContent).toContain("Hello Angular");
+ });
+
+ it("renders nested component references through openui-render-node", async () => {
+ const Title = defineComponent({
+ name: "Title",
+ description: "Simple title text",
+ props: z.object({
+ text: z.string(),
+ }),
+ component: TestTitleComponent,
+ });
+
+ const Stack = defineComponent({
+ name: "Stack",
+ description: "Vertical layout",
+ props: z.object({
+ children: z.array(z.union([Title.ref])),
+ }),
+ component: TestStackComponent,
+ });
+
+ const library = createLibrary({
+ components: [Title, Stack],
+ root: "Stack",
+ });
+
+ const fixture = TestBed.createComponent(OpenUiRendererComponent);
+ fixture.componentRef.setInput("library", library);
+ fixture.componentRef.setInput(
+ "response",
+ 'root = Stack([title1])\ntitle1 = Title("Nested content")',
+ );
+ fixture.detectChanges();
+ await fixture.whenStable();
+ fixture.detectChanges();
+
+ expect(fixture.nativeElement.textContent).toContain("Nested content");
+ });
+
+ it("emits structured parser errors for invalid source", async () => {
+ const Title = defineComponent({
+ name: "Title",
+ description: "Simple title text",
+ props: z.object({
+ text: z.string(),
+ }),
+ component: TestTitleComponent,
+ });
+
+ const library = createLibrary({
+ components: [Title],
+ root: "Title",
+ });
+
+ const fixture = TestBed.createComponent(OpenUiRendererComponent);
+ const receivedErrors: Array<{ code: string; message: string }> = [];
+ const receivedResults: Array = [];
+
+ fixture.componentInstance.error.subscribe((errors) => {
+ receivedErrors.push(...errors.map((error) => ({ code: error.code, message: error.message })));
+ });
+
+ fixture.componentInstance.parseResult.subscribe((result) => {
+ receivedResults.push(result);
+ });
+
+ fixture.componentRef.setInput("library", library);
+ fixture.componentRef.setInput("response", 'root = Ghost("missing")');
+ fixture.detectChanges();
+ await fixture.whenStable();
+ fixture.detectChanges();
+
+ expect(receivedResults.some((result) => result !== null && typeof result === "object")).toBe(
+ true,
+ );
+ expect(receivedErrors.some((error) => error.code === "unknown-component")).toBe(true);
+ });
+});
diff --git a/packages/angular-lang/src/lib/state.spec.ts b/packages/angular-lang/src/lib/state.spec.ts
new file mode 100644
index 000000000..3508ea094
--- /dev/null
+++ b/packages/angular-lang/src/lib/state.spec.ts
@@ -0,0 +1,219 @@
+import { Component, Input } from "@angular/core";
+import { TestBed } from "@angular/core/testing";
+import { afterEach, beforeEach, describe, expect, it } from "vitest";
+import { z } from "zod/v4";
+import { injectOpenUiContext } from "./context";
+import { createLibrary, defineComponent } from "./library";
+import { OpenUiRendererComponent } from "./renderer.component";
+
+@Component({
+ selector: "state-reader",
+ standalone: true,
+ template: `{{ readValue() }}
`,
+})
+class StateReaderComponent {
+ @Input() props: { formName?: string; fieldName: string } | null = null;
+ @Input() renderNode: ((value: unknown) => unknown) | null = null;
+ @Input() statementId: string | undefined = undefined;
+
+ private readonly context = injectOpenUiContext();
+
+ readValue(): string {
+ const value = this.context.getFieldValue(this.props?.formName, this.props?.fieldName ?? "");
+ return value == null ? "" : String(value);
+ }
+}
+
+@Component({
+ selector: "field-writer",
+ standalone: true,
+ template: ``,
+})
+class FieldWriterComponent {
+ @Input() props: { formName?: string; fieldName: string; value: string } | null = null;
+ @Input() renderNode: ((value: unknown) => unknown) | null = null;
+ @Input() statementId: string | undefined = undefined;
+
+ private readonly context = injectOpenUiContext();
+
+ write(): void {
+ if (!this.props) return;
+ this.context.setFieldValue(
+ this.props.formName,
+ "Input",
+ this.props.fieldName,
+ this.props.value,
+ true,
+ );
+ }
+}
+
+@Component({
+ selector: "action-trigger",
+ standalone: true,
+ template: ``,
+})
+class ActionTriggerComponent {
+ @Input() props: {
+ label: string;
+ formName?: string;
+ action?: { type?: string; params?: Record } | { steps: unknown[] };
+ } | null = null;
+ @Input() renderNode: ((value: unknown) => unknown) | null = null;
+ @Input() statementId: string | undefined = undefined;
+
+ private readonly context = injectOpenUiContext();
+
+ fire(): void {
+ if (!this.props) return;
+ void this.context.triggerAction(
+ this.props.label,
+ this.props.formName,
+ this.props.action as any,
+ );
+ }
+}
+
+describe("OpenUiRendererComponent state foundation", () => {
+ beforeEach(async () => {
+ TestBed.resetTestingModule();
+ await TestBed.configureTestingModule({
+ imports: [OpenUiRendererComponent],
+ }).compileComponents();
+ });
+
+ afterEach(() => {
+ TestBed.resetTestingModule();
+ });
+
+ it("hydrates initial form state and exposes it through getFieldValue", async () => {
+ const Reader = defineComponent({
+ name: "Reader",
+ description: "Reads a field from state",
+ props: z.object({
+ formName: z.string().optional(),
+ fieldName: z.string(),
+ }),
+ component: StateReaderComponent,
+ });
+
+ const library = createLibrary({
+ components: [Reader],
+ root: "Reader",
+ });
+
+ const fixture = TestBed.createComponent(OpenUiRendererComponent);
+ fixture.componentRef.setInput("library", library);
+ fixture.componentRef.setInput("initialState", {
+ profile: {
+ email: { value: "ada@example.com", componentType: "Input" },
+ },
+ });
+ fixture.componentRef.setInput("response", 'root = Reader("profile", "email")');
+ fixture.detectChanges();
+ await fixture.whenStable();
+ fixture.detectChanges();
+
+ expect(fixture.nativeElement.textContent).toContain("ada@example.com");
+ });
+
+ it("emits stateUpdate when a component writes field state", async () => {
+ const Writer = defineComponent({
+ name: "Writer",
+ description: "Writes a field value",
+ props: z.object({
+ formName: z.string().optional(),
+ fieldName: z.string(),
+ value: z.string(),
+ }),
+ component: FieldWriterComponent,
+ });
+
+ const library = createLibrary({
+ components: [Writer],
+ root: "Writer",
+ });
+
+ const fixture = TestBed.createComponent(OpenUiRendererComponent);
+ const snapshots: Record[] = [];
+ fixture.componentInstance.stateUpdate.subscribe((state) => snapshots.push(state));
+
+ fixture.componentRef.setInput("library", library);
+ fixture.componentRef.setInput(
+ "response",
+ 'root = Writer("profile", "email", "grace@example.com")',
+ );
+ fixture.detectChanges();
+ await fixture.whenStable();
+ fixture.detectChanges();
+
+ (fixture.nativeElement.querySelector("button.write") as HTMLButtonElement).click();
+ fixture.detectChanges();
+ await fixture.whenStable();
+
+ expect(snapshots.at(-1)).toEqual({
+ profile: {
+ email: {
+ value: "grace@example.com",
+ componentType: "Input",
+ },
+ },
+ });
+ });
+
+ it("emits default action events with current form payload", async () => {
+ const Trigger = defineComponent({
+ name: "Trigger",
+ description: "Triggers an action",
+ props: z.object({
+ label: z.string(),
+ formName: z.string().optional(),
+ }),
+ component: ActionTriggerComponent,
+ });
+
+ const library = createLibrary({
+ components: [Trigger],
+ root: "Trigger",
+ });
+
+ const fixture = TestBed.createComponent(OpenUiRendererComponent);
+ const events: Array<{
+ type: string;
+ formState?: Record;
+ humanFriendlyMessage: string;
+ }> = [];
+ fixture.componentInstance.action.subscribe((event) => {
+ events.push({
+ type: String(event.type),
+ formState: event.formState,
+ humanFriendlyMessage: event.humanFriendlyMessage,
+ });
+ });
+
+ fixture.componentRef.setInput("library", library);
+ fixture.componentRef.setInput("initialState", {
+ profile: {
+ email: { value: "linus@example.com", componentType: "Input" },
+ },
+ });
+ fixture.componentRef.setInput("response", 'root = Trigger("Submit", "profile")');
+ fixture.detectChanges();
+ await fixture.whenStable();
+ fixture.detectChanges();
+
+ (fixture.nativeElement.querySelector("button.fire") as HTMLButtonElement).click();
+ fixture.detectChanges();
+ await fixture.whenStable();
+
+ expect(events.at(-1)).toEqual({
+ type: "continue_conversation",
+ humanFriendlyMessage: "Submit",
+ formState: {
+ profile: {
+ email: { value: "linus@example.com", componentType: "Input" },
+ },
+ },
+ });
+ });
+});
diff --git a/packages/angular-lang/src/lib/tokens.ts b/packages/angular-lang/src/lib/tokens.ts
new file mode 100644
index 000000000..09fd2fdd4
--- /dev/null
+++ b/packages/angular-lang/src/lib/tokens.ts
@@ -0,0 +1,5 @@
+import { InjectionToken } from "@angular/core";
+import type { OpenUiContextValue } from "./context";
+
+export const OPENUI_CONTEXT = new InjectionToken("OPENUI_CONTEXT");
+export const OPENUI_FORM_NAME = new InjectionToken("OPENUI_FORM_NAME");
diff --git a/packages/angular-lang/src/lib/types.ts b/packages/angular-lang/src/lib/types.ts
new file mode 100644
index 000000000..693b61a28
--- /dev/null
+++ b/packages/angular-lang/src/lib/types.ts
@@ -0,0 +1,19 @@
+import type { Type } from "@angular/core";
+import type { ActionEvent, McpClientLike, OpenUIError, ParseResult } from "@openuidev/lang-core";
+import type { Library } from "./library";
+
+export type OpenUiToolProvider =
+ Record) => Promise> | McpClientLike | null;
+
+export interface OpenUiRendererProps {
+ response: string | null;
+ library: Library;
+ isStreaming?: boolean;
+ initialState?: Record;
+ toolProvider?: OpenUiToolProvider;
+ queryLoader?: Type | null;
+ onAction?: (event: ActionEvent) => void;
+ onStateUpdate?: (state: Record) => void;
+ onParseResult?: (result: ParseResult | null) => void;
+ onError?: (errors: OpenUIError[]) => void;
+}
diff --git a/packages/angular-lang/src/lib/validation.spec.ts b/packages/angular-lang/src/lib/validation.spec.ts
new file mode 100644
index 000000000..fb85863eb
--- /dev/null
+++ b/packages/angular-lang/src/lib/validation.spec.ts
@@ -0,0 +1,38 @@
+import { describe, expect, it } from "vitest";
+import { createFormValidation, parseRules } from "./validation";
+
+describe("angular-lang validation helpers", () => {
+ it("validates a single field and stores the error", () => {
+ const validation = createFormValidation();
+ const rules = parseRules(["required", "minLength:3"]);
+
+ expect(validation.validateField("name", "ab", rules)).toBe(false);
+ expect(validation.getFieldError("name")).toBeDefined();
+
+ expect(validation.validateField("name", "abcd", rules)).toBe(true);
+ expect(validation.getFieldError("name")).toBeUndefined();
+ });
+
+ it("validates all registered fields and unwraps stored form values", () => {
+ const validation = createFormValidation();
+
+ validation.registerField("email", parseRules(["required"]), () => ({
+ value: "",
+ componentType: "Input",
+ }));
+
+ expect(validation.validateForm()).toBe(false);
+ expect(validation.getFieldError("email")).toBeDefined();
+ });
+
+ it("clears field errors without replacing the whole validation object", () => {
+ const validation = createFormValidation();
+ const rules = parseRules(["required"]);
+
+ validation.validateField("city", "", rules);
+ expect(validation.getFieldError("city")).toBeDefined();
+
+ validation.clearFieldError("city");
+ expect(validation.getFieldError("city")).toBeUndefined();
+ });
+});
diff --git a/packages/angular-lang/src/lib/validation.ts b/packages/angular-lang/src/lib/validation.ts
new file mode 100644
index 000000000..ddf2bc7fd
--- /dev/null
+++ b/packages/angular-lang/src/lib/validation.ts
@@ -0,0 +1,105 @@
+import { inject, InjectionToken, signal, type Provider, type WritableSignal } from "@angular/core";
+import {
+ builtInValidators,
+ parseRules,
+ parseStructuredRules,
+ validate,
+ type ParsedRule,
+ type ValidatorFn,
+} from "@openuidev/lang-core";
+
+export { builtInValidators, parseRules, parseStructuredRules, validate };
+export type { ParsedRule, ValidatorFn };
+
+export interface FormValidationContextValue {
+ errors: WritableSignal>;
+ getFieldError: (name: string) => string | undefined;
+ validateField: (name: string, value: unknown, rules: ParsedRule[]) => boolean;
+ registerField: (name: string, rules: ParsedRule[], getValue: () => unknown) => void;
+ unregisterField: (name: string) => void;
+ validateForm: () => boolean;
+ clearFieldError: (name: string) => void;
+}
+
+interface FieldRegistration {
+ rules: ParsedRule[];
+ getValue: () => unknown;
+}
+
+export const OPENUI_FORM_VALIDATION = new InjectionToken(
+ "OPENUI_FORM_VALIDATION",
+);
+
+export function createFormValidation(): FormValidationContextValue {
+ const errors = signal>({});
+ const fields: Record = {};
+
+ function getFieldError(name: string): string | undefined {
+ return errors()[name];
+ }
+
+ function validateField(name: string, value: unknown, rules: ParsedRule[]): boolean {
+ const error = validate(value, rules);
+ errors.update((prev) => {
+ if (prev[name] === error) return prev;
+ return { ...prev, [name]: error };
+ });
+ return !error;
+ }
+
+ function registerField(name: string, rules: ParsedRule[], getValue: () => unknown): void {
+ fields[name] = { rules, getValue };
+ }
+
+ function unregisterField(name: string): void {
+ delete fields[name];
+ }
+
+ function validateForm(): boolean {
+ let allValid = true;
+ const nextErrors: Record = {};
+
+ for (const [name, reg] of Object.entries(fields)) {
+ let value = reg.getValue();
+ if (
+ value != null &&
+ typeof value === "object" &&
+ "value" in value &&
+ "componentType" in value
+ ) {
+ value = (value as { value: unknown })["value"];
+ }
+ const error = validate(value, reg.rules);
+ nextErrors[name] = error;
+ if (error) allValid = false;
+ }
+
+ errors.set(nextErrors);
+ return allValid;
+ }
+
+ function clearFieldError(name: string): void {
+ errors.update((prev) => {
+ if (prev[name] === undefined) return prev;
+ return { ...prev, [name]: undefined };
+ });
+ }
+
+ return {
+ errors,
+ getFieldError,
+ validateField,
+ registerField,
+ unregisterField,
+ validateForm,
+ clearFieldError,
+ };
+}
+
+export function provideFormValidation(value: FormValidationContextValue): Provider[] {
+ return [{ provide: OPENUI_FORM_VALIDATION, useValue: value }];
+}
+
+export function injectFormValidation(): FormValidationContextValue | null {
+ return inject(OPENUI_FORM_VALIDATION, { optional: true }) ?? null;
+}
diff --git a/packages/angular-lang/src/public-api.ts b/packages/angular-lang/src/public-api.ts
new file mode 100644
index 000000000..2a2fba9af
--- /dev/null
+++ b/packages/angular-lang/src/public-api.ts
@@ -0,0 +1,93 @@
+export {
+ injectEvaluationContext,
+ injectFormName,
+ injectGetFieldValue,
+ injectIsQueryLoading,
+ injectIsStreaming,
+ injectOpenUiContext,
+ injectRenderNode,
+ injectSetFieldValue,
+ injectStore,
+ injectTriggerAction,
+ setDefaultValue,
+} from "./lib/context";
+export { createLibrary, defineComponent } from "./lib/library";
+export {
+ OpenUiRenderNodeComponent,
+ OpenUiRenderNodeComponent as RenderNode,
+} from "./lib/render-node.component";
+export {
+ OpenUiRendererComponent,
+ OpenUiRendererComponent as Renderer,
+} from "./lib/renderer.component";
+export { OPENUI_CONTEXT, OPENUI_FORM_NAME } from "./lib/tokens";
+export {
+ OPENUI_FORM_VALIDATION,
+ createFormValidation,
+ injectFormValidation,
+ provideFormValidation,
+} from "./lib/validation";
+
+export type { ActionConfig, OpenUiContextValue, SetDefaultValueOptions } from "./lib/context";
+export type {
+ ComponentGroup,
+ ComponentRenderProps,
+ ComponentRenderer,
+ DefinedComponent,
+ Library,
+ LibraryDefinition,
+ PromptOptions,
+ SubComponentOf,
+ ToolDescriptor,
+} from "./lib/library";
+export type {
+ OpenUiRendererProps,
+ OpenUiToolProvider,
+ OpenUiRendererProps as RendererProps,
+} from "./lib/types";
+export type { FormValidationContextValue } from "./lib/validation";
+
+export {
+ ACTION_STEPS,
+ BuiltinActionType,
+ ToolNotFoundError,
+ builtInValidators,
+ createParser,
+ createStreamingParser,
+ extractToolResult,
+ generatePrompt,
+ generateSystemPrompt,
+ isReactiveAssign,
+ mergeStatements,
+ parse,
+ parseRules,
+ parseStructuredRules,
+ resolveStateField,
+ stripReactiveAssign,
+ tagSchemaId,
+ validate,
+} from "@openuidev/lang-core";
+
+export type {
+ ActionEvent,
+ ActionPlan,
+ ActionStep,
+ ComponentPromptSpec,
+ ElementNode,
+ EvaluationContext,
+ LibraryJSONSchema,
+ McpClientLike,
+ OpenUIError,
+ OpenUIErrorCode,
+ ParseResult,
+ ParsedRule,
+ PromptSpec,
+ ReactiveAssign,
+ StateField,
+ SystemPromptOptions,
+ SystemPromptSpec,
+ ToolProvider,
+ ToolSpec,
+ ValidationErrorCode,
+ ValidatorFn,
+} from "@openuidev/lang-core";
diff --git a/packages/angular-lang/src/test-setup.ts b/packages/angular-lang/src/test-setup.ts
new file mode 100644
index 000000000..985efa558
--- /dev/null
+++ b/packages/angular-lang/src/test-setup.ts
@@ -0,0 +1,24 @@
+import { getTestBed } from "@angular/core/testing";
+import {
+ BrowserDynamicTestingModule,
+ platformBrowserDynamicTesting,
+} from "@angular/platform-browser-dynamic/testing";
+import { afterAll, beforeAll } from "vitest";
+import "zone.js";
+import "zone.js/testing";
+
+let initialized = false;
+
+beforeAll(() => {
+ if (!initialized) {
+ getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
+ initialized = true;
+ }
+});
+
+afterAll(() => {
+ if (initialized) {
+ getTestBed().resetTestEnvironment();
+ initialized = false;
+ }
+});
diff --git a/packages/angular-lang/tsconfig.json b/packages/angular-lang/tsconfig.json
new file mode 100644
index 000000000..aabb72b03
--- /dev/null
+++ b/packages/angular-lang/tsconfig.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../dist/out-tsc/angular-lang",
+ "rootDir": "./src",
+ "target": "ES2022",
+ "module": "ES2022",
+ "moduleResolution": "bundler",
+ "declaration": false,
+ "declarationMap": false,
+ "inlineSources": true,
+ "types": [],
+ "useDefineForClassFields": false
+ },
+ "angularCompilerOptions": {
+ "compilationMode": "partial",
+ "strictInjectionParameters": true,
+ "strictInputAccessModifiers": true,
+ "strictTemplates": true
+ }
+}
\ No newline at end of file
diff --git a/packages/angular-lang/tsconfig.lib.json b/packages/angular-lang/tsconfig.lib.json
new file mode 100644
index 000000000..a36839d26
--- /dev/null
+++ b/packages/angular-lang/tsconfig.lib.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "declaration": true,
+ "declarationMap": true,
+ "types": []
+ },
+ "exclude": ["src/**/*.spec.ts"],
+ "include": ["src/**/*.ts"]
+}
\ No newline at end of file
diff --git a/packages/angular-lang/tsconfig.spec.json b/packages/angular-lang/tsconfig.spec.json
new file mode 100644
index 000000000..c8c4f2135
--- /dev/null
+++ b/packages/angular-lang/tsconfig.spec.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "noEmit": true,
+ "types": ["vitest/globals"]
+ },
+ "include": ["src/**/*.spec.ts", "src/**/*.test.ts"]
+}
\ No newline at end of file
diff --git a/packages/angular-lang/tsconfig.test.json b/packages/angular-lang/tsconfig.test.json
new file mode 100644
index 000000000..f6fb654d7
--- /dev/null
+++ b/packages/angular-lang/tsconfig.test.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "noEmit": true,
+ "types": ["vitest/globals"]
+ },
+ "include": ["src/**/*.spec.ts", "src/**/*.test.ts"]
+}
diff --git a/packages/angular-lang/vitest.config.ts b/packages/angular-lang/vitest.config.ts
new file mode 100644
index 000000000..dd3940e27
--- /dev/null
+++ b/packages/angular-lang/vitest.config.ts
@@ -0,0 +1,8 @@
+import { defineConfig } from "vitest/config";
+
+export default defineConfig({
+ test: {
+ environment: "jsdom",
+ setupFiles: ["src/test-setup.ts"],
+ },
+});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9abb627d0..e355d37ca 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -6,6 +6,24 @@ settings:
catalogs:
default:
+ '@angular/common':
+ specifier: ^22.1.5
+ version: 22.1.6
+ '@angular/compiler':
+ specifier: ^22.1.5
+ version: 22.1.6
+ '@angular/compiler-cli':
+ specifier: ^22.1.5
+ version: 22.1.6
+ '@angular/core':
+ specifier: ^22.1.5
+ version: 22.1.6
+ '@angular/platform-browser':
+ specifier: ^22.1.5
+ version: 22.1.6
+ '@angular/platform-browser-dynamic':
+ specifier: ^22.1.5
+ version: 22.1.6
'@types/node':
specifier: ^22.15.32
version: 22.20.1
@@ -42,18 +60,30 @@ catalogs:
jsdom:
specifier: ^26.1.0
version: 26.1.0
+ ng-packagr:
+ specifier: ^22.1.1
+ version: 22.1.1
react:
specifier: ^18.3.1 || ^19.0.0
version: 19.2.4
react-dom:
specifier: ^18.0.0 || ^19.0.0
version: 19.2.4
+ rxjs:
+ specifier: ^7.8.2
+ version: 7.8.2
+ tslib:
+ specifier: ^2.8.1
+ version: 2.8.1
typescript:
- specifier: ^5.9.3
- version: 5.9.3
+ specifier: ^6.0.3
+ version: 6.0.3
zod:
specifier: ^3.25.0 || ^4.0.0
version: 4.4.3
+ zone.js:
+ specifier: ^0.16.3
+ version: 0.16.3
zustand:
specifier: ^4.5.5
version: 4.5.7
@@ -77,7 +107,7 @@ importers:
version: 3.0.2
'@typescript-eslint/eslint-plugin':
specifier: 'catalog:'
- version: 8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
+ version: 8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
eslint:
specifier: 'catalog:'
version: 9.39.5(jiti@2.7.0)
@@ -95,25 +125,25 @@ importers:
version: 0.5.3(eslint@9.39.5(jiti@2.7.0))
eslint-plugin-storybook:
specifier: 'catalog:'
- version: 10.5.5(eslint@9.39.5(jiti@2.7.0))(storybook@10.5.5(@types/react@19.2.17)(prettier@3.9.6)(react@19.2.4))(typescript@5.9.3)
+ version: 10.5.5(eslint@9.39.5(jiti@2.7.0))(storybook@10.5.5(@types/react@19.2.17)(prettier@3.9.6)(react@19.2.4))(typescript@6.0.3)
eslint-plugin-unused-imports:
specifier: 'catalog:'
- version: 4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))
+ version: 4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0))
prettier:
specifier: ^3.2.5
version: 3.9.6
prettier-plugin-organize-imports:
specifier: ^3.2.4
- version: 3.2.4(prettier@3.9.6)(typescript@5.9.3)
+ version: 3.2.4(prettier@3.9.6)(typescript@6.0.3)
publint:
specifier: ^0.3.18
version: 0.3.22
tsdown:
specifier: ^0.21.7
- version: 0.21.10(@arethetypeswrong/core@0.18.5)(@typescript/native-preview@7.0.0-dev.20260523.1)(oxc-resolver@11.24.2)(publint@0.3.22)(synckit@0.11.13)(typescript@5.9.3)
+ version: 0.21.10(@arethetypeswrong/core@0.18.5)(@typescript/native-preview@7.0.0-dev.20260523.1)(oxc-resolver@11.24.2)(publint@0.3.22)(synckit@0.11.13)(typescript@6.0.3)
typescript:
specifier: 'catalog:'
- version: 5.9.3
+ version: 6.0.3
docs:
dependencies:
@@ -164,7 +194,7 @@ importers:
version: 16.9.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.5)(@types/mdast@4.0.4)(@types/react@19.2.17)(lucide-react@0.570.0(react@19.2.4))(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.4.3)
fumadocs-mdx:
specifier: 14.3.2
- version: 14.3.2(@types/mdast@4.0.4)(@types/mdx@2.0.14)(@types/react@19.2.17)(fumadocs-core@16.9.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.5)(@types/mdast@4.0.4)(@types/react@19.2.17)(lucide-react@0.570.0(react@19.2.4))(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.4.3))(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react@19.2.4)(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 14.3.2(@types/mdast@4.0.4)(@types/mdx@2.0.14)(@types/react@19.2.17)(fumadocs-core@16.9.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.5)(@types/mdast@4.0.4)(@types/react@19.2.17)(lucide-react@0.570.0(react@19.2.4))(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.4.3))(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react@19.2.4)(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
fumadocs-ui:
specifier: 16.9.1
version: 16.9.1(@emotion/is-prop-valid@1.4.0)(@tailwindcss/oxide@4.3.3)(@takumi-rs/image-response@0.68.17)(@types/mdx@2.0.14)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(fumadocs-core@16.9.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.5)(@types/mdast@4.0.4)(@types/react@19.2.17)(lucide-react@0.570.0(react@19.2.4))(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.4.3))(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.3.3)
@@ -243,7 +273,7 @@ importers:
version: 7.7.1
eslint-config-next:
specifier: 16.2.6
- version: 16.2.6(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
+ version: 16.2.6(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
postcss:
specifier: '>=8.5.10'
version: 8.5.24
@@ -251,6 +281,55 @@ importers:
specifier: ^4.1.18
version: 4.3.3
+ packages/angular-lang:
+ dependencies:
+ '@openuidev/lang-core':
+ specifier: workspace:^
+ version: link:../lang-core
+ tslib:
+ specifier: 'catalog:'
+ version: 2.8.1
+ zod:
+ specifier: 'catalog:'
+ version: 4.4.3
+ devDependencies:
+ '@angular/common':
+ specifier: 'catalog:'
+ version: 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2)
+ '@angular/compiler':
+ specifier: 'catalog:'
+ version: 22.1.6
+ '@angular/compiler-cli':
+ specifier: 'catalog:'
+ version: 22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3)
+ '@angular/core':
+ specifier: 'catalog:'
+ version: 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3)
+ '@angular/platform-browser':
+ specifier: 'catalog:'
+ version: 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))
+ '@angular/platform-browser-dynamic':
+ specifier: 'catalog:'
+ version: 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2))(@angular/compiler@22.1.6)(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3)))
+ jsdom:
+ specifier: 'catalog:'
+ version: 26.1.0
+ ng-packagr:
+ specifier: 'catalog:'
+ version: 22.1.1(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(tailwindcss@4.3.3)(tslib@2.8.1)(typescript@6.0.3)
+ rxjs:
+ specifier: 'catalog:'
+ version: 7.8.2
+ typescript:
+ specifier: 'catalog:'
+ version: 6.0.3
+ vitest:
+ specifier: ^4.1.0
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ zone.js:
+ specifier: 'catalog:'
+ version: 0.16.3
+
packages/assistant-ui:
dependencies:
zod:
@@ -292,10 +371,10 @@ importers:
version: 19.2.4(react@19.2.4)
typescript:
specifier: 'catalog:'
- version: 5.9.3
+ version: 6.0.3
vitest:
specifier: ^4.1.0
- version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
packages/browser-bundle:
dependencies:
@@ -354,7 +433,7 @@ importers:
version: 19.2.4(react@19.2.4)
vitest:
specifier: ^4.1.0
- version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(jsdom@26.1.0)(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(jsdom@26.1.0)(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
packages/lang-core:
dependencies:
@@ -373,7 +452,7 @@ importers:
version: 20.19.43
vitest:
specifier: ^4.0.18
- version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@20.19.43)(jsdom@26.1.0)(vite@7.3.6(@types/node@20.19.43)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@20.19.43)(jsdom@26.1.0)(vite@7.3.6(@types/node@20.19.43)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
packages/langchain:
dependencies:
@@ -386,13 +465,13 @@ importers:
version: 1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1)
'@langchain/langgraph':
specifier: ^1.4.5
- version: 1.4.8(@langchain/core@1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vue@3.5.40(typescript@5.9.3))(zod@4.4.3)
+ version: 1.4.8(@langchain/core@1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)
'@langchain/protocol':
specifier: ^0.0.18
version: 0.0.18
vitest:
specifier: ^4.1.0
- version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
zod:
specifier: ^4.2.0
version: 4.4.3
@@ -401,7 +480,7 @@ importers:
devDependencies:
vitest:
specifier: ^4.1.0
- version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
packages/observability-cloud:
dependencies:
@@ -414,7 +493,7 @@ importers:
version: 26.1.0
vitest:
specifier: ^4.1.0
- version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
packages/openui-cli:
dependencies:
@@ -479,7 +558,7 @@ importers:
version: 19.2.17
typescript:
specifier: 'catalog:'
- version: 5.9.3
+ version: 6.0.3
packages/react-headless:
dependencies:
@@ -504,13 +583,13 @@ importers:
version: 6.0.236(zod@4.4.3)
eve:
specifier: ^0.11.7
- version: 0.11.10(@opentelemetry/api@1.9.1)(ai@6.0.236(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(ioredis@5.11.1)(jiti@2.7.0)(lru-cache@11.5.2)(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react@19.2.4)(rollup@4.62.3)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))
+ version: 0.11.10(@opentelemetry/api@1.9.1)(ai@6.0.236(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(ioredis@5.11.1)(jiti@2.7.0)(lru-cache@11.5.2)(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react@19.2.4)(rollup@4.62.3)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))
openai:
specifier: ^6.22.0
version: 6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3)
vitest:
specifier: ^4.1.0
- version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
packages/react-lang:
dependencies:
@@ -550,7 +629,7 @@ importers:
version: 19.2.4(react@19.2.4)
vitest:
specifier: ^4.0.18
- version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(jsdom@26.1.0)(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(jsdom@26.1.0)(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
packages/react-ui:
dependencies:
@@ -689,10 +768,10 @@ importers:
version: 8.6.14(storybook@8.6.18(prettier@3.9.6))
'@storybook/react':
specifier: ^8.5.3
- version: 8.6.18(@storybook/test@8.6.15(storybook@8.6.18(prettier@3.9.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.18(prettier@3.9.6))(typescript@5.9.3)
+ version: 8.6.18(@storybook/test@8.6.15(storybook@8.6.18(prettier@3.9.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.18(prettier@3.9.6))(typescript@6.0.3)
'@storybook/react-vite':
specifier: ^8.5.3
- version: 8.6.18(@storybook/test@8.6.15(storybook@8.6.18(prettier@3.9.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(rollup@4.62.3)(storybook@8.6.18(prettier@3.9.6))(typescript@5.9.3)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 8.6.18(@storybook/test@8.6.15(storybook@8.6.18(prettier@3.9.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(rollup@4.62.3)(storybook@8.6.18(prettier@3.9.6))(typescript@6.0.3)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
'@storybook/test':
specifier: ^8.5.3
version: 8.6.15(storybook@8.6.18(prettier@3.9.6))
@@ -719,7 +798,7 @@ importers:
version: 15.5.13
'@typescript-eslint/eslint-plugin':
specifier: 'catalog:'
- version: 8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3)
+ version: 8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3))(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3)
concurrently:
specifier: ^9.2.0
version: 9.2.4
@@ -740,10 +819,10 @@ importers:
version: 0.5.3(eslint@9.39.5(jiti@1.21.7))
eslint-plugin-storybook:
specifier: 'catalog:'
- version: 10.5.5(eslint@9.39.5(jiti@1.21.7))(storybook@8.6.18(prettier@3.9.6))(typescript@5.9.3)
+ version: 10.5.5(eslint@9.39.5(jiti@1.21.7))(storybook@8.6.18(prettier@3.9.6))(typescript@6.0.3)
eslint-plugin-unused-imports:
specifier: 'catalog:'
- version: 4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.5(jiti@1.21.7))
+ version: 4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3))(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3))(eslint@9.39.5(jiti@1.21.7))
form-data:
specifier: ^4.0.0
version: 4.0.6
@@ -758,7 +837,7 @@ importers:
version: 1.0.0(postcss@8.5.24)
prettier-plugin-organize-imports:
specifier: ^3.2.4
- version: 3.2.4(prettier@3.9.6)(typescript@5.9.3)
+ version: 3.2.4(prettier@3.9.6)(typescript@6.0.3)
prop-types:
specifier: ^15.8.1
version: 15.8.1
@@ -779,10 +858,10 @@ importers:
version: 4.23.1
vite:
specifier: ^6.4.2
- version: 6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ version: 6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
vitest:
specifier: ^4.0.18
- version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(jsdom@26.1.0)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(jsdom@26.1.0)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
webpack:
specifier: ^5.104.1
version: 5.109.1(esbuild@0.25.12)(lightningcss@1.33.0)(postcss@8.5.24)
@@ -798,13 +877,13 @@ importers:
devDependencies:
'@sveltejs/package':
specifier: ^2.3.0
- version: 2.5.8(svelte@5.56.8(@typescript-eslint/types@8.65.0))(typescript@5.9.3)
+ version: 2.5.8(svelte@5.56.8(@typescript-eslint/types@8.65.0))(typescript@6.0.3)
'@sveltejs/vite-plugin-svelte':
specifier: ^5.0.0
- version: 5.1.1(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 5.1.1(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
'@testing-library/svelte':
specifier: ^5.2.0
- version: 5.4.2(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))(vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)))
+ version: 5.4.2(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))(vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)))
jsdom:
specifier: 'catalog:'
version: 26.1.0
@@ -813,16 +892,16 @@ importers:
version: 5.56.8(@typescript-eslint/types@8.65.0)
svelte-check:
specifier: ^4.0.0
- version: 4.7.4(picomatch@4.0.5)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(typescript@5.9.3)
+ version: 4.7.4(picomatch@4.0.5)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(typescript@6.0.3)
typescript:
specifier: 'catalog:'
- version: 5.9.3
+ version: 6.0.3
vite:
specifier: ^6.0.0
- version: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ version: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
vitest:
specifier: ^4.1.0
- version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
packages/vue-lang:
dependencies:
@@ -835,28 +914,28 @@ importers:
devDependencies:
'@vitejs/plugin-vue':
specifier: ^6.0.7
- version: 6.0.8(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))
+ version: 6.0.8(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))
'@vue/test-utils':
specifier: ^2.4.0
- version: 2.4.11(@vue/compiler-dom@3.5.40)(@vue/server-renderer@3.5.40)(vue@3.5.40(typescript@5.9.3))
+ version: 2.4.11(@vue/compiler-dom@3.5.40)(@vue/server-renderer@3.5.40)(vue@3.5.40(typescript@6.0.3))
jsdom:
specifier: 'catalog:'
version: 26.1.0
typescript:
specifier: 'catalog:'
- version: 5.9.3
+ version: 6.0.3
vite:
specifier: ^6.0.0
- version: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ version: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
vitest:
specifier: ^4.1.0
- version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
vue:
specifier: ^3.5.0
- version: 3.5.40(typescript@5.9.3)
+ version: 3.5.40(typescript@6.0.3)
vue-tsc:
specifier: ^2.0.0
- version: 2.2.12(typescript@5.9.3)
+ version: 2.2.12(typescript@6.0.3)
packages:
@@ -889,9 +968,69 @@ packages:
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
+ '@ampproject/remapping@2.3.0':
+ resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
+ engines: {node: '>=6.0.0'}
+
'@andrewbranch/untar.js@1.0.3':
resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==}
+ '@angular/common@22.1.6':
+ resolution: {integrity: sha512-giuH+jJvo6YbBxbKofJCXvq6k8g1Z/xCAvh4piNFSSS6/toXTLCeZ+snr6Stw5b2wRbArM5Q5nDeuto3NqVPnQ==}
+ engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0}
+ peerDependencies:
+ '@angular/core': 22.1.6
+ rxjs: ^6.5.3 || ^7.4.0
+
+ '@angular/compiler-cli@22.1.6':
+ resolution: {integrity: sha512-C1fQuaSLnibhfbb7Im/vurdBEcfQk+/GqPkY4+dgEKd4EPleO0xWlD+k5DwyNFX8a9w7HebWfo0Zl66HuaEwOQ==}
+ engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0}
+ hasBin: true
+ peerDependencies:
+ '@angular/compiler': 22.1.6
+ typescript: '>=6.0 <6.1'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@angular/compiler@22.1.6':
+ resolution: {integrity: sha512-JjOUm/qD338+fGfZvxSNn/vTUiVqNwOiPzacInVUq1eVp7Jev+cnvEwXA2cFJkYZoy3Imz6wHoMvTUZNN8cbKQ==}
+ engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0}
+
+ '@angular/core@22.1.6':
+ resolution: {integrity: sha512-3Ln9YYOhsaU2vPufnpcu6C4dlmX4e/nJTlggVcKMT7bGZH5KlEtw3h0uh9YfANv8YhQCEk1AcuRI7KpBnh5ing==}
+ engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0}
+ peerDependencies:
+ '@angular/compiler': 22.1.6
+ rxjs: ^6.5.3 || ^7.4.0
+ zone.js: ~0.15.0 || ~0.16.0
+ peerDependenciesMeta:
+ '@angular/compiler':
+ optional: true
+ zone.js:
+ optional: true
+
+ '@angular/platform-browser-dynamic@22.1.6':
+ resolution: {integrity: sha512-ixLGQoRkF1ctIN01opG8XaT84TR2/RngMvA0DKsbCjoz0+ECCq3RtsrXUB5Qdny7AXzPvsJchxQ+ZubtOX9MYQ==}
+ engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0}
+ deprecated: '@angular/platform-browser-dynamic is deprecated. Use `@angular/platform-browser` instead.'
+ peerDependencies:
+ '@angular/common': 22.1.6
+ '@angular/compiler': 22.1.6
+ '@angular/core': 22.1.6
+ '@angular/platform-browser': 22.1.6
+
+ '@angular/platform-browser@22.1.6':
+ resolution: {integrity: sha512-jrRi6zpdz+jOle5l0OW7QL0a8xPgdnxWT5FrJabbiNKfYzQfqKcaAu02l8uJoJxtGb8fLQ8pbjkPpZEvKO2z+w==}
+ engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0}
+ peerDependencies:
+ '@angular/animations': 22.1.6
+ '@angular/common': 22.1.6
+ '@angular/core': 22.1.6
+ peerDependenciesMeta:
+ '@angular/animations':
+ optional: true
+
'@antfu/install-pkg@1.1.0':
resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
@@ -1029,14 +1168,26 @@ packages:
resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
engines: {node: '>=6.9.0'}
+ '@babel/code-frame@8.0.0':
+ resolution: {integrity: sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/compat-data@7.29.7':
resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==}
engines: {node: '>=6.9.0'}
+ '@babel/compat-data@8.0.5':
+ resolution: {integrity: sha512-YLsYoQMvL8l8WrGpN3Zj7O1wK5LEBN+cQtux7BcuHyxIXve724XG+zuJ1n3U1cUweRtTzQOA4IHbuQw3N34SZw==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/core@7.29.7':
resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==}
engines: {node: '>=6.9.0'}
+ '@babel/core@8.0.1':
+ resolution: {integrity: sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/generator@7.29.7':
resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==}
engines: {node: '>=6.9.0'}
@@ -1045,14 +1196,26 @@ packages:
resolution: {integrity: sha512-em37/13/nR320G4jab/nIIHZgc2Wz2y/D39lxnTyxB4/D/omPQncl/lSdlnJY1OhQcRGugTSIF2l/69o31C9dA==}
engines: {node: ^20.19.0 || >=22.12.0}
+ '@babel/generator@8.0.5':
+ resolution: {integrity: sha512-f/TuhuMAxJqhwxEGNsJrswuG9VHmh0oNFoQoo6TbpgtFAz9wYZXcTAcWZMHfp7ljesr0RG04bp3Aos9GI59L7w==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/helper-compilation-targets@7.29.7':
resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-compilation-targets@8.0.5':
+ resolution: {integrity: sha512-Qk8ahMGooH5mz6uuhoDvfZGkUf/Mf3RTBucVVl4MKx4LKMTv872TeW8O92h15iVtlN8wAROBIpI1aV6x1z0LCQ==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/helper-globals@7.29.7':
resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-globals@8.0.0':
+ resolution: {integrity: sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/helper-module-imports@7.29.7':
resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==}
engines: {node: '>=6.9.0'}
@@ -1087,10 +1250,18 @@ packages:
resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-option@8.0.0':
+ resolution: {integrity: sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/helpers@7.29.7':
resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==}
engines: {node: '>=6.9.0'}
+ '@babel/helpers@8.0.5':
+ resolution: {integrity: sha512-fQtPOXjYOYv85PIdwotp2TJGVYOycX0PQq+l844fFAxOULtBy8BVF35GyeueX0r4KvDthqPH5xAI1clQPk/2uA==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/parser@7.29.7':
resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==}
engines: {node: '>=6.0.0'}
@@ -1106,6 +1277,11 @@ packages:
engines: {node: ^22.18.0 || >=24.11.0}
hasBin: true
+ '@babel/parser@8.0.5':
+ resolution: {integrity: sha512-51RXvQNFakaS0bTpYiGkxNbUVwkPO4kONv6EVLorZABxsx+KZ6Z7uSYvi/wmKS/+X+rfj9RvOw0/ZNh+cmI0Rw==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+ hasBin: true
+
'@babel/runtime@7.29.7':
resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==}
engines: {node: '>=6.9.0'}
@@ -1114,10 +1290,18 @@ packages:
resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==}
engines: {node: '>=6.9.0'}
+ '@babel/template@8.0.0':
+ resolution: {integrity: sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/traverse@7.29.7':
resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==}
engines: {node: '>=6.9.0'}
+ '@babel/traverse@8.0.5':
+ resolution: {integrity: sha512-XFfnuvapSc/vJOcUO7kwORSvpBIvraofKEZ2dhT0PjiF21BRCD7YbAFC8UEeDJNeLoQz82/gVqzgX5hCzkCbdg==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/types@7.29.7':
resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
engines: {node: '>=6.9.0'}
@@ -1130,6 +1314,10 @@ packages:
resolution: {integrity: sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==}
engines: {node: ^22.18.0 || >=24.11.0}
+ '@babel/types@8.0.5':
+ resolution: {integrity: sha512-eVdMqi3ej5aHhyQ2Si6yD2cAWeV8FJK9UrhK5aL0Sd8hu5GhT+YswhVNbVheOGVYMg8kuGuMaUpkB3stjj4z8A==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@braidai/lang@1.1.2':
resolution: {integrity: sha512-qBcknbBufNHlui137Hft8xauQMTZDKdophmLFv05r2eNmdIv/MlPuP4TdUknHG68UdWLgVZwgxVe735HzJNIwA==}
@@ -2031,6 +2219,9 @@ packages:
'@jridgewell/gen-mapping@0.3.13':
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+ '@jridgewell/gen-mapping@0.4.0-beta.0':
+ resolution: {integrity: sha512-JdGNkbE4GlNPYQhM0L95fBQr7ctLZJ276QXQLTad4t1oSdnnCI3fDq9DW3BqYAWv8Wc3+HS+4Gsii1oPMCfz1w==}
+
'@jridgewell/remapping@2.3.5':
resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
@@ -2044,6 +2235,9 @@ packages:
'@jridgewell/sourcemap-codec@1.5.5':
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+ '@jridgewell/sourcemap-codec@1.6.0':
+ resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==}
+
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
@@ -2134,6 +2328,126 @@ packages:
'@cfworker/json-schema':
optional: true
+ '@napi-rs/lzma-linux-x64-gnu@1.5.1':
+ resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==}
+ engines: {node: ^22.20 || ^24.12 || >=25}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@napi-rs/nice-android-arm-eabi@1.1.1':
+ resolution: {integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [android]
+
+ '@napi-rs/nice-android-arm64@1.1.1':
+ resolution: {integrity: sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@napi-rs/nice-darwin-arm64@1.1.1':
+ resolution: {integrity: sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@napi-rs/nice-darwin-x64@1.1.1':
+ resolution: {integrity: sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@napi-rs/nice-freebsd-x64@1.1.1':
+ resolution: {integrity: sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@napi-rs/nice-linux-arm-gnueabihf@1.1.1':
+ resolution: {integrity: sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@napi-rs/nice-linux-arm64-gnu@1.1.1':
+ resolution: {integrity: sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@napi-rs/nice-linux-arm64-musl@1.1.1':
+ resolution: {integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@napi-rs/nice-linux-ppc64-gnu@1.1.1':
+ resolution: {integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==}
+ engines: {node: '>= 10'}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@napi-rs/nice-linux-riscv64-gnu@1.1.1':
+ resolution: {integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==}
+ engines: {node: '>= 10'}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@napi-rs/nice-linux-s390x-gnu@1.1.1':
+ resolution: {integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==}
+ engines: {node: '>= 10'}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@napi-rs/nice-linux-x64-gnu@1.1.1':
+ resolution: {integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@napi-rs/nice-linux-x64-musl@1.1.1':
+ resolution: {integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@napi-rs/nice-openharmony-arm64@1.1.1':
+ resolution: {integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@napi-rs/nice-win32-arm64-msvc@1.1.1':
+ resolution: {integrity: sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@napi-rs/nice-win32-ia32-msvc@1.1.1':
+ resolution: {integrity: sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@napi-rs/nice-win32-x64-msvc@1.1.1':
+ resolution: {integrity: sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@napi-rs/nice@1.1.1':
+ resolution: {integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==}
+ engines: {node: '>= 10'}
+
'@napi-rs/wasm-runtime@1.2.0':
resolution: {integrity: sha512-kDoONqMa+VnZ4vvvu/ZUurpJ4gkZU57e7g69qpNgWhYcZFPUHZM2CEMKm+cG6ufDVALbjMvfmMjFVqaK7uEMnA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0}
@@ -4039,6 +4353,15 @@ packages:
'@rolldown/pluginutils@1.0.1':
resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
+ '@rollup/plugin-json@6.1.0':
+ resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
'@rollup/pluginutils@5.4.0':
resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==}
engines: {node: '>=14.0.0'}
@@ -4186,6 +4509,11 @@ packages:
cpu: [x64]
os: [win32]
+ '@rollup/wasm-node@4.63.1':
+ resolution: {integrity: sha512-zuZMuBHMMhtuXagc+3p5PGeGfL0VnO/44cX1k9R4Q/Ipb863tF8ZBGeoTz3ypgANqrpREAp49mNTwv6qSyc6XQ==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
'@rtsao/scc@1.1.0':
resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
@@ -4997,6 +5325,9 @@ packages:
'@types/estree@1.0.9':
resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
+ '@types/gensync@1.0.5':
+ resolution: {integrity: sha512-MbsRCT7mTikHwKZ0X+LVUTLRrZZRLipTuXEO9qOYO+zmjMVk81axyClMROf6uoPD9MRVu46bx8zoR0Ad9q3NAg==}
+
'@types/geojson@7946.0.16':
resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
@@ -5908,11 +6239,19 @@ packages:
class-variance-authority@0.7.1:
resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
+ cli-cursor@5.0.0:
+ resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
+ engines: {node: '>=18'}
+
cli-highlight@2.1.11:
resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==}
engines: {node: '>=8.0.0', npm: '>=5.0.0'}
hasBin: true
+ cli-spinners@3.4.0:
+ resolution: {integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==}
+ engines: {node: '>=18.20'}
+
cli-table3@0.6.5:
resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==}
engines: {node: 10.* || >= 12.*}
@@ -5931,6 +6270,10 @@ packages:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
+ cliui@9.0.1:
+ resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==}
+ engines: {node: '>=20'}
+
clsx@2.1.1:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
@@ -5967,6 +6310,10 @@ packages:
resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
engines: {node: '>=20'}
+ commander@15.0.0:
+ resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==}
+ engines: {node: '>=22.12.0'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -5982,6 +6329,9 @@ packages:
resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
engines: {node: '>= 12'}
+ common-path-prefix@3.0.0:
+ resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
+
compute-scroll-into-view@3.1.1:
resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==}
@@ -6012,6 +6362,9 @@ packages:
resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==}
engines: {node: '>=18'}
+ convert-source-map@1.9.0:
+ resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+
convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
@@ -6023,6 +6376,10 @@ packages:
resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
engines: {node: '>= 0.6'}
+ copy-anything@3.0.5:
+ resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==}
+ engines: {node: '>=12.13'}
+
core-js@3.49.0:
resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==}
@@ -6279,6 +6636,14 @@ packages:
de-indent@1.0.2:
resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
+ debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
debug@3.2.7:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
peerDependencies:
@@ -6361,6 +6726,10 @@ packages:
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
engines: {node: '>= 0.8'}
+ dependency-graph@1.0.0:
+ resolution: {integrity: sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==}
+ engines: {node: '>=4'}
+
dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
@@ -6448,6 +6817,9 @@ packages:
electron-to-chromium@1.5.397:
resolution: {integrity: sha512-khGTy9U9x02KEtsKM8vx5A62BsRmcOsIgDpWr1ImE32Ax8GxHGPHZf+Eu9H8zOOyHJnB0jTbseyTHbq2XCT8yw==}
+ emoji-regex@10.6.0:
+ resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==}
+
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -6506,6 +6878,10 @@ packages:
resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
engines: {node: '>=18'}
+ errno@0.1.8:
+ resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
+ hasBin: true
+
es-abstract-get@1.0.0:
resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==}
engines: {node: '>= 0.4'}
@@ -6955,6 +7331,14 @@ packages:
resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==}
engines: {node: '>= 18.0.0'}
+ find-cache-directory@6.0.0:
+ resolution: {integrity: sha512-CvFd5ivA6HcSHbD+59P7CyzINHXzwhuQK8RY7CxJZtgDSAtRlHiCaQpZQ2lMR/WRyUIEmzUvL6G2AGurMfegZA==}
+ engines: {node: '>=20'}
+
+ find-up-simple@1.0.1:
+ resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==}
+ engines: {node: '>=18'}
+
find-up@5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
@@ -7138,6 +7522,10 @@ packages:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
+ get-east-asian-width@1.6.0:
+ resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==}
+ engines: {node: '>=18'}
+
get-intrinsic@1.3.0:
resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
engines: {node: '>= 0.4'}
@@ -7340,6 +7728,10 @@ packages:
resolution: {integrity: sha512-zPGsiS+dWoTZtZ4AtpA9Y+BdSFSNWvnouNlWNoUFyAM6xHOHmdCvqO3k8AIbdamCOv4gUFUVNPf6rJFfc4UiJw==}
hasBin: true
+ iconv-lite@0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
+
iconv-lite@0.6.3:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: '>=0.10.0'}
@@ -7384,6 +7776,9 @@ packages:
ini@1.3.8:
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+ injection-js@2.6.1:
+ resolution: {integrity: sha512-dbR5bdhi7TWDoCye9cByZqeg/gAfamm8Vu3G1KZOTYkOif8WkuM8CD0oeDPtZYMzT5YH76JAFB7bkmyY9OJi2A==}
+
inline-style-parser@0.2.7:
resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==}
@@ -7504,6 +7899,10 @@ packages:
engines: {node: '>=14.16'}
hasBin: true
+ is-interactive@2.0.0:
+ resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==}
+ engines: {node: '>=12'}
+
is-map@2.0.3:
resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
engines: {node: '>= 0.4'}
@@ -7561,6 +7960,10 @@ packages:
resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
engines: {node: '>= 0.4'}
+ is-unicode-supported@2.1.0:
+ resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==}
+ engines: {node: '>=18'}
+
is-weakmap@2.0.2:
resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
engines: {node: '>= 0.4'}
@@ -7573,6 +7976,10 @@ packages:
resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
engines: {node: '>= 0.4'}
+ is-what@4.1.16:
+ resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==}
+ engines: {node: '>=12.13'}
+
is-wsl@2.2.0:
resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
engines: {node: '>=8'}
@@ -7623,6 +8030,9 @@ packages:
js-tiktoken@1.0.21:
resolution: {integrity: sha512-biOj/6M5qdgx5TKjDnFT1ymSpM5tbd3ylwDtrQvFQSu0Z7bBYko2dF+W/aUkXUPuk6IVpRxk/3Q2sHOzGlS36g==}
+ js-tokens@10.0.0:
+ resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==}
+
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
@@ -7745,6 +8155,11 @@ packages:
leac@0.6.0:
resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==}
+ less@4.9.1:
+ resolution: {integrity: sha512-orp15PfJvvNDIqJdVWzMI9Sjpjp3VTiw3sfvbB+67LlISTEn8uVT2EdYSuyl02BLvaftv6sdk9Umnxmm5rckmg==}
+ engines: {node: '>=18'}
+ hasBin: true
+
levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
@@ -7923,6 +8338,10 @@ packages:
lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ log-symbols@7.0.1:
+ resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==}
+ engines: {node: '>=18'}
+
longest-streak@3.1.0:
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
@@ -7977,6 +8396,10 @@ packages:
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
+ make-dir@5.1.0:
+ resolution: {integrity: sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==}
+ engines: {node: '>=18'}
+
map-or-similar@1.5.0:
resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==}
@@ -8227,6 +8650,15 @@ packages:
resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==}
engines: {node: '>=18'}
+ mime@1.6.0:
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ mimic-function@5.0.1:
+ resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
+ engines: {node: '>=18'}
+
min-indent@1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
@@ -8316,6 +8748,9 @@ packages:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
+ ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
@@ -8351,6 +8786,16 @@ packages:
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+ needle@2.9.1:
+ resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==}
+ engines: {node: '>= 4.4.x'}
+ hasBin: true
+
+ needle@3.5.0:
+ resolution: {integrity: sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==}
+ engines: {node: '>= 4.4.x'}
+ hasBin: true
+
negotiator@1.0.0:
resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
engines: {node: '>= 0.6'}
@@ -8388,6 +8833,19 @@ packages:
nf3@0.3.24:
resolution: {integrity: sha512-HxLK4bo+5jNsEETZp4w3tJblHOA9MCBY14IN9nZJJV8JDxt9yNIYxuBuLMjTAR5GFa3HL61+8VQDUrXv3/C8fw==}
+ ng-packagr@22.1.1:
+ resolution: {integrity: sha512-jZzpQckw2SFvuYI3aWfYMefSVKKG/04E+vrX2KD6coMx7ciLBotVWuLc0331Fjb6XNmAVcsmgQ5NY/Lf+9Himw==}
+ engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0}
+ hasBin: true
+ peerDependencies:
+ '@angular/compiler-cli': ^22.0.0 || ^22.1.0-next || ^22.2.0-next
+ tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0
+ tslib: ^2.3.0
+ typescript: '>=6.0 <6.1'
+ peerDependenciesMeta:
+ tailwindcss:
+ optional: true
+
nitro@3.0.260610-beta:
resolution: {integrity: sha512-KPb4L5yaF/Rx/xoGMpgHRJvZhbhGiqbRKOwwPLCH9jKTKTsEUHLjnJas85AeCzaswqa8Wi52eQBtRsODC4PS0Q==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -8509,6 +8967,10 @@ packages:
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ onetime@7.0.0:
+ resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
+ engines: {node: '>=18'}
+
oniguruma-parser@0.12.2:
resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==}
@@ -8550,6 +9012,10 @@ packages:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
+ ora@9.4.1:
+ resolution: {integrity: sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==}
+ engines: {node: '>=20'}
+
orderedmap@2.1.1:
resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==}
@@ -8609,6 +9075,10 @@ packages:
parse-entities@4.0.2:
resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==}
+ parse-node-version@1.0.1:
+ resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==}
+ engines: {node: '>= 0.10'}
+
parse5-htmlparser2-tree-adapter@6.0.1:
resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==}
@@ -8681,10 +9151,18 @@ packages:
resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
engines: {node: '>= 6'}
+ piscina@5.3.2:
+ resolution: {integrity: sha512-vv7l/mM7B9WgrhDaudIqv1x6v4LOBRYYmpWGdWushhpbCmVHp11sUB2v4hj1CAeTGXVxuZFz6xOU1RalAiPKfQ==}
+ engines: {node: '>=20.x'}
+
pkce-challenge@5.0.1:
resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==}
engines: {node: '>=16.20.0'}
+ pkg-dir@8.0.0:
+ resolution: {integrity: sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==}
+ engines: {node: '>=18'}
+
points-on-curve@0.2.0:
resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==}
@@ -8810,6 +9288,9 @@ packages:
resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
engines: {node: '>=6'}
+ probe-image-size@7.4.0:
+ resolution: {integrity: sha512-cdEprVtZxV+awMde9X+4jILBFYh4CARxVrQaMl4wY4YcPWbul9jntXrIW95NInBDyJwcVUP3U0T6yukN8rMBaQ==}
+
process@0.11.10:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
engines: {node: '>= 0.6.0'}
@@ -8885,6 +9366,9 @@ packages:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
+ prr@1.0.1:
+ resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
+
publint@0.3.22:
resolution: {integrity: sha512-6Z/scsr5CA7APdwyF35EY88CqgDj1textWuY788DVTJYPCWVv/Wn9G6KmLnrVRnStgYcahqN4wCDLZGSbQJ69w==}
engines: {node: '>=18'}
@@ -9096,6 +9580,9 @@ packages:
resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==}
engines: {node: '>=4'}
+ reflect-metadata@0.2.2:
+ resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==}
+
reflect.getprototypeof@1.0.10:
resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
engines: {node: '>= 0.4'}
@@ -9185,6 +9672,10 @@ packages:
engines: {node: '>= 0.4'}
hasBin: true
+ restore-cursor@5.1.0:
+ resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
+ engines: {node: '>=18'}
+
reusify@1.1.0:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
@@ -9225,6 +9716,13 @@ packages:
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
+ rollup-plugin-dts@6.4.1:
+ resolution: {integrity: sha512-l//F3Zf7ID5GoOfLfD8kroBjQKEKpy1qfhtAdnpibFZMffPaylrg1CoDC2vGkPeTeyxUe4bVFCln2EFuL7IGGg==}
+ engines: {node: '>=20'}
+ peerDependencies:
+ rollup: ^3.29.4 || ^4
+ typescript: ^4.5 || ^5.0 || ^6.0
+
rollup@4.62.3:
resolution: {integrity: sha512-Gu0c0iH9FzgX1L1t7ByIbbS3Vmdz+6KHm/EsqmmC71gUQ82yvZRkTK6XzrFObSka91WUVdynqp6nsfilzr5k6Q==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -9286,6 +9784,10 @@ packages:
engines: {node: '>=20.19.0'}
hasBin: true
+ sax@1.6.1:
+ resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==}
+ engines: {node: '>=11.0.0'}
+
saxes@6.0.0:
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
engines: {node: '>=v12.22.7'}
@@ -9430,6 +9932,10 @@ packages:
std-env@4.2.0:
resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==}
+ stdin-discarder@0.3.2:
+ resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==}
+ engines: {node: '>=18'}
+
stop-iteration-iterator@1.1.0:
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
engines: {node: '>= 0.4'}
@@ -9458,6 +9964,9 @@ packages:
prettier:
optional: true
+ stream-parser@0.3.1:
+ resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -9466,6 +9975,14 @@ packages:
resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
engines: {node: '>=12'}
+ string-width@7.2.0:
+ resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
+ engines: {node: '>=18'}
+
+ string-width@8.2.2:
+ resolution: {integrity: sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==}
+ engines: {node: '>=20'}
+
string.prototype.includes@2.0.1:
resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==}
engines: {node: '>= 0.4'}
@@ -9787,8 +10304,8 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
- typescript@5.9.3:
- resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ typescript@6.0.3:
+ resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==}
engines: {node: '>=14.17'}
hasBin: true
@@ -10026,6 +10543,10 @@ packages:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
+ verkit@0.3.2:
+ resolution: {integrity: sha512-zj/ob3UsvJGN0whEAKFp53REA5X66hvffVqoCtVQAakJKnKlH+/PcOfMoFwIG/o4rElqLv/ycAFlx8ZlXUorCg==}
+ engines: {node: '>=18.12.0'}
+
vfile-location@5.0.3:
resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
@@ -10276,6 +10797,10 @@ packages:
resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
engines: {node: '>=12'}
+ wrap-ansi@9.0.2:
+ resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==}
+ engines: {node: '>=18'}
+
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
@@ -10322,6 +10847,10 @@ packages:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
+ yargs-parser@22.0.0:
+ resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=23}
+
yargs@16.2.2:
resolution: {integrity: sha512-Nt9ZJjXTv5R8MHbqby/wXQ6Gi0Bb3TcYZkR1bzuL4yB2OxWPkXknz513gEF0GoA6tn00UpbPvERW8rzCuWCA6w==}
engines: {node: '>=10'}
@@ -10330,10 +10859,18 @@ packages:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
+ yargs@18.1.0:
+ resolution: {integrity: sha512-2rAgRKu54VsHkqI0/tYkmluGXHD4KW7yZoycuqDQ15QOTnc2VVfy0nN/1eMhnQLO00A+dwtK20xuCnc1YGeUyg==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=23}
+
yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
+ yoctocolors@2.2.0:
+ resolution: {integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==}
+ engines: {node: '>=18'}
+
zimmerframe@1.1.4:
resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==}
@@ -10354,6 +10891,9 @@ packages:
zod@4.4.3:
resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==}
+ zone.js@0.16.3:
+ resolution: {integrity: sha512-ihXL9+vhYyEhXz4TDNpHeAOZN9FVrbog0Il64OIEI28UP/n5AaI6gsccRuOHBfx+206agzyoK527bYIO0Foy6A==}
+
zustand@4.5.7:
resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==}
engines: {node: '>=12.7.0'}
@@ -10398,31 +10938,82 @@ snapshots:
dependencies:
zod: 3.25.76
- '@ag-ui/core@0.0.57':
+ '@ag-ui/core@0.0.57':
+ dependencies:
+ zod: 3.25.76
+
+ '@ai-sdk/gateway@3.0.158(zod@4.4.3)':
+ dependencies:
+ '@ai-sdk/provider': 3.0.14
+ '@ai-sdk/provider-utils': 4.0.40(zod@4.4.3)
+ '@vercel/oidc': 3.2.0
+ zod: 4.4.3
+
+ '@ai-sdk/provider-utils@4.0.40(zod@4.4.3)':
+ dependencies:
+ '@ai-sdk/provider': 3.0.14
+ '@standard-schema/spec': 1.1.0
+ eventsource-parser: 3.1.0
+ zod: 4.4.3
+
+ '@ai-sdk/provider@3.0.14':
+ dependencies:
+ json-schema: 0.4.0
+
+ '@alloc/quick-lru@5.2.0': {}
+
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@andrewbranch/untar.js@1.0.3': {}
+
+ '@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2)':
+ dependencies:
+ '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3)
+ rxjs: 7.8.2
+ tslib: 2.8.1
+
+ '@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3)':
+ dependencies:
+ '@angular/compiler': 22.1.6
+ '@babel/core': 8.0.1
+ '@jridgewell/sourcemap-codec': 1.5.5
+ chokidar: 5.0.0
+ convert-source-map: 1.9.0
+ reflect-metadata: 0.2.2
+ semver: 7.8.5
+ tslib: 2.8.1
+ yargs: 18.1.0
+ optionalDependencies:
+ typescript: 6.0.3
+
+ '@angular/compiler@22.1.6':
dependencies:
- zod: 3.25.76
+ tslib: 2.8.1
- '@ai-sdk/gateway@3.0.158(zod@4.4.3)':
+ '@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3)':
dependencies:
- '@ai-sdk/provider': 3.0.14
- '@ai-sdk/provider-utils': 4.0.40(zod@4.4.3)
- '@vercel/oidc': 3.2.0
- zod: 4.4.3
+ rxjs: 7.8.2
+ tslib: 2.8.1
+ optionalDependencies:
+ '@angular/compiler': 22.1.6
+ zone.js: 0.16.3
- '@ai-sdk/provider-utils@4.0.40(zod@4.4.3)':
+ '@angular/platform-browser-dynamic@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2))(@angular/compiler@22.1.6)(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3)))':
dependencies:
- '@ai-sdk/provider': 3.0.14
- '@standard-schema/spec': 1.1.0
- eventsource-parser: 3.1.0
- zod: 4.4.3
+ '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2)
+ '@angular/compiler': 22.1.6
+ '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3)
+ '@angular/platform-browser': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))
+ tslib: 2.8.1
- '@ai-sdk/provider@3.0.14':
+ '@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))':
dependencies:
- json-schema: 0.4.0
-
- '@alloc/quick-lru@5.2.0': {}
-
- '@andrewbranch/untar.js@1.0.3': {}
+ '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2)
+ '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3)
+ tslib: 2.8.1
'@antfu/install-pkg@1.1.0':
dependencies:
@@ -10671,8 +11262,15 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
+ '@babel/code-frame@8.0.0':
+ dependencies:
+ '@babel/helper-validator-identifier': 8.0.4
+ js-tokens: 10.0.0
+
'@babel/compat-data@7.29.7': {}
+ '@babel/compat-data@8.0.5': {}
+
'@babel/core@7.29.7':
dependencies:
'@babel/code-frame': 7.29.7
@@ -10693,6 +11291,25 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/core@8.0.1':
+ dependencies:
+ '@babel/code-frame': 8.0.0
+ '@babel/generator': 8.0.5
+ '@babel/helper-compilation-targets': 8.0.5
+ '@babel/helpers': 8.0.5
+ '@babel/parser': 8.0.4
+ '@babel/template': 8.0.0
+ '@babel/traverse': 8.0.5
+ '@babel/types': 8.0.4
+ '@types/gensync': 1.0.5
+ convert-source-map: 2.0.0
+ empathic: 2.0.1
+ gensync: 1.0.0-beta.2
+ import-meta-resolve: 4.2.0
+ json5: 2.2.3
+ obug: 2.1.4
+ semver: 7.8.5
+
'@babel/generator@7.29.7':
dependencies:
'@babel/parser': 7.29.7
@@ -10710,6 +11327,15 @@ snapshots:
'@types/jsesc': 2.5.1
jsesc: 3.1.0
+ '@babel/generator@8.0.5':
+ dependencies:
+ '@babel/parser': 8.0.5
+ '@babel/types': 8.0.5
+ '@jridgewell/gen-mapping': 0.4.0-beta.0
+ '@jridgewell/trace-mapping': 0.3.31
+ '@types/jsesc': 2.5.1
+ jsesc: 3.1.0
+
'@babel/helper-compilation-targets@7.29.7':
dependencies:
'@babel/compat-data': 7.29.7
@@ -10718,8 +11344,18 @@ snapshots:
lru-cache: 5.1.1
semver: 6.3.1
+ '@babel/helper-compilation-targets@8.0.5':
+ dependencies:
+ '@babel/compat-data': 8.0.5
+ '@babel/helper-validator-option': 8.0.0
+ browserslist: 4.28.7
+ lru-cache: 11.5.2
+ verkit: 0.3.2
+
'@babel/helper-globals@7.29.7': {}
+ '@babel/helper-globals@8.0.0': {}
+
'@babel/helper-module-imports@7.29.7':
dependencies:
'@babel/traverse': 7.29.7
@@ -10748,11 +11384,18 @@ snapshots:
'@babel/helper-validator-option@7.29.7': {}
+ '@babel/helper-validator-option@8.0.0': {}
+
'@babel/helpers@7.29.7':
dependencies:
'@babel/template': 7.29.7
'@babel/types': 7.29.7
+ '@babel/helpers@8.0.5':
+ dependencies:
+ '@babel/template': 8.0.0
+ '@babel/types': 8.0.5
+
'@babel/parser@7.29.7':
dependencies:
'@babel/types': 7.29.7
@@ -10765,6 +11408,10 @@ snapshots:
dependencies:
'@babel/types': 8.0.4
+ '@babel/parser@8.0.5':
+ dependencies:
+ '@babel/types': 8.0.5
+
'@babel/runtime@7.29.7': {}
'@babel/template@7.29.7':
@@ -10773,6 +11420,12 @@ snapshots:
'@babel/parser': 7.29.7
'@babel/types': 7.29.7
+ '@babel/template@8.0.0':
+ dependencies:
+ '@babel/code-frame': 8.0.0
+ '@babel/parser': 8.0.4
+ '@babel/types': 8.0.4
+
'@babel/traverse@7.29.7':
dependencies:
'@babel/code-frame': 7.29.7
@@ -10785,6 +11438,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/traverse@8.0.5':
+ dependencies:
+ '@babel/code-frame': 8.0.0
+ '@babel/generator': 8.0.5
+ '@babel/helper-globals': 8.0.0
+ '@babel/parser': 8.0.5
+ '@babel/template': 8.0.0
+ '@babel/types': 8.0.5
+ obug: 2.1.4
+
'@babel/types@7.29.7':
dependencies:
'@babel/helper-string-parser': 7.29.7
@@ -10800,6 +11463,11 @@ snapshots:
'@babel/helper-string-parser': 8.0.0
'@babel/helper-validator-identifier': 8.0.4
+ '@babel/types@8.0.5':
+ dependencies:
+ '@babel/helper-string-parser': 8.0.0
+ '@babel/helper-validator-identifier': 8.0.4
+
'@braidai/lang@1.1.2': {}
'@braintree/sanitize-url@7.1.2': {}
@@ -11565,20 +12233,25 @@ snapshots:
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
- '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.9.3)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@6.0.3)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
dependencies:
glob: 10.5.0
magic-string: 0.27.0
- react-docgen-typescript: 2.4.0(typescript@5.9.3)
- vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ react-docgen-typescript: 2.4.0(typescript@6.0.3)
+ vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
optionalDependencies:
- typescript: 5.9.3
+ typescript: 6.0.3
'@jridgewell/gen-mapping@0.3.13':
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
'@jridgewell/trace-mapping': 0.3.31
+ '@jridgewell/gen-mapping@0.4.0-beta.0':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.6.0
+ '@jridgewell/trace-mapping': 0.3.31
+
'@jridgewell/remapping@2.3.5':
dependencies:
'@jridgewell/gen-mapping': 0.3.13
@@ -11593,6 +12266,8 @@ snapshots:
'@jridgewell/sourcemap-codec@1.5.5': {}
+ '@jridgewell/sourcemap-codec@1.6.0': {}
+
'@jridgewell/trace-mapping@0.3.31':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
@@ -11618,7 +12293,7 @@ snapshots:
dependencies:
'@langchain/core': 1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1)
- '@langchain/langgraph-sdk@1.9.28(@langchain/core@1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vue@3.5.40(typescript@5.9.3))':
+ '@langchain/langgraph-sdk@1.9.28(@langchain/core@1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vue@3.5.40(typescript@6.0.3))':
dependencies:
'@langchain/core': 1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1)
'@langchain/protocol': 0.0.18
@@ -11629,13 +12304,13 @@ snapshots:
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
svelte: 5.56.8(@typescript-eslint/types@8.65.0)
- vue: 3.5.40(typescript@5.9.3)
+ vue: 3.5.40(typescript@6.0.3)
- '@langchain/langgraph@1.4.8(@langchain/core@1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vue@3.5.40(typescript@5.9.3))(zod@4.4.3)':
+ '@langchain/langgraph@1.4.8(@langchain/core@1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)':
dependencies:
'@langchain/core': 1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1)
'@langchain/langgraph-checkpoint': 1.1.3(@langchain/core@1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1))
- '@langchain/langgraph-sdk': 1.9.28(@langchain/core@1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vue@3.5.40(typescript@5.9.3))
+ '@langchain/langgraph-sdk': 1.9.28(@langchain/core@1.2.3(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(openai@6.49.0(@aws-sdk/credential-provider-node@3.972.73)(@smithy/signature-v4@5.6.11)(ws@8.21.1)(zod@4.4.3))(ws@8.21.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vue@3.5.40(typescript@6.0.3))
'@langchain/protocol': 0.0.18
'@standard-schema/spec': 1.1.0
zod: 4.4.3
@@ -11742,6 +12417,81 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@napi-rs/lzma-linux-x64-gnu@1.5.1':
+ optional: true
+
+ '@napi-rs/nice-android-arm-eabi@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-android-arm64@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-darwin-arm64@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-darwin-x64@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-freebsd-x64@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-linux-arm-gnueabihf@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-linux-arm64-gnu@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-linux-arm64-musl@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-linux-ppc64-gnu@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-linux-riscv64-gnu@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-linux-s390x-gnu@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-linux-x64-gnu@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-linux-x64-musl@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-openharmony-arm64@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-win32-arm64-msvc@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-win32-ia32-msvc@1.1.1':
+ optional: true
+
+ '@napi-rs/nice-win32-x64-msvc@1.1.1':
+ optional: true
+
+ '@napi-rs/nice@1.1.1':
+ optionalDependencies:
+ '@napi-rs/nice-android-arm-eabi': 1.1.1
+ '@napi-rs/nice-android-arm64': 1.1.1
+ '@napi-rs/nice-darwin-arm64': 1.1.1
+ '@napi-rs/nice-darwin-x64': 1.1.1
+ '@napi-rs/nice-freebsd-x64': 1.1.1
+ '@napi-rs/nice-linux-arm-gnueabihf': 1.1.1
+ '@napi-rs/nice-linux-arm64-gnu': 1.1.1
+ '@napi-rs/nice-linux-arm64-musl': 1.1.1
+ '@napi-rs/nice-linux-ppc64-gnu': 1.1.1
+ '@napi-rs/nice-linux-riscv64-gnu': 1.1.1
+ '@napi-rs/nice-linux-s390x-gnu': 1.1.1
+ '@napi-rs/nice-linux-x64-gnu': 1.1.1
+ '@napi-rs/nice-linux-x64-musl': 1.1.1
+ '@napi-rs/nice-openharmony-arm64': 1.1.1
+ '@napi-rs/nice-win32-arm64-msvc': 1.1.1
+ '@napi-rs/nice-win32-ia32-msvc': 1.1.1
+ '@napi-rs/nice-win32-x64-msvc': 1.1.1
+ optional: true
+
'@napi-rs/wasm-runtime@1.2.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
dependencies:
'@emnapi/core': 1.10.0
@@ -13451,6 +14201,12 @@ snapshots:
'@rolldown/pluginutils@1.0.1': {}
+ '@rollup/plugin-json@6.1.0(rollup@4.62.3)':
+ dependencies:
+ '@rollup/pluginutils': 5.4.0(rollup@4.62.3)
+ optionalDependencies:
+ rollup: 4.62.3
+
'@rollup/pluginutils@5.4.0(rollup@4.62.3)':
dependencies:
'@types/estree': 1.0.9
@@ -13534,6 +14290,13 @@ snapshots:
'@rollup/rollup-win32-x64-msvc@4.62.3':
optional: true
+ '@rollup/wasm-node@4.63.1':
+ dependencies:
+ '@types/estree': 1.0.9
+ optionalDependencies:
+ '@napi-rs/lzma-linux-x64-gnu': 1.5.1
+ fsevents: 2.3.3
+
'@rtsao/scc@1.1.0': {}
'@selderee/plugin-htmlparser2@0.11.0':
@@ -13732,13 +14495,13 @@ snapshots:
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
- '@storybook/builder-vite@8.6.18(storybook@8.6.18(prettier@3.9.6))(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
+ '@storybook/builder-vite@8.6.18(storybook@8.6.18(prettier@3.9.6))(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
dependencies:
'@storybook/csf-plugin': 8.6.18(storybook@8.6.18(prettier@3.9.6))
browser-assert: 1.2.1
storybook: 8.6.18(prettier@3.9.6)
ts-dedent: 2.3.0
- vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
'@storybook/components@8.6.18(storybook@8.6.18(prettier@3.9.6))':
dependencies:
@@ -13830,12 +14593,12 @@ snapshots:
react-dom: 19.2.4(react@19.2.4)
storybook: 8.6.18(prettier@3.9.6)
- '@storybook/react-vite@8.6.18(@storybook/test@8.6.15(storybook@8.6.18(prettier@3.9.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(rollup@4.62.3)(storybook@8.6.18(prettier@3.9.6))(typescript@5.9.3)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
+ '@storybook/react-vite@8.6.18(@storybook/test@8.6.15(storybook@8.6.18(prettier@3.9.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(rollup@4.62.3)(storybook@8.6.18(prettier@3.9.6))(typescript@6.0.3)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.9.3)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@6.0.3)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
'@rollup/pluginutils': 5.4.0(rollup@4.62.3)
- '@storybook/builder-vite': 8.6.18(storybook@8.6.18(prettier@3.9.6))(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
- '@storybook/react': 8.6.18(@storybook/test@8.6.15(storybook@8.6.18(prettier@3.9.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.18(prettier@3.9.6))(typescript@5.9.3)
+ '@storybook/builder-vite': 8.6.18(storybook@8.6.18(prettier@3.9.6))(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ '@storybook/react': 8.6.18(@storybook/test@8.6.15(storybook@8.6.18(prettier@3.9.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.18(prettier@3.9.6))(typescript@6.0.3)
find-up: 5.0.0
magic-string: 0.30.21
react: 19.2.4
@@ -13844,7 +14607,7 @@ snapshots:
resolve: 1.22.12
storybook: 8.6.18(prettier@3.9.6)
tsconfig-paths: 4.2.0
- vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
optionalDependencies:
'@storybook/test': 8.6.15(storybook@8.6.18(prettier@3.9.6))
transitivePeerDependencies:
@@ -13852,7 +14615,7 @@ snapshots:
- supports-color
- typescript
- '@storybook/react@8.6.18(@storybook/test@8.6.15(storybook@8.6.18(prettier@3.9.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.18(prettier@3.9.6))(typescript@5.9.3)':
+ '@storybook/react@8.6.18(@storybook/test@8.6.15(storybook@8.6.18(prettier@3.9.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.18(prettier@3.9.6))(typescript@6.0.3)':
dependencies:
'@storybook/components': 8.6.18(storybook@8.6.18(prettier@3.9.6))
'@storybook/global': 5.0.0
@@ -13865,7 +14628,7 @@ snapshots:
storybook: 8.6.18(prettier@3.9.6)
optionalDependencies:
'@storybook/test': 8.6.15(storybook@8.6.18(prettier@3.9.6))
- typescript: 5.9.3
+ typescript: 6.0.3
'@storybook/test@8.6.14(storybook@8.6.18(prettier@3.9.6))':
dependencies:
@@ -13903,36 +14666,36 @@ snapshots:
'@sveltejs/load-config@0.2.1': {}
- '@sveltejs/package@2.5.8(svelte@5.56.8(@typescript-eslint/types@8.65.0))(typescript@5.9.3)':
+ '@sveltejs/package@2.5.8(svelte@5.56.8(@typescript-eslint/types@8.65.0))(typescript@6.0.3)':
dependencies:
chokidar: 5.0.0
kleur: 4.1.5
sade: 1.8.1
semver: 7.8.5
svelte: 5.56.8(@typescript-eslint/types@8.65.0)
- svelte2tsx: 0.7.59(svelte@5.56.8(@typescript-eslint/types@8.65.0))(typescript@5.9.3)
+ svelte2tsx: 0.7.59(svelte@5.56.8(@typescript-eslint/types@8.65.0))(typescript@6.0.3)
transitivePeerDependencies:
- typescript
- '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
+ '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
dependencies:
- '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
debug: 4.4.3
svelte: 5.56.8(@typescript-eslint/types@8.65.0)
- vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
transitivePeerDependencies:
- supports-color
- '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
+ '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
dependencies:
- '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
debug: 4.4.3
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.21
svelte: 5.56.8(@typescript-eslint/types@8.65.0)
- vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
- vitefu: 1.1.3(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vitefu: 1.1.3(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
transitivePeerDependencies:
- supports-color
@@ -14109,14 +14872,14 @@ snapshots:
dependencies:
svelte: 5.56.8(@typescript-eslint/types@8.65.0)
- '@testing-library/svelte@5.4.2(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))(vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)))':
+ '@testing-library/svelte@5.4.2(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))(vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)))':
dependencies:
'@testing-library/dom': 10.4.1
'@testing-library/svelte-core': 1.1.3(svelte@5.56.8(@typescript-eslint/types@8.65.0))
svelte: 5.56.8(@typescript-eslint/types@8.65.0)
optionalDependencies:
- vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
- vitest: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vitest: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
'@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)':
dependencies:
@@ -14455,6 +15218,8 @@ snapshots:
'@types/estree@1.0.9': {}
+ '@types/gensync@1.0.5': {}
+
'@types/geojson@7946.0.16': {}
'@types/hast@3.0.5':
@@ -14537,68 +15302,68 @@ snapshots:
'@types/uuid@9.0.8': {}
- '@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3)':
+ '@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3))(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3)
'@typescript-eslint/scope-manager': 8.65.0
- '@typescript-eslint/type-utils': 8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3)
- '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3)
+ '@typescript-eslint/type-utils': 8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3)
'@typescript-eslint/visitor-keys': 8.65.0
eslint: 9.39.5(jiti@1.21.7)
ignore: 7.0.6
natural-compare: 1.4.0
- ts-api-utils: 2.5.0(typescript@5.9.3)
- typescript: 5.9.3
+ ts-api-utils: 2.5.0(typescript@6.0.3)
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)':
+ '@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
'@typescript-eslint/scope-manager': 8.65.0
- '@typescript-eslint/type-utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
- '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
+ '@typescript-eslint/type-utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
'@typescript-eslint/visitor-keys': 8.65.0
eslint: 9.39.5(jiti@2.7.0)
ignore: 7.0.6
natural-compare: 1.4.0
- ts-api-utils: 2.5.0(typescript@5.9.3)
- typescript: 5.9.3
+ ts-api-utils: 2.5.0(typescript@6.0.3)
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3)':
+ '@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.65.0
'@typescript-eslint/types': 8.65.0
- '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3)
'@typescript-eslint/visitor-keys': 8.65.0
debug: 4.4.3
eslint: 9.39.5(jiti@1.21.7)
- typescript: 5.9.3
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)':
+ '@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.65.0
'@typescript-eslint/types': 8.65.0
- '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3)
'@typescript-eslint/visitor-keys': 8.65.0
debug: 4.4.3
eslint: 9.39.5(jiti@2.7.0)
- typescript: 5.9.3
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.65.0(typescript@5.9.3)':
+ '@typescript-eslint/project-service@8.65.0(typescript@6.0.3)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@6.0.3)
'@typescript-eslint/types': 8.65.0
debug: 4.4.3
- typescript: 5.9.3
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
@@ -14607,70 +15372,70 @@ snapshots:
'@typescript-eslint/types': 8.65.0
'@typescript-eslint/visitor-keys': 8.65.0
- '@typescript-eslint/tsconfig-utils@8.65.0(typescript@5.9.3)':
+ '@typescript-eslint/tsconfig-utils@8.65.0(typescript@6.0.3)':
dependencies:
- typescript: 5.9.3
+ typescript: 6.0.3
- '@typescript-eslint/type-utils@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3)':
+ '@typescript-eslint/type-utils@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3)':
dependencies:
'@typescript-eslint/types': 8.65.0
- '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3)
- '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3)
debug: 4.4.3
eslint: 9.39.5(jiti@1.21.7)
- ts-api-utils: 2.5.0(typescript@5.9.3)
- typescript: 5.9.3
+ ts-api-utils: 2.5.0(typescript@6.0.3)
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/type-utils@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)':
+ '@typescript-eslint/type-utils@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)':
dependencies:
'@typescript-eslint/types': 8.65.0
- '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3)
- '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
debug: 4.4.3
eslint: 9.39.5(jiti@2.7.0)
- ts-api-utils: 2.5.0(typescript@5.9.3)
- typescript: 5.9.3
+ ts-api-utils: 2.5.0(typescript@6.0.3)
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/types@8.65.0': {}
- '@typescript-eslint/typescript-estree@8.65.0(typescript@5.9.3)':
+ '@typescript-eslint/typescript-estree@8.65.0(typescript@6.0.3)':
dependencies:
- '@typescript-eslint/project-service': 8.65.0(typescript@5.9.3)
- '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@5.9.3)
+ '@typescript-eslint/project-service': 8.65.0(typescript@6.0.3)
+ '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@6.0.3)
'@typescript-eslint/types': 8.65.0
'@typescript-eslint/visitor-keys': 8.65.0
debug: 4.4.3
minimatch: 10.2.6
semver: 7.8.5
tinyglobby: 0.2.17
- ts-api-utils: 2.5.0(typescript@5.9.3)
- typescript: 5.9.3
+ ts-api-utils: 2.5.0(typescript@6.0.3)
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3)':
+ '@typescript-eslint/utils@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3)':
dependencies:
'@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@1.21.7))
'@typescript-eslint/scope-manager': 8.65.0
'@typescript-eslint/types': 8.65.0
- '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3)
eslint: 9.39.5(jiti@1.21.7)
- typescript: 5.9.3
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)':
+ '@typescript-eslint/utils@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)':
dependencies:
'@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@2.7.0))
'@typescript-eslint/scope-manager': 8.65.0
'@typescript-eslint/types': 8.65.0
- '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3)
eslint: 9.39.5(jiti@2.7.0)
- typescript: 5.9.3
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
@@ -14817,11 +15582,11 @@ snapshots:
'@vercel/oidc@3.2.0': {}
- '@vitejs/plugin-vue@6.0.8(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))':
+ '@vitejs/plugin-vue@6.0.8(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))':
dependencies:
'@rolldown/pluginutils': 1.0.1
- vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
- vue: 3.5.40(typescript@5.9.3)
+ vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vue: 3.5.40(typescript@6.0.3)
'@vitest/expect@2.0.5':
dependencies:
@@ -14847,45 +15612,45 @@ snapshots:
chai: 6.2.2
tinyrainbow: 3.1.1
- '@vitest/mocker@4.1.10(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
+ '@vitest/mocker@4.1.10(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
dependencies:
'@vitest/spy': 4.1.10
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
- '@vitest/mocker@4.1.10(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
+ '@vitest/mocker@4.1.10(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
dependencies:
'@vitest/spy': 4.1.10
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
- '@vitest/mocker@4.1.10(vite@7.3.6(@types/node@20.19.43)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
+ '@vitest/mocker@4.1.10(vite@7.3.6(@types/node@20.19.43)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
dependencies:
'@vitest/spy': 4.1.10
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.3.6(@types/node@20.19.43)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 7.3.6(@types/node@20.19.43)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
- '@vitest/mocker@4.1.10(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
+ '@vitest/mocker@4.1.10(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
dependencies:
'@vitest/spy': 4.1.10
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.3.6(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 7.3.6(@types/node@22.20.1)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
- '@vitest/mocker@4.1.10(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
+ '@vitest/mocker@4.1.10(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))':
dependencies:
'@vitest/spy': 4.1.10
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
'@vitest/pretty-format@2.0.5':
dependencies:
@@ -14997,7 +15762,7 @@ snapshots:
de-indent: 1.0.2
he: 1.2.0
- '@vue/language-core@2.2.12(typescript@5.9.3)':
+ '@vue/language-core@2.2.12(typescript@6.0.3)':
dependencies:
'@volar/language-core': 2.4.15
'@vue/compiler-dom': 3.5.40
@@ -15008,7 +15773,7 @@ snapshots:
muggle-string: 0.4.1
path-browserify: 1.0.1
optionalDependencies:
- typescript: 5.9.3
+ typescript: 6.0.3
'@vue/reactivity@3.5.40':
dependencies:
@@ -15034,11 +15799,11 @@ snapshots:
'@vue/shared@3.5.40': {}
- '@vue/test-utils@2.4.11(@vue/compiler-dom@3.5.40)(@vue/server-renderer@3.5.40)(vue@3.5.40(typescript@5.9.3))':
+ '@vue/test-utils@2.4.11(@vue/compiler-dom@3.5.40)(@vue/server-renderer@3.5.40)(vue@3.5.40(typescript@6.0.3))':
dependencies:
'@vue/compiler-dom': 3.5.40
js-beautify: 1.15.4
- vue: 3.5.40(typescript@5.9.3)
+ vue: 3.5.40(typescript@6.0.3)
vue-component-type-helpers: 3.3.8
optionalDependencies:
'@vue/server-renderer': 3.5.40
@@ -15502,6 +16267,10 @@ snapshots:
dependencies:
clsx: 2.1.1
+ cli-cursor@5.0.0:
+ dependencies:
+ restore-cursor: 5.1.0
+
cli-highlight@2.1.11:
dependencies:
chalk: 4.1.2
@@ -15511,6 +16280,8 @@ snapshots:
parse5-htmlparser2-tree-adapter: 6.0.1
yargs: 16.2.2
+ cli-spinners@3.4.0: {}
+
cli-table3@0.6.5:
dependencies:
string-width: 4.2.3
@@ -15533,6 +16304,12 @@ snapshots:
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
+ cliui@9.0.1:
+ dependencies:
+ string-width: 7.2.0
+ strip-ansi: 7.2.0
+ wrap-ansi: 9.0.2
+
clsx@2.1.1: {}
cluster-key-slot@1.1.1:
@@ -15566,6 +16343,8 @@ snapshots:
commander@14.0.3: {}
+ commander@15.0.0: {}
+
commander@2.20.3: {}
commander@4.1.1: {}
@@ -15574,6 +16353,8 @@ snapshots:
commander@8.3.0: {}
+ common-path-prefix@3.0.0: {}
+
compute-scroll-into-view@3.1.1: {}
concat-map@0.0.1: {}
@@ -15600,12 +16381,18 @@ snapshots:
content-type@2.0.0: {}
+ convert-source-map@1.9.0: {}
+
convert-source-map@2.0.0: {}
cookie-signature@1.2.2: {}
cookie@0.7.2: {}
+ copy-anything@3.0.5:
+ dependencies:
+ is-what: 4.1.16
+
core-js@3.49.0: {}
cors@2.8.6:
@@ -15865,6 +16652,11 @@ snapshots:
de-indent@1.0.2: {}
+ debug@2.6.9:
+ dependencies:
+ ms: 2.0.0
+ optional: true
+
debug@3.2.7:
dependencies:
ms: 2.1.3
@@ -15925,6 +16717,8 @@ snapshots:
depd@2.0.0: {}
+ dependency-graph@1.0.0: {}
+
dequal@2.0.3: {}
detect-libc@2.1.2: {}
@@ -16005,6 +16799,8 @@ snapshots:
electron-to-chromium@1.5.397: {}
+ emoji-regex@10.6.0: {}
+
emoji-regex@8.0.0: {}
emoji-regex@9.2.2: {}
@@ -16037,6 +16833,11 @@ snapshots:
environment@1.1.0: {}
+ errno@0.1.8:
+ dependencies:
+ prr: 1.0.1
+ optional: true
+
es-abstract-get@1.0.0:
dependencies:
es-errors: 1.3.0
@@ -16239,20 +17040,20 @@ snapshots:
escape-string-regexp@5.0.0: {}
- eslint-config-next@16.2.6(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3):
+ eslint-config-next@16.2.6(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3):
dependencies:
'@next/eslint-plugin-next': 16.2.6
eslint: 9.39.5(jiti@2.7.0)
eslint-import-resolver-node: 0.3.10
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.5(jiti@2.7.0))
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0))
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0))
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.5(jiti@2.7.0))
eslint-plugin-react: 7.37.5(eslint@9.39.5(jiti@2.7.0))
eslint-plugin-react-hooks: 7.1.1(eslint@9.39.5(jiti@2.7.0))
globals: 16.4.0
- typescript-eslint: 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
+ typescript-eslint: 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
optionalDependencies:
- typescript: 5.9.3
+ typescript: 6.0.3
transitivePeerDependencies:
- '@typescript-eslint/parser'
- eslint-import-resolver-webpack
@@ -16286,22 +17087,22 @@ snapshots:
tinyglobby: 0.2.17
unrs-resolver: 1.12.2
optionalDependencies:
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0))
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0))
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.14.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)):
+ eslint-module-utils@2.14.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
eslint: 9.39.5(jiti@2.7.0)
eslint-import-resolver-node: 0.3.10
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.5(jiti@2.7.0))
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)):
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@@ -16312,7 +17113,7 @@ snapshots:
doctrine: 2.1.0
eslint: 9.39.5(jiti@2.7.0)
eslint-import-resolver-node: 0.3.10
- eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0))
+ eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0))
hasown: 2.0.4
is-core-module: 2.16.2
is-glob: 4.0.3
@@ -16324,7 +17125,7 @@ snapshots:
string.prototype.trimend: 1.0.10
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -16419,37 +17220,37 @@ snapshots:
string.prototype.matchall: 4.0.12
string.prototype.repeat: 1.0.0
- eslint-plugin-storybook@10.5.5(eslint@9.39.5(jiti@1.21.7))(storybook@8.6.18(prettier@3.9.6))(typescript@5.9.3):
+ eslint-plugin-storybook@10.5.5(eslint@9.39.5(jiti@1.21.7))(storybook@8.6.18(prettier@3.9.6))(typescript@6.0.3):
dependencies:
'@typescript-eslint/types': 8.65.0
- '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3)
eslint: 9.39.5(jiti@1.21.7)
storybook: 8.6.18(prettier@3.9.6)
transitivePeerDependencies:
- supports-color
- typescript
- eslint-plugin-storybook@10.5.5(eslint@9.39.5(jiti@2.7.0))(storybook@10.5.5(@types/react@19.2.17)(prettier@3.9.6)(react@19.2.4))(typescript@5.9.3):
+ eslint-plugin-storybook@10.5.5(eslint@9.39.5(jiti@2.7.0))(storybook@10.5.5(@types/react@19.2.17)(prettier@3.9.6)(react@19.2.4))(typescript@6.0.3):
dependencies:
'@typescript-eslint/types': 8.65.0
- '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
eslint: 9.39.5(jiti@2.7.0)
storybook: 10.5.5(@types/react@19.2.17)(prettier@3.9.6)(react@19.2.4)
transitivePeerDependencies:
- supports-color
- typescript
- eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.5(jiti@1.21.7)):
+ eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3))(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3))(eslint@9.39.5(jiti@1.21.7)):
dependencies:
eslint: 9.39.5(jiti@1.21.7)
optionalDependencies:
- '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.5(jiti@1.21.7))(typescript@5.9.3)
+ '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3))(eslint@9.39.5(jiti@1.21.7))(typescript@6.0.3)
- eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0)):
+ eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0)):
dependencies:
eslint: 9.39.5(jiti@2.7.0)
optionalDependencies:
- '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
+ '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
eslint-scope@5.1.1:
dependencies:
@@ -16620,17 +17421,17 @@ snapshots:
etag@1.8.1: {}
- eve@0.11.10(@opentelemetry/api@1.9.1)(ai@6.0.236(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(ioredis@5.11.1)(jiti@2.7.0)(lru-cache@11.5.2)(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react@19.2.4)(rollup@4.62.3)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)):
+ eve@0.11.10(@opentelemetry/api@1.9.1)(ai@6.0.236(zod@4.4.3))(chokidar@5.0.0)(dotenv@17.4.2)(ioredis@5.11.1)(jiti@2.7.0)(lru-cache@11.5.2)(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react@19.2.4)(rollup@4.62.3)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)):
dependencies:
ai: 6.0.236(zod@4.4.3)
- nitro: 3.0.260610-beta(chokidar@5.0.0)(dotenv@17.4.2)(ioredis@5.11.1)(jiti@2.7.0)(lru-cache@11.5.2)(rollup@4.62.3)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ nitro: 3.0.260610-beta(chokidar@5.0.0)(dotenv@17.4.2)(ioredis@5.11.1)(jiti@2.7.0)(lru-cache@11.5.2)(rollup@4.62.3)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
optionalDependencies:
'@opentelemetry/api': 1.9.1
next: 16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0)
react: 19.2.4
svelte: 5.56.8(@typescript-eslint/types@8.65.0)
- vite: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
- vue: 3.5.40(typescript@5.9.3)
+ vite: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vue: 3.5.40(typescript@6.0.3)
transitivePeerDependencies:
- '@azure/app-configuration'
- '@azure/cosmos'
@@ -16806,6 +17607,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ find-cache-directory@6.0.0:
+ dependencies:
+ common-path-prefix: 3.0.0
+ pkg-dir: 8.0.0
+
+ find-up-simple@1.0.1: {}
+
find-up@5.0.0:
dependencies:
locate-path: 6.0.0
@@ -16887,7 +17695,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- fumadocs-mdx@14.3.2(@types/mdast@4.0.4)(@types/mdx@2.0.14)(@types/react@19.2.17)(fumadocs-core@16.9.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.5)(@types/mdast@4.0.4)(@types/react@19.2.17)(lucide-react@0.570.0(react@19.2.4))(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.4.3))(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react@19.2.4)(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
+ fumadocs-mdx@14.3.2(@types/mdast@4.0.4)(@types/mdx@2.0.14)(@types/react@19.2.17)(fumadocs-core@16.9.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.5)(@types/mdast@4.0.4)(@types/react@19.2.17)(lucide-react@0.570.0(react@19.2.4))(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.4.3))(next@16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0))(react@19.2.4)(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
dependencies:
'@mdx-js/mdx': 3.1.1
'@standard-schema/spec': 1.1.0
@@ -16913,7 +17721,7 @@ snapshots:
'@types/react': 19.2.17
next: 16.2.6(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.102.0)
react: 19.2.4
- vite: 7.3.6(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 7.3.6(@types/node@22.20.1)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
transitivePeerDependencies:
- supports-color
@@ -16976,6 +17784,8 @@ snapshots:
get-caller-file@2.0.5: {}
+ get-east-asian-width@1.6.0: {}
+
get-intrinsic@1.3.0:
dependencies:
call-bind-apply-helpers: 1.0.2
@@ -17279,6 +18089,11 @@ snapshots:
human-id@4.2.1: {}
+ iconv-lite@0.4.24:
+ dependencies:
+ safer-buffer: 2.1.2
+ optional: true
+
iconv-lite@0.6.3:
dependencies:
safer-buffer: 2.1.2
@@ -17310,6 +18125,10 @@ snapshots:
ini@1.3.8: {}
+ injection-js@2.6.1:
+ dependencies:
+ tslib: 2.8.1
+
inline-style-parser@0.2.7: {}
internal-slot@1.1.0:
@@ -17435,6 +18254,8 @@ snapshots:
dependencies:
is-docker: 3.0.0
+ is-interactive@2.0.0: {}
+
is-map@2.0.3: {}
is-negative-zero@2.0.3: {}
@@ -17486,6 +18307,8 @@ snapshots:
dependencies:
which-typed-array: 1.1.22
+ is-unicode-supported@2.1.0: {}
+
is-weakmap@2.0.2: {}
is-weakref@1.1.1:
@@ -17497,6 +18320,8 @@ snapshots:
call-bound: 1.0.4
get-intrinsic: 1.3.0
+ is-what@4.1.16: {}
+
is-wsl@2.2.0:
dependencies:
is-docker: 2.2.1
@@ -17552,6 +18377,8 @@ snapshots:
dependencies:
base64-js: 1.5.1
+ js-tokens@10.0.0: {}
+
js-tokens@4.0.0: {}
js-yaml@4.3.0:
@@ -17666,6 +18493,21 @@ snapshots:
leac@0.6.0: {}
+ less@4.9.1:
+ dependencies:
+ copy-anything: 3.0.5
+ parse-node-version: 1.0.1
+ optionalDependencies:
+ errno: 0.1.8
+ graceful-fs: 4.2.11
+ make-dir: 5.1.0
+ mime: 1.6.0
+ needle: 3.5.0
+ probe-image-size: 7.4.0
+ source-map: 0.6.1
+ transitivePeerDependencies:
+ - supports-color
+
levn@0.4.1:
dependencies:
prelude-ls: 1.2.1
@@ -17790,6 +18632,11 @@ snapshots:
lodash@4.17.21: {}
+ log-symbols@7.0.1:
+ dependencies:
+ is-unicode-supported: 2.1.0
+ yoctocolors: 2.2.0
+
longest-streak@3.1.0: {}
loose-envify@1.4.0:
@@ -17837,6 +18684,9 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
+ make-dir@5.1.0:
+ optional: true
+
map-or-similar@1.5.0: {}
markdown-extensions@2.0.0: {}
@@ -18385,6 +19235,11 @@ snapshots:
dependencies:
mime-db: 1.54.0
+ mime@1.6.0:
+ optional: true
+
+ mimic-function@5.0.1: {}
+
min-indent@1.0.1: {}
minimatch@10.2.6:
@@ -18432,6 +19287,9 @@ snapshots:
mri@1.2.0: {}
+ ms@2.0.0:
+ optional: true
+
ms@2.1.3: {}
muggle-string@0.4.1: {}
@@ -18454,6 +19312,21 @@ snapshots:
natural-compare@1.4.0: {}
+ needle@2.9.1:
+ dependencies:
+ debug: 3.2.7
+ iconv-lite: 0.4.24
+ sax: 1.6.1
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ needle@3.5.0:
+ dependencies:
+ iconv-lite: 0.6.3
+ sax: 1.6.1
+ optional: true
+
negotiator@1.0.0: {}
neo-async@2.6.2: {}
@@ -18492,7 +19365,38 @@ snapshots:
nf3@0.3.24: {}
- nitro@3.0.260610-beta(chokidar@5.0.0)(dotenv@17.4.2)(ioredis@5.11.1)(jiti@2.7.0)(lru-cache@11.5.2)(rollup@4.62.3)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
+ ng-packagr@22.1.1(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(tailwindcss@4.3.3)(tslib@2.8.1)(typescript@6.0.3):
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@angular/compiler-cli': 22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3)
+ '@rollup/plugin-json': 6.1.0(rollup@4.62.3)
+ '@rollup/wasm-node': 4.63.1
+ ajv: 8.20.0
+ browserslist: 4.28.7
+ chokidar: 5.0.0
+ commander: 15.0.0
+ dependency-graph: 1.0.0
+ esbuild: 0.28.1
+ find-cache-directory: 6.0.0
+ injection-js: 2.6.1
+ jsonc-parser: 3.3.1
+ less: 4.9.1
+ ora: 9.4.1
+ piscina: 5.3.2
+ postcss: 8.5.24
+ rollup-plugin-dts: 6.4.1(rollup@4.62.3)(typescript@6.0.3)
+ rxjs: 7.8.2
+ sass: 1.102.0
+ tinyglobby: 0.2.17
+ tslib: 2.8.1
+ typescript: 6.0.3
+ optionalDependencies:
+ rollup: 4.62.3
+ tailwindcss: 4.3.3
+ transitivePeerDependencies:
+ - supports-color
+
+ nitro@3.0.260610-beta(chokidar@5.0.0)(dotenv@17.4.2)(ioredis@5.11.1)(jiti@2.7.0)(lru-cache@11.5.2)(rollup@4.62.3)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
dependencies:
consola: 3.4.2
crossws: 0.4.12(srvx@0.11.22)
@@ -18512,7 +19416,7 @@ snapshots:
dotenv: 17.4.2
jiti: 2.7.0
rollup: 4.62.3
- vite: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
transitivePeerDependencies:
- '@azure/app-configuration'
- '@azure/cosmos'
@@ -18650,6 +19554,10 @@ snapshots:
dependencies:
wrappy: 1.0.2
+ onetime@7.0.0:
+ dependencies:
+ mimic-function: 5.0.1
+
oniguruma-parser@0.12.2: {}
oniguruma-to-es@4.3.6:
@@ -18692,6 +19600,17 @@ snapshots:
type-check: 0.4.0
word-wrap: 1.2.5
+ ora@9.4.1:
+ dependencies:
+ chalk: 5.6.2
+ cli-cursor: 5.0.0
+ cli-spinners: 3.4.0
+ is-interactive: 2.0.0
+ is-unicode-supported: 2.1.0
+ log-symbols: 7.0.1
+ stdin-discarder: 0.3.2
+ string-width: 8.2.2
+
orderedmap@2.1.1: {}
own-keys@1.0.2:
@@ -18796,6 +19715,8 @@ snapshots:
is-decimal: 2.0.1
is-hexadecimal: 2.0.1
+ parse-node-version@1.0.1: {}
+
parse5-htmlparser2-tree-adapter@6.0.1:
dependencies:
parse5: 6.0.1
@@ -18848,8 +19769,16 @@ snapshots:
pirates@4.0.7: {}
+ piscina@5.3.2:
+ optionalDependencies:
+ '@napi-rs/nice': 1.1.1
+
pkce-challenge@5.0.1: {}
+ pkg-dir@8.0.0:
+ dependencies:
+ find-up-simple: 1.0.1
+
points-on-curve@0.2.0: {}
points-on-path@0.2.1:
@@ -18934,10 +19863,10 @@ snapshots:
dependencies:
fast-diff: 1.3.0
- prettier-plugin-organize-imports@3.2.4(prettier@3.9.6)(typescript@5.9.3):
+ prettier-plugin-organize-imports@3.2.4(prettier@3.9.6)(typescript@6.0.3):
dependencies:
prettier: 3.9.6
- typescript: 5.9.3
+ typescript: 6.0.3
prettier@3.9.6: {}
@@ -18955,6 +19884,15 @@ snapshots:
prismjs@1.30.0: {}
+ probe-image-size@7.4.0:
+ dependencies:
+ lodash.merge: 4.6.2
+ needle: 2.9.1
+ stream-parser: 0.3.1
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
process@0.11.10: {}
prop-types@15.8.1:
@@ -19075,6 +20013,9 @@ snapshots:
forwarded: 0.2.0
ipaddr.js: 1.9.1
+ prr@1.0.1:
+ optional: true
+
publint@0.3.22:
dependencies:
'@publint/pack': 0.1.6
@@ -19182,9 +20123,9 @@ snapshots:
date-fns-jalali: 4.1.0-0
react: 19.2.4
- react-docgen-typescript@2.4.0(typescript@5.9.3):
+ react-docgen-typescript@2.4.0(typescript@6.0.3):
dependencies:
- typescript: 5.9.3
+ typescript: 6.0.3
react-docgen@7.1.1:
dependencies:
@@ -19383,6 +20324,8 @@ snapshots:
redis-errors: 1.2.0
optional: true
+ reflect-metadata@0.2.2: {}
+
reflect.getprototypeof@1.0.10:
dependencies:
call-bind: 1.0.9
@@ -19547,6 +20490,11 @@ snapshots:
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
+ restore-cursor@5.1.0:
+ dependencies:
+ onetime: 7.0.0
+ signal-exit: 4.1.0
+
reusify@1.1.0: {}
rimraf@5.0.10:
@@ -19555,7 +20503,7 @@ snapshots:
robust-predicates@3.0.3: {}
- rolldown-plugin-dts@0.23.2(@typescript/native-preview@7.0.0-dev.20260523.1)(oxc-resolver@11.24.2)(rolldown@1.0.0-rc.17)(typescript@5.9.3):
+ rolldown-plugin-dts@0.23.2(@typescript/native-preview@7.0.0-dev.20260523.1)(oxc-resolver@11.24.2)(rolldown@1.0.0-rc.17)(typescript@6.0.3):
dependencies:
'@babel/generator': 8.0.0-rc.3
'@babel/helper-validator-identifier': 8.0.0-rc.3
@@ -19570,7 +20518,7 @@ snapshots:
rolldown: 1.0.0-rc.17
optionalDependencies:
'@typescript/native-preview': 7.0.0-dev.20260523.1
- typescript: 5.9.3
+ typescript: 6.0.3
transitivePeerDependencies:
- oxc-resolver
@@ -19616,6 +20564,17 @@ snapshots:
'@rolldown/binding-win32-arm64-msvc': 1.2.6
'@rolldown/binding-win32-x64-msvc': 1.2.6
+ rollup-plugin-dts@6.4.1(rollup@4.62.3)(typescript@6.0.3):
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ '@jridgewell/sourcemap-codec': 1.5.5
+ convert-source-map: 2.0.0
+ magic-string: 0.30.21
+ rollup: 4.62.3
+ typescript: 6.0.3
+ optionalDependencies:
+ '@babel/code-frame': 7.29.7
+
rollup@4.62.3:
dependencies:
'@types/estree': 1.0.9
@@ -19717,6 +20676,9 @@ snapshots:
optionalDependencies:
'@parcel/watcher': 2.6.0
+ sax@1.6.1:
+ optional: true
+
saxes@6.0.0:
dependencies:
xmlchars: 2.2.0
@@ -19910,6 +20872,8 @@ snapshots:
std-env@4.2.0: {}
+ stdin-discarder@0.3.2: {}
+
stop-iteration-iterator@1.1.0:
dependencies:
es-errors: 1.3.0
@@ -19952,6 +20916,13 @@ snapshots:
- supports-color
- utf-8-validate
+ stream-parser@0.3.1:
+ dependencies:
+ debug: 2.6.9
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -19964,6 +20935,17 @@ snapshots:
emoji-regex: 9.2.2
strip-ansi: 7.2.0
+ string-width@7.2.0:
+ dependencies:
+ emoji-regex: 10.6.0
+ get-east-asian-width: 1.6.0
+ strip-ansi: 7.2.0
+
+ string-width@8.2.2:
+ dependencies:
+ get-east-asian-width: 1.6.0
+ strip-ansi: 7.2.0
+
string.prototype.includes@2.0.1:
dependencies:
call-bind: 1.0.9
@@ -20082,7 +21064,7 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
- svelte-check@4.7.4(picomatch@4.0.5)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(typescript@5.9.3):
+ svelte-check@4.7.4(picomatch@4.0.5)(svelte@5.56.8(@typescript-eslint/types@8.65.0))(typescript@6.0.3):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
'@sveltejs/load-config': 0.2.1
@@ -20091,16 +21073,16 @@ snapshots:
picocolors: 1.1.1
sade: 1.8.1
svelte: 5.56.8(@typescript-eslint/types@8.65.0)
- typescript: 5.9.3
+ typescript: 6.0.3
transitivePeerDependencies:
- picomatch
- svelte2tsx@0.7.59(svelte@5.56.8(@typescript-eslint/types@8.65.0))(typescript@5.9.3):
+ svelte2tsx@0.7.59(svelte@5.56.8(@typescript-eslint/types@8.65.0))(typescript@6.0.3):
dependencies:
dedent-js: 1.0.1
scule: 1.3.0
svelte: 5.56.8(@typescript-eslint/types@8.65.0)
- typescript: 5.9.3
+ typescript: 6.0.3
svelte@5.56.8(@typescript-eslint/types@8.65.0):
dependencies:
@@ -20233,9 +21215,9 @@ snapshots:
trough@2.2.0: {}
- ts-api-utils@2.5.0(typescript@5.9.3):
+ ts-api-utils@2.5.0(typescript@6.0.3):
dependencies:
- typescript: 5.9.3
+ typescript: 6.0.3
ts-dedent@2.3.0: {}
@@ -20254,7 +21236,7 @@ snapshots:
minimist: 1.2.8
strip-bom: 3.0.0
- tsdown@0.21.10(@arethetypeswrong/core@0.18.5)(@typescript/native-preview@7.0.0-dev.20260523.1)(oxc-resolver@11.24.2)(publint@0.3.22)(synckit@0.11.13)(typescript@5.9.3):
+ tsdown@0.21.10(@arethetypeswrong/core@0.18.5)(@typescript/native-preview@7.0.0-dev.20260523.1)(oxc-resolver@11.24.2)(publint@0.3.22)(synckit@0.11.13)(typescript@6.0.3):
dependencies:
ansis: 4.3.1
cac: 7.0.0
@@ -20265,7 +21247,7 @@ snapshots:
obug: 2.1.4
picomatch: 4.0.5
rolldown: 1.0.0-rc.17
- rolldown-plugin-dts: 0.23.2(@typescript/native-preview@7.0.0-dev.20260523.1)(oxc-resolver@11.24.2)(rolldown@1.0.0-rc.17)(typescript@5.9.3)
+ rolldown-plugin-dts: 0.23.2(@typescript/native-preview@7.0.0-dev.20260523.1)(oxc-resolver@11.24.2)(rolldown@1.0.0-rc.17)(typescript@6.0.3)
semver: 7.8.5
tinyexec: 1.2.4
tinyglobby: 0.2.17
@@ -20275,7 +21257,7 @@ snapshots:
optionalDependencies:
'@arethetypeswrong/core': 0.18.5
publint: 0.3.22
- typescript: 5.9.3
+ typescript: 6.0.3
transitivePeerDependencies:
- '@ts-macro/tsc'
- '@typescript/native-preview'
@@ -20336,20 +21318,20 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
- typescript-eslint@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3):
+ typescript-eslint@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
- '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
- '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3)
- '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)
+ '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
+ '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
+ '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@6.0.3)
eslint: 9.39.5(jiti@2.7.0)
- typescript: 5.9.3
+ typescript: 6.0.3
transitivePeerDependencies:
- supports-color
typescript@5.6.1-rc: {}
- typescript@5.9.3: {}
+ typescript@6.0.3: {}
uc.micro@2.1.0: {}
@@ -20540,6 +21522,8 @@ snapshots:
vary@1.1.2: {}
+ verkit@0.3.2: {}
+
vfile-location@5.0.3:
dependencies:
'@types/unist': 3.0.3
@@ -20572,7 +21556,7 @@ snapshots:
d3-time: 3.1.0
d3-timer: 3.0.1
- vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0):
+ vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0):
dependencies:
esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.5)
@@ -20584,13 +21568,14 @@ snapshots:
'@types/node': 22.20.1
fsevents: 2.3.3
jiti: 1.21.7
+ less: 4.9.1
lightningcss: 1.33.0
sass: 1.102.0
terser: 5.49.0
tsx: 4.23.1
yaml: 2.9.0
- vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0):
+ vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0):
dependencies:
esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.5)
@@ -20602,13 +21587,14 @@ snapshots:
'@types/node': 24.13.3
fsevents: 2.3.3
jiti: 2.7.0
+ less: 4.9.1
lightningcss: 1.33.0
sass: 1.102.0
terser: 5.49.0
tsx: 4.23.1
yaml: 2.9.0
- vite@7.3.6(@types/node@20.19.43)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0):
+ vite@7.3.6(@types/node@20.19.43)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0):
dependencies:
esbuild: 0.28.1
fdir: 6.5.0(picomatch@4.0.5)
@@ -20620,13 +21606,14 @@ snapshots:
'@types/node': 20.19.43
fsevents: 2.3.3
jiti: 2.7.0
+ less: 4.9.1
lightningcss: 1.33.0
sass: 1.102.0
terser: 5.49.0
tsx: 4.23.1
yaml: 2.9.0
- vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0):
+ vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0):
dependencies:
esbuild: 0.28.1
fdir: 6.5.0(picomatch@4.0.5)
@@ -20638,13 +21625,14 @@ snapshots:
'@types/node': 22.20.1
fsevents: 2.3.3
jiti: 2.7.0
+ less: 4.9.1
lightningcss: 1.33.0
sass: 1.102.0
terser: 5.49.0
tsx: 4.23.1
yaml: 2.9.0
- vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0):
+ vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0):
dependencies:
esbuild: 0.28.1
fdir: 6.5.0(picomatch@4.0.5)
@@ -20656,20 +21644,21 @@ snapshots:
'@types/node': 24.13.3
fsevents: 2.3.3
jiti: 2.7.0
+ less: 4.9.1
lightningcss: 1.33.0
sass: 1.102.0
terser: 5.49.0
tsx: 4.23.1
yaml: 2.9.0
- vitefu@1.1.3(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
+ vitefu@1.1.3(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
optionalDependencies:
- vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
- vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@20.19.43)(jsdom@26.1.0)(vite@7.3.6(@types/node@20.19.43)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
+ vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@20.19.43)(jsdom@26.1.0)(vite@7.3.6(@types/node@20.19.43)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
dependencies:
'@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(vite@7.3.6(@types/node@20.19.43)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ '@vitest/mocker': 4.1.10(vite@7.3.6(@types/node@20.19.43)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.10
'@vitest/runner': 4.1.10
'@vitest/snapshot': 4.1.10
@@ -20686,7 +21675,7 @@ snapshots:
tinyexec: 1.2.4
tinyglobby: 0.2.17
tinyrainbow: 3.1.1
- vite: 7.3.6(@types/node@20.19.43)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 7.3.6(@types/node@20.19.43)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@opentelemetry/api': 1.9.1
@@ -20695,10 +21684,10 @@ snapshots:
transitivePeerDependencies:
- msw
- vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(jsdom@26.1.0)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
+ vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(jsdom@26.1.0)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
dependencies:
'@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ '@vitest/mocker': 4.1.10(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.10
'@vitest/runner': 4.1.10
'@vitest/snapshot': 4.1.10
@@ -20715,7 +21704,7 @@ snapshots:
tinyexec: 1.2.4
tinyglobby: 0.2.17
tinyrainbow: 3.1.1
- vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.7)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.7)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@opentelemetry/api': 1.9.1
@@ -20724,10 +21713,10 @@ snapshots:
transitivePeerDependencies:
- msw
- vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(jsdom@26.1.0)(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
+ vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(jsdom@26.1.0)(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
dependencies:
'@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ '@vitest/mocker': 4.1.10(vite@7.3.6(@types/node@22.20.1)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.10
'@vitest/runner': 4.1.10
'@vitest/snapshot': 4.1.10
@@ -20744,7 +21733,7 @@ snapshots:
tinyexec: 1.2.4
tinyglobby: 0.2.17
tinyrainbow: 3.1.1
- vite: 7.3.6(@types/node@22.20.1)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 7.3.6(@types/node@22.20.1)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@opentelemetry/api': 1.9.1
@@ -20753,10 +21742,10 @@ snapshots:
transitivePeerDependencies:
- msw
- vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
+ vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
dependencies:
'@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ '@vitest/mocker': 4.1.10(vite@6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.10
'@vitest/runner': 4.1.10
'@vitest/snapshot': 4.1.10
@@ -20773,7 +21762,7 @@ snapshots:
tinyexec: 1.2.4
tinyglobby: 0.2.17
tinyrainbow: 3.1.1
- vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 6.4.3(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@opentelemetry/api': 1.9.1
@@ -20782,10 +21771,10 @@ snapshots:
transitivePeerDependencies:
- msw
- vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
+ vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(jsdom@26.1.0)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)):
dependencies:
'@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
+ '@vitest/mocker': 4.1.10(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.10
'@vitest/runner': 4.1.10
'@vitest/snapshot': 4.1.10
@@ -20802,7 +21791,7 @@ snapshots:
tinyexec: 1.2.4
tinyglobby: 0.2.17
tinyrainbow: 3.1.1
- vite: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
+ vite: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(less@4.9.1)(lightningcss@1.33.0)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@opentelemetry/api': 1.9.1
@@ -20815,13 +21804,13 @@ snapshots:
vue-component-type-helpers@3.3.8: {}
- vue-tsc@2.2.12(typescript@5.9.3):
+ vue-tsc@2.2.12(typescript@6.0.3):
dependencies:
'@volar/typescript': 2.4.15
- '@vue/language-core': 2.2.12(typescript@5.9.3)
- typescript: 5.9.3
+ '@vue/language-core': 2.2.12(typescript@6.0.3)
+ typescript: 6.0.3
- vue@3.5.40(typescript@5.9.3):
+ vue@3.5.40(typescript@6.0.3):
dependencies:
'@vue/compiler-dom': 3.5.40
'@vue/compiler-sfc': 3.5.40
@@ -20829,7 +21818,7 @@ snapshots:
'@vue/server-renderer': 3.5.40
'@vue/shared': 3.5.40
optionalDependencies:
- typescript: 5.9.3
+ typescript: 6.0.3
w3c-keyname@2.2.8: {}
@@ -20962,6 +21951,12 @@ snapshots:
string-width: 5.1.2
strip-ansi: 7.2.0
+ wrap-ansi@9.0.2:
+ dependencies:
+ ansi-styles: 6.2.3
+ string-width: 7.2.0
+ strip-ansi: 7.2.0
+
wrappy@1.0.2: {}
ws@8.21.1: {}
@@ -20984,6 +21979,8 @@ snapshots:
yargs-parser@21.1.1: {}
+ yargs-parser@22.0.0: {}
+
yargs@16.2.2:
dependencies:
cliui: 7.0.4
@@ -21004,8 +22001,19 @@ snapshots:
y18n: 5.0.8
yargs-parser: 21.1.1
+ yargs@18.1.0:
+ dependencies:
+ cliui: 9.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ string-width: 8.2.2
+ y18n: 5.0.8
+ yargs-parser: 22.0.0
+
yocto-queue@0.1.0: {}
+ yoctocolors@2.2.0: {}
+
zimmerframe@1.1.4: {}
zod-to-json-schema@3.25.2(zod@4.4.3):
@@ -21020,6 +22028,8 @@ snapshots:
zod@4.4.3: {}
+ zone.js@0.16.3: {}
+
zustand@4.5.7(@types/react@19.2.17)(react@19.2.4):
dependencies:
use-sync-external-store: 1.6.0(react@19.2.4)
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 8e11a7fc9..e6d975fc1 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -8,6 +8,12 @@ packages:
catalog:
"@ai-sdk/openai": "^3.0.41"
"@ai-sdk/react": "^3.0.118"
+ "@angular/common": "^22.1.5"
+ "@angular/compiler": "^22.1.5"
+ "@angular/compiler-cli": "^22.1.5"
+ "@angular/core": "^22.1.5"
+ "@angular/platform-browser": "^22.1.5"
+ "@angular/platform-browser-dynamic": "^22.1.5"
"@types/node": "^22.15.32"
"@types/react": ">=19.0.0"
"@types/react-dom": ">=19.0.0"
@@ -20,8 +26,12 @@ catalog:
eslint-plugin-storybook: "^10.2.14"
eslint-plugin-unused-imports: "^4.4.1"
jsdom: "^26.1.0"
+ ng-packagr: "^22.1.1"
react: "^18.3.1 || ^19.0.0"
react-dom: "^18.0.0 || ^19.0.0"
- typescript: "^5.9.3"
+ rxjs: "^7.8.2"
+ tslib: "^2.8.1"
+ typescript: "^6.0.3"
zod: "^3.25.0 || ^4.0.0"
+ zone.js: "^0.16.3"
zustand: "^4.5.5"
diff --git a/scripts/prepare-angular-lang-dist.mjs b/scripts/prepare-angular-lang-dist.mjs
new file mode 100644
index 000000000..7ca7b2af7
--- /dev/null
+++ b/scripts/prepare-angular-lang-dist.mjs
@@ -0,0 +1,77 @@
+import { readFile, writeFile } from "node:fs/promises";
+import path from "node:path";
+import { fileURLToPath } from "node:url";
+
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = path.dirname(__filename);
+const rootDir = path.resolve(__dirname, "..");
+const workspacePath = path.join(rootDir, "pnpm-workspace.yaml");
+const langCorePackagePath = path.join(rootDir, "packages", "lang-core", "package.json");
+const angularLangDistPackagePath = path.join(rootDir, "dist", "angular-lang", "package.json");
+
+const workspaceSource = await readFile(workspacePath, "utf8");
+const catalog = parseCatalog(workspaceSource);
+const langCorePackage = JSON.parse(await readFile(langCorePackagePath, "utf8"));
+const angularLangDistPackage = JSON.parse(await readFile(angularLangDistPackagePath, "utf8"));
+
+angularLangDistPackage.dependencies = {
+ "@openuidev/lang-core": `^${langCorePackage.version}`,
+ tslib: getCatalogVersion(catalog, "tslib"),
+};
+
+angularLangDistPackage.peerDependencies = {
+ "@angular/common": getCatalogVersion(catalog, "@angular/common"),
+ "@angular/core": getCatalogVersion(catalog, "@angular/core"),
+ rxjs: getCatalogVersion(catalog, "rxjs"),
+ zod: getCatalogVersion(catalog, "zod"),
+};
+
+delete angularLangDistPackage.files;
+delete angularLangDistPackage.scripts;
+delete angularLangDistPackage.devDependencies;
+
+await writeFile(angularLangDistPackagePath, `${JSON.stringify(angularLangDistPackage, null, 2)}\n`);
+
+function parseCatalog(source) {
+ const lines = source.split(/\r?\n/);
+ const catalog = {};
+ let inCatalog = false;
+
+ for (const line of lines) {
+ if (!inCatalog) {
+ if (/^catalog:\s*$/.test(line)) {
+ inCatalog = true;
+ }
+ continue;
+ }
+
+ if (!line.trim()) {
+ continue;
+ }
+
+ if (!/^\s{2,}/.test(line)) {
+ break;
+ }
+
+ const match = line.match(/^\s{2}(["'][^"']+["']|[^:]+):\s*(.+?)\s*$/);
+ if (!match) {
+ continue;
+ }
+
+ const rawKey = match[1].trim();
+ const key = rawKey.replace(/^['"]|['"]$/g, "");
+ const value = match[2].trim().replace(/^['"]|['"]$/g, "");
+ catalog[key] = value;
+ }
+
+ return catalog;
+}
+
+function getCatalogVersion(catalog, key) {
+ const value = catalog[key];
+ if (!value) {
+ throw new Error(`Missing catalog version for ${key}`);
+ }
+
+ return value;
+}