diff --git a/.changeset/cool-maps-exist.md b/.changeset/cool-maps-exist.md new file mode 100644 index 0000000..ca171d9 --- /dev/null +++ b/.changeset/cool-maps-exist.md @@ -0,0 +1,6 @@ +--- +"@macalinao/zod-solana": patch +"@macalinao/grill": patch +--- + +support isolated declarations in zod-solana diff --git a/apps/example-dapp/biome.jsonc b/apps/example-dapp/biome.jsonc index 9bc2e02..33cde9c 100644 --- a/apps/example-dapp/biome.jsonc +++ b/apps/example-dapp/biome.jsonc @@ -1,7 +1,7 @@ { "root": false, - "$schema": "https://biomejs.dev/schemas/2.2.7/schema.json", - "extends": "//", + "$schema": "https://biomejs.dev/schemas/2.3.0/schema.json", + "extends": ["@macalinao/biome-config/base", "@macalinao/biome-config/react"], "linter": { "domains": { "react": "recommended" @@ -31,6 +31,29 @@ "formatter": { "enabled": false } + }, + { + "includes": ["src/routes/**/*.tsx"], + "linter": { + "rules": { + "style": { + "useComponentExportOnlyModules": "off" + } + } + } + }, + { + "includes": [ + "src/components/ui/sidebar.tsx", + "src/components/theme-provider.tsx" + ], + "linter": { + "rules": { + "style": { + "useComponentExportOnlyModules": "off" + } + } + } } ] } diff --git a/apps/example-dapp/package.json b/apps/example-dapp/package.json index 8e0bde8..f80e7ac 100644 --- a/apps/example-dapp/package.json +++ b/apps/example-dapp/package.json @@ -61,6 +61,7 @@ }, "devDependencies": { "@eslint/js": "^9.38.0", + "@macalinao/biome-config": "^0.1.4", "@macalinao/eslint-config": "catalog:", "@macalinao/grill": "workspace:^", "@macalinao/tsconfig": "catalog:", diff --git a/apps/example-dapp/src/components/theme-provider.tsx b/apps/example-dapp/src/components/theme-provider.tsx index 9680567..b567fd7 100644 --- a/apps/example-dapp/src/components/theme-provider.tsx +++ b/apps/example-dapp/src/components/theme-provider.tsx @@ -1,7 +1,7 @@ import type * as React from "react"; -import { createContext, useContext, useEffect, useState } from "react"; - -type Theme = "dark" | "light" | "system"; +import type { Theme } from "~/hooks/use-theme"; +import { useEffect, useState } from "react"; +import { ThemeProviderContext } from "~/hooks/use-theme"; interface ThemeProviderProps { children: React.ReactNode; @@ -9,18 +9,6 @@ interface ThemeProviderProps { storageKey?: string; } -interface ThemeProviderState { - theme: Theme; - setTheme: (theme: Theme) => void; -} - -const initialState: ThemeProviderState = { - theme: "system", - setTheme: () => null, -}; - -const ThemeProviderContext = createContext(initialState); - export const ThemeProvider: React.FC = ({ children, defaultTheme = "system", @@ -63,9 +51,3 @@ export const ThemeProvider: React.FC = ({ ); }; - -// eslint-disable-next-line react-refresh/only-export-components -export const useTheme = (): ThemeProviderState => { - const context = useContext(ThemeProviderContext); - return context; -}; diff --git a/apps/example-dapp/src/components/theme-toggle.tsx b/apps/example-dapp/src/components/theme-toggle.tsx index 8d7952b..953508c 100644 --- a/apps/example-dapp/src/components/theme-toggle.tsx +++ b/apps/example-dapp/src/components/theme-toggle.tsx @@ -1,7 +1,7 @@ import type * as React from "react"; import { Moon, Sun } from "lucide-react"; -import { useTheme } from "@/components/theme-provider"; import { Button } from "@/components/ui/button"; +import { useTheme } from "@/hooks/use-theme"; export const ThemeToggle: React.FC = () => { const { theme, setTheme } = useTheme(); diff --git a/apps/example-dapp/src/components/ui/button-variants.ts b/apps/example-dapp/src/components/ui/button-variants.ts new file mode 100644 index 0000000..76ecae6 --- /dev/null +++ b/apps/example-dapp/src/components/ui/button-variants.ts @@ -0,0 +1,32 @@ +import { cva } from "class-variance-authority"; + +export const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90", + destructive: + "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", + outline: + "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", + secondary: + "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80", + ghost: + "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2 has-[>svg]:px-3", + sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5", + lg: "h-10 rounded-md px-6 has-[>svg]:px-4", + icon: "size-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + }, +); diff --git a/apps/example-dapp/src/components/ui/button.tsx b/apps/example-dapp/src/components/ui/button.tsx index c3521b3..e832b6e 100644 --- a/apps/example-dapp/src/components/ui/button.tsx +++ b/apps/example-dapp/src/components/ui/button.tsx @@ -1,39 +1,8 @@ import type { VariantProps } from "class-variance-authority"; import type * as React from "react"; import { Slot } from "@radix-ui/react-slot"; -import { cva } from "class-variance-authority"; import { cn } from "@/lib/utils"; - -const buttonVariants = cva( - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", - { - variants: { - variant: { - default: - "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90", - destructive: - "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", - outline: - "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", - secondary: - "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80", - ghost: - "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", - link: "text-primary underline-offset-4 hover:underline", - }, - size: { - default: "h-9 px-4 py-2 has-[>svg]:px-3", - sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5", - lg: "h-10 rounded-md px-6 has-[>svg]:px-4", - icon: "size-9", - }, - }, - defaultVariants: { - variant: "default", - size: "default", - }, - }, -); +import { buttonVariants } from "./button-variants"; function Button({ className, @@ -56,5 +25,4 @@ function Button({ ); } -// eslint-disable-next-line react-refresh/only-export-components -export { Button, buttonVariants }; +export { Button }; diff --git a/apps/example-dapp/src/components/ui/sidebar.tsx b/apps/example-dapp/src/components/ui/sidebar.tsx index dd77556..76e6d58 100644 --- a/apps/example-dapp/src/components/ui/sidebar.tsx +++ b/apps/example-dapp/src/components/ui/sidebar.tsx @@ -30,7 +30,7 @@ const SIDEBAR_WIDTH_MOBILE = "18rem"; const SIDEBAR_WIDTH_ICON = "3rem"; const SIDEBAR_KEYBOARD_SHORTCUT = "b"; -interface SidebarContextProps { +export interface SidebarContextProps { state: "expanded" | "collapsed"; open: boolean; setOpen: (open: boolean) => void; @@ -40,7 +40,10 @@ interface SidebarContextProps { toggleSidebar: () => void; } -const SidebarContext = React.createContext(null); +// eslint-disable-next-line react-refresh/only-export-components +export const SidebarContext = React.createContext( + null, +); function useSidebar() { const context = React.useContext(SidebarContext); diff --git a/apps/example-dapp/src/hooks/use-theme.ts b/apps/example-dapp/src/hooks/use-theme.ts new file mode 100644 index 0000000..d356ba2 --- /dev/null +++ b/apps/example-dapp/src/hooks/use-theme.ts @@ -0,0 +1,21 @@ +import { createContext, useContext } from "react"; + +export type Theme = "dark" | "light" | "system"; + +export interface ThemeProviderState { + theme: Theme; + setTheme: (theme: Theme) => void; +} + +const initialState: ThemeProviderState = { + theme: "system", + setTheme: () => null, +}; + +export const ThemeProviderContext = + createContext(initialState); + +export const useTheme = (): ThemeProviderState => { + const context = useContext(ThemeProviderContext); + return context; +}; diff --git a/biome.jsonc b/biome.jsonc index 533de27..466a800 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -1,4 +1,4 @@ { - "$schema": "https://biomejs.dev/schemas/2.2.7/schema.json", + "$schema": "https://biomejs.dev/schemas/2.3.0/schema.json", "extends": ["@macalinao/biome-config/base"] } diff --git a/bun.lock b/bun.lock index 741ef42..62abe37 100644 --- a/bun.lock +++ b/bun.lock @@ -4,9 +4,9 @@ "": { "name": "@macalinao/grill-monorepo", "devDependencies": { - "@biomejs/biome": "^2.2.7", + "@biomejs/biome": "^2.3.0", "@changesets/cli": "^2.29.7", - "@macalinao/biome-config": "^0.1.2", + "@macalinao/biome-config": "^0.1.4", "eslint": "^9.38.0", "husky": "^9.1.7", "lint-staged": "^16.2.6", @@ -51,6 +51,7 @@ }, "devDependencies": { "@eslint/js": "^9.38.0", + "@macalinao/biome-config": "^0.1.4", "@macalinao/eslint-config": "catalog:", "@macalinao/grill": "workspace:^", "@macalinao/tsconfig": "catalog:", @@ -282,9 +283,9 @@ }, "catalog": { "@gillsdk/react": "^0.6.0", - "@macalinao/eslint-config": "^7.0.0", - "@macalinao/eslint-config-react": "^6.0.0", - "@macalinao/tsconfig": "^3.2.3", + "@macalinao/eslint-config": "^7.0.1", + "@macalinao/eslint-config-react": "^6.0.2", + "@macalinao/tsconfig": "^3.2.4", "@solana/kit": "^3.0.3", "@solana/wallet-adapter-base": "^0.9.27", "@solana/wallet-adapter-react": "^0.15.39", @@ -396,23 +397,23 @@ "@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], - "@biomejs/biome": ["@biomejs/biome@2.2.7", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.2.7", "@biomejs/cli-darwin-x64": "2.2.7", "@biomejs/cli-linux-arm64": "2.2.7", "@biomejs/cli-linux-arm64-musl": "2.2.7", "@biomejs/cli-linux-x64": "2.2.7", "@biomejs/cli-linux-x64-musl": "2.2.7", "@biomejs/cli-win32-arm64": "2.2.7", "@biomejs/cli-win32-x64": "2.2.7" }, "bin": { "biome": "bin/biome" } }, "sha512-1a8j0UP1vXVUf3UzMZEJ/zS2VgAG6wU6Cuh/I764sUGI+MCnJs/9WaojHYBDCxCMLTgU60/WqnYof85emXmSBA=="], + "@biomejs/biome": ["@biomejs/biome@2.3.0", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.0", "@biomejs/cli-darwin-x64": "2.3.0", "@biomejs/cli-linux-arm64": "2.3.0", "@biomejs/cli-linux-arm64-musl": "2.3.0", "@biomejs/cli-linux-x64": "2.3.0", "@biomejs/cli-linux-x64-musl": "2.3.0", "@biomejs/cli-win32-arm64": "2.3.0", "@biomejs/cli-win32-x64": "2.3.0" }, "bin": { "biome": "bin/biome" } }, "sha512-shdUY5H3S3tJVUWoVWo5ua+GdPW5lRHf+b0IwZ4OC1o2zOKQECZ6l2KbU6t89FNhtd3Qx5eg5N7/UsQWGQbAFw=="], - "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.2.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-xBUUsebnO2/Qj1v7eZmKUy2ZcFkZ4/jLUkxN02Qup1RPoRaiW9AKXHrqS3L7iX6PzofHY2xuZ+Pb9kAcpoe0qA=="], + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-3cJVT0Z5pbTkoBmbjmDZTDFYxIkRcrs9sYVJbIBHU8E6qQxgXAaBfSVjjCreG56rfDuQBr43GzwzmaHPcu4vlw=="], - "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.2.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-vsY4NhmxqgfLJufr9XUnC+yGUPJiXAc1mz6FcjaAmuIuLwfghN4uQO7hnW2AneGyoi2mNe9Jbvf6Qtq4AjzrFg=="], + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-6LIkhglh3UGjuDqJXsK42qCA0XkD1Ke4K/raFOii7QQPbM8Pia7Qj2Hji4XuF2/R78hRmEx7uKJH3t/Y9UahtQ=="], - "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.2.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-nUdco104rjV9dULi1VssQ5R/kX2jE/Z2sDjyqS+siV9sTQda0DwmEUixFNRCWvZJRRiZUWhgiDFJ4n7RowO8Mg=="], + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-uhAsbXySX7xsXahegDg5h3CDgfMcRsJvWLFPG0pjkylgBb9lErbK2C0UINW52zhwg0cPISB09lxHPxCau4e2xA=="], - "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.2.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-FrTwvKO/7t5HbVTvhlMOTOVQLAcR7r4O4iFQhEpZXUtBfosHqrX/JJlX7daPawoe14MDcCu9CDg0zLVpTuDvuQ=="], + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-nDksoFdwZ2YrE7NiYDhtMhL2UgFn8Kb7Y0bYvnTAakHnqEdb4lKindtBc1f+xg2Snz0JQhJUYO7r9CDBosRU5w=="], - "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.2.7", "", { "os": "linux", "cpu": "x64" }, "sha512-tPTcGAIEOOZrj2tQ7fdraWlaxNKApBw6l4In8wQQV1IyxnAexqi0hykHzKEX8hKKctf5gxGBfNCzyIvqpj4CFQ=="], + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-uxa8reA2s1VgoH8MhbGlCmMOt3JuSE1vJBifkh1ulaPiuk0SPx8cCdpnm9NWnTe2x/LfWInWx4sZ7muaXTPGGw=="], - "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.2.7", "", { "os": "linux", "cpu": "x64" }, "sha512-MnsysF5s/iLC5wnYvuMseOy+m8Pd4bWG1uwlVyy2AUbfjAVUgtbYbboc5wMXljFrDY7e6rLjLTR4S2xqDpGlQg=="], + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-+i9UcJwl99uAhtRQDz9jUAh+Xkb097eekxs/D9j4deWDg5/yB/jPWzISe1nBHvlzTXsdUSj0VvB4Go2DSpKIMw=="], - "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.2.7", "", { "os": "win32", "cpu": "arm64" }, "sha512-h5D1jhwA2b7cFXerYiJfXHSzzAMFFoEDL5Mc2BgiaEw0iaSgSso/3Nc6FbOR55aTQISql+IpB4PS7JoV26Gdbw=="], + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-ynjmsJLIKrAjC3CCnKMMhzcnNy8dbQWjKfSU5YA0mIruTxBNMbkAJp+Pr2iV7/hFou+66ZSD/WV8hmLEmhUaXA=="], - "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.2.7", "", { "os": "win32", "cpu": "x64" }, "sha512-URqAJi0kONyBKG4V9NVafHLDtm6IHmF4qPYi/b6x7MD6jxpWeJiTCO6R5+xDlWckX2T/OGv6Yq3nkz6s0M8Ykw=="], + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.0", "", { "os": "win32", "cpu": "x64" }, "sha512-zOCYmCRVkWXc9v8P7OLbLlGGMxQTKMvi+5IC4v7O8DkjLCOHRzRVK/Lno2pGZNo0lzKM60pcQOhH8HVkXMQdFg=="], "@changesets/apply-release-plan": ["@changesets/apply-release-plan@7.0.13", "", { "dependencies": { "@changesets/config": "^3.1.1", "@changesets/get-version-range-type": "^0.4.0", "@changesets/git": "^3.0.4", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "detect-indent": "^6.0.0", "fs-extra": "^7.0.1", "lodash.startcase": "^4.4.0", "outdent": "^0.5.0", "prettier": "^2.7.1", "resolve-from": "^5.0.0", "semver": "^7.5.3" } }, "sha512-BIW7bofD2yAWoE8H4V40FikC+1nNFEKBisMECccS16W1rt6qqhNTBDmIw5HaqmMgtLNz9e7oiALiEUuKrQ4oHg=="], @@ -448,12 +449,6 @@ "@changesets/write": ["@changesets/write@0.4.0", "", { "dependencies": { "@changesets/types": "^6.1.0", "fs-extra": "^7.0.1", "human-id": "^4.1.1", "prettier": "^2.7.1" } }, "sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q=="], - "@emnapi/core": ["@emnapi/core@1.6.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg=="], - - "@emnapi/runtime": ["@emnapi/runtime@1.6.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA=="], - - "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], - "@emurgo/cardano-serialization-lib-browser": ["@emurgo/cardano-serialization-lib-browser@13.2.1", "", {}, "sha512-7RfX1gI16Vj2DgCp/ZoXqyLAakWo6+X95ku/rYGbVzuS/1etrlSiJmdbmdm+eYmszMlGQjrtOJQeVLXoj4L/Ag=="], "@emurgo/cardano-serialization-lib-nodejs": ["@emurgo/cardano-serialization-lib-nodejs@13.2.0", "", {}, "sha512-Bz1zLGEqBQ0BVkqt1OgMxdBOE3BdUWUd7Ly9Ecr/aUwkA8AV1w1XzBMe4xblmJHnB1XXNlPH4SraXCvO+q0Mig=="], @@ -618,7 +613,7 @@ "@lit/reactive-element": ["@lit/reactive-element@2.1.1", "", { "dependencies": { "@lit-labs/ssr-dom-shim": "^1.4.0" } }, "sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg=="], - "@macalinao/biome-config": ["@macalinao/biome-config@0.1.3", "", {}, "sha512-lXY64aa8bFZBtjtg/XmqEOZ2BwoiAO9bRrQdRGiFC7O0+eC+J7UM3fEckmWbYeq4NAPhrgyHvmyyfj7pEDioPw=="], + "@macalinao/biome-config": ["@macalinao/biome-config@0.1.4", "", { "peerDependencies": { "@biomejs/biome": "^2.3.0" } }, "sha512-7m85Q+6FVfCLSxIkjDxuPdIWBWQFSpps3KOrP7psRP4ncQyskQnnK+6qRxiCHTHUKQWklIOzI6VkbGEuRUrYWA=="], "@macalinao/clients-quarry": ["@macalinao/clients-quarry@0.4.4", "", { "peerDependencies": { "@solana/kit": "*" } }, "sha512-EJM/CBgf/Hi20ji3EgrX0SeGqPEIuUuGOD2Vy5sO8zSx1KDm/Mgf34jDyKa41P8rkWA1Q/IT9t9enHr8jAjzVQ=="], @@ -626,9 +621,9 @@ "@macalinao/dataloader-es": ["@macalinao/dataloader-es@workspace:packages/dataloader-es"], - "@macalinao/eslint-config": ["@macalinao/eslint-config@7.0.0", "", { "dependencies": { "@eslint/js": "^9.37.0", "@typescript-eslint/parser": "^8.45.0", "eslint-config-turbo": "^2.5.8", "globals": "^16.4.0", "typescript-eslint": "^8.39.1" }, "peerDependencies": { "eslint": "^9.33.0" } }, "sha512-10eFx35lrAQ/n2x0qjv5VMYjZDCZhhQPbgnKUD2fH0WnN3oA5hvoNTjD1uY1mdpvkBwbqnbAC2OQrjEjUqFQ1A=="], + "@macalinao/eslint-config": ["@macalinao/eslint-config@7.0.1", "", { "dependencies": { "@eslint/js": "^9.38.0", "@typescript-eslint/parser": "^8.46.2", "eslint-config-turbo": "^2.5.8", "globals": "^16.4.0", "typescript-eslint": "^8.46.2" }, "peerDependencies": { "eslint": "^9.38.0" } }, "sha512-BaS1N6CiHrhe64W9sR/Y0YED4pqoBJ4sJGZzOFgVvVdf2RNSeGJd0kSWWrJeODSERVztd79xjC9+chP/+15W0A=="], - "@macalinao/eslint-config-react": ["@macalinao/eslint-config-react@6.0.0", "", { "dependencies": { "@macalinao/eslint-config": "^7.0.0", "@tanstack/eslint-plugin-query": "^5.91.0", "eslint-plugin-import-x": "^4.16.1", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^6.1.1", "typescript-eslint": "^8.39.1" }, "peerDependencies": { "eslint": "^9.33.0" } }, "sha512-wsTHoXJajl7/xCHk98NAL0jJZwGMh6gH9UGLDE7ZpBhOwgzmKx3lfK71CE+IaTQkizfjbXheChe98RkZYdajlQ=="], + "@macalinao/eslint-config-react": ["@macalinao/eslint-config-react@6.0.2", "", { "dependencies": { "@macalinao/eslint-config": "^7.0.1", "@tanstack/eslint-plugin-query": "^5.91.2", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "typescript-eslint": "^8.46.2" }, "peerDependencies": { "eslint": "^9.38.0" } }, "sha512-NiIkuCoImWg9JFqEclYRAw+7EKfQYbXdOzl7OiVegMeuohHSLQCAHFpK9xDFjY5v7rDpKbbDasvLjePJ0I1USQ=="], "@macalinao/gill-extra": ["@macalinao/gill-extra@workspace:packages/gill-extra"], @@ -642,7 +637,7 @@ "@macalinao/token-utils": ["@macalinao/token-utils@workspace:packages/token-utils"], - "@macalinao/tsconfig": ["@macalinao/tsconfig@3.2.3", "", {}, "sha512-PH6UvudxPrxYg+2BZyPUx2/U2jCOlJYz+2cGLvIX3Ybtz3GNGxjounb4sceZmR9QmquZlxuP0o5Zz3Y8VATbdA=="], + "@macalinao/tsconfig": ["@macalinao/tsconfig@3.2.4", "", {}, "sha512-Cm66Fe7pecRKtMvne01+Hw1thWhPQinEyXrfRHhXKDmB2eChwVkrTAm0qPNV1+i6Y+mV6SnNTt8ZmJOdWqTcjg=="], "@macalinao/wallet-adapter-compat": ["@macalinao/wallet-adapter-compat@workspace:packages/wallet-adapter-compat"], @@ -654,8 +649,6 @@ "@mobily/ts-belt": ["@mobily/ts-belt@3.13.1", "", {}, "sha512-K5KqIhPI/EoCTbA6CGbrenM9s41OouyK8A03fGJJcla/zKucsgLbz8HNbeseoLarRPgyWJsUyCYqFhI7t3Ra9Q=="], - "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" } }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], - "@ngraveio/bc-ur": ["@ngraveio/bc-ur@1.1.13", "", { "dependencies": { "@keystonehq/alias-sampling": "^0.1.1", "assert": "^2.0.0", "bignumber.js": "^9.0.1", "cbor-sync": "^1.0.4", "crc": "^3.8.0", "jsbi": "^3.1.5", "sha.js": "^2.4.11" } }, "sha512-j73akJMV4+vLR2yQ4AphPIT5HZmxVjn/LxpL7YHoINnXoH6ccc90Zzck6/n6a3bCXOVZwBxq+YHwbAKRV+P8Zg=="], "@noble/ciphers": ["@noble/ciphers@1.2.1", "", {}, "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA=="], @@ -1208,8 +1201,6 @@ "@trezor/websocket-client": ["@trezor/websocket-client@1.2.4", "", { "dependencies": { "@trezor/utils": "9.4.4", "ws": "^8.18.0" }, "peerDependencies": { "tslib": "^2.6.2" } }, "sha512-UgU31gFX8gY0abeI5DjRVnH4RfbXqHcOb019ogkR51KlfjkiWXTvUWKRLLqwslWiUIMEAI3ZFeXQds84b7Uw/Q=="], - "@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], - "@types/aria-query": ["@types/aria-query@5.0.4", "", {}, "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw=="], "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], @@ -1282,44 +1273,6 @@ "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.46.2", "", { "dependencies": { "@typescript-eslint/types": "8.46.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w=="], - "@unrs/resolver-binding-android-arm-eabi": ["@unrs/resolver-binding-android-arm-eabi@1.11.1", "", { "os": "android", "cpu": "arm" }, "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw=="], - - "@unrs/resolver-binding-android-arm64": ["@unrs/resolver-binding-android-arm64@1.11.1", "", { "os": "android", "cpu": "arm64" }, "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g=="], - - "@unrs/resolver-binding-darwin-arm64": ["@unrs/resolver-binding-darwin-arm64@1.11.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g=="], - - "@unrs/resolver-binding-darwin-x64": ["@unrs/resolver-binding-darwin-x64@1.11.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ=="], - - "@unrs/resolver-binding-freebsd-x64": ["@unrs/resolver-binding-freebsd-x64@1.11.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw=="], - - "@unrs/resolver-binding-linux-arm-gnueabihf": ["@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1", "", { "os": "linux", "cpu": "arm" }, "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw=="], - - "@unrs/resolver-binding-linux-arm-musleabihf": ["@unrs/resolver-binding-linux-arm-musleabihf@1.11.1", "", { "os": "linux", "cpu": "arm" }, "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw=="], - - "@unrs/resolver-binding-linux-arm64-gnu": ["@unrs/resolver-binding-linux-arm64-gnu@1.11.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ=="], - - "@unrs/resolver-binding-linux-arm64-musl": ["@unrs/resolver-binding-linux-arm64-musl@1.11.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w=="], - - "@unrs/resolver-binding-linux-ppc64-gnu": ["@unrs/resolver-binding-linux-ppc64-gnu@1.11.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA=="], - - "@unrs/resolver-binding-linux-riscv64-gnu": ["@unrs/resolver-binding-linux-riscv64-gnu@1.11.1", "", { "os": "linux", "cpu": "none" }, "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ=="], - - "@unrs/resolver-binding-linux-riscv64-musl": ["@unrs/resolver-binding-linux-riscv64-musl@1.11.1", "", { "os": "linux", "cpu": "none" }, "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew=="], - - "@unrs/resolver-binding-linux-s390x-gnu": ["@unrs/resolver-binding-linux-s390x-gnu@1.11.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg=="], - - "@unrs/resolver-binding-linux-x64-gnu": ["@unrs/resolver-binding-linux-x64-gnu@1.11.1", "", { "os": "linux", "cpu": "x64" }, "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w=="], - - "@unrs/resolver-binding-linux-x64-musl": ["@unrs/resolver-binding-linux-x64-musl@1.11.1", "", { "os": "linux", "cpu": "x64" }, "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA=="], - - "@unrs/resolver-binding-wasm32-wasi": ["@unrs/resolver-binding-wasm32-wasi@1.11.1", "", { "dependencies": { "@napi-rs/wasm-runtime": "^0.2.11" }, "cpu": "none" }, "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ=="], - - "@unrs/resolver-binding-win32-arm64-msvc": ["@unrs/resolver-binding-win32-arm64-msvc@1.11.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw=="], - - "@unrs/resolver-binding-win32-ia32-msvc": ["@unrs/resolver-binding-win32-ia32-msvc@1.11.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ=="], - - "@unrs/resolver-binding-win32-x64-msvc": ["@unrs/resolver-binding-win32-x64-msvc@1.11.1", "", { "os": "win32", "cpu": "x64" }, "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g=="], - "@vitejs/plugin-react": ["@vitejs/plugin-react@5.0.4", "", { "dependencies": { "@babel/core": "^7.28.4", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.38", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA=="], "@wallet-standard/app": ["@wallet-standard/app@1.1.0", "", { "dependencies": { "@wallet-standard/base": "^1.1.0" } }, "sha512-3CijvrO9utx598kjr45hTbbeeykQrQfKmSnxeWOgU25TOEpvcipD/bYDQWIqUv1Oc6KK4YStokSMu/FBNecGUQ=="], @@ -1644,8 +1597,6 @@ "commander": ["commander@14.0.1", "", {}, "sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A=="], - "comment-parser": ["comment-parser@1.4.1", "", {}, "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg=="], - "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], "connect": ["connect@3.7.0", "", { "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" } }, "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ=="], @@ -1818,10 +1769,6 @@ "eslint-config-turbo": ["eslint-config-turbo@2.5.8", "", { "dependencies": { "eslint-plugin-turbo": "2.5.8" }, "peerDependencies": { "eslint": ">6.6.0", "turbo": ">2.0.0" } }, "sha512-wzxmN7dJNFGDwOvR/4j8U2iaIH/ruYez8qg/sCKrezJ3+ljbFMvJLmgKKt/1mDuyU9wj5aZqO6VijP3QH169FA=="], - "eslint-import-context": ["eslint-import-context@0.1.9", "", { "dependencies": { "get-tsconfig": "^4.10.1", "stable-hash-x": "^0.2.0" }, "peerDependencies": { "unrs-resolver": "^1.0.0" }, "optionalPeers": ["unrs-resolver"] }, "sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg=="], - - "eslint-plugin-import-x": ["eslint-plugin-import-x@4.16.1", "", { "dependencies": { "@typescript-eslint/types": "^8.35.0", "comment-parser": "^1.4.1", "debug": "^4.4.1", "eslint-import-context": "^0.1.9", "is-glob": "^4.0.3", "minimatch": "^9.0.3 || ^10.0.1", "semver": "^7.7.2", "stable-hash-x": "^0.2.0", "unrs-resolver": "^1.9.2" }, "peerDependencies": { "@typescript-eslint/utils": "^8.0.0", "eslint": "^8.57.0 || ^9.0.0", "eslint-import-resolver-node": "*" }, "optionalPeers": ["@typescript-eslint/utils", "eslint-import-resolver-node"] }, "sha512-vPZZsiOKaBAIATpFE2uMI4w5IRwdv/FpQ+qZZMR4E+PeOcM4OeoEbqxRMnywdxP19TyB/3h6QBB0EWon7letSQ=="], - "eslint-plugin-jsx-a11y": ["eslint-plugin-jsx-a11y@6.10.2", "", { "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", "axe-core": "^4.10.0", "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "safe-regex-test": "^1.0.3", "string.prototype.includes": "^2.0.1" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q=="], "eslint-plugin-react": ["eslint-plugin-react@7.37.5", "", { "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.9", "object.fromentries": "^2.0.8", "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="], @@ -2010,9 +1957,9 @@ "hermes-compiler": ["hermes-compiler@0.0.0", "", {}, "sha512-boVFutx6ME/Km2mB6vvsQcdnazEYYI/jV1pomx1wcFUG/EVqTkr5CU0CW9bKipOA/8Hyu3NYwW3THg2Q1kNCfA=="], - "hermes-estree": ["hermes-estree@0.32.0", "", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], + "hermes-estree": ["hermes-estree@0.25.1", "", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="], - "hermes-parser": ["hermes-parser@0.32.0", "", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], + "hermes-parser": ["hermes-parser@0.25.1", "", { "dependencies": { "hermes-estree": "0.25.1" } }, "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA=="], "hmac-drbg": ["hmac-drbg@1.0.1", "", { "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg=="], @@ -2362,8 +2309,6 @@ "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], - "napi-postinstall": ["napi-postinstall@0.3.4", "", { "bin": { "napi-postinstall": "lib/cli.js" } }, "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ=="], - "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], "negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], @@ -2730,8 +2675,6 @@ "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], - "stable-hash-x": ["stable-hash-x@0.2.0", "", {}, "sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ=="], - "stack-utils": ["stack-utils@2.0.6", "", { "dependencies": { "escape-string-regexp": "^2.0.0" } }, "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ=="], "stackframe": ["stackframe@1.3.4", "", {}, "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="], @@ -2900,8 +2843,6 @@ "unplugin": ["unplugin@2.3.10", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "acorn": "^8.15.0", "picomatch": "^4.0.3", "webpack-virtual-modules": "^0.6.2" } }, "sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw=="], - "unrs-resolver": ["unrs-resolver@1.11.1", "", { "dependencies": { "napi-postinstall": "^0.3.0" }, "optionalDependencies": { "@unrs/resolver-binding-android-arm-eabi": "1.11.1", "@unrs/resolver-binding-android-arm64": "1.11.1", "@unrs/resolver-binding-darwin-arm64": "1.11.1", "@unrs/resolver-binding-darwin-x64": "1.11.1", "@unrs/resolver-binding-freebsd-x64": "1.11.1", "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-musl": "1.11.1", "@unrs/resolver-binding-wasm32-wasi": "1.11.1", "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg=="], - "unstorage": ["unstorage@1.17.1", "", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", "h3": "^1.15.4", "lru-cache": "^10.4.3", "node-fetch-native": "^1.6.7", "ofetch": "^1.4.1", "ufo": "^1.6.1" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/functions", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ=="], "update-browserslist-db": ["update-browserslist-db@1.1.4", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A=="], @@ -3046,7 +2987,7 @@ "@keystonehq/sol-keyring/bs58": ["bs58@5.0.0", "", { "dependencies": { "base-x": "^4.0.0" } }, "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ=="], - "@macalinao/eslint-config-react/eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@6.1.1", "", { "dependencies": { "@babel/core": "^7.24.4", "@babel/parser": "^7.24.4", "zod": "^3.22.4 || ^4.0.0", "zod-validation-error": "^3.0.3 || ^4.0.0" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-St9EKZzOAQF704nt2oJvAKZHjhrpg25ClQoaAlHmPZuajFldVLqRDW4VBNAS01NzeiQF0m0qhG1ZA807K6aVaQ=="], + "@macalinao/eslint-config-react/eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@7.0.1", "", { "dependencies": { "@babel/core": "^7.24.4", "@babel/parser": "^7.24.4", "hermes-parser": "^0.25.1", "zod": "^3.25.0 || ^4.0.0", "zod-validation-error": "^3.5.0 || ^4.0.0" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA=="], "@manypkg/find-root/@types/node": ["@types/node@12.20.55", "", {}, "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="], @@ -3060,6 +3001,8 @@ "@project-serum/sol-wallet-adapter/eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], + "@react-native/codegen/hermes-parser": ["hermes-parser@0.32.0", "", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], + "@react-native/dev-middleware/ws": ["ws@6.2.3", "", { "dependencies": { "async-limiter": "~1.0.0" } }, "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA=="], "@reown/appkit/@walletconnect/universal-provider": ["@walletconnect/universal-provider@2.19.1", "", { "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/jsonrpc-http-connection": "1.0.8", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "@walletconnect/sign-client": "2.19.1", "@walletconnect/types": "2.19.1", "@walletconnect/utils": "2.19.1", "es-toolkit": "1.33.0", "events": "3.3.0" } }, "sha512-4rdLvJ2TGDIieNWW3sZw2MXlX65iHpTuKb5vyvUHQtjIVNLj+7X/09iUAI/poswhtspBK0ytwbH+AIT/nbGpjg=="], @@ -3230,6 +3173,8 @@ "asn1.js/bn.js": ["bn.js@4.12.2", "", {}, "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw=="], + "babel-plugin-syntax-hermes-parser/hermes-parser": ["hermes-parser@0.32.0", "", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], + "blake-hash/node-addon-api": ["node-addon-api@3.2.1", "", {}, "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A=="], "browser-resolve/resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], @@ -3256,8 +3201,6 @@ "engine.io-client/ws": ["ws@8.17.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ=="], - "eslint-plugin-import-x/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - "eslint-plugin-react/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "ethereum-cryptography/@noble/curves": ["@noble/curves@1.4.2", "", { "dependencies": { "@noble/hashes": "1.4.0" } }, "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw=="], @@ -3316,8 +3259,12 @@ "metro/ci-info": ["ci-info@2.0.0", "", {}, "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="], + "metro/hermes-parser": ["hermes-parser@0.32.0", "", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], + "metro/source-map": ["source-map@0.5.7", "", {}, "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="], + "metro-babel-transformer/hermes-parser": ["hermes-parser@0.32.0", "", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], + "metro-source-map/source-map": ["source-map@0.5.7", "", {}, "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="], "metro-symbolicate/source-map": ["source-map@0.5.7", "", {}, "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="], @@ -3436,6 +3383,8 @@ "@manypkg/find-root/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], + "@react-native/codegen/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/sign-client": ["@walletconnect/sign-client@2.19.1", "", { "dependencies": { "@walletconnect/core": "2.19.1", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.19.1", "@walletconnect/utils": "2.19.1", "events": "3.3.0" } }, "sha512-OgBHRPo423S02ceN3lAzcZ3MYb1XuLyTTkKqLmKp/icYZCyRzm3/ynqJDKndiBLJ5LTic0y07LiZilnliYqlvw=="], "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils": ["@walletconnect/utils@2.19.1", "", { "dependencies": { "@noble/ciphers": "1.2.1", "@noble/curves": "1.8.1", "@noble/hashes": "1.7.1", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/relay-api": "1.0.11", "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.19.1", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "bs58": "6.0.0", "detect-browser": "5.3.0", "elliptic": "6.6.1", "query-string": "7.1.3", "uint8arrays": "3.1.0", "viem": "2.23.2" } }, "sha512-aOwcg+Hpph8niJSXLqkU25pmLR49B8ECXp5gFQDW5IeVgXHoOoK7w8a79GBhIBheMLlIt1322sTKQ7Rq5KzzFg=="], @@ -3670,6 +3619,8 @@ "@walletconnect/utils/viem/ws": ["ws@8.18.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw=="], + "babel-plugin-syntax-hermes-parser/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], + "browserify-sign/readable-stream/isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], "browserify-sign/readable-stream/safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], @@ -3682,8 +3633,6 @@ "connect/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "eslint-plugin-import-x/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], - "ethereum-cryptography/@scure/bip32/@scure/base": ["@scure/base@1.1.9", "", {}, "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="], "ethereum-cryptography/@scure/bip39/@scure/base": ["@scure/base@1.1.9", "", {}, "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="], @@ -3766,6 +3715,10 @@ "md5.js/hash-base/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + "metro-babel-transformer/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], + + "metro/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], + "qrcode/yargs/cliui": ["cliui@6.0.0", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" } }, "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ=="], "qrcode/yargs/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], diff --git a/package.json b/package.json index bb1cda8..d13264f 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,9 @@ "catalog": { "eslint": "^9.38.0", "typescript": "^5.9.3", - "@macalinao/eslint-config": "^7.0.0", - "@macalinao/eslint-config-react": "^6.0.0", - "@macalinao/tsconfig": "^3.2.3", + "@macalinao/eslint-config": "^7.0.1", + "@macalinao/eslint-config-react": "^6.0.2", + "@macalinao/tsconfig": "^3.2.4", "@solana/kit": "^3.0.3", "tslib": "^2.8.1", "@tanstack/react-query": "^5.90.5", @@ -48,9 +48,9 @@ "codegen": "turbo run codegen" }, "devDependencies": { - "@biomejs/biome": "^2.2.7", + "@biomejs/biome": "^2.3.0", "@changesets/cli": "^2.29.7", - "@macalinao/biome-config": "^0.1.3", + "@macalinao/biome-config": "^0.1.4", "eslint": "^9.38.0", "husky": "^9.1.7", "lint-staged": "^16.2.6", diff --git a/packages/grill/src/accounts/address-lookup-table.ts b/packages/grill/src/accounts/address-lookup-table.ts index b246414..c5bf42f 100644 --- a/packages/grill/src/accounts/address-lookup-table.ts +++ b/packages/grill/src/accounts/address-lookup-table.ts @@ -1,13 +1,15 @@ +import type { + UseDecodedAccountHook, + UseDecodedAccountsHook, +} from "@macalinao/grill"; import { createDecodedAccountHook, createDecodedAccountsHook, } from "@macalinao/grill"; import { getAddressLookupTableDecoder } from "@solana-program/address-lookup-table"; -export const useAddressLookupTable = createDecodedAccountHook( - getAddressLookupTableDecoder(), -); +export const useAddressLookupTable: UseDecodedAccountHook = + createDecodedAccountHook(getAddressLookupTableDecoder()); -export const useAddressLookupTables = createDecodedAccountsHook( - getAddressLookupTableDecoder(), -); +export const useAddressLookupTables: UseDecodedAccountsHook = + createDecodedAccountsHook(getAddressLookupTableDecoder()); diff --git a/packages/grill/src/contexts/wallet-context.ts b/packages/grill/src/contexts/wallet-context.ts index f1a8bc4..13b79dd 100644 --- a/packages/grill/src/contexts/wallet-context.ts +++ b/packages/grill/src/contexts/wallet-context.ts @@ -12,6 +12,5 @@ export interface WalletContextState { /** * React context for wallet-related functionality */ -export const WalletContext = createContext( - undefined, -); +export const WalletContext: React.Context = + createContext(undefined); diff --git a/packages/grill/src/hooks/use-send-tx.ts b/packages/grill/src/hooks/use-send-tx.ts index 9c4279a..1626014 100644 --- a/packages/grill/src/hooks/use-send-tx.ts +++ b/packages/grill/src/hooks/use-send-tx.ts @@ -1,10 +1,11 @@ +import type { SendTXFunction } from "@macalinao/gill-extra"; import { useGrillContext } from "../contexts/grill-context.js"; /** * Hook that provides a function to send transactions using the modern @solana/kit API * while maintaining compatibility with the wallet adapter. */ -export const useSendTX = () => { +export const useSendTX = (): SendTXFunction => { const { sendTX } = useGrillContext(); return sendTX; }; diff --git a/packages/grill/src/hooks/use-token-metadata-account.ts b/packages/grill/src/hooks/use-token-metadata-account.ts index 30add95..38fca48 100644 --- a/packages/grill/src/hooks/use-token-metadata-account.ts +++ b/packages/grill/src/hooks/use-token-metadata-account.ts @@ -1,4 +1,10 @@ import type { Metadata } from "@macalinao/clients-token-metadata"; +import type { + PdaHook, + PdasHook, + UseDecodedAccountHook, + UseDecodedAccountsHook, +} from "@macalinao/grill"; import type { Address } from "@solana/kit"; import type { UseAccountResult } from "./use-account.js"; import type { UseAccountsResult } from "./use-accounts.js"; @@ -12,7 +18,7 @@ import { createDecodedAccountsHook } from "./create-decoded-accounts-hook.js"; import { createPdaHook } from "./create-pda-hook.js"; import { createPdasHook } from "./create-pdas-hook.js"; -export const useTokenMetadataPda = createPdaHook( +export const useTokenMetadataPda: PdaHook<{ mint: Address }> = createPdaHook( async ({ mint }: { mint: Address }) => { const pda = await findMetadataPda({ programId: TOKEN_METADATA_PROGRAM_ADDRESS, @@ -23,7 +29,7 @@ export const useTokenMetadataPda = createPdaHook( "tokenMetadataPda", ); -export const useTokenMetadataPdas = createPdasHook( +export const useTokenMetadataPdas: PdasHook<{ mint: Address }> = createPdasHook( async ({ mint }: { mint: Address }) => { const pda = await findMetadataPda({ programId: TOKEN_METADATA_PROGRAM_ADDRESS, @@ -34,13 +40,11 @@ export const useTokenMetadataPdas = createPdasHook( "tokenMetadataPda", ); -export const useMplTokenMetadataAccount = createDecodedAccountHook( - getMetadataDecoder(), -); +export const useMplTokenMetadataAccount: UseDecodedAccountHook = + createDecodedAccountHook(getMetadataDecoder()); -export const useMplTokenMetadataAccounts = createDecodedAccountsHook( - getMetadataDecoder(), -); +export const useMplTokenMetadataAccounts: UseDecodedAccountsHook = + createDecodedAccountsHook(getMetadataDecoder()); export function useTokenMetadataAccount({ mint, diff --git a/packages/grill/src/pdas/associated-token.ts b/packages/grill/src/pdas/associated-token.ts index d1b673f..6858543 100644 --- a/packages/grill/src/pdas/associated-token.ts +++ b/packages/grill/src/pdas/associated-token.ts @@ -1,3 +1,5 @@ +import type { PdaHook, PdasHook } from "@macalinao/grill"; +import type { AssociatedTokenSeeds } from "@solana-program/token"; import { createPdaHook, createPdasHook } from "@macalinao/grill"; import { findAssociatedTokenPda } from "@solana-program/token"; @@ -18,10 +20,8 @@ import { findAssociatedTokenPda } from "@solana-program/token"; * } * ``` */ -export const useAssociatedTokenPda = createPdaHook( - findAssociatedTokenPda, - "associatedTokenPda", -); +export const useAssociatedTokenPda: PdaHook = + createPdaHook(findAssociatedTokenPda, "associatedTokenPda"); /** * Hook to compute multiple Associated Token Account (ATA) addresses for given mints and owners @@ -41,7 +41,5 @@ export const useAssociatedTokenPda = createPdaHook( * }); * ``` */ -export const useAssociatedTokenPdas = createPdasHook( - findAssociatedTokenPda, - "associatedTokenPdas", -); +export const useAssociatedTokenPdas: PdasHook = + createPdasHook(findAssociatedTokenPda, "associatedTokenPdas"); diff --git a/packages/grill/tsconfig.json b/packages/grill/tsconfig.json index 0fa330b..220ccda 100644 --- a/packages/grill/tsconfig.json +++ b/packages/grill/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@macalinao/tsconfig/tsconfig.react.json", "compilerOptions": { - "isolatedDeclarations": false, "types": ["bun"] } } diff --git a/packages/react-quarry/src/hooks/use-pool-stats.ts b/packages/react-quarry/src/hooks/use-pool-stats.ts index 32039a2..3f4e1ea 100644 --- a/packages/react-quarry/src/hooks/use-pool-stats.ts +++ b/packages/react-quarry/src/hooks/use-pool-stats.ts @@ -47,11 +47,7 @@ export const usePoolStats = (poolInfo: PoolInfo): PoolStats => { annualRewardsRate, totalDeposits, }; - }, [ - quarryAccount?.data, - poolInfo.primaryRewards.rewardsToken, - poolInfo.stakedToken, - ]); + }, [quarryAccount, poolInfo]); return { annualRewardsRate: stats.annualRewardsRate, diff --git a/packages/zod-solana/src/index.ts b/packages/zod-solana/src/index.ts index 770a9ea..d406034 100644 --- a/packages/zod-solana/src/index.ts +++ b/packages/zod-solana/src/index.ts @@ -2,6 +2,11 @@ export { addressSchema } from "./address-schema.js"; export { U8_MAX, U16_MAX, U32_MAX, U64_MAX } from "./constants.js"; export { type TokenMetadata, + type TokenMetadataAttribute, + type TokenMetadataCollection, + type TokenMetadataCreator, + type TokenMetadataFile, + type TokenMetadataProperties, tokenMetadataSchema, } from "./token-metadata-schema.js"; export { u8Schema } from "./u8-schema.js"; diff --git a/packages/zod-solana/src/token-metadata-schema.ts b/packages/zod-solana/src/token-metadata-schema.ts index 55bd2de..66e6bb8 100644 --- a/packages/zod-solana/src/token-metadata-schema.ts +++ b/packages/zod-solana/src/token-metadata-schema.ts @@ -3,7 +3,7 @@ import * as z from "zod"; /** * Schema for token metadata attributes */ -const tokenAttributeSchema = z.object({ +const tokenAttributeSchema: z.ZodType = z.object({ trait_type: z.string(), value: z.union([z.string(), z.number()]), display_type: z.string().optional(), @@ -12,33 +12,124 @@ const tokenAttributeSchema = z.object({ /** * Schema for token metadata files */ -const tokenFileSchema = z.object({ +const tokenFileSchema: z.ZodType = z.object({ uri: z.string(), type: z.string(), cdn: z.boolean().optional(), }); +/** + * Schema for token metadata creators + */ +const tokenCreatorSchema: z.ZodType = z.object({ + address: z.string(), + share: z.number().min(0).max(100), +}); + /** * Schema for token metadata properties */ -const tokenPropertiesSchema = z.object({ +const tokenPropertiesSchema: z.ZodType = z.object({ files: z.array(tokenFileSchema).optional(), category: z.string().optional(), - creators: z - .array( - z.object({ - address: z.string(), - share: z.number().min(0).max(100), - }), - ) - .optional(), + creators: z.array(tokenCreatorSchema).optional(), +}); + +/** + * Schema for token metadata collection + */ +const tokenCollectionSchema: z.ZodType = z.object({ + name: z.string(), + family: z.string().optional(), }); +/** + * Interface for token metadata attributes/traits + */ +export interface TokenMetadataAttribute { + /** The trait type/category */ + trait_type: string; + /** The trait value (string or number) */ + value: string | number; + /** Optional display type for UI formatting */ + display_type?: string; +} + +/** + * Interface for token metadata file references + */ +export interface TokenMetadataFile { + /** File URI */ + uri: string; + /** File MIME type */ + type: string; + /** Whether the file is CDN cached */ + cdn?: boolean; +} + +/** + * Interface for token creator information with royalty shares + */ +export interface TokenMetadataCreator { + /** Creator's wallet address */ + address: string; + /** Creator's royalty share percentage (0-100) */ + share: number; +} + +/** + * Interface for token metadata properties + */ +export interface TokenMetadataProperties { + /** Optional array of file references */ + files?: TokenMetadataFile[]; + /** Optional category classification */ + category?: string; + /** Optional array of creators with royalty shares */ + creators?: TokenMetadataCreator[]; +} + +/** + * Interface for token collection information + */ +export interface TokenMetadataCollection { + /** Collection name */ + name: string; + /** Optional collection family */ + family?: string; +} + +/** + * Interface for Solana token metadata following the Metaplex Token Metadata Standard + */ +export interface TokenMetadata { + /** The name of the token */ + name: string; + /** The symbol of the token */ + symbol: string; + /** Optional description of the token */ + description?: string; + /** Optional image URI */ + image?: string; + /** Optional animation URL for multimedia content */ + animation_url?: string; + /** Optional external URL for additional information */ + external_url?: string; + /** Optional array of attributes/traits */ + attributes?: TokenMetadataAttribute[]; + /** Optional properties object */ + properties?: TokenMetadataProperties; + /** Optional seller fee basis points (royalty percentage * 100) */ + seller_fee_basis_points?: number; + /** Optional collection information */ + collection?: TokenMetadataCollection; +} + /** * Schema for Solana token metadata JSON * Based on Metaplex Token Metadata Standard */ -export const tokenMetadataSchema = z.object({ +export const tokenMetadataSchema: z.ZodType = z.object({ name: z.string(), symbol: z.string(), description: z.string().optional(), @@ -49,12 +140,5 @@ export const tokenMetadataSchema = z.object({ properties: tokenPropertiesSchema.optional(), // Additional fields that may be present seller_fee_basis_points: z.number().optional(), - collection: z - .object({ - name: z.string(), - family: z.string().optional(), - }) - .optional(), + collection: tokenCollectionSchema.optional(), }); - -export type TokenMetadata = z.infer; diff --git a/packages/zod-solana/src/u16-schema.ts b/packages/zod-solana/src/u16-schema.ts index 1af21a1..960c4e9 100644 --- a/packages/zod-solana/src/u16-schema.ts +++ b/packages/zod-solana/src/u16-schema.ts @@ -5,7 +5,7 @@ import { U16_MAX } from "./constants.js"; * A Zod schema for u16 values. * Validates that a number is between 0 and 65535 (inclusive). */ -export const u16Schema = z +export const u16Schema: z.ZodNumber = z .number() .int("Value must be an integer") .min(0, "Value must be at least 0") diff --git a/packages/zod-solana/src/u32-schema.ts b/packages/zod-solana/src/u32-schema.ts index 43daf5f..892084c 100644 --- a/packages/zod-solana/src/u32-schema.ts +++ b/packages/zod-solana/src/u32-schema.ts @@ -5,7 +5,7 @@ import { U32_MAX } from "./constants.js"; * A Zod schema for u32 values. * Validates that a number is between 0 and 4294967295 (inclusive). */ -export const u32Schema = z +export const u32Schema: z.ZodNumber = z .number() .int("Value must be an integer") .min(0, "Value must be at least 0") diff --git a/packages/zod-solana/src/u64-schema.ts b/packages/zod-solana/src/u64-schema.ts index 42a1db6..92f4905 100644 --- a/packages/zod-solana/src/u64-schema.ts +++ b/packages/zod-solana/src/u64-schema.ts @@ -5,7 +5,7 @@ import { U64_MAX } from "./constants.js"; * A Zod schema for u64 values. * Validates that a bigint is between 0 and 2^64-1 (inclusive). */ -export const u64Schema = z +export const u64Schema: z.ZodBigInt = z .bigint() .min(0n, "Value must be at least 0") .max(U64_MAX, `Value must be at most ${String(U64_MAX)}`); diff --git a/packages/zod-solana/src/u64-string-schema.ts b/packages/zod-solana/src/u64-string-schema.ts index b2a3489..e197376 100644 --- a/packages/zod-solana/src/u64-string-schema.ts +++ b/packages/zod-solana/src/u64-string-schema.ts @@ -6,7 +6,7 @@ import { U64_MAX } from "./constants.js"; * Validates that a string represents a valid u64 value (0 to 2^64-1). * Returns the value as a string to preserve precision for large numbers. */ -export const u64StringSchema = z.string().refine( +export const u64StringSchema: z.ZodType = z.string().refine( (val) => { // Check for empty string if (val === "") { diff --git a/packages/zod-solana/src/u8-schema.ts b/packages/zod-solana/src/u8-schema.ts index ea1f29f..8461158 100644 --- a/packages/zod-solana/src/u8-schema.ts +++ b/packages/zod-solana/src/u8-schema.ts @@ -5,7 +5,7 @@ import { U8_MAX } from "./constants.js"; * A Zod schema for u8 values. * Validates that a number is between 0 and 255 (inclusive). */ -export const u8Schema = z +export const u8Schema: z.ZodNumber = z .number() .int("Value must be an integer") .min(0, "Value must be at least 0") diff --git a/packages/zod-solana/src/uint8array-schema.ts b/packages/zod-solana/src/uint8array-schema.ts index 7671f66..d0e4034 100644 --- a/packages/zod-solana/src/uint8array-schema.ts +++ b/packages/zod-solana/src/uint8array-schema.ts @@ -5,7 +5,7 @@ import { u8Schema } from "./u8-schema.js"; * A Zod schema for Uint8Array. * Accepts an array of numbers and transforms it to a Uint8Array. */ -export const uint8ArraySchema = z +export const uint8ArraySchema: z.ZodType = z .array(u8Schema) .transform((arr) => new Uint8Array(arr)); @@ -13,7 +13,7 @@ export const uint8ArraySchema = z * A Zod schema for JSON-encoded Uint8Array. * Accepts a JSON string, parses it, and transforms to Uint8Array. */ -export const jsonUint8ArraySchema = z +export const jsonUint8ArraySchema: z.ZodType = z .string() .transform((str) => { try { diff --git a/packages/zod-solana/tsconfig.json b/packages/zod-solana/tsconfig.json index 3151bc8..4a1e2b2 100644 --- a/packages/zod-solana/tsconfig.json +++ b/packages/zod-solana/tsconfig.json @@ -1,7 +1,6 @@ { - "extends": "@macalinao/tsconfig/tsconfig.dom.json", + "extends": "@macalinao/tsconfig/tsconfig.base.json", "compilerOptions": { - "types": ["bun"], - "isolatedDeclarations": false + "types": ["bun"] } }