diff --git a/.changeset/table-support.md b/.changeset/table-support.md
new file mode 100644
index 000000000..a9297bf59
--- /dev/null
+++ b/.changeset/table-support.md
@@ -0,0 +1,5 @@
+---
+"@emdash-cms/admin": minor
+---
+
+Adds table support to the PortableText editor. Users can now insert and edit tables via the slash command menu (/table) or toolbar button. Tables support header rows, column/row insertion and deletion, and include a bubble menu for quick editing.
diff --git a/packages/admin/package.json b/packages/admin/package.json
index 757b8f47f..ca4668dab 100644
--- a/packages/admin/package.json
+++ b/packages/admin/package.json
@@ -53,6 +53,10 @@
"@tiptap/extension-placeholder": "catalog:",
"@tiptap/extension-text-align": "catalog:",
"@tiptap/extension-typography": "catalog:",
+ "@tiptap/extension-table": "catalog:",
+ "@tiptap/extension-table-cell": "catalog:",
+ "@tiptap/extension-table-header": "catalog:",
+ "@tiptap/extension-table-row": "catalog:",
"@tiptap/extension-underline": "catalog:",
"@tiptap/pm": "catalog:",
"@tiptap/react": "catalog:",
diff --git a/packages/admin/src/components/PortableTextEditor.tsx b/packages/admin/src/components/PortableTextEditor.tsx
index 6910e5f7f..c147728d6 100644
--- a/packages/admin/src/components/PortableTextEditor.tsx
+++ b/packages/admin/src/components/PortableTextEditor.tsx
@@ -59,8 +59,11 @@ import {
CodeBlock,
Stack,
Eye,
+ Table as TableIcon,
Plus,
Trash,
+ Rows,
+ Columns,
DotsSixVertical,
CaretDown,
CaretRight,
@@ -71,6 +74,10 @@ import { Extension, type Range } from "@tiptap/core";
import CharacterCount from "@tiptap/extension-character-count";
import Focus from "@tiptap/extension-focus";
import Placeholder from "@tiptap/extension-placeholder";
+import { Table } from "@tiptap/extension-table";
+import { TableCell } from "@tiptap/extension-table-cell";
+import { TableHeader } from "@tiptap/extension-table-header";
+import { TableRow } from "@tiptap/extension-table-row";
import TextAlign from "@tiptap/extension-text-align";
import Typography from "@tiptap/extension-typography";
import { useEditor, EditorContent, useEditorState, type Editor } from "@tiptap/react";
@@ -305,6 +312,68 @@ function convertPMNode(node: {
};
}
+ case "table": {
+ const tableKey = generateKey();
+ const tableContent = (node.content || []) as Array<{
+ type: string;
+ content?: Array<{
+ type: string;
+ content?: unknown[];
+ }>;
+ }>;
+
+ const tableMarkDefs: PortableTextMarkDef[] = [];
+ const rows = tableContent
+ .filter((row) => row.type === "tableRow")
+ .map((row, rowIndex) => {
+ const cells = (row.content || []).map((cell, cellIndex) => {
+ const isHeader = cell.type === "tableHeader";
+ const cellContent = (cell.content || []) as Array<{
+ type: string;
+ content?: unknown[];
+ }>;
+
+ const contentSpans: PortableTextSpan[] = [];
+ for (const para of cellContent) {
+ if (para.type === "paragraph") {
+ const { children, markDefs } = convertInlineContent(para.content || []);
+ contentSpans.push(...children);
+ tableMarkDefs.push(...markDefs);
+ }
+ }
+
+ if (contentSpans.length === 0) {
+ contentSpans.push({
+ _type: "span",
+ _key: generateKey(),
+ text: "",
+ });
+ }
+
+ return {
+ _type: "tableCell" as const,
+ _key: `${tableKey}_r${rowIndex}_c${cellIndex}`,
+ content: contentSpans,
+ isHeader,
+ };
+ });
+
+ return {
+ _type: "tableRow" as const,
+ _key: `${tableKey}_r${rowIndex}`,
+ cells,
+ };
+ });
+
+ return {
+ _type: "table",
+ _key: tableKey,
+ rows,
+ hasHeaderRow: rows[0]?.cells.some((c) => c.isHeader) ?? false,
+ markDefs: tableMarkDefs.length > 0 ? tableMarkDefs : undefined,
+ };
+ }
+
default:
return null;
}
@@ -569,6 +638,66 @@ function convertPTBlock(block: PortableTextBlock): unknown {
case "break":
return { type: "horizontalRule" };
+ case "table": {
+ const tableBlock = block as {
+ _type: "table";
+ _key: string;
+ rows?: Array<{
+ _type: "tableRow";
+ _key: string;
+ cells: Array<{
+ _type: "tableCell";
+ _key: string;
+ content: PortableTextSpan[];
+ isHeader?: boolean;
+ markDefs?: PortableTextMarkDef[];
+ }>;
+ }>;
+ hasHeaderRow?: boolean;
+ markDefs?: PortableTextMarkDef[];
+ };
+
+ const tableMarkDefs = tableBlock.markDefs || [];
+ const tableMarkDefsMap = new Map(tableMarkDefs.map((md) => [md._key, md]));
+
+ const rows = (tableBlock.rows || []).map((row, rowIndex) => {
+ const cells = row.cells.map((cell) => {
+ const cellType =
+ cell.isHeader || (tableBlock.hasHeaderRow && rowIndex === 0)
+ ? "tableHeader"
+ : "tableCell";
+
+ const cellMarkDefs = cell.markDefs || [];
+ const markDefsMap = new Map([
+ ...tableMarkDefsMap,
+ ...cellMarkDefs.map((md) => [md._key, md] as const),
+ ]);
+
+ const pmContent = convertPTSpans(cell.content, [...markDefsMap.values()]);
+
+ return {
+ type: cellType,
+ content: [
+ {
+ type: "paragraph",
+ content: pmContent.length > 0 ? pmContent : undefined,
+ },
+ ],
+ };
+ });
+
+ return {
+ type: "tableRow",
+ content: cells,
+ };
+ });
+
+ return {
+ type: "table",
+ content: rows,
+ };
+ }
+
default: {
// Treat unknown block types as plugin blocks (embeds)
// These have an id field (or url for backwards compat) for the embed source,
@@ -796,6 +925,21 @@ const defaultSlashCommands: SlashCommandItem[] = [
editor.chain().focus().deleteRange(range).setHorizontalRule().run();
},
},
+ {
+ id: "table",
+ title: "Table",
+ description: "Insert a table",
+ icon: TableIcon,
+ aliases: ["grid", "spreadsheet"],
+ command: ({ editor, range }) => {
+ editor
+ .chain()
+ .focus()
+ .deleteRange(range)
+ .insertTable({ rows: 3, cols: 3, withHeaderRow: true })
+ .run();
+ },
+ },
];
/**
@@ -1860,6 +2004,12 @@ export function PortableTextEditor({
ImageExtension,
MarkdownLinkExtension,
PluginBlockExtension,
+ Table.configure({
+ resizable: true,
+ }),
+ TableRow,
+ TableHeader,
+ TableCell,
Placeholder.configure({
includeChildren: true,
placeholder: ({ node }) => {
@@ -1877,6 +2027,13 @@ export function PortableTextEditor({
onStateChange: setSlashMenuState,
getState: () => slashMenuStateRef.current,
}),
+ // Table extensions after slash commands so suggestion keyboard handlers have priority
+ Table.configure({
+ resizable: true,
+ }),
+ TableRow,
+ TableHeader,
+ TableCell,
CharacterCount,
Focus.configure({
className: "has-focus",
@@ -2098,6 +2255,7 @@ export function PortableTextEditor({
)}
+
{editable &&
}
@@ -2289,6 +2447,95 @@ function EditorBubbleMenu({ editor }: { editor: Editor }) {
);
}
+/**
+ * Table Bubble Menu - appears when cursor is in a table
+ * Shows table editing options: add/remove rows/columns, delete table
+ */
+function TableBubbleMenu({ editor }: { editor: Editor }) {
+ if (!editor.isActive("table")) {
+ return null;
+ }
+
+ return (
+
e.isActive("table")}
+ className="z-[100] flex items-center gap-0.5 rounded-lg border bg-kumo-base p-1 shadow-lg"
+ >
+ {/* Add column before */}
+ editor.chain().focus().addColumnBefore().run()}
+ title="Add column before"
+ >
+
+
+
+
+ {/* Add column after */}
+ editor.chain().focus().addColumnAfter().run()}
+ title="Add column after"
+ >
+
+
+
+
+ {/* Delete column */}
+ editor.chain().focus().deleteColumn().run()}
+ title="Delete column"
+ >
+
+
+
+
+
+ {/* Add row before */}
+ editor.chain().focus().addRowBefore().run()}
+ title="Add row before"
+ >
+
+
+
+
+ {/* Add row after */}
+ editor.chain().focus().addRowAfter().run()}
+ title="Add row after"
+ >
+
+
+
+
+ {/* Delete row */}
+ editor.chain().focus().deleteRow().run()} title="Delete row">
+
+
+
+
+
+ {/* Toggle header row */}
+ editor.chain().focus().toggleHeaderRow().run()}
+ active={editor.isActive("tableHeader")}
+ title="Toggle header row"
+ >
+
+
+
+ {/* Delete table */}
+ editor.chain().focus().deleteTable().run()} title="Delete table">
+
+
+
+ );
+}
+
function BubbleButton({
onClick,
active,
@@ -2560,6 +2807,15 @@ function EditorToolbar({
>
+
+ editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run()
+ }
+ active={editor.isActive("table")}
+ title="Insert Table"
+ >
+
+
diff --git a/packages/admin/src/styles.css b/packages/admin/src/styles.css
index ce0de8ee6..2762c3d4d 100644
--- a/packages/admin/src/styles.css
+++ b/packages/admin/src/styles.css
@@ -231,6 +231,47 @@ body {
margin-top: 0 !important;
}
+/* TipTap Table Styles */
+.ProseMirror table {
+ border-collapse: collapse;
+ width: 100%;
+ margin: 1rem 0;
+ table-layout: fixed;
+ overflow: hidden;
+}
+
+.ProseMirror td,
+.ProseMirror th {
+ border: 1px solid var(--color-kumo-line);
+ padding: 0.5rem 0.75rem;
+ vertical-align: top;
+ position: relative;
+ min-width: 80px;
+}
+
+.ProseMirror th {
+ background-color: var(--color-kumo-tint);
+ font-weight: 600;
+}
+
+.ProseMirror .selectedCell {
+ background-color: var(--color-kumo-info-tint);
+}
+
+.ProseMirror .column-resize-handle {
+ position: absolute;
+ right: -2px;
+ top: 0;
+ bottom: -2px;
+ width: 4px;
+ background-color: var(--color-kumo-brand);
+ pointer-events: none;
+}
+
+.ProseMirror.resize-cursor {
+ cursor: col-resize;
+}
+
/**
* Prevent dialogs from overflowing the viewport on small screens.
* Kumo's size variants set min-width (e.g. min-w-[32rem] for "lg")
diff --git a/packages/admin/tests/components/PortableTextEditor.table.test.ts b/packages/admin/tests/components/PortableTextEditor.table.test.ts
new file mode 100644
index 000000000..673026c22
--- /dev/null
+++ b/packages/admin/tests/components/PortableTextEditor.table.test.ts
@@ -0,0 +1,398 @@
+import { describe, it, expect } from "vitest";
+
+import {
+ _portableTextToProsemirror,
+ _prosemirrorToPortableText,
+} from "../../src/components/PortableTextEditor";
+
+describe("Table conversion: PortableText ↔ ProseMirror", () => {
+ describe("PortableText → ProseMirror", () => {
+ it("converts simple table with text", () => {
+ const ptBlocks = [
+ {
+ _type: "table",
+ _key: "t1",
+ hasHeaderRow: true,
+ rows: [
+ {
+ _type: "tableRow",
+ _key: "r1",
+ cells: [
+ {
+ _type: "tableCell",
+ _key: "c1",
+ isHeader: true,
+ content: [{ _type: "span", _key: "s1", text: "Header 1" }],
+ },
+ {
+ _type: "tableCell",
+ _key: "c2",
+ isHeader: true,
+ content: [{ _type: "span", _key: "s2", text: "Header 2" }],
+ },
+ ],
+ },
+ {
+ _type: "tableRow",
+ _key: "r2",
+ cells: [
+ {
+ _type: "tableCell",
+ _key: "c3",
+ content: [{ _type: "span", _key: "s3", text: "Cell 1" }],
+ },
+ {
+ _type: "tableCell",
+ _key: "c4",
+ content: [{ _type: "span", _key: "s4", text: "Cell 2" }],
+ },
+ ],
+ },
+ ],
+ },
+ ];
+
+ const result = _portableTextToProsemirror(ptBlocks);
+
+ expect(result.type).toBe("doc");
+ expect(result.content).toHaveLength(1);
+
+ const table = result.content[0];
+ expect(table.type).toBe("table");
+ expect(table.content).toHaveLength(2);
+
+ const headerRow = table.content[0];
+ expect(headerRow.type).toBe("tableRow");
+ expect(headerRow.content[0].type).toBe("tableHeader");
+ expect(headerRow.content[1].type).toBe("tableHeader");
+
+ const dataRow = table.content[1];
+ expect(dataRow.type).toBe("tableRow");
+ expect(dataRow.content[0].type).toBe("tableCell");
+ });
+
+ it("converts table with text formatting marks", () => {
+ const ptBlocks = [
+ {
+ _type: "table",
+ _key: "t1",
+ rows: [
+ {
+ _type: "tableRow",
+ _key: "r1",
+ cells: [
+ {
+ _type: "tableCell",
+ _key: "c1",
+ content: [{ _type: "span", _key: "s1", text: "Bold", marks: ["strong"] }],
+ },
+ {
+ _type: "tableCell",
+ _key: "c2",
+ content: [{ _type: "span", _key: "s2", text: "Italic", marks: ["em"] }],
+ },
+ ],
+ },
+ ],
+ },
+ ];
+
+ const result = _portableTextToProsemirror(ptBlocks);
+
+ const table = result.content[0];
+ const cell1 = table.content[0].content[0];
+ const cell1Para = cell1.content[0];
+ const cell1Text = cell1Para.content[0];
+
+ expect(cell1Text.text).toBe("Bold");
+ expect(cell1Text.marks).toContainEqual({ type: "bold" });
+
+ const cell2 = table.content[0].content[1];
+ const cell2Para = cell2.content[0];
+ const cell2Text = cell2Para.content[0];
+
+ expect(cell2Text.text).toBe("Italic");
+ expect(cell2Text.marks).toContainEqual({ type: "italic" });
+ });
+
+ it("converts table with links (markDefs)", () => {
+ const ptBlocks = [
+ {
+ _type: "table",
+ _key: "t1",
+ markDefs: [
+ {
+ _type: "link",
+ _key: "link1",
+ href: "https://example.com",
+ blank: true,
+ },
+ ],
+ rows: [
+ {
+ _type: "tableRow",
+ _key: "r1",
+ cells: [
+ {
+ _type: "tableCell",
+ _key: "c1",
+ content: [{ _type: "span", _key: "s1", text: "Click here", marks: ["link1"] }],
+ },
+ ],
+ },
+ ],
+ },
+ ];
+
+ const result = _portableTextToProsemirror(ptBlocks);
+
+ const table = result.content[0];
+ const cell = table.content[0].content[0];
+ const para = cell.content[0];
+ const text = para.content[0];
+
+ expect(text.text).toBe("Click here");
+ expect(text.marks).toContainEqual({
+ type: "link",
+ attrs: { href: "https://example.com", target: "_blank" },
+ });
+ });
+ });
+
+ describe("ProseMirror → PortableText", () => {
+ it("converts simple table to PT", () => {
+ const pmDoc = {
+ type: "doc",
+ content: [
+ {
+ type: "table",
+ content: [
+ {
+ type: "tableRow",
+ content: [
+ {
+ type: "tableHeader",
+ content: [
+ {
+ type: "paragraph",
+ content: [{ type: "text", text: "Header 1" }],
+ },
+ ],
+ },
+ {
+ type: "tableHeader",
+ content: [
+ {
+ type: "paragraph",
+ content: [{ type: "text", text: "Header 2" }],
+ },
+ ],
+ },
+ ],
+ },
+ {
+ type: "tableRow",
+ content: [
+ {
+ type: "tableCell",
+ content: [
+ {
+ type: "paragraph",
+ content: [{ type: "text", text: "Cell 1" }],
+ },
+ ],
+ },
+ {
+ type: "tableCell",
+ content: [
+ {
+ type: "paragraph",
+ content: [{ type: "text", text: "Cell 2" }],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ };
+
+ const result = _prosemirrorToPortableText(pmDoc);
+
+ expect(result).toHaveLength(1);
+ const table = result[0] as {
+ _type: string;
+ rows: Array<{
+ cells: Array<{ content: Array<{ text: string }>; isHeader: boolean }>;
+ }>;
+ hasHeaderRow: boolean;
+ };
+
+ expect(table._type).toBe("table");
+ expect(table.hasHeaderRow).toBe(true);
+ expect(table.rows).toHaveLength(2);
+ expect(table.rows[0].cells[0].isHeader).toBe(true);
+ expect(table.rows[0].cells[0].content[0].text).toBe("Header 1");
+ expect(table.rows[1].cells[0].isHeader).toBe(false);
+ expect(table.rows[1].cells[0].content[0].text).toBe("Cell 1");
+ });
+
+ it("converts table with text marks to PT", () => {
+ const pmDoc = {
+ type: "doc",
+ content: [
+ {
+ type: "table",
+ content: [
+ {
+ type: "tableRow",
+ content: [
+ {
+ type: "tableCell",
+ content: [
+ {
+ type: "paragraph",
+ content: [
+ {
+ type: "text",
+ text: "Bold text",
+ marks: [{ type: "bold" }],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ };
+
+ const result = _prosemirrorToPortableText(pmDoc);
+
+ const table = result[0] as {
+ rows: Array<{
+ cells: Array<{ content: Array<{ text: string; marks?: string[] }> }>;
+ }>;
+ };
+
+ expect(table.rows[0].cells[0].content[0].text).toBe("Bold text");
+ expect(table.rows[0].cells[0].content[0].marks).toContain("strong");
+ });
+
+ it("converts table with links to PT (preserves markDefs)", () => {
+ const pmDoc = {
+ type: "doc",
+ content: [
+ {
+ type: "table",
+ content: [
+ {
+ type: "tableRow",
+ content: [
+ {
+ type: "tableCell",
+ content: [
+ {
+ type: "paragraph",
+ content: [
+ {
+ type: "text",
+ text: "Link text",
+ marks: [
+ {
+ type: "link",
+ attrs: {
+ href: "https://example.com",
+ target: "_blank",
+ },
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ };
+
+ const result = _prosemirrorToPortableText(pmDoc);
+
+ const table = result[0] as {
+ markDefs?: Array<{ _type: string; href: string; blank?: boolean }>;
+ rows: Array<{
+ cells: Array<{ content: Array<{ text: string; marks?: string[] }> }>;
+ }>;
+ };
+
+ expect(table.markDefs).toBeDefined();
+ expect(table.markDefs).toHaveLength(1);
+ expect(table.markDefs![0]._type).toBe("link");
+ expect(table.markDefs![0].href).toBe("https://example.com");
+
+ const linkMarkKey = table.markDefs![0]._key;
+ expect(table.rows[0].cells[0].content[0].marks).toContain(linkMarkKey);
+ });
+ });
+
+ describe("Round-trip conversion", () => {
+ it("PT → PM → PT preserves table structure", () => {
+ const original = [
+ {
+ _type: "table",
+ _key: "t1",
+ hasHeaderRow: true,
+ rows: [
+ {
+ _type: "tableRow",
+ _key: "r1",
+ cells: [
+ {
+ _type: "tableCell",
+ _key: "c1",
+ isHeader: true,
+ content: [{ _type: "span", _key: "s1", text: "Header" }],
+ },
+ ],
+ },
+ {
+ _type: "tableRow",
+ _key: "r2",
+ cells: [
+ {
+ _type: "tableCell",
+ _key: "c2",
+ content: [{ _type: "span", _key: "s2", text: "Data" }],
+ },
+ ],
+ },
+ ],
+ },
+ ];
+
+ const pm = _portableTextToProsemirror(original);
+ const roundTripped = _prosemirrorToPortableText(pm);
+
+ const table = roundTripped[0] as {
+ _type: string;
+ hasHeaderRow: boolean;
+ rows: Array<{
+ cells: Array<{ content: Array<{ text: string }>; isHeader: boolean }>;
+ }>;
+ };
+
+ expect(table._type).toBe("table");
+ expect(table.hasHeaderRow).toBe(true);
+ expect(table.rows[0].cells[0].isHeader).toBe(true);
+ expect(table.rows[0].cells[0].content[0].text).toBe("Header");
+ expect(table.rows[1].cells[0].isHeader).toBe(false);
+ expect(table.rows[1].cells[0].content[0].text).toBe("Data");
+ });
+ });
+});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5a81e857d..685fd787e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -14,7 +14,7 @@ catalogs:
version: 0.9.7
'@astrojs/cloudflare':
specifier: ^13.1.7
- version: 13.1.7
+ version: 13.2.1
'@astrojs/node':
specifier: ^10.0.0
version: 10.0.0
@@ -81,6 +81,18 @@ catalogs:
'@tiptap/extension-placeholder':
specifier: ^3.20.0
version: 3.20.0
+ '@tiptap/extension-table':
+ specifier: ^3.20.0
+ version: 3.22.1
+ '@tiptap/extension-table-cell':
+ specifier: ^3.20.0
+ version: 3.22.1
+ '@tiptap/extension-table-header':
+ specifier: ^3.20.0
+ version: 3.22.1
+ '@tiptap/extension-table-row':
+ specifier: ^3.20.0
+ version: 3.22.1
'@tiptap/extension-text-align':
specifier: ^3.20.0
version: 3.20.0
@@ -119,7 +131,7 @@ catalogs:
version: 0.0.4
better-sqlite3:
specifier: ^12.8.0
- version: 12.8.0
+ version: 12.9.0
publint:
specifier: 0.3.17
version: 0.3.17
@@ -140,7 +152,7 @@ catalogs:
version: 4.0.18
wrangler:
specifier: ^4.80.0
- version: 4.80.0
+ version: 4.85.0
importers:
@@ -199,7 +211,7 @@ importers:
dependencies:
'@astrojs/cloudflare':
specifier: 'catalog:'
- version: 13.1.7(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260401.1)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
+ version: 13.2.1(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
'@astrojs/react':
specifier: 'catalog:'
version: 5.0.0(@types/node@24.10.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.31.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)
@@ -242,13 +254,13 @@ importers:
version: 24.10.13
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
demos/playground:
dependencies:
'@astrojs/cloudflare':
specifier: 'catalog:'
- version: 13.1.7(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
+ version: 13.2.1(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
'@astrojs/react':
specifier: 'catalog:'
version: 5.0.0(@types/node@24.10.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.31.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)
@@ -276,7 +288,7 @@ importers:
version: 4.20260305.1
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
demos/plugins-demo:
dependencies:
@@ -309,7 +321,7 @@ importers:
version: 6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
better-sqlite3:
specifier: 'catalog:'
- version: 12.8.0
+ version: 12.9.0
emdash:
specifier: workspace:*
version: link:../../packages/core
@@ -362,7 +374,7 @@ importers:
dependencies:
'@astrojs/cloudflare':
specifier: 'catalog:'
- version: 13.1.7(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
+ version: 13.2.1(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
'@astrojs/react':
specifier: 'catalog:'
version: 5.0.0(@types/node@24.10.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.31.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)
@@ -399,7 +411,7 @@ importers:
version: 24.10.13
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
demos/simple:
dependencies:
@@ -426,7 +438,7 @@ importers:
version: 6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2)
better-sqlite3:
specifier: 'catalog:'
- version: 12.8.0
+ version: 12.9.0
emdash:
specifier: workspace:*
version: link:../../packages/core
@@ -445,16 +457,16 @@ importers:
dependencies:
'@astrojs/cloudflare':
specifier: ^13.1.7
- version: 13.1.7(@types/node@24.10.13)(astro@6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(wrangler@4.80.0)(yaml@2.8.2)
+ version: 13.2.1(@types/node@24.10.13)(astro@6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0)(yaml@2.8.2)
'@astrojs/starlight':
specifier: ^0.38.2
- version: 0.38.2(astro@6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))
+ version: 0.38.4(astro@6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))
'@astrojs/starlight-tailwind':
specifier: ^5.0.0
- version: 5.0.0(@astrojs/starlight@0.38.2(astro@6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)))(tailwindcss@4.2.1)
+ version: 5.0.0(@astrojs/starlight@0.38.4(astro@6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)))(tailwindcss@4.2.1)
astro:
specifier: ^6.1.3
- version: 6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ version: 6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
sharp:
specifier: ^0.34.5
version: 0.34.5
@@ -466,7 +478,7 @@ importers:
version: 4.2.1
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
e2e/fixture:
dependencies:
@@ -487,7 +499,7 @@ importers:
version: 6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
better-sqlite3:
specifier: 'catalog:'
- version: 12.8.0
+ version: 12.9.0
emdash:
specifier: workspace:*
version: link:../../packages/core
@@ -502,7 +514,7 @@ importers:
dependencies:
'@astrojs/cloudflare':
specifier: 'catalog:'
- version: 13.1.7(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
+ version: 13.2.1(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
'@astrojs/node':
specifier: 'catalog:'
version: 10.0.0(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))
@@ -517,7 +529,7 @@ importers:
version: 6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2)
better-sqlite3:
specifier: 'catalog:'
- version: 12.8.0
+ version: 12.9.0
emdash:
specifier: workspace:*
version: link:../../packages/core
@@ -539,7 +551,7 @@ importers:
version: 4.20260305.1
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
i18n:
devDependencies:
@@ -548,13 +560,13 @@ importers:
version: 24.10.13
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
infra/blog-demo:
dependencies:
'@astrojs/cloudflare':
specifier: 'catalog:'
- version: 13.1.7(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
+ version: 13.2.1(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
'@astrojs/react':
specifier: 'catalog:'
version: 5.0.0(@types/node@24.10.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.31.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)
@@ -588,13 +600,13 @@ importers:
version: 4.20260305.1
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
infra/cache-demo:
dependencies:
'@astrojs/cloudflare':
specifier: https://pkg.pr.new/@astrojs/cloudflare@94d342d
- version: https://pkg.pr.new/@astrojs/cloudflare@94d342d(@types/node@24.10.13)(astro@https://pkg.pr.new/astro@94d342d(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260415.1)(wrangler@4.83.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
+ version: https://pkg.pr.new/@astrojs/cloudflare@94d342d(@types/node@24.10.13)(astro@https://pkg.pr.new/astro@94d342d(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
'@astrojs/react':
specifier: 'catalog:'
version: 5.0.0(@types/node@24.10.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.31.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)
@@ -628,13 +640,13 @@ importers:
version: 4.20260305.1
wrangler:
specifier: ^4.83.0
- version: 4.83.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
infra/perf-monitor:
devDependencies:
'@cloudflare/vite-plugin':
specifier: ^1.0.0
- version: 1.26.1(vite@6.4.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260415.1)(wrangler@4.80.0)
+ version: 1.26.1(vite@6.4.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260424.1)(wrangler@4.85.0)
typescript:
specifier: 'catalog:'
version: 5.9.3
@@ -643,7 +655,7 @@ importers:
version: 6.4.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
packages/admin:
dependencies:
@@ -707,6 +719,18 @@ importers:
'@tiptap/extension-placeholder':
specifier: 'catalog:'
version: 3.20.0(@tiptap/extensions@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0))
+ '@tiptap/extension-table':
+ specifier: 'catalog:'
+ version: 3.22.1(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)
+ '@tiptap/extension-table-cell':
+ specifier: 'catalog:'
+ version: 3.22.1(@tiptap/extension-table@3.22.1(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0))
+ '@tiptap/extension-table-header':
+ specifier: 'catalog:'
+ version: 3.22.1(@tiptap/extension-table@3.22.1(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0))
+ '@tiptap/extension-table-row':
+ specifier: 'catalog:'
+ version: 3.22.1(@tiptap/extension-table@3.22.1(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0))
'@tiptap/extension-text-align':
specifier: 'catalog:'
version: 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))
@@ -873,7 +897,7 @@ importers:
version: link:../auth
astro:
specifier: '>=5'
- version: 6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ version: 6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
emdash:
specifier: workspace:*
version: link:../core
@@ -886,7 +910,7 @@ importers:
devDependencies:
'@atcute/lexicons':
specifier: ^1.2.10
- version: 1.2.10
+ version: 1.3.0
'@cloudflare/kumo':
specifier: ^1.16.0
version: 1.16.0(@phosphor-icons/react@2.1.10(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@types/react@19.2.14)(echarts@6.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6)
@@ -929,7 +953,7 @@ importers:
version: 19.2.3(@types/react@19.2.14)
'@vitejs/plugin-react':
specifier: ^4.6.0
- version: 4.7.0(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.7.0(vite@7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
jsdom:
specifier: ^26.1.0
version: 26.1.0
@@ -1114,7 +1138,7 @@ importers:
version: 0.11.4(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))
better-sqlite3:
specifier: 'catalog:'
- version: 12.8.0
+ version: 12.9.0
blurhash:
specifier: ^2.0.5
version: 2.0.5
@@ -1296,7 +1320,7 @@ importers:
version: 24.10.13
better-sqlite3:
specifier: 'catalog:'
- version: 12.8.0
+ version: 12.9.0
typescript:
specifier: 'catalog:'
version: 5.9.3
@@ -1305,7 +1329,7 @@ importers:
version: 4.0.18(@types/node@24.10.13)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
packages/plugins/ai-moderation:
dependencies:
@@ -1503,7 +1527,7 @@ importers:
version: 6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2)
better-sqlite3:
specifier: 'catalog:'
- version: 12.8.0
+ version: 12.9.0
emdash:
specifier: workspace:*
version: link:../../packages/core
@@ -1534,7 +1558,7 @@ importers:
version: 6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2)
better-sqlite3:
specifier: 'catalog:'
- version: 12.8.0
+ version: 12.9.0
emdash:
specifier: workspace:*
version: link:../../packages/core
@@ -1553,7 +1577,7 @@ importers:
dependencies:
'@astrojs/cloudflare':
specifier: 'catalog:'
- version: 13.1.7(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
+ version: 13.2.1(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
'@astrojs/react':
specifier: 'catalog:'
version: 5.0.0(@types/node@24.10.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.31.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)
@@ -1587,7 +1611,7 @@ importers:
version: 4.20260305.1
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
templates/marketing:
dependencies:
@@ -1608,7 +1632,7 @@ importers:
version: 0.0.4(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
better-sqlite3:
specifier: 'catalog:'
- version: 12.8.0
+ version: 12.9.0
emdash:
specifier: workspace:*
version: link:../../packages/core
@@ -1627,7 +1651,7 @@ importers:
dependencies:
'@astrojs/cloudflare':
specifier: 'catalog:'
- version: 13.1.7(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
+ version: 13.2.1(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
'@astrojs/react':
specifier: 'catalog:'
version: 5.0.0(@types/node@24.10.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.31.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)
@@ -1661,7 +1685,7 @@ importers:
version: 4.20260305.1
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
templates/portfolio:
dependencies:
@@ -1676,7 +1700,7 @@ importers:
version: 6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2)
better-sqlite3:
specifier: 'catalog:'
- version: 12.8.0
+ version: 12.9.0
emdash:
specifier: workspace:*
version: link:../../packages/core
@@ -1695,7 +1719,7 @@ importers:
dependencies:
'@astrojs/cloudflare':
specifier: 'catalog:'
- version: 13.1.7(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
+ version: 13.2.1(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
'@astrojs/react':
specifier: 'catalog:'
version: 5.0.0(@types/node@24.10.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.31.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)
@@ -1723,7 +1747,7 @@ importers:
version: 4.20260305.1
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
templates/starter:
dependencies:
@@ -1738,7 +1762,7 @@ importers:
version: 6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2)
better-sqlite3:
specifier: 'catalog:'
- version: 12.8.0
+ version: 12.9.0
emdash:
specifier: workspace:*
version: link:../../packages/core
@@ -1757,7 +1781,7 @@ importers:
dependencies:
'@astrojs/cloudflare':
specifier: 'catalog:'
- version: 13.1.7(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
+ version: 13.2.1(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)
'@astrojs/react':
specifier: 'catalog:'
version: 5.0.0(@types/node@24.10.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.31.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)
@@ -1785,7 +1809,7 @@ importers:
version: 4.20260305.1
wrangler:
specifier: 'catalog:'
- version: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ version: 4.85.0(@cloudflare/workers-types@4.20260305.1)
packages:
@@ -1864,11 +1888,11 @@ packages:
peerDependencies:
typescript: ^5.0.0
- '@astrojs/cloudflare@13.1.7':
- resolution: {integrity: sha512-bNgQ1rwieK4PBchwsRGk0TBXPZ0K+BMn7npn/qBW0LWgo707M5Js5Y7Qrr5Fn/5W6BvHWIcPyjEN/tWLEc//aA==}
+ '@astrojs/cloudflare@13.2.1':
+ resolution: {integrity: sha512-ggmf3eeK+jlgyMFZwlnopU8MVhljNXs9/WQ/BTYjsMJTULe50nROvC/Mc/TZ5ZIHv0b6LJDfN9/n0PUhfI3qJw==}
peerDependencies:
astro: ^6.0.0
- wrangler: ^4.61.1
+ wrangler: ^4.83.0
'@astrojs/cloudflare@https://pkg.pr.new/@astrojs/cloudflare@94d342d':
resolution: {tarball: https://pkg.pr.new/@astrojs/cloudflare@94d342d}
@@ -1892,6 +1916,9 @@ packages:
'@astrojs/internal-helpers@0.8.0-beta.3':
resolution: {integrity: sha512-JLW9+DeEYy8pGOCxtLkWtCutG/v0PH5yzIt+6zyuk1Z8A/H4sJ638aCYkYC+imc9bxk34MihGgEugS0QeBdeEw==}
+ '@astrojs/internal-helpers@0.9.0':
+ resolution: {integrity: sha512-GdYkzR26re8izmyYlBqf4z2s7zNngmWLFuxw0UKiPNqHraZGS6GKWIwSHgS22RDlu2ePFJ8bzmpBcUszut/SDg==}
+
'@astrojs/language-server@2.16.3':
resolution: {integrity: sha512-yO5K7RYCMXUfeDlnU6UnmtnoXzpuQc0yhlaCNZ67k1C/MiwwwvMZz+LGa+H35c49w5QBfvtr4w4Zcf5PcH8uYA==}
hasBin: true
@@ -1913,8 +1940,11 @@ packages:
'@astrojs/markdown-remark@7.1.0':
resolution: {integrity: sha512-P+HnCsu2js3BoTc8kFmu+E9gOcFeMdPris75g+Zl4sY8+bBRbSQV6xzcBDbZ27eE7yBGEGQoqjpChx+KJYIPYQ==}
- '@astrojs/mdx@5.0.3':
- resolution: {integrity: sha512-zv/OlM5sZZvyjHqJjR3FjJvoCgbxdqj3t4jO/gSEUNcck3BjdtMgNQw8UgPfAGe4yySdG4vjZ3OC5wUxhu7ckg==}
+ '@astrojs/markdown-remark@7.1.1':
+ resolution: {integrity: sha512-C6e9BnLGlbdv6bV8MYGeHpHxsUHrCrB4OuRLqi5LI7oiBVcBcqfUN06zpwFQdHgV48QCCrMmLpyqBr7VqC+swA==}
+
+ '@astrojs/mdx@5.0.4':
+ resolution: {integrity: sha512-tSbuuYueNODiFAFaME7pjHY5lOLoxBYJi1cKd6scw9+a4ZO7C7UGdafEoVAQvOV2eO8a6RaHSAJYGVPL1w8BPA==}
engines: {node: '>=22.12.0'}
peerDependencies:
astro: ^6.0.0
@@ -1963,8 +1993,8 @@ packages:
'@astrojs/starlight': '>=0.38.0'
tailwindcss: ^4.0.0
- '@astrojs/starlight@0.38.2':
- resolution: {integrity: sha512-7AsrvG4EsXUmJT5uqiXJN4oZqKaY0wc/Ip7C6/zGnShHRVoTAA4jxeYIZ3wqbqA6zv4cnp9qk31vB2m2dUcmfg==}
+ '@astrojs/starlight@0.38.4':
+ resolution: {integrity: sha512-TGFIr2aVC+gcZCPQzJOO4ZnA/yL3jRnsUDcKlVdEhxhxaOQnWr9lZ9MRScg9zU6uh3HVeZAmmjkLCdTlHdcaZA==}
peerDependencies:
astro: ^6.0.0
@@ -1972,6 +2002,10 @@ packages:
resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==}
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
+ '@astrojs/telemetry@3.3.1':
+ resolution: {integrity: sha512-7fcIxXS9J4ls5tr8b3ww9rbAIz2+HrhNJYZdkAhhB4za/I5IZ/60g+Bs8q7zwG0tOIZfNB4JWhVJ1Qkl/OrNCw==}
+ engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
+
'@astrojs/telemetry@https://pkg.pr.new/withastro/astro/@astrojs/telemetry@94d342d':
resolution: {tarball: https://pkg.pr.new/withastro/astro/@astrojs/telemetry@94d342d}
version: 3.3.0
@@ -1994,8 +2028,8 @@ packages:
'@atcute/identity@1.1.4':
resolution: {integrity: sha512-RCw1IqflfuSYCxK5m0lZCm0UnvIzcUnuhngiBhJEJb9a9Mc2SEf1xP3H8N5r8pvEH1LoAYd6/zrvCNU+uy9esw==}
- '@atcute/lexicons@1.2.10':
- resolution: {integrity: sha512-0EfRDQQjOgb06VSFOUWXLnqKY11ljWB2bXS3cJVPYJp0jTWudgRp6OTW4vReNAeVZaY4kVr2ud/I/Zn9mjix3g==}
+ '@atcute/lexicons@1.3.0':
+ resolution: {integrity: sha512-Eq5y+9onnCXNVUlNiMf31beSXHKqptB7lUo/68YbhlmxdaR7ooywHmahya9goP5AsmlYEA1z+dRPXIDAa9O7cg==}
'@atcute/multibase@1.2.0':
resolution: {integrity: sha512-ZK2GRra+qIYq9nNuQB52m2ul0hOmCQEtPobGfTSUxm7pF0OGEkWGkWHugFhNEDVzHzTwPxHp6VGotdZFue4lYQ==}
@@ -2018,8 +2052,8 @@ packages:
'@atcute/util-fetch@1.0.5':
resolution: {integrity: sha512-qjHj01BGxjSjIFdPiAjSARnodJIIyKxnCMMEcXMESo9TAyND6XZQqrie5fia+LlYWVXdpsTds8uFQwc9jdKTig==}
- '@atcute/util-text@1.2.0':
- resolution: {integrity: sha512-b8WSh+Z7K601eUFFmTFj8QPKDO8Ic0VDDj63sdKzpkm+ySQKsYT5nXekViGqFVKbyKj1V5FyvZvgXad6/aI4QQ==}
+ '@atcute/util-text@1.3.1':
+ resolution: {integrity: sha512-MRgJXkx67znuBXuoAYCJkBZyd3OApL7zZlNf5kXhuoCXcdiu1nblRDycYTADSkym4epBSQWxh26kmI9sewaq6A==}
'@atproto/api@0.13.35':
resolution: {integrity: sha512-vsEfBj0C333TLjDppvTdTE0IdKlXuljKSveAeI4PPx/l6eUKNnDTsYxvILtXUVzwUlTDmSRqy5O4Ryh78n1b7g==}
@@ -2302,11 +2336,11 @@ packages:
workerd:
optional: true
- '@cloudflare/unenv-preset@2.16.0':
- resolution: {integrity: sha512-8ovsRpwzPoEqPUzoErAYVv8l3FMZNeBVQfJTvtzP4AgLSRGZISRfuChFxHWUQd3n6cnrwkuTGxT+2cGo8EsyYg==}
+ '@cloudflare/unenv-preset@2.16.1':
+ resolution: {integrity: sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw==}
peerDependencies:
unenv: 2.0.0-rc.24
- workerd: 1.20260301.1 || ~1.20260302.1 || ~1.20260303.1 || ~1.20260304.1 || >1.20260305.0 <2.0.0-0
+ workerd: '>1.20260305.0 <2.0.0-0'
peerDependenciesMeta:
workerd:
optional: true
@@ -2317,11 +2351,11 @@ packages:
vite: ^6.1.0 || ^7.0.0
wrangler: ^4.71.0
- '@cloudflare/vite-plugin@1.32.3':
- resolution: {integrity: sha512-a8ZkCA/SOiJ36jT3LlBLkUb7ZzGInhYJoTY4BMRBGdk+nsh44HavbNvtu/RdaqS5VJEMLM4+LqVIJ+V0ahGeFg==}
+ '@cloudflare/vite-plugin@1.33.2':
+ resolution: {integrity: sha512-XI6+XkDn8W6tlvtYUoS6C89Te7fwhyDLrhUBUbagPO1StJ6ofbR0vpqNNqNskUp9592xTRCDk5ukqcjz6xMo+g==}
peerDependencies:
vite: ^6.1.0 || ^7.0.0 || ^8.0.0
- wrangler: ^4.83.0
+ wrangler: ^4.85.0
'@cloudflare/workerd-darwin-64@1.20260301.1':
resolution: {integrity: sha512-+kJvwociLrvy1JV9BAvoSVsMEIYD982CpFmo/yMEvBwxDIjltYsLTE8DLi0mCkGsQ8Ygidv2fD9wavzXeiY7OQ==}
@@ -2329,14 +2363,8 @@ packages:
cpu: [x64]
os: [darwin]
- '@cloudflare/workerd-darwin-64@1.20260401.1':
- resolution: {integrity: sha512-ZSmceM70jH6k+/62VkEcmMNzrpr4kSctkX5Lsgqv38KktfhPY/hsh75y1lRoPWS3H3kgMa4p2pUSlidZR1u2hw==}
- engines: {node: '>=16'}
- cpu: [x64]
- os: [darwin]
-
- '@cloudflare/workerd-darwin-64@1.20260415.1':
- resolution: {integrity: sha512-dsxaKsQm3LnPGNPEdsRv09QN3Y4DqCw7kX5j6noKqbAtro2jTr95sVlYM1jUxZ5FkOl1f7SXgaKKB9t5H5Nkbg==}
+ '@cloudflare/workerd-darwin-64@1.20260424.1':
+ resolution: {integrity: sha512-yFR1XaJbSDLg/qbwtrYaU2xwFXatIPKR5nrMQCN1q/m6+Qe/j6r+kCnFEvOJjMZOm9iCKsE6Qly5clgl4u32qw==}
engines: {node: '>=16'}
cpu: [x64]
os: [darwin]
@@ -2347,14 +2375,8 @@ packages:
cpu: [arm64]
os: [darwin]
- '@cloudflare/workerd-darwin-arm64@1.20260401.1':
- resolution: {integrity: sha512-7UKWF+IUZ3NXMVPsDg8Cjg0r58b+uYlfvs5Yt8bvtU+geCtW4P2MxRHmRSEo8SryckXOJjb/b8tcncgCykFu8g==}
- engines: {node: '>=16'}
- cpu: [arm64]
- os: [darwin]
-
- '@cloudflare/workerd-darwin-arm64@1.20260415.1':
- resolution: {integrity: sha512-+JgSgVA49KyKteHRA1SnonE4Zn5Ei5zdAp5FQMxFmXI8qulZw4Hl7safXxRyK4i9sTO8gl7TFOKO5Q64VPvSDQ==}
+ '@cloudflare/workerd-darwin-arm64@1.20260424.1':
+ resolution: {integrity: sha512-LqWKcE7x/9KyC2iQvKPeb20hKST3dYXDZlYTvFymgR1DfLS0OFOCzVGTloVNd7WqvK4SkdzBYfxo7QMIAeBK0w==}
engines: {node: '>=16'}
cpu: [arm64]
os: [darwin]
@@ -2365,14 +2387,8 @@ packages:
cpu: [x64]
os: [linux]
- '@cloudflare/workerd-linux-64@1.20260401.1':
- resolution: {integrity: sha512-MDWUH/0bvL/l9aauN8zEddyYOXId1OueqrUCXXENNJ95R/lSmF6OgGVuXaYhoIhxQkNiEJ/0NOlnVYj9mJq4dw==}
- engines: {node: '>=16'}
- cpu: [x64]
- os: [linux]
-
- '@cloudflare/workerd-linux-64@1.20260415.1':
- resolution: {integrity: sha512-tU+9pwsqCy8afOVlGtiWrWQc/fedQK4SRm4KPIAt+zOiQWDxWASm6YGBUJis5c648WN80yz47qnmdDi8DQNOcA==}
+ '@cloudflare/workerd-linux-64@1.20260424.1':
+ resolution: {integrity: sha512-YlEBFbAYZHe/ylzl8WEYQEU/jr+0XMqXaST2oBk5oVjksdb1NGuJaggluCdZAzuJJ8UqdTmyhY5u/qrasbiFWA==}
engines: {node: '>=16'}
cpu: [x64]
os: [linux]
@@ -2383,14 +2399,8 @@ packages:
cpu: [arm64]
os: [linux]
- '@cloudflare/workerd-linux-arm64@1.20260401.1':
- resolution: {integrity: sha512-UgkzpMzVWM/bwbo3vjCTg2aoKfGcUhiEoQoDdo6RGWvbHRJyLVZ4VQCG9ZcISiztkiS2ICCoYOtPy6M/lV6Gcw==}
- engines: {node: '>=16'}
- cpu: [arm64]
- os: [linux]
-
- '@cloudflare/workerd-linux-arm64@1.20260415.1':
- resolution: {integrity: sha512-bR9uITnV19r5NQ14xnypi2xHXu2iQvfYV8cVgx0JouFUmWwTEEAwFVojDdssGq93VHX9hr/pi2IRUZeegbYBog==}
+ '@cloudflare/workerd-linux-arm64@1.20260424.1':
+ resolution: {integrity: sha512-qJ0X0m6cL8fWDUPDg8K4IxYZXNJI6XbeOihqjnqKbAClrjdPDn8VUSd+z2XiCQ5NylMtMrpa/skC9UfaR6mh8g==}
engines: {node: '>=16'}
cpu: [arm64]
os: [linux]
@@ -2401,14 +2411,8 @@ packages:
cpu: [x64]
os: [win32]
- '@cloudflare/workerd-windows-64@1.20260401.1':
- resolution: {integrity: sha512-HBLzcQF5iF4Qv20tQ++pG7xs3OsCnaIbc+GAi6fmhUKZhvmzvml/jwrQzLJ+MPm0cQo41K5OO/U3T4S8tvJetQ==}
- engines: {node: '>=16'}
- cpu: [x64]
- os: [win32]
-
- '@cloudflare/workerd-windows-64@1.20260415.1':
- resolution: {integrity: sha512-4NuMLlerI0Ijua3Ir8HXQ+qyNvCUDEG5gDco5Om+sAiK6rnWiz+aGoSlbB8W16yW9QAgzCstbmXLiVknUBflfQ==}
+ '@cloudflare/workerd-windows-64@1.20260424.1':
+ resolution: {integrity: sha512-tZ7Z9qmYNAP6z1/+8r/zKbk8F8DZmpmwNzMeN+zkde2Wnhfr3FBqOkJXT/5zmli8HPoWrIXxSiyqcNDMy8V2Zg==}
engines: {node: '>=16'}
cpu: [x64]
os: [win32]
@@ -3198,7 +3202,7 @@ packages:
resolution: {integrity: sha512-yTCCjuQapvRz6S30B8DyqHu1WYsbYRCww6uNsmbQU4GQVf5gJzJSB60qUHj+qBSxReLtRL/mhmhYhrIc9jVFTw==}
'@lunariajs/core@https://pkg.pr.new/lunariajs/lunaria/@lunariajs/core@83617cc':
- resolution: {integrity: sha512-k8sHBM7S10HBa39fxsJcOGYMGrbru5UZ9vMS4kmCa9o6dJTUP6rt3zKVEs7uEsHAYasoXyiC6wre2Jiqs3X+zQ==, tarball: https://pkg.pr.new/lunariajs/lunaria/@lunariajs/core@83617cc}
+ resolution: {tarball: https://pkg.pr.new/lunariajs/lunaria/@lunariajs/core@83617cc}
version: 0.1.1
engines: {node: '>=18.17.0'}
@@ -4201,11 +4205,11 @@ packages:
'@shikijs/vscode-textmate@10.0.2':
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
- '@simple-git/args-pathspec@1.0.2':
- resolution: {integrity: sha512-nEFVejViHUoL8wU8GTcwqrvqfUG40S5ts6S4fr1u1Ki5CklXlRDYThPVA/qurTmCYFGnaX3XpVUmICLHdvhLaA==}
+ '@simple-git/args-pathspec@1.0.3':
+ resolution: {integrity: sha512-ngJMaHlsWDTfjyq9F3VIQ8b7NXbBLq5j9i5bJ6XLYtD6qlDXT7fdKY2KscWWUF8t18xx052Y/PUO1K1TRc9yKA==}
- '@simple-git/argv-parser@1.0.3':
- resolution: {integrity: sha512-NMKv9sJcSN2VvnPT9Ja7eKfGy8Q8mMFLwPTCcuZMtv3+mYcLIZflg31S/tp2XCCyiY7YAx6cgBHQ0fwA2fWHpQ==}
+ '@simple-git/argv-parser@1.1.1':
+ resolution: {integrity: sha512-Q9lBcfQ+VQCpQqGJFHe5yooOS5hGdLFFbJ5R+R5aDsnkPCahtn1hSkMcORX65J2Z5lxSkD0lQorMsncuBQxYUw==}
'@sinclair/typebox@0.27.10':
resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==}
@@ -5003,6 +5007,27 @@ packages:
peerDependencies:
'@tiptap/core': ^3.20.0
+ '@tiptap/extension-table-cell@3.22.1':
+ resolution: {integrity: sha512-sDMKaQjtuAxs7j4MTezmCq5rzAFfx3igsHgGPv1rW0ibqDx5rObtOZ6oiPSts8a6cPW5/NGqLaVl0Oa5rxrV/g==}
+ peerDependencies:
+ '@tiptap/extension-table': ^3.22.1
+
+ '@tiptap/extension-table-header@3.22.1':
+ resolution: {integrity: sha512-avkNqG4nxgLoAKFz5+qNZRQJMCmHMDy2Fzg3aB030bJnVzCKoC7RJgWQ8d9T+Sy3LQTR7tngpW1NIozS4TI/wg==}
+ peerDependencies:
+ '@tiptap/extension-table': ^3.22.1
+
+ '@tiptap/extension-table-row@3.22.1':
+ resolution: {integrity: sha512-EKbwq4h47y+4UrsvOIN8LwFzSpUpYkQQhhk3x6G5xtDsZXc1kRMAowe/S1n3gcXvSkRDF4PxmepzsHsOcaSJIA==}
+ peerDependencies:
+ '@tiptap/extension-table': ^3.22.1
+
+ '@tiptap/extension-table@3.22.1':
+ resolution: {integrity: sha512-wGioCPgrAhqQ9NNQitVM4sm8WVsu6MBs+4hdgTCtBTA7oEv7EqKWAujY6DA/aPE8uV236pUmosZX3iloHmvpOA==}
+ peerDependencies:
+ '@tiptap/core': ^3.22.1
+ '@tiptap/pm': ^3.22.1
+
'@tiptap/extension-text-align@3.20.0':
resolution: {integrity: sha512-4s0r+bovtH6yeGDUD+Ui8j5WOV5koB5P6AuzOMqoLwaFGRSkKf64ly6DXjjmjIgnYCLZN/XO6llaQKVVdvad2g==}
peerDependencies:
@@ -5505,8 +5530,8 @@ packages:
engines: {node: ^20.19.1 || >=22.12.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
hasBin: true
- astro@6.1.3:
- resolution: {integrity: sha512-FUKbBYOdYYrRNZwDd9I5CVSfR6Nj9aZeNzcjcvh1FgHwR0uXawkYFR3HiGxmdmAB2m8fs0iIkDdsiUfwGeO8qA==}
+ astro@6.1.9:
+ resolution: {integrity: sha512-NsAHzMzpznB281g2aM5qnBt2QjfH6ttKiZ3hSZw52If8JJ+62kbnBKbyKhR2glQcJLl7Jfe4GSl0DihFZ36rRQ==}
engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'}
hasBin: true
@@ -5551,8 +5576,8 @@ packages:
resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
engines: {node: '>=4'}
- better-sqlite3@12.8.0:
- resolution: {integrity: sha512-RxD2Vd96sQDjQr20kdP+F+dK/1OUNiVOl200vKBZY8u0vTwysfolF6Hq+3ZK2+h8My9YvZhHsF+RSGZW2VYrPQ==}
+ better-sqlite3@12.9.0:
+ resolution: {integrity: sha512-wqUv4Gm3toFpHDQmaKD4QhZm3g1DjUBI0yzS4UBl6lElUmXFYdTQmmEDpAFa5o8FiFiymURypEnfVHzILKaxqQ==}
engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x}
binary-extensions@2.3.0:
@@ -5787,6 +5812,9 @@ packages:
cookie-es@1.2.2:
resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==}
+ cookie-es@1.2.3:
+ resolution: {integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==}
+
cookie-es@2.0.0:
resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==}
@@ -5916,6 +5944,9 @@ packages:
defu@6.1.4:
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
+ defu@6.1.7:
+ resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==}
+
depd@2.0.0:
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
engines: {node: '>= 0.8'}
@@ -6374,6 +6405,9 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ h3@1.15.11:
+ resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==}
+
h3@1.15.5:
resolution: {integrity: sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==}
@@ -6957,6 +6991,10 @@ packages:
resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==}
engines: {node: 20 || >=22}
+ lru-cache@11.3.5:
+ resolution: {integrity: sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==}
+ engines: {node: 20 || >=22}
+
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -7214,13 +7252,8 @@ packages:
engines: {node: '>=18.0.0'}
hasBin: true
- miniflare@4.20260401.0:
- resolution: {integrity: sha512-lngHPzZFN9sxYG/mhzvnWiBMNVAN5MsO/7g32ttJ07rymtiK/ZBalODTKb8Od+BQdlU5DOR4CjVt9NydjnUyYg==}
- engines: {node: '>=18.0.0'}
- hasBin: true
-
- miniflare@4.20260415.0:
- resolution: {integrity: sha512-JoExRWN4YBI2luA5BoSMFEgi8rQWXUGzo3mtE+58VXCLV3jj/Xnk5Yeqs/IXWz8Es5GJIaq6BtsixDvAxXSIng==}
+ miniflare@4.20260424.0:
+ resolution: {integrity: sha512-B6MKBBd5TJ19daUc3Ae9rWctn1nDA/VCXykXfCsp9fTxyfGxnZY27tJs1caxgE9MWEMMKGbGHouqVtgKbKGxmw==}
engines: {node: '>=18.0.0'}
hasBin: true
@@ -7320,8 +7353,8 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- nanoid@5.1.7:
- resolution: {integrity: sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==}
+ nanoid@5.1.9:
+ resolution: {integrity: sha512-ZUvP7KeBLe3OZ1ypw6dI/TzYJuvHP77IM4Ry73waSQTLn8/g8rpdjfyVAh7t1/+FjBtG4lCP42MEbDxOsRpBMw==}
engines: {node: ^18 || >=20}
hasBin: true
@@ -7640,6 +7673,10 @@ packages:
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
engines: {node: '>=12'}
+ picomatch@4.0.4:
+ resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
+ engines: {node: '>=12'}
+
pify@4.0.1:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'}
@@ -8200,8 +8237,8 @@ packages:
simple-get@4.0.1:
resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
- simple-git@3.35.2:
- resolution: {integrity: sha512-ZMjl06lzTm1EScxEGuM6+mEX+NQd14h/B3x0vWU+YOXAMF8sicyi1K4cjTfj5is+35ChJEHDl1EjypzYFWH2FA==}
+ simple-git@3.36.0:
+ resolution: {integrity: sha512-cGQjLjK8bxJw4QuYT7gxHw3/IouVESbhahSsHrX97MzCL1gu2u7oy38W6L2ZIGECEfIBG4BabsWDPjBxJENv9Q==}
sirv@3.0.2:
resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==}
@@ -8392,8 +8429,8 @@ packages:
resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
engines: {node: '>=18'}
- tinyexec@1.0.4:
- resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==}
+ tinyexec@1.1.1:
+ resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==}
engines: {node: '>=18'}
tinyglobby@0.2.15:
@@ -8561,10 +8598,6 @@ packages:
resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==}
engines: {node: '>=20.18.1'}
- undici@7.24.4:
- resolution: {integrity: sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==}
- engines: {node: '>=20.18.1'}
-
undici@7.24.8:
resolution: {integrity: sha512-6KQ/+QxK49Z/p3HO6E5ZCZWNnCasyZLa5ExaVYyvPxUwKtbCPMKELJOqh7EqOle0t9cH/7d2TaaTRRa6Nhs4YQ==}
engines: {node: '>=20.18.1'}
@@ -8698,6 +8731,68 @@ packages:
uploadthing:
optional: true
+ unstorage@1.17.5:
+ resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==}
+ peerDependencies:
+ '@azure/app-configuration': ^1.8.0
+ '@azure/cosmos': ^4.2.0
+ '@azure/data-tables': ^13.3.0
+ '@azure/identity': ^4.6.0
+ '@azure/keyvault-secrets': ^4.9.0
+ '@azure/storage-blob': ^12.26.0
+ '@capacitor/preferences': ^6 || ^7 || ^8
+ '@deno/kv': '>=0.9.0'
+ '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0
+ '@planetscale/database': ^1.19.0
+ '@upstash/redis': ^1.34.3
+ '@vercel/blob': '>=0.27.1'
+ '@vercel/functions': ^2.2.12 || ^3.0.0
+ '@vercel/kv': ^1 || ^2 || ^3
+ aws4fetch: ^1.0.20
+ db0: '>=0.2.1'
+ idb-keyval: ^6.2.1
+ ioredis: ^5.4.2
+ uploadthing: ^7.4.4
+ peerDependenciesMeta:
+ '@azure/app-configuration':
+ optional: true
+ '@azure/cosmos':
+ optional: true
+ '@azure/data-tables':
+ optional: true
+ '@azure/identity':
+ optional: true
+ '@azure/keyvault-secrets':
+ optional: true
+ '@azure/storage-blob':
+ optional: true
+ '@capacitor/preferences':
+ optional: true
+ '@deno/kv':
+ optional: true
+ '@netlify/blobs':
+ optional: true
+ '@planetscale/database':
+ optional: true
+ '@upstash/redis':
+ optional: true
+ '@vercel/blob':
+ optional: true
+ '@vercel/functions':
+ optional: true
+ '@vercel/kv':
+ optional: true
+ aws4fetch:
+ optional: true
+ db0:
+ optional: true
+ idb-keyval:
+ optional: true
+ ioredis:
+ optional: true
+ uploadthing:
+ optional: true
+
update-browserslist-db@1.2.3:
resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
hasBin: true
@@ -8820,6 +8915,46 @@ packages:
yaml:
optional: true
+ vite@7.3.2:
+ resolution: {integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^20.19.0 || >=22.12.0
+ jiti: '>=1.21.0'
+ less: ^4.0.0
+ lightningcss: ^1.21.0
+ sass: ^1.70.0
+ sass-embedded: ^1.70.0
+ stylus: '>=0.54.8'
+ sugarss: ^5.0.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
vitefu@1.1.2:
resolution: {integrity: sha512-zpKATdUbzbsycPFBN71nS2uzBUQiVnFoOrr2rvqv34S1lcAgMKKkjWleLGeiJlZ8lwCXvtWaRn7R3ZC16SYRuw==}
peerDependencies:
@@ -9031,13 +9166,8 @@ packages:
engines: {node: '>=16'}
hasBin: true
- workerd@1.20260401.1:
- resolution: {integrity: sha512-mUYCd+ohaWJWF5nhDzxugWaAD/DM8Dw0ze3B7bu8JaA7S70+XQJXcvcvwE8C4qGcxSdCyqjsrFzqxKubECDwzg==}
- engines: {node: '>=16'}
- hasBin: true
-
- workerd@1.20260415.1:
- resolution: {integrity: sha512-phyPjRnx+mQDfkhN9ENPioL1L0SdhYs4S0YmJK/xF9Oga+ykNfdSy1MHnsOj8yqnOV96zcVQMx32dJ0r3pq0jQ==}
+ workerd@1.20260424.1:
+ resolution: {integrity: sha512-oKsB0Xo/mfkYMdSACoS06XZg09VUK4rXwHfF/1t3P++sMbwzf4UHQvMO57+zxpEB2nVrY/ZkW0bYFGq4GdAFSQ==}
engines: {node: '>=16'}
hasBin: true
@@ -9051,22 +9181,12 @@ packages:
'@cloudflare/workers-types':
optional: true
- wrangler@4.80.0:
- resolution: {integrity: sha512-2ZKF7uPeOZy65BGk3YfvqBCPo/xH1MrAlMmH9mVP+tCNBrTUMnwOHSj1HrZHgR8LttkAqhko0fGz+I4ax1rzyQ==}
- engines: {node: '>=20.3.0'}
- hasBin: true
- peerDependencies:
- '@cloudflare/workers-types': ^4.20260401.1
- peerDependenciesMeta:
- '@cloudflare/workers-types':
- optional: true
-
- wrangler@4.83.0:
- resolution: {integrity: sha512-gw5g3LCiuAqVWxaoKY6+quE0HzAUEFb/FV3oAlNkE1ttd4XP3FiV91XDkkzUCcdqxS4WjhQvPhIDBNdhEi8P0A==}
+ wrangler@4.85.0:
+ resolution: {integrity: sha512-93cwt2RPb1qdcmEgPzH7ybiLN4BIKoWpscIX6SywjHrQOeIZrQk2haoc3XMLKtQTmzapxza9OuDD+kMHpsuuhg==}
engines: {node: '>=20.3.0'}
hasBin: true
peerDependencies:
- '@cloudflare/workers-types': ^4.20260415.1
+ '@cloudflare/workers-types': ^4.20260424.1
peerDependenciesMeta:
'@cloudflare/workers-types':
optional: true
@@ -9224,7 +9344,7 @@ snapshots:
'@antfu/install-pkg@1.1.0':
dependencies:
package-manager-detector: 1.6.0
- tinyexec: 1.0.4
+ tinyexec: 1.0.2
'@apidevtools/json-schema-ref-parser@14.0.1':
dependencies:
@@ -9335,42 +9455,16 @@ snapshots:
- prettier
- prettier-plugin-astro
- '@astrojs/cloudflare@13.1.7(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260401.1)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)':
- dependencies:
- '@astrojs/internal-helpers': 0.8.0
- '@astrojs/underscore-redirects': 1.0.3
- '@cloudflare/vite-plugin': 1.26.1(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260401.1)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))
- astro: 6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2)
- piccolore: 0.1.3
- tinyglobby: 0.2.15
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- wrangler: 4.80.0(@cloudflare/workers-types@4.20260305.1)
- transitivePeerDependencies:
- - '@types/node'
- - bufferutil
- - jiti
- - less
- - lightningcss
- - sass
- - sass-embedded
- - stylus
- - sugarss
- - terser
- - tsx
- - utf-8-validate
- - workerd
- - yaml
-
- '@astrojs/cloudflare@13.1.7(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)':
+ '@astrojs/cloudflare@13.2.1(@types/node@24.10.13)(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)':
dependencies:
- '@astrojs/internal-helpers': 0.8.0
+ '@astrojs/internal-helpers': 0.9.0
'@astrojs/underscore-redirects': 1.0.3
- '@cloudflare/vite-plugin': 1.26.1(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))
+ '@cloudflare/vite-plugin': 1.33.2(vite@7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))
astro: 6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2)
piccolore: 0.1.3
tinyglobby: 0.2.15
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- wrangler: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ vite: 7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ wrangler: 4.85.0(@cloudflare/workers-types@4.20260305.1)
transitivePeerDependencies:
- '@types/node'
- bufferutil
@@ -9387,16 +9481,16 @@ snapshots:
- workerd
- yaml
- '@astrojs/cloudflare@13.1.7(@types/node@24.10.13)(astro@6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(wrangler@4.80.0)(yaml@2.8.2)':
+ '@astrojs/cloudflare@13.2.1(@types/node@24.10.13)(astro@6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0)(yaml@2.8.2)':
dependencies:
- '@astrojs/internal-helpers': 0.8.0
+ '@astrojs/internal-helpers': 0.9.0
'@astrojs/underscore-redirects': 1.0.3
- '@cloudflare/vite-plugin': 1.26.1(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(wrangler@4.80.0)
- astro: 6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ '@cloudflare/vite-plugin': 1.33.2(vite@7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260424.1)(wrangler@4.85.0)
+ astro: 6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
piccolore: 0.1.3
tinyglobby: 0.2.15
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- wrangler: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ vite: 7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ wrangler: 4.85.0(@cloudflare/workers-types@4.20260305.1)
transitivePeerDependencies:
- '@types/node'
- bufferutil
@@ -9413,16 +9507,16 @@ snapshots:
- workerd
- yaml
- '@astrojs/cloudflare@https://pkg.pr.new/@astrojs/cloudflare@94d342d(@types/node@24.10.13)(astro@https://pkg.pr.new/astro@94d342d(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260415.1)(wrangler@4.83.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)':
+ '@astrojs/cloudflare@https://pkg.pr.new/@astrojs/cloudflare@94d342d(@types/node@24.10.13)(astro@https://pkg.pr.new/astro@94d342d(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))(yaml@2.8.2)':
dependencies:
'@astrojs/internal-helpers': 0.8.0
'@astrojs/underscore-redirects': 1.0.3
- '@cloudflare/vite-plugin': 1.32.3(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260415.1)(wrangler@4.83.0(@cloudflare/workers-types@4.20260305.1))
+ '@cloudflare/vite-plugin': 1.33.2(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))
astro: https://pkg.pr.new/astro@94d342d(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2)
piccolore: 0.1.3
tinyglobby: 0.2.15
vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- wrangler: 4.83.0(@cloudflare/workers-types@4.20260305.1)
+ wrangler: 4.85.0(@cloudflare/workers-types@4.20260305.1)
transitivePeerDependencies:
- '@types/node'
- bufferutil
@@ -9453,6 +9547,10 @@ snapshots:
dependencies:
picomatch: 4.0.3
+ '@astrojs/internal-helpers@0.9.0':
+ dependencies:
+ picomatch: 4.0.4
+
'@astrojs/language-server@2.16.3(prettier-plugin-astro@0.14.1)(prettier@3.8.1)(typescript@6.0.0-beta)':
dependencies:
'@astrojs/compiler': 2.13.0
@@ -9519,7 +9617,7 @@ snapshots:
remark-parse: 11.0.0
remark-rehype: 11.1.2
remark-smartypants: 3.0.2
- shiki: 4.0.2
+ shiki: 4.0.1
smol-toml: 1.6.0
unified: 11.0.5
unist-util-remove-position: 5.0.0
@@ -9555,12 +9653,38 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@astrojs/mdx@5.0.3(astro@6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))':
+ '@astrojs/markdown-remark@7.1.1':
dependencies:
- '@astrojs/markdown-remark': 7.1.0
+ '@astrojs/internal-helpers': 0.9.0
+ '@astrojs/prism': 4.0.1
+ github-slugger: 2.0.0
+ hast-util-from-html: 2.0.3
+ hast-util-to-text: 4.0.2
+ js-yaml: 4.1.1
+ mdast-util-definitions: 6.0.0
+ rehype-raw: 7.0.0
+ rehype-stringify: 10.0.1
+ remark-gfm: 4.0.1
+ remark-parse: 11.0.0
+ remark-rehype: 11.1.2
+ remark-smartypants: 3.0.2
+ retext-smartypants: 6.2.0
+ shiki: 4.0.2
+ smol-toml: 1.6.0
+ unified: 11.0.5
+ unist-util-remove-position: 5.0.0
+ unist-util-visit: 5.1.0
+ unist-util-visit-parents: 6.0.2
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@astrojs/mdx@5.0.4(astro@6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))':
+ dependencies:
+ '@astrojs/markdown-remark': 7.1.1
'@mdx-js/mdx': 3.1.1
acorn: 8.16.0
- astro: 6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ astro: 6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
es-module-lexer: 2.0.0
estree-util-visit: 2.0.0
hast-util-to-html: 9.0.5
@@ -9660,22 +9784,22 @@ snapshots:
stream-replace-string: 2.0.0
zod: 4.3.6
- '@astrojs/starlight-tailwind@5.0.0(@astrojs/starlight@0.38.2(astro@6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)))(tailwindcss@4.2.1)':
+ '@astrojs/starlight-tailwind@5.0.0(@astrojs/starlight@0.38.4(astro@6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)))(tailwindcss@4.2.1)':
dependencies:
- '@astrojs/starlight': 0.38.2(astro@6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))
+ '@astrojs/starlight': 0.38.4(astro@6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))
tailwindcss: 4.2.1
- '@astrojs/starlight@0.38.2(astro@6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))':
+ '@astrojs/starlight@0.38.4(astro@6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))':
dependencies:
'@astrojs/markdown-remark': 7.0.0
- '@astrojs/mdx': 5.0.3(astro@6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))
+ '@astrojs/mdx': 5.0.4(astro@6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))
'@astrojs/sitemap': 3.7.2
'@pagefind/default-ui': 1.4.0
'@types/hast': 3.0.4
'@types/js-yaml': 4.0.9
'@types/mdast': 4.0.4
- astro: 6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
- astro-expressive-code: 0.41.6(astro@6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))
+ astro: 6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ astro-expressive-code: 0.41.6(astro@6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))
bcp-47: 2.1.0
hast-util-from-html: 2.0.3
hast-util-select: 6.0.4
@@ -9711,6 +9835,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@astrojs/telemetry@3.3.1':
+ dependencies:
+ ci-info: 4.4.0
+ dlv: 1.1.3
+ dset: 3.1.4
+ is-docker: 4.0.0
+ is-wsl: 3.1.1
+ which-pm-runs: 1.1.0
+
'@astrojs/telemetry@https://pkg.pr.new/withastro/astro/@astrojs/telemetry@94d342d':
dependencies:
ci-info: 4.4.0
@@ -9729,24 +9862,24 @@ snapshots:
'@atcute/client@4.2.1':
dependencies:
'@atcute/identity': 1.1.4
- '@atcute/lexicons': 1.2.10
+ '@atcute/lexicons': 1.3.0
'@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.4)':
dependencies:
'@atcute/identity': 1.1.4
- '@atcute/lexicons': 1.2.10
+ '@atcute/lexicons': 1.3.0
'@atcute/util-fetch': 1.0.5
'@badrap/valita': 0.4.6
'@atcute/identity@1.1.4':
dependencies:
- '@atcute/lexicons': 1.2.10
+ '@atcute/lexicons': 1.3.0
'@badrap/valita': 0.4.6
- '@atcute/lexicons@1.2.10':
+ '@atcute/lexicons@1.3.0':
dependencies:
'@atcute/uint8array': 1.1.1
- '@atcute/util-text': 1.2.0
+ '@atcute/util-text': 1.3.1
'@standard-schema/spec': 1.1.0
esm-env: 1.2.2
@@ -9759,7 +9892,7 @@ snapshots:
'@atcute/multibase': 1.2.0
'@atcute/uint8array': 1.1.1
'@badrap/valita': 0.4.6
- nanoid: 5.1.7
+ nanoid: 5.1.9
'@atcute/oauth-keyset@0.1.0':
dependencies:
@@ -9770,18 +9903,18 @@ snapshots:
'@atcute/client': 4.2.1
'@atcute/identity': 1.1.4
'@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.4)
- '@atcute/lexicons': 1.2.10
+ '@atcute/lexicons': 1.3.0
'@atcute/oauth-crypto': 0.1.0
'@atcute/oauth-keyset': 0.1.0
'@atcute/oauth-types': 0.1.1
'@atcute/util-fetch': 1.0.5
'@badrap/valita': 0.4.6
- nanoid: 5.1.7
+ nanoid: 5.1.9
'@atcute/oauth-types@0.1.1':
dependencies:
'@atcute/identity': 1.1.4
- '@atcute/lexicons': 1.2.10
+ '@atcute/lexicons': 1.3.0
'@atcute/oauth-keyset': 0.1.0
'@badrap/valita': 0.4.6
@@ -9791,7 +9924,7 @@ snapshots:
dependencies:
'@badrap/valita': 0.4.6
- '@atcute/util-text@1.2.0':
+ '@atcute/util-text@1.3.1':
dependencies:
unicode-segmenter: 0.14.5
@@ -10240,89 +10373,64 @@ snapshots:
optionalDependencies:
workerd: 1.20260301.1
- '@cloudflare/unenv-preset@2.15.0(unenv@2.0.0-rc.24)(workerd@1.20260401.1)':
+ '@cloudflare/unenv-preset@2.15.0(unenv@2.0.0-rc.24)(workerd@1.20260424.1)':
dependencies:
unenv: 2.0.0-rc.24
optionalDependencies:
- workerd: 1.20260401.1
+ workerd: 1.20260424.1
- '@cloudflare/unenv-preset@2.15.0(unenv@2.0.0-rc.24)(workerd@1.20260415.1)':
+ '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260424.1)':
dependencies:
unenv: 2.0.0-rc.24
optionalDependencies:
- workerd: 1.20260415.1
+ workerd: 1.20260424.1
- '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260401.1)':
+ '@cloudflare/vite-plugin@1.26.1(vite@6.4.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260424.1)(wrangler@4.85.0)':
dependencies:
- unenv: 2.0.0-rc.24
- optionalDependencies:
- workerd: 1.20260401.1
-
- '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260415.1)':
- dependencies:
- unenv: 2.0.0-rc.24
- optionalDependencies:
- workerd: 1.20260415.1
-
- '@cloudflare/vite-plugin@1.26.1(vite@6.4.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260415.1)(wrangler@4.80.0)':
- dependencies:
- '@cloudflare/unenv-preset': 2.15.0(unenv@2.0.0-rc.24)(workerd@1.20260415.1)
+ '@cloudflare/unenv-preset': 2.15.0(unenv@2.0.0-rc.24)(workerd@1.20260424.1)
miniflare: 4.20260301.1
unenv: 2.0.0-rc.24
vite: 6.4.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- wrangler: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ wrangler: 4.85.0(@cloudflare/workers-types@4.20260305.1)
ws: 8.18.0
transitivePeerDependencies:
- bufferutil
- utf-8-validate
- workerd
- '@cloudflare/vite-plugin@1.26.1(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260401.1)(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))':
+ '@cloudflare/vite-plugin@1.33.2(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))':
dependencies:
- '@cloudflare/unenv-preset': 2.15.0(unenv@2.0.0-rc.24)(workerd@1.20260401.1)
- miniflare: 4.20260301.1
+ '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260424.1)
+ miniflare: 4.20260424.0
unenv: 2.0.0-rc.24
vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- wrangler: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ wrangler: 4.85.0(@cloudflare/workers-types@4.20260305.1)
ws: 8.18.0
transitivePeerDependencies:
- bufferutil
- utf-8-validate
- workerd
- '@cloudflare/vite-plugin@1.26.1(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1))':
+ '@cloudflare/vite-plugin@1.33.2(vite@7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260424.1)(wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1))':
dependencies:
- '@cloudflare/unenv-preset': 2.15.0(unenv@2.0.0-rc.24)(workerd@1.20260301.1)
- miniflare: 4.20260301.1
+ '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260424.1)
+ miniflare: 4.20260424.0
unenv: 2.0.0-rc.24
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- wrangler: 4.80.0(@cloudflare/workers-types@4.20260305.1)
+ vite: 7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ wrangler: 4.85.0(@cloudflare/workers-types@4.20260305.1)
ws: 8.18.0
transitivePeerDependencies:
- bufferutil
- utf-8-validate
- workerd
- '@cloudflare/vite-plugin@1.26.1(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(wrangler@4.80.0)':
+ '@cloudflare/vite-plugin@1.33.2(vite@7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260424.1)(wrangler@4.85.0)':
dependencies:
- '@cloudflare/unenv-preset': 2.15.0(unenv@2.0.0-rc.24)(workerd@1.20260301.1)
- miniflare: 4.20260301.1
+ '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260424.1)
+ miniflare: 4.20260424.0
unenv: 2.0.0-rc.24
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- wrangler: 4.80.0(@cloudflare/workers-types@4.20260305.1)
- ws: 8.18.0
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
- - workerd
-
- '@cloudflare/vite-plugin@1.32.3(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(workerd@1.20260415.1)(wrangler@4.83.0(@cloudflare/workers-types@4.20260305.1))':
- dependencies:
- '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260415.1)
- miniflare: 4.20260415.0
- unenv: 2.0.0-rc.24
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- wrangler: 4.83.0(@cloudflare/workers-types@4.20260305.1)
+ vite: 7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ wrangler: 4.85.0(@cloudflare/workers-types@4.20260305.1)
ws: 8.18.0
transitivePeerDependencies:
- bufferutil
@@ -10332,46 +10440,31 @@ snapshots:
'@cloudflare/workerd-darwin-64@1.20260301.1':
optional: true
- '@cloudflare/workerd-darwin-64@1.20260401.1':
- optional: true
-
- '@cloudflare/workerd-darwin-64@1.20260415.1':
+ '@cloudflare/workerd-darwin-64@1.20260424.1':
optional: true
'@cloudflare/workerd-darwin-arm64@1.20260301.1':
optional: true
- '@cloudflare/workerd-darwin-arm64@1.20260401.1':
- optional: true
-
- '@cloudflare/workerd-darwin-arm64@1.20260415.1':
+ '@cloudflare/workerd-darwin-arm64@1.20260424.1':
optional: true
'@cloudflare/workerd-linux-64@1.20260301.1':
optional: true
- '@cloudflare/workerd-linux-64@1.20260401.1':
- optional: true
-
- '@cloudflare/workerd-linux-64@1.20260415.1':
+ '@cloudflare/workerd-linux-64@1.20260424.1':
optional: true
'@cloudflare/workerd-linux-arm64@1.20260301.1':
optional: true
- '@cloudflare/workerd-linux-arm64@1.20260401.1':
- optional: true
-
- '@cloudflare/workerd-linux-arm64@1.20260415.1':
+ '@cloudflare/workerd-linux-arm64@1.20260424.1':
optional: true
'@cloudflare/workerd-windows-64@1.20260301.1':
optional: true
- '@cloudflare/workerd-windows-64@1.20260401.1':
- optional: true
-
- '@cloudflare/workerd-windows-64@1.20260415.1':
+ '@cloudflare/workerd-windows-64@1.20260424.1':
optional: true
'@cloudflare/workers-types@4.20260305.1': {}
@@ -11043,7 +11136,7 @@ snapshots:
p-all: 5.0.1
path-to-regexp: 6.3.0
picomatch: 4.0.3
- simple-git: 3.35.2
+ simple-git: 3.36.0
tinyglobby: 0.2.15
ultramatter: 0.0.4
zod: 3.25.76
@@ -11808,11 +11901,11 @@ snapshots:
'@shikijs/vscode-textmate@10.0.2': {}
- '@simple-git/args-pathspec@1.0.2': {}
+ '@simple-git/args-pathspec@1.0.3': {}
- '@simple-git/argv-parser@1.0.3':
+ '@simple-git/argv-parser@1.1.1':
dependencies:
- '@simple-git/args-pathspec': 1.0.2
+ '@simple-git/args-pathspec': 1.0.3
'@sinclair/typebox@0.27.10': {}
@@ -12653,6 +12746,23 @@ snapshots:
dependencies:
'@tiptap/core': 3.20.0(@tiptap/pm@3.20.0)
+ '@tiptap/extension-table-cell@3.22.1(@tiptap/extension-table@3.22.1(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0))':
+ dependencies:
+ '@tiptap/extension-table': 3.22.1(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)
+
+ '@tiptap/extension-table-header@3.22.1(@tiptap/extension-table@3.22.1(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0))':
+ dependencies:
+ '@tiptap/extension-table': 3.22.1(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)
+
+ '@tiptap/extension-table-row@3.22.1(@tiptap/extension-table@3.22.1(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0))':
+ dependencies:
+ '@tiptap/extension-table': 3.22.1(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)
+
+ '@tiptap/extension-table@3.22.1(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)':
+ dependencies:
+ '@tiptap/core': 3.20.0(@tiptap/pm@3.20.0)
+ '@tiptap/pm': 3.20.0
+
'@tiptap/extension-text-align@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))':
dependencies:
'@tiptap/core': 3.20.0(@tiptap/pm@3.20.0)
@@ -12951,6 +13061,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@vitejs/plugin-react@4.7.0(vite@7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0)
+ '@rolldown/pluginutils': 1.0.0-beta.27
+ '@types/babel__core': 7.20.5
+ react-refresh: 0.17.0
+ vite: 7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ transitivePeerDependencies:
+ - supports-color
+
'@vitejs/plugin-react@5.1.4(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@babel/core': 7.29.0
@@ -13277,9 +13399,9 @@ snapshots:
'@astro-community/astro-embed-youtube': 0.5.10
astro: 6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
- astro-expressive-code@0.41.6(astro@6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)):
+ astro-expressive-code@0.41.6(astro@6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)):
dependencies:
- astro: 6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ astro: 6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
rehype-expressive-code: 0.41.6
astro-iconset@0.0.4(astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2))(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
@@ -13394,7 +13516,7 @@ snapshots:
astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2):
dependencies:
- '@astrojs/compiler': 3.0.1
+ '@astrojs/compiler': 3.0.0
'@astrojs/internal-helpers': 0.8.0
'@astrojs/markdown-remark': 7.0.0
'@astrojs/telemetry': 3.3.0
@@ -13432,11 +13554,11 @@ snapshots:
picomatch: 4.0.3
rehype: 13.0.2
semver: 7.7.4
- shiki: 4.0.2
+ shiki: 4.0.1
smol-toml: 1.6.0
- svgo: 4.0.1
+ svgo: 4.0.0
tinyclip: 0.1.12
- tinyexec: 1.0.4
+ tinyexec: 1.0.2
tinyglobby: 0.2.15
tsconfck: 3.1.6(typescript@5.9.3)
ultrahtml: 1.6.0
@@ -13488,7 +13610,7 @@ snapshots:
astro@6.0.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@6.0.0-beta)(yaml@2.8.2):
dependencies:
- '@astrojs/compiler': 3.0.1
+ '@astrojs/compiler': 3.0.0
'@astrojs/internal-helpers': 0.8.0
'@astrojs/markdown-remark': 7.0.0
'@astrojs/telemetry': 3.3.0
@@ -13526,11 +13648,11 @@ snapshots:
picomatch: 4.0.3
rehype: 13.0.2
semver: 7.7.4
- shiki: 4.0.2
+ shiki: 4.0.1
smol-toml: 1.6.0
- svgo: 4.0.1
+ svgo: 4.0.0
tinyclip: 0.1.12
- tinyexec: 1.0.4
+ tinyexec: 1.0.2
tinyglobby: 0.2.15
tsconfck: 3.1.6(typescript@6.0.0-beta)
ultrahtml: 1.6.0
@@ -13580,12 +13702,12 @@ snapshots:
- uploadthing
- yaml
- astro@6.1.3(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2):
+ astro@6.1.9(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.55.2)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2):
dependencies:
'@astrojs/compiler': 3.0.1
- '@astrojs/internal-helpers': 0.8.0
- '@astrojs/markdown-remark': 7.1.0
- '@astrojs/telemetry': 3.3.0
+ '@astrojs/internal-helpers': 0.9.0
+ '@astrojs/markdown-remark': 7.1.1
+ '@astrojs/telemetry': 3.3.1
'@capsizecss/unpack': 4.0.0
'@clack/prompts': 1.1.0
'@oslojs/encoding': 1.1.0
@@ -13598,7 +13720,6 @@ snapshots:
cookie: 1.1.1
devalue: 5.6.3
diff: 8.0.3
- dlv: 1.1.3
dset: 3.1.4
es-module-lexer: 2.0.0
esbuild: 0.27.3
@@ -13617,23 +13738,23 @@ snapshots:
p-queue: 9.1.0
package-manager-detector: 1.6.0
piccolore: 0.1.3
- picomatch: 4.0.3
+ picomatch: 4.0.4
rehype: 13.0.2
semver: 7.7.4
shiki: 4.0.2
smol-toml: 1.6.0
svgo: 4.0.1
tinyclip: 0.1.12
- tinyexec: 1.0.4
+ tinyexec: 1.1.1
tinyglobby: 0.2.15
tsconfck: 3.1.6(typescript@5.9.3)
ultrahtml: 1.6.0
unifont: 0.7.4
unist-util-visit: 5.1.0
- unstorage: 1.17.4
+ unstorage: 1.17.5
vfile: 6.0.3
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- vitefu: 1.1.2(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ vite: 7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vitefu: 1.1.2(vite@7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
xxhash-wasm: 1.1.0
yargs-parser: 22.0.0
zod: 4.3.6
@@ -13717,7 +13838,7 @@ snapshots:
smol-toml: 1.6.0
svgo: 4.0.1
tinyclip: 0.1.12
- tinyexec: 1.0.4
+ tinyexec: 1.1.1
tinyglobby: 0.2.15
tsconfck: 3.1.6(typescript@6.0.0-beta)
ultrahtml: 1.6.0
@@ -13793,7 +13914,7 @@ snapshots:
dependencies:
is-windows: 1.0.2
- better-sqlite3@12.8.0:
+ better-sqlite3@12.9.0:
dependencies:
bindings: 1.5.0
prebuild-install: 7.1.3
@@ -14010,6 +14131,8 @@ snapshots:
cookie-es@1.2.2: {}
+ cookie-es@1.2.3: {}
+
cookie-es@2.0.0: {}
cookie-signature@1.2.2: {}
@@ -14121,6 +14244,8 @@ snapshots:
defu@6.1.4: {}
+ defu@6.1.7: {}
+
depd@2.0.0: {}
dequal@2.0.3: {}
@@ -14637,6 +14762,18 @@ snapshots:
graceful-fs@4.2.11: {}
+ h3@1.15.11:
+ dependencies:
+ cookie-es: 1.2.3
+ crossws: 0.3.5
+ defu: 6.1.7
+ destr: 2.0.5
+ iron-webcrypto: 1.2.1
+ node-mock-http: 1.0.4
+ radix3: 1.1.2
+ ufo: 1.6.3
+ uncrypto: 0.1.3
+
h3@1.15.5:
dependencies:
cookie-es: 1.2.2
@@ -15269,6 +15406,8 @@ snapshots:
lru-cache@11.2.4: {}
+ lru-cache@11.3.5: {}
+
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
@@ -15812,24 +15951,12 @@ snapshots:
- bufferutil
- utf-8-validate
- miniflare@4.20260401.0:
- dependencies:
- '@cspotcode/source-map-support': 0.8.1
- sharp: 0.34.5
- undici: 7.24.4
- workerd: 1.20260401.1
- ws: 8.18.0
- youch: 4.1.0-beta.10
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
-
- miniflare@4.20260415.0:
+ miniflare@4.20260424.0:
dependencies:
'@cspotcode/source-map-support': 0.8.1
sharp: 0.34.5
undici: 7.24.8
- workerd: 1.20260415.1
+ workerd: 1.20260424.1
ws: 8.18.0
youch: 4.1.0-beta.10
transitivePeerDependencies:
@@ -15913,7 +16040,7 @@ snapshots:
nanoid@3.3.11: {}
- nanoid@5.1.7: {}
+ nanoid@5.1.9: {}
napi-build-utils@2.0.0: {}
@@ -16287,6 +16414,8 @@ snapshots:
picomatch@4.0.3: {}
+ picomatch@4.0.4: {}
+
pify@4.0.1: {}
pixelmatch@7.1.0:
@@ -17074,12 +17203,12 @@ snapshots:
once: 1.4.0
simple-concat: 1.0.1
- simple-git@3.35.2:
+ simple-git@3.36.0:
dependencies:
'@kwsites/file-exists': 1.1.1
'@kwsites/promise-deferred': 1.1.1
- '@simple-git/args-pathspec': 1.0.2
- '@simple-git/argv-parser': 1.0.3
+ '@simple-git/args-pathspec': 1.0.3
+ '@simple-git/argv-parser': 1.1.1
debug: 4.4.3
transitivePeerDependencies:
- supports-color
@@ -17097,7 +17226,7 @@ snapshots:
'@types/node': 24.10.13
'@types/sax': 1.2.7
arg: 5.0.2
- sax: 1.6.0
+ sax: 1.4.4
skin-tone@2.0.0:
dependencies:
@@ -17276,7 +17405,7 @@ snapshots:
tinyexec@1.0.2: {}
- tinyexec@1.0.4: {}
+ tinyexec@1.1.1: {}
tinyglobby@0.2.15:
dependencies:
@@ -17340,7 +17469,7 @@ snapshots:
rolldown: 1.0.0-rc.3
rolldown-plugin-dts: 0.22.2(@typescript/native-preview@7.0.0-dev.20260213.1)(oxc-resolver@11.16.4)(rolldown@1.0.0-rc.3)(typescript@5.9.3)
semver: 7.7.4
- tinyexec: 1.0.4
+ tinyexec: 1.0.2
tinyglobby: 0.2.15
tree-kill: 1.2.2
unconfig-core: 7.4.2
@@ -17420,8 +17549,6 @@ snapshots:
undici@7.18.2: {}
- undici@7.24.4: {}
-
undici@7.24.8: {}
unenv@2.0.0-rc.24:
@@ -17521,6 +17648,17 @@ snapshots:
ofetch: 1.5.1
ufo: 1.6.3
+ unstorage@1.17.5:
+ dependencies:
+ anymatch: 3.1.3
+ chokidar: 5.0.0
+ destr: 2.0.5
+ h3: 1.15.11
+ lru-cache: 11.3.5
+ node-fetch-native: 1.6.7
+ ofetch: 1.5.1
+ ufo: 1.6.3
+
update-browserslist-db@1.2.3(browserslist@4.28.1):
dependencies:
browserslist: 4.28.1
@@ -17605,10 +17743,30 @@ snapshots:
tsx: 4.21.0
yaml: 2.8.2
+ vite@7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2):
+ dependencies:
+ esbuild: 0.27.3
+ fdir: 6.5.0(picomatch@4.0.3)
+ picomatch: 4.0.3
+ postcss: 8.5.6
+ rollup: 4.55.2
+ tinyglobby: 0.2.15
+ optionalDependencies:
+ '@types/node': 24.10.13
+ fsevents: 2.3.3
+ jiti: 2.6.1
+ lightningcss: 1.31.1
+ tsx: 4.21.0
+ yaml: 2.8.2
+
vitefu@1.1.2(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)):
optionalDependencies:
vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vitefu@1.1.2(vite@7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)):
+ optionalDependencies:
+ vite: 7.3.2(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+
vitest-browser-react@2.0.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vitest@4.0.18):
dependencies:
react: 19.2.4
@@ -17850,21 +18008,13 @@ snapshots:
'@cloudflare/workerd-linux-arm64': 1.20260301.1
'@cloudflare/workerd-windows-64': 1.20260301.1
- workerd@1.20260401.1:
- optionalDependencies:
- '@cloudflare/workerd-darwin-64': 1.20260401.1
- '@cloudflare/workerd-darwin-arm64': 1.20260401.1
- '@cloudflare/workerd-linux-64': 1.20260401.1
- '@cloudflare/workerd-linux-arm64': 1.20260401.1
- '@cloudflare/workerd-windows-64': 1.20260401.1
-
- workerd@1.20260415.1:
+ workerd@1.20260424.1:
optionalDependencies:
- '@cloudflare/workerd-darwin-64': 1.20260415.1
- '@cloudflare/workerd-darwin-arm64': 1.20260415.1
- '@cloudflare/workerd-linux-64': 1.20260415.1
- '@cloudflare/workerd-linux-arm64': 1.20260415.1
- '@cloudflare/workerd-windows-64': 1.20260415.1
+ '@cloudflare/workerd-darwin-64': 1.20260424.1
+ '@cloudflare/workerd-darwin-arm64': 1.20260424.1
+ '@cloudflare/workerd-linux-64': 1.20260424.1
+ '@cloudflare/workerd-linux-arm64': 1.20260424.1
+ '@cloudflare/workerd-windows-64': 1.20260424.1
wrangler@4.71.0(@cloudflare/workers-types@4.20260305.1):
dependencies:
@@ -17883,33 +18033,16 @@ snapshots:
- bufferutil
- utf-8-validate
- wrangler@4.80.0(@cloudflare/workers-types@4.20260305.1):
- dependencies:
- '@cloudflare/kv-asset-handler': 0.4.2
- '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260401.1)
- blake3-wasm: 2.1.5
- esbuild: 0.27.3
- miniflare: 4.20260401.0
- path-to-regexp: 6.3.0
- unenv: 2.0.0-rc.24
- workerd: 1.20260401.1
- optionalDependencies:
- '@cloudflare/workers-types': 4.20260305.1
- fsevents: 2.3.3
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
-
- wrangler@4.83.0(@cloudflare/workers-types@4.20260305.1):
+ wrangler@4.85.0(@cloudflare/workers-types@4.20260305.1):
dependencies:
'@cloudflare/kv-asset-handler': 0.4.2
- '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260415.1)
+ '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260424.1)
blake3-wasm: 2.1.5
esbuild: 0.27.3
- miniflare: 4.20260415.0
+ miniflare: 4.20260424.0
path-to-regexp: 6.3.0
unenv: 2.0.0-rc.24
- workerd: 1.20260415.1
+ workerd: 1.20260424.1
optionalDependencies:
'@cloudflare/workers-types': 4.20260305.1
fsevents: 2.3.3
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 3d498b729..09570d8ee 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -39,6 +39,10 @@ catalog:
"@tiptap/extension-link": ^3.20.0
"@tiptap/extension-node-range": ^3.20.0
"@tiptap/extension-placeholder": ^3.20.0
+ "@tiptap/extension-table": ^3.20.0
+ "@tiptap/extension-table-cell": ^3.20.0
+ "@tiptap/extension-table-header": ^3.20.0
+ "@tiptap/extension-table-row": ^3.20.0
"@tiptap/extension-text-align": ^3.20.0
"@tiptap/extension-typography": ^3.20.0
"@tiptap/extension-underline": ^3.20.0