Hello Devcon! Come learn about MUD at{" "}
MUD Day
diff --git a/docs/app/api/contributors/getContributors.ts b/docs/app/api/contributors/getContributors.ts
new file mode 100644
index 0000000000..785c1ceb59
--- /dev/null
+++ b/docs/app/api/contributors/getContributors.ts
@@ -0,0 +1,17 @@
+import { headers } from "next/headers";
+
+export async function getContributors() {
+ const headersList = headers();
+ const host = headersList.get("host") || "";
+ const protocol = headersList.get("x-forwarded-proto") || "http";
+ const baseUrl = `${protocol}://${host}`;
+
+ try {
+ const response = await fetch(`${baseUrl}/api/contributors`);
+ const data = await response.json();
+ return data;
+ } catch (error) {
+ console.error(error);
+ return [];
+ }
+}
diff --git a/docs/app/api/contributors/route.ts b/docs/app/api/contributors/route.ts
new file mode 100644
index 0000000000..d9eec44c93
--- /dev/null
+++ b/docs/app/api/contributors/route.ts
@@ -0,0 +1,44 @@
+import { Octokit } from "octokit";
+
+const octokit = new Octokit();
+
+export async function GET() {
+ try {
+ const response = await octokit.request("GET /repos/{owner}/{repo}/contributors", {
+ owner: "latticexyz",
+ repo: "mud",
+ });
+
+ const allContributors = response.data;
+ if (!Array.isArray(allContributors)) {
+ return Response.json({
+ count: 0,
+ contributors: [],
+ });
+ }
+
+ const userContributors = allContributors
+ ?.filter((contributor: { type: string }) => contributor.type === "User")
+ .map((contributor) => {
+ const weightedContributions = Math.log(contributor.contributions + 1) * 10;
+ const index = Math.random() * weightedContributions;
+ const score = weightedContributions - index;
+ return {
+ ...contributor,
+ score,
+ };
+ })
+ .sort((a, b) => b.score - a.score);
+
+ return Response.json({
+ count: userContributors.length,
+ contributors: userContributors?.slice(0, 7),
+ });
+ } catch (error) {
+ console.error(error);
+ return Response.json({
+ count: 0,
+ contributors: [],
+ });
+ }
+}
diff --git a/docs/app/api/stargazers/getStargazers.ts b/docs/app/api/stargazers/getStargazers.ts
new file mode 100644
index 0000000000..c8712d2a34
--- /dev/null
+++ b/docs/app/api/stargazers/getStargazers.ts
@@ -0,0 +1,17 @@
+import { headers } from "next/headers";
+
+export async function getStargazers() {
+ const headersList = headers();
+ const host = headersList.get("host") || "";
+ const protocol = headersList.get("x-forwarded-proto") || "http";
+ const baseUrl = `${protocol}://${host}`;
+
+ try {
+ const response = await fetch(`${baseUrl}/api/stargazers`);
+ const data = await response.json();
+ return data;
+ } catch (error) {
+ console.error(error);
+ return 0;
+ }
+}
diff --git a/docs/app/api/stargazers/route.ts b/docs/app/api/stargazers/route.ts
new file mode 100644
index 0000000000..41285a2399
--- /dev/null
+++ b/docs/app/api/stargazers/route.ts
@@ -0,0 +1,19 @@
+import { Octokit } from "octokit";
+
+const octokit = new Octokit();
+
+export async function GET() {
+ try {
+ const {
+ data: { stargazers_count: totalStars },
+ } = await octokit.request("GET /repos/{owner}/{repo}", {
+ owner: "latticexyz",
+ repo: "mud",
+ });
+
+ return Response.json(totalStars);
+ } catch (error) {
+ console.error(error);
+ return Response.json(0);
+ }
+}
diff --git a/docs/app/globals.css b/docs/app/globals.css
new file mode 100644
index 0000000000..210babb0b4
--- /dev/null
+++ b/docs/app/globals.css
@@ -0,0 +1,88 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+/* Hide scrollbar for Chrome, Safari and Opera */
+body::-webkit-scrollbar,
+div::-webkit-scrollbar,
+pre::-webkit-scrollbar {
+ display: none;
+}
+
+body,
+div,
+pre {
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+}
+
+html {
+ background-color: black;
+}
+
+pre {
+ font-size: 0.5;
+ background-color: #222;
+ border-color: #222;
+ border-width: 1rem;
+ border-radius: 0.4rem;
+ overflow-x: scroll;
+ margin-bottom: 18px;
+}
+
+summary {
+ margin-bottom: 16px;
+}
+
+summary > p {
+ display: inline;
+}
+
+/* Substack subscribe widget */
+#custom-substack-embed {
+ max-width: 530px !important;
+ flex-direction: column !important;
+}
+
+#custom-substack-embed p {
+ position: absolute !important;
+ max-width: 530px !important;
+ font-family: var(--font-supply-mono) !important;
+ text-transform: uppercase !important;
+}
+
+.custom-substack-widget {
+ flex-wrap: nowrap !important;
+ max-width: 600px !important;
+ border: none !important;
+ border-radius: 0 !important;
+}
+
+.custom-substack-widget input {
+ flex-basis: 100% !important;
+ width: 100% !important;
+ padding-left: 20px !important;
+ padding-right: 20px !important;
+ font-size: 20px !important;
+ font-family: var(--font-supply-mono) !important;
+ text-transform: uppercase !important;
+ border: 1px solid rgba(255, 255, 255, 0.2) !important;
+ box-sizing: border-box !important;
+}
+
+.custom-substack-widget input::placeholder {
+ opacity: 0.3 !important;
+}
+
+.custom-substack-widget button {
+ flex-shrink: 0 !important;
+ flex-grow: 0 !important;
+ width: 122px !important;
+ /* flex-basis: 122px !important; */
+ border: none !important;
+ padding: 23px 25px !important;
+ margin-left: 15px !important;
+ font-size: 20px !important;
+ font-family: var(--font-supply-mono) !important;
+ text-transform: uppercase !important;
+}
diff --git a/docs/app/layout.tsx b/docs/app/layout.tsx
index 19b6ce56b1..abbc20228e 100644
--- a/docs/app/layout.tsx
+++ b/docs/app/layout.tsx
@@ -1,10 +1,30 @@
-import "tailwindcss/tailwind.css";
-
import { Metadata } from "next";
import { ReactNode } from "react";
-import { twMerge } from "tailwind-merge";
import localFont from "next/font/local";
+import { cn } from "../lib/cn";
import { DevconBanner } from "./DevconBanner";
+import "./globals.css";
+
+const basierCircle = localFont({
+ src: [
+ {
+ path: "../public/fonts/BasierCircle-Regular.otf",
+ weight: "400",
+ style: "normal",
+ },
+ {
+ path: "../public/fonts/BasierCircle-SemiBold.otf",
+ weight: "600",
+ style: "normal",
+ },
+ {
+ path: "../public/fonts/BasierCircle-Bold.otf",
+ weight: "700",
+ style: "normal",
+ },
+ ],
+ variable: "--font-basier-circle",
+});
const supplyMono = localFont({
src: "../public/fonts/PPSupplyMono-Regular.woff2",
@@ -22,6 +42,13 @@ const supplyMono = localFont({
],
});
+const berkeleyMono = localFont({
+ src: "../public/fonts/BerkeleyMono-Regular.otf",
+ preload: true,
+ variable: "--font-berkeley-mono",
+ fallback: ["ui-monospace"],
+});
+
export const metadata: Metadata = {
title: "MUD | Framework for onchain applications",
description:
@@ -38,7 +65,14 @@ type Props = { children: ReactNode };
export default function Layout({ children }: Props) {
return (
-
+
{children}
diff --git a/docs/app/page.tsx b/docs/app/page.tsx
index d8dfaa034a..aff2a0b69a 100644
--- a/docs/app/page.tsx
+++ b/docs/app/page.tsx
@@ -1,13 +1,14 @@
-import { LatticeIcon } from "../src/icons/LatticeIcon";
import { Metadata } from "next";
-import Link from "next/link";
-import { twMerge } from "tailwind-merge";
-import { SourceIcon } from "../src/icons/SourceIcon";
-import { DocsIcon } from "../src/icons/DocsIcon";
-import { StatusIcon } from "../src/icons/StatusIcon";
-import { CalendarIcon } from "../src/icons/CalendarIcon";
-import { ContributeIcon } from "../src/icons/ContributeIcon";
-import { ChangelogIcon } from "../src/icons/ChangelogIcon";
+import Hero from "./sections/Hero";
+import FindUs from "./sections/FindUs";
+import Resources from "./sections/Resources";
+import TrustedBy from "./sections/TrustedBy/TrustedBy";
+import Installation from "./sections/Installation";
+import Architecture from "./sections/Architecture";
+import Integrations from "./sections/Integrations";
+import Ecosystem from "./sections/Ecosystem/Ecosystem";
+import Changelog from "./sections/Changelog";
+import Newsletter from "./sections/Newsletter";
export const metadata: Metadata = {
title: "MUD | Framework for onchain applications",
@@ -20,266 +21,16 @@ export const metadata: Metadata = {
export default async function HomePage() {
return (
<>
-
-
-
-
-
-
-
-
-
-
- Battle-tested onchain framework for developers.
-
-
- MUD provides you with the tools to build ambitious onchain applications.
-
-
-
-
-
-
-
-
-
-
-
-
Resources
-
- Discover more about the open source framework powering complex games & apps on Ethereum.
-
-
-
-
-
-
-
-
Projects
-
Start using a wide ecosystem of projects powered by MUD.
-
-
-
-
-
-
-
Find us
-
Discover more MUD resources, and join our community online.
-
-
-
-
+
+
+
+
+
+
+
+
+
+
>
);
}
diff --git a/docs/app/sections/Architecture.tsx b/docs/app/sections/Architecture.tsx
new file mode 100644
index 0000000000..65fb2a87b6
--- /dev/null
+++ b/docs/app/sections/Architecture.tsx
@@ -0,0 +1,33 @@
+import Image from "next/image";
+import { Container } from "../../components/ui/Container";
+import { Section } from "../../components/ui/Section";
+
+export default function Architecture() {
+ return (
+
+
+
+
+
Tried and tested
+
+ First released in 2022, MUD has been used by countless onchain developers—from solo devs to 50-strong game
+ studios—to build applications in production.
+
+
+ The MUD automatic indexer, MUD-native account abstraction, support for token standards… all of MUD has
+ been tried and tested by production worlds with millions of onchain entities and thousands of users.
+
+
+ And it is still continuously evolving. New modules and updates are constantly being worked on by MUD core
+ devs and contributors, bringing new features and performance improvements.
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/docs/app/sections/Changelog.tsx b/docs/app/sections/Changelog.tsx
new file mode 100644
index 0000000000..31cddb0d0d
--- /dev/null
+++ b/docs/app/sections/Changelog.tsx
@@ -0,0 +1,88 @@
+import Link from "next/link";
+import Image from "next/image";
+import { Container } from "../../components/ui/Container";
+import { Section } from "../../components/ui/Section";
+import changelog from "../../data/changelog.json";
+
+type ChangelogItem = (typeof changelog)[number];
+
+const ChangelogItem = ({ version, date, changes }: ChangelogItem) => {
+ const allChanges = [...changes.patch, ...changes.minor, ...changes.major];
+ if (allChanges.length === 0) {
+ return null;
+ }
+
+ return (
+
+
+
+
+ {version}
+
+
+ {new Date(date).toLocaleDateString("en-US", {
+ month: "short",
+ day: "numeric",
+ year: "numeric",
+ })}
+
+
+
+
+ {allChanges.slice(0, 3).map((change, index) => (
+
+ {change.title}
+
+ ))}
+
+ {allChanges.length > 3 && (
+
+ and {allChanges.length - 3} more...
+
+ )}
+
+
+
+ );
+};
+
+export default function Changelog() {
+ return (
+
+
+
+
+
+
Changelog
+
Learn what’s changed in recent releases of MUD.
+
+
+
+
+ Github
+
+
+
+
+
+
+
+
+ {changelog.map((item, index) => (
+
+ ))}
+
+
+
+
+ );
+}
diff --git a/docs/app/sections/Ecosystem/Ecosystem.tsx b/docs/app/sections/Ecosystem/Ecosystem.tsx
new file mode 100644
index 0000000000..1b2de3bbe1
--- /dev/null
+++ b/docs/app/sections/Ecosystem/Ecosystem.tsx
@@ -0,0 +1,67 @@
+"use client";
+
+import Image from "next/image";
+import { Section } from "../../../components/ui/Section";
+import { Container } from "../../../components/ui/Container";
+import { cn } from "../../../lib/cn";
+import { projects } from "./projects";
+
+export default function Ecosystem() {
+ return (
+
+
+
+
Ecosystem
+
Start using a wide ecosystem of projects powered by MUD.
+
+
+
+ {projects?.map((project, index) => {
+ return (
+
+
+
+
+
+ );
+ })}
+
+
+
+ );
+}
diff --git a/docs/app/sections/Ecosystem/projects.ts b/docs/app/sections/Ecosystem/projects.ts
new file mode 100644
index 0000000000..cc337bf8e2
--- /dev/null
+++ b/docs/app/sections/Ecosystem/projects.ts
@@ -0,0 +1,98 @@
+export const projects = [
+ {
+ name: "Biomes",
+ icon: "/ecosystem/icons/biomes.png",
+ bgImage: "/ecosystem/bg/everlon.png",
+ url: "https://biomes.aw",
+ },
+ {
+ name: "EVE Frontier",
+ icon: "/ecosystem/icons/eve-frontier.jpg",
+ bgImage: "/ecosystem/bg/eve-frontier.jpg",
+ url: "https://evefrontier.com/en",
+ },
+ {
+ name: "CafeCosmos",
+ icon: "/ecosystem/icons/cafe-cosmos.png",
+ bgImage: "/ecosystem/bg/cafe-cosmos.jpeg",
+ url: "https://x.com/CafeCosmosHQ",
+ },
+ {
+ name: "This Cursed Machine",
+ icon: "/ecosystem/icons/thiscursedmachine.png",
+ bgImage: "/ecosystem/bg/thiscursedmachine.png",
+ url: "https://thiscursedmachine.fun/",
+ },
+ {
+ name: "Battle for Blockchain",
+ icon: "/ecosystem/icons/battle-blockchain.png",
+ bgImage: "/ecosystem/bg/battle-blockchain.jpeg",
+ url: "https://x.com/battleforblock",
+ },
+ {
+ name: "For the Kingdom",
+ icon: "/ecosystem/icons/for-kingdom.png",
+ bgImage: "/ecosystem/bg/for-kingdom.jpeg",
+ url: "https://x.com/4thekingdom_xyz",
+ },
+ {
+ name: "Words3",
+ icon: "/ecosystem/icons/words3.png",
+ bgImage: "/ecosystem/bg/words3.png",
+ url: "https://www.words3.xyz/",
+ },
+ {
+ name: "Primodium",
+ icon: "/ecosystem/icons/primodium.jpg",
+ bgImage: "/ecosystem/bg/primodium.png",
+ url: "https://x.com/primodiumgame",
+ },
+ {
+ name: "Dappmon",
+ icon: "/ecosystem/icons/dappmon.jpg",
+ bgImage: "/ecosystem/bg/dappmon.jpeg",
+ url: "dappmon.xyz",
+ },
+ {
+ name: "Project Mirage",
+ icon: "/ecosystem/icons/project-mirage.jpg",
+ bgImage: "/ecosystem/bg/project-mirage.jpeg",
+ url: "https://x.com/mirage_game_",
+ },
+ {
+ name: "Yonk",
+ icon: "/ecosystem/icons/yonk.png",
+ bgImage: "/ecosystem/bg/yonk.png",
+ url: "https://apps.apple.com/gb/app/yonk/id6478030288",
+ },
+ {
+ name: "Dear",
+ icon: "/ecosystem/icons/dear.png",
+ bgImage: "/ecosystem/bg/dear.png",
+ url: "https://www.dear.game/",
+ },
+ {
+ name: "PopCraft",
+ icon: "/ecosystem/icons/popcraft.jpg",
+ bgImage: "/ecosystem/bg/popcraft.png",
+ url: "https://x.com/PopCraftOnChain",
+ },
+ {
+ name: "Aether Sands",
+ description: "An onchain open-world survival & resource management game.",
+ icon: "/ecosystem/icons/aethersands.png",
+ bgImage: "/ecosystem/bg/aethersands.png",
+ url: "https://x.com/aether_sands",
+ mud: true,
+ redstone: false,
+ },
+ {
+ name: "Geoweb",
+ description: "A public good augmented reality network.",
+ icon: "/ecosystem/icons/geoweb.png",
+ bgImage: "/ecosystem/bg/geoweb.png",
+ url: "https://x.com/thegeoweb",
+ mud: true,
+ redstone: false,
+ },
+];
diff --git a/docs/app/sections/EmptySection.tsx b/docs/app/sections/EmptySection.tsx
new file mode 100644
index 0000000000..e15a7e0c30
--- /dev/null
+++ b/docs/app/sections/EmptySection.tsx
@@ -0,0 +1,10 @@
+import { Container } from "../../components/ui/Container";
+import { Section } from "../../components/ui/Section";
+
+export default function EmptySection() {
+ return (
+
+ );
+}
diff --git a/docs/app/sections/FindUs.tsx b/docs/app/sections/FindUs.tsx
new file mode 100644
index 0000000000..77f62fdbb9
--- /dev/null
+++ b/docs/app/sections/FindUs.tsx
@@ -0,0 +1,79 @@
+import Image from "next/image";
+import { Container } from "../../components/ui/Container";
+import { Section } from "../../components/ui/Section";
+import { cn } from "../../lib/cn";
+
+function FindUsItem({
+ title,
+ href,
+ icon,
+ className,
+}: {
+ title: string;
+ href: string;
+ icon: React.ReactNode;
+ className?: string;
+}) {
+ return (
+
+ {icon}
+ {title}
+
+ );
+}
+
+export default function FindUs() {
+ return (
+
+
+
+
+
Find us
+
+ Discover more MUD resources, and join our community online.
+
+
+
+
+ }
+ className="hover:bg-mud/20 hover:border-mud/30"
+ />
+ }
+ className="hover:bg-[#9656ce]/20 hover:border-[#9656ce]/30"
+ />
+ }
+ className="hover:bg-[#1DA1F2]/20 hover:border-[#1DA1F2]/30"
+ />
+ }
+ className="hover:bg-[#FF0000]/20 hover:border-[#FF0000]/30"
+ />
+
+
+
+
+ );
+}
diff --git a/docs/app/sections/Hero.tsx b/docs/app/sections/Hero.tsx
new file mode 100644
index 0000000000..2e0b0f8530
--- /dev/null
+++ b/docs/app/sections/Hero.tsx
@@ -0,0 +1,76 @@
+import { LatticeIcon } from "../../src/icons/LatticeIcon";
+import Link from "next/link";
+import { cn } from "../../lib/cn";
+import { Section } from "../../components/ui/Section";
+import { Container } from "../../components/ui/Container";
+import Image from "next/image";
+
+export default function Hero() {
+ return (
+
+
+
+
+
MUD
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built by Lattice
+
+
+
+ Open-source engine for autonomous worlds
+
+
+ MUD reduces the complexity of building Ethereum apps with a tightly integrated software stack.
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/docs/app/sections/Installation.tsx b/docs/app/sections/Installation.tsx
new file mode 100644
index 0000000000..627666deaf
--- /dev/null
+++ b/docs/app/sections/Installation.tsx
@@ -0,0 +1,70 @@
+"use client";
+
+import Link from "next/link";
+import { Container } from "../../components/ui/Container";
+import { Section } from "../../components/ui/Section";
+import CopyButton from "../../components/ui/CopyButton";
+import VideoPlayer from "../../components/ui/VideoModal";
+import Image from "next/image";
+
+const videoId = "07b2e147a732cb52ffff39165f35a498";
+
+export default function Installation() {
+ return (
+
+
+
+
+
+
Get started
+
+
+ > pnpm create mud
+
+
+
+
+
+
+
+ MUD powers some of the most complex and fascinating applications onchain. But getting started is as easy
+ as running pnpm create mud, to create your very own MUD project.
+
+
+
+ From there, choose one of the frontend templates—from React to Three.js—to visualize your world. Then,
+ start building your world and see it come to life with a built-in development server and automatic
+ contract hot reloading.
+
+
+
+ Curious to learn more?
Read the docs →
+
+
+
+
+
+
+
+ );
+}
diff --git a/docs/app/sections/Integrations.tsx b/docs/app/sections/Integrations.tsx
new file mode 100644
index 0000000000..017cee3401
--- /dev/null
+++ b/docs/app/sections/Integrations.tsx
@@ -0,0 +1,90 @@
+import Image from "next/image";
+import { Container } from "../../components/ui/Container";
+import { Section } from "../../components/ui/Section";
+
+export default function Integrations() {
+ return (
+
+
+
+
+
Integrations
+ Standard World Interface
+
+
+
+
+
+
+ Not only is the MUD codebase fully open-source under the MIT license, all of its interfaces with peripheral
+ services and execution environments—indexers, blockchains, ERC-4337 bundlers—are openly accessible and under
+ standardization.
+
+
+
+ Launch with Lattice’s Quarry environment to get 7ms ultra-low latency and seamless onboarding, or design your
+ own stack with any EVM blockchain, an open-source ERC-4337 bundler, and the open-source MUD indexer.
+
+
+
+
+
+
+
+
+
+
+
+ The Standard World Interface enables custom-built, low-latency environments like Lattice's Quarry.
+
+
+
+
← Scroll to explore →
+
+
+ );
+}
diff --git a/docs/app/sections/Newsletter.tsx b/docs/app/sections/Newsletter.tsx
new file mode 100644
index 0000000000..1f545a9f27
--- /dev/null
+++ b/docs/app/sections/Newsletter.tsx
@@ -0,0 +1,51 @@
+"use client";
+
+import { Container } from "../../components/ui/Container";
+import { Section } from "../../components/ui/Section";
+import { useEffect } from "react";
+
+export default function Newsletter() {
+ useEffect(() => {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ (window as any).CustomSubstackWidget = {
+ substackUrl: "newsletter.lattice.xyz",
+ placeholder: "Enter email here...",
+ buttonText: "Submit",
+ theme: "custom",
+ colors: {
+ primary: "#FF7613",
+ input: "#313131",
+ email: "#FFFFFF",
+ text: "#FFFFFF",
+ },
+ };
+
+ const script = document.createElement("script");
+ script.src = "https://substackapi.com/widget.js";
+ script.async = true;
+ document.body.appendChild(script);
+
+ return () => {
+ if (script) {
+ document.body.removeChild(script);
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ delete (window as any).CustomSubstackWidget;
+ }
+ };
+ }, []);
+
+ return (
+
+
+
+
+
Newsletter
+
Sign up to receive regular updates about MUD.
+
+
+
+
+
+
+ );
+}
diff --git a/docs/app/sections/Resources.tsx b/docs/app/sections/Resources.tsx
new file mode 100644
index 0000000000..0dbd584e4c
--- /dev/null
+++ b/docs/app/sections/Resources.tsx
@@ -0,0 +1,85 @@
+import Link from "next/link";
+import { SourceIcon } from "../../src/icons/SourceIcon";
+import { DocsIcon } from "../../src/icons/DocsIcon";
+import { StatusIcon } from "../../src/icons/StatusIcon";
+import { CalendarIcon } from "../../src/icons/CalendarIcon";
+import { ContributeIcon } from "../../src/icons/ContributeIcon";
+import { ChangelogIcon } from "../../src/icons/ChangelogIcon";
+import { Section } from "../../components/ui/Section";
+import { Container } from "../../components/ui/Container";
+
+export default function Resources() {
+ return (
+
+
+
+
+
Resources
+
+ Discover more about the open source framework powering complex games & apps on Ethereum.
+
+
+
+
+
+
+
+ );
+}
diff --git a/docs/app/sections/TrustedBy/Contributors.tsx b/docs/app/sections/TrustedBy/Contributors.tsx
new file mode 100644
index 0000000000..c55d412817
--- /dev/null
+++ b/docs/app/sections/TrustedBy/Contributors.tsx
@@ -0,0 +1,27 @@
+import Image from "next/image";
+import { getContributors } from "../../api/contributors/getContributors";
+
+export default async function Contributors() {
+ const { contributors, count: contributorsCount } = await getContributors();
+ return (
+
+
+ {contributors.map((contributor) => (
+
+ ))}
+
+
+
+ {contributorsCount}
+ contributors
+
+
+ );
+}
diff --git a/docs/app/sections/TrustedBy/GitHubStars.tsx b/docs/app/sections/TrustedBy/GitHubStars.tsx
new file mode 100644
index 0000000000..d5a7ef1c15
--- /dev/null
+++ b/docs/app/sections/TrustedBy/GitHubStars.tsx
@@ -0,0 +1,26 @@
+import React from "react";
+import { getStargazers } from "../../api/stargazers/getStargazers";
+
+export async function GitHubStars() {
+ const stargazersCount = await getStargazers();
+ return (
+
+ );
+}
diff --git a/docs/app/sections/TrustedBy/Projects.tsx b/docs/app/sections/TrustedBy/Projects.tsx
new file mode 100644
index 0000000000..572f1f0894
--- /dev/null
+++ b/docs/app/sections/TrustedBy/Projects.tsx
@@ -0,0 +1,32 @@
+import TextFader from "../../../components/ui/TextFader";
+
+const projects = [
+ "EVE Frontier",
+ "Biomes",
+ "This Cursed Machine",
+ "Cafe Cosmos",
+ "Battle for Blockchain",
+ "Words3",
+ "Primodium",
+ "Ultimate Dominion",
+ "YONK",
+ "Dark Forest MUD",
+ "Dappmon",
+ "Project Mirage",
+ "Cloudlines",
+ "For the Kingdom",
+];
+
+export default function Projects() {
+ return (
+
+
+
+
+
+ 30+
+ projects
+
+
+ );
+}
diff --git a/docs/app/sections/TrustedBy/TrustedBy.tsx b/docs/app/sections/TrustedBy/TrustedBy.tsx
new file mode 100644
index 0000000000..a975eb813d
--- /dev/null
+++ b/docs/app/sections/TrustedBy/TrustedBy.tsx
@@ -0,0 +1,29 @@
+import { Container } from "../../../components/ui/Container";
+import { Section } from "../../../components/ui/Section";
+import { GitHubStars } from "./GitHubStars";
+import Contributors from "./Contributors";
+import Projects from "./Projects";
+
+export default function TrustedBy() {
+ return (
+
+
+
+
+
Trusted by many
+
+
Used and built by developers and teams across the world
+
+
+
+ {/* @ts-expect-error Server Component */}
+
+ {/* @ts-expect-error Server Component */}
+
+
+
+
+
+
+ );
+}
diff --git a/docs/components/ui/AnimatedNumber.tsx b/docs/components/ui/AnimatedNumber.tsx
new file mode 100644
index 0000000000..657a2bc9d5
--- /dev/null
+++ b/docs/components/ui/AnimatedNumber.tsx
@@ -0,0 +1,26 @@
+"use client";
+
+import React, { useState, useEffect } from "react";
+import { motion, useSpring, useTransform } from "framer-motion";
+
+interface AnimatedNumberProps {
+ targetNumber: number;
+ duration?: number;
+}
+
+export default function AnimatedNumber({ targetNumber = 100, duration = 2 }: AnimatedNumberProps) {
+ const [isClient, setIsClient] = useState(false);
+ const springValue = useSpring(0, { duration: duration * 1000 });
+ const displayValue = useTransform(springValue, (latest) => Math.round(latest));
+
+ useEffect(() => {
+ setIsClient(true);
+ springValue.set(targetNumber);
+ }, [targetNumber, springValue]);
+
+ if (!isClient) {
+ return null;
+ }
+
+ return
{displayValue} ;
+}
diff --git a/docs/components/ui/Container.tsx b/docs/components/ui/Container.tsx
new file mode 100644
index 0000000000..3a7011f462
--- /dev/null
+++ b/docs/components/ui/Container.tsx
@@ -0,0 +1,7 @@
+import { cn } from "../../lib/cn";
+
+export const Container = ({ children, className }: { children: React.ReactNode; className?: string }) => {
+ return (
+
{children}
+ );
+};
diff --git a/docs/components/ui/CopyButton.tsx b/docs/components/ui/CopyButton.tsx
new file mode 100644
index 0000000000..630213ccac
--- /dev/null
+++ b/docs/components/ui/CopyButton.tsx
@@ -0,0 +1,59 @@
+"use client";
+
+import * as React from "react";
+import * as TooltipPrimitive from "@radix-ui/react-tooltip";
+import Image from "next/image";
+
+interface CopyButtonProps {
+ value: string;
+ label?: string;
+}
+
+function useCopyToClipboard(resetInterval = 3000) {
+ const [isCopied, setIsCopied] = React.useState(false);
+
+ const copyToClipboard = React.useCallback((value: string) => {
+ navigator.clipboard.writeText(value).then(() => setIsCopied(true));
+ }, []);
+
+ React.useEffect(() => {
+ if (isCopied) {
+ const resetTimeout = setTimeout(() => setIsCopied(false), resetInterval);
+ return () => clearTimeout(resetTimeout);
+ }
+ }, [isCopied, resetInterval]);
+
+ return { isCopied, copyToClipboard };
+}
+
+export default function CopyButton({ value, label = "Copy" }: CopyButtonProps) {
+ const { isCopied, copyToClipboard } = useCopyToClipboard();
+
+ return (
+
+
+
+ copyToClipboard(value)}
+ className="cursor-pointer"
+ />
+
+
+
+ Copied!
+
+
+
+
+
+ );
+}
diff --git a/docs/components/ui/Paragraph.tsx b/docs/components/ui/Paragraph.tsx
new file mode 100644
index 0000000000..99cc08c8b9
--- /dev/null
+++ b/docs/components/ui/Paragraph.tsx
@@ -0,0 +1,27 @@
+import { cn } from "../../lib/cn";
+
+export const Paragraph = ({
+ style,
+ className,
+ children,
+}: {
+ style?: React.CSSProperties;
+ className?: string;
+ children: React.ReactNode;
+}) => {
+ return (
+
+ {children}
+
+ );
+};
diff --git a/docs/components/ui/Section.tsx b/docs/components/ui/Section.tsx
new file mode 100644
index 0000000000..17c4840707
--- /dev/null
+++ b/docs/components/ui/Section.tsx
@@ -0,0 +1,21 @@
+import { ForwardedRef, forwardRef } from "react";
+import { cn } from "../../lib/cn";
+
+export const Section = forwardRef(function RefSection(
+ {
+ children,
+ className,
+ style,
+ }: {
+ children: React.ReactNode;
+ className?: string;
+ style?: React.CSSProperties;
+ },
+ ref?: ForwardedRef
,
+) {
+ return (
+
+ {children}
+
+ );
+});
diff --git a/docs/components/ui/Subtitle.tsx b/docs/components/ui/Subtitle.tsx
new file mode 100644
index 0000000000..8e86118587
--- /dev/null
+++ b/docs/components/ui/Subtitle.tsx
@@ -0,0 +1,27 @@
+import { cn } from "../../lib/cn";
+
+export const Subtitle = ({
+ style,
+ className,
+ children,
+}: {
+ style?: React.CSSProperties;
+ className?: string;
+ children: React.ReactNode;
+}) => {
+ return (
+
+ {children}
+
+ );
+};
diff --git a/docs/components/ui/TextFader.tsx b/docs/components/ui/TextFader.tsx
new file mode 100644
index 0000000000..d4c321b648
--- /dev/null
+++ b/docs/components/ui/TextFader.tsx
@@ -0,0 +1,46 @@
+"use client";
+
+import React, { useState, useEffect } from "react";
+import { motion, AnimatePresence } from "framer-motion";
+
+interface TextFaderProps {
+ texts: string[];
+ interval?: number;
+}
+
+export default function TextFader({ texts, interval = 3000 }: TextFaderProps) {
+ const [currentIndex, setCurrentIndex] = useState(0);
+
+ useEffect(() => {
+ if (texts.length === 0) return;
+
+ const timer = setInterval(() => {
+ setCurrentIndex((prevIndex) => (prevIndex + 1) % texts.length);
+ }, interval);
+
+ return () => clearInterval(timer);
+ }, [texts, interval]);
+
+ if (texts.length === 0) {
+ return null;
+ }
+
+ return (
+
+
+
+
+ {texts[currentIndex]}
+
+
+
+
+ );
+}
diff --git a/docs/components/ui/Title.tsx b/docs/components/ui/Title.tsx
new file mode 100644
index 0000000000..f93fb0acf2
--- /dev/null
+++ b/docs/components/ui/Title.tsx
@@ -0,0 +1,25 @@
+import { cn } from "../../lib/cn";
+
+export const Title = ({
+ style,
+ className,
+ children,
+}: {
+ style?: React.CSSProperties;
+ className?: string;
+ children: React.ReactNode;
+}) => {
+ const title = (
+
+ {children}
+
+ );
+
+ return title;
+};
diff --git a/docs/components/ui/VideoModal.tsx b/docs/components/ui/VideoModal.tsx
new file mode 100644
index 0000000000..9c34885325
--- /dev/null
+++ b/docs/components/ui/VideoModal.tsx
@@ -0,0 +1,43 @@
+"use client";
+
+import * as React from "react";
+import * as DialogPrimitive from "@radix-ui/react-dialog";
+import { Stream } from "@cloudflare/stream-react";
+
+type VideoModalProps = {
+ isOpen: boolean;
+ onClose: () => void;
+ videoId: string;
+};
+
+const VideoModal = ({ isOpen, onClose, videoId }: VideoModalProps) => (
+
+
+
+ {/* eslint-disable-next-line max-len */}
+
+
+
+
+
+
+
+);
+
+type VideoPlayerProps = {
+ videoId: string;
+ children: React.ReactNode;
+};
+
+export default function VideoPlayer({ videoId, children }: VideoPlayerProps) {
+ const [isModalOpen, setIsModalOpen] = React.useState(false);
+ const openModal = () => setIsModalOpen(true);
+ const closeModal = () => setIsModalOpen(false);
+
+ return (
+
+
+ {children}
+
+ );
+}
diff --git a/docs/data/changelog.json b/docs/data/changelog.json
new file mode 100644
index 0000000000..a91b210ee7
--- /dev/null
+++ b/docs/data/changelog.json
@@ -0,0 +1,6199 @@
+[
+ {
+ "version": "2.2.14",
+ "date": "2024-10-24T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Added support for deploying public libraries used within modules.",
+ "type": 0,
+ "commitHash": "8eaad304db2fe9ae79f087ec7860928f734039d4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): support public library methods in modules (#3308)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-module-erc20",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Changed ERC20 and ERC721 related modules to use public library methods instead of manual `delegatecall`s.",
+ "type": 0,
+ "commitHash": "8eaad304db2fe9ae79f087ec7860928f734039d4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): support public library methods in modules (#3308)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/stash",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `useStash` React hook. It's heavily inspired by Zustand's `useStore` and accepts a stash, a state selector, an an optional equality function to avoid unnecessary re-render cycles when returning unstable values.",
+ "type": 0,
+ "commitHash": "93d0e763cca0facaaa20d7bde861c98c298f08ad",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(stash): add useStash and improve other helpers (#3320)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.13",
+ "date": "2024-10-23T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/gas-report",
+ "type": "patch"
+ }
+ ],
+ "description": "Gas report output now include contract name as part of the `file` to help with stable ordering when sorting output.",
+ "type": 0,
+ "commitHash": "d5c270023abc325f25af868d3db1a0bdc3e62d6d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(gas-report): include contract name in file of output (#3317)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-module-erc20",
+ "type": "patch"
+ }
+ ],
+ "description": "The new ERC20 World Module provides a simpler alternative to the ERC20 Puppet Module, while also being structured in a more extendable way so users can create tokens with custom functionality.",
+ "type": 0,
+ "commitHash": "90803770ee72bfd2b9ba9a7990285d1c5866f362",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore(world-module-erc20): export erc20 module from internal (#3319)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "The SQL query editor now supports multi-line input.",
+ "type": 0,
+ "commitHash": "79d273a20b3dd50ab733b3261b830b0ef47bcebf",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): multi-line sql editor (#3311)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/abi-ts",
+ "type": "patch"
+ }
+ ],
+ "description": "Added an `--extension` option to customize the resulting TS or DTS output. It defaults to the previous behavior of `.json.d.ts`, but can now be set to `.d.json.ts` for compatibility with newer TS versions and `.json.ts` or just `.ts` for a pure TS file.",
+ "type": 0,
+ "commitHash": "75e93bac492f9000c482d6a26a5c8e29079dd32d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(abi-ts): extension option (#3315)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed an issue where the sync progress was not moving to \"live\" when synced from the MUD indexer's live logs API.",
+ "type": 0,
+ "commitHash": "dfc2d6439ee7076cdccbf1a24b7423fb19a7771d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-sync): update latest block for live logs API (#3323)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.12",
+ "date": "2024-10-18T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Function filters in `Interact` tab are now included as part of the URL.",
+ "type": 0,
+ "commitHash": "3d8db6f76f3634d532d39cf4091f22fee0a32b68",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): add functions filter to query state (#3268)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Transactions in Observe tab are now populated with timing metrics when using the `observer` Viem decorator in local projects.",
+ "type": 0,
+ "commitHash": "1b0ffcf7a1a7daa2a87efe26059d6a142d257588",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): transaction timings (#3274)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added bin wrappers to resolve issues when installing the package locally as a dependency of another package.",
+ "type": 0,
+ "commitHash": "20f44fbf733ff876d64a544c68a3cb1a4dc307a9",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(faucet,store-indexer): add bin wrappers (#3296)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Interact tab now displays decoded ABI errors for failed transactions.",
+ "type": 0,
+ "commitHash": "d4c10c18ad853bed21c55fe92e2ba09c2382316d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): show ABI errors in interact page (#3303)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/block-logs-stream",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/protocol-parser",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/schema-type",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/stash",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Bumped viem to v2.21.19.",
+ "type": 0,
+ "commitHash": "ea18f270c9a43dbe489b25f11b8379ccd969c02a",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: bump viem (#3273)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed inputs display in the transactions table row.",
+ "type": 0,
+ "commitHash": "2c9240111ae11e6727d3581453fba2b866f4b4a0",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(explorer): display nested inputs (#3266)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Added Rhodolite devnet chain config and removed the old and now-defunct Lattice testnet chain config.",
+ "type": 0,
+ "commitHash": "41a6e2f83ac4d48a9dccf52d933c15074b9a724e",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common): add rhodolite chain (#3295)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Display error messages for failed queries within the Explore tab's table viewer.",
+ "type": 0,
+ "commitHash": "af725304e133f95b0b0eb827fdf7283e54ac8342",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): show explore table error message (#3286)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Explore page now has a full-featured SQL editor with syntax highlighting, autocomplete, and query validation.",
+ "type": 0,
+ "commitHash": "3a80bed31b97d439025f68b8e4ded27354e102f1",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): sql editor (#3276)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Each chain's home page now lets you find and pick a world to explore.",
+ "type": 0,
+ "commitHash": "6476dec94cf32275631d49c7e8fe8fe5a0708040",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): front page (#3255)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Added experimental support for syncing state from pending logs.",
+ "type": 0,
+ "commitHash": "84ae33b8af3ebeb90749c6e82250869b15d17ed1",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): add support for watching pending logs (#3287)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "- Not found page if invalid chain name.\n- Only show selector for worlds if options exist.\n- Remove \"future time\" from transactions table.\n- Improved layout for Interact tab.\n- Wrap long args in transactions table.\n- New tables polling.\n- Add logs (regression).",
+ "type": 0,
+ "commitHash": "9a43e87db302ec599fd1e97d8b77e2e68831017f",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(explorer): various fixes (#3299)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "The `transactionQueue` decorator internally keeps an updated reference for the recommended `baseFeePerGas` and `maxPriorityFeePerGas` from the connected chain to avoid having to fetch it right before sending a transaction.\nHowever, due to the way the fee values were overridden, it wasn't possible for users to explicitly pass in custom fee values.\nNow explicitly provided fee values have precedence over the internally estimated fee values.",
+ "type": 0,
+ "commitHash": "fe98442d7ee82f0d41ba10f05a4ee1bafea69d48",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): allow overriding fees in writeContract and sendTransaction (#3288)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Transactions are now monitored across all tabs while the World Explorer is open.",
+ "type": 0,
+ "commitHash": "4b4640913d014fb3a0a5a417b84c91b247e08ffc",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): global transactions listener (#3285)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.11",
+ "date": "2024-10-07T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Observe tab is now populated by transactions flowing through the world, in addition to local transactions when using the `observer` transport wrapper.",
+ "type": 0,
+ "commitHash": "bbd5e315d18e2a3cdbd9a20023b680eac77d74b6",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): show transactions (#3062)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/block-logs-stream",
+ "type": "patch"
+ }
+ ],
+ "description": "`fetchLogs` and `blockRangeToLogs` now accept a `getLogs` option to override the default behavior.",
+ "type": 0,
+ "commitHash": "7ddcf64a222f184b1902a1dc93089064465b6acf",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli,store): fetch table-specific logs (#3245)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `getStoreLogs` and `flattenStoreLogs` to aid in fetching data from store contracts. For now, these are internal exports and considered unstable/experimental.",
+ "type": 0,
+ "commitHash": "7ddcf64a222f184b1902a1dc93089064465b6acf",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli,store): fetch table-specific logs (#3245)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Added support for streaming logs from the indexer.",
+ "type": 0,
+ "commitHash": "61930eeade86d8ce46392449a797ef6291f0ce62",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): add client support for streaming logs from indexer (#3226)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed row expansion in the transactions table where an incorrect row would expand when new transactions appeared.",
+ "type": 0,
+ "commitHash": "645b7e09f191b41ad296c23f212da1739f17add5",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(explorer): expand selected transaction table row by hash/writeId (#3263)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed a dev runner bug where the state block of a previous deploy was not updated during a redeploy, causing failed deploys due to fetching outdated world state.",
+ "type": 0,
+ "commitHash": "111bb1b6c767a6f9654dde1a711d1db784f0770a",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): update state block in dev runner redeploy (#3243)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "It is now possible to pass in environment variables like `RPC_HTTP_URL` to the internal local indexer when running the explorer locally.",
+ "type": 0,
+ "commitHash": "85bbeb8be12597f28cd1506dae0d44b34c1427e4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(explorer): allow overriding internal indexer env variables (#3237)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Observe tab is now populated by rejected transactions coming from the `observer` transport wrapper.",
+ "type": 0,
+ "commitHash": "71eb34804ee9a6c74a10f896f41bf6f74cfc889c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): integrate rejected transactions (#3251)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Deployer now has a better method for fetching store logs from the world that should be more efficient and resilient to block range errors and rate limiting.",
+ "type": 0,
+ "commitHash": "7ddcf64a222f184b1902a1dc93089064465b6acf",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli,store): fetch table-specific logs (#3245)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Added an `unwrap` function to the `ResourceIdInstance` library to make it easier to unwrap a `ResourceId` with `resourceId.unwrap()`.",
+ "type": 0,
+ "commitHash": "13e56891c7d6b66d53047e0d2de38ffea6fd2524",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store): add unwrap() function to ResourceIdInstance (#3249)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `logSort` method to help when sorting logs fetched from RPC, where they come back ordered relative to the topics used.",
+ "type": 0,
+ "commitHash": "7ddcf64a222f184b1902a1dc93089064465b6acf",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli,store): fetch table-specific logs (#3245)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a `mud pull` command that downloads state from an existing world and uses it to generate a MUD config with tables and system interfaces. This makes it much easier to extend worlds.",
+ "type": 0,
+ "commitHash": "9e53a51f3b6bf04f5a0074e2c61dc88a9a63ceec",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): mud pull (#3171)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.10",
+ "date": "2024-09-26T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "The `namespace` field in a multi-namespace config is now correctly resolved for systems.\nThis fixes a bug with root systems in a multi-namespace project.",
+ "type": 0,
+ "commitHash": "9d7fc8588ef045280b544d2aace0d53a4324c71a",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(world): resolve system namespace label (#3232)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed table name construction in the explorer query for root tables for SQLite.",
+ "type": 0,
+ "commitHash": "e39afda94e23cf11ade7bdc46c7ae6510ddc5e26",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(explorer): construct sqlite table names (#3234)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "- Tables can be searched by specific values.\n- Improved handling of dynamic SQL queries.\n- The \"Connect\" modal is triggered during a write action if the wallet is not connected.\n- Toast messages are now dismissible.",
+ "type": 0,
+ "commitHash": "8858e52210693679e7626e25ee4dd9bcf30d7ae8",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(explorer): various fixes (#3235)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Upgraded mprocs to fix issues with it not running when started via npm script.",
+ "type": 0,
+ "commitHash": "af26487ed896a2734f50b16a54d585631b13110d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(create-mud): upgrade mprocs (#3236)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.9",
+ "date": "2024-09-25T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Exploring worlds on Redstone and Garnet chains will now retrieve data from the hosted SQL indexer.",
+ "type": 0,
+ "commitHash": "2f2e63adbc90288d11e4a15d755167f9c97cbf74",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): dozer integration (#3185)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Explorer now automatically starts a local indexer when using Anvil as the target chain.",
+ "type": 0,
+ "commitHash": "95aa3bb07df284a374e982ccea53d24df4d61219",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): local indexer inside explorer (#3229)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Table filters are now included as part of the URL. This enables deep links and improves navigating between pages without losing search state.",
+ "type": 0,
+ "commitHash": "6c056de6090a6f4a9633b96513ca1738dc0993c1",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): move filter state to url (#3225)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Adjusted deploy order so that the world deploy happens before everything else to avoid spending gas on system contract deploys, etc. if a world cannot be created first.",
+ "type": 0,
+ "commitHash": "9d990b5edc39c471929b2e6309bfa2ac448aa4c3",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(cli): adjust deploy order (#3222)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.8",
+ "date": "2024-09-23T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed unused generics and ensure that we're only passing around the generics we need, when we need them. Hopefully this improves TS performance in MUD projects.",
+ "type": 0,
+ "commitHash": "7c7bdb26d0f87e2a5fc20c4eb34abb5167000ab9",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): remove unused generics (#3218)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed types in threejs template after dependency bump.",
+ "type": 0,
+ "commitHash": "4fffb79d433d1052e4b3c9cce0215cf81eba9b11",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(create-mud): add missing three deps, fix types (#3221)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "When deploying to an existing world, the deployer now paginates with [`fetchLogs`](https://github.com/latticexyz/mud/blob/main/packages/block-logs-stream/src/fetchLogs.ts) to find the world deployment.",
+ "type": 0,
+ "commitHash": "0f5b2916edfa24b9d0ad1b82df56aed57f7e657d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): paginate world deploy logs (#3217)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/block-logs-stream",
+ "type": "patch"
+ }
+ ],
+ "description": "- For block range size errors, `fetchLogs` now reduces the max block range for subsequent requests in its loop. For block out of range or response size errors, only the current request's block range is reduced until the request succeeds, then it resets to the max block range.\n- Added `fetchBlockLogs` to find all matching logs of the given block range, grouped by block number, in a single async call.\n- Loosened the `publicClient` type and switched to tree shakable actions.",
+ "type": 0,
+ "commitHash": "0f5b2916edfa24b9d0ad1b82df56aed57f7e657d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): paginate world deploy logs (#3217)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "If the project is using a custom world, the deployer now waits for the init transaction to be confirmed before transferring ownership of the world.",
+ "type": 0,
+ "commitHash": "b0711983a5f72f9b3236e6cbcef3dae7a424a09c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): wait for world init before transferring ownership (#3220)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.7",
+ "date": "2024-09-20T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Reduced the log noise from enabling/disabling automine on non-Anvil chains.",
+ "type": 0,
+ "commitHash": "58f101e45ad50e064779cbc441246a22b70efa07",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): quieter automine (#3212)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed `observer` decorator types so it can be used in more places.",
+ "type": 0,
+ "commitHash": "5a6c03c6bc02c980ca051dadd8e20560ac25c771",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(explorer): better observer decorator types (#3206)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Table selector of the Explore tab now has an input for searching/filtering tables by name.",
+ "type": 0,
+ "commitHash": "7ac2a0d5ffd3f65d89318fc5778121ddf45bb5e1",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): filterable tables selector (#3203)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Improved config output type of `enumValues`.",
+ "type": 0,
+ "commitHash": "a08ba5e31e90bf3208919bc1d5e08c1ba9524130",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store): better enumValues type (#3211)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Renamed optional `waitForStateChange` param in `observer()` decorator to `waitForTransaction` to better align with `@latticexyz/store-sync` packages.",
+ "type": 0,
+ "commitHash": "d21c1d1817ec2394007b28c90fec5a81f1fdd3d0",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor: waitForStateChange -> waitForTransaction (#3210)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.6",
+ "date": "2024-09-19T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/stash",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `@latticexyz/stash` package, a TypeScript client state library optimized for the MUD Store data model.\nIt uses the MUD store config to define local tables, which support writing, reading and subscribing to table updates.\nIt comes with a query engine optimized for \"ECS-style\" queries (similar to `@latticexyz/recs`) but with native support for composite keys.",
+ "type": 0,
+ "commitHash": "20fac30f2fb1e026f195ffe42c014cfaf9877376",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(stash): release package to npm (#3184)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Significantly improved the deployment performance for large projects with public libraries by implementing a more efficient algorithm to resolve public libraries during deployment.\nThe local deployment time on a large reference project was reduced from over 10 minutes to 4 seconds.",
+ "type": 0,
+ "commitHash": "22c37c3dbec5726f52055ed61c4e5f0e52ed30c1",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): improve performance of linked library resolution during deployment (#3197)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a `syncToStash` util to hydrate a `stash` client store from MUD contract state. This is currently exported from `@latticexyz/store-sync/internal` while Stash package is unstable/experimental.",
+ "type": 0,
+ "commitHash": "8dc588918c488f98603cbb7e183c88129942debe",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): add syncToStash util (#3192)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.5",
+ "date": "2024-09-19T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored `observer` initialization to reuse bridge iframes with the same `url`.",
+ "type": 0,
+ "commitHash": "55ae82299985fd927cb45cf0d262c7fded156763",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(explorer): various fixes (#3195)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed favicon paths and fixed a few issues where we were incorrectly redirecting based on the chain name or ID.",
+ "type": 0,
+ "commitHash": "55ae82299985fd927cb45cf0d262c7fded156763",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(explorer): various fixes (#3195)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed an issue where the `observer` Viem client decorator required an empty object arg when no options are used.",
+ "type": 0,
+ "commitHash": "55ae82299985fd927cb45cf0d262c7fded156763",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(explorer): various fixes (#3195)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.4",
+ "date": "2024-09-18T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "World Explorer now supports connecting external wallets.",
+ "type": 0,
+ "commitHash": "e6147b2a9c92369d2ca26c60275c766da1a7d0d5",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): anvil connector, connect external wallets (#3164)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "To reset an account's nonce, the nonce manager uses the [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount) RPC method,\nwhich returns the number of transactions sent from the account.\nWhen using the `pending` block tag, this includes transactions in the mempool that have not been included in a block yet.\nIf an account submits a transaction with a nonce higher than the next valid nonce, this transaction will stay in the mempool until the nonce gap is closed and the transactions nonce is the next valid nonce.\nThis means if an account has gapped transactions \"stuck in the mempool\", the `eth_getTransactionCount` method with `pending` block tag can't be used to get the next valid nonce\n(since it includes the number of transactions stuck in the mempool).\nSince the nonce manager only resets the nonce on reload or in case of a nonce error, using the `latest` block tag by default is the safer choice to be able to recover from nonce gaps.",
+ "type": 0,
+ "commitHash": "2f935cfd3fbc62f3c304e470751a26189523fcd2",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): use latest block tag in nonce manager (#3180)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/block-logs-stream",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/protocol-parser",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/schema-type",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/stash",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Bumped viem, wagmi, and abitype packages to their latest release.",
+ "type": 0,
+ "commitHash": "50010fb9fb6d21f69ba23c1eae14f4203919183d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat: bump wevm packages (#3178)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Along with table and system labels, the MUD deployer now registers namespace labels. Additionally, labels will only be registered if they differ from the underlying resource name.",
+ "type": 0,
+ "commitHash": "d3acd9242da44d201ea99e04c1631ed687d30a80",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): register namespace labels (#3172)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added ability to connect World Explorer to Redstone and Garnet chains. The active chain is now passed as a dynamic route parameter.",
+ "type": 0,
+ "commitHash": "20604952d33419f18ab93fcc048db564b56a54b4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): active chain as dynamic param (#3181)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "World Explorer package now exports an `observer` Viem decorator that can be used to get visibility into contract writes initiated from your app. You can watch these writes stream in on the new \"Observe\" tab of the World Explorer.",
+ "type": 0,
+ "commitHash": "784e5a98e679388ad6bc941cd1bc9b6486cf276d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): write observer (#3169)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a config resolver to add default values for `modules` in the world config.",
+ "type": 0,
+ "commitHash": "1f24978894725dca13c2adfee384e12f53f05c26",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(world): resolve module config (#3193)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/protocol-parser",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `store-sync` helper libraries to interact with the indexer's experimental SQL API endpoint. Documentation is available at [https://mud.dev/indexer/sql](https://mud.dev/indexer/sql).",
+ "type": 0,
+ "commitHash": "8b4110e5d9ca2b7a6553a2c4078b7a8b82c6f211",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): add util to fetch snapshot from indexer with SQL API (#2996)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.3",
+ "date": "2024-09-10T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "MUD config now supports a `deploy.customWorld` option that, when used with the CLI, will deploy the specified custom World implementation.\nCustom implementations must still follow [the World protocol](https://github.com/latticexyz/mud/tree/main/packages/world/ts/protocol-snapshots).",
+ "type": 0,
+ "commitHash": "854645260c41eaa89cdadad30bf8e70d5d2fd109",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): deploy custom world (#3131)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed an issue with `--worldAddress` CLI flag being incorrectly interpreted as a number rather a hex string. Additionally, added `--hostname` option for specifying the hostname on which to start the application.",
+ "type": 0,
+ "commitHash": "b9c61a96082e62c4f1bec3a8ebb358ea30c315f0",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(explorer): world address cli option as hex (#3155)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Speed up deployment in development by temporarily enabling automine mode for the duration of the deployment.",
+ "type": 0,
+ "commitHash": "d3ab5c3783265b3e82b76157bccedeae6b0445e1",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): speed up dev deploy with temporary automine during deploy (#3130)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.2",
+ "date": "2024-09-03T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Format account balances with comma-separated thousands and trimmed decimal places for better readability.",
+ "type": 0,
+ "commitHash": "fb9def83ddb128387b70edb6fe88064e234366ce",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "style(explorer): format account balances (#3117)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added error messages to error page to facilitate easier troubleshooting.",
+ "type": 0,
+ "commitHash": "4b86c04dc703faf3bf12f6143781b5940b62cb17",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(explorer): show error message in error page (#3121)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed regression in 2.2.1 where deployment of modules already installed would throw an error instead of skipping.",
+ "type": 0,
+ "commitHash": "ef6f7c0c6afcc46e7463d18c00fa99c7cafcae65",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): add missing await (#3119)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.1",
+ "date": "2024-09-01T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Improved error handling of `TransactionReceiptNotFoundError` in `waitForTransaction` when Viem versions aren't aligned.",
+ "type": 0,
+ "commitHash": "603b2ab6631c4f38fca0d9092d255578061987aa",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-sync): handle TransactionReceiptNotFoundError (#3115)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Deployer now waits for prerequisite transactions before continuing.",
+ "type": 0,
+ "commitHash": "0738d295f802be28524d517d75efe3b5837f10c1",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): deployer should wait for prereq txs (#3113)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "`writeContract` and `sendTransaction` actions now use `pending` block tag when estimating gas. This aligns with previous behavior before changes in the last version.",
+ "type": 0,
+ "commitHash": "c0764a5e7d3a6a5291198dfe802fe060a0b54da9",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): use pending block tag in tx queue (#3073)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.2.0",
+ "date": "2024-08-30T00:00:00.000Z",
+ "changes": {
+ "patch": [],
+ "minor": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/explorer",
+ "type": "patch"
+ }
+ ],
+ "description": "Initial release of the `@latticexyz/explorer` package. World Explorer is a standalone tool designed to explore and manage worlds. This initial release supports local worlds, with plans to extend support to any world in the future.",
+ "type": 0,
+ "commitHash": "0eb25560cfc78354a5e6845c3244375759b71f4c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore(explorer): update world explorer naming (#3069)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated all custom Viem actions to properly call other actions via `getAction` so they can be composed.",
+ "type": 0,
+ "commitHash": "69cd0a1ba0450f3407ec5865334079653503fa86",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): route all actions through viem client (#3071)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Templates now use `shx` to run shell commands in scripts for better Windows compatibility.",
+ "type": 0,
+ "commitHash": "c0bb0da58966b49c51570de9e3e031bee78b8473",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "build: use shx from dev deps (#3085)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed a few type issues with `namespaceLabel` in tables and added/clarified TSDoc for config input/output objects.",
+ "type": 0,
+ "commitHash": "04c675c946a0707956f38daad3fe516fde4a33a2",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world): add namespaceLabel to system config (#3057)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "New projects created with `pnpm create mud` now include the World Explorer and SQLite indexer running as additional services.",
+ "type": 0,
+ "commitHash": "bd4dffcabd6c6715df213e6c0c8b0631c9afc0b7",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(create-mud): update changeset package name + description (#3066)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Add a strongly typed `namespaceLabel` to the system config output.\nIt corresponds to the `label` of the namespace the system belongs to and can't be set manually.",
+ "type": 0,
+ "commitHash": "04c675c946a0707956f38daad3fe516fde4a33a2",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world): add namespaceLabel to system config (#3057)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "In addition to table labels, system labels and ABIs are now registered onchain during deploy.",
+ "type": 0,
+ "commitHash": "31caecc95be72fe94efd1df8cba2b5435fa39bb4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli,world): register system ABI onchain (#3050)"
+ }
+ ],
+ "major": []
+ }
+ },
+ {
+ "version": "2.1.1",
+ "date": "2024-08-20T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Upgrade `zod` to `3.23.8` to avoid issues with [excessively deep type instantiations](https://github.com/colinhacks/zod/issues/577).",
+ "type": 0,
+ "commitHash": "64354814ed325cefd1066282944408de7c40b4a7",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: upgrade zod to latest (#3020)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/block-logs-stream",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/protocol-parser",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/query",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/schema-type",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Bumped viem to `2.19.8` and abitype to `1.0.5`.",
+ "type": 0,
+ "commitHash": "9e21e42c7e510cc595acddfbd3c9006f42fcf81e",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: bump viem, abitype (#3038)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-module-metadata",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored `AccessControl` library exported from `@latticexyz/world` to be usable outside of the world package and updated module packages to use it.",
+ "type": 0,
+ "commitHash": "6a66f572039ea9193b2c4882943ab3a94ed3f844",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(world): make AccessControl lib usable outside of world package (#3034)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `deploy` config options to systems in the MUD config:",
+ "type": 0,
+ "commitHash": "86a810488f7ffb481534062c9c3ff170a1120982",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world,cli): add system deploy config (#3011)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-module-metadata",
+ "type": "patch"
+ }
+ ],
+ "description": "Added metadata module to be automatically installed during world deploy. This module allows for tagging any resource with arbitrary metadata. Internally, we'll use this to tag resources with labels onchain so that we can use labels to create a MUD project from an existing world.",
+ "type": 0,
+ "commitHash": "fad4e85853d9ee80753ae1b0b161b60bf9874846",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world-module-metadata): add metadata module (#3026)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored `writeContract` and `sendTransaction` actions for simplicity and better error messages.",
+ "type": 0,
+ "commitHash": "2daaab13a9387e661475aef9bafb938fa12f5eb9",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(common): simplify writeContract/sendTransaction actions (#3043)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed an issue with worldgen when using a different `rootDir` from the current working directory, where worldgen would read system source files from the wrong place.",
+ "type": 0,
+ "commitHash": "542ea540329fce74d85c74368e26386682e39cce",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(world): worldgen should read system source from root dir (#3027)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Add a strongly typed `namespaceLabel` to the table config output.\nIt corresponds to the `label` of the namespace the table belongs to and can't be set manually.",
+ "type": 0,
+ "commitHash": "57bf8c361999c7210622466dadcba037d4fe1238",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(config,store,world): add namespaceLabel to table config (#3039)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.1.0",
+ "date": "2024-08-05T00:00:00.000Z",
+ "changes": {
+ "patch": [],
+ "minor": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Tables and systems in config output now include a `label` property. Labels are now used throughout the codebase as a user-friendly way to reference the given resource: config keys, contract names, generated libraries, etc.",
+ "type": 0,
+ "commitHash": "9145d0abc513b3f5976666f25f94c0c85d1be262",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs: update resource labels changeset (#2985)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "MUD projects can now use multiple namespaces via a new top-level `namespaces` config option.",
+ "type": 0,
+ "commitHash": "1fe57dea0553ab89ea1ecca0d4fe0cc8281ca09d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs: update namespaces changeset (#2989)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Disabled deploy of `Hooks` table, as this was meant to be a generic, codegen-only table.",
+ "type": 0,
+ "commitHash": "24e285d5ae2d4f5791688d96ee7f8635551d3fb8",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli,store): don't deploy disabled tables (#2982)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored package to use the new Store/World configs under the hood, removing compatibility layers and improving performance.",
+ "type": 0,
+ "commitHash": "b62cf9fb061206a02a798403db0637e49fdabcfa",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store-sync): remove remaining refs to old config (#2938)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated return values to match updated types in `@latticexyz/store-sync`.",
+ "type": 0,
+ "commitHash": "b62cf9fb061206a02a798403db0637e49fdabcfa",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store-sync): remove remaining refs to old config (#2938)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored worldgen in preparation for multiple namespaces.",
+ "type": 0,
+ "commitHash": "570086e7b4980639c0150a150eed1e09591e739a",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(world): update worldgen with namespaces output (#2974)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Adjusted `SyncToRecsOptions` type intersection to improve TypeScript performance.",
+ "type": 0,
+ "commitHash": "f43f945eea9e948fa58550990b35c5dd2bc04678",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore(store-sync): simplify types (#2946)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored package to use the new Store/World configs under the hood, removing compatibility layers.",
+ "type": 0,
+ "commitHash": "3cbbc62c9ace1a5eb1a5cb832ff88f3d05c5722e",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(cli): move off of old config (#2941)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/query",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Bumped `@arktype/util` and moved `evaluate`/`satisfy` usages to its `show`/`satisfy` helpers.",
+ "type": 0,
+ "commitHash": "7129a16057a7fcc7195015a916bdf74e0809f3a2",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix: preserve JsDoc on defineWorld output, bump @arktype/util (#2815)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored `syncToRecs` and `syncToZustand` to use tables from config namespaces output. This is a precursor for supporting multiple namespaces.",
+ "type": 0,
+ "commitHash": "3440a86b56823d0d54cd2e11ea4b90acc0e40682",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store-sync): use config namespaces for tables (#2963)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored how worldgen resolves systems from the config and filesystem.",
+ "type": 0,
+ "commitHash": "3cbbc62c9ace1a5eb1a5cb832ff88f3d05c5722e",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(cli): move off of old config (#2941)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "`mud deploy` will now correctly skip tables configured with `deploy: { disabled: true }`.",
+ "type": 0,
+ "commitHash": "24e285d5ae2d4f5791688d96ee7f8635551d3fb8",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli,store): don't deploy disabled tables (#2982)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored CLI commands to use tables from config namespaces output. This is a precursor for supporting multiple namespaces.",
+ "type": 0,
+ "commitHash": "2da9e48cd4bb8e3dafecf6c37799929b7bbbc39d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(cli): use config namespaces for tables (#2965)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed `evaluate` and `satisfy` type utils in favor of `show` and `satisfy` from `@arktype/util`.",
+ "type": 0,
+ "commitHash": "7129a16057a7fcc7195015a916bdf74e0809f3a2",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix: preserve JsDoc on defineWorld output, bump @arktype/util (#2815)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Moved build scripts to `mud build` now that CLI doesn't depend on this package.",
+ "type": 0,
+ "commitHash": "3cbbc62c9ace1a5eb1a5cb832ff88f3d05c5722e",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(cli): move off of old config (#2941)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated Zustand components after changes to `syncToZustand`.",
+ "type": 0,
+ "commitHash": "9e05278de6730517647ae33fd9d46f2687ea5f93",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store-sync): move syncToZustand to new config (#2936)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored `mud trace` command to use Viem instead of Ethers and removed Ethers dependencies from the package.",
+ "type": 0,
+ "commitHash": "609de113f35e0e2a0fe4c6dafd25a900c6cd2cfa",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(cli): remove last ethers usage (#2952)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored tablegen in preparation for multiple namespaces and addressed a few edge cases:",
+ "type": 0,
+ "commitHash": "69eb63b5939c30515a62da9afbdd71f89a67f8a2",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store): update tablegen with namespaces output (#2972)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/abi-ts",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Bumped `glob` dependency.",
+ "type": 0,
+ "commitHash": "e49059f057575614071ad992cd4df387ba10ca33",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: bump glob (#2922)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "`resourceToHex` will now throw if provided namespace is >14 characters. Since namespaces are used to determine access control, it's not safe to automatically truncate to fit into `bytes14` as that may change the indended namespace for resource access.",
+ "type": 0,
+ "commitHash": "8d0453e7b52e23da4ebe4eef30db734dd33c06b9",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common): throw instead of truncating namespace (#2917)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored how the config handles shorthand table definitions, greatly simplifying the codebase. This will make it easier to add support for multiple namespaces.",
+ "type": 0,
+ "commitHash": "fb1cfef0c19e7b9b5bb3ea5ef8b581e8db892fb7",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store,world): simplify table shorthands (#2969)"
+ }
+ ],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.12",
+ "date": "2024-05-31T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Internal `tablegen` function (exported from `@latticexyz/store/codegen`) now expects an object of options with a `configPath` to use as a base path to resolve other relative paths from.",
+ "type": 0,
+ "commitHash": "c10c9fb2dacc93bc58d013e74509180f90ac5b5a",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store,world): add option to codegen tables into namespace dirs (#2840)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `sourceDirectory` as a top-level config option for specifying contracts source (i.e. Solidity) directory relative to the MUD config. This is used to resolve other paths in the config, like codegen and user types. Like `foundry.toml`, this defaults to `src` and should be kept in sync with `foundry.toml`.",
+ "type": 0,
+ "commitHash": "c10c9fb2dacc93bc58d013e74509180f90ac5b5a",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store,world): add option to codegen tables into namespace dirs (#2840)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed `resolveTableId` usage within config's module `args` to allow referencing both namespaced tables (e.g. `resolveTableId(\"app_Tasks\")`) as well as tables by just their name (e.g. `resolveTableId(\"Tasks\")`). Note that using just the table name requires it to be unique among all tables within the config.",
+ "type": 0,
+ "commitHash": "9be2bb863194e2beee03b3d783f925c79b3c8562",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli,world): resolve table by just name (#2850)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed `ERC20Module` to register the `TotalSupply` table when creating a new token.",
+ "type": 0,
+ "commitHash": "36c8b5b2476281ef9f66347c798aa93454648572",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(world-modules): register total supply table in erc20 module (#2877)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/abi-ts",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/block-logs-stream",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/gas-report",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/protocol-parser",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/query",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/react",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/recs",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/schema-type",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/utils",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ },
+ {
+ "package": "solhint-config-mud",
+ "type": "patch"
+ },
+ {
+ "package": "solhint-plugin-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "TS source has been removed from published packages in favor of DTS in an effort to improve TS performance. All packages now inherit from a base TS config in `@latticexyz/common` to allow us to continue iterating on TS performance without requiring changes in your project code.",
+ "type": 0,
+ "commitHash": "f3180fe8437224d7a568f79ff60c9e70e9b48792",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common): export base tsconfig (#2873)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed unnecessary build step in scripts and added deploy scripts for Redstone and Garnet chains.",
+ "type": 0,
+ "commitHash": "d75266073e9fa1c5ede61636a60557deead6ff8e",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(create-mud): clean up template scripts, add garnet/redstone (#2839)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.11",
+ "date": "2024-05-15T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Added pnpm 9 to project's `engines`.",
+ "type": 0,
+ "commitHash": "63e5d2d51192adc0a1f977a269097a03d7bf119d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "build: bump to node 18.20.2, pnpm 9.1.1 (#2831)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed imports of module artifacts via `artifactPath` and removed unused `@latticexyz/world-modules` dependency.",
+ "type": 0,
+ "commitHash": "fe9d726371ddfd99f0b4ffa4b1e64b817417cfd3",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): fixed module artifactPath imports (#2832)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.10",
+ "date": "2024-05-14T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "The deploy CLI now uses logs to find registered function selectors and their corresponding function signatures.\nPreviously only function signatures were fetched via logs and then mapped to function selectors via `getRecord` calls,\nbut this approach failed for namespaced function selectors of non-root system,\nbecause the function signature table includes both the namespaced and non-namespaced signature but the function selector table only includes the namespaced selector that is registered on the world.",
+ "type": 0,
+ "commitHash": "0ae9189ca60e86f7b12994bcc89bc196871d0e7c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): function selector lookup during deploy (#2800)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Worlds can now be deployed with external modules, defined by a module's `artifactPath` in your MUD config, resolved with Node's module resolution. This allows for modules to be published to and imported from npm.",
+ "type": 0,
+ "commitHash": "a1b1ebf67367f91cea4000c073bc6b8da4601e3e",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): deploy with external modules (#2803)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed the unused `ejs` dependency.",
+ "type": 0,
+ "commitHash": "4e4e9104e84a7cb7d041d2401f0a937e06251985",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: upgrade to ejs 3.1.10 (#2786)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Templates now use an `app` namespace by default, instead of the root namespace. This helps keep the root namespace clear for intentionally root-level things and avoids pitfalls with root systems calling other root systems.",
+ "type": 0,
+ "commitHash": "de03e2a78e209c7eb509f986aa0ed0d1c2ae068d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs: fix create-mud package name in changeset (#2825)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Upgraded the `ejs` dependency to 3.1.10.",
+ "type": 0,
+ "commitHash": "4e4e9104e84a7cb7d041d2401f0a937e06251985",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: upgrade to ejs 3.1.10 (#2786)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed the `distance_from_follow_block` gauge to be a positive number if the latest processed block is lagging behind the latest remote block.",
+ "type": 0,
+ "commitHash": "0d4e302f44c2ee52e9e14d24552499b7fb04306e",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-indexer): fix distance from follow block metric (#2791)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Added OP predeploy contracts for Redstone and Garnet chain configs and added chain-specific contracts for Redstone chain config.",
+ "type": 0,
+ "commitHash": "51b137d3498a5d6235938cb93dc06ed0131fd7be",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): extend OP contracts, add redstone ones (#2792)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed broken `mud faucet` command.",
+ "type": 0,
+ "commitHash": "4a61a128ca752aac5d86578573211304fbaf3c27",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: remove cli faucet command and services package (#2811)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated World config types to use readonly arrays.",
+ "type": 0,
+ "commitHash": "3dbf3bf3a3295ad63264044e315dec075de528fd",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(world): config uses readonly arrays (#2805)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Both `encodeEntity` and `decodeEntity` now use an LRU cache to avoid repeating work during iterations of thousands of entities.",
+ "type": 0,
+ "commitHash": "36e1f7664f9234bf454e6d1f9c3806dfc695f219",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs(store-sync): add changeset for #2808 (#2809)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "`defineStore` and `defineWorld` will now throw a type error if an unexpected config option is used.",
+ "type": 0,
+ "commitHash": "32c1cda666bc8ccd6e083d8d94d96a42e65c3983",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store,world): throw on unexpected config keys (#2797)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed usages of old testnet faucet in templates. The previous testnet faucet is broken, deprecated, and going offline soon. We'll be replacing the burner account pattern with something better very soon!",
+ "type": 0,
+ "commitHash": "4a61a128ca752aac5d86578573211304fbaf3c27",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: remove cli faucet command and services package (#2811)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Bumped zod dependency to comply with abitype peer dependencies.",
+ "type": 0,
+ "commitHash": "4caca05e34fd3647122bf2864f2c736e646614b6",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: bump zod (#2804)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "`defineStore` and `defineWorld` now maps your `enums` to usable, strongly-typed enums on `enumValues`.",
+ "type": 0,
+ "commitHash": "27f888c70a712cea7f9a157cc82892a884ecc1df",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store,world): usable enum values from config (#2807)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.9",
+ "date": "2024-05-01T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed `mud deploy` to not require the `PRIVATE_KEY` environment variable when using a KMS signer.",
+ "type": 0,
+ "commitHash": "30318687f35a57217e932f9f2b4c80a9d6617ee5",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): do not require `PRIVATE_KEY` if using KMS (#2765)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated templates with Redstone and Garnet chains and removed the deprecated Lattice testnet chain.",
+ "type": 0,
+ "commitHash": "6b247fb9d1902a5138ad4a05b634b4d0921af433",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(create-mud): redstone and garnet chains (#2776)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a `distance_from_follow_block` metric to compare the latest stored block number with the block number corresponding to the block tag the indexer follows.",
+ "type": 0,
+ "commitHash": "93690fdb1d51f8ef470fd4f1d84490c14bf1f442",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer): add metric for distance from block tag to follow (#2763)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "`mud verify` now defaults to blockscout if no `--verifier` is provided.",
+ "type": 0,
+ "commitHash": "0b6b70ffd2f8e7eaa9732d2aa5b158fd0927d10b",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): blockscout is default verifier (#2775)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed `mud deploy` to use the `forge script --aws` flag when executing `PostDeploy` with a KMS signer.",
+ "type": 0,
+ "commitHash": "428ff972198425cb19d363c92eb49002accdc6a0",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): run postdeploy with aws flag when kms is enabled (#2766)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated `createStoreSync` to default to the chain's indexer URL when no `indexerUrl` is passed in. To intentionally unset the value and not use the indexer at all, `indexerUrl` can now also be `false`.",
+ "type": 0,
+ "commitHash": "764ca0a0c390ddce5d8a618fd4e801e9fc542a0b",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common): add indexer URL to chain configs (#2771)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed manual gas setting in PostDeploy step of `mud deploy` in favor of `forge script` fetching it from the RPC.",
+ "type": 0,
+ "commitHash": "074ed66eb64df377e37684c47d7ff15ced16885b",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): remove postdeploy gas setting in favor of script options (#2756)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "The key ID for deploying via KMS signer is now set via an `AWS_KMS_KEY_ID` environment variable to better align with Foundry tooling. To enable KMS signing with this environment variable, use the `--kms` flag.",
+ "type": 0,
+ "commitHash": "e03830ebe3ee3ea6fb1384be53fc26b668fbe607",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(common,cli): kms deployer gets keyId from environment (#2760)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Added an optional `indexerUrl` property to `MUDChain`, and populated it in the Redstone and Garnet chain configs.",
+ "type": 0,
+ "commitHash": "764ca0a0c390ddce5d8a618fd4e801e9fc542a0b",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common): add indexer URL to chain configs (#2771)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Added chain icons to Redstone and Garnet chain configs via `chain.iconUrls`.",
+ "type": 0,
+ "commitHash": "bad3ad1bd9bb86bc7eb83cfb299df92d14c64c46",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common): add chain icons (#2778)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.8",
+ "date": "2024-04-27T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added support for an empty `STORE_ADDRESS=` environment variable.\nThis previously would fail the input validation, now it behaves the same way as not setting the `STORE_ADDRESS` variable at all.",
+ "type": 0,
+ "commitHash": "9c599b87bb02db5ae9a9389085b61bde48af9e4a",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-indexer): allow empty env variable (#2746)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Patched `mud verify` to properly verify store, world, and world-modules contracts. Currently only `sourcify` is fully supported and is the default verifier.",
+ "type": 0,
+ "commitHash": "b4eb795ee5a6f8d250d3b3513fe72c5530f69c43",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): fix verify with sourcify for dependencies (#2750)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Added Garnet testnet and Redstone mainnet chain configs and deprecated Lattice Testnet.",
+ "type": 0,
+ "commitHash": "f23318ede18d0b10cf1f4c51dd24a373a5e5f740",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common): add redstone chain config (#2749)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.7",
+ "date": "2024-04-25T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Add Prometheus metrics at `/metrics` to the Postgres indexer backend and frontend, as well as the SQLite indexer.",
+ "type": 0,
+ "commitHash": "27c4fdee6e04d6d61bef320673bed22b2872b51c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer): add prometheus metrics (#2739)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Added asynchronous polling for current fees to `sendTransaction`.",
+ "type": 0,
+ "commitHash": "375d902ed02541fa5add7012465e05da079d4d95",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): use feeRef for sendTransaction calls (#2725)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/block-logs-stream",
+ "type": "patch"
+ }
+ ],
+ "description": "Added detection and handling for proxyd rate limit and block range errors.",
+ "type": 0,
+ "commitHash": "bf16e729fea1830659b81a6a0ea5fccb6429ea42",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(block-logs-stream): handle proxyd errors (#2726)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a `--awsKmsKeyId` flag to `mud deploy` that deploys the world using an AWS KMS key as a transaction signer.",
+ "type": 0,
+ "commitHash": "c74a66474169d16a2ed4b7fd9046984d4ceabc3f",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): deploy with kms (#2704)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Partially revert [#2665](https://github.com/latticexyz/mud/pull/2665) to guarantee logs are stored in order.",
+ "type": 0,
+ "commitHash": "16695fea8a0a8d80179c3fbe68120b34de076659",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-sync): await fetchAndStoreLogs (#2702)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Deploying now retries on \"block is out of range\" errors, for cases where the RPC is load balanced and out of sync.",
+ "type": 0,
+ "commitHash": "dbc7e066d0bd344a5d9b2586c7f2875d21cfd0ca",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): add retry to getLogs when getting resource ID's (#2709)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Deploy will now fetch and set the gas price during execution of PostDeploy script. This should greatly reduce the fees paid for L2s.",
+ "type": 0,
+ "commitHash": "189050bd2c61ba645325d45a6a4040153d361412",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): manually fetch gas price from rpc before PostDeploy runs (#2638)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed ERC721 module to properly encode token ID as part of token URI.",
+ "type": 0,
+ "commitHash": "78a94d715af427b77f52a7e2ff4be2cb3752e2a9",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(world-modules): properly concat baseURI and tokenURI in ERC721 module (#2686)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a new `mud verify` command which verifies all contracts in a project. This includes systems, modules, the WorldFactory and World.",
+ "type": 0,
+ "commitHash": "fce741b07dd68f4a0a553bee5d63f1d6b0546283",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): verify command (#2662)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `kmsKeyToAccount`, a [viem custom account](https://viem.sh/docs/accounts/custom#custom-account) that signs transactions using AWS KMS.",
+ "type": 0,
+ "commitHash": "182d70608fce514ae1aec5366a7bbae1dc936844",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): kms correctly serializes transactions (#2721)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed an issue where deploys were warning about mismatched bytecode when the bytecode was correct and what we expect.",
+ "type": 0,
+ "commitHash": "632a7525ab2f125ed01a612987ece58cb1fd9740",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): fix deployer warning (#2683)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Made `worlds.json`'s `address` type more like viem's `Hex` type so it's easy to pass through as an argument.",
+ "type": 0,
+ "commitHash": "534e7729a7e727575bb7db99c4acda55e8ceb295",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(create-mud): make worlds.json address type more specific (#2685)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a `deploy.upgradeableWorldImplementation` option to the MUD config that deploys the World as an upgradeable proxy contract. The proxy behaves like a regular World contract, but the underlying implementation can be upgraded by calling `setImplementation`.",
+ "type": 0,
+ "commitHash": "1ccd627676cb94a07e29e511db037a5f855c3096",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(world,cli): rename `useProxy` to `upgradeableWorldImplementation` (#2732)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a check to `registerTable` that prevents registering both an offchain and onchain table with the same name, making it easier to use human-readable names in indexers.",
+ "type": 0,
+ "commitHash": "ed404b7d840db755f7513d4a7d32b85eaa3dd058",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store): enforce unique table names across types (#2736)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Replaced the `systemId` field in the `Unstable_CallWithSignatureSystem` typehash with individual `systemNamespace` and `systemName` string fields.",
+ "type": 0,
+ "commitHash": "2c9b16c77aca12e4c23e96de83e5820c09cb3b9d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world-modules): string systemId in `callWithSignature` typehash (#2700)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a `--forgeScriptOptions` flag to deploy and dev commands to allow passing in additional CLI flags to `forge script` command.",
+ "type": 0,
+ "commitHash": "8493f88f8db972ef2a7c1caa49f8231c60ed2ba5",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): add user-specified PostDeploy forge options (#2703)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "`Resource` type props are now readonly.",
+ "type": 0,
+ "commitHash": "f736c43dbc39edff51957a298b563576237429df",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): make `Resource` type props readonly (#2516)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.6",
+ "date": "2024-04-17T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `Cache-Control` and `Content-Type` headers to the postgres indexer API.",
+ "type": 0,
+ "commitHash": "36354994f702f22c569e52524ea4a3f523050c5a",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer): add cache headers (#2669)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Reduced the number of RPC requests before sending a transaction in the `transactionQueue` viem decorator.",
+ "type": 0,
+ "commitHash": "6c8ab471adfb522e841b679072c7ff53fe105034",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): latency improvements (#2641)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Patched `StoreRead.getDynamicFieldLength` to properly read `StoreCore.getDynamicFieldLength`.",
+ "type": 0,
+ "commitHash": "103db6ced9815b61e1b40348f814958f240f66fc",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store,world): fix StoreRead.getDynamicFieldLength (#2680)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Moved the chain ID in `CallWithSignature` from the `domain.chainId` to the `domain.salt` field to allow for cross-chain signing without requiring wallets to switch networks. The value of this field should be the chain on which the world lives, rather than the chain the wallet is connected to.",
+ "type": 0,
+ "commitHash": "96e82b7f11ef30a331941c202fe09591d348cb41",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world-modules): callWithSignature chain id is salt (#2648)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Internal type improvements.",
+ "type": 0,
+ "commitHash": "9720b568cd302c597fd0030e59eceab2bb833e39",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store,world): refactor types, remove redundant casts (#2555)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/block-logs-stream",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/protocol-parser",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/query",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/schema-type",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Bumped viem to 2.9.20.",
+ "type": 0,
+ "commitHash": "c18e93c5e1fb6987f31369f2e81f26ea2ac196d8",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: bump viem to 2.9.20 (#2681)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/block-logs-stream",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/protocol-parser",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/schema-type",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/query",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Bumped viem to 2.9.16.",
+ "type": 0,
+ "commitHash": "d95028a6d1233557ee605f4691f0d47ced47a681",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs: add changeset for #2645 (#2647)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a \"top up\" button to account balance when running on anvil.",
+ "type": 0,
+ "commitHash": "77d3b30942e8593b4aeb5d7921494ca0d627786b",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs: add changeset for devtools top up (#2658)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Small optimizations in `waitForTransaction` to parallelize network requests.",
+ "type": 0,
+ "commitHash": "de3bc3d1fe78762e43b692f6f3334dee9b632c8f",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-sync): reduce latency in waitForTransaction (#2665)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "`waitForTransaction` now returns a `Promise<{ blockNumber: bigint, status: \"success\" | \"reverted\" }>` instead of `Promise`, to allow consumers to react to reverted transactions without refetching the transaction receipt.",
+ "type": 0,
+ "commitHash": "8c3dcf77c2481b11622a0603c8a09a5b1fb5f787",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): add status and block number to return type of waitForTransaction (#2668)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.5",
+ "date": "2024-04-12T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Added missing system interfaces for ERC721, UniqueEntity, and CallWithSignature modules.",
+ "type": 0,
+ "commitHash": "e2e8ec8b3e7152337cb81a5d54c9bb36486c462e",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(world-modules): add missing interfaces (#2605)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed `getNonceManager` to correctly pass all options to `createNonceManager`.",
+ "type": 0,
+ "commitHash": "a9e8a407b5d6f356d7d0a1c1f093de926ffb072f",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): pass through rest of nonce manager opts (#2616)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `validateCallWithSignature` function to `Unstable_CallWithSignatureModule` to validate a signature without executing the call.",
+ "type": 0,
+ "commitHash": "081c396790a0b68d85ef7735f0e7e643b99721c3",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world-modules): add `validateCallWithSignature` to `Unstable_CallWithSignatureModule` (#2614)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Exported mud config as internal.",
+ "type": 0,
+ "commitHash": "e3c3a118e60e8c4de6b16c521d2d78b0b9f670c2",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(world-modules): explicitly export mud config (#2598)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated `anvil` args with two second block time to better reflect L2s",
+ "type": 0,
+ "commitHash": "aa6ecf7b1157a61c21e0bb15c060eb2fc5936e12",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(create-mud): change `anvil` to create a block every two seconds (#2635)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed the behaviour of static arrays, so that they return zero for uninitialised values, to mirror the native Solidity behavior. Previously they reverted with `Store_IndexOutOfBounds` if the index had not been set yet.",
+ "type": 0,
+ "commitHash": "b798ccb2b19bdda2995f188912258c7563747e42",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store): return zero for uninitialised static array elements (#2613)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Replaced the `Unstable_DelegationWithSignatureModule` preview module with a more generalized `Unstable_CallWithSignatureModule` that allows making arbitrary calls (similar to `callFrom`).",
+ "type": 0,
+ "commitHash": "d02efd80292db1c671fca5261560fdf525871475",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: changeset for `callWithSignature` (#2601)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.4",
+ "date": "2024-04-02T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "`transactionQueue` now accepts a `queueConcurrency` to allow adjusting the number of concurrent calls to the mempool. This defaults to `1` to ensure transactions are ordered and nonces are handled properly. Any number greater than that is likely to see nonce errors and transactions arriving out of order, but this may be an acceptable trade-off for some applications that can safely retry.",
+ "type": 0,
+ "commitHash": "620e4ec13ca73ceecefc257ef8a8eadb2bdf6aa4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common): allow specifying concurrency in transactionQueue (#2589)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.3",
+ "date": "2024-04-02T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "`transactionQueue` decorator now accepts an optional `publicClient` argument, which will be used in place of the extended viem client for making public action calls (`getChainId`, `getTransactionCount`, `simulateContract`, `call`). This helps in cases where the extended viem client is a smart account client, like in [permissionless.js](https://github.com/pimlicolabs/permissionless.js), where the transport is the bundler, not an RPC.",
+ "type": 0,
+ "commitHash": "d2e4d0fbbc011e64e593b0dd784cb8f2d0da7522",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common,world): improvements for smart accounts (#2578)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "`callFrom` decorator now accepts any `Client`, not just a `WalletClient`. It also no longer attempts to wrap/redirect calls to `call`, `callFrom`, and `registerDelegationWithSignature`.",
+ "type": 0,
+ "commitHash": "d2e4d0fbbc011e64e593b0dd784cb8f2d0da7522",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common,world): improvements for smart accounts (#2578)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.2",
+ "date": "2024-04-01T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a new preview module, `Unstable_DelegationWithSignatureModule`, which allows registering delegations with a signature.",
+ "type": 0,
+ "commitHash": "e86bd14db092331454a604183be5f5739563f449",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world-modules): register delegation with signature (#2480)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Changed the controls in the `threejs` template from arrow keys to WASD and added text to explain what the app does.",
+ "type": 0,
+ "commitHash": "a1101f785719f6b61449db62e265bf0f90665ccb",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: threejs template changeset (#2529)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a viem client decorator for account delegation. By extending viem clients with this function after delegation, the delegation is automatically applied to World contract writes. This means that these writes are made on behalf of the delegator. Internally, it transforms the write arguments to use `callFrom`.",
+ "type": 0,
+ "commitHash": "090a099bf4891dfa3cd95f88b68dcfd5ea14bdea",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs: clarify `callFrom` changelog (#2579)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Remove workaround for generating `IWorld` interface from cached forge files as this was fixed by forge.",
+ "type": 0,
+ "commitHash": "3b845d6b23b950e30310886407de11bb33fd028c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(cli): remove forge cache workaround (#2576)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Templates now run anvil in its own process (via mprocs) for better visibility into anvil logs.",
+ "type": 0,
+ "commitHash": "9e239765e6dd253819a7aa77a87caa528be549db",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(create-mud): run anvil in its own process (#2538)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.1",
+ "date": "2024-03-21T00:00:00.000Z",
+ "changes": {
+ "patch": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Minor fixes to config input validations:",
+ "type": 0,
+ "commitHash": "4a6b45985c5da66145078dc92884f65403ecd697",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store,world): minor config validation fixes (#2517)"
+ }
+ ],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.0",
+ "date": "2024-03-21T00:00:00.000Z",
+ "changes": {
+ "patch": [],
+ "minor": [],
+ "major": []
+ }
+ },
+ {
+ "version": "2.0.0-next.18",
+ "date": "2024-03-21T00:00:00.000Z",
+ "changes": {
+ "patch": [],
+ "minor": [],
+ "major": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Store and World configs have been rebuilt with strong types. The shape of these configs have also changed slightly for clarity, the biggest change of which is merging of `keySchema` and `valueSchema` into a single `schema` with a separate `key` for a table's primary key.",
+ "type": 0,
+ "commitHash": "c9ee5e4a28e9eea6aefd4e5a535a60760d24f7cd",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs: add store/world config changesets (#2497)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Moved table ID and field layout constants in code-generated table libraries from the file level into the library, for clearer access and cleaner imports.",
+ "type": 0,
+ "commitHash": "44236041fb792fc676481d9d30b5846752ed0491",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor: move table ID and field layout constants into table library (#2327)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Set the protocol version to `2.0.0` for each Store and World.",
+ "type": 0,
+ "commitHash": "9aa5e7865bc8f6f090f599ac1367bc927aaee2e4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store,world): set protocol version, add tests (#2412)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/protocol-parser",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/schema-type",
+ "type": "patch"
+ }
+ ],
+ "description": "Moved all existing exports to a `/internal` import path to indicate that these are now internal-only and deprecated. We'll be replacing these types and functions with new ones that are compatible with our new, strongly-typed config.",
+ "type": 0,
+ "commitHash": "b38c096d88340080ec02277bc772c1269b6b65fd",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(schema-type,protocol-parser): explicit internal vs external exports (#2452)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `dynamicFieldIndex` to the `Store_SpliceDynamicData` event. This enables indexers to store dynamic data as a blob per dynamic field without a schema lookup.",
+ "type": 0,
+ "commitHash": "8193136a9511d066aeebce82155d3509aa760282",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store): add field index to Store_SpliceDynamicData event (#2279)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/protocol-parser",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Renamed `PackedCounter` to `EncodedLengths` for consistency.",
+ "type": 0,
+ "commitHash": "3e7d83d01b9e027df9ef76068ab2e4ddf5c71d4b",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor: rename PackedCounter to EncodedLengths (#2490)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "PostgreSQL sync/indexer now uses `{storeAddress}` for its database schema names and `{namespace}__{tableName}` for its database table names (or just `{tableName}` for root namespace), to be more consistent with the rest of the MUD codebase.",
+ "type": 0,
+ "commitHash": "adc68225008b481df6b47050638677fd936c22c9",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): adjust DB schema/table names for consistency (#2379)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Migrated to new config format.",
+ "type": 0,
+ "commitHash": "252a1852dc76c8e3f923c4f066620278ca69c430",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat: use new config (#2483)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Added an `--rpcBatch` option to `mud deploy` command to batch RPC calls for rate limited RPCs.",
+ "type": 0,
+ "commitHash": "645736dfa00508cbaa7ba84b4e1a19f03b09fa7f",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): add a RPC batch option to cli (#2322)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a `followBlockTag` option to configure which block number to follow when running `createStoreSync`. It defaults to `latest` (current behavior), which is recommended for individual clients so that you always have the latest chain state.",
+ "type": 0,
+ "commitHash": "3622e39dd5be2b0e98dfae38040fc35ccf01fe87",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync,store-indexer): add followBlockTag option (#2315)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "`registerRootFunctionSelector` now expects a `systemFunctionSignature` instead of a `systemFunctionSelector`. Internally, we compute the selector from the signature. This allows us to track system function signatures that are registered at the root so we can later generate ABIs for these systems.",
+ "type": 0,
+ "commitHash": "5debcca83e8fbb732bd1ef55391b5251481abdf4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(world): registerRootFunctionSelector takes system signature (#2395)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Added viem custom client actions that work the same as MUD's now-deprecated `getContract`, `writeContract`, and `sendTransaction` wrappers. Templates have been updated to reflect the new patterns.",
+ "type": 0,
+ "commitHash": "5926765556e8631baf192c0fb47fe87642c12368",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common): add viem actions that work the same as the current wrappers (#2347)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Added an `abstract` `StoreKernel` contract, which includes all Store interfaces except for registration, and implements write methods, `protocolVersion` and initializes `StoreCore`. `Store` extends `StoreKernel` with the `IStoreRegistration` interface. `StoreData` is removed as a separate interface/contract. `World` now extends `StoreKernel` (since the registration methods are added via the `InitModule`).",
+ "type": 0,
+ "commitHash": "93390d8994bac0ad7c4a66ba00bc9783899b8cff",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store): add StoreWrite and Store abstract contracts (#2411)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Replaced the static array length getters in table libraries with constants.",
+ "type": 0,
+ "commitHash": "144c0d8db85a28b0c09f2efdf21f078a9e66af97",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store): make static array length a constant (#2410)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/gas-report",
+ "type": "patch"
+ }
+ ],
+ "description": "Now uses `--isolate` flag in `forge test` for more accurate gas measurement.",
+ "type": 0,
+ "commitHash": "90d0d79cfc8e035ad17a2e18917f68d5a0d88f01",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(gas-report): run gas report with --isolate (#2331)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "`mud deploy` now supports public/linked libraries.",
+ "type": 0,
+ "commitHash": "5554b197a26f2a3207688d53fecf85e6a77624e3",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): link and deploy public libraries (#1910)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Moved key schema and value schema methods to constants in code-generated table libraries for less bytecode and less gas in register/install methods.",
+ "type": 0,
+ "commitHash": "3042f86e66ed39618bf520b5dbba06bfd23486a4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor: hardcode key/value schema in table libraries (#2328)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/block-logs-stream",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/protocol-parser",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/schema-type",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Upgraded all packages and templates to viem v2.7.12 and abitype v1.0.0.",
+ "type": 0,
+ "commitHash": "d7b1c588a73ab8d5f49165841fde3bfbe78fd981",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat: upgrade viem to v2 (#2284)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Attempting to deploy multiple systems where there are overlapping system IDs now throws an error.",
+ "type": 0,
+ "commitHash": "8f49c277d255d437b2db27208e923ecbe4e2756d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): throw error when deploying overlapping systems (#2325)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "`waitForIdle` now falls back to `setTimeout` for environments without `requestIdleCallback`.",
+ "type": 0,
+ "commitHash": "82693072f749a7234eb0c2bf9e2cec39ea8ad2a0",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): use `setTimeout` as fallback for `requestIdleCallback` (#2406)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated all human-readable resource IDs to use `{namespace}__{name}` for consistency with world function signatures.",
+ "type": 0,
+ "commitHash": "d5c0682fbd34fd7d5a96cd66a14b126c8f1afdb7",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor: human-readable resource IDs use double underscore (#2310)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/react",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed some unused files, namely `curry` in `@latticexyz/common` and `useDeprecatedComputedValue` from `@latticexyz/react`.",
+ "type": 0,
+ "commitHash": "01e46d99cd9c14e826fa198171d7e17d7896a721",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: remove some unused files (#2398)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "ERC20 and ERC721 implementations now always register the token namespace, instead of checking if it has already been registered. This prevents issues with registering the namespace beforehand, namely that only the owner of a system can create a puppet for it.",
+ "type": 0,
+ "commitHash": "4be22ba41c39cf4e93f85065c2e59269bdc693e0",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(world-modules): token modules always register namespace (#2352)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored `StoreCore` to import `IStoreEvents` instead of defining the events twice.",
+ "type": 0,
+ "commitHash": "2c920de7b04bddde0280b1699a9b047182aa712c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store): store core imports store events (#2356)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Added salt to the `WorldDeployed` event.",
+ "type": 0,
+ "commitHash": "3be4deecf8bc19ebba9723237be2264997ef6292",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world): emit salt in WorldDeployed event (#2301)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Bumped `typescript` to `5.4.2`, `eslint` to `8.57.0`, and both `@typescript-eslint/eslint-plugin` and `@typescript-eslint/parser` to `7.1.1`.",
+ "type": 0,
+ "commitHash": "257a0afc78fa8e5ecbf0ecba44de151b858a2f49",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: upgrade to typescript 5.4.2 (#2397)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "`resourceToLabel` now correctly returns just the resource name if its in the root namespace.",
+ "type": 0,
+ "commitHash": "307abab341cd5b1bb2bef86f9c7335b6e6e798f0",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): remove underscore prefix from root namespace labels (#2400)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/noise",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed the @latticexyz/noise package.",
+ "type": 0,
+ "commitHash": "5a8dfc8570de02acb60a9975cb6c41763b757ef3",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore(noise): remove noise package (#2304)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Added interfaces for all errors that are used by `StoreCore`, which includes `FieldLayout`, `PackedCounter`, `Schema`, and `Slice`. This interfaces are inherited by `IStore`, ensuring that all possible errors are included in the `IStore` ABI for proper decoding in the frontend.",
+ "type": 0,
+ "commitHash": "c991c71ae2eed8ec3c8a328962439710cffc135d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store): event interfaces for Store libraries (#2348)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Moved the transaction simulation step to just before sending the transaction in our transaction queue actions (`sendTransaction` and `writeContract`).",
+ "type": 0,
+ "commitHash": "e34d117082475b801e07f331362f961c910069df",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs: add missing changeset (#2374)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Restored `Bytes.sliceN` helpers that were previously (mistakenly) removed and renamed them to `Bytes.getBytesN`.",
+ "type": 0,
+ "commitHash": "190fdd113862de2a5d35dd24206e2278b8cb9bf7",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store): restore bytesN helpers (#2403)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Upgraded prettier version to 3.2.5 and prettier-plugin-solidity version to 1.3.1.",
+ "type": 0,
+ "commitHash": "db314a7490b7797322fd0568cbeec0066c231666",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: upgrade prettier to 3.2.5 and prettier-plugin-solidity to 1.3.1 (#2303)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Added system signatures to the `FunctionSignatures` table, so they can be used to generate system ABIs and decode system calls made via the world.",
+ "type": 0,
+ "commitHash": "1a82c278dd8037155b6449e383b3a00d6453ea3e",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world): add system signatures to FunctionSignatures (#2392)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/gas-report",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed gas report parsing for foundry versions released after 2024-02-15.",
+ "type": 0,
+ "commitHash": "a02da555b82b494acdef8cc5b8f58fc6760d1c07",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(gas-report): update filename matcher (#2277)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `dbaeumer.vscode-eslint` and `esbenp.prettier-vscode` to recommended VSCode extensions.",
+ "type": 0,
+ "commitHash": "5237e32054b99542c1dd38c56df6f2235c4c79be",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(create-mud): add additional recommended vscode extensions (#2440)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Created an `IWorldEvents` interface with `HelloStore`, so all World events are defined in a single interface.",
+ "type": 0,
+ "commitHash": "86766ce12c749a247216bf753889c35745f4d722",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(world): add IWorldEvents with HelloWorld (#2358)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixes an issue with Zustand store sync where multiple updates to a record for a key in the same block did not get tracked and applied properly.",
+ "type": 0,
+ "commitHash": "3f5d33afb19cf0c99269445120f5e985806241ad",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-sync): track changed records together in zustand (#2387)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Moved the `HelloStore` to `IStoreEvents` so all Store events are defined in the same interface.",
+ "type": 0,
+ "commitHash": "c58da9adc6c67bc410fdc1c72f21cb1af8bdb50f",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store): hellostore in IStoreEvents (#2357)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "`IWorldKernel` now inherits `IModuleErrors` so it can render the correct errors if the World reverts when delegatecalled with Module code.",
+ "type": 0,
+ "commitHash": "be18b75b93716a2d948496009ae34d6cb0cf389a",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world): world kernel inherits `IModuleErrors` (#2380)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a non-deterministic fallback for deploying to chains that have replay protection on and do not support pre-EIP-155 transactions (no chain ID).",
+ "type": 0,
+ "commitHash": "9c83adc01c2bcd8c390318006a0cf8139b747d6d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): deterministic deployer fallback (#2261)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Renamed the `functionSelector` key in the `FunctionSelectors` table to `worldFunctionSelector`. This clarifies that `FunctionSelectors` is for world function selectors and can be used to generate the world ABI.",
+ "type": 0,
+ "commitHash": "95f64c85e5a10106ce7cc9dc5575fcebeeb87151",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(world): rename functionSelector to worldFunctionSelector (#2391)"
+ }
+ ]
+ }
+ },
+ {
+ "version": "2.0.0-next.17",
+ "date": "2024-02-20T00:00:00.000Z",
+ "changes": {
+ "patch": [],
+ "minor": [],
+ "major": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/schema-type",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/gas-report",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/noise",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Bumped Solidity version to 0.8.24.",
+ "type": 0,
+ "commitHash": "aabd30767cdda7ce0c32663e7cc483db1b66d967",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: upgrade to Solidity 0.8.24 (#2202)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Renamed `CoreModule` to `InitModule` and `CoreRegistrationSystem` to `RegistrationSystem`.",
+ "type": 0,
+ "commitHash": "db7798be2181c1b9e55380a195a04100aab627fd",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world): rename CoreModule to InitModule (#2227)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "`WorldFactory` now expects a user-provided `salt` when calling `deployWorld(...)` (instead of the previous globally incrementing counter). This enables deterministic world addresses across different chains.",
+ "type": 0,
+ "commitHash": "618dd0e89232896326c30ce55f183fceb0edabdb",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli,world): add user defined salt in WorldFactory.deployWorld() (#2219)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Renamed `StoreCore`'s `registerCoreTables` method to `registerInternalTables`.",
+ "type": 0,
+ "commitHash": "5c52bee094fe5dad445a2d600cbea83e29302c40",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store): rename StoreCore.registerCoreTables to registerInternalTables (#2225)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed `SystemSwitch` to properly call non-root systems from root systems.",
+ "type": 0,
+ "commitHash": "c4fc850416df72f055be9fb1eb36a0edfaa1febc",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(world-modules): `SystemSwitch` properly calls systems from root (#2205)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "`createStoreSync` now [waits for idle](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback) between each chunk of logs in a block to allow for downstream render cycles to trigger. This means that hydrating logs from an indexer will no longer block until hydration completes, but rather allow for `onProgress` callbacks to trigger.",
+ "type": 0,
+ "commitHash": "997286bacafa43bd997c3c752b445acc23726bde",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): wait for idle after each chunk of logs in a block (#2254)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "`WorldFactory` now derives a salt based on number of worlds deployed by `msg.sender`, which should help with predictable world deployments across chains.",
+ "type": 0,
+ "commitHash": "6470fe1fd1fc73104cfdd01d79793203bffe5d1c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world): deployment salt by msg.sender (#2210)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Table libraries now hardcode the `bytes32` table ID value rather than computing it in Solidity. This saves a bit of gas across all storage operations.",
+ "type": 0,
+ "commitHash": "a35c05ea95395e9c7da3e18030fc200c2cde1353",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): hardcode table ID with codegen (#2229)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed a race condition when registering core tables, where we would set a record in the `ResourceIds` table before the table was registered.",
+ "type": 0,
+ "commitHash": "05b3e8882ef846e26dbf18946f64533f70d3bf41",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store): reorder core table registration (#2164)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Bumped the Postgres column size for `int32`, `uint32`, `int64`, and `uint64` types to avoid overflows",
+ "type": 0,
+ "commitHash": "6c615b608e73d3bdabde3ad03823f1dce87f2ac6",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-sync): fix overflowing column types, bump postgres sync version (#2270)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Moved boolean array types to use array column types (instead of JSON columns) for the Postgres decoded indexer",
+ "type": 0,
+ "commitHash": "4e445a1abb764de970381f5c5570ce135b712c4c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): bool array column types for decoded indexer (#2283)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Moved numerical array types to use array column types (instead of JSON columns) for the Postgres decoded indexer",
+ "type": 0,
+ "commitHash": "669fa43e5adcd2b3e44a298544c62ef9e0df642a",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs: add missing changeset (#2282)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed registration of world signatures/selectors for namespaced systems. We changed these signatures in [#2160](https://github.com/latticexyz/mud/pull/2160), but missed updating part of the deploy step.",
+ "type": 0,
+ "commitHash": "78a837167e527511d1a03fe67f60eb1d2e80aaa2",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs: changeset for #2187 (#2188)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Prevented errors not included in the contract (but present in the file) from being included in the interface by `contractToInterface`",
+ "type": 0,
+ "commitHash": "c162ad5a546a92009aafc6150d9449738234b1ef",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common): include only errors defined in the contract (#2194)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored `StoreCore.registerStoreHook` to use `StoreHooks._push` for gas efficiency.",
+ "type": 0,
+ "commitHash": "55a05fd7af2abe68d2a041f55bafdd03f5d68788",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(store): push to StoreHooks with StoreCore method (#2201)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Renamed the Module `args` parameter to `encodedArgs` to better reflect that it is ABI-encoded arguments.",
+ "type": 0,
+ "commitHash": "e2d089c6d3970094e0310e84b096db0487967cc9",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(world,world-modules): rename module args to encodedArgs (#2199)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated deployer with world's new `InitModule` naming.",
+ "type": 0,
+ "commitHash": "db7798be2181c1b9e55380a195a04100aab627fd",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world): rename CoreModule to InitModule (#2227)"
+ }
+ ]
+ }
+ },
+ {
+ "version": "2.0.0-next.16",
+ "date": "2024-01-23T00:00:00.000Z",
+ "changes": {
+ "patch": [],
+ "minor": [],
+ "major": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored `InstalledModules` to key modules by addresses instead of pre-defined names. Previously, modules could report arbitrary names, meaning misconfigured modules could be installed under a name intended for another module.",
+ "type": 0,
+ "commitHash": "865253dba0aeccf30615e446c8946583ee6b1068",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: add module addresses changeset (#2172)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Separated core systems deployment from `CoreModule`, and added the systems as arguments to `CoreModule`",
+ "type": 0,
+ "commitHash": "57d8965dfaa5275bd803a48c22d42b50b83c23ed",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(cli,world,world-modules): split and separately deploy core systems (#2128)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "- Split `CoreSystem` into `AccessManagementSystem`, `BalanceTransferSystem`, `BatchCallSystem`, `CoreRegistrationSystem`\n- Changed `CoreModule` to receive the addresses of these systems as arguments, instead of deploying them\n- Replaced `CORE_SYSTEM_ID` constant with `ACCESS_MANAGEMENT_SYSTEM_ID`, `BALANCE_TRANSFER_SYSTEM_ID`, `BATCH_CALL_SYSTEM_ID`, `CORE_REGISTRATION_SYSTEM_ID`, for each respective system",
+ "type": 0,
+ "commitHash": "57d8965dfaa5275bd803a48c22d42b50b83c23ed",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(cli,world,world-modules): split and separately deploy core systems (#2128)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Postgres storage adapter now uses snake case for decoded table names and column names. This allows for better SQL ergonomics when querying these tables.",
+ "type": 0,
+ "commitHash": "854de0761fd3744c2076a2b995f0f9274a8ef971",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): mud set-version --link shouldn't fetch versions (#2000)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed `allowEmpty` option from `FieldLayout.validate()` as field layouts should never be empty.",
+ "type": 0,
+ "commitHash": "3ac68ade6e60dae2caad9f12ca146b1d461cb1c4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store): never allow empty FieldLayout (#2122)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed `IUniqueEntitySystem` in favor of calling `getUniqueEntity` via `world.call` instead of the world function selector. This had a small gas improvement.",
+ "type": 0,
+ "commitHash": "eaa766ef7d68b76bb783531a1a2691abdaa27df5",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "refactor(world-modules): simplify getUniqueEntity call (#2161)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Improved `syncToZustand` speed of hydrating from snapshot by only applying block logs once per block instead of once per log.",
+ "type": 0,
+ "commitHash": "a735e14b44f7bd0ed72745610d49b55a181f5401",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-sync): improve syncToZustand hydration speed (#2145)"
+ }
+ ]
+ }
+ },
+ {
+ "version": "2.0.0-next.15",
+ "date": "2024-01-03T00:00:00.000Z",
+ "changes": {
+ "patch": [],
+ "minor": [],
+ "major": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "`lastUpdatedBlockNumber` columns in Postgres storage adapters are no longer nullable",
+ "type": 0,
+ "commitHash": "504e25dc83a210a1ef3b66d8487d9e292470620c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-sync,store-indexer): make last updated block number not null (#1972)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Renamed singleton `chain` table to `config` table for clarity.",
+ "type": 0,
+ "commitHash": "e48fb3b037d2ee888a8c61a6fc51721c903559e3",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer): clean database if outdated (#1984)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "The postgres indexer is now storing the `logIndex` of the last update of a record to be able to return the snapshot logs in the order they were emitted onchain.",
+ "type": 0,
+ "commitHash": "85b94614b83cd0964a305d488c1efb247445b915",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync, store-indexer): order logs by logIndex (#2037)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Previously, all `store-sync` strategies were susceptible to a potential memory leak where the stream that fetches logs from the RPC would get ahead of the stream that stores the logs in the provided storage adapter. We saw this most often when syncing to remote Postgres servers, where inserting records was much slower than we retrieving them from the RPC. In these cases, the stream would build up a backlog of items until the machine ran out of memory.",
+ "type": 0,
+ "commitHash": "a4aff73c538265ecfd2a17ecf98edcaa6a2ef935",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): fetch and store logs (#2003)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "`syncToPostgres` from `@latticexyz/store-sync/postgres` now uses a single table to store all records in their bytes form (`staticData`, `encodedLengths`, and `dynamicData`), more closely mirroring onchain state and enabling more scalability and stability for automatic indexing of many worlds.",
+ "type": 0,
+ "commitHash": "1b5eb0d075579d2437b4329266ca37735e65ce41",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync,store-indexer): schemaless indexer (#1965)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Postgres storage adapter now uses snake case for decoded table names and column names. This allows for better SQL ergonomics when querying these tables.",
+ "type": 0,
+ "commitHash": "7b73f44d98dd25483c037e76d174e30e99488bd3",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): snake case postgres names in decoded tables (#1989)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Refactored how we fetch snapshots from an indexer, preferring the new `getLogs` endpoint and falling back to the previous `findAll` if it isn't available. This refactor also prepares for an easier entry point for adding client caching of snapshots.",
+ "type": 0,
+ "commitHash": "5df1f31bc9d35969de6f03396905778748017f38",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync,store-indexer): sync from getLogs indexer endpoint (#1973)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Replaced usage of `window` global in vanilla JS template with an event listener on the button.",
+ "type": 0,
+ "commitHash": "f6133591a86eb169a7b1b2b8d342733a887af610",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(create-mud): remove window global usage in vanilla template (#1774)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a `mud build` command that generates table libraries, system interfaces, and typed ABIs.",
+ "type": 0,
+ "commitHash": "59d78c93ba80d20e5d7c4f47b9fe24575bcdc8cd",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): add build command (#1990)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `unique` and `groupBy` array helpers to `@latticexyz/common/utils`.",
+ "type": 0,
+ "commitHash": "1b5eb0d075579d2437b4329266ca37735e65ce41",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync,store-indexer): schemaless indexer (#1965)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "The `findAll` method is now considered deprecated in favor of a new `getLogs` method. This is only implemented in the Postgres indexer for now, with SQLite coming soon. The new `getLogs` method will be an easier and more robust data source to hydrate the client and other indexers and will allow us to add streaming updates from the indexer in the near future.",
+ "type": 0,
+ "commitHash": "1b5eb0d075579d2437b4329266ca37735e65ce41",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync,store-indexer): schemaless indexer (#1965)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "When the Postgres indexer starts up, it will now attempt to detect if the database is outdated and, if so, cleans up all MUD-related schemas and tables before proceeding.",
+ "type": 0,
+ "commitHash": "e48fb3b037d2ee888a8c61a6fc51721c903559e3",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer): clean database if outdated (#1984)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "- Added a `Result` type for more explicit and typesafe error handling ([inspired by Rust](https://doc.rust-lang.org/std/result/)).",
+ "type": 0,
+ "commitHash": "4c1dcd81eae44c37f66bd80871daf02834c04fb5",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer, store-sync): improve query performance and enable compression, add new api (#2026)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Added and populated `syncProgress` key in Zustand store for sync progress, like we do for RECS sync. This will let apps using `syncToZustand` render a loading state while initial client hydration is in progress.",
+ "type": 0,
+ "commitHash": "7eabd06f7af9748aba842d116f1dcd0ef5635999",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs: add changeset for zustand sync progress (#1931)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated `chunk` types to use readonly arrays",
+ "type": 0,
+ "commitHash": "5df1f31bc9d35969de6f03396905778748017f38",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync,store-indexer): sync from getLogs indexer endpoint (#1973)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `getLogs` query support to sqlite indexer",
+ "type": 0,
+ "commitHash": "5df1f31bc9d35969de6f03396905778748017f38",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync,store-indexer): sync from getLogs indexer endpoint (#1973)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "- Improved query performance by 10x by moving from drizzle ORM to handcrafted SQL.\n- Moved away from `trpc` for more granular control over the transport layer.\n Added an `/api/logs` endpoint using the new query and gzip compression for 40x less data transferred over the wire.\n Deprecated the `/trpc/getLogs` and `/trpc/findAll` endpoints.\n- Added a `createIndexerClient` client for the new `/api` indexer API exported from `@latticexyz/store-sync/indexer-client`.\n The `createIndexerClient` export from `@latticexyz/store-sync/trpc-indexer` is deprecated.",
+ "type": 0,
+ "commitHash": "4c1dcd81eae44c37f66bd80871daf02834c04fb5",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer, store-sync): improve query performance and enable compression, add new api (#2026)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "The `/api/logs` indexer endpoint is now returning a `404` snapshot not found error when no snapshot is found for the provided filter instead of an empty `200` response.",
+ "type": 0,
+ "commitHash": "f61b4bc0903d09c4c71f01270012953adee50701",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer): return a \"not found\" error when no snapshot is found for a `/api/logs` request (#2043)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `STORE_ADDRESS` environment variable to index only a specific MUD Store.",
+ "type": 0,
+ "commitHash": "1feecf4955462554c650f56e4777aa330e31f667",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): add worldAddress to dev-contracts (#1892)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Records are now ordered by `lastUpdatedBlockNumber` at the Postgres SQL query level",
+ "type": 0,
+ "commitHash": "504e25dc83a210a1ef3b66d8487d9e292470620c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-sync,store-indexer): make last updated block number not null (#1972)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Using `mud set-version --link` will no longer attempt to fetch the latest version from npm.",
+ "type": 0,
+ "commitHash": "854de0761fd3744c2076a2b995f0f9274a8ef971",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): mud set-version --link shouldn't fetch versions (#2000)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed an issue where `mud.config.ts` source file was not included in the package, causing TS errors downstream.",
+ "type": 0,
+ "commitHash": "1077c7f53b6c0d6ea7663fe2722b0e768d407741",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store,world): fix mud config TS errors (#1974)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a script to run the decoded postgres indexer.",
+ "type": 0,
+ "commitHash": "b00550cef2a3824dd38122a16b6e768bd88f9357",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer): command to run decoded indexer (#2001)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Added explicit error logs for unexpected situations.\nPreviously all `debug` logs were going to `stderr`, which made it hard to find the unexpected errors.\nNow `debug` logs go to `stdout` and we can add explicit `stderr` logs.",
+ "type": 0,
+ "commitHash": "0a3b9b1c9c821b153cb07281b585feb006ec621e",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore(store-indexer, store-sync): add explicit error logs (#2045)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "The benchmark util now logs to `stdout` instead of `stderr`.",
+ "type": 0,
+ "commitHash": "933b54b5fcdd9400e21e8e0114bb4c691e830fec",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore(common): log benchmark to stderr (#2047)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `isInstalled` and `requireNotInstalled` helpers to `Module` base contract.",
+ "type": 0,
+ "commitHash": "eb384bb0e073b1261b8ab92bc74c32ec4956c886",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world): add isInstalled to Module (#2056)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "`createStoreSync` now correctly creates table registration logs from indexer records.",
+ "type": 0,
+ "commitHash": "712866f5fb392a4e39b59cd4565da61adc3c005f",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-sync): create table registration logs from indexer records (#1919)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a Sentry middleware and `SENTRY_DNS` environment variable to the postgres indexer.",
+ "type": 0,
+ "commitHash": "85d16e48b6b3d15fe895dba550fb8d176481e1cd",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore(store-indexer): setup Sentry middleware in indexer (#2054)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Replaced Fastify with Koa for store-indexer frontends",
+ "type": 0,
+ "commitHash": "c314badd13412a7a96692046b0402a00988994f1",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer): replace fastify with koa (#2006)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Templates now correctly include their respective `.gitignore` files",
+ "type": 0,
+ "commitHash": "6963a9e85ea97b47be2edd199afa98100f728cf1",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(create-mud): include `.gitignore` files in created projects (#1945)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Deploys will now always rebuild `IWorld.sol` interface (a workaround for https://github.com/foundry-rs/foundry/issues/6241)",
+ "type": 0,
+ "commitHash": "2699630c0e0c2027f331a9defe7f90a8968f7b3d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): always rebuild IWorld ABI (#1929)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/abi-ts",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/block-logs-stream",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/gas-report",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/noise",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/phaserx",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/protocol-parser",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/react",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/recs",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/schema-type",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/services",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/utils",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "TS packages now generate their respective `.d.ts` type definition files for better compatibility when using MUD with `moduleResolution` set to `bundler` or `node16` and fixes issues around missing type declarations for dependent packages.",
+ "type": 0,
+ "commitHash": "590542030e7500f8d3cce6e54e4961d9f8a1a6d5",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "build: allow use by TypeScript projects with `bundler`/`node16` config (#2084)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Disabled prepared statements for the postgres indexer, which led to issues in combination with `pgBouncer`.",
+ "type": 0,
+ "commitHash": "392c4b88d033d2d175541b974189a3f4da49e335",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-indexer): disable prepared statements (#2058)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/abi-ts",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/block-logs-stream",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated the `debug` util to pipe to `stdout` and added an additional util to explicitly pipe to `stderr` when needed.",
+ "type": 0,
+ "commitHash": "5d737cf2e7a1a305d7ef0bee99c07c17d80233c8",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore: pipe debug logs to stdout, add separate util to pipe to stderr (#2044)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "The error log if no data is found in `/api/logs` is now stringifying the filter instead of logging `[object Object]`.",
+ "type": 0,
+ "commitHash": "5ab67e3350bd08d15fbbe28c498cec62d2aaa116",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "chore(store-indexer): stringify filter in error log (#2048)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a binary for the `postgres-decoded` indexer.",
+ "type": 0,
+ "commitHash": "735d957c6906e896e3e496158b9afd35da4688d4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-indexer): add postgres-decoded-indexer binary (#2062)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Renamed token address fields in ERC20 and ERC721 modules to `tokenAddress`",
+ "type": 0,
+ "commitHash": "747d8d1b819882c1f84b8029fd4ade669f772322",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(world-modules): rename token address fields (#1986)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/react",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed an issue where `useComponentValue` would not detect a change and re-render if the component value was immediately removed.",
+ "type": 0,
+ "commitHash": "9ef3f9a7c2ea52778027fb61988f876b590b22b0",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(react): trigger useComponentValue on deleted records (#1959)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed invalid value when decoding records in `postgres-decoded` storage adapter",
+ "type": 0,
+ "commitHash": "34203e4ed88c2aa79f994b99a96be4fcff21ca06",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-sync): use dynamic data in postgres decoded indexer (#1983)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated to use MUD's `sendTransaction`, which does a better of managing nonces for higher volumes of transactions.",
+ "type": 0,
+ "commitHash": "9082c179c5a1907cc79ec95543664e63fc327bb4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(faucet): use MUD's sendTransaction for better nonce handling (#2080)"
+ }
+ ]
+ }
+ },
+ {
+ "version": "2.0.0-next.14",
+ "date": "2023-11-10T00:00:00.000Z",
+ "changes": {
+ "patch": [],
+ "minor": [],
+ "major": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "`syncToZustand` now uses `tables` argument to populate the Zustand store's `tables` key, rather than the on-chain table registration events. This means we'll no longer store data into Zustand you haven't opted into receiving (e.g. other namespaces).",
+ "type": 0,
+ "commitHash": "1faf7f697481a92c02ca40edbf71e317de1c06e3",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(dev-tools): show zustand tables (#1891)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Separated frontend server and indexer service for Postgres indexer. Now you can run the Postgres indexer with one writer and many readers.",
+ "type": 0,
+ "commitHash": "5ecccfe751b0d217f98a45e8e7fdc73d15ad6494",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer): separate postgres indexer/frontend services (#1887)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Deploys now validate contract size before deploying and warns when a contract is over or close to the size limit (24kb). This should help identify the most common cause of \"evm revert\" errors during system and module contract deploys.",
+ "type": 0,
+ "commitHash": "bdb46fe3aa124014a53f1f070eb0db25771ace19",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): warn when contract is over or close to the size limit (#1894)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/schema-type",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `isSchemaAbiType` helper function to check and narrow an unknown string to the `SchemaAbiType` type",
+ "type": 0,
+ "commitHash": "bb91edaa01c8a66fc3eef4d5c93ccd20ae9a5066",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store): resolveUserTypes for static arrays (#1876)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Added Zustand support to Dev Tools:",
+ "type": 0,
+ "commitHash": "1faf7f697481a92c02ca40edbf71e317de1c06e3",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(dev-tools): show zustand tables (#1891)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a new delegation control called `SystemboundDelegationControl` that delegates control of a specific system for some maximum number of calls. It is almost identical to `CallboundDelegationControl` except the delegatee can call the system with any function and args.",
+ "type": 0,
+ "commitHash": "fdbba6d88563034be607600a7af25b234f306103",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs: add changeset for SystemboundDelegationControl (#1906)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `STORE_ADDRESS` environment variable to index only a specific MUD Store.",
+ "type": 0,
+ "commitHash": "f318f2fe736767230442f074fffd2d39c5629b38",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer): add env var to index only one store (#1886)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Pinned prettier-plugin-solidity version to 1.1.3",
+ "type": 0,
+ "commitHash": "aacffcb59ad75826b33a437ce430ac0e8bfe0ddb",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(create-mud): pin prettier-plugin-solidity (#1889)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `--worldAddress` argument to `dev-contracts` CLI command so that you can develop against an existing world.",
+ "type": 0,
+ "commitHash": "1feecf4955462554c650f56e4777aa330e31f667",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): add worldAddress to dev-contracts (#1892)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Added an explicit package export for `mud.config`",
+ "type": 0,
+ "commitHash": "b2d2aa715b30cdbcddf8e442c663bd319235c209",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store,world): explicit mud.config exports (#1900)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed `syncToZustand` types so that non-existent tables give an error and `never` type instead of a generic `Table` type.",
+ "type": 0,
+ "commitHash": "1327ea8c88f99fd268c743966dabed6122be098d",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store-sync): show TS error for non-existent tables when using zustand (#1896)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed `resolveUserTypes` for static arrays.\n`resolveUserTypes` is used by `deploy`, which prevented deploying tables with static arrays.",
+ "type": 0,
+ "commitHash": "bb91edaa01c8a66fc3eef4d5c93ccd20ae9a5066",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(store): resolveUserTypes for static arrays (#1876)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "The `mud test` cli now exits with code 1 on test failure. It used to exit with code 0, which meant that CIs didn't notice test failures.",
+ "type": 0,
+ "commitHash": "9ad27046c5fbc814cb7d9339097eed96a922c083",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs(faucet): fix default port in readme (#1835)"
+ }
+ ]
+ }
+ },
+ {
+ "version": "2.0.0-next.13",
+ "date": "2023-11-02T00:00:00.000Z",
+ "changes": {
+ "patch": [],
+ "minor": [],
+ "major": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/utils",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed `keccak256` and `keccak256Coord` hash utils in favor of [viem's `keccak256`](https://viem.sh/docs/utilities/keccak256.html#keccak256).",
+ "type": 0,
+ "commitHash": "52182f70d350bb99cdfa6054cd6d181e58a91aa6",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(utils): remove hash utils and ethers (#1783)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed `tableIds` filter option in favor of the more flexible `filters` option that accepts `tableId` and an optional `key0` and/or `key1` to filter data by tables and keys.",
+ "type": 0,
+ "commitHash": "f6d214e3d79f9591fddd3687aa987a57f417256c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer,store-sync): filter by table and key (#1794)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Replaced the `react` template with a basic task list app using the new Zustand storage adapter and sync method. This new template better demonstrates the different ways of building with MUD and has fewer concepts to learn (i.e. just tables and records, no more ECS).",
+ "type": 0,
+ "commitHash": "78949f2c939ff5f743c026367c5978cb459f6f88",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(create-mud): move react template to zustand, add react-ecs template (#1851)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated templates to use [mprocs](https://github.com/pvolok/mprocs) instead of [concurrently](https://github.com/open-cli-tools/concurrently) for running dev scripts.",
+ "type": 0,
+ "commitHash": "6288f9033b5f26124ab0ae3cde5934a7aef50f95",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(create-mud): replace concurrently with mprocs (#1862)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Added an optional `tables` option to `syncToRecs` to allow you to sync from tables that may not be expressed by your MUD config. This will be useful for namespaced tables used by [ERC20](https://github.com/latticexyz/mud/pull/1789) and [ERC721](https://github.com/latticexyz/mud/pull/1844) token modules until the MUD config gains [namespace support](https://github.com/latticexyz/mud/issues/994).",
+ "type": 0,
+ "commitHash": "de47d698f031a28ef8d9e329e3cffc85e904c6a1",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): extra table definitions (#1840)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Added the `ERC721Module` to `@latticexyz/world-modules`.\nThis module allows the registration of `ERC721` tokens in an existing World.",
+ "type": 0,
+ "commitHash": "d7325e517ce18597d55e8bce41036e78e00c3a78",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world-modules): add ERC721 module (#1844)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Added the `PuppetModule` to `@latticexyz/world-modules`. The puppet pattern allows an external contract to be registered as an external interface for a MUD system.\nThis allows standards like `ERC20` (that require a specific interface and events to be emitted by a unique contract) to be implemented inside a MUD World.",
+ "type": 0,
+ "commitHash": "35348f831b923aed6e9bdf8b38bf337f3e944a48",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world-modules): add puppet module (#1793)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Enabled MUD CLI debug logs for all templates.",
+ "type": 0,
+ "commitHash": "b68e1699b52714561c9ac62fa593d0b6cd9fe656",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(create-mud): enable MUD CLI debug logs (#1861)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a `filters` option to store sync to allow filtering client data on tables and keys. Previously, it was only possible to filter on `tableIds`, but the new filter option allows for more flexible filtering by key.",
+ "type": 0,
+ "commitHash": "f6d214e3d79f9591fddd3687aa987a57f417256c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-indexer,store-sync): filter by table and key (#1794)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Added the `ERC20Module` to `@latticexyz/world-modules`.\nThis module allows the registration of `ERC20` tokens in an existing World.",
+ "type": 0,
+ "commitHash": "83638373450af5d8f703a183a74107ef7efb4152",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world-modules): add ERC20 module (#1789)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a Zustand storage adapter and corresponding `syncToZustand` method for use in vanilla and React apps. It's used much like the other sync methods, except it returns a bound store and set of typed tables.",
+ "type": 0,
+ "commitHash": "fa77635839e760a9de5fc8959ee492b7a4d8a7cd",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store-sync): sync to zustand (#1843)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a `mapObject` helper to map the value of each property of an object to a new value.",
+ "type": 0,
+ "commitHash": "b1d41727d4b1964ad3cd907c1c2126b02172b413",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store): add experimental config resolve helper (#1826)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Updated templates' PostDeploy script to set store address so that tables can be used directly inside PostDeploy.",
+ "type": 0,
+ "commitHash": "c5148da763645e0adc1250245ea447904014bef2",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(create-mud): set store address in PostDeploy script (#1817)"
+ },
+ {
+ "packages": [
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed an issue when creating a new project from the `react` app, where React's expressions were overlapping with Handlebars expressions (used by our template command).",
+ "type": 0,
+ "commitHash": "1b33a915c56247599c19c5de04090b776b87d561",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(create-mud): workaround create-create-app templating (#1863)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Changed `mud` CLI import order so that environment variables from the `.env` file are loaded before other imports.",
+ "type": 0,
+ "commitHash": "21a626ae9bd79f1a275edc70b43d19ed43f48131",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): change import order so .env file is loaded first (#1860)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/config",
+ "type": "patch"
+ }
+ ],
+ "description": "Removed chalk usage from modules imported in client fix downstream client builds (vite in particular).",
+ "type": 0,
+ "commitHash": "3e057061da17dd2d0c5fd23e6f5a027bdf9a9223",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(common,config): remove chalk usage (#1824)"
+ }
+ ]
+ }
+ },
+ {
+ "version": "2.0.0-next.12",
+ "date": "2023-10-20T00:00:00.000Z",
+ "changes": {
+ "patch": [],
+ "minor": [],
+ "major": [
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Store config now defaults `storeArgument: false` for all tables. This means that table libraries, by default, will no longer include the extra functions with the `_store` argument. This default was changed to clear up the confusion around using table libraries in tests, `PostDeploy` scripts, etc.",
+ "type": 0,
+ "commitHash": "7ce82b6fc6bbf390ae159fe990d5d4fca5a4b0cb",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store): default off storeArgument (#1741)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "`deploy`, `test`, `dev-contracts` were overhauled using a declarative deployment approach under the hood. Deploys are now idempotent and re-running them will introspect the world and figure out the minimal changes necessary to bring the world into alignment with its config: adding tables, adding/upgrading systems, changing access control, etc.",
+ "type": 0,
+ "commitHash": "29c3f5087017dbc9dc2c9160e10bfbac5806741f",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): declarative deployment (#1702)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world-modules",
+ "type": "patch"
+ }
+ ],
+ "description": "Modules now revert with `Module_AlreadyInstalled` if attempting to install more than once with the same calldata.",
+ "type": 0,
+ "commitHash": "6ca1874e02161c8feb08b5fafb20b57ce0c8fe72",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world-modules): only install modules once (#1756)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Added TS helpers for calling systems dynamically via the World.",
+ "type": 0,
+ "commitHash": "7fa2ca1831234b54a55c20632d29877e5e711eb7",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "docs(world): add changeset for system call helpers (#1747)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a `Module_AlreadyInstalled` error to `IModule`.",
+ "type": 0,
+ "commitHash": "6ca1874e02161c8feb08b5fafb20b57ce0c8fe72",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(world-modules): only install modules once (#1756)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "- Added a `sendTransaction` helper to mirror viem's `sendTransaction`, but with our nonce manager\n- Added an internal mempool queue to `sendTransaction` and `writeContract` for better nonce handling\n- Defaults block tag to `pending` for transaction simulation and transaction count (when initializing the nonce manager)",
+ "type": 0,
+ "commitHash": "0660561545910b03f8358e5ed7698f74e64f955b",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common): add sendTransaction, add mempool queue to nonce manager (#1717)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Added a `--alwaysRunPostDeploy` flag to deploys (`deploy`, `test`, `dev-contracts` commands) to always run `PostDeploy.s.sol` script after each deploy. By default, `PostDeploy.s.sol` is only run once after a new world is deployed.",
+ "type": 0,
+ "commitHash": "ccc21e91387cb09de9dc56729983776eb9bcdcc4",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): add `--alwaysPostDeploy` flag to deploys (#1765)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/abi-ts",
+ "type": "patch"
+ }
+ ],
+ "description": "Moves log output behind a debug flag. You can enable logging with `DEBUG=abi-ts` environment variable.",
+ "type": 0,
+ "commitHash": "ca32917519eb9065829f11af105abbbb31d6efa2",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(abi-ts): move logs to debug (#1736)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "CLI `deploy`, `test`, `dev-contracts` no longer run `forge clean` before each deploy. We previously cleaned to ensure no outdated artifacts were checked into git (ABIs, typechain types, etc.). Now that all artifacts are gitignored, we can let forge use its cache again.",
+ "type": 0,
+ "commitHash": "e667ee808b5362ff215ba3faea028b526660eccb",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): remove forge clean from deploy (#1759)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Renames `resourceIdToHex` to `resourceToHex` and `hexToResourceId` to `hexToResource`, to better distinguish between a resource ID (hex value) and a resource reference (type, namespace, name).",
+ "type": 0,
+ "commitHash": "d2f8e940048e56d9be204bf5b2cbcf8d29cc1dee",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common): clarify resourceId (hex) from resource (object) (#1706)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "Replaced temporary `.mudtest` file in favor of `WORLD_ADDRESS` environment variable when running tests with `MudTest` contract",
+ "type": 0,
+ "commitHash": "25086be5f34d7289f21395595ac8a6aeabfe9b7c",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): remove .mudtest file in favor of env var (#1722)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/faucet",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-indexer",
+ "type": "patch"
+ }
+ ],
+ "description": "Added `/healthz` and `/readyz` healthcheck endpoints for Kubernetes",
+ "type": 0,
+ "commitHash": "1d0f7e22b7fb8f6295b149a6584933a3a657ec08",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(faucet,store-indexer): add k8s healthcheck endpoints (#1739)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Transactions sent via deploy will now be retried a few times before giving up. This hopefully helps with large deploys on some chains.",
+ "type": 0,
+ "commitHash": "e1dc88ebe7f66e4ece13805643e932e038863b6e",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): add retries to deploy (#1766)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "`dev-contracts` will no longer bail when there was an issue with deploying (e.g. typo in contracts) and instead wait for file changes before retrying.",
+ "type": 0,
+ "commitHash": "3bfee32cf4d036a73b35f059e0159f1b7a7088e9",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): don't bail dev-contracts during deploy failure (#1808)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/store",
+ "type": "patch"
+ }
+ ],
+ "description": "Parallelized table codegen. Also put logs behind debug flag, which can be enabled using the `DEBUG=mud:*` environment variable.",
+ "type": 0,
+ "commitHash": "f62c767e7ff3bda807c592d85227221a00dd9353",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store): parallelize table codegen (#1754)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Deploys now continue if they detect a `Module_AlreadyInstalled` revert error.",
+ "type": 0,
+ "commitHash": "4e2a170f9185a03c2c504912e3d738f06b45137b",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): handle module already installed (#1769)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Changed deploy order so that system/module contracts are fully deployed before registering/installing them on the world.",
+ "type": 0,
+ "commitHash": "61c6ab70555dc29e8e9428212ee710d7af681cc9",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): deploy systems/modules before registering/installing them (#1767)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Deploy commands (`deploy`, `dev-contracts`, `test`) now correctly run `worldgen` to generate system interfaces before deploying.",
+ "type": 0,
+ "commitHash": "69d55ce3265e10a1ae62ddca9e32e34f1cd52dea",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): run worldgen with deploy (#1807)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/common",
+ "type": "patch"
+ }
+ ],
+ "description": "Moved some codegen to use `fs/promises` for better parallelism.",
+ "type": 0,
+ "commitHash": "f62c767e7ff3bda807c592d85227221a00dd9353",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(store): parallelize table codegen (#1754)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ }
+ ],
+ "description": "Fixed a few issues with deploys:",
+ "type": 0,
+ "commitHash": "4fe079309fae04ffd2e611311937906f65bf91e6",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "fix(cli): support enums in deploy, only deploy modules/systems once (#1749)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "create-mud",
+ "type": "patch"
+ }
+ ],
+ "description": "Sped up builds by using more of forge's cache.",
+ "type": 0,
+ "commitHash": "d844cd441c40264ddc90d023e4354adea617febd",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli,create-mud): use forge cache (#1777)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/world",
+ "type": "patch"
+ }
+ ],
+ "description": "With [resource types in resource IDs](https://github.com/latticexyz/mud/pull/1544), the World config no longer requires table and system names to be unique.",
+ "type": 0,
+ "commitHash": "29c3f5087017dbc9dc2c9160e10bfbac5806741f",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(cli): declarative deployment (#1702)"
+ },
+ {
+ "packages": [
+ {
+ "package": "@latticexyz/cli",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/dev-tools",
+ "type": "patch"
+ },
+ {
+ "package": "@latticexyz/store-sync",
+ "type": "patch"
+ }
+ ],
+ "description": "Moved to new resource ID utils.",
+ "type": 0,
+ "commitHash": "d2f8e940048e56d9be204bf5b2cbcf8d29cc1dee",
+ "authorName": "",
+ "authorEmail": "",
+ "title": "feat(common): clarify resourceId (hex) from resource (object) (#1706)"
+ }
+ ]
+ }
+ }
+]
diff --git a/docs/lib/cn.ts b/docs/lib/cn.ts
new file mode 100644
index 0000000000..365058cebd
--- /dev/null
+++ b/docs/lib/cn.ts
@@ -0,0 +1,6 @@
+import { type ClassValue, clsx } from "clsx";
+import { twMerge } from "tailwind-merge";
+
+export function cn(...inputs: ClassValue[]) {
+ return twMerge(clsx(inputs));
+}
diff --git a/docs/next.config.mjs b/docs/next.config.mjs
index f564088c99..6ca04d0615 100644
--- a/docs/next.config.mjs
+++ b/docs/next.config.mjs
@@ -1,3 +1,4 @@
+
import nextra from "nextra";
const withNextra = nextra({
@@ -9,6 +10,14 @@ export default withNextra({
experimental: {
appDir: true,
},
+ images: {
+ remotePatterns: [
+ {
+ protocol: "https",
+ hostname: "avatars.githubusercontent.com",
+ },
+ ],
+ },
async redirects() {
return [
{
@@ -235,7 +244,7 @@ export default withNextra({
source: "/hello-world",
destination: "/guides/hello-world",
permanent: false,
- },
+ },
{
source: "/references/store",
destination: "/store/reference/store",
@@ -255,7 +264,7 @@ export default withNextra({
source: "/store/table-hooks",
destination: "/store/store-hooks",
permanent: false,
- },
+ },
{
source: "/guides/best-practices/dividing-into-systems",
destination: "/best-practices/dividing-into-systems",
@@ -265,7 +274,7 @@ export default withNextra({
source: "/guides/best-practices/system-best-practices",
destination: "/best-practices/system",
permanent: false,
- },
+ },
{
source: "/guides/best-practices/deployment-settings",
destination: "/best-practices/deployment-settings",
@@ -290,7 +299,7 @@ export default withNextra({
source: "/services/indexer/sqlite-indexer",
destination: "/indexer/sqlite",
permanent: false,
- },
+ },
{
source: "/services/indexer/using-indexer",
destination: "/indexer/using",
@@ -300,7 +309,7 @@ export default withNextra({
source: "/services/indexer",
destination: "/indexer",
permanent: false,
- },
+ },
];
},
});
diff --git a/docs/package.json b/docs/package.json
index a1b0a4430a..b66a291843 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -12,18 +12,24 @@
"start": "next start"
},
"dependencies": {
+ "@cloudflare/stream-react": "^1.9.1",
+ "@radix-ui/react-dialog": "^1.1.2",
+ "@radix-ui/react-tooltip": "^1.1.3",
+ "clsx": "^2.1.1",
+ "framer-motion": "^11.11.11",
"next": "^13.3.0",
"nextra": "^2.10.0",
"nextra-theme-docs": "^2.10.0",
- "react": "^18.2.0",
+ "octokit": "^4.0.2",
+ "react": "^18.3.1",
"react-dom": "^18.2.0",
"tailwind-merge": "^2.0.0",
"tailwindcss": "^3.3.5"
},
"devDependencies": {
"@types/node": "18.11.10",
- "@types/react": "^18.0.28",
- "@types/react-dom": "^18.0.11",
+ "@types/react": "^18.3.12",
+ "@types/react-dom": "^18.3.1",
"autoprefixer": "^10.4.16",
"postcss": "^8.4.31",
"typescript": "5.4.2"
diff --git a/docs/pages/_app.tsx b/docs/pages/_app.tsx
index 66097d797c..44e9eb7cbd 100644
--- a/docs/pages/_app.tsx
+++ b/docs/pages/_app.tsx
@@ -1,4 +1,3 @@
-import "../styles.css";
import type { AppProps } from "next/app";
export default function MyApp({ Component, pageProps }: AppProps) {
diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml
index f9bfadb10c..447e2ed3a1 100644
--- a/docs/pnpm-lock.yaml
+++ b/docs/pnpm-lock.yaml
@@ -8,21 +8,39 @@ importers:
.:
dependencies:
+ '@cloudflare/stream-react':
+ specifier: ^1.9.1
+ version: 1.9.1(react@18.3.1)
+ '@radix-ui/react-dialog':
+ specifier: ^1.1.2
+ version: 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-tooltip':
+ specifier: ^1.1.3
+ version: 1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ clsx:
+ specifier: ^2.1.1
+ version: 2.1.1
+ framer-motion:
+ specifier: ^11.11.11
+ version: 11.11.11(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
next:
specifier: ^13.3.0
- version: 13.3.0(react-dom@18.2.0)(react@18.2.0)
+ version: 13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
nextra:
specifier: ^2.10.0
- version: 2.10.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0)
+ version: 2.10.0(next@13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
nextra-theme-docs:
specifier: ^2.10.0
- version: 2.10.0(next@13.3.0)(nextra@2.10.0)(react-dom@18.2.0)(react@18.2.0)
+ version: 2.10.0(next@13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(nextra@2.10.0(next@13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ octokit:
+ specifier: ^4.0.2
+ version: 4.0.2
react:
- specifier: ^18.2.0
- version: 18.2.0
+ specifier: ^18.3.1
+ version: 18.3.1
react-dom:
specifier: ^18.2.0
- version: 18.2.0(react@18.2.0)
+ version: 18.2.0(react@18.3.1)
tailwind-merge:
specifier: ^2.0.0
version: 2.0.0
@@ -34,11 +52,11 @@ importers:
specifier: 18.11.10
version: 18.11.10
'@types/react':
- specifier: ^18.0.28
- version: 18.0.38
+ specifier: ^18.3.12
+ version: 18.3.12
'@types/react-dom':
- specifier: ^18.0.11
- version: 18.0.11
+ specifier: ^18.3.1
+ version: 18.3.1
autoprefixer:
specifier: ^10.4.16
version: 10.4.16(postcss@8.4.31)
@@ -66,6 +84,27 @@ packages:
'@braintree/sanitize-url@6.0.2':
resolution: {integrity: sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg==}
+ '@cloudflare/stream-react@1.9.1':
+ resolution: {integrity: sha512-Yeftxpgzs69hK3VmVZjhvqIqhyo5PHWLAoZMmbzPiTH0rqkyzMMHxRvyNe7jfBRAGknOiTeeU7TQCdPBDCkuvg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ react: '>=16'
+
+ '@floating-ui/core@1.6.8':
+ resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==}
+
+ '@floating-ui/dom@1.6.12':
+ resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==}
+
+ '@floating-ui/react-dom@2.1.2':
+ resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ '@floating-ui/utils@0.2.8':
+ resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==}
+
'@headlessui/react@1.7.14':
resolution: {integrity: sha512-znzdq9PG8rkwcu9oQ2FwIy0ZFtP9Z7ycS+BAqJ3R5EIqC/0bJGvhT7193rFf+45i9nnPsYvCQVW4V/bB9Xc+gA==}
engines: {node: '>=10'}
@@ -238,9 +277,360 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
+ '@octokit/app@15.1.0':
+ resolution: {integrity: sha512-TkBr7QgOmE6ORxvIAhDbZsqPkF7RSqTY4pLTtUQCvr6dTXqvi2fFo46q3h1lxlk/sGMQjqyZ0kEahkD/NyzOHg==}
+ engines: {node: '>= 18'}
+
+ '@octokit/auth-app@7.1.2':
+ resolution: {integrity: sha512-5cfWRr1hr0w/EW3StFIIOkMtYhOyGZ6/R3T0xeN6UgC/uL5pIyeood9N/8Z7W4NZUdz2QK1Fv0oM/1AzTME3/Q==}
+ engines: {node: '>= 18'}
+
+ '@octokit/auth-oauth-app@8.1.1':
+ resolution: {integrity: sha512-5UtmxXAvU2wfcHIPPDWzVSAWXVJzG3NWsxb7zCFplCWEmMCArSZV0UQu5jw5goLQXbFyOr5onzEH37UJB3zQQg==}
+ engines: {node: '>= 18'}
+
+ '@octokit/auth-oauth-device@7.1.1':
+ resolution: {integrity: sha512-HWl8lYueHonuyjrKKIup/1tiy0xcmQCdq5ikvMO1YwkNNkxb6DXfrPjrMYItNLyCP/o2H87WuijuE+SlBTT8eg==}
+ engines: {node: '>= 18'}
+
+ '@octokit/auth-oauth-user@5.1.1':
+ resolution: {integrity: sha512-rRkMz0ErOppdvEfnemHJXgZ9vTPhBuC6yASeFaB7I2yLMd7QpjfrL1mnvRPlyKo+M6eeLxrKanXJ9Qte29SRsw==}
+ engines: {node: '>= 18'}
+
+ '@octokit/auth-token@5.1.1':
+ resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==}
+ engines: {node: '>= 18'}
+
+ '@octokit/auth-unauthenticated@6.1.0':
+ resolution: {integrity: sha512-zPSmfrUAcspZH/lOFQnVnvjQZsIvmfApQH6GzJrkIunDooU1Su2qt2FfMTSVPRp7WLTQyC20Kd55lF+mIYaohQ==}
+ engines: {node: '>= 18'}
+
+ '@octokit/core@6.1.2':
+ resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==}
+ engines: {node: '>= 18'}
+
+ '@octokit/endpoint@10.1.1':
+ resolution: {integrity: sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==}
+ engines: {node: '>= 18'}
+
+ '@octokit/graphql@8.1.1':
+ resolution: {integrity: sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==}
+ engines: {node: '>= 18'}
+
+ '@octokit/oauth-app@7.1.3':
+ resolution: {integrity: sha512-EHXbOpBkSGVVGF1W+NLMmsnSsJRkcrnVmDKt0TQYRBb6xWfWzoi9sBD4DIqZ8jGhOWO/V8t4fqFyJ4vDQDn9bg==}
+ engines: {node: '>= 18'}
+
+ '@octokit/oauth-authorization-url@7.1.1':
+ resolution: {integrity: sha512-ooXV8GBSabSWyhLUowlMIVd9l1s2nsOGQdlP2SQ4LnkEsGXzeCvbSbCPdZThXhEFzleGPwbapT0Sb+YhXRyjCA==}
+ engines: {node: '>= 18'}
+
+ '@octokit/oauth-methods@5.1.2':
+ resolution: {integrity: sha512-C5lglRD+sBlbrhCUTxgJAFjWgJlmTx5bQ7Ch0+2uqRjYv7Cfb5xpX4WuSC9UgQna3sqRGBL9EImX9PvTpMaQ7g==}
+ engines: {node: '>= 18'}
+
+ '@octokit/openapi-types@22.2.0':
+ resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==}
+
+ '@octokit/openapi-webhooks-types@8.3.0':
+ resolution: {integrity: sha512-vKLsoR4xQxg4Z+6rU/F65ItTUz/EXbD+j/d4mlq2GW8TsA4Tc8Kdma2JTAAJ5hrKWUQzkR/Esn2fjsqiVRYaQg==}
+
+ '@octokit/plugin-paginate-graphql@5.2.4':
+ resolution: {integrity: sha512-pLZES1jWaOynXKHOqdnwZ5ULeVR6tVVCMm+AUbp0htdcyXDU95WbkYdU4R2ej1wKj5Tu94Mee2Ne0PjPO9cCyA==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ '@octokit/core': '>=6'
+
+ '@octokit/plugin-paginate-rest@11.3.5':
+ resolution: {integrity: sha512-cgwIRtKrpwhLoBi0CUNuY83DPGRMaWVjqVI/bGKsLJ4PzyWZNaEmhHroI2xlrVXkk6nFv0IsZpOp+ZWSWUS2AQ==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ '@octokit/core': '>=6'
+
+ '@octokit/plugin-rest-endpoint-methods@13.2.6':
+ resolution: {integrity: sha512-wMsdyHMjSfKjGINkdGKki06VEkgdEldIGstIEyGX0wbYHGByOwN/KiM+hAAlUwAtPkP3gvXtVQA9L3ITdV2tVw==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ '@octokit/core': '>=6'
+
+ '@octokit/plugin-retry@7.1.2':
+ resolution: {integrity: sha512-XOWnPpH2kJ5VTwozsxGurw+svB2e61aWlmk5EVIYZPwFK5F9h4cyPyj9CIKRyMXMHSwpIsI3mPOdpMmrRhe7UQ==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ '@octokit/core': '>=6'
+
+ '@octokit/plugin-throttling@9.3.2':
+ resolution: {integrity: sha512-FqpvcTpIWFpMMwIeSoypoJXysSAQ3R+ALJhXXSG1HTP3YZOIeLmcNcimKaXxTcws+Sh6yoRl13SJ5r8sXc1Fhw==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ '@octokit/core': ^6.0.0
+
+ '@octokit/request-error@6.1.5':
+ resolution: {integrity: sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==}
+ engines: {node: '>= 18'}
+
+ '@octokit/request@9.1.3':
+ resolution: {integrity: sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==}
+ engines: {node: '>= 18'}
+
+ '@octokit/types@13.6.1':
+ resolution: {integrity: sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==}
+
+ '@octokit/webhooks-methods@5.1.0':
+ resolution: {integrity: sha512-yFZa3UH11VIxYnnoOYCVoJ3q4ChuSOk2IVBBQ0O3xtKX4x9bmKb/1t+Mxixv2iUhzMdOl1qeWJqEhouXXzB3rQ==}
+ engines: {node: '>= 18'}
+
+ '@octokit/webhooks@13.3.0':
+ resolution: {integrity: sha512-TUkJLtI163Bz5+JK0O+zDkQpn4gKwN+BovclUvCj6pI/6RXrFqQvUMRS2M+Rt8Rv0qR3wjoMoOPmpJKeOh0nBg==}
+ engines: {node: '>= 18'}
+
'@popperjs/core@2.11.7':
resolution: {integrity: sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==}
+ '@radix-ui/primitive@1.1.0':
+ resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==}
+
+ '@radix-ui/react-arrow@1.1.0':
+ resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-compose-refs@1.1.0':
+ resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-context@1.1.0':
+ resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-context@1.1.1':
+ resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dialog@1.1.2':
+ resolution: {integrity: sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-dismissable-layer@1.1.1':
+ resolution: {integrity: sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-focus-guards@1.1.1':
+ resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-focus-scope@1.1.0':
+ resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-id@1.1.0':
+ resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-popper@1.2.0':
+ resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-portal@1.1.2':
+ resolution: {integrity: sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-presence@1.1.1':
+ resolution: {integrity: sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-primitive@2.0.0':
+ resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-slot@1.1.0':
+ resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-tooltip@1.1.3':
+ resolution: {integrity: sha512-Z4w1FIS0BqVFI2c1jZvb/uDVJijJjJ2ZMuPV81oVgTZ7g3BZxobplnMVvXtFWgtozdvYJ+MFWtwkM5S2HnAong==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-use-callback-ref@1.1.0':
+ resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-controllable-state@1.1.0':
+ resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-escape-keydown@1.1.0':
+ resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-layout-effect@1.1.0':
+ resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-rect@1.1.0':
+ resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-size@1.1.0':
+ resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-visually-hidden@1.1.0':
+ resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/rect@1.1.0':
+ resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==}
+
'@swc/helpers@0.4.14':
resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==}
@@ -255,6 +645,9 @@ packages:
'@types/acorn@4.0.6':
resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
+ '@types/aws-lambda@8.10.145':
+ resolution: {integrity: sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==}
+
'@types/debug@4.1.7':
resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==}
@@ -291,14 +684,11 @@ packages:
'@types/prop-types@15.7.5':
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
- '@types/react-dom@18.0.11':
- resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==}
-
- '@types/react@18.0.38':
- resolution: {integrity: sha512-ExsidLLSzYj4cvaQjGnQCk4HFfVT9+EZ9XZsQ8Hsrcn8QNgXtpZ3m9vSIC2MWtx7jHictK6wYhQgGh6ic58oOw==}
+ '@types/react-dom@18.3.1':
+ resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==}
- '@types/scheduler@0.16.3':
- resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==}
+ '@types/react@18.3.12':
+ resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==}
'@types/unist@2.0.6':
resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
@@ -306,6 +696,10 @@ packages:
'@types/unist@3.0.0':
resolution: {integrity: sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==}
+ '@wolfy1339/lru-cache@11.0.2-patch.1':
+ resolution: {integrity: sha512-BgYZfL2ADCXKOw2wJtkM3slhHotawWkgIRRxq4wEybnZQPjvAp71SPX35xepMykTw8gXlzWcWPTY31hlbnRsDA==}
+ engines: {node: 18 >=18.20 || 20 || >=22}
+
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
@@ -345,6 +739,10 @@ packages:
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ aria-hidden@1.2.4:
+ resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
+ engines: {node: '>=10'}
+
astring@1.8.4:
resolution: {integrity: sha512-97a+l2LBU3Op3bBQEff79i/E4jMD2ZLFD8rHx9B6mXyB2uQwhJQYfiDqUwtfjF4QA1F2qs//N6Cw8LetMbQjcw==}
hasBin: true
@@ -362,10 +760,16 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ before-after-hook@3.0.2:
+ resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==}
+
binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'}
+ bottleneck@2.19.5:
+ resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -426,6 +830,10 @@ packages:
resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
engines: {node: '>=6'}
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+
color-convert@1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
@@ -636,6 +1044,9 @@ packages:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
+ detect-node-es@1.1.0:
+ resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
+
didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
@@ -729,6 +1140,20 @@ packages:
fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
+ framer-motion@11.11.11:
+ resolution: {integrity: sha512-tuDH23ptJAKUHGydJQII9PhABNJBpB+z0P1bmgKK9QFIssHGlfPd6kxMq00LSKwE27WFsb2z0ovY0bpUyMvfRw==}
+ peerDependencies:
+ '@emotion/is-prop-valid': '*'
+ react: ^18.0.0
+ react-dom: ^18.0.0
+ peerDependenciesMeta:
+ '@emotion/is-prop-valid':
+ optional: true
+ react:
+ optional: true
+ react-dom:
+ optional: true
+
fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
@@ -740,6 +1165,10 @@ packages:
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ get-nonce@1.0.1:
+ resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
+ engines: {node: '>=6'}
+
get-stream@3.0.0:
resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==}
engines: {node: '>=4'}
@@ -836,6 +1265,9 @@ packages:
intersection-observer@0.12.2:
resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==}
+ invariant@2.2.4:
+ resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
+
is-alphabetical@2.0.1:
resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
@@ -1254,6 +1686,10 @@ packages:
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
engines: {node: '>= 6'}
+ octokit@4.0.2:
+ resolution: {integrity: sha512-wbqF4uc1YbcldtiBFfkSnquHtECEIpYD78YUXI6ri1Im5OO2NLo6ZVpRdbJpdnpZ05zMrVPssNiEo6JQtea+Qg==}
+ engines: {node: '>= 18'}
+
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
@@ -1371,8 +1807,38 @@ packages:
peerDependencies:
react: ^18.2.0
- react@18.2.0:
- resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
+ react-remove-scroll-bar@2.3.6:
+ resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-remove-scroll@2.6.0:
+ resolution: {integrity: sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-style-singleton@2.2.1:
+ resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react@18.3.1:
+ resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
read-cache@1.0.0:
@@ -1638,12 +2104,38 @@ packages:
unist-util-visit@5.0.0:
resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+ universal-github-app-jwt@2.2.0:
+ resolution: {integrity: sha512-G5o6f95b5BggDGuUfKDApKaCgNYy2x7OdHY0zSMF081O0EJobw+1130VONhrA7ezGSV2FNOGyM+KQpQZAr9bIQ==}
+
+ universal-user-agent@7.0.2:
+ resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==}
+
update-browserslist-db@1.0.13:
resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
+ use-callback-ref@1.3.2:
+ resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-sidecar@1.1.2:
+ resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
@@ -1718,11 +2210,32 @@ snapshots:
'@braintree/sanitize-url@6.0.2': {}
- '@headlessui/react@1.7.14(react-dom@18.2.0)(react@18.2.0)':
+ '@cloudflare/stream-react@1.9.1(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@floating-ui/core@1.6.8':
+ dependencies:
+ '@floating-ui/utils': 0.2.8
+
+ '@floating-ui/dom@1.6.12':
+ dependencies:
+ '@floating-ui/core': 1.6.8
+ '@floating-ui/utils': 0.2.8
+
+ '@floating-ui/react-dom@2.1.2(react-dom@18.2.0(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/dom': 1.6.12
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+
+ '@floating-ui/utils@0.2.8': {}
+
+ '@headlessui/react@1.7.14(react-dom@18.2.0(react@18.3.1))(react@18.3.1)':
dependencies:
client-only: 0.0.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
'@jridgewell/gen-mapping@0.3.3':
dependencies:
@@ -1763,11 +2276,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@mdx-js/react@2.3.0(react@18.2.0)':
+ '@mdx-js/react@2.3.0(react@18.3.1)':
dependencies:
'@types/mdx': 2.0.4
- '@types/react': 18.0.38
- react: 18.2.0
+ '@types/react': 18.3.12
+ react: 18.3.1
'@napi-rs/simple-git-android-arm-eabi@0.1.8':
optional: true
@@ -1857,16 +2370,375 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.15.0
+ '@octokit/app@15.1.0':
+ dependencies:
+ '@octokit/auth-app': 7.1.2
+ '@octokit/auth-unauthenticated': 6.1.0
+ '@octokit/core': 6.1.2
+ '@octokit/oauth-app': 7.1.3
+ '@octokit/plugin-paginate-rest': 11.3.5(@octokit/core@6.1.2)
+ '@octokit/types': 13.6.1
+ '@octokit/webhooks': 13.3.0
+
+ '@octokit/auth-app@7.1.2':
+ dependencies:
+ '@octokit/auth-oauth-app': 8.1.1
+ '@octokit/auth-oauth-user': 5.1.1
+ '@octokit/request': 9.1.3
+ '@octokit/request-error': 6.1.5
+ '@octokit/types': 13.6.1
+ lru-cache: '@wolfy1339/lru-cache@11.0.2-patch.1'
+ universal-github-app-jwt: 2.2.0
+ universal-user-agent: 7.0.2
+
+ '@octokit/auth-oauth-app@8.1.1':
+ dependencies:
+ '@octokit/auth-oauth-device': 7.1.1
+ '@octokit/auth-oauth-user': 5.1.1
+ '@octokit/request': 9.1.3
+ '@octokit/types': 13.6.1
+ universal-user-agent: 7.0.2
+
+ '@octokit/auth-oauth-device@7.1.1':
+ dependencies:
+ '@octokit/oauth-methods': 5.1.2
+ '@octokit/request': 9.1.3
+ '@octokit/types': 13.6.1
+ universal-user-agent: 7.0.2
+
+ '@octokit/auth-oauth-user@5.1.1':
+ dependencies:
+ '@octokit/auth-oauth-device': 7.1.1
+ '@octokit/oauth-methods': 5.1.2
+ '@octokit/request': 9.1.3
+ '@octokit/types': 13.6.1
+ universal-user-agent: 7.0.2
+
+ '@octokit/auth-token@5.1.1': {}
+
+ '@octokit/auth-unauthenticated@6.1.0':
+ dependencies:
+ '@octokit/request-error': 6.1.5
+ '@octokit/types': 13.6.1
+
+ '@octokit/core@6.1.2':
+ dependencies:
+ '@octokit/auth-token': 5.1.1
+ '@octokit/graphql': 8.1.1
+ '@octokit/request': 9.1.3
+ '@octokit/request-error': 6.1.5
+ '@octokit/types': 13.6.1
+ before-after-hook: 3.0.2
+ universal-user-agent: 7.0.2
+
+ '@octokit/endpoint@10.1.1':
+ dependencies:
+ '@octokit/types': 13.6.1
+ universal-user-agent: 7.0.2
+
+ '@octokit/graphql@8.1.1':
+ dependencies:
+ '@octokit/request': 9.1.3
+ '@octokit/types': 13.6.1
+ universal-user-agent: 7.0.2
+
+ '@octokit/oauth-app@7.1.3':
+ dependencies:
+ '@octokit/auth-oauth-app': 8.1.1
+ '@octokit/auth-oauth-user': 5.1.1
+ '@octokit/auth-unauthenticated': 6.1.0
+ '@octokit/core': 6.1.2
+ '@octokit/oauth-authorization-url': 7.1.1
+ '@octokit/oauth-methods': 5.1.2
+ '@types/aws-lambda': 8.10.145
+ universal-user-agent: 7.0.2
+
+ '@octokit/oauth-authorization-url@7.1.1': {}
+
+ '@octokit/oauth-methods@5.1.2':
+ dependencies:
+ '@octokit/oauth-authorization-url': 7.1.1
+ '@octokit/request': 9.1.3
+ '@octokit/request-error': 6.1.5
+ '@octokit/types': 13.6.1
+
+ '@octokit/openapi-types@22.2.0': {}
+
+ '@octokit/openapi-webhooks-types@8.3.0': {}
+
+ '@octokit/plugin-paginate-graphql@5.2.4(@octokit/core@6.1.2)':
+ dependencies:
+ '@octokit/core': 6.1.2
+
+ '@octokit/plugin-paginate-rest@11.3.5(@octokit/core@6.1.2)':
+ dependencies:
+ '@octokit/core': 6.1.2
+ '@octokit/types': 13.6.1
+
+ '@octokit/plugin-rest-endpoint-methods@13.2.6(@octokit/core@6.1.2)':
+ dependencies:
+ '@octokit/core': 6.1.2
+ '@octokit/types': 13.6.1
+
+ '@octokit/plugin-retry@7.1.2(@octokit/core@6.1.2)':
+ dependencies:
+ '@octokit/core': 6.1.2
+ '@octokit/request-error': 6.1.5
+ '@octokit/types': 13.6.1
+ bottleneck: 2.19.5
+
+ '@octokit/plugin-throttling@9.3.2(@octokit/core@6.1.2)':
+ dependencies:
+ '@octokit/core': 6.1.2
+ '@octokit/types': 13.6.1
+ bottleneck: 2.19.5
+
+ '@octokit/request-error@6.1.5':
+ dependencies:
+ '@octokit/types': 13.6.1
+
+ '@octokit/request@9.1.3':
+ dependencies:
+ '@octokit/endpoint': 10.1.1
+ '@octokit/request-error': 6.1.5
+ '@octokit/types': 13.6.1
+ universal-user-agent: 7.0.2
+
+ '@octokit/types@13.6.1':
+ dependencies:
+ '@octokit/openapi-types': 22.2.0
+
+ '@octokit/webhooks-methods@5.1.0': {}
+
+ '@octokit/webhooks@13.3.0':
+ dependencies:
+ '@octokit/openapi-webhooks-types': 8.3.0
+ '@octokit/request-error': 6.1.5
+ '@octokit/webhooks-methods': 5.1.0
+
'@popperjs/core@2.11.7': {}
+ '@radix-ui/primitive@1.1.0': {}
+
+ '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-context@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-context@1.1.1(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-dialog@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ aria-hidden: 1.2.4
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+ react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-id@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.2(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/rect': 1.1.0
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-slot@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-tooltip@1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/rect': 1.1.0
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-use-size@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+
+ '@radix-ui/rect@1.1.0': {}
+
'@swc/helpers@0.4.14':
dependencies:
tslib: 2.5.0
- '@theguild/remark-mermaid@0.0.4(react@18.2.0)':
+ '@theguild/remark-mermaid@0.0.4(react@18.3.1)':
dependencies:
mermaid: 10.2.4
- react: 18.2.0
+ react: 18.3.1
unist-util-visit: 5.0.0
transitivePeerDependencies:
- supports-color
@@ -1880,6 +2752,8 @@ snapshots:
dependencies:
'@types/estree': 1.0.1
+ '@types/aws-lambda@8.10.145': {}
+
'@types/debug@4.1.7':
dependencies:
'@types/ms': 0.7.31
@@ -1912,22 +2786,21 @@ snapshots:
'@types/prop-types@15.7.5': {}
- '@types/react-dom@18.0.11':
+ '@types/react-dom@18.3.1':
dependencies:
- '@types/react': 18.0.38
+ '@types/react': 18.3.12
- '@types/react@18.0.38':
+ '@types/react@18.3.12':
dependencies:
'@types/prop-types': 15.7.5
- '@types/scheduler': 0.16.3
csstype: 3.1.2
- '@types/scheduler@0.16.3': {}
-
'@types/unist@2.0.6': {}
'@types/unist@3.0.0': {}
+ '@wolfy1339/lru-cache@11.0.2-patch.1': {}
+
acorn-jsx@5.3.2(acorn@8.8.2):
dependencies:
acorn: 8.8.2
@@ -1959,6 +2832,10 @@ snapshots:
argparse@2.0.1: {}
+ aria-hidden@1.2.4:
+ dependencies:
+ tslib: 2.5.0
+
astring@1.8.4: {}
autoprefixer@10.4.16(postcss@8.4.31):
@@ -1975,8 +2852,12 @@ snapshots:
balanced-match@1.0.2: {}
+ before-after-hook@3.0.2: {}
+
binary-extensions@2.2.0: {}
+ bottleneck@2.19.5: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@@ -2040,6 +2921,8 @@ snapshots:
clsx@1.2.1: {}
+ clsx@2.1.1: {}
+
color-convert@1.9.3:
dependencies:
color-name: 1.1.3
@@ -2264,6 +3147,8 @@ snapshots:
dequal@2.0.3: {}
+ detect-node-es@1.1.0: {}
+
didyoumean@1.2.2: {}
diff@5.1.0: {}
@@ -2355,6 +3240,13 @@ snapshots:
fraction.js@4.3.7: {}
+ framer-motion@11.11.11(react-dom@18.2.0(react@18.3.1))(react@18.3.1):
+ dependencies:
+ tslib: 2.5.0
+ optionalDependencies:
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+
fs.realpath@1.0.0: {}
fsevents@2.3.3:
@@ -2362,6 +3254,8 @@ snapshots:
function-bind@1.1.2: {}
+ get-nonce@1.0.1: {}
+
get-stream@3.0.0: {}
git-up@7.0.0:
@@ -2507,6 +3401,10 @@ snapshots:
intersection-observer@0.12.2: {}
+ invariant@2.2.4:
+ dependencies:
+ loose-envify: 1.4.0
+
is-alphabetical@2.0.1: {}
is-alphanumerical@2.0.1:
@@ -3090,39 +3988,39 @@ snapshots:
nanoid@3.3.6: {}
- next-mdx-remote@4.4.1(react-dom@18.2.0)(react@18.2.0):
+ next-mdx-remote@4.4.1(react-dom@18.2.0(react@18.3.1))(react@18.3.1):
dependencies:
'@mdx-js/mdx': 2.3.0
- '@mdx-js/react': 2.3.0(react@18.2.0)
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ '@mdx-js/react': 2.3.0(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
vfile: 5.3.7
vfile-matter: 3.0.1
transitivePeerDependencies:
- supports-color
- next-seo@6.0.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0):
+ next-seo@6.0.0(next@13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(react-dom@18.2.0(react@18.3.1))(react@18.3.1):
dependencies:
- next: 13.3.0(react-dom@18.2.0)(react@18.2.0)
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ next: 13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
- next-themes@0.2.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0):
+ next-themes@0.2.1(next@13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(react-dom@18.2.0(react@18.3.1))(react@18.3.1):
dependencies:
- next: 13.3.0(react-dom@18.2.0)(react@18.2.0)
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ next: 13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
- next@13.3.0(react-dom@18.2.0)(react@18.2.0):
+ next@13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1):
dependencies:
'@next/env': 13.3.0
'@swc/helpers': 0.4.14
busboy: 1.6.0
caniuse-lite: 1.0.30001481
postcss: 8.4.14
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- styled-jsx: 5.1.1(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
+ styled-jsx: 5.1.1(react@18.3.1)
optionalDependencies:
'@next/swc-darwin-arm64': 13.3.0
'@next/swc-darwin-x64': 13.3.0
@@ -3137,9 +4035,9 @@ snapshots:
- '@babel/core'
- babel-plugin-macros
- nextra-theme-docs@2.10.0(next@13.3.0)(nextra@2.10.0)(react-dom@18.2.0)(react@18.2.0):
+ nextra-theme-docs@2.10.0(next@13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(nextra@2.10.0(next@13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(react-dom@18.2.0(react@18.3.1))(react@18.3.1):
dependencies:
- '@headlessui/react': 1.7.14(react-dom@18.2.0)(react@18.2.0)
+ '@headlessui/react': 1.7.14(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
'@popperjs/core': 2.11.7
clsx: 1.2.1
flexsearch: 0.7.31
@@ -3147,22 +4045,22 @@ snapshots:
git-url-parse: 13.1.0
intersection-observer: 0.12.2
match-sorter: 6.3.1
- next: 13.3.0(react-dom@18.2.0)(react@18.2.0)
- next-seo: 6.0.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0)
- next-themes: 0.2.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0)
- nextra: 2.10.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0)
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ next: 13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ next-seo: 6.0.0(next@13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ next-themes: 0.2.1(next@13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ nextra: 2.10.0(next@13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
scroll-into-view-if-needed: 3.0.10
zod: 3.21.4
- nextra@2.10.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0):
+ nextra@2.10.0(next@13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1))(react-dom@18.2.0(react@18.3.1))(react@18.3.1):
dependencies:
- '@headlessui/react': 1.7.14(react-dom@18.2.0)(react@18.2.0)
+ '@headlessui/react': 1.7.14(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
'@mdx-js/mdx': 2.3.0
- '@mdx-js/react': 2.3.0(react@18.2.0)
+ '@mdx-js/react': 2.3.0(react@18.3.1)
'@napi-rs/simple-git': 0.1.8
- '@theguild/remark-mermaid': 0.0.4(react@18.2.0)
+ '@theguild/remark-mermaid': 0.0.4(react@18.3.1)
'@theguild/remark-npm2yarn': 0.1.1
clsx: 1.2.1
github-slugger: 2.0.0
@@ -3170,11 +4068,11 @@ snapshots:
gray-matter: 4.0.3
katex: 0.16.8
lodash.get: 4.4.2
- next: 13.3.0(react-dom@18.2.0)(react@18.2.0)
- next-mdx-remote: 4.4.1(react-dom@18.2.0)(react@18.2.0)
+ next: 13.3.0(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
+ next-mdx-remote: 4.4.1(react-dom@18.2.0(react@18.3.1))(react@18.3.1)
p-limit: 3.1.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
+ react: 18.3.1
+ react-dom: 18.2.0(react@18.3.1)
rehype-katex: 6.0.3
rehype-pretty-code: 0.9.11(shiki@0.14.3)
remark-gfm: 3.0.1
@@ -3207,6 +4105,19 @@ snapshots:
object-hash@3.0.0: {}
+ octokit@4.0.2:
+ dependencies:
+ '@octokit/app': 15.1.0
+ '@octokit/core': 6.1.2
+ '@octokit/oauth-app': 7.1.3
+ '@octokit/plugin-paginate-graphql': 5.2.4(@octokit/core@6.1.2)
+ '@octokit/plugin-paginate-rest': 11.3.5(@octokit/core@6.1.2)
+ '@octokit/plugin-rest-endpoint-methods': 13.2.6(@octokit/core@6.1.2)
+ '@octokit/plugin-retry': 7.1.2(@octokit/core@6.1.2)
+ '@octokit/plugin-throttling': 9.3.2(@octokit/core@6.1.2)
+ '@octokit/request-error': 6.1.5
+ '@octokit/types': 13.6.1
+
once@1.4.0:
dependencies:
wrappy: 1.0.2
@@ -3277,8 +4188,9 @@ snapshots:
postcss-load-config@4.0.1(postcss@8.4.31):
dependencies:
lilconfig: 2.1.0
- postcss: 8.4.31
yaml: 2.3.4
+ optionalDependencies:
+ postcss: 8.4.31
postcss-nested@6.0.1(postcss@8.4.31):
dependencies:
@@ -3312,13 +4224,41 @@ snapshots:
queue-microtask@1.2.3: {}
- react-dom@18.2.0(react@18.2.0):
+ react-dom@18.2.0(react@18.3.1):
dependencies:
loose-envify: 1.4.0
- react: 18.2.0
+ react: 18.3.1
scheduler: 0.23.0
- react@18.2.0:
+ react-remove-scroll-bar@2.3.6(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-style-singleton: 2.2.1(@types/react@18.3.12)(react@18.3.1)
+ tslib: 2.5.0
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ react-remove-scroll@2.6.0(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-remove-scroll-bar: 2.3.6(@types/react@18.3.12)(react@18.3.1)
+ react-style-singleton: 2.2.1(@types/react@18.3.12)(react@18.3.1)
+ tslib: 2.5.0
+ use-callback-ref: 1.3.2(@types/react@18.3.12)(react@18.3.1)
+ use-sidecar: 1.1.2(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ react-style-singleton@2.2.1(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ get-nonce: 1.0.1
+ invariant: 2.2.4
+ react: 18.3.1
+ tslib: 2.5.0
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -3478,10 +4418,10 @@ snapshots:
dependencies:
inline-style-parser: 0.1.1
- styled-jsx@5.1.1(react@18.2.0):
+ styled-jsx@5.1.1(react@18.3.1):
dependencies:
client-only: 0.0.1
- react: 18.2.0
+ react: 18.3.1
stylis@4.3.0: {}
@@ -3648,12 +4588,31 @@ snapshots:
unist-util-is: 6.0.0
unist-util-visit-parents: 6.0.1
+ universal-github-app-jwt@2.2.0: {}
+
+ universal-user-agent@7.0.2: {}
+
update-browserslist-db@1.0.13(browserslist@4.22.1):
dependencies:
browserslist: 4.22.1
escalade: 3.1.1
picocolors: 1.0.0
+ use-callback-ref@1.3.2(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ tslib: 2.5.0
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-sidecar@1.1.2(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ detect-node-es: 1.1.0
+ react: 18.3.1
+ tslib: 2.5.0
+ optionalDependencies:
+ '@types/react': 18.3.12
+
util-deprecate@1.0.2: {}
uuid@9.0.0: {}
diff --git a/docs/public/basier-medium.otf b/docs/public/basier-medium.otf
deleted file mode 100644
index 32326f4d50..0000000000
Binary files a/docs/public/basier-medium.otf and /dev/null differ
diff --git a/docs/public/ecosystem/bg/aethersands.png b/docs/public/ecosystem/bg/aethersands.png
new file mode 100644
index 0000000000..00e043d92a
Binary files /dev/null and b/docs/public/ecosystem/bg/aethersands.png differ
diff --git a/docs/public/ecosystem/bg/awakening.png b/docs/public/ecosystem/bg/awakening.png
new file mode 100644
index 0000000000..e9479f1b48
Binary files /dev/null and b/docs/public/ecosystem/bg/awakening.png differ
diff --git a/docs/public/ecosystem/bg/battle-blockchain.jpeg b/docs/public/ecosystem/bg/battle-blockchain.jpeg
new file mode 100644
index 0000000000..4236c78c2e
Binary files /dev/null and b/docs/public/ecosystem/bg/battle-blockchain.jpeg differ
diff --git a/docs/public/ecosystem/bg/cafe-cosmos.jpeg b/docs/public/ecosystem/bg/cafe-cosmos.jpeg
new file mode 100644
index 0000000000..6016c7164f
Binary files /dev/null and b/docs/public/ecosystem/bg/cafe-cosmos.jpeg differ
diff --git a/docs/public/ecosystem/bg/chaquer.png b/docs/public/ecosystem/bg/chaquer.png
new file mode 100644
index 0000000000..ea37ad27b7
Binary files /dev/null and b/docs/public/ecosystem/bg/chaquer.png differ
diff --git a/docs/public/ecosystem/bg/dappmon.jpeg b/docs/public/ecosystem/bg/dappmon.jpeg
new file mode 100644
index 0000000000..532d8c4411
Binary files /dev/null and b/docs/public/ecosystem/bg/dappmon.jpeg differ
diff --git a/docs/public/ecosystem/bg/dear.png b/docs/public/ecosystem/bg/dear.png
new file mode 100644
index 0000000000..83f71a8c4f
Binary files /dev/null and b/docs/public/ecosystem/bg/dear.png differ
diff --git a/docs/public/ecosystem/bg/drawtech.png b/docs/public/ecosystem/bg/drawtech.png
new file mode 100644
index 0000000000..28242d8716
Binary files /dev/null and b/docs/public/ecosystem/bg/drawtech.png differ
diff --git a/docs/public/ecosystem/bg/eve-frontier.jpg b/docs/public/ecosystem/bg/eve-frontier.jpg
new file mode 100644
index 0000000000..fa6c0e68b6
Binary files /dev/null and b/docs/public/ecosystem/bg/eve-frontier.jpg differ
diff --git a/docs/public/ecosystem/bg/everlon.png b/docs/public/ecosystem/bg/everlon.png
new file mode 100644
index 0000000000..da637ed81a
Binary files /dev/null and b/docs/public/ecosystem/bg/everlon.png differ
diff --git a/docs/public/ecosystem/bg/for-kingdom.jpeg b/docs/public/ecosystem/bg/for-kingdom.jpeg
new file mode 100644
index 0000000000..8147700e02
Binary files /dev/null and b/docs/public/ecosystem/bg/for-kingdom.jpeg differ
diff --git a/docs/public/ecosystem/bg/geoweb.png b/docs/public/ecosystem/bg/geoweb.png
new file mode 100644
index 0000000000..4e8f55e743
Binary files /dev/null and b/docs/public/ecosystem/bg/geoweb.png differ
diff --git a/docs/public/ecosystem/bg/imminentsolace.png b/docs/public/ecosystem/bg/imminentsolace.png
new file mode 100644
index 0000000000..b6fa8e0cee
Binary files /dev/null and b/docs/public/ecosystem/bg/imminentsolace.png differ
diff --git a/docs/public/ecosystem/bg/kamigotchi.png b/docs/public/ecosystem/bg/kamigotchi.png
new file mode 100644
index 0000000000..764880a1c8
Binary files /dev/null and b/docs/public/ecosystem/bg/kamigotchi.png differ
diff --git a/docs/public/ecosystem/bg/opcraft.jpg b/docs/public/ecosystem/bg/opcraft.jpg
new file mode 100644
index 0000000000..73dfab0984
Binary files /dev/null and b/docs/public/ecosystem/bg/opcraft.jpg differ
diff --git a/docs/public/ecosystem/bg/opcraft.png b/docs/public/ecosystem/bg/opcraft.png
new file mode 100644
index 0000000000..5a32756a5f
Binary files /dev/null and b/docs/public/ecosystem/bg/opcraft.png differ
diff --git a/docs/public/ecosystem/bg/popcraft.png b/docs/public/ecosystem/bg/popcraft.png
new file mode 100644
index 0000000000..fe6774b497
Binary files /dev/null and b/docs/public/ecosystem/bg/popcraft.png differ
diff --git a/docs/public/ecosystem/bg/primodium.png b/docs/public/ecosystem/bg/primodium.png
new file mode 100644
index 0000000000..68de23ca0b
Binary files /dev/null and b/docs/public/ecosystem/bg/primodium.png differ
diff --git a/docs/public/ecosystem/bg/project-mirage.jpeg b/docs/public/ecosystem/bg/project-mirage.jpeg
new file mode 100644
index 0000000000..415a5a36ab
Binary files /dev/null and b/docs/public/ecosystem/bg/project-mirage.jpeg differ
diff --git a/docs/public/ecosystem/bg/thiscursedmachine.png b/docs/public/ecosystem/bg/thiscursedmachine.png
new file mode 100644
index 0000000000..e03ce86e0b
Binary files /dev/null and b/docs/public/ecosystem/bg/thiscursedmachine.png differ
diff --git a/docs/public/ecosystem/bg/words3.png b/docs/public/ecosystem/bg/words3.png
new file mode 100644
index 0000000000..16ef876f01
Binary files /dev/null and b/docs/public/ecosystem/bg/words3.png differ
diff --git a/docs/public/ecosystem/bg/yonk.png b/docs/public/ecosystem/bg/yonk.png
new file mode 100644
index 0000000000..1434bdef00
Binary files /dev/null and b/docs/public/ecosystem/bg/yonk.png differ
diff --git a/docs/public/ecosystem/bg/zuse.png b/docs/public/ecosystem/bg/zuse.png
new file mode 100644
index 0000000000..512838dce5
Binary files /dev/null and b/docs/public/ecosystem/bg/zuse.png differ
diff --git a/docs/public/ecosystem/icons/aethersands.png b/docs/public/ecosystem/icons/aethersands.png
new file mode 100644
index 0000000000..eca5b4b777
Binary files /dev/null and b/docs/public/ecosystem/icons/aethersands.png differ
diff --git a/docs/public/ecosystem/icons/awakening.png b/docs/public/ecosystem/icons/awakening.png
new file mode 100644
index 0000000000..86e6611103
Binary files /dev/null and b/docs/public/ecosystem/icons/awakening.png differ
diff --git a/docs/public/ecosystem/icons/battle-blockchain.png b/docs/public/ecosystem/icons/battle-blockchain.png
new file mode 100644
index 0000000000..261092d19f
Binary files /dev/null and b/docs/public/ecosystem/icons/battle-blockchain.png differ
diff --git a/docs/public/ecosystem/icons/biomes.png b/docs/public/ecosystem/icons/biomes.png
new file mode 100644
index 0000000000..5f059462fa
Binary files /dev/null and b/docs/public/ecosystem/icons/biomes.png differ
diff --git a/docs/public/ecosystem/icons/cafe-cosmos.png b/docs/public/ecosystem/icons/cafe-cosmos.png
new file mode 100644
index 0000000000..b42ddb2ca8
Binary files /dev/null and b/docs/public/ecosystem/icons/cafe-cosmos.png differ
diff --git a/docs/public/ecosystem/icons/chaquer.png b/docs/public/ecosystem/icons/chaquer.png
new file mode 100644
index 0000000000..abf22b2264
Binary files /dev/null and b/docs/public/ecosystem/icons/chaquer.png differ
diff --git a/docs/public/ecosystem/icons/dappmon.jpg b/docs/public/ecosystem/icons/dappmon.jpg
new file mode 100644
index 0000000000..c9246df300
Binary files /dev/null and b/docs/public/ecosystem/icons/dappmon.jpg differ
diff --git a/docs/public/ecosystem/icons/dear.png b/docs/public/ecosystem/icons/dear.png
new file mode 100644
index 0000000000..6e1cfb239e
Binary files /dev/null and b/docs/public/ecosystem/icons/dear.png differ
diff --git a/docs/public/ecosystem/icons/drawtech.png b/docs/public/ecosystem/icons/drawtech.png
new file mode 100644
index 0000000000..5401d323f3
Binary files /dev/null and b/docs/public/ecosystem/icons/drawtech.png differ
diff --git a/docs/public/ecosystem/icons/eve-frontier.jpg b/docs/public/ecosystem/icons/eve-frontier.jpg
new file mode 100644
index 0000000000..a7f7985e3f
Binary files /dev/null and b/docs/public/ecosystem/icons/eve-frontier.jpg differ
diff --git a/docs/public/ecosystem/icons/everlon.png b/docs/public/ecosystem/icons/everlon.png
new file mode 100644
index 0000000000..96cd0ee64c
Binary files /dev/null and b/docs/public/ecosystem/icons/everlon.png differ
diff --git a/docs/public/ecosystem/icons/for-kingdom.png b/docs/public/ecosystem/icons/for-kingdom.png
new file mode 100644
index 0000000000..b10ebd0857
Binary files /dev/null and b/docs/public/ecosystem/icons/for-kingdom.png differ
diff --git a/docs/public/ecosystem/icons/gaul.png b/docs/public/ecosystem/icons/gaul.png
new file mode 100644
index 0000000000..a0e4c8e1e9
Binary files /dev/null and b/docs/public/ecosystem/icons/gaul.png differ
diff --git a/docs/public/ecosystem/icons/geoweb.png b/docs/public/ecosystem/icons/geoweb.png
new file mode 100644
index 0000000000..b1fa20ff91
Binary files /dev/null and b/docs/public/ecosystem/icons/geoweb.png differ
diff --git a/docs/public/ecosystem/icons/imminentsolace.png b/docs/public/ecosystem/icons/imminentsolace.png
new file mode 100644
index 0000000000..34f0537df6
Binary files /dev/null and b/docs/public/ecosystem/icons/imminentsolace.png differ
diff --git a/docs/public/ecosystem/icons/kamigotchi.png b/docs/public/ecosystem/icons/kamigotchi.png
new file mode 100644
index 0000000000..e95ae99e71
Binary files /dev/null and b/docs/public/ecosystem/icons/kamigotchi.png differ
diff --git a/docs/public/ecosystem/icons/mississippi.png b/docs/public/ecosystem/icons/mississippi.png
new file mode 100644
index 0000000000..95d9b0b7d8
Binary files /dev/null and b/docs/public/ecosystem/icons/mississippi.png differ
diff --git a/docs/public/ecosystem/icons/networkstates.png b/docs/public/ecosystem/icons/networkstates.png
new file mode 100644
index 0000000000..0389104ce8
Binary files /dev/null and b/docs/public/ecosystem/icons/networkstates.png differ
diff --git a/docs/public/ecosystem/icons/opcraft.png b/docs/public/ecosystem/icons/opcraft.png
new file mode 100644
index 0000000000..b76b9a0ac5
Binary files /dev/null and b/docs/public/ecosystem/icons/opcraft.png differ
diff --git a/docs/public/ecosystem/icons/pixelaw.jpg b/docs/public/ecosystem/icons/pixelaw.jpg
new file mode 100644
index 0000000000..dadc7bfcf5
Binary files /dev/null and b/docs/public/ecosystem/icons/pixelaw.jpg differ
diff --git a/docs/public/ecosystem/icons/popcraft.jpg b/docs/public/ecosystem/icons/popcraft.jpg
new file mode 100644
index 0000000000..782ecc1a2d
Binary files /dev/null and b/docs/public/ecosystem/icons/popcraft.jpg differ
diff --git a/docs/public/ecosystem/icons/primodium.jpg b/docs/public/ecosystem/icons/primodium.jpg
new file mode 100644
index 0000000000..6e3761bd4f
Binary files /dev/null and b/docs/public/ecosystem/icons/primodium.jpg differ
diff --git a/docs/public/ecosystem/icons/project-mirage.jpg b/docs/public/ecosystem/icons/project-mirage.jpg
new file mode 100644
index 0000000000..2010ecb789
Binary files /dev/null and b/docs/public/ecosystem/icons/project-mirage.jpg differ
diff --git a/docs/public/ecosystem/icons/thiscursedmachine.png b/docs/public/ecosystem/icons/thiscursedmachine.png
new file mode 100644
index 0000000000..a55ff6512a
Binary files /dev/null and b/docs/public/ecosystem/icons/thiscursedmachine.png differ
diff --git a/docs/public/ecosystem/icons/words3.png b/docs/public/ecosystem/icons/words3.png
new file mode 100644
index 0000000000..e9633ab272
Binary files /dev/null and b/docs/public/ecosystem/icons/words3.png differ
diff --git a/docs/public/ecosystem/icons/yonk.png b/docs/public/ecosystem/icons/yonk.png
new file mode 100644
index 0000000000..cdb660190f
Binary files /dev/null and b/docs/public/ecosystem/icons/yonk.png differ
diff --git a/docs/public/ecosystem/icons/zuse.png b/docs/public/ecosystem/icons/zuse.png
new file mode 100644
index 0000000000..872b88bb51
Binary files /dev/null and b/docs/public/ecosystem/icons/zuse.png differ
diff --git a/docs/public/basier-bold.otf b/docs/public/fonts/BasierCircle-Bold.otf
similarity index 100%
rename from docs/public/basier-bold.otf
rename to docs/public/fonts/BasierCircle-Bold.otf
diff --git a/docs/public/basier-regular.otf b/docs/public/fonts/BasierCircle-Regular.otf
similarity index 100%
rename from docs/public/basier-regular.otf
rename to docs/public/fonts/BasierCircle-Regular.otf
diff --git a/docs/public/basier-semibold.otf b/docs/public/fonts/BasierCircle-SemiBold.otf
similarity index 100%
rename from docs/public/basier-semibold.otf
rename to docs/public/fonts/BasierCircle-SemiBold.otf
diff --git a/docs/public/fonts/BerkeleyMono-Regular.otf b/docs/public/fonts/BerkeleyMono-Regular.otf
new file mode 100644
index 0000000000..8090edd32d
Binary files /dev/null and b/docs/public/fonts/BerkeleyMono-Regular.otf differ
diff --git a/docs/public/images/diagrams/mud.svg b/docs/public/images/diagrams/mud.svg
new file mode 100644
index 0000000000..9ff6f16542
--- /dev/null
+++ b/docs/public/images/diagrams/mud.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/public/images/diagrams/swi.svg b/docs/public/images/diagrams/swi.svg
new file mode 100644
index 0000000000..f3b37e4719
--- /dev/null
+++ b/docs/public/images/diagrams/swi.svg
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/public/images/icons/clipboard.svg b/docs/public/images/icons/clipboard.svg
new file mode 100644
index 0000000000..adfa29d78d
--- /dev/null
+++ b/docs/public/images/icons/clipboard.svg
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/docs/public/images/icons/discord.svg b/docs/public/images/icons/discord.svg
new file mode 100644
index 0000000000..7e6720b1f5
--- /dev/null
+++ b/docs/public/images/icons/discord.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/public/images/icons/github.svg b/docs/public/images/icons/github.svg
new file mode 100644
index 0000000000..02f84f42ed
--- /dev/null
+++ b/docs/public/images/icons/github.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/public/images/icons/magazine.svg b/docs/public/images/icons/magazine.svg
new file mode 100644
index 0000000000..221836bb99
--- /dev/null
+++ b/docs/public/images/icons/magazine.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/public/images/icons/play.svg b/docs/public/images/icons/play.svg
new file mode 100644
index 0000000000..abd779a545
--- /dev/null
+++ b/docs/public/images/icons/play.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/docs/public/images/icons/twitter.svg b/docs/public/images/icons/twitter.svg
new file mode 100644
index 0000000000..44d1b41752
--- /dev/null
+++ b/docs/public/images/icons/twitter.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/docs/public/images/icons/youtube.svg b/docs/public/images/icons/youtube.svg
new file mode 100644
index 0000000000..f53273f032
--- /dev/null
+++ b/docs/public/images/icons/youtube.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/docs/public/images/logos/mud-transparent.svg b/docs/public/images/logos/mud-transparent.svg
new file mode 100644
index 0000000000..7c50905b11
--- /dev/null
+++ b/docs/public/images/logos/mud-transparent.svg
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/public/images/mud-video-thumbnail.jpg b/docs/public/images/mud-video-thumbnail.jpg
new file mode 100644
index 0000000000..15105434d4
Binary files /dev/null and b/docs/public/images/mud-video-thumbnail.jpg differ
diff --git a/docs/styles.css b/docs/styles.css
deleted file mode 100644
index b42b6dd855..0000000000
--- a/docs/styles.css
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Add fonts to workspace */
-@font-face {
- font-family: "PP Supply Mono";
- src: url("/pp-mono.otf");
-}
-
-@font-face {
- font-family: "Basier Circle";
- src: url("/basier-bold.otf");
- font-weight: bold;
-}
-
-@font-face {
- font-family: "Basier Circle";
- src: url("/basier-semibold.otf");
- font-weight: 600;
-}
-
-@font-face {
- font-family: "Basier Circle";
- src: url("/basier-medium.otf");
- font-weight: 500;
-}
-
-@font-face {
- font-family: "Basier Circle";
- src: url("/basier-regular.otf");
- font-weight: 400;
-}
-
-/* Skin headings */
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-family: "PP Supply Mono";
- text-transform: uppercase;
-}
-
-/* Skin body */
-
-p,
-a {
- /* font-family: "Basier Circle"; */
-}
-
-/* Skin sidebar fonts */
-.nextra-sidebar-container {
- font-family: "PP Supply Mono";
- text-transform: uppercase;
-}
-.nextra-sidebar-container a,
-.nextra-sidebar-container button {
- /* font-family: "Basier Circle"; */
- text-transform: none;
-}
diff --git a/docs/tailwind.config.ts b/docs/tailwind.config.ts
index 5fce4f12a9..6b32ad1a20 100644
--- a/docs/tailwind.config.ts
+++ b/docs/tailwind.config.ts
@@ -1,15 +1,32 @@
import type { Config } from "tailwindcss";
const config: Config = {
- content: ["./app/**/*.{js,ts,jsx,tsx,mdx}", "./pages/**/*.{js,ts,jsx,tsx,mdx}", "./src/**/*.{js,ts,jsx,tsx,mdx}"],
+ content: [
+ "./pages/**/*.{js,ts,jsx,tsx,mdx}",
+ "./components/**/*.{js,ts,jsx,tsx,mdx}",
+ "./app/**/*.{js,ts,jsx,tsx,mdx}",
+ "./src/**/*.{js,ts,jsx,tsx,mdx}",
+ ],
theme: {
extend: {
fontFamily: {
+ sans: ["var(--font-basier-circle)"],
mono: ["var(--font-supply-mono)"],
+ "mono-secondary": ["var(--font-berkeley-mono)"],
+ },
+ fontSize: {
+ // TODO: set based on media queries
+ xs: ["14px", "20px"],
+ sm: ["18px", "24px"],
+ md: ["22px", "31px"],
+ lg: ["25px", "35px"],
+ xl: ["33px", "40px"],
+ "2xl": ["44px", "54px"],
},
colors: {
- // #FF7612
- mud: "rgb(255, 118, 18)",
+ mud: "#ff7612",
+ "mud-dark": "#e56a10",
+ "light-gray": "#1a1a1a",
},
},
},
diff --git a/docs/theme.config.tsx b/docs/theme.config.tsx
index eab3804e31..3085ab3781 100644
--- a/docs/theme.config.tsx
+++ b/docs/theme.config.tsx
@@ -24,7 +24,7 @@ const config: DocsThemeConfig = {
defaultTheme: "dark",
},
footer: {
- text: "MIT 2023 © MUD",
+ text: "MIT 2024 © MUD",
},
primaryHue: 28,
sidebar: {
diff --git a/scripts/changelog.ts b/scripts/changelog.ts
index 3dbc23f14f..b7bf5add65 100644
--- a/scripts/changelog.ts
+++ b/scripts/changelog.ts
@@ -13,6 +13,7 @@ import { globSync } from "glob";
const REPO_URL = process.env.REPO_URL ?? "https://github.com/latticexyz/mud";
const CHANGELOG_PATH = process.env.CHANGELOG_PATH ?? "CHANGELOG.md";
const CHANGELOG_DOCS_PATH = process.env.CHANGELOG_DOCS_PATH ?? "docs/pages/changelog.mdx";
+const CHANGELOG_JSON_PATH = process.env.CHANGELOG_JSON_PATH ?? "docs/data/changelog.json";
const VERSION_PATH = process.env.VERSION_PATH ?? path.join(process.cwd(), "packages/world/package.json");
const INCLUDE_CHANGESETS = (process.env.INCLUDE_CHANGESETS as "diff" | "all") ?? "diff"; // "diff" to only include new changesets, "all" to use all changesets
@@ -28,6 +29,16 @@ const changeTypes = {
major: ChangeType.MAJOR,
} as const;
+type ChangelogEntry = {
+ version: string;
+ date: Date;
+ changes: {
+ patch: (ChangelogItem & GitMetadata)[];
+ minor: (ChangelogItem & GitMetadata)[];
+ major: (ChangelogItem & GitMetadata)[];
+ };
+};
+
type ChangelogItem = {
packages: {
package: string;
@@ -45,6 +56,7 @@ type GitMetadata = {
};
await appendChangelog();
+await appendChangelogJSON();
//----------- UTILS
@@ -57,10 +69,38 @@ async function appendChangelog() {
// Append the new changelog at the up
const newChangelog = await renderChangelog();
+
writeFileSync(CHANGELOG_PATH, `${newChangelog}\n${currentChangelog}`);
writeFileSync(CHANGELOG_DOCS_PATH, `${newChangelog}\n${currentChangelog}`);
}
+async function appendChangelogJSON() {
+ // Reset current changelog to version on main
+ await execa("git", ["checkout", "main", "--", CHANGELOG_PATH]);
+
+ const changes = await getChanges(INCLUDE_CHANGESETS);
+ const version = await getVersion();
+ const date = new Date();
+
+ // Read existing JSON file if it exists
+ let existingData: ChangelogEntry[] = [];
+ try {
+ const existingContent = readFileSync(CHANGELOG_JSON_PATH, "utf8");
+ existingData = JSON.parse(existingContent);
+ } catch (error) {
+ existingData = [];
+ }
+
+ const existingIndex = existingData.findIndex((entry) => entry.version === version);
+ if (existingIndex !== -1) {
+ existingData[existingIndex] = { version, date, changes };
+ } else {
+ existingData.unshift({ version, date, changes });
+ }
+
+ writeFileSync(CHANGELOG_JSON_PATH, JSON.stringify(existingData, null, 2));
+}
+
async function renderChangelog() {
const changes = await getChanges(INCLUDE_CHANGESETS);
const version = await getVersion();