From b1cb9e78c9ad7ea14f77af2c968264d351e93b16 Mon Sep 17 00:00:00 2001 From: Kris Urbas <605420+krzysu@users.noreply.github.com> Date: Thu, 2 May 2024 11:27:21 +0200 Subject: [PATCH 01/15] feat: suspense support for usePublication hook --- .changeset/smooth-geese-nail.md | 7 + examples/web/src/profiles/UseProfile.tsx | 2 +- .../web/src/publications/UsePublication.tsx | 36 +++-- packages/react/src/helpers/reads.ts | 2 +- packages/react/src/profile/useProfile.ts | 9 +- .../react/src/publication/usePublication.ts | 132 +++++++++++------- 6 files changed, 124 insertions(+), 64 deletions(-) create mode 100644 .changeset/smooth-geese-nail.md diff --git a/.changeset/smooth-geese-nail.md b/.changeset/smooth-geese-nail.md new file mode 100644 index 000000000..3221b4542 --- /dev/null +++ b/.changeset/smooth-geese-nail.md @@ -0,0 +1,7 @@ +--- +"@lens-protocol/react": minor +"@lens-protocol/react-native": minor +"@lens-protocol/react-web": minor +--- + +**feat:** experimental React Suspense support in `usePublication` hook diff --git a/examples/web/src/profiles/UseProfile.tsx b/examples/web/src/profiles/UseProfile.tsx index b9826d3d8..8c94b763a 100644 --- a/examples/web/src/profiles/UseProfile.tsx +++ b/examples/web/src/profiles/UseProfile.tsx @@ -4,7 +4,7 @@ import { Suspense, startTransition, useState } from 'react'; import { Loading } from '../components/loading/Loading'; import { ProfileCard } from './components/ProfileCard'; -export function UseProfileInner({ localName }: { localName: string }) { +function UseProfileInner({ localName }: { localName: string }) { const { data, error } = useProfile({ forHandle: `lens/${localName}`, suspense: true }); if (error) { diff --git a/examples/web/src/publications/UsePublication.tsx b/examples/web/src/publications/UsePublication.tsx index fd61970ee..91e22e492 100644 --- a/examples/web/src/publications/UsePublication.tsx +++ b/examples/web/src/publications/UsePublication.tsx @@ -1,26 +1,42 @@ import { publicationId, usePublication } from '@lens-protocol/react-web'; +import { Suspense, startTransition, useState } from 'react'; import { PublicationCard } from '../components/cards'; -import { ErrorMessage } from '../components/error/ErrorMessage'; import { Loading } from '../components/loading/Loading'; -export function UsePublication() { - const { - data: publication, - error, - loading, - } = usePublication({ forId: publicationId('0x56-0x02') }); +function UsePublicationInner({ id }: { id: string }) { + const { data, error } = usePublication({ forId: publicationId(id), suspense: true }); + + if (error) { + return

Publication not found.

; + } - if (loading) return ; + return ; +} - if (error) return ; +export function UsePublication() { + const [id, setId] = useState('0x36-0x3f'); + + const update = (event: React.ChangeEvent) => + startTransition(() => { + if (event.target.value.length > 0) { + setId(event.target.value); + } + }); return (

usePublication

- + + + + }> + +
); } diff --git a/packages/react/src/helpers/reads.ts b/packages/react/src/helpers/reads.ts index 21d4a7e44..408f75a29 100644 --- a/packages/react/src/helpers/reads.ts +++ b/packages/react/src/helpers/reads.ts @@ -131,7 +131,7 @@ export function useSuspenseReadResult; /** - * `useProfile` is a React hook that allows you to fetch a profile from the Lens API. + * Fetch a profile by either its full handle or id. * * @example * ```ts @@ -67,7 +67,8 @@ export type UseProfileResult = * * ```ts * const { data } = useProfile({ - * forHandle: 'lens/stani' + * forHandle: 'lens/stani', + * suspense: true, * }); * * console.log(data.id); @@ -88,9 +89,7 @@ export function useProfile( export function useProfile({ suspense = false, ...request -}: UseProfileArgs): - | ReadResult - | SuspenseResultWithError { +}: UseProfileArgs): UseProfileResult { invariant( request.forProfileId === undefined || request.forHandle === undefined, "Only one of 'forProfileId' or 'forHandle' should be provided to 'useProfile' hook", diff --git a/packages/react/src/publication/usePublication.ts b/packages/react/src/publication/usePublication.ts index 36e084713..c63903b9b 100644 --- a/packages/react/src/publication/usePublication.ts +++ b/packages/react/src/publication/usePublication.ts @@ -1,20 +1,43 @@ import { AnyPublication, + PublicationDocument, PublicationRequest, + PublicationVariables, UnspecifiedError, - usePublication as usePublicationHook, } from '@lens-protocol/api-bindings'; import { OneOf, invariant } from '@lens-protocol/shared-kernel'; import { NotFoundError } from '../NotFoundError'; import { useLensApolloClient } from '../helpers/arguments'; -import { ReadResult, useReadResult } from '../helpers/reads'; +import { + ReadResult, + SuspenseEnabled, + SuspenseResultWithError, + useSuspendableQuery, +} from '../helpers/reads'; import { useFragmentVariables } from '../helpers/variables'; +// function isValidPublicationId(id: string) { +// return id.includes('-'); +// } + +function publicationNotFound({ forId, forTxHash }: UsePublicationArgs) { + return new NotFoundError( + forId + ? `Publication with id ${forId} was not found` + : `Publication with txHash ${forTxHash ? forTxHash : ''} was not found`, + ); +} + /** * {@link usePublication} hook arguments */ -export type UsePublicationArgs = OneOf; +export type UsePublicationArgs = OneOf & + SuspenseEnabled; + +export type UsePublicationResult = + | ReadResult + | SuspenseResultWithError; /** * Fetch a publication by either its publication id or transaction hash. @@ -26,66 +49,81 @@ export type UsePublicationArgs = OneOf; * }); * ``` * + * ## Basic Usage + * + * Get Publication by Id: + * + * ```ts + * const { data, error, loading } = usePublication({ + * forId: '0x04-0x0b', + * }); + * ``` + * + * Get Publication by Transaction Hash: + * + * ```ts + * const { data, error, loading } = usePublication({ + * forTxHash: '0xcd0655e8d1d131ebfc72fa5ebff6ed0430e6e39e729af1a81da3b6f33822a6ff', + * }); + * ``` + * + * ## Suspense Enabled + * + * You can enable suspense mode to suspend the component until the session data is available. + * + * ```ts + * const { data } = usePublication({ + * forId: '0x04-0x0b', + * suspense: true, + * }); + * + * console.log(data.id); + * ``` + * * @category Publications * @group Hooks + * * @param args - {@link UsePublicationArgs} */ export function usePublication({ forId, forTxHash, -}: UsePublicationArgs): ReadResult { +}: UsePublicationArgs): ReadResult; +export function usePublication( + args: UsePublicationArgs, +): SuspenseResultWithError; +export function usePublication({ + suspense = false, + ...request +}: UsePublicationArgs): UsePublicationResult { invariant( - forId === undefined || forTxHash === undefined, + request.forId === undefined || request.forTxHash === undefined, "Only one of 'forId' or 'forTxHash' should be provided to 'usePublication' hook", ); - const { data, error, loading } = useReadResult( - usePublicationHook( - useLensApolloClient({ - variables: useFragmentVariables({ - request: { - ...(forId && { forId }), - ...(forTxHash && { forTxHash }), - }, - }), - fetchPolicy: 'cache-and-network', - // leverage cache content if possible - nextFetchPolicy: 'cache-first', - }), - ), - ); - - if (loading) { - return { - data: undefined, - error: undefined, - loading: true, - }; - } + const result = useSuspendableQuery({ + suspense, + query: PublicationDocument, + options: useLensApolloClient({ + variables: useFragmentVariables({ request }), + fetchPolicy: 'cache-and-network', + nextFetchPolicy: 'cache-first', + }), + }); - if (error) { - return { - data: undefined, - error, - loading: false, - }; - } + // if (request.forId && !isValidPublicationId(request.forId)) { + // return { + // data: undefined, + // error: publicationNotFound(request), + // }; + // } - if (data === null) { + if (result.data === null) { return { data: undefined, - error: new NotFoundError( - forId - ? `Publication with id ${forId} was not found` - : `Publication with txHash ${forTxHash ? forTxHash : ''} was not found`, - ), - loading: false, + error: publicationNotFound(request), }; } - return { - data, - error: undefined, - loading: false, - }; + return result as UsePublicationResult; } From d8b19df552110d868fb79cfaae9c2f27ec93cf1b Mon Sep 17 00:00:00 2001 From: Cesare Naldi Date: Tue, 7 May 2024 21:53:11 +0200 Subject: [PATCH 02/15] feat: React Suspense support in usePublications hook --- .changeset/brown-guests-fix.md | 7 + examples/web/src/App.tsx | 232 +++++++++--------- examples/web/src/hooks/useInfiniteScroll.ts | 10 +- .../web/src/publications/UsePublications.tsx | 24 +- .../react/src/authentication/useSession.ts | 24 +- packages/react/src/helpers/reads.ts | 187 ++------------ packages/react/src/helpers/suspense.ts | 207 ++++++++++++++++ packages/react/src/index.ts | 6 +- packages/react/src/profile/useProfile.ts | 57 +++-- .../react/src/publication/usePublication.ts | 21 +- .../react/src/publication/usePublications.ts | 111 ++++----- 11 files changed, 469 insertions(+), 417 deletions(-) create mode 100644 .changeset/brown-guests-fix.md create mode 100644 packages/react/src/helpers/suspense.ts diff --git a/.changeset/brown-guests-fix.md b/.changeset/brown-guests-fix.md new file mode 100644 index 000000000..97dfaccf5 --- /dev/null +++ b/.changeset/brown-guests-fix.md @@ -0,0 +1,7 @@ +--- +"@lens-protocol/react": minor +"@lens-protocol/react-native": minor +"@lens-protocol/react-web": minor +--- + +**feat:** adds React Suspense support to `usePublications` hook diff --git a/examples/web/src/App.tsx b/examples/web/src/App.tsx index d3c5afd7d..897117282 100644 --- a/examples/web/src/App.tsx +++ b/examples/web/src/App.tsx @@ -1,4 +1,5 @@ import { XMTPProvider } from '@xmtp/react-sdk'; +import { Suspense } from 'react'; import { Toaster } from 'react-hot-toast'; import { Outlet, Route, BrowserRouter as Router, Routes } from 'react-router-dom'; @@ -9,6 +10,7 @@ import { Providers } from './Providers'; import { GenericErrorBoundary } from './components/GenericErrorBoundary'; import { ErrorMessage } from './components/error/ErrorMessage'; import { Header } from './components/header/Header'; +import { Loading } from './components/loading/Loading'; import { DiscoveryPage, UseExploreProfiles, @@ -101,127 +103,135 @@ export function App() {
- - - } /> - } /> + }> + + + } /> + } /> - }> - - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } - /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - + }> + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } + /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + - - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } + /> + } /> + - - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + - - } /> - } /> - } /> - } /> - } /> - + + } /> + } /> + } /> + } /> + } /> + - - } /> - } /> - } /> - } - /> - + + } /> + } /> + } + /> + } + /> + - - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } - /> - } /> - + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } + /> + } /> + - - - - } - > - } /> - } /> } - /> - } /> + path="/inbox" + element={ + + + + } + > + } /> + } /> + } + /> + } /> + - - Not found

} /> -
-
+ Not found

} /> +
+
+
diff --git a/examples/web/src/hooks/useInfiniteScroll.ts b/examples/web/src/hooks/useInfiniteScroll.ts index a73fde8d0..a3bb77510 100644 --- a/examples/web/src/hooks/useInfiniteScroll.ts +++ b/examples/web/src/hooks/useInfiniteScroll.ts @@ -1,8 +1,8 @@ -import { PaginatedReadResult } from '@lens-protocol/react-web'; -import { RefCallback } from 'react'; +import { SuspendablePaginatedResult } from '@lens-protocol/react-web'; +import { RefCallback, startTransition } from 'react'; import { useInView } from 'react-cool-inview'; -export function useInfiniteScroll = PaginatedReadResult>( +export function useInfiniteScroll>( queryResult: Q, ): Q & { observeRef: RefCallback } { const { observe: observeRef } = useInView({ @@ -10,7 +10,9 @@ export function useInfiniteScroll = Paginate rootMargin: '20% 0px', onEnter: async ({ unobserve, observe }) => { unobserve(); - await queryResult.next(); + startTransition(() => { + void queryResult.next(); + }); observe(); }, }); diff --git a/examples/web/src/publications/UsePublications.tsx b/examples/web/src/publications/UsePublications.tsx index 0484f4a05..b2aabbba7 100644 --- a/examples/web/src/publications/UsePublications.tsx +++ b/examples/web/src/publications/UsePublications.tsx @@ -1,9 +1,7 @@ -import { PublicationType, profileId, usePublications } from '@lens-protocol/react-web'; -import { useState } from 'react'; +import { LimitType, PublicationType, profileId, usePublications } from '@lens-protocol/react-web'; +import { startTransition, useState } from 'react'; import { PublicationCard } from '../components/cards'; -import { ErrorMessage } from '../components/error/ErrorMessage'; -import { Loading } from '../components/loading/Loading'; import { useInfiniteScroll } from '../hooks/useInfiniteScroll'; const allPublicationType = [PublicationType.Comment, PublicationType.Post, PublicationType.Mirror]; @@ -13,24 +11,24 @@ export function UsePublications() { const { data: publications, - beforeCount, - error, - loading, hasMore, prev, observeRef, } = useInfiniteScroll( usePublications({ where: { - from: [profileId('0x06')], + from: [profileId('0x05')], publicationTypes: publicationType, }, + limit: LimitType.Ten, + suspense: true, }), ); - if (loading) return ; - - if (error) return ; + const refresh = () => + startTransition(() => { + void prev(); + }); return (
@@ -60,9 +58,7 @@ export function UsePublications() { ))} - + {publications.map((publication) => ( diff --git a/packages/react/src/authentication/useSession.ts b/packages/react/src/authentication/useSession.ts index 379fc3854..d92a985fd 100644 --- a/packages/react/src/authentication/useSession.ts +++ b/packages/react/src/authentication/useSession.ts @@ -15,7 +15,8 @@ import { EvmAddress, invariant, never } from '@lens-protocol/shared-kernel'; import { useEffect, useRef } from 'react'; import { useLensApolloClient } from '../helpers/arguments'; -import { ReadResult, SuspenseEnabled, SuspenseResult } from '../helpers/reads'; +import { ReadResult } from '../helpers/reads'; +import { SuspenseEnabled, SuspenseResult } from '../helpers/suspense'; import { useLazyFragmentVariables } from '../helpers/variables'; export function usePreviousValue(value: T) { @@ -101,14 +102,7 @@ export type Session = AnonymousSession | ProfileSession | WalletOnlySession; export type UseSessionArgs = SuspenseEnabled; /** - * `useSession` is a hook that lets you access the current {@link Session} - * - * @example - * ```ts - * const { data, error, loading } = useSession(); - * ``` - * - * ## Basic Usage + * Returns current {@link Session} data. * * Use this hook to determine if the user is authenticated or not. * ```tsx @@ -138,9 +132,15 @@ export type UseSessionArgs = SuspenseEnabled): SuspenseResult; + +/** + * Returns current {@link Session} data. * - * You can enable suspense mode to suspend the component until the session data is available. + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). * * ```tsx * function Page() { @@ -170,8 +170,8 @@ export type UseSessionArgs = SuspenseEnabled): SuspenseResult; export function useSession(args?: UseSessionArgs): ReadResult; + export function useSession( args?: UseSessionArgs, ): ReadResult | SuspenseResult { diff --git a/packages/react/src/helpers/reads.ts b/packages/react/src/helpers/reads.ts index 408f75a29..8a8a7b6bb 100644 --- a/packages/react/src/helpers/reads.ts +++ b/packages/react/src/helpers/reads.ts @@ -1,4 +1,3 @@ -/* eslint-disable react-hooks/rules-of-hooks */ /* eslint-disable no-console */ import { ApolloError, @@ -6,13 +5,7 @@ import { DocumentNode, LazyQueryExecFunction, OperationVariables, - LazyQueryResultTuple as ApolloLazyResultTuple, useLazyQuery, - UseSuspenseQueryResult, - QueryHookOptions, - SuspenseQueryHookOptions, - useQuery, - useSuspenseQuery, } from '@apollo/client'; import { UnspecifiedError, @@ -21,14 +14,7 @@ import { PaginatedResultInfo, LimitType, } from '@lens-protocol/api-bindings'; -import { - failure, - IEquatableError, - never, - Prettify, - PromiseResult, - success, -} from '@lens-protocol/shared-kernel'; +import { Prettify } from '@lens-protocol/shared-kernel'; import { useCallback, useEffect, useRef, useState } from 'react'; import { useSharedDependencies } from '../shared'; @@ -102,10 +88,16 @@ function buildReadResult( }; } +/** + * A standardized query result data object. + * + * All queries should alias their results to `result` to ensure interoperability + * with this helper hooks. + * + * @internal + */ export type QueryData = { result: R }; -type InferResult> = T extends QueryData ? R : never; - /** * @internal */ @@ -119,68 +111,6 @@ export function useReadResult< return buildReadResult(data?.result, error); } -/** - * @internal - */ -export function useSuspenseReadResult({ - data, - error, -}: UseSuspenseQueryResult, TVariables>): SuspenseResult { - if (error) { - throw error; - } - - return { - data: data?.result, - }; -} - -/** - * @experimental This is a pathfinder type for new lazy query hooks. It can change at any time. - */ -export type LazyReadResult< - TArgs, - TValue, - TError extends IEquatableError = UnspecifiedError, -> = ReadResult & { - /** - * Fetches the data for this query. - * - * @returns A promise that resolves when the data has been fetched. - */ - execute: (args: TArgs) => PromiseResult; -}; - -/** - * @internal - */ -export function useLazyReadResult< - TData extends QueryData, - TResult = InferResult, - TVariables extends OperationVariables = { [key: string]: never }, ->([execute, { error, data }]: ApolloLazyResultTuple): LazyReadResult< - TVariables, - TResult, - UnspecifiedError -> { - return { - ...buildReadResult(data?.result, error), - - execute: useCallback( - async (variables: TVariables) => { - const result = await execute({ variables }); - - if (result.error) { - return failure(new UnspecifiedError(result.error)); - } - - return success(result.data ? result.data.result : never()); - }, - [execute], - ), - }; -} - export type OmitCursor = Omit; export type PaginatedArgs = Prettify< @@ -214,31 +144,31 @@ export type PaginatedReadResult = ReadResult & { /** * Fetches the next page of items. * - * @returns A promise that resolves when the next page of items has been fetched. + * @returns A promise that resolves when the operation is complete, regardless if it had any items to fetch. */ next: () => Promise; /** * Fetches the previous page of items. * - * @returns A promise that resolves when the prev page of items has been fetched. + * @returns A promise that resolves when the operation is complete, regardless if it had any items to fetch. */ prev: () => Promise; }; -type PaginatedQueryVariables = OperationVariables & { cursor?: InputMaybe }; +/** + * @internal + */ +export type PaginatedQueryVariables = OperationVariables & { cursor?: InputMaybe }; /** * @internal */ -export type PaginatedQueryData = { - result: { pageInfo: PaginatedResultInfo; items: K[] }; +export type PaginatedQueryData = { + result: { pageInfo: PaginatedResultInfo; items: TItem[] }; }; -type InferPaginatedItemsType> = T extends PaginatedQueryData< - infer R -> - ? R - : never; +type InferPaginatedItemsType> = + TData extends PaginatedQueryData ? TItem : never; function useAdHocQuery< TVariables extends PaginatedQueryVariables, @@ -268,7 +198,8 @@ export function usePaginatedReadResult< fetchMore, variables, observable, -}: ApolloQueryResult): PaginatedReadResult { +}: ApolloQueryResult): // | UseSuspenseQueryResult +PaginatedReadResult { const fetch = useAdHocQuery(observable.query); const cachedData = useRef(data).current; @@ -333,79 +264,3 @@ export function usePaginatedReadResult< }, }; } - -/** - * A read result that supports React Suspense and includes an error. - * - * @experimental This is an experimental type that can change at any time. - */ -export type SuspenseResultWithError = - | { - data: undefined; - error: E; - } - | { - data: T; - error: undefined; - }; - -/** - * A read result that supports React Suspense - * - * @experimental This is an experimental type that can change at any time. - */ -export type SuspenseResult = { data: T }; - -/** - * @deprecated Use {@link SuspenseResult | `SuspenseResult`} instead. - */ -export type SuspenseReadResult = SuspenseResultWithError; - -/** - * Helper type to enable Suspense mode. - * - * @experimental This is an experimental type that can change at any time. - */ -export type SuspenseEnabled = { - suspense?: TSuspense; -}; - -/** - * @internal - */ -export type UseSuspenseQueryArgs = { - suspense: true; - query: DocumentNode; - options: QueryHookOptions; -}; - -/** - * @internal - */ -export type UseQueryArgs = { - suspense: false; - query: DocumentNode; - options: QueryHookOptions; -}; - -/** - * @internal - */ -export type UseSuspendableQueryArgs = - | UseSuspenseQueryArgs - | UseQueryArgs; - -/** - * @internal - */ -export function useSuspendableQuery( - args: UseSuspendableQueryArgs, TVariables>, -): ReadResult | SuspenseResult { - if (args.suspense) { - return useSuspenseReadResult( - useSuspenseQuery>(args.query, args.options as SuspenseQueryHookOptions), - ); - } - - return useReadResult(useQuery(args.query, args.options as QueryHookOptions)); -} diff --git a/packages/react/src/helpers/suspense.ts b/packages/react/src/helpers/suspense.ts new file mode 100644 index 000000000..5d702fb3a --- /dev/null +++ b/packages/react/src/helpers/suspense.ts @@ -0,0 +1,207 @@ +/* eslint-disable react-hooks/rules-of-hooks */ +import { + DocumentNode, + OperationVariables, + UseSuspenseQueryResult, + QueryHookOptions, + SuspenseQueryHookOptions, + useQuery, + useSuspenseQuery, +} from '@apollo/client'; + +import { + PaginatedQueryData, + QueryData, + ReadResult, + useReadResult, + PaginatedReadResult, + usePaginatedReadResult, + PaginatedQueryVariables, +} from './reads'; + +/** + * A read result that supports React Suspense and includes an error. + * + * @experimental This is an experimental type that can change at any time. + */ +export type SuspenseResultWithError = + | { + data: undefined; + error: E; + } + | { + data: T; + error: undefined; + }; + +/** + * A read result that supports React Suspense + * + * @experimental This is an experimental type that can change at any time. + */ +export type SuspenseResult = { data: T }; + +/** + * @deprecated Use {@link SuspenseResult | `SuspenseResult`} instead. + */ +export type SuspenseReadResult = SuspenseResultWithError; + +/** + * Helper type to enable Suspense mode. + * + * @experimental This is an experimental type that can change at any time. + */ +export type SuspenseEnabled = { + suspense?: TSuspense; +}; + +/** + * @internal + */ +export type UseSuspenseQueryArgs = { + suspense: true; + query: DocumentNode; + options: QueryHookOptions; +}; + +/** + * @internal + */ +export type UseQueryArgs = { + suspense: false; + query: DocumentNode; + options: QueryHookOptions; +}; + +/** + * @internal + */ +export type UseSuspendableQueryArgs = + | UseSuspenseQueryArgs + | UseQueryArgs; + +function useSuspenseResult({ + data, + error, +}: UseSuspenseQueryResult, TVariables>) { + if (error) { + throw error; + } + + return { + data: data.result, + }; +} + +/** + * @internal + */ +export function useSuspendableQuery( + args: UseSuspendableQueryArgs, TVariables>, +): ReadResult | SuspenseResult { + if (args.suspense) { + return useSuspenseResult( + useSuspenseQuery>(args.query, args.options as SuspenseQueryHookOptions), + ); + } + return useReadResult(useQuery(args.query, args.options as QueryHookOptions)); +} + +/** + * A paginated read result that supports React Suspense. + * + * @experimental This is an experimental type that can change at any time. + */ +export type SuspensePaginatedResult = SuspenseResult & { + /** + * @deprecated not used with Suspense mode + */ + beforeCount: number; + /** + * Whether there are more items to fetch in the next page + */ + hasMore: boolean; + /** + * Fetches the next page of items. + * + * Calling this function will cause the component to re-suspend, + * unless the call site is wrapped in [startTransition](https://react.dev/reference/react/startTransition). + * + * @returns A promise that resolves when the operation is complete, regardless if it had any items to fetch. + */ + next: () => Promise; + /** + * Fetches the previous page of items. + * + * Calling this function will cause the component to re-suspend, + * unless the call site is wrapped in [startTransition](https://react.dev/reference/react/startTransition). + * + * @returns A promise that resolves when the operation is complete, regardless if it had any items to fetch. + */ + prev: () => Promise; +}; + +/** + * A paginated read result that supports React Suspense. + * + * @experimental This is an experimental type that can change at any time. + */ +export type SuspendablePaginatedResult = PaginatedReadResult | SuspensePaginatedResult; + +function useSuspensePaginatedResult({ + data, + error, + fetchMore, +}: UseSuspenseQueryResult, TVariables>): SuspensePaginatedResult< + TItem[] +> { + if (error) { + throw error; + } + + return { + beforeCount: 0, + + data: data.result.items, + + hasMore: data.result.pageInfo.next ? true : false, + + next: async () => { + if (data.result.pageInfo.next) { + await fetchMore({ + variables: { + cursor: data.result.pageInfo.next, + } as TVariables, + }); + } + }, + + prev: async () => { + if (data.result.pageInfo.prev) { + await fetchMore({ + variables: { + cursor: data.result.pageInfo.prev, + } as TVariables, + }); + } + }, + }; +} + +/** + * @internal + */ +export function useSuspendablePaginatedQuery( + args: UseSuspendableQueryArgs, TVariables>, +): PaginatedReadResult | SuspensePaginatedResult { + if (args.suspense) { + return useSuspensePaginatedResult( + useSuspenseQuery>( + args.query, + args.options as SuspenseQueryHookOptions, + ), + ); + } + + return usePaginatedReadResult(useQuery(args.query, args.options as QueryHookOptions)); +} diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts index 3b81c17b9..0834618ac 100644 --- a/packages/react/src/index.ts +++ b/packages/react/src/index.ts @@ -78,11 +78,15 @@ export type { ReadResult, ReadResultWithError, ReadResultWithoutError, +} from './helpers/reads'; +export type { + SuspendablePaginatedResult, SuspenseEnabled, + SuspensePaginatedResult, SuspenseReadResult, SuspenseResult, SuspenseResultWithError, -} from './helpers/reads'; +} from './helpers/suspense'; export * from './helpers/tasks'; /** diff --git a/packages/react/src/profile/useProfile.ts b/packages/react/src/profile/useProfile.ts index e1eb72a33..923c2e409 100644 --- a/packages/react/src/profile/useProfile.ts +++ b/packages/react/src/profile/useProfile.ts @@ -9,12 +9,8 @@ import { invariant, OneOf } from '@lens-protocol/shared-kernel'; import { NotFoundError } from '../NotFoundError'; import { useLensApolloClient } from '../helpers/arguments'; -import { - ReadResult, - SuspenseEnabled, - SuspenseResultWithError, - useSuspendableQuery, -} from '../helpers/reads'; +import { ReadResult } from '../helpers/reads'; +import { SuspenseEnabled, SuspenseResultWithError, useSuspendableQuery } from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; function profileNotFound({ forProfileId, forHandle }: UseProfileArgs) { @@ -25,6 +21,8 @@ function profileNotFound({ forProfileId, forHandle }: UseProfileArgs) { ); } +export type { ProfileRequest }; + /** * {@link useProfile} hook arguments */ @@ -36,34 +34,39 @@ export type UseProfileResult = | SuspenseResultWithError; /** - * Fetch a profile by either its full handle or id. - * - * @example - * ```ts - * const { data, error, loading } = useProfile({ forProfileId: '0x04' }); - * ``` - * - * ## Basic Usage - * - * Get Profile by Handle: + * Fetches a Profile by either its full handle or id. * * ```ts * const { data, error, loading } = useProfile({ * forHandle: 'lens/stani', + * // OR + * forProfileId: '0x04', * }); - * ``` * - * Get Profile by Id: + * if (loading) { + * return ; + * } * - * ```ts - * const { data, error, loading } = useProfile({ - * forProfileId: '0x04', - * }); + * if (error) { + * return ; + * } + * + * return ; * ``` * - * ## Suspense Enabled + * @category Profiles + * @group Hooks + * @param args - {@link UseProfileArgs} + */ +export function useProfile({ + forHandle, + forProfileId, +}: UseProfileArgs): ReadResult; + +/** + * Fetches a Profile by either its full handle or id. * - * You can enable suspense mode to suspend the component until the session data is available. + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). * * ```ts * const { data } = useProfile({ @@ -76,16 +79,12 @@ export type UseProfileResult = * * @category Profiles * @group Hooks - * * @param args - {@link UseProfileArgs} */ -export function useProfile({ - forHandle, - forProfileId, -}: UseProfileArgs): ReadResult; export function useProfile( args: UseProfileArgs, ): SuspenseResultWithError; + export function useProfile({ suspense = false, ...request diff --git a/packages/react/src/publication/usePublication.ts b/packages/react/src/publication/usePublication.ts index c63903b9b..0c361b60c 100644 --- a/packages/react/src/publication/usePublication.ts +++ b/packages/react/src/publication/usePublication.ts @@ -9,18 +9,10 @@ import { OneOf, invariant } from '@lens-protocol/shared-kernel'; import { NotFoundError } from '../NotFoundError'; import { useLensApolloClient } from '../helpers/arguments'; -import { - ReadResult, - SuspenseEnabled, - SuspenseResultWithError, - useSuspendableQuery, -} from '../helpers/reads'; +import { ReadResult } from '../helpers/reads'; +import { SuspenseEnabled, SuspenseResultWithError, useSuspendableQuery } from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; -// function isValidPublicationId(id: string) { -// return id.includes('-'); -// } - function publicationNotFound({ forId, forTxHash }: UsePublicationArgs) { return new NotFoundError( forId @@ -29,6 +21,8 @@ function publicationNotFound({ forId, forTxHash }: UsePublicationArgs) ); } +export type { PublicationRequest }; + /** * {@link usePublication} hook arguments */ @@ -111,13 +105,6 @@ export function usePublication({ }), }); - // if (request.forId && !isValidPublicationId(request.forId)) { - // return { - // data: undefined, - // error: publicationNotFound(request), - // }; - // } - if (result.data === null) { return { data: undefined, diff --git a/packages/react/src/publication/usePublications.ts b/packages/react/src/publication/usePublications.ts index 57ae86363..f50d84e37 100644 --- a/packages/react/src/publication/usePublications.ts +++ b/packages/react/src/publication/usePublications.ts @@ -1,29 +1,31 @@ import { AnyPublication, + PublicationsDocument, PublicationsRequest, - usePublications as usePublicationsBase, } from '@lens-protocol/api-bindings'; import { useLensApolloClient } from '../helpers/arguments'; -import { PaginatedArgs, PaginatedReadResult, usePaginatedReadResult } from '../helpers/reads'; +import { PaginatedArgs, PaginatedReadResult } from '../helpers/reads'; +import { + SuspendablePaginatedResult, + SuspenseEnabled, + SuspensePaginatedResult, + useSuspendablePaginatedQuery, +} from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; /** * {@link usePublications} hook arguments */ -export type UsePublicationsArgs = PaginatedArgs; +export type UsePublicationsArgs = + PaginatedArgs & SuspenseEnabled; export type { PublicationsRequest }; /** - * Fetch a paginated result of publications based on a set of filters. - * - * @category Publications - * @group Hooks - * @param args - {@link UsePublicationsArgs} + * Retrieves a paginated list of publications, filtered according to specified criteria. * - * @example - * Fetch post publications + * Fetch by Publication Type: * ```tsx * const { data, loading, error } = usePublications({ * where: { @@ -32,8 +34,7 @@ export type { PublicationsRequest }; * }); * ``` * - * @example - * Fetch all short form video post publications + * Fetch by Main Content Focus: * ```tsx * const { data, loading, error } = usePublications({ * where: { @@ -45,8 +46,7 @@ export type { PublicationsRequest }; * }); * ``` * - * @example - * Fetch all comments for a specified publication + * Fetch Post's comments: * ```tsx * const { data, loading, error } = usePublications({ * where: { @@ -57,71 +57,56 @@ export type { PublicationsRequest }; * }); * ``` * - * @example - * Fetch all mirrors of a specified publication + * Fetch Profile's Publications: * ```tsx * const { data, loading, error } = usePublications({ * where: { - * mirrorOn: publicationId('0x03-0x24'), + * from: [profileId('0x01')], * } * }); * ``` * - * @example - * Fetch all quotes of a specified publication - * ```tsx - * const { data, loading, error } = usePublications({ - * where: { - * quoteOn: publicationId('0x03-0x24'), - * } - * }); - * ``` + * @category Publications + * @group Hooks + * @param args - {@link UsePublicationsArgs} + */ +export function usePublications( + args: UsePublicationsArgs, +): PaginatedReadResult; +/** + * Retrieves a paginated list of publications, filtered according to specified criteria. * - * @example - * Fetch all publications by an author's Profile ID - * ```tsx - * const { data, loading, error } = usePublications({ - * where: { - * from: [profileId('0x01')], - * } - * }); - * ``` + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). * - * @example - * Fetch publications mirrored by a Profile ID * ```tsx - * const { data, loading, error } = usePublications({ - * where: { - * from: [profileId('0x01')], - * publicationTypes: [PublicationType.Mirror], - * } + * const { data } = usePublications({ + * where: { ... }, + * suspense: true, * }); * ``` * - * @example - * Fetch publications quoted by a Profile ID - * ```tsx - * const { data, loading, error } = usePublications({ - * where: { - * from: [profileId('0x01')], - * publicationTypes: [PublicationType.Quote], - * } - * }); - * ``` + * @category Publications + * @group Hooks + * @param args - {@link UsePublicationsArgs} */ +export function usePublications( + args: UsePublicationsArgs, +): SuspensePaginatedResult; + export function usePublications({ + suspense = false, where, limit, -}: UsePublicationsArgs): PaginatedReadResult { - return usePaginatedReadResult( - usePublicationsBase( - useLensApolloClient({ - variables: useFragmentVariables({ - where, - limit, - statsFor: where?.metadata?.publishedOn, - }), +}: UsePublicationsArgs): SuspendablePaginatedResult { + return useSuspendablePaginatedQuery({ + suspense, + query: PublicationsDocument, + options: useLensApolloClient({ + variables: useFragmentVariables({ + where, + limit, + statsFor: where?.metadata?.publishedOn, }), - ), - ); + }), + }); } From fcd04e3568cc367ab51f038d4330c73b6f8d8eb1 Mon Sep 17 00:00:00 2001 From: Cesare Naldi Date: Wed, 8 May 2024 22:16:50 +0200 Subject: [PATCH 03/15] chore: typedoc fixes --- .changeset/yellow-insects-obey.md | 7 +++++++ packages/react/src/authentication/useSession.ts | 12 +----------- packages/react/src/experimental/credentials.ts | 9 +++++++++ packages/react/src/experimental/useStorage.ts | 3 +++ .../publications/useOptimisticCreatePost.ts | 3 +++ 5 files changed, 23 insertions(+), 11 deletions(-) create mode 100644 .changeset/yellow-insects-obey.md diff --git a/.changeset/yellow-insects-obey.md b/.changeset/yellow-insects-obey.md new file mode 100644 index 000000000..7130665ad --- /dev/null +++ b/.changeset/yellow-insects-obey.md @@ -0,0 +1,7 @@ +--- +"@lens-protocol/react": patch +"@lens-protocol/react-native": patch +"@lens-protocol/react-web": patch +--- + +**fixes:** typedoc for some hooks diff --git a/packages/react/src/authentication/useSession.ts b/packages/react/src/authentication/useSession.ts index d92a985fd..92a68a715 100644 --- a/packages/react/src/authentication/useSession.ts +++ b/packages/react/src/authentication/useSession.ts @@ -12,23 +12,13 @@ import { SessionType, } from '@lens-protocol/domain/use-cases/authentication'; import { EvmAddress, invariant, never } from '@lens-protocol/shared-kernel'; -import { useEffect, useRef } from 'react'; +import { useEffect } from 'react'; import { useLensApolloClient } from '../helpers/arguments'; import { ReadResult } from '../helpers/reads'; import { SuspenseEnabled, SuspenseResult } from '../helpers/suspense'; import { useLazyFragmentVariables } from '../helpers/variables'; -export function usePreviousValue(value: T) { - const ref = useRef(); - - useEffect(() => { - ref.current = value; - }, [value]); - - return ref.current; -} - export { LogoutReason, SessionType }; /** diff --git a/packages/react/src/experimental/credentials.ts b/packages/react/src/experimental/credentials.ts index b9acfae6b..233c20cc5 100644 --- a/packages/react/src/experimental/credentials.ts +++ b/packages/react/src/experimental/credentials.ts @@ -45,6 +45,9 @@ function useCredentials() { * * @experimental This API is VERY experimental and might change in the future. * @defaultValue `null` if not authenticated. + * + * @category Misc + * @group Hooks */ export function useAccessToken() { const credentials = useCredentials(); @@ -57,6 +60,9 @@ export function useAccessToken() { * * @experimental This API is VERY experimental and might change in the future. * @defaultValue `null` if not authenticated. + * + * @category Misc + * @group Hooks */ export function useIdentityToken() { const credentials = useCredentials(); @@ -69,6 +75,9 @@ export function useIdentityToken() { * * @experimental This API is VERY experimental and might change in the future. * @defaultValue `null` if not authenticated. + * + * @category Misc + * @group Hooks */ export function useRefreshToken() { const credentials = useCredentials(); diff --git a/packages/react/src/experimental/useStorage.ts b/packages/react/src/experimental/useStorage.ts index d57a72c97..13a4a507f 100644 --- a/packages/react/src/experimental/useStorage.ts +++ b/packages/react/src/experimental/useStorage.ts @@ -2,6 +2,9 @@ import { useSharedDependencies } from '../shared'; /** * Returns the {@link IStorageProvider} or {@link IObservableStorageProvider} instance defined in LensConfig. + * + * @category Misc + * @group Hooks */ export function useStorage() { const { config } = useSharedDependencies(); diff --git a/packages/react/src/transactions/publications/useOptimisticCreatePost.ts b/packages/react/src/transactions/publications/useOptimisticCreatePost.ts index 3f0b46e66..171b27126 100644 --- a/packages/react/src/transactions/publications/useOptimisticCreatePost.ts +++ b/packages/react/src/transactions/publications/useOptimisticCreatePost.ts @@ -263,6 +263,9 @@ export type OptimisticCreatePostError = * ``` * * @experimental This API is experimental and may change or be removed in future versions without honoring semver. + * + * @category Publications + * @group Hooks */ export function useOptimisticCreatePost( uploader: IUploader, From 21f652d22922bcbca399aa420e78b2bfe34b6d4b Mon Sep 17 00:00:00 2001 From: Kris Urbas <605420+krzysu@users.noreply.github.com> Date: Mon, 13 May 2024 09:39:04 +0200 Subject: [PATCH 04/15] fix: react native origin header (#927) --- .changeset/big-tomatoes-taste.md | 8 +++++++ packages/api-bindings/src/apollo/index.ts | 21 +++++++++------- .../api-bindings/src/apollo/links/AuthLink.ts | 24 +++++++------------ .../api-bindings/src/apollo/links/LensLink.ts | 6 ++++- packages/react/src/shared.tsx | 2 +- 5 files changed, 36 insertions(+), 25 deletions(-) create mode 100644 .changeset/big-tomatoes-taste.md diff --git a/.changeset/big-tomatoes-taste.md b/.changeset/big-tomatoes-taste.md new file mode 100644 index 000000000..c2c550a3f --- /dev/null +++ b/.changeset/big-tomatoes-taste.md @@ -0,0 +1,8 @@ +--- +"@lens-protocol/api-bindings": patch +"@lens-protocol/react": patch +"@lens-protocol/react-native": patch +"@lens-protocol/react-web": patch +--- + +**fix:** custom origin header important for react native usecase diff --git a/packages/api-bindings/src/apollo/index.ts b/packages/api-bindings/src/apollo/index.ts index a27f8cfb9..d07838e42 100644 --- a/packages/api-bindings/src/apollo/index.ts +++ b/packages/api-bindings/src/apollo/index.ts @@ -7,26 +7,25 @@ import { createLensCache } from './cache/createLensCache'; import { AuthLinkArgs, IAccessTokenStorage, createAuthLink, createLensLink } from './links'; export type ApolloClientConfig = AuthLinkArgs & { - uri: string; + connectToDevTools?: boolean; logger: ILogger; pollingInterval: number; - connectToDevTools?: boolean; + uri: string; }; export function createLensApolloClient({ accessTokenStorage, - origin, uri, logger, pollingInterval, connectToDevTools, }: ApolloClientConfig) { - const authLink = createAuthLink({ accessTokenStorage, origin }); + const authLink = createAuthLink({ accessTokenStorage }); const httpLink = createLensLink({ - uri, logger, supportedVersion: LENS_API_MINIMAL_SUPPORTED_VERSION, + uri, }); return new SafeApolloClient({ @@ -39,14 +38,20 @@ export function createLensApolloClient({ } export type AuthApolloClientConfig = { - uri: string; logger: ILogger; + origin?: string; + uri: string; }; -export function createAuthApolloClient({ uri, logger }: AuthApolloClientConfig) { +export function createAuthApolloClient({ logger, origin, uri }: AuthApolloClientConfig) { return new SafeApolloClient({ cache: createLensCache(), - link: createLensLink({ uri, logger, supportedVersion: LENS_API_MINIMAL_SUPPORTED_VERSION }), + link: createLensLink({ + logger, + origin, + supportedVersion: LENS_API_MINIMAL_SUPPORTED_VERSION, + uri, + }), version: LENS_API_MINIMAL_SUPPORTED_VERSION, }); } diff --git a/packages/api-bindings/src/apollo/links/AuthLink.ts b/packages/api-bindings/src/apollo/links/AuthLink.ts index 257a42e9c..3a6c47849 100644 --- a/packages/api-bindings/src/apollo/links/AuthLink.ts +++ b/packages/api-bindings/src/apollo/links/AuthLink.ts @@ -116,28 +116,22 @@ class RefreshTokensLink extends ApolloLink { export type AuthLinkArgs = { accessTokenStorage: IAccessTokenStorage; - origin?: string; }; -export function createAuthLink({ accessTokenStorage, origin }: AuthLinkArgs) { +export function createAuthLink({ accessTokenStorage }: AuthLinkArgs) { const tokenRefreshLink = new RefreshTokensLink(accessTokenStorage); const authHeaderLink = setContext((_, prevContext) => { const token = accessTokenStorage.getAccessToken(); - if (token) { - return { - ...prevContext, - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - headers: { - ...('headers' in prevContext && prevContext.headers), - Authorization: `Bearer ${token}`, - ...(origin && { Origin: origin }), - }, - }; - } - - return prevContext; + return { + ...prevContext, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + headers: { + ...('headers' in prevContext && prevContext.headers), + ...(token && { Authorization: `Bearer ${token}` }), + }, + }; }); return from([tokenRefreshLink, authHeaderLink]); diff --git a/packages/api-bindings/src/apollo/links/LensLink.ts b/packages/api-bindings/src/apollo/links/LensLink.ts index ffa5cc42d..3e410ef50 100644 --- a/packages/api-bindings/src/apollo/links/LensLink.ts +++ b/packages/api-bindings/src/apollo/links/LensLink.ts @@ -51,6 +51,7 @@ function wrapFetch(logger: ILogger, supportedVersion: SemVer, fetch: Fetch): Fet export type LensLinkArgs = { fetch?: Fetch; logger: ILogger; + origin?: string; supportedVersion: SemVer; uri: string; }; @@ -58,6 +59,7 @@ export type LensLinkArgs = { export function createLensLink({ fetch: preferredFetch, logger, + origin, supportedVersion, uri, }: LensLinkArgs) { @@ -66,7 +68,9 @@ export function createLensLink({ return new HttpLink({ uri, - fetch: wrapFetch(logger, supportedVersion, currentFetch), + headers: { + ...(origin && { origin: origin }), + }, }); } diff --git a/packages/react/src/shared.tsx b/packages/react/src/shared.tsx index 969456de1..796fb749f 100644 --- a/packages/react/src/shared.tsx +++ b/packages/react/src/shared.tsx @@ -61,6 +61,7 @@ export function createSharedDependencies(userConfig: BaseConfig): SharedDependen const anonymousApolloClient = createAuthApolloClient({ uri: config.environment.backend, logger: config.logger, + origin: config.origin, }); const authApi = new AuthApi(anonymousApolloClient); @@ -79,7 +80,6 @@ export function createSharedDependencies(userConfig: BaseConfig): SharedDependen accessTokenStorage: credentialsStorage, pollingInterval: config.environment.timings.pollingInterval, logger: config.logger, - origin: config.origin, }); // infrastructure From 87776a622a98e26033cb21b8016e25a32e843961 Mon Sep 17 00:00:00 2001 From: Kris Urbas <605420+krzysu@users.noreply.github.com> Date: Tue, 14 May 2024 13:56:46 +0200 Subject: [PATCH 05/15] react native example: add wallet connect example (#925) --- examples/react-native/.env.example | 3 + examples/react-native/README.md | 17 + .../react-native/ios/NativeLens/Info.plist | 11 + examples/react-native/ios/Podfile.lock | 502 +-- .../react-native/ios/PrivacyInfo.xcprivacy | 37 + examples/react-native/metro.config.js | 2 - examples/react-native/package.json | 55 +- examples/react-native/src/App.tsx | 38 +- examples/react-native/src/LogoutButton.tsx | 21 - .../src/components/ConnectButton.tsx | 25 + .../src/{ => components}/ErrorCallout.tsx | 0 .../src/{ => components}/LoginButton.tsx | 0 .../src/{ => components}/LoginForm.tsx | 3 +- .../src/{ => components}/Main.tsx | 23 +- .../src/{ => components}/MyProfile.tsx | 7 +- .../src/components/WalletConnectModal.tsx | 52 + examples/react-native/src/utils/Deferred.ts | 15 + examples/react-native/src/utils/bindings.ts | 28 + .../react-native/src/utils/environment.ts | 26 + examples/react-native/src/wallet.ts | 22 - pnpm-lock.yaml | 3352 +++++++++++------ 21 files changed, 2793 insertions(+), 1446 deletions(-) create mode 100644 examples/react-native/.env.example create mode 100644 examples/react-native/ios/PrivacyInfo.xcprivacy delete mode 100644 examples/react-native/src/LogoutButton.tsx create mode 100644 examples/react-native/src/components/ConnectButton.tsx rename examples/react-native/src/{ => components}/ErrorCallout.tsx (100%) rename examples/react-native/src/{ => components}/LoginButton.tsx (100%) rename examples/react-native/src/{ => components}/LoginForm.tsx (95%) rename examples/react-native/src/{ => components}/Main.tsx (60%) rename examples/react-native/src/{ => components}/MyProfile.tsx (95%) create mode 100644 examples/react-native/src/components/WalletConnectModal.tsx create mode 100644 examples/react-native/src/utils/Deferred.ts create mode 100644 examples/react-native/src/utils/bindings.ts create mode 100644 examples/react-native/src/utils/environment.ts delete mode 100644 examples/react-native/src/wallet.ts diff --git a/examples/react-native/.env.example b/examples/react-native/.env.example new file mode 100644 index 000000000..1271f9fd3 --- /dev/null +++ b/examples/react-native/.env.example @@ -0,0 +1,3 @@ +WALLET_CONNECT_PROJECT_ID= +ENVIRONMENT=production +# ENVIRONMENT=development diff --git a/examples/react-native/README.md b/examples/react-native/README.md index bb115da16..d25fc3bc7 100644 --- a/examples/react-native/README.md +++ b/examples/react-native/README.md @@ -4,6 +4,23 @@ This is a new [**React Native**](https://reactnative.dev) project, bootstrapped > **Note**: Make sure you have completed the [React Native - Environment Setup](https://reactnative.dev/docs/environment-setup) instructions till "Creating a new application" step, before proceeding. +## Step 0: Install the Native Dependencies + +### For iOS + +Install the native dependencies using CocoaPods: + +```bash +# using npm +npm run pod:install + +# OR using Yarn +yarn pod:install + +# OR using pnpm +pnpm pod:install +``` + ## Step 1: Start the Metro Server First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native. diff --git a/examples/react-native/ios/NativeLens/Info.plist b/examples/react-native/ios/NativeLens/Info.plist index ce21a05ee..6004f19ba 100644 --- a/examples/react-native/ios/NativeLens/Info.plist +++ b/examples/react-native/ios/NativeLens/Info.plist @@ -20,6 +20,17 @@ $(MARKETING_VERSION) CFBundleSignature ???? + CFBundleURLTypes + + + CFBundleURLSchemes + + nativelens + + CFBundleURLName + com.yourcompany.nativelens + + CFBundleVersion $(CURRENT_PROJECT_VERSION) LSRequiresIPhoneOS diff --git a/examples/react-native/ios/Podfile.lock b/examples/react-native/ios/Podfile.lock index e615c8490..324a4fcaa 100644 --- a/examples/react-native/ios/Podfile.lock +++ b/examples/react-native/ios/Podfile.lock @@ -2,14 +2,14 @@ PODS: - boost (1.83.0) - CocoaAsyncSocket (7.6.5) - DoubleConversion (1.1.6) - - FBLazyVector (0.73.5) - - FBReactNativeSpec (0.73.5): + - FBLazyVector (0.73.7) + - FBReactNativeSpec (0.73.7): - RCT-Folly (= 2022.05.16.00) - - RCTRequired (= 0.73.5) - - RCTTypeSafety (= 0.73.5) - - React-Core (= 0.73.5) - - React-jsi (= 0.73.5) - - ReactCommon/turbomodule/core (= 0.73.5) + - RCTRequired (= 0.73.7) + - RCTTypeSafety (= 0.73.7) + - React-Core (= 0.73.7) + - React-jsi (= 0.73.7) + - ReactCommon/turbomodule/core (= 0.73.7) - Flipper (0.201.0): - Flipper-Folly (~> 2.6) - Flipper-Boost-iOSX (1.76.0.1.11) @@ -72,9 +72,9 @@ PODS: - hermes-engine/Pre-built (= 0.73.5) - hermes-engine/Pre-built (0.73.5) - libevent (2.1.12) - - MMKV (1.3.1): - - MMKVCore (~> 1.3.1) - - MMKVCore (1.3.1) + - MMKV (1.3.5): + - MMKVCore (~> 1.3.5) + - MMKVCore (1.3.5) - OpenSSL-Universal (1.1.1100) - RCT-Folly (2022.05.16.00): - boost @@ -98,26 +98,26 @@ PODS: - fmt (~> 6.2.1) - glog - libevent - - RCTRequired (0.73.5) - - RCTTypeSafety (0.73.5): - - FBLazyVector (= 0.73.5) - - RCTRequired (= 0.73.5) - - React-Core (= 0.73.5) - - React (0.73.5): - - React-Core (= 0.73.5) - - React-Core/DevSupport (= 0.73.5) - - React-Core/RCTWebSocket (= 0.73.5) - - React-RCTActionSheet (= 0.73.5) - - React-RCTAnimation (= 0.73.5) - - React-RCTBlob (= 0.73.5) - - React-RCTImage (= 0.73.5) - - React-RCTLinking (= 0.73.5) - - React-RCTNetwork (= 0.73.5) - - React-RCTSettings (= 0.73.5) - - React-RCTText (= 0.73.5) - - React-RCTVibration (= 0.73.5) - - React-callinvoker (0.73.5) - - React-Codegen (0.73.5): + - RCTRequired (0.73.7) + - RCTTypeSafety (0.73.7): + - FBLazyVector (= 0.73.7) + - RCTRequired (= 0.73.7) + - React-Core (= 0.73.7) + - React (0.73.7): + - React-Core (= 0.73.7) + - React-Core/DevSupport (= 0.73.7) + - React-Core/RCTWebSocket (= 0.73.7) + - React-RCTActionSheet (= 0.73.7) + - React-RCTAnimation (= 0.73.7) + - React-RCTBlob (= 0.73.7) + - React-RCTImage (= 0.73.7) + - React-RCTLinking (= 0.73.7) + - React-RCTNetwork (= 0.73.7) + - React-RCTSettings (= 0.73.7) + - React-RCTText (= 0.73.7) + - React-RCTVibration (= 0.73.7) + - React-callinvoker (0.73.7) + - React-Codegen (0.73.7): - DoubleConversion - FBReactNativeSpec - glog @@ -132,11 +132,11 @@ PODS: - React-rncore - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.73.5): + - React-Core (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.5) + - React-Core/Default (= 0.73.7) - React-cxxreact - React-hermes - React-jsi @@ -146,7 +146,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.73.5): + - React-Core/CoreModulesHeaders (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -160,7 +160,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/Default (0.73.5): + - React-Core/Default (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -173,23 +173,23 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/DevSupport (0.73.5): + - React-Core/DevSupport (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.5) - - React-Core/RCTWebSocket (= 0.73.5) + - React-Core/Default (= 0.73.7) + - React-Core/RCTWebSocket (= 0.73.7) - React-cxxreact - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.73.5) + - React-jsinspector (= 0.73.7) - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.73.5): + - React-Core/RCTActionSheetHeaders (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -203,7 +203,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTAnimationHeaders (0.73.5): + - React-Core/RCTAnimationHeaders (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -217,7 +217,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTBlobHeaders (0.73.5): + - React-Core/RCTBlobHeaders (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -231,7 +231,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTImageHeaders (0.73.5): + - React-Core/RCTImageHeaders (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -245,7 +245,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTLinkingHeaders (0.73.5): + - React-Core/RCTLinkingHeaders (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -259,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTNetworkHeaders (0.73.5): + - React-Core/RCTNetworkHeaders (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -273,7 +273,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTSettingsHeaders (0.73.5): + - React-Core/RCTSettingsHeaders (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -287,7 +287,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTTextHeaders (0.73.5): + - React-Core/RCTTextHeaders (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -301,7 +301,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTVibrationHeaders (0.73.5): + - React-Core/RCTVibrationHeaders (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -315,11 +315,11 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTWebSocket (0.73.5): + - React-Core/RCTWebSocket (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.5) + - React-Core/Default (= 0.73.7) - React-cxxreact - React-hermes - React-jsi @@ -329,33 +329,33 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.73.5): + - React-CoreModules (0.73.7): - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.5) + - RCTTypeSafety (= 0.73.7) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.5) - - React-jsi (= 0.73.5) + - React-Core/CoreModulesHeaders (= 0.73.7) + - React-jsi (= 0.73.7) - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.73.5) + - React-RCTImage (= 0.73.7) - ReactCommon - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.5): + - React-cxxreact (0.73.7): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.5) - - React-debug (= 0.73.5) - - React-jsi (= 0.73.5) - - React-jsinspector (= 0.73.5) - - React-logger (= 0.73.5) - - React-perflogger (= 0.73.5) - - React-runtimeexecutor (= 0.73.5) - - React-debug (0.73.5) - - React-Fabric (0.73.5): + - React-callinvoker (= 0.73.7) + - React-debug (= 0.73.7) + - React-jsi (= 0.73.7) + - React-jsinspector (= 0.73.7) + - React-logger (= 0.73.7) + - React-perflogger (= 0.73.7) + - React-runtimeexecutor (= 0.73.7) + - React-debug (0.73.7) + - React-Fabric (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -366,20 +366,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.73.5) - - React-Fabric/attributedstring (= 0.73.5) - - React-Fabric/componentregistry (= 0.73.5) - - React-Fabric/componentregistrynative (= 0.73.5) - - React-Fabric/components (= 0.73.5) - - React-Fabric/core (= 0.73.5) - - React-Fabric/imagemanager (= 0.73.5) - - React-Fabric/leakchecker (= 0.73.5) - - React-Fabric/mounting (= 0.73.5) - - React-Fabric/scheduler (= 0.73.5) - - React-Fabric/telemetry (= 0.73.5) - - React-Fabric/templateprocessor (= 0.73.5) - - React-Fabric/textlayoutmanager (= 0.73.5) - - React-Fabric/uimanager (= 0.73.5) + - React-Fabric/animations (= 0.73.7) + - React-Fabric/attributedstring (= 0.73.7) + - React-Fabric/componentregistry (= 0.73.7) + - React-Fabric/componentregistrynative (= 0.73.7) + - React-Fabric/components (= 0.73.7) + - React-Fabric/core (= 0.73.7) + - React-Fabric/imagemanager (= 0.73.7) + - React-Fabric/leakchecker (= 0.73.7) + - React-Fabric/mounting (= 0.73.7) + - React-Fabric/scheduler (= 0.73.7) + - React-Fabric/telemetry (= 0.73.7) + - React-Fabric/templateprocessor (= 0.73.7) + - React-Fabric/textlayoutmanager (= 0.73.7) + - React-Fabric/uimanager (= 0.73.7) - React-graphics - React-jsi - React-jsiexecutor @@ -388,7 +388,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.5): + - React-Fabric/animations (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -407,7 +407,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.5): + - React-Fabric/attributedstring (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -426,7 +426,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.5): + - React-Fabric/componentregistry (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -445,7 +445,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.5): + - React-Fabric/componentregistrynative (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -464,7 +464,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.5): + - React-Fabric/components (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -475,17 +475,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.73.5) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.5) - - React-Fabric/components/modal (= 0.73.5) - - React-Fabric/components/rncore (= 0.73.5) - - React-Fabric/components/root (= 0.73.5) - - React-Fabric/components/safeareaview (= 0.73.5) - - React-Fabric/components/scrollview (= 0.73.5) - - React-Fabric/components/text (= 0.73.5) - - React-Fabric/components/textinput (= 0.73.5) - - React-Fabric/components/unimplementedview (= 0.73.5) - - React-Fabric/components/view (= 0.73.5) + - React-Fabric/components/inputaccessory (= 0.73.7) + - React-Fabric/components/legacyviewmanagerinterop (= 0.73.7) + - React-Fabric/components/modal (= 0.73.7) + - React-Fabric/components/rncore (= 0.73.7) + - React-Fabric/components/root (= 0.73.7) + - React-Fabric/components/safeareaview (= 0.73.7) + - React-Fabric/components/scrollview (= 0.73.7) + - React-Fabric/components/text (= 0.73.7) + - React-Fabric/components/textinput (= 0.73.7) + - React-Fabric/components/unimplementedview (= 0.73.7) + - React-Fabric/components/view (= 0.73.7) - React-graphics - React-jsi - React-jsiexecutor @@ -494,7 +494,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.5): + - React-Fabric/components/inputaccessory (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -513,7 +513,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.5): + - React-Fabric/components/legacyviewmanagerinterop (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -532,7 +532,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.5): + - React-Fabric/components/modal (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -551,7 +551,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.5): + - React-Fabric/components/rncore (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -570,7 +570,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.5): + - React-Fabric/components/root (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -589,7 +589,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.5): + - React-Fabric/components/safeareaview (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -608,7 +608,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.5): + - React-Fabric/components/scrollview (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -627,7 +627,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.5): + - React-Fabric/components/text (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -646,7 +646,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.5): + - React-Fabric/components/textinput (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -665,7 +665,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.5): + - React-Fabric/components/unimplementedview (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -684,7 +684,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.5): + - React-Fabric/components/view (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -704,7 +704,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.73.5): + - React-Fabric/core (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -723,7 +723,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.5): + - React-Fabric/imagemanager (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -742,7 +742,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.5): + - React-Fabric/leakchecker (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -761,7 +761,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.5): + - React-Fabric/mounting (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -780,7 +780,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.5): + - React-Fabric/scheduler (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -799,7 +799,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.5): + - React-Fabric/telemetry (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -818,7 +818,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.5): + - React-Fabric/templateprocessor (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -837,7 +837,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.5): + - React-Fabric/textlayoutmanager (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -857,7 +857,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.5): + - React-Fabric/uimanager (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -876,42 +876,42 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.73.5): + - React-FabricImage (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.5) - - RCTTypeSafety (= 0.73.5) + - RCTRequired (= 0.73.7) + - RCTTypeSafety (= 0.73.7) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.73.5) + - React-jsiexecutor (= 0.73.7) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-graphics (0.73.5): + - React-graphics (0.73.7): - glog - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.5) + - React-Core/Default (= 0.73.7) - React-utils - - React-hermes (0.73.5): + - React-hermes (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - RCT-Folly/Futures (= 2022.05.16.00) - - React-cxxreact (= 0.73.5) + - React-cxxreact (= 0.73.7) - React-jsi - - React-jsiexecutor (= 0.73.5) - - React-jsinspector (= 0.73.5) - - React-perflogger (= 0.73.5) - - React-ImageManager (0.73.5): + - React-jsiexecutor (= 0.73.7) + - React-jsinspector (= 0.73.7) + - React-perflogger (= 0.73.7) + - React-ImageManager (0.73.7): - glog - RCT-Folly/Fabric - React-Core/Default @@ -920,40 +920,50 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.73.5): + - React-jserrorhandler (0.73.7): - RCT-Folly/Fabric (= 2022.05.16.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.73.5): + - React-jsi (0.73.7): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.5): + - React-jsiexecutor (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.5) - - React-jsi (= 0.73.5) - - React-perflogger (= 0.73.5) - - React-jsinspector (0.73.5) - - React-logger (0.73.5): + - React-cxxreact (= 0.73.7) + - React-jsi (= 0.73.7) + - React-perflogger (= 0.73.7) + - React-jsinspector (0.73.7) + - React-logger (0.73.7): - glog - - React-Mapbuffer (0.73.5): + - React-Mapbuffer (0.73.7): - glog - React-debug - - react-native-get-random-values (1.10.0): + - react-native-compat (2.12.2): + - glog + - RCT-Folly (= 2022.05.16.00) + - React-Core + - react-native-config (1.5.1): + - react-native-config/App (= 1.5.1) + - react-native-config/App (1.5.1): + - React-Core + - react-native-get-random-values (1.11.0): - React-Core - react-native-mmkv (2.11.0): - MMKV (>= 1.2.13) - React-Core - - React-nativeconfig (0.73.5) - - React-NativeModulesApple (0.73.5): + - react-native-netinfo (11.3.1): + - React-Core + - React-nativeconfig (0.73.7) + - React-NativeModulesApple (0.73.7): - glog - hermes-engine - React-callinvoker @@ -963,10 +973,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.73.5) - - React-RCTActionSheet (0.73.5): - - React-Core/RCTActionSheetHeaders (= 0.73.5) - - React-RCTAnimation (0.73.5): + - React-perflogger (0.73.7) + - React-RCTActionSheet (0.73.7): + - React-Core/RCTActionSheetHeaders (= 0.73.7) + - React-RCTAnimation (0.73.7): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -974,7 +984,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.73.5): + - React-RCTAppDelegate (0.73.7): - RCT-Folly - RCTRequired - RCTTypeSafety @@ -988,7 +998,7 @@ PODS: - React-RCTNetwork - React-runtimescheduler - ReactCommon - - React-RCTBlob (0.73.5): + - React-RCTBlob (0.73.7): - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Codegen @@ -998,7 +1008,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.73.5): + - React-RCTFabric (0.73.7): - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) @@ -1016,7 +1026,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.73.5): + - React-RCTImage (0.73.7): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1025,14 +1035,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.73.5): + - React-RCTLinking (0.73.7): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.5) - - React-jsi (= 0.73.5) + - React-Core/RCTLinkingHeaders (= 0.73.7) + - React-jsi (= 0.73.7) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.5) - - React-RCTNetwork (0.73.5): + - ReactCommon/turbomodule/core (= 0.73.7) + - React-RCTNetwork (0.73.7): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1040,7 +1050,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.73.5): + - React-RCTSettings (0.73.7): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1048,25 +1058,25 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTText (0.73.5): - - React-Core/RCTTextHeaders (= 0.73.5) + - React-RCTText (0.73.7): + - React-Core/RCTTextHeaders (= 0.73.7) - Yoga - - React-RCTVibration (0.73.5): + - React-RCTVibration (0.73.7): - RCT-Folly (= 2022.05.16.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.73.5): + - React-rendererdebug (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - RCT-Folly (= 2022.05.16.00) - React-debug - - React-rncore (0.73.5) - - React-runtimeexecutor (0.73.5): - - React-jsi (= 0.73.5) - - React-runtimescheduler (0.73.5): + - React-rncore (0.73.7) + - React-runtimeexecutor (0.73.7): + - React-jsi (= 0.73.7) + - React-runtimescheduler (0.73.7): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1077,48 +1087,54 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.73.5): + - React-utils (0.73.7): - glog - RCT-Folly (= 2022.05.16.00) - React-debug - - ReactCommon (0.73.5): - - React-logger (= 0.73.5) - - ReactCommon/turbomodule (= 0.73.5) - - ReactCommon/turbomodule (0.73.5): + - ReactCommon (0.73.7): + - React-logger (= 0.73.7) + - ReactCommon/turbomodule (= 0.73.7) + - ReactCommon/turbomodule (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.5) - - React-cxxreact (= 0.73.5) - - React-jsi (= 0.73.5) - - React-logger (= 0.73.5) - - React-perflogger (= 0.73.5) - - ReactCommon/turbomodule/bridging (= 0.73.5) - - ReactCommon/turbomodule/core (= 0.73.5) - - ReactCommon/turbomodule/bridging (0.73.5): + - React-callinvoker (= 0.73.7) + - React-cxxreact (= 0.73.7) + - React-jsi (= 0.73.7) + - React-logger (= 0.73.7) + - React-perflogger (= 0.73.7) + - ReactCommon/turbomodule/bridging (= 0.73.7) + - ReactCommon/turbomodule/core (= 0.73.7) + - ReactCommon/turbomodule/bridging (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.5) - - React-cxxreact (= 0.73.5) - - React-jsi (= 0.73.5) - - React-logger (= 0.73.5) - - React-perflogger (= 0.73.5) - - ReactCommon/turbomodule/core (0.73.5): + - React-callinvoker (= 0.73.7) + - React-cxxreact (= 0.73.7) + - React-jsi (= 0.73.7) + - React-logger (= 0.73.7) + - React-perflogger (= 0.73.7) + - ReactCommon/turbomodule/core (0.73.7): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.5) - - React-cxxreact (= 0.73.5) - - React-jsi (= 0.73.5) - - React-logger (= 0.73.5) - - React-perflogger (= 0.73.5) + - React-callinvoker (= 0.73.7) + - React-cxxreact (= 0.73.7) + - React-jsi (= 0.73.7) + - React-logger (= 0.73.7) + - React-perflogger (= 0.73.7) + - RNCAsyncStorage (1.23.1): + - React-Core + - RNCClipboard (1.14.1): + - React-Core + - RNSVG (13.14.0): + - React-Core - SocketRocket (0.6.1) - Yoga (1.14.0) @@ -1175,8 +1191,11 @@ DEPENDENCIES: - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) + - "react-native-compat (from `../node_modules/@walletconnect/react-native-compat`)" + - react-native-config (from `../node_modules/react-native-config`) - react-native-get-random-values (from `../node_modules/react-native-get-random-values`) - react-native-mmkv (from `../node_modules/react-native-mmkv`) + - "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)" - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) @@ -1197,6 +1216,9 @@ DEPENDENCIES: - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" + - "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)" + - RNSVG (from `../node_modules/react-native-svg`) - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: @@ -1273,10 +1295,16 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/logger" React-Mapbuffer: :path: "../node_modules/react-native/ReactCommon" + react-native-compat: + :path: "../node_modules/@walletconnect/react-native-compat" + react-native-config: + :path: "../node_modules/react-native-config" react-native-get-random-values: :path: "../node_modules/react-native-get-random-values" react-native-mmkv: :path: "../node_modules/react-native-mmkv" + react-native-netinfo: + :path: "../node_modules/@react-native-community/netinfo" React-nativeconfig: :path: "../node_modules/react-native/ReactCommon" React-NativeModulesApple: @@ -1317,6 +1345,12 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/react/utils" ReactCommon: :path: "../node_modules/react-native/ReactCommon" + RNCAsyncStorage: + :path: "../node_modules/@react-native-async-storage/async-storage" + RNCClipboard: + :path: "../node_modules/@react-native-clipboard/clipboard" + RNSVG: + :path: "../node_modules/react-native-svg" Yoga: :path: "../node_modules/react-native/ReactCommon/yoga" @@ -1324,8 +1358,8 @@ SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953 - FBLazyVector: 56e0e498dbb513b96c40bac6284729ba4e62672d - FBReactNativeSpec: 2e901838cc95f78a729c87c01d12c583b8c5a5d9 + FBLazyVector: 9f533d5a4c75ca77c8ed774aced1a91a0701781e + FBReactNativeSpec: d33ad0805744c75135ade1f584be7e77f8acb6ef Flipper: c7a0093234c4bdd456e363f2f19b2e4b27652d44 Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 @@ -1335,57 +1369,63 @@ SPEC CHECKSUMS: Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 FlipperKit: 37525a5d056ef9b93d1578e04bc3ea1de940094f fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 - glog: 035f1e36e53b355cf70f6434d161b36e7d21fecd + glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 hermes-engine: 1d1835b2cc54c381909d94d1b3c8e0a2f1a94a0e libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 - MMKV: 5a07930c70c70b86cd87761a42c8f3836fb681d7 - MMKVCore: e50135dbd33235b6ab390635991bab437ab873c0 + MMKV: 506311d0494023c2f7e0b62cc1f31b7370fa3cfb + MMKVCore: 9e2e5fd529b64a9fe15f1a7afb3d73b2e27b4db9 OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 - RCTRequired: 2544c0f1081a5fa12e108bb8cb40e5f4581ccd87 - RCTTypeSafety: 50efabe2b115c11ed03fbf3fd79e2f163ddb5d7c - React: 84221d5e0ce297bc57c4b6af539a62d812d89f10 - React-callinvoker: 5d17577ecc7f784535ebedf3aad4bcbf8f4b5117 - React-Codegen: 857e7984fc277aadde2a7a427288b6918ece7b2b - React-Core: 8e782e7e24c7843871a0d9c3c8d7c5b3ebb73832 - React-CoreModules: 7875ee247e3e6e0e683b52cd1cdda1b71618bd55 - React-cxxreact: 788cd771c6e94d44f8d472fdfae89b67226067ea - React-debug: 55c7f2b8463bfe85567c9f4ede904085601130c9 - React-Fabric: 8cb43853496bb8032420edf62e7281c53109e682 - React-FabricImage: fbdc0ef7ed58a87c77600017c19a751932de3e47 - React-graphics: dc8307b615f14e13f1081ac23ea66697808bcd29 - React-hermes: d9acaa4ebf2118d9bd8a541af8c620c467b356b6 - React-ImageManager: 2a97ddc9b1f459121697d629cfbe69712997d76f - React-jserrorhandler: b97b16674258ccaeff5a70047a097a140e76d12d - React-jsi: 1d59d0a148c76641ac577729e0268bafa494152c - React-jsiexecutor: 262b66928ad948491d03fd328bb5b822cce94647 - React-jsinspector: 32db5e364bcae8fca8cdf8891830636275add0c5 - React-logger: 0331362115f0f5b392bd7ed14636d1a3ea612479 - React-Mapbuffer: 7c35cd53a22d0be04d3f26f7881c7fb7dd230216 - react-native-get-random-values: 384787fd76976f5aec9465aff6fa9e9129af1e74 + RCTRequired: 77f73950d15b8c1a2b48ba5b79020c3003d1c9b5 + RCTTypeSafety: ede1e2576424d89471ef553b2aed09fbbcc038e3 + React: 2ddb437e599df2f1bffa9b248de2de4cfa0227f0 + React-callinvoker: 10fc710367985e525e2d65bcc3a73d536c992aea + React-Codegen: b9dc80301260919cafafb6651cb8dbde889b7090 + React-Core: c771634f2ed0c59bef0bcd3d85d6f2c3af91eb96 + React-CoreModules: 97e5860e7e2d8549a5a357c2e0b115e93f25e5e7 + React-cxxreact: 62fcadb4e0d38175f8f220d9c970c5dbeed2eae4 + React-debug: 2bb2ea6d53636bfdc7cb9009a8e71dd6a96810b5 + React-Fabric: 0a19152fe4ce3bb38e27ed5072e9d1857631c3fa + React-FabricImage: 1f2a0841508f8c4eef229c84f3f625fcaf00ac0f + React-graphics: 860acbbd1398a1c50d2a0b7fd37ca4f1ae5cef5e + React-hermes: 938f6b4c585b3f98d9b65bfd9b84ebeb29e4db2b + React-ImageManager: b55d5ffffaaa7678bcb5799f95918cb20924d3a8 + React-jserrorhandler: 872045564849dadc0692bf034be4fc77b0f6c3e8 + React-jsi: 5fa3dfbe4f1d6b1fb08650cb877c340ddb70066d + React-jsiexecutor: d7e1aa9e9aefff1e6aee2beea13eb98be431a67f + React-jsinspector: f356e49aa086380d3a4892708ca173ad31ac69c1 + React-logger: 7b19bdfb254772a0332d6cd4d66eceb0678b6730 + React-Mapbuffer: 6f392912435adb8fbf4c3eee0e79a0a0b4e4b717 + react-native-compat: 84e00e8dcff9251278c0d48f2bce81f4502e3925 + react-native-config: 86038147314e2e6d10ea9972022aa171e6b1d4d8 + react-native-get-random-values: 21325b2244dfa6b58878f51f9aa42821e7ba3d06 react-native-mmkv: e97c0c79403fb94577e5d902ab1ebd42b0715b43 - React-nativeconfig: 1166714a4f7ea57a0df5c2cb44fbc70f98d580f9 - React-NativeModulesApple: 726664e9829eb5eed8170241000e46ead269a05f - React-perflogger: 0dd9f1725d55f8264b81efadd373fe1d9cca7dc2 - React-RCTActionSheet: 05656d2102b0d0a2676d58bad4d80106af5367b2 - React-RCTAnimation: 6c66beae98730fb7615df28caf651e295f2401e5 - React-RCTAppDelegate: 891b80c596fffcb3f90431739495d606a9a0d610 - React-RCTBlob: 8ecee445ec5fa9ed8a8621a136183c1045165100 - React-RCTFabric: f291e06bc63fef26cdd105537bae5c6a8d3bdca8 - React-RCTImage: 585b16465146cb839da02f3179ce7cb19d332642 - React-RCTLinking: 09ba11f7df62946e7ddca1b51aa3bf47b230e008 - React-RCTNetwork: e070f8d2fca60f1e9571936ce54d165e77129e76 - React-RCTSettings: b08c7ff191f0a5421aab198ea1086c9a8d513bde - React-RCTText: f6cc5a3cf0f1a4f3d1256657dca1025e4cfe45e0 - React-RCTVibration: d9948962139f9924ef87f23ab240e045e496213b - React-rendererdebug: ee05480666415f7a76e6cf0a7a50363423f44809 - React-rncore: 42c09dbe67cc6355398d8739e43af36d246a35b0 - React-runtimeexecutor: 56f562a608056fb0c1711d900a992e26f375d817 - React-runtimescheduler: 814b644a5f456c7df1fba7bcd9914707152527c6 - React-utils: 987a4526a2fc0acdfaf87888adfe0bf9d0452066 - ReactCommon: 2947b0bffd82ea0e58ca7928881152d4c6dae9af + react-native-netinfo: bdb108d340cdb41875c9ced535977cac6d2ff321 + React-nativeconfig: 754233aac2a769578f828093b672b399355582e6 + React-NativeModulesApple: a03b2da2b8e127d5f5ee29c683e0deba7a9e1575 + React-perflogger: 68ec84e2f858a3e35009aef8866b55893e5e0a1f + React-RCTActionSheet: 348c4c729fdfb874f6937abbea90355ecaa6977c + React-RCTAnimation: 9fb1232af37d25d03415af2e0b8ab3b585ed856d + React-RCTAppDelegate: e0d41ac7fc71b5badb381c70ba585951ba7c8d2a + React-RCTBlob: 70b608915d20ffd397f8ba52278bee7e73f16994 + React-RCTFabric: 8f1fbaba0d9484dab098886b0c2fb7388212073a + React-RCTImage: 520fe02462804655e39b6657996e47277e6f0115 + React-RCTLinking: fb46b9dfea24f4a876163f95769ab279851e0b65 + React-RCTNetwork: dd4396889c20fa8872d4028a4d08f2d2888e2c7f + React-RCTSettings: a7d6fe4b52b98c08b12532a42a18cb12a1667d0a + React-RCTText: df7267a4bc092429fcf285238fbe67a89406ff44 + React-RCTVibration: df03af479dc7ec756e2ca73eb6ce2fa3da6b2888 + React-rendererdebug: ce0744f4121882c76d7a1b2836b8353246d884f8 + React-rncore: a25aef34fd36c808c7596ce6c3bcebdad6dfe09d + React-runtimeexecutor: b7f307017d54701cf3a4ae41c7558051e0660658 + React-runtimescheduler: a884a55560e2a90caa1cbe0b9eaa24a5add4fa2c + React-utils: d07d009101c7dabff68b710da5c4a47b7a850d98 + ReactCommon: 8cae78d3c3eceff20ee4bbca8bb73b675a45fd5d + RNCAsyncStorage: 826b603ae9c0f88b5ac4e956801f755109fa4d5c + RNCClipboard: 0a720adef5ec193aa0e3de24c3977222c7e52a37 + RNSVG: d00c8f91c3cbf6d476451313a18f04d220d4f396 SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 - Yoga: 9e6a04eacbd94f97d94577017e9f23b3ab41cf6c + Yoga: c716aea2ee01df6258550c7505fa61b248145ced PODFILE CHECKSUM: 7edb5fbbb7e8f1de833430ef5c2e33b79a4aa763 diff --git a/examples/react-native/ios/PrivacyInfo.xcprivacy b/examples/react-native/ios/PrivacyInfo.xcprivacy new file mode 100644 index 000000000..41b8317f0 --- /dev/null +++ b/examples/react-native/ios/PrivacyInfo.xcprivacy @@ -0,0 +1,37 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyCollectedDataTypes + + NSPrivacyTracking + + + diff --git a/examples/react-native/metro.config.js b/examples/react-native/metro.config.js index 457177eb9..c8f89f22f 100644 --- a/examples/react-native/metro.config.js +++ b/examples/react-native/metro.config.js @@ -23,8 +23,6 @@ const config = makeMetroConfig({ '@babel/runtime': path.resolve(__dirname, './node_modules/@babel/runtime'), // point how `@lens-protocol` linked packages should resolve react without having 2 duplicated versions react: path.resolve(__dirname, 'node_modules/react'), - // point how `@lens-protocol` linked packages should resolve ethers without having 2 duplicated versions - ethers: path.resolve(__dirname, 'node_modules/ethers'), }, }, transformer: { diff --git a/examples/react-native/package.json b/examples/react-native/package.json index ea4b0cdd8..e68e61fe7 100644 --- a/examples/react-native/package.json +++ b/examples/react-native/package.json @@ -11,39 +11,50 @@ "test": "echo \"Not in scope for this example\"" }, "dependencies": { + "@ethersproject/providers": "^5.7.2", "@ethersproject/shims": "^5.7.0", - "@gluestack-style/react": "^1.0.48", - "@gluestack-ui/config": "^1.1.16", - "@gluestack-ui/themed": "^1.1.9", + "@gluestack-style/react": "^1.0.54", + "@gluestack-ui/config": "^1.1.18", + "@gluestack-ui/themed": "^1.1.22", "@lens-protocol/metadata": "^1.1.6", "@lens-protocol/react-native": "link:../../packages/react-native", - "ethers": "^5.7.2", - "react": "18.2.0", - "react-native": "0.73.5", - "react-native-get-random-values": "^1.10.0", + "@react-native-async-storage/async-storage": "^1.23.1", + "@react-native-clipboard/clipboard": "^1.14.1", + "@react-native-community/netinfo": "^11.3.1", + "@walletconnect/modal-react-native": "^1.1.0", + "@walletconnect/react-native-compat": "^2.12.2", + "react": "^18.2.0", + "react-native": "^0.73.7", + "react-native-config": "^1.5.1", + "react-native-get-random-values": "^1.11.0", + "react-native-macos": "^0.73.25", "react-native-mmkv": "~2.11.0", - "react-native-svg": "13.4.0" + "react-native-modal": "^13.0.1", + "react-native-svg": "^13.14.0", + "react-native-web": "^0.19.11", + "react-native-windows": "^0.73.11" }, "devDependencies": { - "@babel/core": "^7.20.0", - "@babel/preset-env": "^7.20.0", - "@babel/runtime": "^7.20.0", + "@babel/core": "^7.24.4", + "@babel/preset-env": "^7.24.4", + "@babel/runtime": "^7.24.4", "@lens-protocol/eslint-config": "link:../../packages/eslint-config", "@lens-protocol/prettier-config": "link:../../packages/prettier-config", "@react-native-community/cli-platform-android": "^12.3.6", - "@react-native/babel-preset": "0.73.21", - "@react-native/eslint-config": "0.73.2", + "@react-native/babel-preset": "^0.73.21", + "@react-native/eslint-config": "^0.73.2", "@react-native/gradle-plugin": "^0.73.4", - "@react-native/metro-config": "0.73.5", - "@react-native/typescript-config": "0.73.1", - "@rnx-kit/babel-preset-metro-react-native": "^1.1.6", - "@rnx-kit/metro-config": "^1.3.14", - "@rnx-kit/metro-resolver-symlinks": "^0.1.35", - "@types/react": "^18.2.6", + "@react-native/metro-config": "^0.73.5", + "@react-native/typescript-config": "^0.73.1", + "@rnx-kit/babel-preset-metro-react-native": "^1.1.8", + "@rnx-kit/metro-config": "^1.3.15", + "@rnx-kit/metro-resolver-symlinks": "^0.1.36", + "@types/react": "^18.2.79", "@types/react-native": "^0.73.0", - "eslint": "^8.54.0", - "prettier": "2.8.8", - "typescript": "5.0.4" + "eslint": "^8.57.0", + "prettier": "^2.8.8", + "react-dom": "^18.2.0", + "typescript": "^5.4.5" }, "engines": { "node": ">=18" diff --git a/examples/react-native/src/App.tsx b/examples/react-native/src/App.tsx index 56a52d8c3..7e2c5a0fd 100644 --- a/examples/react-native/src/App.tsx +++ b/examples/react-native/src/App.tsx @@ -2,29 +2,47 @@ import './shims'; import { config } from '@gluestack-ui/config'; import { Box, GluestackUIProvider, SafeAreaView } from '@gluestack-ui/themed'; -import { LensConfig, LensProvider, development } from '@lens-protocol/react-native'; +import { LensConfig, LensProvider } from '@lens-protocol/react-native'; import { storage } from '@lens-protocol/react-native/storage/mmkv'; -import React from 'react'; +import { IProvider, useWalletConnectModal } from '@walletconnect/modal-react-native'; +import React, { useEffect, useRef } from 'react'; -import { Main } from './Main'; -import { bindings } from './wallet'; - -const lensConfig: LensConfig = { - bindings: bindings(), - environment: development, - storage: storage(), -}; +import { ConnectButton } from './components/ConnectButton'; +import { Main } from './components/Main'; +import { WalletConnectModal } from './components/WalletConnectModal'; +import { Deferred } from './utils/Deferred'; +import { bindings } from './utils/bindings'; +import { getLensEnvironment } from './utils/environment'; export function App() { + const { provider } = useWalletConnectModal(); + + const deferred = useRef(new Deferred()); + + useEffect(() => { + if (provider) { + deferred.current.resolve(provider); + } + }, [provider]); + + const lensConfig: LensConfig = { + bindings: bindings(deferred.current.promise), + environment: getLensEnvironment(), + storage: storage(), + origin: 'https://nativelens.com', + }; + return (
+ + ); } diff --git a/examples/react-native/src/LogoutButton.tsx b/examples/react-native/src/LogoutButton.tsx deleted file mode 100644 index 9d770f65e..000000000 --- a/examples/react-native/src/LogoutButton.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Button, ButtonText } from '@gluestack-ui/themed'; -import { useLogout } from '@lens-protocol/react-native'; -import React from 'react'; - -export function LogoutButton() { - const { execute: logout, loading } = useLogout(); - - return ( - - ); -} diff --git a/examples/react-native/src/components/ConnectButton.tsx b/examples/react-native/src/components/ConnectButton.tsx new file mode 100644 index 000000000..fa4652eae --- /dev/null +++ b/examples/react-native/src/components/ConnectButton.tsx @@ -0,0 +1,25 @@ +import '@walletconnect/react-native-compat'; +import { Button, ButtonText } from '@gluestack-ui/themed'; +import { useLogout } from '@lens-protocol/react-native'; +import { useWalletConnectModal } from '@walletconnect/modal-react-native'; +import React from 'react'; + +export function ConnectButton() { + const { open, isConnected, provider } = useWalletConnectModal(); + const { execute: logout } = useLogout(); + + const onPress = () => { + if (isConnected && provider) { + void provider.disconnect(); + void logout(); + } else { + void open(); + } + }; + + return ( + + ); +} diff --git a/examples/react-native/src/ErrorCallout.tsx b/examples/react-native/src/components/ErrorCallout.tsx similarity index 100% rename from examples/react-native/src/ErrorCallout.tsx rename to examples/react-native/src/components/ErrorCallout.tsx diff --git a/examples/react-native/src/LoginButton.tsx b/examples/react-native/src/components/LoginButton.tsx similarity index 100% rename from examples/react-native/src/LoginButton.tsx rename to examples/react-native/src/components/LoginButton.tsx diff --git a/examples/react-native/src/LoginForm.tsx b/examples/react-native/src/components/LoginForm.tsx similarity index 95% rename from examples/react-native/src/LoginForm.tsx rename to examples/react-native/src/components/LoginForm.tsx index 731f8431c..4aff17d90 100644 --- a/examples/react-native/src/LoginForm.tsx +++ b/examples/react-native/src/components/LoginForm.tsx @@ -16,7 +16,6 @@ export function LoginForm({ address }: LoginFormProps) { loading, } = useProfilesManaged({ for: address, - includeOwned: true, }); if (loading) { @@ -36,7 +35,7 @@ export function LoginForm({ address }: LoginFormProps) { Select a profile to log in - + {profiles.map((profile) => ( ))} diff --git a/examples/react-native/src/Main.tsx b/examples/react-native/src/components/Main.tsx similarity index 60% rename from examples/react-native/src/Main.tsx rename to examples/react-native/src/components/Main.tsx index 3b6718f2f..2227a90d5 100644 --- a/examples/react-native/src/Main.tsx +++ b/examples/react-native/src/components/Main.tsx @@ -1,14 +1,14 @@ -import { Spinner, Text, VStack } from '@gluestack-ui/themed'; +import { Heading, Spinner, Text, VStack } from '@gluestack-ui/themed'; import { useSession, SessionType } from '@lens-protocol/react-native'; +import { useWalletConnectModal } from '@walletconnect/modal-react-native'; import React from 'react'; import { ErrorCallout } from './ErrorCallout'; import { LoginForm } from './LoginForm'; -import { LogoutButton } from './LogoutButton'; import { MyProfile } from './MyProfile'; -import { wallet } from './wallet'; export function Main() { + const { address } = useWalletConnectModal(); const { data: session, error, loading } = useSession(); if (loading) { @@ -19,8 +19,22 @@ export function Main() { return ; } + if (!address) { + return ( + + + Welcome to Lens + + + + Connect your wallet to begin. + + + ); + } + if (session.authenticated === false) { - return ; + return ; } if (session.type === SessionType.JustWallet) { @@ -29,7 +43,6 @@ export function Main() { Welcome {session.address}, you need a Profile to use this app. - ); } diff --git a/examples/react-native/src/MyProfile.tsx b/examples/react-native/src/components/MyProfile.tsx similarity index 95% rename from examples/react-native/src/MyProfile.tsx rename to examples/react-native/src/components/MyProfile.tsx index 033bd1123..d588c4890 100644 --- a/examples/react-native/src/MyProfile.tsx +++ b/examples/react-native/src/components/MyProfile.tsx @@ -12,8 +12,6 @@ import { import { Profile } from '@lens-protocol/react-native'; import React from 'react'; -import { LogoutButton } from './LogoutButton'; - type ProfileAvatarProps = { profile: Profile; }; @@ -34,6 +32,7 @@ function ProfileAvatar({ profile }: ProfileAvatarProps) { source={{ uri, }} + alt="profile image" /> )} @@ -94,10 +93,6 @@ export function MyProfile({ profile }: MyProfileProps) { following - - - - ); } diff --git a/examples/react-native/src/components/WalletConnectModal.tsx b/examples/react-native/src/components/WalletConnectModal.tsx new file mode 100644 index 000000000..014ac5279 --- /dev/null +++ b/examples/react-native/src/components/WalletConnectModal.tsx @@ -0,0 +1,52 @@ +import '@walletconnect/react-native-compat'; +import Clipboard from '@react-native-clipboard/clipboard'; +import { WalletConnectModal as Modal } from '@walletconnect/modal-react-native'; +import React from 'react'; +import Config from 'react-native-config'; + +import { getChainId } from '../utils/environment'; + +const projectId = Config.WALLET_CONNECT_PROJECT_ID || ''; // your WalletConnect Cloud Project ID + +const sessionParams = { + namespaces: { + eip155: { + methods: [ + 'eth_sendTransaction', + 'eth_signTransaction', + 'eth_sign', + 'personal_sign', + 'eth_signTypedData', + ], + chains: [`eip155:${getChainId()}`], + events: ['chainChanged', 'accountsChanged'], + rpcMap: {}, + }, + }, +}; + +const providerMetadata = { + name: 'NativeLens', + description: 'Lens React Native SDK Example using WalletConnect', + url: 'https://nativelens.com/', + icons: ['https://avatars.githubusercontent.com/u/37784886'], + redirect: { + native: 'nativelens://', + universal: 'nativelens.com', + }, +}; + +export function WalletConnectModal() { + const onCopy = (value: string) => { + Clipboard.setString(value); + }; + + return ( + + ); +} diff --git a/examples/react-native/src/utils/Deferred.ts b/examples/react-native/src/utils/Deferred.ts new file mode 100644 index 000000000..94765a03e --- /dev/null +++ b/examples/react-native/src/utils/Deferred.ts @@ -0,0 +1,15 @@ +/** + * Unwraps the promise to allow resolving/rejecting outside the Promise constructor + */ +export class Deferred { + readonly promise: Promise; + resolve!: (value: T) => void; + reject!: (reason?: unknown) => void; + + constructor() { + this.promise = new Promise((resolve, reject) => { + this.resolve = resolve; + this.reject = reject; + }); + } +} diff --git a/examples/react-native/src/utils/bindings.ts b/examples/react-native/src/utils/bindings.ts new file mode 100644 index 000000000..6b819dd3d --- /dev/null +++ b/examples/react-native/src/utils/bindings.ts @@ -0,0 +1,28 @@ +import { JsonRpcProvider, JsonRpcSigner, Web3Provider } from '@ethersproject/providers'; +import { IBindings } from '@lens-protocol/react-native'; +import { IProvider } from '@walletconnect/modal-react-native'; + +export function bindings(providerPromise: Promise): IBindings { + return { + getProvider: async (): Promise => { + const provider = await providerPromise; + + if (!provider) { + throw new Error('Provider not defined'); + } + + return new Web3Provider(provider); + }, + getSigner: async (): Promise => { + const provider = await providerPromise; + + if (!provider) { + throw new Error('Provider not defined'); + } + + const ethersProvider = new Web3Provider(provider); + + return ethersProvider.getSigner(); + }, + }; +} diff --git a/examples/react-native/src/utils/environment.ts b/examples/react-native/src/utils/environment.ts new file mode 100644 index 000000000..33da02881 --- /dev/null +++ b/examples/react-native/src/utils/environment.ts @@ -0,0 +1,26 @@ +import { EnvironmentConfig, development, production } from '@lens-protocol/react-native'; +import Config from 'react-native-config'; + +const environment = Config.ENVIRONMENT || 'development'; + +export function getChainId(): number { + switch (environment) { + case 'production': + return 137; // Polygon Mainnet + case 'development': + return 80002; // Polygon Testnet Amoy + default: + throw new Error(`Unknown environment ${environment}`); + } +} + +export function getLensEnvironment(): EnvironmentConfig { + switch (environment) { + case 'production': + return production; + case 'development': + return development; + default: + throw new Error(`Unknown environment ${environment}`); + } +} diff --git a/examples/react-native/src/wallet.ts b/examples/react-native/src/wallet.ts deleted file mode 100644 index 43ea1ca73..000000000 --- a/examples/react-native/src/wallet.ts +++ /dev/null @@ -1,22 +0,0 @@ -// This is NOT PRODUCTION READY implementation of the EOA. -// It's a developer responsibility to provide a secure wallet implementation. -// The purpose of this example is to just showcase the `@lens-protocol/react-native` integration. - -import { IBindings } from '@lens-protocol/react-native'; -import { providers, Wallet } from 'ethers'; - -const provider = new providers.InfuraProvider('maticmum'); - -// This is the private key of the `test/wanna` profile -// It's a public private key so anyone can modify the profile -// For your own convenience change to the private key of a new wallet -const testWalletPrivateKey = '6c434da5e5c0e3a8e0db5cf835d23e04c7592037854f0700c26836be7581c68c'; - -export const wallet = new Wallet(testWalletPrivateKey, provider); - -export function bindings(): IBindings { - return { - getProvider: async () => provider, - getSigner: async () => wallet, - }; -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 57f17b747..b3368b351 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -161,51 +161,81 @@ importers: examples/react-native: dependencies: + '@ethersproject/providers': + specifier: ^5.7.2 + version: 5.7.2 '@ethersproject/shims': specifier: ^5.7.0 version: 5.7.0 '@gluestack-style/react': - specifier: ^1.0.48 + specifier: ^1.0.54 version: 1.0.54 '@gluestack-ui/config': - specifier: ^1.1.16 + specifier: ^1.1.18 version: 1.1.18(@gluestack-style/react@1.0.54)(@gluestack-ui/themed@1.1.22) '@gluestack-ui/themed': - specifier: ^1.1.9 - version: 1.1.22(@gluestack-style/react@1.0.54)(@types/react-native@0.73.0)(react-native-svg@13.4.0)(react-native@0.73.5)(react@18.2.0) + specifier: ^1.1.22 + version: 1.1.22(@gluestack-style/react@1.0.54)(@types/react-native@0.73.0)(react-dom@18.2.0)(react-native-svg@13.14.0)(react-native-web@0.19.11)(react-native@0.73.7)(react@18.2.0) '@lens-protocol/metadata': specifier: ^1.1.6 version: 1.1.6(zod@3.22.4) '@lens-protocol/react-native': specifier: link:../../packages/react-native version: link:../../packages/react-native - ethers: - specifier: ^5.7.2 - version: 5.7.2 + '@react-native-async-storage/async-storage': + specifier: ^1.23.1 + version: 1.23.1(react-native@0.73.7) + '@react-native-clipboard/clipboard': + specifier: ^1.14.1 + version: 1.14.1(react-native-macos@0.73.26)(react-native-windows@0.73.12)(react-native@0.73.7)(react@18.2.0) + '@react-native-community/netinfo': + specifier: ^11.3.1 + version: 11.3.1(react-native@0.73.7) + '@walletconnect/modal-react-native': + specifier: ^1.1.0 + version: 1.1.0(@react-native-async-storage/async-storage@1.23.1)(@react-native-community/netinfo@11.3.1)(@walletconnect/react-native-compat@2.12.2)(react-native-get-random-values@1.11.0)(react-native-modal@13.0.1)(react-native-svg@13.14.0)(react-native@0.73.7)(react@18.2.0) + '@walletconnect/react-native-compat': + specifier: ^2.12.2 + version: 2.12.2(@react-native-async-storage/async-storage@1.23.1)(@react-native-community/netinfo@11.3.1)(react-native-get-random-values@1.11.0)(react-native@0.73.7) react: - specifier: 18.2.0 + specifier: ^18.2.0 version: 18.2.0 react-native: - specifier: 0.73.5 - version: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + specifier: ^0.73.7 + version: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native-config: + specifier: ^1.5.1 + version: 1.5.1(react-native-windows@0.73.12) react-native-get-random-values: - specifier: ^1.10.0 - version: 1.11.0(react-native@0.73.5) + specifier: ^1.11.0 + version: 1.11.0(react-native@0.73.7) + react-native-macos: + specifier: ^0.73.25 + version: 0.73.26(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react-native@0.73.7)(react@18.2.0) react-native-mmkv: specifier: ~2.11.0 - version: 2.11.0(react-native@0.73.5)(react@18.2.0) + version: 2.11.0(react-native@0.73.7)(react@18.2.0) + react-native-modal: + specifier: ^13.0.1 + version: 13.0.1(react-native@0.73.7)(react@18.2.0) react-native-svg: - specifier: 13.4.0 - version: 13.4.0(react-native@0.73.5)(react@18.2.0) + specifier: ^13.14.0 + version: 13.14.0(react-native@0.73.7)(react@18.2.0) + react-native-web: + specifier: ^0.19.11 + version: 0.19.11(react-dom@18.2.0)(react@18.2.0) + react-native-windows: + specifier: ^0.73.11 + version: 0.73.12(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react-native@0.73.7)(react@18.2.0) devDependencies: '@babel/core': - specifier: ^7.20.0 + specifier: ^7.24.4 version: 7.24.4 '@babel/preset-env': - specifier: ^7.20.0 + specifier: ^7.24.4 version: 7.24.4(@babel/core@7.24.4) '@babel/runtime': - specifier: ^7.20.0 + specifier: ^7.24.4 version: 7.24.4 '@lens-protocol/eslint-config': specifier: link:../../packages/eslint-config @@ -217,44 +247,47 @@ importers: specifier: ^12.3.6 version: 12.3.6 '@react-native/babel-preset': - specifier: 0.73.21 + specifier: ^0.73.21 version: 0.73.21(@babel/core@7.24.4)(@babel/preset-env@7.24.4) '@react-native/eslint-config': - specifier: 0.73.2 - version: 0.73.2(eslint@8.57.0)(prettier@2.8.8)(typescript@5.0.4) + specifier: ^0.73.2 + version: 0.73.2(eslint@8.57.0)(prettier@2.8.8)(typescript@5.4.5) '@react-native/gradle-plugin': specifier: ^0.73.4 version: 0.73.4 '@react-native/metro-config': - specifier: 0.73.5 + specifier: ^0.73.5 version: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4) '@react-native/typescript-config': - specifier: 0.73.1 + specifier: ^0.73.1 version: 0.73.1 '@rnx-kit/babel-preset-metro-react-native': - specifier: ^1.1.6 + specifier: ^1.1.8 version: 1.1.8(@babel/core@7.24.4)(@babel/runtime@7.24.4)(@react-native/babel-preset@0.73.21) '@rnx-kit/metro-config': - specifier: ^1.3.14 - version: 1.3.15(@react-native/metro-config@0.73.5)(react-native@0.73.5)(react@18.2.0) + specifier: ^1.3.15 + version: 1.3.15(@react-native/metro-config@0.73.5)(react-native@0.73.7)(react@18.2.0) '@rnx-kit/metro-resolver-symlinks': - specifier: ^0.1.35 + specifier: ^0.1.36 version: 0.1.36 '@types/react': - specifier: ^18.2.6 + specifier: ^18.2.79 version: 18.2.79 '@types/react-native': specifier: ^0.73.0 version: 0.73.0(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) eslint: - specifier: ^8.54.0 + specifier: ^8.57.0 version: 8.57.0 prettier: - specifier: 2.8.8 + specifier: ^2.8.8 version: 2.8.8 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) typescript: - specifier: 5.0.4 - version: 5.0.4 + specifier: ^5.4.5 + version: 5.4.5 examples/shared: {} @@ -1471,13 +1504,6 @@ packages: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 - /@ampproject/remapping@2.3.0: - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - /@apollo/client@3.9.11(@types/react@18.2.79)(graphql@16.8.1)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-H7e9m7cRcFO93tokwzqrsbnfKorkpV24xU30hFH5u2g6B+c1DMo/ouyF/YrBPdrTzqxQCjTUmds/FLmJ7626GA==} peerDependencies: @@ -1603,6 +1629,83 @@ packages: - encoding dev: true + /@azure/abort-controller@1.1.0: + resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} + engines: {node: '>=12.0.0'} + dependencies: + tslib: 2.6.2 + dev: false + + /@azure/abort-controller@2.1.2: + resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} + engines: {node: '>=18.0.0'} + dependencies: + tslib: 2.6.2 + dev: false + + /@azure/core-auth@1.7.2: + resolution: {integrity: sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==} + engines: {node: '>=18.0.0'} + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-util': 1.2.0 + tslib: 2.6.2 + dev: false + + /@azure/core-rest-pipeline@1.10.1: + resolution: {integrity: sha512-Kji9k6TOFRDB5ZMTw8qUf2IJ+CeJtsuMdAHox9eqpTf1cefiNMpzrfnF6sINEBZJsaVaWgQ0o48B6kcUH68niA==} + engines: {node: '>=14.0.0'} + dependencies: + '@azure/abort-controller': 1.1.0 + '@azure/core-auth': 1.7.2 + '@azure/core-tracing': 1.1.2 + '@azure/core-util': 1.2.0 + '@azure/logger': 1.1.2 + form-data: 4.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + tslib: 2.6.2 + uuid: 8.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@azure/core-tracing@1.1.2: + resolution: {integrity: sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==} + engines: {node: '>=18.0.0'} + dependencies: + tslib: 2.6.2 + dev: false + + /@azure/core-util@1.2.0: + resolution: {integrity: sha512-ffGIw+Qs8bNKNLxz5UPkz4/VBM/EZY07mPve1ZYFqYUdPwFqRj0RPk0U7LZMOfT7GCck9YjuT1Rfp1PApNl1ng==} + engines: {node: '>=14.0.0'} + dependencies: + '@azure/abort-controller': 1.1.0 + tslib: 2.6.2 + dev: false + + /@azure/logger@1.1.2: + resolution: {integrity: sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==} + engines: {node: '>=18.0.0'} + dependencies: + tslib: 2.6.2 + dev: false + + /@azure/opentelemetry-instrumentation-azure-sdk@1.0.0-beta.5: + resolution: {integrity: sha512-fsUarKQDvjhmBO4nIfaZkfNSApm1hZBzcvpNbSrXdcUBxu7lRvKsV5DnwszX7cnhLyVOW9yl1uigtRQ1yDANjA==} + engines: {node: '>=14.0.0'} + dependencies: + '@azure/core-tracing': 1.1.2 + '@azure/logger': 1.1.2 + '@opentelemetry/api': 1.8.0 + '@opentelemetry/core': 1.24.0(@opentelemetry/api@1.8.0) + '@opentelemetry/instrumentation': 0.41.2(@opentelemetry/api@1.8.0) + tslib: 2.6.2 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/code-frame@7.23.4: resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} engines: {node: '>=6.9.0'} @@ -1646,12 +1749,13 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /@babel/core@7.24.4: resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.3.0 + '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.24.2 '@babel/generator': 7.24.4 '@babel/helper-compilation-targets': 7.23.6 @@ -1669,8 +1773,8 @@ packages: transitivePeerDependencies: - supports-color - /@babel/eslint-parser@7.24.1(@babel/core@7.24.4)(eslint@8.57.0): - resolution: {integrity: sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ==} + /@babel/eslint-parser@7.23.10(@babel/core@7.24.4)(eslint@8.57.0): + resolution: {integrity: sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 @@ -1691,6 +1795,7 @@ packages: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 + dev: true /@babel/generator@7.24.4: resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} @@ -1749,6 +1854,7 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 + dev: true /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.24.4): resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} @@ -1767,23 +1873,6 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.23.3): - resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.23.3) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4): resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} engines: {node: '>=6.9.0'} @@ -1811,6 +1900,7 @@ packages: '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 + dev: true /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.4): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} @@ -1836,15 +1926,16 @@ packages: resolve: 1.22.8 transitivePeerDependencies: - supports-color + dev: true - /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.23.3): - resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} + /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.24.4): + resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@5.5.0) lodash.debounce: 4.0.8 resolve: 1.22.8 @@ -1886,7 +1977,7 @@ packages: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.4 /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} @@ -1908,10 +1999,11 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 + '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 + dev: true /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} @@ -1921,7 +2013,7 @@ packages: dependencies: '@babel/core': 7.24.4 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 + '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 @@ -1950,6 +2042,7 @@ packages: '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 + dev: true /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.4): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} @@ -1972,6 +2065,7 @@ packages: '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 + dev: true /@babel/helper-replace-supers@7.22.20(@babel/core@7.24.4): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} @@ -1984,17 +2078,6 @@ packages: '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - /@babel/helper-replace-supers@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} @@ -2049,8 +2132,8 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/template': 7.22.15 + '@babel/types': 7.23.4 /@babel/helpers@7.23.4: resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==} @@ -2061,6 +2144,7 @@ packages: '@babel/types': 7.23.4 transitivePeerDependencies: - supports-color + dev: true /@babel/helpers@7.24.4: resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} @@ -2121,6 +2205,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} @@ -2141,6 +2226,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.3) + dev: true /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} @@ -2162,6 +2248,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} @@ -2185,6 +2272,7 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) + dev: true /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.4): resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} @@ -2207,8 +2295,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.23.3) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.4): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} @@ -2218,28 +2307,29 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.24.4) '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-proposal-export-default-from@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-+0hrgGGV3xyYIjOrD/bUZk/iUwOIGuoANfRfVg1cPhYBxF+TIXSEcc42DqzBICmWsnAQ+SfKedY0bj8QD+LuMg==} + /@babel/plugin-proposal-export-default-from@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.23.3) + '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.23.3) + dev: true - /@babel/plugin-proposal-export-default-from@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-+0hrgGGV3xyYIjOrD/bUZk/iUwOIGuoANfRfVg1cPhYBxF+TIXSEcc42DqzBICmWsnAQ+SfKedY0bj8QD+LuMg==} + /@babel/plugin-proposal-export-default-from@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.24.4) /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.3): resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} @@ -2251,6 +2341,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + dev: true /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.4): resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} @@ -2273,6 +2364,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + dev: true /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.4): resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} @@ -2292,12 +2384,13 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.24.4 + '@babel/compat-data': 7.23.3 '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.23.3) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) + dev: true /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.4): resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} @@ -2306,12 +2399,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.24.4 + '@babel/compat-data': 7.23.3 '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.4) /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.23.3): resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} @@ -2323,6 +2416,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + dev: true /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.4): resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} @@ -2346,6 +2440,7 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + dev: true /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.4): resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} @@ -2366,6 +2461,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 + dev: true /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} @@ -2382,6 +2478,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.4): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} @@ -2407,6 +2504,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} @@ -2423,7 +2521,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.4): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -2432,7 +2531,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} @@ -2441,6 +2540,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} @@ -2450,17 +2550,18 @@ packages: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-export-default-from@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-cNXSxv9eTkGUtd0PsNMK8Yx5xeScxfpWOUAxE+ZPAXXEcAMOC3fk7LRdXq5fvpra2pLx2p1YtkAhpUbB2SwaRA==} + /@babel/plugin-syntax-export-default-from@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.24.0 + dev: true - /@babel/plugin-syntax-export-default-from@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-cNXSxv9eTkGUtd0PsNMK8Yx5xeScxfpWOUAxE+ZPAXXEcAMOC3fk7LRdXq5fvpra2pLx2p1YtkAhpUbB2SwaRA==} + /@babel/plugin-syntax-export-default-from@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2475,6 +2576,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} @@ -2484,17 +2586,18 @@ packages: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-flow@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==} + /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.24.0 + dev: true - /@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==} + /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2510,15 +2613,16 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 dev: true /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.4): @@ -2538,6 +2642,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} @@ -2555,6 +2660,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} @@ -2571,6 +2677,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} @@ -2588,6 +2695,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.4): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} @@ -2614,6 +2722,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -2630,6 +2739,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -2646,6 +2756,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -2662,6 +2773,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -2678,6 +2790,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -2694,6 +2807,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -2711,6 +2825,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.4): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} @@ -2729,6 +2844,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} @@ -2758,24 +2874,6 @@ packages: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.3): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -2785,6 +2883,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.4): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} @@ -2804,15 +2903,16 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} @@ -2834,6 +2934,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.4): resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} @@ -2857,17 +2958,18 @@ packages: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) + dev: true - /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) + '@babel/core': 7.24.4 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} @@ -2888,15 +2990,17 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} @@ -2915,15 +3019,16 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-block-scoping@7.24.4(@babel/core@7.23.3): - resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==} + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.4): + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-transform-block-scoping@7.24.4(@babel/core@7.24.4): resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==} @@ -2943,6 +3048,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} @@ -2964,6 +3070,7 @@ packages: '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.4): resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} @@ -2992,20 +3099,22 @@ packages: '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 + dev: true - /@babel/plugin-transform-classes@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} + /@babel/plugin-transform-classes@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.24.4 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.23.3) + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.4) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 @@ -3034,16 +3143,17 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 + dev: true - /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/template': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} @@ -3063,15 +3173,16 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} @@ -3091,6 +3202,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} @@ -3110,6 +3222,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} @@ -3129,6 +3242,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} @@ -3149,6 +3263,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} @@ -3169,6 +3284,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} @@ -3180,25 +3296,26 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) - /@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==} + /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.23.3) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.3) + dev: true - /@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==} + /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.4) /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} @@ -3208,16 +3325,17 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} @@ -3239,17 +3357,18 @@ packages: '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.23.6 + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} @@ -3271,6 +3390,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} @@ -3290,15 +3410,16 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-literals@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} @@ -3318,6 +3439,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} @@ -3337,15 +3459,17 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} @@ -3365,6 +3489,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} @@ -3386,6 +3511,7 @@ packages: '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 + dev: true /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.4): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} @@ -3398,17 +3524,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 - /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.22.5 - /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} engines: {node: '>=6.9.0'} @@ -3431,6 +3546,7 @@ packages: '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 + dev: true /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} @@ -3453,6 +3569,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} @@ -3473,6 +3590,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.4): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} @@ -3492,6 +3610,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} @@ -3511,6 +3630,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} @@ -3531,6 +3651,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} @@ -3554,6 +3675,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} @@ -3576,16 +3698,18 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + dev: true - /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.23.3) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.4) + dev: true /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} @@ -3606,6 +3730,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} @@ -3627,6 +3752,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} @@ -3647,15 +3773,16 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} @@ -3675,6 +3802,17 @@ packages: '@babel/core': 7.23.3 '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} @@ -3697,6 +3835,19 @@ packages: '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) + dev: true + + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.4): + resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} @@ -3718,15 +3869,17 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} @@ -3747,23 +3900,14 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.3): resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} @@ -3775,27 +3919,18 @@ packages: '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.24.4): + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - - /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} - engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.24.0 + dev: true - /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3803,27 +3938,18 @@ packages: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.24.4): + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - - /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} - engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.24.0 + dev: true - /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3843,6 +3969,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) '@babel/types': 7.23.4 + dev: true /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} @@ -3877,6 +4004,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 + dev: true /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} @@ -3896,6 +4024,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} @@ -3906,8 +4035,8 @@ packages: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.23.3): - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + /@babel/plugin-transform-runtime@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3915,15 +4044,16 @@ packages: '@babel/core': 7.23.3 '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.23.3) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.23.3) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.23.3) + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.3) + babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.3) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.3) semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true - /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.4): - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + /@babel/plugin-transform-runtime@7.23.4(@babel/core@7.24.4): + resolution: {integrity: sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3931,9 +4061,9 @@ packages: '@babel/core': 7.24.4 '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.4) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.4) + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.24.4) + babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.24.4) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.24.4) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -3946,15 +4076,16 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} @@ -3974,15 +4105,16 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true - /@babel/plugin-transform-spread@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.4): @@ -4003,15 +4135,16 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} @@ -4030,15 +4163,17 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} @@ -4057,6 +4192,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} @@ -4092,30 +4228,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.4) - /@babel/plugin-transform-typescript@7.24.4(@babel/core@7.23.3): - resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.23.3) - - /@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.4): - resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} @@ -4124,6 +4236,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} @@ -4143,6 +4256,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} @@ -4163,16 +4277,17 @@ packages: '@babel/core': 7.23.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.23.3): - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} @@ -4193,6 +4308,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} @@ -4293,6 +4409,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /@babel/preset-env@7.24.4(@babel/core@7.24.4): resolution: {integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==} @@ -4380,7 +4497,7 @@ packages: babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.4) babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4) babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.4) - core-js-compat: 3.37.0 + core-js-compat: 3.33.3 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -4393,8 +4510,8 @@ packages: dependencies: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.4) + '@babel/helper-validator-option': 7.22.15 + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.4) /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.3): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} @@ -4405,6 +4522,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/types': 7.23.4 esutils: 2.0.3 + dev: true /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.4): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} @@ -4512,6 +4630,7 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true /@babel/traverse@7.24.1(supports-color@5.5.0): resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} @@ -6072,7 +6191,7 @@ packages: '@legendapp/motion': '>=2.2' dependencies: '@gluestack-style/react': 1.0.54 - '@legendapp/motion': 2.3.0(react-native@0.73.5)(react@18.2.0) + '@legendapp/motion': 2.3.0(react-native@0.73.7)(react@18.2.0) dev: false /@gluestack-style/react@1.0.54: @@ -6082,7 +6201,7 @@ packages: normalize-css-color: 1.0.2 dev: false - /@gluestack-ui/accordion@1.0.4(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/accordion@1.0.4(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-zcoOo0spRUG11mVZk6wgsE22LRq8btYnxrxkrBFekmmE51sU7ccoe0XxwvFfEubRPNlD8VjZyuDYIL452Ha/Xw==} peerDependencies: react: '>=16' @@ -6091,16 +6210,17 @@ packages: react: optional: true dependencies: - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/accordion': 0.0.2(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/accordion': 0.0.2(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/actionsheet@0.2.41(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/actionsheet@0.2.41(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-g4jHSbvL8dOE/Eg8b2ANTwF2aGc4LvD6EqOgdX/233dsGfUH1lbT4NgVbEbBYRc8nyVZE5n3NF/owzRXcWbCPw==} peerDependencies: react: '>=16' @@ -6109,19 +6229,20 @@ packages: react: optional: true dependencies: - '@gluestack-ui/hooks': 0.1.11(react@18.2.0) - '@gluestack-ui/overlay': 0.1.14(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/transitions': 0.1.10(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/dialog': 0.0.4(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/hooks': 0.1.11(react-dom@18.2.0)(react@18.2.0) + '@gluestack-ui/overlay': 0.1.14(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/transitions': 0.1.10(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/dialog': 0.0.4(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/alert-dialog@0.1.28(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/alert-dialog@0.1.28(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-B1WdDjVmSA3/pz9qvlV9iVQIMSPj7DxN5vGznr6xFo9nJE4C30JidYBwK9VgGFo4qIibRkuzGVNzaZSCGOj4Hg==} peerDependencies: react: '>=16' @@ -6130,18 +6251,19 @@ packages: react: optional: true dependencies: - '@gluestack-ui/hooks': 0.1.11(react@18.2.0) - '@gluestack-ui/overlay': 0.1.14(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/dialog': 0.0.4(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/hooks': 0.1.11(react-dom@18.2.0)(react@18.2.0) + '@gluestack-ui/overlay': 0.1.14(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/dialog': 0.0.4(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/alert@0.1.13(react@18.2.0): + /@gluestack-ui/alert@0.1.13(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-5LxekYIWSF9SxJ7l0yg7QJwCptC1ua3PDRcpIloooxuHg0YP+sejoSfCxgAf5iwparsvY8ILWCYo1iP1rTN2ug==} peerDependencies: react: '>=16' @@ -6151,9 +6273,10 @@ packages: optional: true dependencies: react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /@gluestack-ui/avatar@0.1.16(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/avatar@0.1.16(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-5and3vzYuv/Si0q2n+5qOp1mmaT5GKgBBNtMBr+/gtYtqxPV299B0AUL513JDSRaDiJHw/gb0Xxaf5VbgJ0UNA==} peerDependencies: react: '>=16' @@ -6162,13 +6285,14 @@ packages: react: optional: true dependencies: - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/button@1.0.4(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/button@1.0.4(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-azM1D2qRcMs4gnIe8BkbBImIGCTjAAsUbh4vPHEz7sRXCS8wnOfg038EMcni+g8lmHTFb4nOSqAhuTdjRFprDg==} peerDependencies: react: '>=16' @@ -6177,15 +6301,16 @@ packages: react: optional: true dependencies: - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/checkbox@0.1.28(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/checkbox@0.1.28(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-V+FAt1dQro0Pqt4wA7w4Av5kR5lr7O8haqybDwxVjog0Pbp58s237XqbWz/bPx8mvbrU3O0tCdHKsYqdBqZ06g==} peerDependencies: react: '>=16' @@ -6194,15 +6319,16 @@ packages: react: optional: true dependencies: - '@gluestack-ui/form-control': 0.1.17(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/form-control': 0.1.17(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) '@react-aria/visually-hidden': 3.8.10(react@18.2.0) - '@react-native-aria/checkbox': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/utils': 0.2.11(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/checkbox': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/utils': 0.2.11(react-native@0.73.7)(react@18.2.0) '@react-stately/checkbox': 3.6.3(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false @@ -6214,10 +6340,10 @@ packages: '@gluestack-ui/themed': '>=1.1' dependencies: '@gluestack-style/react': 1.0.54 - '@gluestack-ui/themed': 1.1.22(@gluestack-style/react@1.0.54)(@types/react-native@0.73.0)(react-native-svg@13.4.0)(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/themed': 1.1.22(@gluestack-style/react@1.0.54)(@types/react-native@0.73.0)(react-dom@18.2.0)(react-native-svg@13.14.0)(react-native-web@0.19.11)(react-native@0.73.7)(react@18.2.0) dev: false - /@gluestack-ui/divider@0.1.8(react@18.2.0): + /@gluestack-ui/divider@0.1.8(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-l+OQ1XD5qI20ghxKbpi+pqntRtd0mtkmhfXYLODbjt2eec3U9kpV1xawXpfN/TFd45WWZTpEQ616sOQqFLo3RA==} peerDependencies: react: '>=16' @@ -6227,9 +6353,10 @@ packages: optional: true dependencies: react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /@gluestack-ui/fab@0.1.20(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/fab@0.1.20(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-N1vqn/6hOP1pzvcrKWHgsfhfLGF/wctbjqQQNc/z7Dzy8IbigA84vqD2p/xfp3d7KKDeE7BOPYFGvYNctuSPsg==} peerDependencies: react: '>=16' @@ -6238,15 +6365,16 @@ packages: react: optional: true dependencies: - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/form-control@0.1.17(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/form-control@0.1.17(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-ctmbce3Tf/rpZyXSleOI2aUrOZEa/t7ubaB61F9Y0CauoaELMHrfSr4UZ5y4GC7z7pwvLXtMEpzEWvDQ9Af9Bg==} peerDependencies: react: '>=16' @@ -6255,14 +6383,15 @@ packages: react: optional: true dependencies: - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/hooks@0.1.11(react@18.2.0): + /@gluestack-ui/hooks@0.1.11(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-bcBsF7bTo//JD6L9ekJu0rZs83qYD/pE/Uj3ih3OYEtGU0LDoYiGkBMmDRpVMcVv8bE3TCKivnhHaT/heafInA==} peerDependencies: react: '>=16' @@ -6272,9 +6401,10 @@ packages: optional: true dependencies: react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /@gluestack-ui/icon@0.1.20(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/icon@0.1.20(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-f/+DGR3139LU9NbMMvoumZWIwqy4B4e+xc02kAAubiv7p7aqGDV5KPm2JN5vVmCwiDRxX5u0F3SxodSQhEoQZA==} peerDependencies: react: '>=16' @@ -6283,15 +6413,16 @@ packages: react: optional: true dependencies: - '@gluestack-ui/provider': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/provider': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/image@0.1.9(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/image@0.1.9(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-Qalp99NrOz/AQM95fYhrKtO7+6s5vtgd8OkxGkdlU+HMiI0m6cDbQRG5jSE5M+RmWJLajfCmKYlNIg2rIj68HA==} peerDependencies: react: '>=16' @@ -6300,15 +6431,16 @@ packages: react: optional: true dependencies: - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/input@0.1.29(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/input@0.1.29(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-nrgE9NKL1qMleHhxZ7a0aS/A04b5U+ZliapQYoBV4t1TjJIyqpJcXIxQnXWp/JwHoWogJc+yZXAJnwcPK+bbeg==} peerDependencies: react: '>=16' @@ -6317,16 +6449,17 @@ packages: react: optional: true dependencies: - '@gluestack-ui/form-control': 0.1.17(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/form-control': 0.1.17(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/link@0.1.20(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/link@0.1.20(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-htYxFh2n1yJAq8JUGNMzOY4RV3F3+yD6QHCt5JpOo3ZBIyOZUMrLzPIaFmDPNRwb2sbzCFYZhK5Qk6v7IsWxPQ==} peerDependencies: react: '>=16' @@ -6335,15 +6468,16 @@ packages: react: optional: true dependencies: - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/menu@0.2.33(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/menu@0.2.33(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-jHGxqHrSCK0zji9kCY4VIXW5vEVCnQbeTQr7BEbvlSzhnA+ISoqQB/KX4GKGHkZEC60YwQJ8nYoqMeyPFvHt1A==} peerDependencies: react: '>=16' @@ -6352,22 +6486,23 @@ packages: react: optional: true dependencies: - '@gluestack-ui/hooks': 0.1.11(react@18.2.0) - '@gluestack-ui/overlay': 0.1.14(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-aria/overlays': 3.21.1(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/menu': 0.2.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/overlays': 0.3.12(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/hooks': 0.1.11(react-dom@18.2.0)(react@18.2.0) + '@gluestack-ui/overlay': 0.1.14(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-aria/overlays': 3.21.1(react-dom@18.2.0)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/menu': 0.2.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/overlays': 0.3.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) '@react-stately/utils': 3.9.1(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) react-stately: 3.30.1(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/modal@0.1.32(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/modal@0.1.32(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-nqAxbw6hdbHgt4sQR/JCRcwpr4avI4CD1E03Xu+nbfo86qeFi8LgzgSRkoxFQ3pDb0Mej6L/QdZ3RKMpcBPwRg==} peerDependencies: react: '>=16' @@ -6376,19 +6511,20 @@ packages: react: optional: true dependencies: - '@gluestack-ui/hooks': 0.1.11(react@18.2.0) - '@gluestack-ui/overlay': 0.1.14(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/dialog': 0.0.4(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/overlays': 0.3.12(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/hooks': 0.1.11(react-dom@18.2.0)(react@18.2.0) + '@gluestack-ui/overlay': 0.1.14(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/dialog': 0.0.4(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/overlays': 0.3.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/overlay@0.1.14(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/overlay@0.1.14(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-luLb6HRjF51PLfJC1RoEmdcC75WFN9x2jyMh9hTw2UPCzPKi7H0sTLgzyQwyJd57pH06otlJSzzVBxT7VV9QXw==} peerDependencies: react: '>=16' @@ -6397,15 +6533,16 @@ packages: react: optional: true dependencies: - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/overlays': 0.3.12(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/overlays': 0.3.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/popover@0.1.34(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/popover@0.1.34(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-Fr+VB+OWDsF55weCav2f2mtJG3b7xIIo1MC+4xWI4OmpuhGDJ4ixWic57mhtliRnHiJT+3Iyb6hJ2veT6u424Q==} peerDependencies: react: '>=16' @@ -6414,19 +6551,20 @@ packages: react: optional: true dependencies: - '@gluestack-ui/hooks': 0.1.11(react@18.2.0) - '@gluestack-ui/overlay': 0.1.14(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/dialog': 0.0.4(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/overlays': 0.3.12(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/hooks': 0.1.11(react-dom@18.2.0)(react@18.2.0) + '@gluestack-ui/overlay': 0.1.14(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/dialog': 0.0.4(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/overlays': 0.3.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/pressable@0.1.16(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/pressable@0.1.16(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-SGUqCCZyMgRtlDN5mO7CN0NM+NMG9S2M3BdhdjI48Jnaks1DdWxzZeaD5xlEhg+Ww/KtmGzVrlSKqPDvVyROiA==} peerDependencies: react: '>=16' @@ -6435,15 +6573,16 @@ packages: react: optional: true dependencies: - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/progress@0.1.14(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/progress@0.1.14(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-06ZiHV5JfCOvy+LVgTf91xoNrqVxHXsLJW5J2RphnAV2BsuPfE9Us99nt2NcEYkqK+gSN1rTk4yGZ7RA64DS9g==} peerDependencies: react: '>=16' @@ -6452,13 +6591,14 @@ packages: react: optional: true dependencies: - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/provider@0.1.12(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/provider@0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-EvDEknx6qkrJuKC8ygdixiTvnAAji9moArREueNJdhJp8Af53UIzgWk4m4oqGlRfgrw6p1xApgE/2VTwGE5f7w==} peerDependencies: react: '>=16' @@ -6467,15 +6607,16 @@ packages: react: optional: true dependencies: - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) tsconfig: 7.0.0 typescript: 4.9.5 transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/radio@0.1.29(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/radio@0.1.29(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-npPrKKLN5vMRYxL3nKBGLCMPz1azfD6Mb30Mwk2GHEaN3ib13BmpMKvXr4DyDkQUeicnGGLE/secZQG3iQPpkg==} peerDependencies: react: '>=16' @@ -6484,19 +6625,20 @@ packages: react: optional: true dependencies: - '@gluestack-ui/form-control': 0.1.17(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/form-control': 0.1.17(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) '@react-aria/visually-hidden': 3.8.10(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/radio': 0.2.10(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/radio': 0.2.10(react-native@0.73.7)(react@18.2.0) '@react-stately/radio': 3.10.2(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/react-native-aria@0.1.5(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/react-native-aria@0.1.5(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-6IaE4fcBaGMu3kSDKAoo1wE5qXcoKDX5YA14zzYzXN2d67/K9NYSjpoo/GbxDWZVl45X6Z9QLS/SBP7SmsPO+Q==} peerDependencies: react: '>=16' @@ -6505,13 +6647,14 @@ packages: react: optional: true dependencies: - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/select@0.1.25(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/select@0.1.25(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-whwfpFSo4/qvnaJR7a2uA0ca3MotMeBV4IyqpATk7AlMy+NZXi8RjQR5sBzeGP5/RhzwDhcYC8gbCXhyBpJi+g==} peerDependencies: react: '>=16' @@ -6520,16 +6663,17 @@ packages: react: optional: true dependencies: - '@gluestack-ui/form-control': 0.1.17(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/hooks': 0.1.11(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/form-control': 0.1.17(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/hooks': 0.1.11(react-dom@18.2.0)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/slider@0.1.23(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/slider@0.1.23(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-8lIK03uFJwGaaoFdpnJ0mnCi/jK3y98HphbK34AwDpMFCHbjrG80jNz5YsoX7qTHgDQKwuADlHr7jprC9PM4gA==} peerDependencies: react: '>=16' @@ -6538,19 +6682,20 @@ packages: react: optional: true dependencies: - '@gluestack-ui/form-control': 0.1.17(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/hooks': 0.1.11(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/form-control': 0.1.17(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/hooks': 0.1.11(react-dom@18.2.0)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) '@react-aria/visually-hidden': 3.8.10(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/slider': 0.2.11(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/slider': 0.2.11(react-native@0.73.7)(react@18.2.0) '@react-stately/slider': 3.5.2(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/spinner@0.1.14(react@18.2.0): + /@gluestack-ui/spinner@0.1.14(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-6uLUvyJMhYR/sIMU/purfaYPqaKiLqnBi0n0LiWRsJNGDgENqdWVHMJpGTdWaFuCLxumZ7xnp0wG2KAdG9UyyQ==} peerDependencies: react: '>=16' @@ -6560,9 +6705,10 @@ packages: optional: true dependencies: react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /@gluestack-ui/switch@0.1.21(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/switch@0.1.21(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-mtntQcMWDMPgmEvBuan/svi3yt1ENiYsC+XvgKTIG5IFT8kZP6sgRZu12Jfu5vf8/fAfpe+nMqIgCgDzJ1xFbQ==} peerDependencies: react: '>=16' @@ -6571,17 +6717,18 @@ packages: react: optional: true dependencies: - '@gluestack-ui/form-control': 0.1.17(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/form-control': 0.1.17(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) '@react-stately/toggle': 3.7.2(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/tabs@0.1.16(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/tabs@0.1.16(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-voSV4J+Ec5u9oq0cCDvgrISrVf4ObYZpbyRDJvS3L/StJYk5lM5sEfLuI3w7stlyvit9pkwi4aQKKX0BN5wBuw==} peerDependencies: react: '>=16' @@ -6590,15 +6737,16 @@ packages: react: optional: true dependencies: - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/textarea@0.1.21(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/textarea@0.1.21(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-Ykzf03oPIErXVf4+9MuCtehc/q2IvU5OxW1Uhr1J/DQSHshcviUhWzYnNbXvDR+wluqojGRALynqzOfXFj2ONw==} peerDependencies: react: '>=16' @@ -6607,15 +6755,16 @@ packages: react: optional: true dependencies: - '@gluestack-ui/form-control': 0.1.17(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/form-control': 0.1.17(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/themed@1.1.22(@gluestack-style/react@1.0.54)(@types/react-native@0.73.0)(react-native-svg@13.4.0)(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/themed@1.1.22(@gluestack-style/react@1.0.54)(@types/react-native@0.73.0)(react-dom@18.2.0)(react-native-svg@13.14.0)(react-native-web@0.19.11)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-gdriivFCdddPR5GDuucNR8r0sLXns1y3qN7a7C38lMjodj5ygAZ7Bg+016vdzQKStQY66tvtxmFZyakkWBVzHg==} peerDependencies: '@gluestack-style/react': '>=1.0' @@ -6635,46 +6784,48 @@ packages: '@gluestack-style/animation-resolver': 1.0.4(@gluestack-style/react@1.0.54) '@gluestack-style/legend-motion-animation-driver': 1.0.3(@gluestack-style/react@1.0.54)(@legendapp/motion@2.3.0) '@gluestack-style/react': 1.0.54 - '@gluestack-ui/accordion': 1.0.4(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/actionsheet': 0.2.41(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/alert': 0.1.13(react@18.2.0) - '@gluestack-ui/alert-dialog': 0.1.28(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/avatar': 0.1.16(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/button': 1.0.4(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/checkbox': 0.1.28(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/divider': 0.1.8(react@18.2.0) - '@gluestack-ui/fab': 0.1.20(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/form-control': 0.1.17(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/icon': 0.1.20(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/image': 0.1.9(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/input': 0.1.29(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/link': 0.1.20(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/menu': 0.2.33(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/modal': 0.1.32(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/overlay': 0.1.14(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/popover': 0.1.34(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/pressable': 0.1.16(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/progress': 0.1.14(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/provider': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/radio': 0.1.29(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/select': 0.1.25(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/slider': 0.1.23(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/spinner': 0.1.14(react@18.2.0) - '@gluestack-ui/switch': 0.1.21(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/tabs': 0.1.16(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/textarea': 0.1.21(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/toast': 1.0.4(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/tooltip': 0.1.30(react-native@0.73.5)(react@18.2.0) - '@legendapp/motion': 2.3.0(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/accordion': 1.0.4(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/actionsheet': 0.2.41(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/alert': 0.1.13(react-dom@18.2.0)(react@18.2.0) + '@gluestack-ui/alert-dialog': 0.1.28(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/avatar': 0.1.16(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/button': 1.0.4(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/checkbox': 0.1.28(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/divider': 0.1.8(react-dom@18.2.0)(react@18.2.0) + '@gluestack-ui/fab': 0.1.20(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/form-control': 0.1.17(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/icon': 0.1.20(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/image': 0.1.9(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/input': 0.1.29(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/link': 0.1.20(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/menu': 0.2.33(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/modal': 0.1.32(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/overlay': 0.1.14(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/popover': 0.1.34(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/pressable': 0.1.16(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/progress': 0.1.14(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/provider': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/radio': 0.1.29(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/select': 0.1.25(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/slider': 0.1.23(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/spinner': 0.1.14(react-dom@18.2.0)(react@18.2.0) + '@gluestack-ui/switch': 0.1.21(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/tabs': 0.1.16(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/textarea': 0.1.21(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/toast': 1.0.4(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/tooltip': 0.1.30(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@legendapp/motion': 2.3.0(react-native@0.73.7)(react@18.2.0) '@types/react-native': 0.73.0(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) - react-native-svg: 13.4.0(react-native@0.73.5)(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native-svg: 13.14.0(react-native@0.73.7)(react@18.2.0) + react-native-web: 0.19.11(react-dom@18.2.0)(react@18.2.0) transitivePeerDependencies: - nativewind dev: false - /@gluestack-ui/toast@1.0.4(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/toast@1.0.4(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-GVEESsSl567OR/0JlVTuivK6G1EgfEC7N+CAuH6lx+s87qXcOMXeFAgltp6Mxl8g0g5hTPLWrDts2qQLzqwFOA==} peerDependencies: react: '>=16' @@ -6683,17 +6834,18 @@ packages: react: optional: true dependencies: - '@gluestack-ui/hooks': 0.1.11(react@18.2.0) - '@gluestack-ui/overlay': 0.1.14(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/transitions': 0.1.10(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/hooks': 0.1.11(react-dom@18.2.0)(react@18.2.0) + '@gluestack-ui/overlay': 0.1.14(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/transitions': 0.1.10(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/tooltip@0.1.30(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/tooltip@0.1.30(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-Z3HModlriqqnC7Jgk0s5aPwEamHfrMF11TKn3d/LyTMUQj9ZxoAD9IWT0rRvPU2/VXlydJHXbG0smnD6xVlHtA==} peerDependencies: react: '>=16' @@ -6702,18 +6854,19 @@ packages: react: optional: true dependencies: - '@gluestack-ui/hooks': 0.1.11(react@18.2.0) - '@gluestack-ui/overlay': 0.1.14(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/overlays': 0.3.12(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/hooks': 0.1.11(react-dom@18.2.0)(react@18.2.0) + '@gluestack-ui/overlay': 0.1.14(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/overlays': 0.3.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/transitions@0.1.10(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/transitions@0.1.10(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-oOwYAmbebAowDCDZyRdGwhK2of46b642OZQxBBkln/BX7YEvY4PhQIfup0HUCG9YA5IzlQnw0iwqREbaVNKIgA==} peerDependencies: react: '>=16' @@ -6722,16 +6875,17 @@ packages: react: optional: true dependencies: - '@gluestack-ui/overlay': 0.1.14(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/react-native-aria': 0.1.5(react-native@0.73.5)(react@18.2.0) - '@gluestack-ui/utils': 0.1.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) + '@gluestack-ui/overlay': 0.1.14(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/react-native-aria': 0.1.5(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@gluestack-ui/utils': 0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false - /@gluestack-ui/utils@0.1.12(react-native@0.73.5)(react@18.2.0): + /@gluestack-ui/utils@0.1.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-OhOkljhr7foCUJP//8LwMN3EX4/pniFWmQpk1yDJMQL9DaTJbP7s3HsnTM7UzH2kp9DR1Utoz9Y9WscH3ajLpQ==} peerDependencies: react: '>=16' @@ -6740,8 +6894,9 @@ packages: react: optional: true dependencies: - '@react-native-aria/focus': 0.2.9(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/focus': 0.2.9(react-native@0.73.7)(react@18.2.0) react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - react-native dev: false @@ -7563,7 +7718,7 @@ packages: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@babel/parser': 7.24.4 - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.23.3) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3) '@babel/traverse': 7.24.1(supports-color@5.5.0) '@babel/types': 7.24.0 '@graphql-tools/utils': 9.2.1(graphql@16.8.1) @@ -7582,7 +7737,7 @@ packages: dependencies: '@babel/core': 7.24.4 '@babel/parser': 7.24.4 - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.4) '@babel/traverse': 7.24.1(supports-color@5.5.0) '@babel/types': 7.24.0 '@graphql-tools/utils': 10.0.11(graphql@16.8.1) @@ -7986,26 +8141,26 @@ packages: /@internationalized/date@3.5.2: resolution: {integrity: sha512-vo1yOMUt2hzp63IutEaTUxROdvQg1qlMRsbCvbay2AK2Gai7wIgCyK5weEX3nHkiLgo4qCXHijFNC/ILhlRpOQ==} dependencies: - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 dev: false /@internationalized/message@3.1.2: resolution: {integrity: sha512-MHAWsZWz8jf6jFPZqpTudcCM361YMtPIRu9CXkYmKjJ/0R3pQRScV5C0zS+Qi50O5UAm8ecKhkXx6mWDDcF6/g==} dependencies: - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 intl-messageformat: 10.5.11 dev: false /@internationalized/number@3.5.1: resolution: {integrity: sha512-N0fPU/nz15SwR9IbfJ5xaS9Ss/O5h1sVXMZf43vc9mxEG48ovglvvzBjF53aHlq20uoR6c+88CrIXipU/LSzwg==} dependencies: - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 dev: false /@internationalized/string@3.2.1: resolution: {integrity: sha512-vWQOvRIauvFMzOO+h7QrdsJmtN1AXAFVcaLWP9AseRN2o7iHceZ6bIXhBD4teZl8i91A3gxKnWBlGgjCwU6MFQ==} dependencies: - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 dev: false /@irys/arweave@0.0.2: @@ -8324,6 +8479,7 @@ packages: '@types/node': 18.19.31 '@types/yargs': 16.0.9 chalk: 4.1.2 + dev: true /@jest/types@29.6.3: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} @@ -8374,12 +8530,6 @@ packages: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - /@jridgewell/source-map@0.3.6: - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} @@ -8402,7 +8552,7 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /@legendapp/motion@2.3.0(react-native@0.73.5)(react@18.2.0): + /@legendapp/motion@2.3.0(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-LtTD06eyz/Ge23FAR6BY+i9Gsgr/ZgxE12FneML8LrZGcZOSPN2Ojz3N2eJaTiA50kqoeqrGCaYJja8KgKpL6Q==} peerDependencies: nativewind: ^2.0.0 @@ -8416,7 +8566,7 @@ packages: dependencies: '@legendapp/tools': 2.0.1(react@18.2.0) react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) dev: false /@legendapp/tools@2.0.1(react@18.2.0): @@ -9111,7 +9261,7 @@ packages: '@metamask/providers': 10.2.1 '@metamask/sdk-communication-layer': 0.14.3 '@metamask/sdk-install-modal-web': 0.14.1(@types/react@18.2.38) - '@react-native-async-storage/async-storage': 1.23.1 + '@react-native-async-storage/async-storage': 1.23.1(react-native@0.73.7) '@types/dom-screen-wake-lock': 1.0.3 bowser: 2.11.0 cross-fetch: 4.0.0 @@ -9157,7 +9307,7 @@ packages: '@metamask/providers': 10.2.1 '@metamask/sdk-communication-layer': 0.14.3 '@metamask/sdk-install-modal-web': 0.14.1(@types/react@18.2.79) - '@react-native-async-storage/async-storage': 1.23.1 + '@react-native-async-storage/async-storage': 1.23.1(react-native@0.73.7) '@types/dom-screen-wake-lock': 1.0.3 bowser: 2.11.0 cross-fetch: 4.0.0 @@ -9216,6 +9366,10 @@ packages: transitivePeerDependencies: - supports-color + /@microsoft/applicationinsights-web-snippet@1.1.2: + resolution: {integrity: sha512-qPoOk3MmEx3gS6hTc1/x8JWQG5g4BvRdH7iqZMENBsKCL927b7D7Mvl19bh3sW9Ucrg1fVrF+4hqShwQNdqLxQ==} + dev: false + /@microsoft/tsdoc-config@0.16.2: resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} dependencies: @@ -9566,6 +9720,65 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 + /@opentelemetry/api@1.8.0: + resolution: {integrity: sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==} + engines: {node: '>=8.0.0'} + dev: false + + /@opentelemetry/core@1.24.0(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-FP2oN7mVPqcdxJDTTnKExj4mi91EH+DNuArKfHTjPuJWe2K1JfMIVXNfahw1h3onJxQnxS8K0stKkogX05s+Aw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.9.0' + dependencies: + '@opentelemetry/api': 1.8.0 + '@opentelemetry/semantic-conventions': 1.24.0 + dev: false + + /@opentelemetry/instrumentation@0.41.2(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-rxU72E0pKNH6ae2w5+xgVYZLzc5mlxAbGzF4shxMVK8YC2QQsfN38B2GPbj0jvrKWWNUElfclQ+YTykkNg/grw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.8.0 + '@types/shimmer': 1.0.5 + import-in-the-middle: 1.4.2 + require-in-the-middle: 7.3.0 + semver: 7.6.0 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/resources@1.24.0(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-mxC7E7ocUS1tLzepnA7O9/G8G6ZTdjCH2pXme1DDDuCuk6n2/53GADX+GWBuyX0dfIxeMInIbJAdjlfN9GNr6A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.9.0' + dependencies: + '@opentelemetry/api': 1.8.0 + '@opentelemetry/core': 1.24.0(@opentelemetry/api@1.8.0) + '@opentelemetry/semantic-conventions': 1.24.0 + dev: false + + /@opentelemetry/sdk-trace-base@1.24.0(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-H9sLETZ4jw9UJ3totV8oM5R0m4CW0ZIOLfp4NV3g0CM8HD5zGZcaW88xqzWDgiYRpctFxd+WmHtGX/Upoa2vRg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.9.0' + dependencies: + '@opentelemetry/api': 1.8.0 + '@opentelemetry/core': 1.24.0(@opentelemetry/api@1.8.0) + '@opentelemetry/resources': 1.24.0(@opentelemetry/api@1.8.0) + '@opentelemetry/semantic-conventions': 1.24.0 + dev: false + + /@opentelemetry/semantic-conventions@1.24.0: + resolution: {integrity: sha512-yL0jI6Ltuz8R+Opj7jClGrul6pOoYrdfVmzQS4SITXRPH7I5IRZbrwe/6/v8v4WYMa6MYZG480S1+uc/IGfqsA==} + engines: {node: '>=14'} + dev: false + /@parcel/watcher-android-arm64@2.3.0: resolution: {integrity: sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==} engines: {node: '>= 10.0.0'} @@ -9915,7 +10128,7 @@ packages: resolution: {integrity: sha512-a7mrlPTM3tAFJyz43qb4pPVpUx8j8TzZBFsNFqcKcE/sEakNXRlQAuCT4RGZRf9dQiiUnBahzSIWawU4rENl+Q==} dependencies: '@babel/core': 7.24.4 - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.4) pirates: 4.0.6 source-map-support: 0.5.21 transitivePeerDependencies: @@ -9985,7 +10198,7 @@ packages: react: 18.2.0 dev: false - /@react-aria/dialog@3.5.12(react@18.2.0): + /@react-aria/dialog@3.5.12(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-7UJR/h/Y364u6Ltpw0bT51B48FybTuIBacGpEJN5IxZlpxvQt0KQcBDiOWfAa/GQogw4B5hH6agaOO0nJcP49Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 @@ -9995,12 +10208,13 @@ packages: optional: true dependencies: '@react-aria/focus': 3.16.2(react@18.2.0) - '@react-aria/overlays': 3.21.1(react@18.2.0) + '@react-aria/overlays': 3.21.1(react-dom@18.2.0)(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) '@react-types/dialog': 3.5.8(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /@react-aria/focus@3.16.2(react@18.2.0): @@ -10014,8 +10228,8 @@ packages: '@react-aria/interactions': 3.21.1(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 - clsx: 2.1.1 + '@swc/helpers': 0.5.10 + clsx: 2.1.0 react: 18.2.0 dev: false @@ -10031,7 +10245,7 @@ packages: '@react-aria/utils': 3.23.2(react@18.2.0) '@react-stately/form': 3.0.1(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -10050,7 +10264,7 @@ packages: '@react-aria/ssr': 3.9.2(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -10065,7 +10279,7 @@ packages: '@react-aria/ssr': 3.9.2(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -10079,11 +10293,11 @@ packages: dependencies: '@react-aria/utils': 3.23.2(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false - /@react-aria/menu@3.13.1(react@18.2.0): + /@react-aria/menu@3.13.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-jF80YIcvD16Fgwm5pj7ViUE3Dj7z5iewQixLaFVdvpgfyE58SD/ZVU9/JkK5g/03DYM0sjpUKZGkdFxxw8eKnw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 @@ -10095,8 +10309,8 @@ packages: '@react-aria/focus': 3.16.2(react@18.2.0) '@react-aria/i18n': 3.10.2(react@18.2.0) '@react-aria/interactions': 3.21.1(react@18.2.0) - '@react-aria/overlays': 3.21.1(react@18.2.0) - '@react-aria/selection': 3.17.5(react@18.2.0) + '@react-aria/overlays': 3.21.1(react-dom@18.2.0)(react@18.2.0) + '@react-aria/selection': 3.17.5(react-dom@18.2.0)(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) '@react-stately/collections': 3.10.5(react@18.2.0) '@react-stately/menu': 3.6.1(react@18.2.0) @@ -10104,11 +10318,12 @@ packages: '@react-types/button': 3.9.2(react@18.2.0) '@react-types/menu': 3.9.7(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /@react-aria/overlays@3.21.1(react@18.2.0): + /@react-aria/overlays@3.21.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-djEBDF+TbIIOHWWNpdm19+z8xtY8U+T+wKVQg/UZ6oWnclSqSWeGl70vu73Cg4HVBJ4hKf1SRx4Z/RN6VvH4Yw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 @@ -10127,8 +10342,9 @@ packages: '@react-types/button': 3.9.2(react@18.2.0) '@react-types/overlays': 3.8.5(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /@react-aria/radio@3.10.2(react@18.2.0): @@ -10148,11 +10364,11 @@ packages: '@react-stately/radio': 3.10.2(react@18.2.0) '@react-types/radio': 3.7.1(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false - /@react-aria/selection@3.17.5(react@18.2.0): + /@react-aria/selection@3.17.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-gO5jBUkc7WdkiFMlWt3x9pTSuj3Yeegsxfo44qU5NPlKrnGtPRZDWrlACNgkDHu645RNNPhlyoX0C+G8mUg1xA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 @@ -10167,8 +10383,9 @@ packages: '@react-aria/utils': 3.23.2(react@18.2.0) '@react-stately/selection': 3.14.3(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /@react-aria/slider@3.7.6(react@18.2.0): @@ -10187,7 +10404,7 @@ packages: '@react-stately/slider': 3.5.2(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) '@react-types/slider': 3.7.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -10200,7 +10417,7 @@ packages: react: optional: true dependencies: - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -10217,7 +10434,7 @@ packages: '@react-aria/utils': 3.23.2(react@18.2.0) '@react-stately/toggle': 3.7.2(react@18.2.0) '@react-types/checkbox': 3.7.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -10232,8 +10449,8 @@ packages: '@react-aria/ssr': 3.9.2(react@18.2.0) '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 - clsx: 2.1.1 + '@swc/helpers': 0.5.10 + clsx: 2.1.0 react: 18.2.0 dev: false @@ -10248,11 +10465,11 @@ packages: '@react-aria/interactions': 3.21.1(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false - /@react-native-aria/accordion@0.0.2(react-native@0.73.5)(react@18.2.0): + /@react-native-aria/accordion@0.0.2(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-2Wa/YDBc2aCunTLpqwxTfCwn1t63KSAIoXd0hqrUGJJF+N2bEs2Hqs9ZgyKJ/hzFxCknVPMqo0fEVE1H23Z5+g==} peerDependencies: react: '*' @@ -10264,10 +10481,10 @@ packages: optional: true dependencies: react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) dev: false - /@react-native-aria/checkbox@0.2.9(react-native@0.73.5)(react@18.2.0): + /@react-native-aria/checkbox@0.2.9(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-REycBw1DKbw2r9LbynrB+egWOnJXo1YPoMkAQOv6wiKgIzRZ69l4GpmAwkwqUmKit+DJM9Van6/cGl9kOKTAeA==} peerDependencies: react: '*' @@ -10280,14 +10497,14 @@ packages: dependencies: '@react-aria/checkbox': 3.2.1(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) - '@react-native-aria/toggle': 0.2.8(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/utils': 0.2.11(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/toggle': 0.2.8(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/utils': 0.2.11(react-native@0.73.7)(react@18.2.0) '@react-stately/toggle': 3.7.2(react@18.2.0) react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) dev: false - /@react-native-aria/dialog@0.0.4(react-native@0.73.5)(react@18.2.0): + /@react-native-aria/dialog@0.0.4(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-l974yT9Z8KTSfY0rjaDNx5PsuGw50jRsdrkez+eP0P8ENx2uKHDzPPZDLo5XS5aiChFWbLaZFXp8rU0TRVOMmg==} peerDependencies: react: '*' @@ -10298,17 +10515,17 @@ packages: react-native: optional: true dependencies: - '@react-aria/dialog': 3.5.12(react@18.2.0) - '@react-native-aria/utils': 0.2.11(react-native@0.73.5)(react@18.2.0) + '@react-aria/dialog': 3.5.12(react-dom@18.2.0)(react@18.2.0) + '@react-native-aria/utils': 0.2.11(react-native@0.73.7)(react@18.2.0) '@react-types/dialog': 3.5.8(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) transitivePeerDependencies: - react-dom dev: false - /@react-native-aria/focus@0.2.9(react-native@0.73.5)(react@18.2.0): + /@react-native-aria/focus@0.2.9(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-zVgOIzKwnsyyurUxlZnzUKB2ekK/cmK64sQJIKKUlkJKVxd2EAFf7Sjz/NVEoMhTODN3qGRASTv9bMk/pBzzVA==} peerDependencies: react: '*' @@ -10321,10 +10538,10 @@ packages: dependencies: '@react-aria/focus': 3.16.2(react@18.2.0) react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) dev: false - /@react-native-aria/interactions@0.2.13(react-native@0.73.5)(react@18.2.0): + /@react-native-aria/interactions@0.2.13(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-Uzru5Pqq5pG46lg/pzXoku9Y9k1UvuwJB/HRLSwahdC6eyNJOOm4kmadR/iziL/BeTAi5rOZsPEd0IKcMdH3nA==} peerDependencies: react: '*' @@ -10337,12 +10554,12 @@ packages: dependencies: '@react-aria/interactions': 3.21.1(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) - '@react-native-aria/utils': 0.2.11(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/utils': 0.2.11(react-native@0.73.7)(react@18.2.0) react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) dev: false - /@react-native-aria/menu@0.2.12(react-native@0.73.5)(react@18.2.0): + /@react-native-aria/menu@0.2.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-sgtU3vlYdR7dx1GL7E0rMi19c2FFe7vPe3+6m6fyuGwQAZCEeHsrjDPdVbyx8HxDym8oOcmACeyfjCohiDK7/Q==} peerDependencies: react: '*' @@ -10354,23 +10571,23 @@ packages: optional: true dependencies: '@react-aria/interactions': 3.21.1(react@18.2.0) - '@react-aria/menu': 3.13.1(react@18.2.0) - '@react-aria/selection': 3.17.5(react@18.2.0) + '@react-aria/menu': 3.13.1(react-dom@18.2.0)(react@18.2.0) + '@react-aria/selection': 3.17.5(react-dom@18.2.0)(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/overlays': 0.3.12(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/utils': 0.2.11(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/overlays': 0.3.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/utils': 0.2.11(react-native@0.73.7)(react@18.2.0) '@react-stately/collections': 3.10.5(react@18.2.0) '@react-stately/menu': 3.6.1(react@18.2.0) '@react-stately/tree': 3.7.6(react@18.2.0) '@react-types/menu': 3.9.7(react@18.2.0) react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) transitivePeerDependencies: - react-dom dev: false - /@react-native-aria/overlays@0.3.12(react-native@0.73.5)(react@18.2.0): + /@react-native-aria/overlays@0.3.12(react-dom@18.2.0)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-XV/JjL+zimkpDT7WfomrZl6D7on2RFnhlM0/EPwCPoHRALrJf1gcyEtl0ubWpB3b9yg5uliJ8u0zOS9ui/8S/Q==} peerDependencies: react: '*' @@ -10383,16 +10600,17 @@ packages: optional: true dependencies: '@react-aria/interactions': 3.21.1(react@18.2.0) - '@react-aria/overlays': 3.21.1(react@18.2.0) - '@react-native-aria/utils': 0.2.11(react-native@0.73.5)(react@18.2.0) + '@react-aria/overlays': 3.21.1(react-dom@18.2.0)(react@18.2.0) + '@react-native-aria/utils': 0.2.11(react-native@0.73.7)(react@18.2.0) '@react-stately/overlays': 3.6.5(react@18.2.0) '@react-types/overlays': 3.8.5(react@18.2.0) dom-helpers: 5.2.1 react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) dev: false - /@react-native-aria/radio@0.2.10(react-native@0.73.5)(react@18.2.0): + /@react-native-aria/radio@0.2.10(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-q6oe/cMPKJDDaE11J8qBfAgn3tLRh1OFYCPDVIOXkGGm/hjEQNCR+E46kX9yQ+oD2ajf0WV/toxG3RqWAiKZ6Q==} peerDependencies: react: '*' @@ -10405,15 +10623,15 @@ packages: dependencies: '@react-aria/radio': 3.10.2(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/utils': 0.2.11(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/utils': 0.2.11(react-native@0.73.7)(react@18.2.0) '@react-stately/radio': 3.10.2(react@18.2.0) '@react-types/radio': 3.7.1(react@18.2.0) react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) dev: false - /@react-native-aria/slider@0.2.11(react-native@0.73.5)(react@18.2.0): + /@react-native-aria/slider@0.2.11(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-GVT0VOEosf7jk5B6nU0stxitnHbAWLjmarOgkun0/Nnkc0/RwRaf+hfdPGA8rZqNS01CIgooJSrxfIfyNgybpg==} peerDependencies: react: '*' @@ -10429,13 +10647,13 @@ packages: '@react-aria/label': 3.7.6(react@18.2.0) '@react-aria/slider': 3.7.6(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) - '@react-native-aria/utils': 0.2.11(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/utils': 0.2.11(react-native@0.73.7)(react@18.2.0) '@react-stately/slider': 3.5.2(react@18.2.0) react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) dev: false - /@react-native-aria/toggle@0.2.8(react-native@0.73.5)(react@18.2.0): + /@react-native-aria/toggle@0.2.8(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-4TJXuIUuVeozbV3Lk9YUxHxCHAhignn6/GfEdQv8XsfKHUmRMHyvXwdrmKTQCnbtz2Nn+NDUoqKUfZtOYpT3cg==} peerDependencies: react: '*' @@ -10448,15 +10666,15 @@ packages: dependencies: '@react-aria/focus': 3.16.2(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) - '@react-native-aria/interactions': 0.2.13(react-native@0.73.5)(react@18.2.0) - '@react-native-aria/utils': 0.2.11(react-native@0.73.5)(react@18.2.0) + '@react-native-aria/interactions': 0.2.13(react-native@0.73.7)(react@18.2.0) + '@react-native-aria/utils': 0.2.11(react-native@0.73.7)(react@18.2.0) '@react-stately/toggle': 3.7.2(react@18.2.0) '@react-types/checkbox': 3.7.1(react@18.2.0) react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) dev: false - /@react-native-aria/utils@0.2.11(react-native@0.73.5)(react@18.2.0): + /@react-native-aria/utils@0.2.11(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-8MzE25pYDo1ZQtu7N9grx2Q+2uK58Tvvg4iJ7Nvx3PXTEz2XKU8G//yX9un97f7zCM6ptL8viRdKbSYDBmQvsA==} peerDependencies: react: '*' @@ -10470,10 +10688,10 @@ packages: '@react-aria/ssr': 3.9.2(react@18.2.0) '@react-aria/utils': 3.23.2(react@18.2.0) react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) dev: false - /@react-native-async-storage/async-storage@1.23.1: + /@react-native-async-storage/async-storage@1.23.1(react-native@0.73.7): resolution: {integrity: sha512-Qd2kQ3yi6Y3+AcUlrHxSLlnBvpdCEMVGFlVBneVOjaFaPU61g1huc38g339ysXspwY1QZA2aNhrk/KlHGO+ewA==} peerDependencies: react-native: ^0.0.0-0 || >=0.60 <1.0 @@ -10482,6 +10700,26 @@ packages: optional: true dependencies: merge-options: 3.0.4 + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + + /@react-native-clipboard/clipboard@1.14.1(react-native-macos@0.73.26)(react-native-windows@0.73.12)(react-native@0.73.7)(react@18.2.0): + resolution: {integrity: sha512-SM3el0A28SwoeJljVNhF217o0nI4E7RfalLmuRQcT1/7tGcxUjgFa3jyrEndYUct8/uxxK5EUNGUu1YEDqzxqw==} + peerDependencies: + react: 16.9.0 || 16.11.0 || 16.13.1 || 17.0.1 || 17.0.2 || 18.0.0 || 18.1.0 || 18.2.0 + react-native: ^0.61.5 || ^0.62.3 || ^0.63.2 || ^0.64.2 || ^0.65.0 || ^0.66.0 || ^0.67.0 || ^0.68.0 || ^0.69.0 || ^0.70.0 || ^0.71.0 || ^0.72.0 || ^0.73.0 + react-native-macos: ^0.61.0 || ^0.62.0 || ^0.63.0 || ^0.64.0 || ^0.65.0 || ^0.66.0 || ^0.67.0 || ^0.68.0 || ^0.69.0 || ^0.70.0 || ^0.71.0 || ^0.72.0 || ^0.73.0 + react-native-windows: ^0.61.0 || ^0.62.0 || ^0.63.0 || ^0.64.0 || ^0.65.0 || ^0.66.0 || ^0.67.0 || ^0.68.0 || ^0.69.0 || ^0.70.0 || ^0.71.0 || ^0.72.0 || ^0.73.0 + peerDependenciesMeta: + react: + optional: true + react-native: + optional: true + dependencies: + react: 18.2.0 + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native-macos: 0.73.26(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react-native@0.73.7)(react@18.2.0) + react-native-windows: 0.73.12(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react-native@0.73.7)(react@18.2.0) + dev: false /@react-native-community/cli-clean@11.3.10: resolution: {integrity: sha512-g6QjW+DSqoWRHzmIQW3AH22k1AnynWuOdy2YPwYEGgPddTeXZtJphIpEVwDOiC0L4mZv2VmiX33/cGNUwO0cIA==} @@ -10492,6 +10730,7 @@ packages: prompts: 2.4.2 transitivePeerDependencies: - encoding + dev: true /@react-native-community/cli-clean@12.3.6: resolution: {integrity: sha512-gUU29ep8xM0BbnZjwz9MyID74KKwutq9x5iv4BCr2im6nly4UMf1B1D+V225wR7VcDGzbgWjaezsJShLLhC5ig==} @@ -10513,6 +10752,7 @@ packages: joi: 17.11.0 transitivePeerDependencies: - encoding + dev: true /@react-native-community/cli-config@12.3.6: resolution: {integrity: sha512-JGWSYQ9EAK6m2v0abXwFLEfsqJ1zkhzZ4CV261QZF9MoUNB6h57a274h1MLQR9mG6Tsh38wBUuNfEPUvS1vYew==} @@ -10522,7 +10762,7 @@ packages: cosmiconfig: 5.2.1 deepmerge: 4.3.1 glob: 7.2.3 - joi: 17.13.0 + joi: 17.11.0 transitivePeerDependencies: - encoding @@ -10532,6 +10772,7 @@ packages: serve-static: 1.15.0 transitivePeerDependencies: - supports-color + dev: true /@react-native-community/cli-debugger-ui@12.3.6: resolution: {integrity: sha512-SjUKKsx5FmcK9G6Pb6UBFT0s9JexVStK5WInmANw75Hm7YokVvHEgtprQDz2Uvy5znX5g2ujzrkIU//T15KQzA==} @@ -10563,6 +10804,7 @@ packages: yaml: 2.3.4 transitivePeerDependencies: - encoding + dev: true /@react-native-community/cli-doctor@12.3.6: resolution: {integrity: sha512-fvBDv2lTthfw4WOQKkdTop2PlE9GtfrlNnpjB818MhcdEnPjfQw5YaTUcnNEGsvGomdCs1MVRMgYXXwPSN6OvQ==} @@ -10574,7 +10816,7 @@ packages: chalk: 4.1.2 command-exists: 1.2.9 deepmerge: 4.3.1 - envinfo: 7.12.0 + envinfo: 7.11.0 execa: 5.1.1 hermes-profile-transformer: 0.0.6 node-stream-zip: 1.15.0 @@ -10596,6 +10838,7 @@ packages: ip: 1.1.8 transitivePeerDependencies: - encoding + dev: true /@react-native-community/cli-hermes@12.3.6: resolution: {integrity: sha512-sNGwfOCl8OAIjWCkwuLpP8NZbuO0dhDI/2W7NeOGDzIBsf4/c4MptTrULWtGIH9okVPLSPX0NnRyGQ+mSwWyuQ==} @@ -10617,6 +10860,7 @@ packages: logkitty: 0.7.1 transitivePeerDependencies: - encoding + dev: true /@react-native-community/cli-platform-android@12.3.6: resolution: {integrity: sha512-DeDDAB8lHpuGIAPXeeD9Qu2+/wDTFPo99c8uSW49L0hkmZJixzvvvffbGQAYk32H0TmaI7rzvzH+qzu7z3891g==} @@ -10624,7 +10868,7 @@ packages: '@react-native-community/cli-tools': 12.3.6 chalk: 4.1.2 execa: 5.1.1 - fast-xml-parser: 4.3.6 + fast-xml-parser: 4.3.2 glob: 7.2.3 logkitty: 0.7.1 transitivePeerDependencies: @@ -10641,6 +10885,7 @@ packages: ora: 5.4.1 transitivePeerDependencies: - encoding + dev: true /@react-native-community/cli-platform-ios@12.3.6: resolution: {integrity: sha512-3eZ0jMCkKUO58wzPWlvAPRqezVKm9EPZyaPyHbRPWU8qw7JqkvnRlWIaYDGpjCJgVW4k2hKsEursLtYKb188tg==} @@ -10648,7 +10893,7 @@ packages: '@react-native-community/cli-tools': 12.3.6 chalk: 4.1.2 execa: 5.1.1 - fast-xml-parser: 4.3.6 + fast-xml-parser: 4.3.2 glob: 7.2.3 ora: 5.4.1 transitivePeerDependencies: @@ -10674,27 +10919,7 @@ packages: - encoding - supports-color - utf-8-validate - - /@react-native-community/cli-plugin-metro@11.3.10(@babel/core@7.24.4): - resolution: {integrity: sha512-ZYAc5Hc+QVqJgj1XFbpKnIPbSJ9xKcBnfQrRhR+jFyt2DWx85u4bbzY1GSVc/USs0UbSUXv4dqPbnmOJz52EYQ==} - dependencies: - '@react-native-community/cli-server-api': 11.3.10 - '@react-native-community/cli-tools': 11.3.10 - chalk: 4.1.2 - execa: 5.1.1 - metro: 0.76.8 - metro-config: 0.76.8 - metro-core: 0.76.8 - metro-react-native-babel-transformer: 0.76.8(@babel/core@7.24.4) - metro-resolver: 0.76.8 - metro-runtime: 0.76.8 - readline: 1.3.0 - transitivePeerDependencies: - - '@babel/core' - - bufferutil - - encoding - - supports-color - - utf-8-validate + dev: true /@react-native-community/cli-plugin-metro@12.3.6: resolution: {integrity: sha512-3jxSBQt4fkS+KtHCPSyB5auIT+KKIrPCv9Dk14FbvOaEh9erUWEm/5PZWmtboW1z7CYeNbFMeXm9fM2xwtVOpg==} @@ -10716,6 +10941,7 @@ packages: - encoding - supports-color - utf-8-validate + dev: true /@react-native-community/cli-server-api@12.3.6: resolution: {integrity: sha512-80NIMzo8b2W+PL0Jd7NjiJW9mgaT8Y8wsIT/lh6mAvYH7mK0ecDJUYUTAAv79Tbo1iCGPAr3T295DlVtS8s4yQ==} @@ -10749,6 +10975,7 @@ packages: shell-quote: 1.8.1 transitivePeerDependencies: - encoding + dev: true /@react-native-community/cli-tools@12.3.6: resolution: {integrity: sha512-FPEvZn19UTMMXUp/piwKZSh8cMEfO8G3KDtOwo53O347GTcwNrKjgZGtLSPELBX2gr+YlzEft3CoRv2Qmo83fQ==} @@ -10770,11 +10997,12 @@ packages: resolution: {integrity: sha512-0FHK/JE7bTn0x1y8Lk5m3RISDHIBQqWLltO2Mf7YQ6cAeKs8iNOJOeKaHJEY+ohjsOyCziw+XSC4cY57dQrwNA==} dependencies: joi: 17.11.0 + dev: true /@react-native-community/cli-types@12.3.6: resolution: {integrity: sha512-xPqTgcUtZowQ8WKOkI9TLGBwH2bGggOC4d2FFaIRST3gTcjrEeGRNeR5aXCzJFIgItIft8sd7p2oKEdy90+01Q==} dependencies: - joi: 17.13.0 + joi: 17.11.0 /@react-native-community/cli@11.3.10(@babel/core@7.23.3): resolution: {integrity: sha512-bIx0t5s9ewH1PlcEcuQUD+UnVrCjPGAfjhVR5Gew565X60nE+GTIHRn70nMv9G4he/amBF+Z+vf5t8SNZEWMwg==} @@ -10804,35 +11032,7 @@ packages: - encoding - supports-color - utf-8-validate - - /@react-native-community/cli@11.3.10(@babel/core@7.24.4): - resolution: {integrity: sha512-bIx0t5s9ewH1PlcEcuQUD+UnVrCjPGAfjhVR5Gew565X60nE+GTIHRn70nMv9G4he/amBF+Z+vf5t8SNZEWMwg==} - engines: {node: '>=16'} - hasBin: true - dependencies: - '@react-native-community/cli-clean': 11.3.10 - '@react-native-community/cli-config': 11.3.10 - '@react-native-community/cli-debugger-ui': 11.3.10 - '@react-native-community/cli-doctor': 11.3.10 - '@react-native-community/cli-hermes': 11.3.10 - '@react-native-community/cli-plugin-metro': 11.3.10(@babel/core@7.24.4) - '@react-native-community/cli-server-api': 11.3.10 - '@react-native-community/cli-tools': 11.3.10 - '@react-native-community/cli-types': 11.3.10 - chalk: 4.1.2 - commander: 9.5.0 - execa: 5.1.1 - find-up: 4.1.0 - fs-extra: 8.1.0 - graceful-fs: 4.2.11 - prompts: 2.4.2 - semver: 7.6.0 - transitivePeerDependencies: - - '@babel/core' - - bufferutil - - encoding - - supports-color - - utf-8-validate + dev: true /@react-native-community/cli@12.3.6: resolution: {integrity: sha512-647OSi6xBb8FbwFqX9zsJxOzu685AWtrOUWHfOkbKD+5LOpGORw+GQo0F9rWZnB68rLQyfKUZWJeaD00pGv5fw==} @@ -10863,8 +11063,131 @@ packages: - supports-color - utf-8-validate + /@react-native-community/netinfo@11.3.1(react-native@0.73.7): + resolution: {integrity: sha512-UBnJxyV0b7i9Moa97Av+HKho1ByzX0DtbJXzUQS5E3xhQs6P2D/Os0iw3ouy7joY1TVd6uIhplPbr7l1SJNaNQ==} + peerDependencies: + react-native: '>=0.59' + peerDependenciesMeta: + react-native: + optional: true + dependencies: + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + dev: false + + /@react-native-mac/virtualized-lists@0.73.3(react-native@0.73.7): + resolution: {integrity: sha512-7UcvjGYLIU0s2FzVLUPxHYo68tqtZV6x0AH8B0Hf9mkkpENGdRIKD7wDv0kjb/GkVn+qk94u3u0kQyMNRY9UkQ==} + engines: {node: '>=18'} + peerDependencies: + react-native: '*' + peerDependenciesMeta: + react-native: + optional: true + dependencies: + invariant: 2.2.4 + nullthrows: 1.1.1 + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + dev: false + + /@react-native-windows/cli@0.73.3(react-native@0.73.7): + resolution: {integrity: sha512-mPlK5H/KohXUy/c7Gu/z29MtBTiUUVr8/p0bEf/Hs4jObISu4pVyU1xWNVaKXbmQ29Vbq9rWrynHNhKoEGqETw==} + engines: {node: '>= 18'} + peerDependencies: + react-native: '*' + peerDependenciesMeta: + react-native: + optional: true + dependencies: + '@react-native-windows/codegen': 0.73.1(react-native@0.73.7) + '@react-native-windows/fs': 0.73.1 + '@react-native-windows/package-utils': 0.73.1 + '@react-native-windows/telemetry': 0.73.2 + '@xmldom/xmldom': 0.7.13 + chalk: 4.1.2 + cli-spinners: 2.9.1 + envinfo: 7.11.0 + find-up: 4.1.0 + glob: 7.2.3 + lodash: 4.17.21 + mustache: 4.2.0 + ora: 3.4.0 + prompts: 2.4.2 + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + semver: 7.6.0 + shelljs: 0.8.5 + username: 5.1.0 + uuid: 3.4.0 + xml-formatter: 2.6.1 + xml-parser: 1.2.1 + xpath: 0.0.27 + transitivePeerDependencies: + - applicationinsights-native-metrics + - supports-color + dev: false + + /@react-native-windows/codegen@0.73.1(react-native@0.73.7): + resolution: {integrity: sha512-rwOYHwG9CJu9YPvjZH4rlCDWjNoJUokcfh8belumKD8eZh6G855RiJ3SmcGoozV3r4m7fYWGs71mjQmnyPScXw==} + engines: {node: '>= 18'} + hasBin: true + peerDependencies: + react-native: '*' + peerDependenciesMeta: + react-native: + optional: true + dependencies: + '@react-native-windows/fs': 0.73.1 + chalk: 4.1.2 + globby: 11.1.0 + mustache: 4.2.0 + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + source-map-support: 0.5.21 + yargs: 16.2.0 + dev: false + + /@react-native-windows/find-repo-root@0.73.1: + resolution: {integrity: sha512-CsYidJxvJYIUmbqgrzZEWbVnZjvY4CpfVXlNKhi1BpYj0F26eCAHNHYS38QS+9FIoy+YOyE+jEoTsGVhXkXmOA==} + engines: {node: '>= 18'} + dependencies: + '@react-native-windows/fs': 0.73.1 + find-up: 4.1.0 + dev: false + + /@react-native-windows/fs@0.73.1: + resolution: {integrity: sha512-FVJeyc1uRJguEdwWsucrOnRWQOB3JlRapPqL3EKUO/i1TX0Fbd8b8MCb9pjCOihoHnN0+aCY9Y8aSar2M33kAw==} + engines: {node: '>= 18'} + dependencies: + graceful-fs: 4.2.11 + dev: false + + /@react-native-windows/package-utils@0.73.1: + resolution: {integrity: sha512-psr0ESygZWJoyCXreRzOOJa7cIWuZ5btrpeMYvoFej1p/CaJA65pLHuFiFaFi580KkHFvHJYG8mY3K4PDzqctA==} + engines: {node: '>= 18'} + dependencies: + '@react-native-windows/find-repo-root': 0.73.1 + '@react-native-windows/fs': 0.73.1 + get-monorepo-packages: 1.2.0 + lodash: 4.17.21 + dev: false + + /@react-native-windows/telemetry@0.73.2: + resolution: {integrity: sha512-QOo5t6aiO+BlPdJgQGYY/9IWtOkI4h/YoAYbpuFsMsLfBuyzM+5yovoeamIf5Cd9zFYM0YUswZ0VJx4Q7zP4zQ==} + engines: {node: '>= 18'} + dependencies: + '@react-native-windows/fs': 0.73.1 + '@xmldom/xmldom': 0.7.13 + applicationinsights: 2.7.3 + ci-info: 3.9.0 + envinfo: 7.11.0 + lodash: 4.17.21 + os-locale: 5.0.0 + xpath: 0.0.27 + transitivePeerDependencies: + - applicationinsights-native-metrics + - supports-color + dev: false + /@react-native/assets-registry@0.72.0: resolution: {integrity: sha512-Im93xRJuHHxb1wniGhBMsxLwcfzdYreSZVQGDoMJgkd6+Iky61LInGEHnQCTN0fKNYF1Dvcofb4uMmE1RQHXHQ==} + dev: true /@react-native/assets-registry@0.73.1: resolution: {integrity: sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==} @@ -10888,42 +11211,42 @@ packages: '@babel/core': 7.24.4 '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.4) '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) - '@babel/plugin-proposal-export-default-from': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.24.4) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.4) '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.4) '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.4) '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.4) '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.24.4) '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-runtime': 7.24.3(@babel/core@7.24.4) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.4) - '@babel/template': 7.24.0 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-runtime': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.24.4) + '@babel/template': 7.22.15 '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.24.4) babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.4) react-refresh: 0.14.0 @@ -10943,19 +11266,7 @@ packages: nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - - /@react-native/codegen@0.72.7(@babel/preset-env@7.24.4): - resolution: {integrity: sha512-O7xNcGeXGbY+VoqBGNlZ3O05gxfATlwE1Q1qQf5E38dK+tXn5BY4u0jaQ9DPjfE8pBba8g/BYI1N44lynidMtg==} - peerDependencies: - '@babel/preset-env': ^7.1.6 - dependencies: - '@babel/parser': 7.23.4 - '@babel/preset-env': 7.24.4(@babel/core@7.24.4) - flow-parser: 0.206.0 - jscodeshift: 0.14.0(@babel/preset-env@7.24.4) - nullthrows: 1.1.1 - transitivePeerDependencies: - - supports-color + dev: true /@react-native/codegen@0.73.3(@babel/preset-env@7.24.4): resolution: {integrity: sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==} @@ -10984,9 +11295,9 @@ packages: '@react-native/metro-babel-transformer': 0.73.15(@babel/core@7.24.4)(@babel/preset-env@7.24.4) chalk: 4.1.2 execa: 5.1.1 - metro: 0.80.8 - metro-config: 0.80.8 - metro-core: 0.80.8 + metro: 0.80.6 + metro-config: 0.80.6 + metro-core: 0.80.6 node-fetch: 2.7.0 readline: 1.3.0 transitivePeerDependencies: @@ -11022,7 +11333,7 @@ packages: - supports-color - utf-8-validate - /@react-native/eslint-config@0.73.2(eslint@8.57.0)(prettier@2.8.8)(typescript@5.0.4): + /@react-native/eslint-config@0.73.2(eslint@8.57.0)(prettier@2.8.8)(typescript@5.4.5): resolution: {integrity: sha512-YzMfes19loTfbrkbYNAfHBDXX4oRBzc5wnvHs4h2GIHUj6YKs5ZK5lldqSrBJCdZAI3nuaO9Qj+t5JRwou571w==} engines: {node: '>=18'} peerDependencies: @@ -11030,15 +11341,15 @@ packages: prettier: '>=2' dependencies: '@babel/core': 7.24.4 - '@babel/eslint-parser': 7.24.1(@babel/core@7.24.4)(eslint@8.57.0) + '@babel/eslint-parser': 7.23.10(@babel/core@7.24.4)(eslint@8.57.0) '@react-native/eslint-plugin': 0.73.1 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 eslint-config-prettier: 8.10.0(eslint@8.57.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) - eslint-plugin-ft-flow: 2.0.3(@babel/eslint-parser@7.24.1)(eslint@8.57.0) - eslint-plugin-jest: 26.9.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(typescript@5.0.4) + eslint-plugin-ft-flow: 2.0.3(@babel/eslint-parser@7.23.10)(eslint@8.57.0) + eslint-plugin-jest: 26.9.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(typescript@5.4.5) eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.57.0)(prettier@2.8.8) eslint-plugin-react: 7.34.1(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) @@ -11057,6 +11368,7 @@ packages: /@react-native/gradle-plugin@0.72.11: resolution: {integrity: sha512-P9iRnxiR2w7EHcZ0mJ+fmbPzMby77ZzV6y9sJI3lVLJzF7TLSdbwcQyD3lwMsiL+q5lKUHoZJS4sYmih+P2HXw==} + dev: true /@react-native/gradle-plugin@0.73.4: resolution: {integrity: sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg==} @@ -11064,6 +11376,7 @@ packages: /@react-native/js-polyfills@0.72.1: resolution: {integrity: sha512-cRPZh2rBswFnGt5X5EUEPs0r+pAsXxYsifv/fgy9ZLQokuT52bPH+9xjDR+7TafRua5CttGW83wP4TntRcWNDA==} + dev: true /@react-native/js-polyfills@0.73.1: resolution: {integrity: sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==} @@ -11089,8 +11402,8 @@ packages: dependencies: '@react-native/js-polyfills': 0.73.1 '@react-native/metro-babel-transformer': 0.73.15(@babel/core@7.24.4)(@babel/preset-env@7.24.4) - metro-config: 0.80.8 - metro-runtime: 0.80.8 + metro-config: 0.80.6 + metro-runtime: 0.80.6 transitivePeerDependencies: - '@babel/core' - '@babel/preset-env' @@ -11102,10 +11415,15 @@ packages: /@react-native/normalize-colors@0.72.0: resolution: {integrity: sha512-285lfdqSXaqKuBbbtP9qL2tDrfxdOFtIMvkKadtleRQkdOxx+uzGvFr82KHmc/sSiMtfXGp7JnFYWVh4sFl7Yw==} + dev: true /@react-native/normalize-colors@0.73.2: resolution: {integrity: sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w==} + /@react-native/normalize-colors@0.74.81: + resolution: {integrity: sha512-g3YvkLO7UsSWiDfYAU+gLhRHtEpUyz732lZB+N8IlLXc5MnfXHC8GKneDGY3Mh52I3gBrs20o37D5viQX9E1CA==} + dev: false + /@react-native/typescript-config@0.73.1: resolution: {integrity: sha512-7Wrmdp972ZO7xvDid+xRGtvX6xz47cpGj7Y7VKlUhSVFFqbOGfB5WCpY1vMr6R/fjl+Og2fRw+TETN2+JnJi0w==} dev: true @@ -11121,8 +11439,9 @@ packages: invariant: 2.2.4 nullthrows: 1.1.1 react-native: 0.72.7(@babel/core@7.23.3)(@babel/preset-env@7.23.3)(react@18.2.0) + dev: true - /@react-native/virtualized-lists@0.73.4(react-native@0.73.5): + /@react-native/virtualized-lists@0.73.4(react-native@0.73.7): resolution: {integrity: sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog==} engines: {node: '>=18'} peerDependencies: @@ -11133,7 +11452,7 @@ packages: dependencies: invariant: 2.2.4 nullthrows: 1.1.1 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) /@react-stately/calendar@3.4.4(react@18.2.0): resolution: {integrity: sha512-f9ZOd096gGGD+3LmU1gkmfqytGyQtrgi+Qjn+70GbM2Jy65pwOR4I9YrobbmeAFov5Tff13mQEa0yqWvbcDLZQ==} @@ -11147,7 +11466,7 @@ packages: '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/calendar': 3.4.4(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11163,7 +11482,7 @@ packages: '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/checkbox': 3.7.1(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11176,7 +11495,7 @@ packages: optional: true dependencies: '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11196,7 +11515,7 @@ packages: '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/combobox': 3.10.1(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11209,7 +11528,7 @@ packages: optional: true dependencies: '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11228,7 +11547,7 @@ packages: '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/datepicker': 3.7.2(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11242,7 +11561,7 @@ packages: dependencies: '@react-stately/selection': 3.14.3(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11261,7 +11580,7 @@ packages: optional: true dependencies: '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11277,7 +11596,7 @@ packages: '@react-stately/selection': 3.14.3(react@18.2.0) '@react-types/grid': 3.2.4(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11293,7 +11612,7 @@ packages: '@react-stately/selection': 3.14.3(react@18.2.0) '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11308,7 +11627,7 @@ packages: '@react-stately/overlays': 3.6.5(react@18.2.0) '@react-types/menu': 3.9.7(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11324,7 +11643,7 @@ packages: '@react-stately/form': 3.0.1(react@18.2.0) '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/numberfield': 3.8.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11338,7 +11657,7 @@ packages: dependencies: '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/overlays': 3.8.5(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11354,7 +11673,7 @@ packages: '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/radio': 3.7.1(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11368,7 +11687,7 @@ packages: dependencies: '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/searchfield': 3.5.3(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11385,7 +11704,7 @@ packages: '@react-stately/overlays': 3.6.5(react@18.2.0) '@react-types/select': 3.9.2(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11400,7 +11719,7 @@ packages: '@react-stately/collections': 3.10.5(react@18.2.0) '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11415,7 +11734,7 @@ packages: '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) '@react-types/slider': 3.7.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11435,7 +11754,7 @@ packages: '@react-types/grid': 3.2.4(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) '@react-types/table': 3.9.3(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11450,7 +11769,7 @@ packages: '@react-stately/list': 3.10.3(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) '@react-types/tabs': 3.3.5(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11464,7 +11783,7 @@ packages: dependencies: '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/checkbox': 3.7.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11478,7 +11797,7 @@ packages: dependencies: '@react-stately/overlays': 3.6.5(react@18.2.0) '@react-types/tooltip': 3.4.7(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11494,7 +11813,7 @@ packages: '@react-stately/selection': 3.14.3(react@18.2.0) '@react-stately/utils': 3.9.1(react@18.2.0) '@react-types/shared': 3.22.1(react@18.2.0) - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11506,7 +11825,7 @@ packages: react: optional: true dependencies: - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 react: 18.2.0 dev: false @@ -11825,11 +12144,17 @@ packages: - supports-color dev: true + /@rnx-kit/console@1.0.12: + resolution: {integrity: sha512-egjvLiXFJwS5TznWnb5I6vLJ2kYW/lYZPa3E1awam+datbyf/elAH4h1ZCfOd/aiTBQur91HwX07k0WgOHJSow==} + dependencies: + chalk: 4.1.2 + dev: true + /@rnx-kit/console@1.1.0: resolution: {integrity: sha512-N+zFhTSXroiK4eL26vs61Pmtl7wzTPAKLd4JKw9/fk5cNAHUscCXF/uclzuYN61Ye5AwygIvcwbm9wv4Jfa92A==} dev: true - /@rnx-kit/metro-config@1.3.15(@react-native/metro-config@0.73.5)(react-native@0.73.5)(react@18.2.0): + /@rnx-kit/metro-config@1.3.15(@react-native/metro-config@0.73.5)(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-6papm4cc6uho39M7E4spxGec4jI0wLUSbvAEho0zITYgGc/U2xNnMHT37hDO4HyZoz72P8BwxsPgGfxa74+epw==} peerDependencies: '@react-native/metro-config': '*' @@ -11844,18 +12169,18 @@ packages: optional: true dependencies: '@react-native/metro-config': 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4) - '@rnx-kit/console': 1.1.0 + '@rnx-kit/console': 1.0.12 '@rnx-kit/tools-node': 2.1.1 '@rnx-kit/tools-react-native': 1.3.5 - '@rnx-kit/tools-workspaces': 0.1.6 + '@rnx-kit/tools-workspaces': 0.1.5 react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) dev: true /@rnx-kit/metro-resolver-symlinks@0.1.36: resolution: {integrity: sha512-IxgcvFuxy7jIgpmJ/DP+YOEzler/DzXbF/EPN4NjNWCa5LyDNVSKAfj5+YVU2cIOTVKkm28d00Dx1bmXgVOR2g==} dependencies: - '@rnx-kit/console': 1.1.0 + '@rnx-kit/console': 1.0.12 '@rnx-kit/tools-node': 2.1.1 '@rnx-kit/tools-react-native': 1.3.5 enhanced-resolve: 5.16.0 @@ -11871,8 +12196,8 @@ packages: '@rnx-kit/tools-node': 2.1.1 dev: true - /@rnx-kit/tools-workspaces@0.1.6: - resolution: {integrity: sha512-af5CYnc1dtnMIAl2u0U1QHUCGgLNN9ZQkYCAtQOHPxxgF5yX2Cr9jrXLZ9M+/h/eSVbK0ETjJWbNbPoiUSW/7w==} + /@rnx-kit/tools-workspaces@0.1.5: + resolution: {integrity: sha512-f0qJg70NxlLIrdmbbVAcavIQtpYGYE6iqDi81u/Ipyq7CmwCbsHK3uUnFrXBsfigF3Bl2gIiBJlfF96MfqVOkg==} engines: {node: '>=14.15'} dependencies: fast-glob: 3.3.2 @@ -11999,128 +12324,128 @@ packages: picomatch: 2.3.1 dev: true - /@rollup/rollup-android-arm-eabi@4.16.4: - resolution: {integrity: sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==} + /@rollup/rollup-android-arm-eabi@4.17.1: + resolution: {integrity: sha512-P6Wg856Ou/DLpR+O0ZLneNmrv7QpqBg+hK4wE05ijbC/t349BRfMfx+UFj5Ha3fCFopIa6iSZlpdaB4agkWp2Q==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.16.4: - resolution: {integrity: sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==} + /@rollup/rollup-android-arm64@4.17.1: + resolution: {integrity: sha512-piwZDjuW2WiHr05djVdUkrG5JbjnGbtx8BXQchYCMfib/nhjzWoiScelZ+s5IJI7lecrwSxHCzW026MWBL+oJQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.16.4: - resolution: {integrity: sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==} + /@rollup/rollup-darwin-arm64@4.17.1: + resolution: {integrity: sha512-LsZXXIsN5Q460cKDT4Y+bzoPDhBmO5DTr7wP80d+2EnYlxSgkwdPfE3hbE+Fk8dtya+8092N9srjBTJ0di8RIA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.16.4: - resolution: {integrity: sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==} + /@rollup/rollup-darwin-x64@4.17.1: + resolution: {integrity: sha512-S7TYNQpWXB9APkxu/SLmYHezWwCoZRA9QLgrDeml+SR2A1LLPD2DBUdUlvmCF7FUpRMKvbeeWky+iizQj65Etw==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.16.4: - resolution: {integrity: sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==} + /@rollup/rollup-linux-arm-gnueabihf@4.17.1: + resolution: {integrity: sha512-Lq2JR5a5jsA5um2ZoLiXXEaOagnVyCpCW7xvlcqHC7y46tLwTEgUSTM3a2TfmmTMmdqv+jknUioWXlmxYxE9Yw==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-musleabihf@4.16.4: - resolution: {integrity: sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==} + /@rollup/rollup-linux-arm-musleabihf@4.17.1: + resolution: {integrity: sha512-9BfzwyPNV0IizQoR+5HTNBGkh1KXE8BqU0DBkqMngmyFW7BfuIZyMjQ0s6igJEiPSBvT3ZcnIFohZ19OqjhDPg==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.16.4: - resolution: {integrity: sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==} + /@rollup/rollup-linux-arm64-gnu@4.17.1: + resolution: {integrity: sha512-e2uWaoxo/rtzA52OifrTSXTvJhAXb0XeRkz4CdHBK2KtxrFmuU/uNd544Ogkpu938BzEfvmWs8NZ8Axhw33FDw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.16.4: - resolution: {integrity: sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==} + /@rollup/rollup-linux-arm64-musl@4.17.1: + resolution: {integrity: sha512-ekggix/Bc/d/60H1Mi4YeYb/7dbal1kEDZ6sIFVAE8pUSx7PiWeEh+NWbL7bGu0X68BBIkgF3ibRJe1oFTksQQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.16.4: - resolution: {integrity: sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==} + /@rollup/rollup-linux-powerpc64le-gnu@4.17.1: + resolution: {integrity: sha512-UGV0dUo/xCv4pkr/C8KY7XLFwBNnvladt8q+VmdKrw/3RUd3rD0TptwjisvE2TTnnlENtuY4/PZuoOYRiGp8Gw==} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.16.4: - resolution: {integrity: sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==} + /@rollup/rollup-linux-riscv64-gnu@4.17.1: + resolution: {integrity: sha512-gEYmYYHaehdvX46mwXrU49vD6Euf1Bxhq9pPb82cbUU9UT2NV+RSckQ5tKWOnNXZixKsy8/cPGtiUWqzPuAcXQ==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-s390x-gnu@4.16.4: - resolution: {integrity: sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==} + /@rollup/rollup-linux-s390x-gnu@4.17.1: + resolution: {integrity: sha512-xeae5pMAxHFp6yX5vajInG2toST5lsCTrckSRUFwNgzYqnUjNBcQyqk1bXUxX5yhjWFl2Mnz3F8vQjl+2FRIcw==} cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.16.4: - resolution: {integrity: sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==} + /@rollup/rollup-linux-x64-gnu@4.17.1: + resolution: {integrity: sha512-AsdnINQoDWfKpBzCPqQWxSPdAWzSgnYbrJYtn6W0H2E9It5bZss99PiLA8CgmDRfvKygt20UpZ3xkhFlIfX9zQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.16.4: - resolution: {integrity: sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==} + /@rollup/rollup-linux-x64-musl@4.17.1: + resolution: {integrity: sha512-KoB4fyKXTR+wYENkIG3fFF+5G6N4GFvzYx8Jax8BR4vmddtuqSb5oQmYu2Uu067vT/Fod7gxeQYKupm8gAcMSQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.16.4: - resolution: {integrity: sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==} + /@rollup/rollup-win32-arm64-msvc@4.17.1: + resolution: {integrity: sha512-J0d3NVNf7wBL9t4blCNat+d0PYqAx8wOoY+/9Q5cujnafbX7BmtYk3XvzkqLmFECaWvXGLuHmKj/wrILUinmQg==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.16.4: - resolution: {integrity: sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==} + /@rollup/rollup-win32-ia32-msvc@4.17.1: + resolution: {integrity: sha512-xjgkWUwlq7IbgJSIxvl516FJ2iuC/7ttjsAxSPpC9kkI5iQQFHKyEN5BjbhvJ/IXIZ3yIBcW5QDlWAyrA+TFag==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.16.4: - resolution: {integrity: sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==} + /@rollup/rollup-win32-x64-msvc@4.17.1: + resolution: {integrity: sha512-0QbCkfk6cnnVKWqqlC0cUrrUMDMfu5ffvYMTUHf+qMN2uAb3MKP31LPcwiMXBNsvoFGs/kYdFOsuLmvppCopXA==} cpu: [x64] os: [win32] requiresBuild: true @@ -12229,11 +12554,6 @@ packages: dependencies: '@hapi/hoek': 9.3.0 - /@sideway/address@4.1.5: - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} - dependencies: - '@hapi/hoek': 9.3.0 - /@sideway/formula@3.0.1: resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} @@ -12430,8 +12750,8 @@ packages: tslib: 2.6.2 dev: false - /@swc/helpers@0.5.11: - resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==} + /@swc/helpers@0.5.10: + resolution: {integrity: sha512-CU+RF9FySljn7HVSkkjiB84hWkvTaI3rtLvF433+jRSBL2hMu3zX5bGhHS8C80SM++h4xy8hBSnUHFQHmRXSBw==} dependencies: tslib: 2.6.2 dev: false @@ -12514,7 +12834,6 @@ packages: /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} - dev: true /@trufflesuite/bigint-buffer@1.1.10: resolution: {integrity: sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==} @@ -12834,7 +13153,7 @@ packages: resolution: {integrity: sha512-6ZRPQrYM72qYKGWidEttRe6M5DZBEV5F+MHMHqd4TTYx0tfkcdrUFGdef6CCxY0jXU7wldvd/zA/b0A/kTeJmA==} deprecated: This is a stub types definition. react-native provides its own type definitions, so you do not need this installed. dependencies: - react-native: 0.72.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) transitivePeerDependencies: - '@babel/core' - '@babel/preset-env' @@ -12884,9 +13203,9 @@ packages: /@types/semver@7.5.6: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} - /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - dev: true + /@types/shimmer@1.0.5: + resolution: {integrity: sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww==} + dev: false /@types/stack-utils@2.0.3: resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -12937,13 +13256,14 @@ packages: resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==} dependencies: '@types/yargs-parser': 21.0.3 + dev: true /@types/yargs@17.0.32: resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: '@types/yargs-parser': 21.0.3 - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -12955,18 +13275,18 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) debug: 4.3.4(supports-color@5.5.0) eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare-lite: 1.4.0 semver: 7.6.0 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true @@ -13000,7 +13320,7 @@ packages: - supports-color dev: false - /@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.0.4): + /@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -13012,10 +13332,10 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) debug: 4.3.4(supports-color@5.5.0) eslint: 8.57.0 - typescript: 5.0.4 + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true @@ -13086,7 +13406,7 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.0.4): + /@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -13096,12 +13416,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.0.4) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) debug: 4.3.4(supports-color@5.5.0) eslint: 8.57.0 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true @@ -13141,7 +13461,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.0.4): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.5): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -13156,8 +13476,8 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.0 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true @@ -13205,7 +13525,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.0.4): + /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -13213,10 +13533,10 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 + '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) eslint: 8.57.0 eslint-scope: 5.1.1 semver: 7.6.0 @@ -13437,8 +13757,8 @@ packages: '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/jsonrpc-ws-connection': 1.0.14 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.0.1 + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.23.1) + '@walletconnect/logger': 2.1.2 '@walletconnect/relay-api': 1.0.9 '@walletconnect/relay-auth': 1.0.4 '@walletconnect/safe-json': 1.0.2 @@ -13467,22 +13787,22 @@ packages: - utf-8-validate dev: false - /@walletconnect/core@2.11.2: - resolution: {integrity: sha512-bB4SiXX8hX3/hyBfVPC5gwZCXCl+OPj+/EDVM71iAO3TDsh78KPbrVAbDnnsbHzZVHlsMohtXX3j5XVsheN3+g==} + /@walletconnect/core@2.11.0(@react-native-async-storage/async-storage@1.23.1): + resolution: {integrity: sha512-2Tjp5BCevI7dbmqo/OrCjX4tqgMqwJNQLlQAlphqPfvwlF9+tIu6pGcVbSN3U9zyXzWIZCeleqEaWUeSeET4Ew==} dependencies: '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/jsonrpc-ws-connection': 1.0.14 - '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.23.1) '@walletconnect/logger': 2.1.2 '@walletconnect/relay-api': 1.0.9 '@walletconnect/relay-auth': 1.0.4 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.11.2 - '@walletconnect/utils': 2.11.2 + '@walletconnect/types': 2.11.0(@react-native-async-storage/async-storage@1.23.1) + '@walletconnect/utils': 2.11.0(@react-native-async-storage/async-storage@1.23.1) events: 3.3.0 isomorphic-unfetch: 3.1.0 lodash.isequal: 4.5.0 @@ -13505,12 +13825,52 @@ packages: - ioredis - uWebSockets.js - utf-8-validate + dev: false - /@walletconnect/environment@1.0.1: - resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} + /@walletconnect/core@2.11.2: + resolution: {integrity: sha512-bB4SiXX8hX3/hyBfVPC5gwZCXCl+OPj+/EDVM71iAO3TDsh78KPbrVAbDnnsbHzZVHlsMohtXX3j5XVsheN3+g==} dependencies: - tslib: 1.14.1 - + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/jsonrpc-ws-connection': 1.0.14 + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.23.1) + '@walletconnect/logger': 2.1.2 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.11.2 + '@walletconnect/utils': 2.11.2 + events: 3.3.0 + isomorphic-unfetch: 3.1.0 + lodash.isequal: 4.5.0 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - uWebSockets.js + - utf-8-validate + + /@walletconnect/environment@1.0.1: + resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} + dependencies: + tslib: 1.14.1 + /@walletconnect/ethereum-provider@2.10.6: resolution: {integrity: sha512-bBQ+yUfxLv8VxNttgNKY7nED35gSVayO/BnLHbNKvyV1gpvSCla5mWB9MsXuQs70MK0g+/qtgRVSrOtdSubaNQ==} dependencies: @@ -13704,7 +14064,7 @@ packages: - bufferutil - utf-8-validate - /@walletconnect/keyvaluestorage@1.1.1: + /@walletconnect/keyvaluestorage@1.1.1(@react-native-async-storage/async-storage@1.23.1): resolution: {integrity: sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==} peerDependencies: '@react-native-async-storage/async-storage': 1.x @@ -13712,6 +14072,7 @@ packages: '@react-native-async-storage/async-storage': optional: true dependencies: + '@react-native-async-storage/async-storage': 1.23.1(react-native@0.73.7) '@walletconnect/safe-json': 1.0.2 idb-keyval: 6.2.1 unstorage: 1.10.2(idb-keyval@6.2.1) @@ -13730,13 +14091,6 @@ packages: - ioredis - uWebSockets.js - /@walletconnect/logger@2.0.1: - resolution: {integrity: sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ==} - dependencies: - pino: 7.11.0 - tslib: 1.14.1 - dev: false - /@walletconnect/logger@2.1.2: resolution: {integrity: sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==} dependencies: @@ -13760,6 +14114,55 @@ packages: - react dev: false + /@walletconnect/modal-react-native@1.1.0(@react-native-async-storage/async-storage@1.23.1)(@react-native-community/netinfo@11.3.1)(@walletconnect/react-native-compat@2.12.2)(react-native-get-random-values@1.11.0)(react-native-modal@13.0.1)(react-native-svg@13.14.0)(react-native@0.73.7)(react@18.2.0): + resolution: {integrity: sha512-DWszXt5Jq03EX+hUK3UGfHgY3+eZ+/Nq8AE3aF030TpL7eB3pq8pWsmqcuIL3pGu9Ko96SaThlEm+KcQ1vGr3g==} + engines: {node: '>= 16.0.0'} + peerDependencies: + '@react-native-async-storage/async-storage': '>=1.17.0' + '@react-native-community/netinfo': '>=9.0.0' + '@walletconnect/react-native-compat': '>=2.10.5' + react: '*' + react-native: '*' + react-native-get-random-values: '>=1.8.0' + react-native-modal: '>=13' + react-native-svg: '>=13' + peerDependenciesMeta: + react: + optional: true + react-native: + optional: true + dependencies: + '@react-native-async-storage/async-storage': 1.23.1(react-native@0.73.7) + '@react-native-community/netinfo': 11.3.1(react-native@0.73.7) + '@walletconnect/core': 2.11.0(@react-native-async-storage/async-storage@1.23.1) + '@walletconnect/react-native-compat': 2.12.2(@react-native-async-storage/async-storage@1.23.1)(@react-native-community/netinfo@11.3.1)(react-native-get-random-values@1.11.0)(react-native@0.73.7) + '@walletconnect/universal-provider': 2.11.0(@react-native-async-storage/async-storage@1.23.1) + qrcode: 1.5.3 + react: 18.2.0 + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native-get-random-values: 1.11.0(react-native@0.73.7) + react-native-modal: 13.0.1(react-native@0.73.7)(react@18.2.0) + react-native-svg: 13.14.0(react-native@0.73.7)(react@18.2.0) + valtio: 1.10.5(react@18.2.0) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - uWebSockets.js + - utf-8-validate + dev: false + /@walletconnect/modal-ui@2.6.2(@types/react@18.2.38)(react@18.2.0): resolution: {integrity: sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==} dependencies: @@ -13812,6 +14215,27 @@ packages: - react dev: false + /@walletconnect/react-native-compat@2.12.2(@react-native-async-storage/async-storage@1.23.1)(@react-native-community/netinfo@11.3.1)(react-native-get-random-values@1.11.0)(react-native@0.73.7): + resolution: {integrity: sha512-NChpoZwftMDSy6xH0hc1d2eCvlm0Tx8BQSMtHKFaOpbxxreB90UDmbubqNIPywAGinM/1isgen0i0yvLpHRLRg==} + peerDependencies: + '@react-native-async-storage/async-storage': '*' + '@react-native-community/netinfo': '*' + expo-application: '*' + react-native-get-random-values: '*' + peerDependenciesMeta: + expo-application: + optional: true + dependencies: + '@react-native-async-storage/async-storage': 1.23.1(react-native@0.73.7) + '@react-native-community/netinfo': 11.3.1(react-native@0.73.7) + events: 3.3.0 + fast-text-encoding: 1.0.6 + react-native-get-random-values: 1.11.0(react-native@0.73.7) + react-native-url-polyfill: 2.0.0(react-native@0.73.7) + transitivePeerDependencies: + - react-native + dev: false + /@walletconnect/relay-api@1.0.9: resolution: {integrity: sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg==} dependencies: @@ -13840,7 +14264,7 @@ packages: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.0.1 + '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 '@walletconnect/types': 2.10.6 '@walletconnect/utils': 2.10.6 @@ -13864,6 +14288,38 @@ packages: - utf-8-validate dev: false + /@walletconnect/sign-client@2.11.0(@react-native-async-storage/async-storage@1.23.1): + resolution: {integrity: sha512-H2ukscibBS+6WrzQWh+WyVBqO5z4F5et12JcwobdwgHnJSlqIoZxqnUYYWNCI5rUR5UKsKWaUyto4AE9N5dw4Q==} + dependencies: + '@walletconnect/core': 2.11.0(@react-native-async-storage/async-storage@1.23.1) + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.1.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.11.0(@react-native-async-storage/async-storage@1.23.1) + '@walletconnect/utils': 2.11.0(@react-native-async-storage/async-storage@1.23.1) + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - uWebSockets.js + - utf-8-validate + dev: false + /@walletconnect/sign-client@2.11.2: resolution: {integrity: sha512-MfBcuSz2GmMH+P7MrCP46mVE5qhP0ZyWA0FyIH6/WuxQ6G+MgKsGfaITqakpRPsykWOJq8tXMs3XvUPDU413OQ==} dependencies: @@ -13906,8 +14362,34 @@ packages: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.0.1 + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.23.1) + '@walletconnect/logger': 2.1.2 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + - uWebSockets.js + dev: false + + /@walletconnect/types@2.11.0(@react-native-async-storage/async-storage@1.23.1): + resolution: {integrity: sha512-AB5b1lrEbCGHxqS2vqfCkIoODieH+ZAUp9rA1O2ftrhnqDJiJK983Df87JhYhECsQUBHHfALphA8ydER0q+9sw==} + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.23.1) + '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -13932,7 +14414,7 @@ packages: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.23.1) '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: @@ -13958,7 +14440,7 @@ packages: '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.0.1 + '@walletconnect/logger': 2.1.2 '@walletconnect/sign-client': 2.10.6 '@walletconnect/types': 2.10.6 '@walletconnect/utils': 2.10.6 @@ -13983,6 +14465,38 @@ packages: - utf-8-validate dev: false + /@walletconnect/universal-provider@2.11.0(@react-native-async-storage/async-storage@1.23.1): + resolution: {integrity: sha512-zgJv8jDvIMP4Qse/D9oIRXGdfoNqonsrjPZanQ/CHNe7oXGOBiQND2IIeX+tS0H7uNA0TPvctljCLiIN9nw4eA==} + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.1.2 + '@walletconnect/sign-client': 2.11.0(@react-native-async-storage/async-storage@1.23.1) + '@walletconnect/types': 2.11.0(@react-native-async-storage/async-storage@1.23.1) + '@walletconnect/utils': 2.11.0(@react-native-async-storage/async-storage@1.23.1) + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - uWebSockets.js + - utf-8-validate + dev: false + /@walletconnect/universal-provider@2.11.2: resolution: {integrity: sha512-cNtIn5AVoDxKAJ4PmB8m5adnf5mYQMUamEUPKMVvOPscfGtIMQEh9peKsh2AN5xcRVDbgluC01Id545evFyymw==} dependencies: @@ -14048,6 +14562,40 @@ packages: - uWebSockets.js dev: false + /@walletconnect/utils@2.11.0(@react-native-async-storage/async-storage@1.23.1): + resolution: {integrity: sha512-hxkHPlTlDQILHfIKXlmzgNJau/YcSBC3XHUSuZuKZbNEw3duFT6h6pm3HT/1+j1a22IG05WDsNBuTCRkwss+BQ==} + dependencies: + '@stablelib/chacha20poly1305': 1.0.1 + '@stablelib/hkdf': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/sha256': 1.0.1 + '@stablelib/x25519': 1.0.3 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.11.0(@react-native-async-storage/async-storage@1.23.1) + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + query-string: 7.1.3 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + - uWebSockets.js + dev: false + /@walletconnect/utils@2.11.2: resolution: {integrity: sha512-LyfdmrnZY6dWqlF4eDrx5jpUwsB2bEPjoqR5Z6rXPiHJKUOdJt7az+mNOn5KTSOlRpd1DmozrBrWr+G9fFLYVw==} dependencies: @@ -14170,6 +14718,11 @@ packages: dependencies: tslib: 2.6.2 + /@xmldom/xmldom@0.7.13: + resolution: {integrity: sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==} + engines: {node: '>=10.0.0'} + dev: false + /@xmtp/content-type-reaction@1.1.3: resolution: {integrity: sha512-dGqySD/TwrDkRB5zm46EIS1tViKv0y5urPKy94W93cbcCxFOODRiGPHcyty7ouif/b0CA53NNnG2sjbkxYsLEg==} dependencies: @@ -14397,6 +14950,14 @@ packages: acorn-walk: 8.3.0 dev: true + /acorn-import-assertions@1.9.0(acorn@8.11.3): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.11.3 + dev: false + /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -14446,7 +15007,6 @@ packages: debug: 4.3.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color - dev: true /agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} @@ -14615,6 +15175,32 @@ packages: /appdirsjs@1.2.7: resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==} + /applicationinsights@2.7.3: + resolution: {integrity: sha512-JY8+kTEkjbA+kAVNWDtpfW2lqsrDALfDXuxOs74KLPu2y13fy/9WB52V4LfYVTVcW1/jYOXjTxNS2gPZIDh1iw==} + engines: {node: '>=8.0.0'} + peerDependencies: + applicationinsights-native-metrics: '*' + peerDependenciesMeta: + applicationinsights-native-metrics: + optional: true + dependencies: + '@azure/core-auth': 1.7.2 + '@azure/core-rest-pipeline': 1.10.1 + '@azure/core-util': 1.2.0 + '@azure/opentelemetry-instrumentation-azure-sdk': 1.0.0-beta.5 + '@microsoft/applicationinsights-web-snippet': 1.1.2 + '@opentelemetry/api': 1.8.0 + '@opentelemetry/core': 1.24.0(@opentelemetry/api@1.8.0) + '@opentelemetry/sdk-trace-base': 1.24.0(@opentelemetry/api@1.8.0) + '@opentelemetry/semantic-conventions': 1.24.0 + cls-hooked: 4.2.2 + continuation-local-storage: 3.2.1 + diagnostic-channel: 1.1.1 + diagnostic-channel-publishers: 1.0.7(diagnostic-channel@1.1.1) + transitivePeerDependencies: + - supports-color + dev: false + /aptos@1.20.0: resolution: {integrity: sha512-driZt7qEr4ndKqqVHMyuFsQAHy4gJ4HPQttgVIpeDfnOIEnIV7A2jyJ9EYO2A+MayuyxXB+7yCNXT4HyBFJdpA==} engines: {node: '>=11.0.0'} @@ -14798,10 +15384,22 @@ packages: is-string: 1.0.7 dev: true + /array-union@1.0.2: + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} + engines: {node: '>=0.10.0'} + dependencies: + array-uniq: 1.0.3 + dev: false + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + /array-uniq@1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} + engines: {node: '>=0.10.0'} + dev: false + /array-unique@0.3.2: resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} engines: {node: '>=0.10.0'} @@ -15036,9 +15634,24 @@ packages: async: 2.6.4 dev: true + /async-hook-jl@1.7.6: + resolution: {integrity: sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==} + engines: {node: ^4.7 || >=6.9 || >=7.3} + dependencies: + stack-chain: 1.3.7 + dev: false + /async-limiter@1.0.1: resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} + /async-listener@0.6.10: + resolution: {integrity: sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==} + engines: {node: <=0.11.8 || >0.11.10} + dependencies: + semver: 5.7.2 + shimmer: 1.2.1 + dev: false + /async-mutex@0.2.6: resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} dependencies: @@ -15062,6 +15675,7 @@ packages: /async@3.2.5: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + dev: true /asynciterator.prototype@1.0.0: resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} @@ -15210,7 +15824,7 @@ packages: dependencies: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.4) '@babel/traverse': 7.24.1(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -15249,7 +15863,7 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/template': 7.24.0 + '@babel/template': 7.22.15 '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.4 @@ -15263,18 +15877,6 @@ packages: cosmiconfig: 7.1.0 resolve: 1.22.8 - /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.23.3): - resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.23.3) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.4): resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: @@ -15298,15 +15900,17 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true - /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.23.3): - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.24.4): + resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.23.3) - core-js-compat: 3.37.0 + '@babel/compat-data': 7.23.3 + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.24.4) + semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -15331,6 +15935,18 @@ packages: core-js-compat: 3.33.3 transitivePeerDependencies: - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.24.4): + resolution: {integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.24.4) + core-js-compat: 3.33.3 + transitivePeerDependencies: + - supports-color /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.3): resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} @@ -15341,14 +15957,15 @@ packages: '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) transitivePeerDependencies: - supports-color + dev: true - /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.23.3): - resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.24.4): + resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.23.3) + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.24.4) transitivePeerDependencies: - supports-color @@ -15379,18 +15996,20 @@ packages: /babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} + dev: true /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.23.3): resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} dependencies: - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.23.3) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' + dev: true /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.4): resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} dependencies: - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.4) transitivePeerDependencies: - '@babel/core' @@ -15423,30 +16042,31 @@ packages: '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.3) '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.3) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.23.3) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.3) '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.23.3) - '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.23.3) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) + '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.23.3) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.3) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 + dev: true /babel-preset-fbjs@3.4.0(@babel/core@7.24.4): resolution: {integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==} @@ -15457,30 +16077,31 @@ packages: '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.4) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.4) '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.4) '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.24.4) '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.24.4) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 + dev: true /babel-preset-jest@29.6.3(@babel/core@7.24.4): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} @@ -16183,7 +16804,6 @@ packages: /cjs-module-lexer@1.2.3: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} - dev: true /class-utils@0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} @@ -16202,6 +16822,13 @@ packages: engines: {node: '>=6'} dev: true + /cli-cursor@2.1.0: + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} + engines: {node: '>=4'} + dependencies: + restore-cursor: 2.0.0 + dev: false + /cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -16259,6 +16886,14 @@ packages: strip-ansi: 6.0.1 wrap-ansi: 6.2.0 + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -16285,12 +16920,21 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + /cls-hooked@4.2.2: + resolution: {integrity: sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==} + engines: {node: ^4.7 || >=6.9 || >=7.3 || >=8.2.1} + dependencies: + async-hook-jl: 1.7.6 + emitter-listener: 1.1.2 + semver: 5.7.2 + dev: false + /clsx@1.2.1: resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} engines: {node: '>=6'} - /clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + /clsx@2.1.0: + resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} engines: {node: '>=6'} dev: false @@ -16376,6 +17020,7 @@ packages: /commander@2.13.0: resolution: {integrity: sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==} + dev: true /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -16493,6 +17138,13 @@ packages: resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} dev: true + /continuation-local-storage@3.2.1: + resolution: {integrity: sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==} + dependencies: + async-listener: 0.6.10 + emitter-listener: 1.1.2 + dev: false + /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} @@ -16659,6 +17311,17 @@ packages: which: 1.3.1 dev: true + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + dev: false + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -17055,6 +17718,7 @@ packages: '@react-native/normalize-colors': 0.72.0 invariant: 2.2.4 prop-types: 15.8.1 + dev: true /deprecated-react-native-prop-types@5.0.0: resolution: {integrity: sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ==} @@ -17119,6 +17783,20 @@ packages: resolution: {integrity: sha512-VKoTQRSv7+RnffpOJ3Dh6ozknBqzWw/F3iqMdsZg958R0AS8AnY9x9d1lbwENr0gzeGJHXKcGhAMRaqys6SxqA==} engines: {node: '>=6.0'} + /diagnostic-channel-publishers@1.0.7(diagnostic-channel@1.1.1): + resolution: {integrity: sha512-SEECbY5AiVt6DfLkhkaHNeshg1CogdLLANA8xlG/TKvS+XUgvIKl7VspJGYiEdL5OUyzMVnr7o0AwB7f+/Mjtg==} + peerDependencies: + diagnostic-channel: '*' + dependencies: + diagnostic-channel: 1.1.1 + dev: false + + /diagnostic-channel@1.1.1: + resolution: {integrity: sha512-r2HV5qFkUICyoaKlBEpLKHjxMXATUf/l+h8UZPGBHGLy4DDiY2sOLcIctax4eRnTw5wH2jTMExLntGPJ8eOJxw==} + dependencies: + semver: 7.6.0 + dev: false + /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} dev: true @@ -17144,6 +17822,13 @@ packages: /dijkstrajs@1.0.3: resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + /dir-glob@2.2.2: + resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==} + engines: {node: '>=4'} + dependencies: + path-type: 3.0.0 + dev: false + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -17300,6 +17985,12 @@ packages: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 + /emitter-listener@1.1.2: + resolution: {integrity: sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==} + dependencies: + shimmer: 1.2.1 + dev: false + /emittery@0.10.0: resolution: {integrity: sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==} engines: {node: '>=12'} @@ -17396,11 +18087,6 @@ packages: engines: {node: '>=4'} hasBin: true - /envinfo@7.12.0: - resolution: {integrity: sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==} - engines: {node: '>=4'} - hasBin: true - /errno@0.1.8: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} hasBin: true @@ -17930,14 +18616,14 @@ packages: ignore: 5.3.1 dev: true - /eslint-plugin-ft-flow@2.0.3(@babel/eslint-parser@7.24.1)(eslint@8.57.0): + /eslint-plugin-ft-flow@2.0.3(@babel/eslint-parser@7.23.10)(eslint@8.57.0): resolution: {integrity: sha512-Vbsd/b+LYA99jUbsL6viEUWShFaYQt2YQs3QN3f+aeszOhh2sgdcU0mjzDyD4yyBvMc8qy2uwvBBWfMzEX06tg==} engines: {node: '>=12.22.0'} peerDependencies: '@babel/eslint-parser': ^7.12.0 eslint: ^8.1.0 dependencies: - '@babel/eslint-parser': 7.24.1(@babel/core@7.24.4)(eslint@8.57.0) + '@babel/eslint-parser': 7.23.10(@babel/core@7.24.4)(eslint@8.57.0) eslint: 8.57.0 lodash: 4.17.21 string-natural-compare: 3.0.1 @@ -18009,7 +18695,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@26.9.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(typescript@5.0.4): + /eslint-plugin-jest@26.9.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -18022,8 +18708,8 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 transitivePeerDependencies: - supports-color @@ -18586,6 +19272,34 @@ packages: strip-eof: 1.0.0 dev: true + /execa@1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} + dependencies: + cross-spawn: 6.0.5 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: false + + /execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: false + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -18785,6 +19499,10 @@ packages: /fast-stable-stringify@1.0.0: resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + /fast-text-encoding@1.0.6: + resolution: {integrity: sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==} + dev: false + /fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} dependencies: @@ -18797,12 +19515,6 @@ packages: dependencies: strnum: 1.0.5 - /fast-xml-parser@4.3.6: - resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} - hasBin: true - dependencies: - strnum: 1.0.5 - /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: @@ -18815,7 +19527,6 @@ packages: /fbjs-css-vars@1.0.2: resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} - dev: true /fbjs@3.0.5: resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} @@ -18829,7 +19540,6 @@ packages: ua-parser-js: 1.0.37 transitivePeerDependencies: - encoding - dev: true /figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} @@ -18954,6 +19664,7 @@ packages: /flow-enums-runtime@0.0.5: resolution: {integrity: sha512-PSZF9ZuaZD03sT9YaIs0FrGJ7lSUw7rHZIex+73UYVXg46eL/wxN5PaVcPJFudE2cJu5f0fezitV5aBkLHPUOQ==} + dev: true /flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} @@ -19210,6 +19921,13 @@ packages: has-symbols: 1.0.3 hasown: 2.0.2 + /get-monorepo-packages@1.2.0: + resolution: {integrity: sha512-aDP6tH+eM3EuVSp3YyCutOcFS4Y9AhRRH9FAd+cjtR/g63Hx+DCXdKoP1ViRPUJz5wm+BOEXB4FhoffGHxJ7jQ==} + dependencies: + globby: 7.1.1 + load-json-file: 4.0.0 + dev: false + /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -19223,12 +19941,18 @@ packages: engines: {node: '>=4'} dev: true + /get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + dev: false + /get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} dependencies: pump: 3.0.0 - dev: true /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} @@ -19389,6 +20113,18 @@ packages: merge2: 1.4.1 slash: 3.0.0 + /globby@7.1.1: + resolution: {integrity: sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==} + engines: {node: '>=4'} + dependencies: + array-union: 1.0.2 + dir-glob: 2.2.2 + glob: 7.2.3 + ignore: 3.3.10 + pify: 3.0.0 + slash: 1.0.0 + dev: false + /goober@2.1.13: resolution: {integrity: sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ==} peerDependencies: @@ -19694,27 +20430,29 @@ packages: /hermes-estree@0.12.0: resolution: {integrity: sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw==} + dev: true /hermes-estree@0.15.0: resolution: {integrity: sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ==} - /hermes-estree@0.20.1: - resolution: {integrity: sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==} + /hermes-estree@0.19.1: + resolution: {integrity: sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==} /hermes-parser@0.12.0: resolution: {integrity: sha512-d4PHnwq6SnDLhYl3LHNHvOg7nQ6rcI7QVil418REYksv0Mh3cEkHDcuhGxNQ3vgnLSLl4QSvDrFCwQNYdpWlzw==} dependencies: hermes-estree: 0.12.0 + dev: true /hermes-parser@0.15.0: resolution: {integrity: sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==} dependencies: hermes-estree: 0.15.0 - /hermes-parser@0.20.1: - resolution: {integrity: sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==} + /hermes-parser@0.19.1: + resolution: {integrity: sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==} dependencies: - hermes-estree: 0.20.1 + hermes-estree: 0.19.1 /hermes-profile-transformer@0.0.6: resolution: {integrity: sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==} @@ -19793,7 +20531,6 @@ packages: debug: 4.3.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color - dev: true /http-proxy-agent@6.1.1: resolution: {integrity: sha512-JRCz+4Whs6yrrIoIlrH+ZTmhrRwtMnmOHsHn8GFEn9O2sVfSE+DAZ3oyyGIKF8tjJEeSJmP89j7aTjVsSqsU0g==} @@ -19848,7 +20585,6 @@ packages: debug: 4.3.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color - dev: true /https-proxy-agent@6.2.1: resolution: {integrity: sha512-ONsE3+yfZF2caH5+bJlcddtWqNI3Gvs5A38+ngvljxaBiRXRswym2c7yf8UAeFpRFKjFNHIFEHqR/OLAWJzyiA==} @@ -19874,6 +20610,11 @@ packages: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} dev: true + /human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + dev: false + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -19933,6 +20674,10 @@ packages: minimatch: 3.1.2 dev: true + /ignore@3.3.10: + resolution: {integrity: sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==} + dev: false + /ignore@5.3.0: resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} @@ -19948,13 +20693,6 @@ packages: dependencies: queue: 6.0.2 - /image-size@1.1.1: - resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} - engines: {node: '>=16.x'} - hasBin: true - dependencies: - queue: 6.0.2 - /immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} dev: false @@ -19991,6 +20729,15 @@ packages: engines: {node: '>=12.2'} dev: true + /import-in-the-middle@1.4.2: + resolution: {integrity: sha512-9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw==} + dependencies: + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) + cjs-module-lexer: 1.2.3 + module-details-from-path: 1.0.3 + dev: false + /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} @@ -20069,7 +20816,6 @@ packages: /interpret@1.4.0: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} - dev: true /intl-messageformat@10.5.11: resolution: {integrity: sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg==} @@ -20090,8 +20836,14 @@ packages: engines: {node: '>=0.10.0'} dev: true + /invert-kv@3.0.1: + resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==} + engines: {node: '>=8'} + dev: false + /ip@1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} + dev: true /iron-webcrypto@1.1.0: resolution: {integrity: sha512-5vgYsCakNlaQub1orZK5QmNYhwYtcllTkZBp5sfIaCqY93Cf6l+v2rtE+E4TMbcfjxDMCdrO8wmp7+ZvhDECLA==} @@ -20471,7 +21223,6 @@ packages: /is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} - dev: true /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} @@ -21058,6 +21809,7 @@ packages: /jest-regex-util@27.5.1: resolution: {integrity: sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dev: true /jest-regex-util@29.6.3: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} @@ -21186,6 +21938,7 @@ packages: ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 + dev: true /jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} @@ -21247,6 +22000,7 @@ packages: '@types/node': 18.19.31 merge-stream: 2.0.0 supports-color: 8.1.1 + dev: true /jest-worker@29.7.0: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} @@ -21300,15 +22054,6 @@ packages: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - /joi@17.13.0: - resolution: {integrity: sha512-9qcrTyoBmFZRNHeVP4edKqIUEgFzq7MHvTNSDuHSqkpOPtiBkgNgcmTSqmiw1kw9tdKaiddvIDv/eCJDxmqWCA==} - dependencies: - '@hapi/hoek': 9.3.0 - '@hapi/topo': 5.1.0 - '@sideway/address': 4.1.5 - '@sideway/formula': 3.0.1 - '@sideway/pinpoint': 2.0.0 - /jose@4.15.4: resolution: {integrity: sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==} dev: true @@ -21368,7 +22113,7 @@ packages: '@babel/preset-env': ^7.1.6 dependencies: '@babel/core': 7.24.4 - '@babel/parser': 7.24.4 + '@babel/parser': 7.23.4 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.4) @@ -21389,6 +22134,7 @@ packages: write-file-atomic: 2.4.3 transitivePeerDependencies: - supports-color + dev: true /jscodeshift@0.14.0(@babel/preset-env@7.24.4): resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==} @@ -21397,7 +22143,7 @@ packages: '@babel/preset-env': ^7.1.6 dependencies: '@babel/core': 7.24.4 - '@babel/parser': 7.24.4 + '@babel/parser': 7.23.4 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.4) @@ -21709,6 +22455,13 @@ packages: invert-kv: 1.0.0 dev: true + /lcid@3.1.1: + resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==} + engines: {node: '>=8'} + dependencies: + invert-kv: 3.0.1 + dev: false + /level-codec@9.0.2: resolution: {integrity: sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==} engines: {node: '>=6'} @@ -21960,6 +22713,16 @@ packages: strip-bom: 3.0.0 dev: true + /load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: false + /load-tsconfig@0.2.5: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -22050,6 +22813,13 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + /log-symbols@2.2.0: + resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} + engines: {node: '>=4'} + dependencies: + chalk: 2.4.2 + dev: false + /log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} @@ -22182,6 +22952,13 @@ packages: dependencies: tmpl: 1.0.5 + /map-age-cleaner@0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} + dependencies: + p-defer: 1.0.0 + dev: false + /map-cache@0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} engines: {node: '>=0.10.0'} @@ -22238,6 +23015,24 @@ packages: mimic-fn: 1.2.0 dev: true + /mem@4.3.0: + resolution: {integrity: sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==} + engines: {node: '>=6'} + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 2.1.0 + p-is-promise: 2.1.0 + dev: false + + /mem@5.1.1: + resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==} + engines: {node: '>=8'} + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 2.1.0 + p-is-promise: 2.1.0 + dev: false + /memdown@5.1.0: resolution: {integrity: sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw==} engines: {node: '>=6'} @@ -22253,6 +23048,10 @@ packages: /memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + /memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + dev: false + /memory-fs@0.4.1: resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==} dependencies: @@ -22344,13 +23143,14 @@ packages: nullthrows: 1.1.1 transitivePeerDependencies: - supports-color + dev: true - /metro-babel-transformer@0.80.8: - resolution: {integrity: sha512-TTzNwRZb2xxyv4J/+yqgtDAP2qVqH3sahsnFu6Xv4SkLqzrivtlnyUbaeTdJ9JjtADJUEjCbgbFgUVafrXdR9Q==} + /metro-babel-transformer@0.80.6: + resolution: {integrity: sha512-ssuoVC4OzqaOt3LpwfUbDfBlFGRu9v1Yf2JJnKPz0ROYHNjSBws4aUesqQQ/Ea8DbiH7TK4j4cJmm+XjdHmgqA==} engines: {node: '>=18'} dependencies: '@babel/core': 7.24.4 - hermes-parser: 0.20.1 + hermes-parser: 0.19.1 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color @@ -22358,9 +23158,10 @@ packages: /metro-cache-key@0.76.8: resolution: {integrity: sha512-buKQ5xentPig9G6T37Ww/R/bC+/V1MA5xU/D8zjnhlelsrPG6w6LtHUS61ID3zZcMZqYaELWk5UIadIdDsaaLw==} engines: {node: '>=16'} + dev: true - /metro-cache-key@0.80.8: - resolution: {integrity: sha512-qWKzxrLsRQK5m3oH8ePecqCc+7PEhR03cJE6Z6AxAj0idi99dHOSitTmY0dclXVB9vP2tQIAE8uTd8xkYGk8fA==} + /metro-cache-key@0.80.6: + resolution: {integrity: sha512-DFmjQacC8m/S3HpELklLMWkPGP/fZPX3BSgjd0xQvwIvWyFwk8Nn/lfp/uWdEVDtDSIr64/anXU5uWohGwlWXw==} engines: {node: '>=18'} /metro-cache@0.76.8: @@ -22369,12 +23170,13 @@ packages: dependencies: metro-core: 0.76.8 rimraf: 3.0.2 + dev: true - /metro-cache@0.80.8: - resolution: {integrity: sha512-5svz+89wSyLo7BxdiPDlwDTgcB9kwhNMfNhiBZPNQQs1vLFXxOkILwQiV5F2EwYT9DEr6OPZ0hnJkZfRQ8lDYQ==} + /metro-cache@0.80.6: + resolution: {integrity: sha512-NP81pHSPkzs+iNlpVkJqijrpcd6lfuDAunYH9/Rn8oLNz0yLfkl8lt+xOdUU4IkFt3oVcTBEFCnzAzv4B8YhyA==} engines: {node: '>=18'} dependencies: - metro-core: 0.80.8 + metro-core: 0.80.6 rimraf: 3.0.2 /metro-config@0.76.8: @@ -22393,18 +23195,19 @@ packages: - encoding - supports-color - utf-8-validate + dev: true - /metro-config@0.80.8: - resolution: {integrity: sha512-VGQJpfJawtwRzGzGXVUoohpIkB0iPom4DmSbAppKfumdhtLA8uVeEPp2GM61kL9hRvdbMhdWA7T+hZFDlo4mJA==} + /metro-config@0.80.6: + resolution: {integrity: sha512-vHYYvJpRTWYbmvqlR7i04xQpZCHJ6yfZ/xIcPdz2ssbdJGGJbiT1Aar9wr8RAhsccSxdJgfE5B1DB8Mo+DnhIg==} engines: {node: '>=18'} dependencies: connect: 3.7.0 cosmiconfig: 5.2.1 jest-validate: 29.7.0 - metro: 0.80.8 - metro-cache: 0.80.8 - metro-core: 0.80.8 - metro-runtime: 0.80.8 + metro: 0.80.6 + metro-cache: 0.80.6 + metro-core: 0.80.6 + metro-runtime: 0.80.6 transitivePeerDependencies: - bufferutil - encoding @@ -22417,13 +23220,14 @@ packages: dependencies: lodash.throttle: 4.1.1 metro-resolver: 0.76.8 + dev: true - /metro-core@0.80.8: - resolution: {integrity: sha512-g6lud55TXeISRTleW6SHuPFZHtYrpwNqbyFIVd9j9Ofrb5IReiHp9Zl8xkAfZQp8v6ZVgyXD7c130QTsCz+vBw==} + /metro-core@0.80.6: + resolution: {integrity: sha512-fn4rryTUAwzFJWj7VIPDH4CcW/q7MV4oGobqR6NsuxZoIGYrVpK7pBasumu5YbCqifuErMs5s23BhmrDNeZURw==} engines: {node: '>=18'} dependencies: lodash.throttle: 4.1.1 - metro-resolver: 0.80.8 + metro-resolver: 0.80.6 /metro-file-map@0.76.8: resolution: {integrity: sha512-A/xP1YNEVwO1SUV9/YYo6/Y1MmzhL4ZnVgcJC3VmHp/BYVOXVStzgVbWv2wILe56IIMkfXU+jpXrGKKYhFyHVw==} @@ -22445,9 +23249,10 @@ packages: fsevents: 2.3.3 transitivePeerDependencies: - supports-color + dev: true - /metro-file-map@0.80.8: - resolution: {integrity: sha512-eQXMFM9ogTfDs2POq7DT2dnG7rayZcoEgRbHPXvhUWkVwiKkro2ngcBE++ck/7A36Cj5Ljo79SOkYwHaWUDYDw==} + /metro-file-map@0.80.6: + resolution: {integrity: sha512-S3CUqvpXpc+q3q+hCEWvFKhVqgq0VmXdZQDF6u7ue86E2elq1XLnfLOt9JSpwyhpMQRyysjSCnd/Yh6GZMNHoQ==} engines: {node: '>=18'} dependencies: anymatch: 3.1.3 @@ -22480,24 +23285,27 @@ packages: - encoding - supports-color - utf-8-validate + dev: true /metro-minify-terser@0.76.8: resolution: {integrity: sha512-Orbvg18qXHCrSj1KbaeSDVYRy/gkro2PC7Fy2tDSH1c9RB4aH8tuMOIXnKJE+1SXxBtjWmQ5Yirwkth2DyyEZA==} engines: {node: '>=16'} dependencies: terser: 5.24.0 + dev: true - /metro-minify-terser@0.80.8: - resolution: {integrity: sha512-y8sUFjVvdeUIINDuW1sejnIjkZfEF+7SmQo0EIpYbWmwh+kq/WMj74yVaBWuqNjirmUp1YNfi3alT67wlbBWBQ==} + /metro-minify-terser@0.80.6: + resolution: {integrity: sha512-83eZaH2+B+jP92KuodPqXknzwmiboKAuZY4doRfTEEXAG57pNVNN6cqSRJlwDnmaTBKRffxoncBXbYqHQgulgg==} engines: {node: '>=18'} dependencies: - terser: 5.30.4 + terser: 5.24.0 /metro-minify-uglify@0.76.8: resolution: {integrity: sha512-6l8/bEvtVaTSuhG1FqS0+Mc8lZ3Bl4RI8SeRIifVLC21eeSDp4CEBUWSGjpFyUDfi6R5dXzYaFnSgMNyfxADiQ==} engines: {node: '>=16'} dependencies: uglify-es: 3.3.9 + dev: true /metro-react-native-babel-preset@0.76.8(@babel/core@7.23.3): resolution: {integrity: sha512-Ptza08GgqzxEdK8apYsjTx2S8WDUlS2ilBlu9DR1CUcHmg4g3kOkFylZroogVAUKtpYQNYwAvdsjmrSdDNtiAg==} @@ -22508,44 +23316,45 @@ packages: '@babel/core': 7.23.3 '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.23.3) '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.3) - '@babel/plugin-proposal-export-default-from': 7.24.1(@babel/core@7.23.3) + '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.23.3) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.3) '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.23.3) '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.3) '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.23.3) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.23.3) '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.23.3) + '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.3) '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.23.3) - '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.23.3) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) + '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.23.3) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-runtime': 7.24.3(@babel/core@7.23.3) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.23.3) - '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.23.3) - '@babel/template': 7.24.0 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-runtime': 7.23.4(@babel/core@7.23.3) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-typescript': 7.23.4(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.3) + '@babel/template': 7.22.15 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.23.3) react-refresh: 0.4.3 transitivePeerDependencies: - supports-color + dev: true /metro-react-native-babel-preset@0.76.8(@babel/core@7.24.4): resolution: {integrity: sha512-Ptza08GgqzxEdK8apYsjTx2S8WDUlS2ilBlu9DR1CUcHmg4g3kOkFylZroogVAUKtpYQNYwAvdsjmrSdDNtiAg==} @@ -22556,44 +23365,45 @@ packages: '@babel/core': 7.24.4 '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.4) '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) - '@babel/plugin-proposal-export-default-from': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.24.4) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.4) '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.4) '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.4) '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.4) '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.24.4) '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-runtime': 7.24.3(@babel/core@7.24.4) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.4) - '@babel/template': 7.24.0 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-runtime': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.24.4) + '@babel/template': 7.22.15 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.4) react-refresh: 0.4.3 transitivePeerDependencies: - supports-color + dev: true /metro-react-native-babel-transformer@0.76.8(@babel/core@7.23.3): resolution: {integrity: sha512-3h+LfS1WG1PAzhq8QF0kfXjxuXetbY/lgz8vYMQhgrMMp17WM1DNJD0gjx8tOGYbpbBC1qesJ45KMS4o5TA73A==} @@ -22608,27 +23418,15 @@ packages: nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - - /metro-react-native-babel-transformer@0.76.8(@babel/core@7.24.4): - resolution: {integrity: sha512-3h+LfS1WG1PAzhq8QF0kfXjxuXetbY/lgz8vYMQhgrMMp17WM1DNJD0gjx8tOGYbpbBC1qesJ45KMS4o5TA73A==} - engines: {node: '>=16'} - peerDependencies: - '@babel/core': '*' - dependencies: - '@babel/core': 7.24.4 - babel-preset-fbjs: 3.4.0(@babel/core@7.24.4) - hermes-parser: 0.12.0 - metro-react-native-babel-preset: 0.76.8(@babel/core@7.24.4) - nullthrows: 1.1.1 - transitivePeerDependencies: - - supports-color + dev: true /metro-resolver@0.76.8: resolution: {integrity: sha512-KccOqc10vrzS7ZhG2NSnL2dh3uVydarB7nOhjreQ7C4zyWuiW9XpLC4h47KtGQv3Rnv/NDLJYeDqaJ4/+140HQ==} engines: {node: '>=16'} + dev: true - /metro-resolver@0.80.8: - resolution: {integrity: sha512-JdtoJkP27GGoZ2HJlEsxs+zO7jnDUCRrmwXJozTlIuzLHMRrxgIRRby9fTCbMhaxq+iA9c+wzm3iFb4NhPmLbQ==} + /metro-resolver@0.80.6: + resolution: {integrity: sha512-R7trfglG4zY4X9XyM9cvuffAhQ9W1reWoahr1jdEWa6rOI8PyM0qXjcsb8l+fsOQhdSiVlkKcYAmkyrs1S/zrA==} engines: {node: '>=18'} /metro-runtime@0.76.8: @@ -22637,9 +23435,10 @@ packages: dependencies: '@babel/runtime': 7.24.4 react-refresh: 0.4.3 + dev: true - /metro-runtime@0.80.8: - resolution: {integrity: sha512-2oScjfv6Yb79PelU1+p8SVrCMW9ZjgEiipxq7jMRn8mbbtWzyv3g8Mkwr+KwOoDFI/61hYPUbY8cUnu278+x1g==} + /metro-runtime@0.80.6: + resolution: {integrity: sha512-21GQVd0pp2nACoK0C2PL8mBsEhIFUFFntYrWRlYNHtPQoqDzddrPEIgkyaABGXGued+dZoBlFQl+LASlmmfkvw==} engines: {node: '>=18'} dependencies: '@babel/runtime': 7.24.4 @@ -22658,17 +23457,18 @@ packages: vlq: 1.0.1 transitivePeerDependencies: - supports-color + dev: true - /metro-source-map@0.80.8: - resolution: {integrity: sha512-+OVISBkPNxjD4eEKhblRpBf463nTMk3KMEeYS8Z4xM/z3qujGJGSsWUGRtH27+c6zElaSGtZFiDMshEb8mMKQg==} + /metro-source-map@0.80.6: + resolution: {integrity: sha512-lqDuSLctWy9Qccu4Zl0YB1PzItpsqcKGb1nK0aDY+lzJ26X65OCib2VzHlj+xj7e4PiIKOfsvDCczCBz4cnxdg==} engines: {node: '>=18'} dependencies: '@babel/traverse': 7.24.1(supports-color@5.5.0) '@babel/types': 7.24.0 invariant: 2.2.4 - metro-symbolicate: 0.80.8 + metro-symbolicate: 0.80.6 nullthrows: 1.1.1 - ob1: 0.80.8 + ob1: 0.80.6 source-map: 0.5.7 vlq: 1.0.1 transitivePeerDependencies: @@ -22687,14 +23487,15 @@ packages: vlq: 1.0.1 transitivePeerDependencies: - supports-color + dev: true - /metro-symbolicate@0.80.8: - resolution: {integrity: sha512-nwhYySk79jQhwjL9QmOUo4wS+/0Au9joEryDWw7uj4kz2yvw1uBjwmlql3BprQCBzRdB3fcqOP8kO8Es+vE31g==} + /metro-symbolicate@0.80.6: + resolution: {integrity: sha512-SGwKeBi+lK7NmM5+EcW6DyRRa9HmGSvH0LJtlT4XoRMbpxzsLYs0qUEA+olD96pOIP+ta7I8S30nQr2ttqgO8A==} engines: {node: '>=18'} hasBin: true dependencies: invariant: 2.2.4 - metro-source-map: 0.80.8 + metro-source-map: 0.80.6 nullthrows: 1.1.1 source-map: 0.5.7 through2: 2.0.5 @@ -22708,19 +23509,20 @@ packages: dependencies: '@babel/core': 7.24.4 '@babel/generator': 7.24.4 - '@babel/template': 7.24.0 + '@babel/template': 7.22.15 '@babel/traverse': 7.24.1(supports-color@5.5.0) nullthrows: 1.1.1 transitivePeerDependencies: - supports-color + dev: true - /metro-transform-plugins@0.80.8: - resolution: {integrity: sha512-sSu8VPL9Od7w98MftCOkQ1UDeySWbsIAS5I54rW22BVpPnI3fQ42srvqMLaJUQPjLehUanq8St6OMBCBgH/UWw==} + /metro-transform-plugins@0.80.6: + resolution: {integrity: sha512-e04tdTC5Fy1vOQrTTXb5biao0t7nR/h+b1IaBTlM5UaHaAJZr658uVOoZhkRxKjbhF2mIwJ/8DdorD2CA15BCg==} engines: {node: '>=18'} dependencies: '@babel/core': 7.24.4 '@babel/generator': 7.24.4 - '@babel/template': 7.24.0 + '@babel/template': 7.22.15 '@babel/traverse': 7.24.1(supports-color@5.5.0) nullthrows: 1.1.1 transitivePeerDependencies: @@ -22747,22 +23549,23 @@ packages: - encoding - supports-color - utf-8-validate + dev: true - /metro-transform-worker@0.80.8: - resolution: {integrity: sha512-+4FG3TQk3BTbNqGkFb2uCaxYTfsbuFOCKMMURbwu0ehCP8ZJuTUramkaNZoATS49NSAkRgUltgmBa4YaKZ5mqw==} + /metro-transform-worker@0.80.6: + resolution: {integrity: sha512-jV+VgCLiCj5jQadW/h09qJaqDreL6XcBRY52STCoz2xWn6WWLLMB5nXzQtvFNPmnIOps+Xu8+d5hiPcBNOhYmA==} engines: {node: '>=18'} dependencies: '@babel/core': 7.24.4 '@babel/generator': 7.24.4 '@babel/parser': 7.24.4 '@babel/types': 7.24.0 - metro: 0.80.8 - metro-babel-transformer: 0.80.8 - metro-cache: 0.80.8 - metro-cache-key: 0.80.8 - metro-minify-terser: 0.80.8 - metro-source-map: 0.80.8 - metro-transform-plugins: 0.80.8 + metro: 0.80.6 + metro-babel-transformer: 0.80.6 + metro-cache: 0.80.6 + metro-cache-key: 0.80.6 + metro-minify-terser: 0.80.6 + metro-source-map: 0.80.6 + metro-transform-plugins: 0.80.6 nullthrows: 1.1.1 transitivePeerDependencies: - bufferutil @@ -22779,7 +23582,7 @@ packages: '@babel/core': 7.24.4 '@babel/generator': 7.24.4 '@babel/parser': 7.24.4 - '@babel/template': 7.24.0 + '@babel/template': 7.22.15 '@babel/traverse': 7.24.1(supports-color@5.5.0) '@babel/types': 7.24.0 accepts: 1.3.8 @@ -22828,9 +23631,10 @@ packages: - encoding - supports-color - utf-8-validate + dev: true - /metro@0.80.8: - resolution: {integrity: sha512-in7S0W11mg+RNmcXw+2d9S3zBGmCARDxIwoXJAmLUQOQoYsRP3cpGzyJtc7WOw8+FXfpgXvceD0u+PZIHXEL7g==} + /metro@0.80.6: + resolution: {integrity: sha512-f6Nhnht9TxVRP6zdBq9J2jNdeDBxRmJFnjxhQS1GeCpokBvI6fTXq+wHTLz5jZA+75fwbkPSzBxBJzQa6xi0AQ==} engines: {node: '>=18'} hasBin: true dependencies: @@ -22838,7 +23642,7 @@ packages: '@babel/core': 7.24.4 '@babel/generator': 7.24.4 '@babel/parser': 7.24.4 - '@babel/template': 7.24.0 + '@babel/template': 7.22.15 '@babel/traverse': 7.24.1(supports-color@5.5.0) '@babel/types': 7.24.0 accepts: 1.3.8 @@ -22849,24 +23653,24 @@ packages: denodeify: 1.2.1 error-stack-parser: 2.1.4 graceful-fs: 4.2.11 - hermes-parser: 0.20.1 - image-size: 1.1.1 + hermes-parser: 0.19.1 + image-size: 1.0.2 invariant: 2.2.4 jest-worker: 29.7.0 jsc-safe-url: 0.2.4 lodash.throttle: 4.1.1 - metro-babel-transformer: 0.80.8 - metro-cache: 0.80.8 - metro-cache-key: 0.80.8 - metro-config: 0.80.8 - metro-core: 0.80.8 - metro-file-map: 0.80.8 - metro-resolver: 0.80.8 - metro-runtime: 0.80.8 - metro-source-map: 0.80.8 - metro-symbolicate: 0.80.8 - metro-transform-plugins: 0.80.8 - metro-transform-worker: 0.80.8 + metro-babel-transformer: 0.80.6 + metro-cache: 0.80.6 + metro-cache-key: 0.80.6 + metro-config: 0.80.6 + metro-core: 0.80.6 + metro-file-map: 0.80.6 + metro-resolver: 0.80.6 + metro-runtime: 0.80.6 + metro-source-map: 0.80.6 + metro-symbolicate: 0.80.6 + metro-transform-plugins: 0.80.6 + metro-transform-worker: 0.80.6 mime-types: 2.1.35 node-fetch: 2.7.0 nullthrows: 1.1.1 @@ -22957,7 +23761,6 @@ packages: /mimic-fn@1.2.0: resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} engines: {node: '>=4'} - dev: true /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} @@ -23108,6 +23911,10 @@ packages: pkg-types: 1.0.3 ufo: 1.5.3 + /module-details-from-path@1.0.3: + resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} + dev: false + /module-error@1.0.2: resolution: {integrity: sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==} engines: {node: '>=10'} @@ -23285,6 +24092,10 @@ packages: - babel-plugin-macros dev: false + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: false + /no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: @@ -23491,7 +24302,6 @@ packages: engines: {node: '>=4'} dependencies: path-key: 2.0.1 - dev: true /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} @@ -23538,9 +24348,10 @@ packages: /ob1@0.76.8: resolution: {integrity: sha512-dlBkJJV5M/msj9KYA9upc+nUWVwuOFFTbu28X6kZeGwcuW+JxaHSBZ70SYQnk5M+j5JbNLR6yKHmgW4M5E7X5g==} engines: {node: '>=16'} + dev: true - /ob1@0.80.8: - resolution: {integrity: sha512-QHJQk/lXMmAW8I7AIM3in1MSlwe1umR72Chhi8B7Xnq6mzjhBKkA6Fy/zAhQnGkA4S912EPCEvTij5yh+EQTAA==} + /ob1@0.80.6: + resolution: {integrity: sha512-nlLGZPMQ/kbmkdIb5yvVzep1jKUII2x6ehNsHpgy71jpnJMW7V+KsB3AjYI2Ajb7UqMAMNjlssg6FUodrEMYzg==} engines: {node: '>=18'} /obj-multiplex@1.0.0: @@ -23734,6 +24545,13 @@ packages: dependencies: wrappy: 1.0.2 + /onetime@2.0.1: + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} + engines: {node: '>=4'} + dependencies: + mimic-fn: 1.2.0 + dev: false + /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} @@ -23786,6 +24604,18 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 + /ora@3.4.0: + resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} + engines: {node: '>=6'} + dependencies: + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-spinners: 2.9.1 + log-symbols: 2.2.0 + strip-ansi: 5.2.0 + wcwidth: 1.0.1 + dev: false + /ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} @@ -23820,6 +24650,15 @@ packages: mem: 1.1.0 dev: true + /os-locale@5.0.0: + resolution: {integrity: sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==} + engines: {node: '>=10'} + dependencies: + execa: 4.1.0 + lcid: 3.1.1 + mem: 5.1.1 + dev: false + /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -23833,6 +24672,11 @@ packages: engines: {node: '>=8'} dev: true + /p-defer@1.0.0: + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} + dev: false + /p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -23843,7 +24687,11 @@ packages: /p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} - dev: true + + /p-is-promise@2.1.0: + resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==} + engines: {node: '>=6'} + dev: false /p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} @@ -24046,7 +24894,6 @@ packages: /path-key@2.0.1: resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} engines: {node: '>=4'} - dev: true /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} @@ -24103,6 +24950,13 @@ packages: pify: 2.3.0 dev: true + /path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: false + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -24438,7 +25292,6 @@ packages: resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} dependencies: asap: 2.0.6 - dev: true /promise@8.3.0: resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} @@ -24712,7 +25565,24 @@ packages: /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - /react-native-get-random-values@1.11.0(react-native@0.73.5): + /react-native-animatable@1.3.3: + resolution: {integrity: sha512-2ckIxZQAsvWn25Ho+DK3d1mXIgj7tITkrS4pYDvx96WyOttSvzzFeQnM2od0+FUMzILbdHDsDEqZvnz1DYNQ1w==} + dependencies: + prop-types: 15.8.1 + dev: false + + /react-native-config@1.5.1(react-native-windows@0.73.12): + resolution: {integrity: sha512-g1xNgt1tV95FCX+iWz6YJonxXkQX0GdD3fB8xQtR1GUBEqweB9zMROW77gi2TygmYmUkBI7LU4pES+zcTyK4HA==} + peerDependencies: + react-native-windows: '>=0.61' + peerDependenciesMeta: + react-native-windows: + optional: true + dependencies: + react-native-windows: 0.73.12(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react-native@0.73.7)(react@18.2.0) + dev: false + + /react-native-get-random-values@1.11.0(react-native@0.73.7): resolution: {integrity: sha512-4BTbDbRmS7iPdhYLRcz3PGFIpFJBwNZg9g42iwa2P6FOv9vZj/xJc678RZXnLNZzd0qd7Q3CCF6Yd+CU2eoXKQ==} peerDependencies: react-native: '>=0.56' @@ -24721,7 +25591,66 @@ packages: optional: true dependencies: fast-base64-decode: 1.0.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + dev: false + + /react-native-macos@0.73.26(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react-native@0.73.7)(react@18.2.0): + resolution: {integrity: sha512-BgRr00irEPu2SaCryQqrDatRViTqIdwflCHR6STpB9m7K8mqqStGXcLRESL6//3T3KQjmNvFlDVrSaKiPwhDGQ==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + react: 18.2.0 + peerDependenciesMeta: + react: + optional: true + dependencies: + '@jest/create-cache-key-function': 29.7.0 + '@react-native-community/cli': 12.3.6 + '@react-native-community/cli-platform-android': 12.3.6 + '@react-native-community/cli-platform-ios': 12.3.6 + '@react-native-mac/virtualized-lists': 0.73.3(react-native@0.73.7) + '@react-native/assets-registry': 0.73.1 + '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.4) + '@react-native/community-cli-plugin': 0.73.17(@babel/core@7.24.4)(@babel/preset-env@7.24.4) + '@react-native/gradle-plugin': 0.73.4 + '@react-native/js-polyfills': 0.73.1 + '@react-native/normalize-colors': 0.73.2 + abort-controller: 3.0.0 + anser: 1.4.10 + ansi-regex: 5.0.1 + base64-js: 1.5.1 + chalk: 4.1.2 + deprecated-react-native-prop-types: 5.0.0 + event-target-shim: 5.0.1 + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + jest-environment-node: 29.7.0 + jsc-android: 250231.0.0 + memoize-one: 5.2.1 + metro-runtime: 0.80.6 + metro-source-map: 0.80.6 + mkdirp: 0.5.6 + nullthrows: 1.1.1 + pretty-format: 26.6.2 + promise: 8.3.0 + react: 18.2.0 + react-devtools-core: 4.28.5 + react-refresh: 0.14.0 + react-shallow-renderer: 16.15.0(react@18.2.0) + regenerator-runtime: 0.13.11 + scheduler: 0.24.0-canary-efb381bbf-20230505 + stacktrace-parser: 0.1.10 + whatwg-fetch: 3.6.19 + ws: 6.2.2 + yargs: 17.7.2 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - bufferutil + - encoding + - react-native + - supports-color + - utf-8-validate dev: false /react-native-mmkv@2.11.0(react-native@0.72.7)(react@18.2.0): @@ -24739,7 +25668,7 @@ packages: react-native: 0.72.7(@babel/core@7.23.3)(@babel/preset-env@7.23.3)(react@18.2.0) dev: true - /react-native-mmkv@2.11.0(react-native@0.73.5)(react@18.2.0): + /react-native-mmkv@2.11.0(react-native@0.73.7)(react@18.2.0): resolution: {integrity: sha512-28PdUHjZJmAw3q+8zJDAAdohnZMpDC7WgRUJxACOMkcmJeqS3u5cKS/lSq2bhf1CvaeIiHYHUWiyatUjMRCDQQ==} peerDependencies: react: '*' @@ -24751,11 +25680,28 @@ packages: optional: true dependencies: react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + dev: false + + /react-native-modal@13.0.1(react-native@0.73.7)(react@18.2.0): + resolution: {integrity: sha512-UB+mjmUtf+miaG/sDhOikRfBOv0gJdBU2ZE1HtFWp6UixW9jCk/bhGdHUgmZljbPpp0RaO/6YiMmQSSK3kkMaw==} + peerDependencies: + react: '*' + react-native: '>=0.65.0' + peerDependenciesMeta: + react: + optional: true + react-native: + optional: true + dependencies: + prop-types: 15.8.1 + react: 18.2.0 + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native-animatable: 1.3.3 dev: false - /react-native-svg@13.4.0(react-native@0.73.5)(react@18.2.0): - resolution: {integrity: sha512-B3TwK+H0+JuRhYPzF21AgqMt4fjhCwDZ9QUtwNstT5XcslJBXC0FoTkdZo8IEb1Sv4suSqhZwlAY6lwOv3tHag==} + /react-native-svg@13.14.0(react-native@0.73.7)(react@18.2.0): + resolution: {integrity: sha512-27ZnxUkHgWICimhuj6MuqBkISN53lVvgWJB7pIypjXysAyM+nqgQBPh4vXg+7MbqLBoYvR4PiBgKfwwGAqVxHg==} peerDependencies: react: '*' react-native: '*' @@ -24768,7 +25714,42 @@ packages: css-select: 5.1.0 css-tree: 1.1.3 react: 18.2.0 - react-native: 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + dev: false + + /react-native-url-polyfill@2.0.0(react-native@0.73.7): + resolution: {integrity: sha512-My330Do7/DvKnEvwQc0WdcBnFPploYKp9CYlefDXzIdEaA+PAhDYllkvGeEroEzvc4Kzzj2O4yVdz8v6fjRvhA==} + peerDependencies: + react-native: '*' + peerDependenciesMeta: + react-native: + optional: true + dependencies: + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + whatwg-url-without-unicode: 8.0.0-3 + dev: false + + /react-native-web@0.19.11(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-51Qcjr0AtIgskwLqLsBByUMPs2nAWZ+6QF7x/siC72svNPcJ1/daXoPTNuHR2fX4oOrDATC4Vmc/SXOYPH19rw==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + react: + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@react-native/normalize-colors': 0.74.81 + fbjs: 3.0.5 + inline-style-prefixer: 6.0.4 + memoize-one: 6.0.0 + nullthrows: 1.1.1 + postcss-value-parser: 4.2.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styleq: 0.1.3 + transitivePeerDependencies: + - encoding dev: false /react-native-webview@11.26.1(react@18.2.0): @@ -24786,62 +25767,72 @@ packages: invariant: 2.2.4 react: 18.2.0 - /react-native@0.72.7(@babel/core@7.23.3)(@babel/preset-env@7.23.3)(react@18.2.0): - resolution: {integrity: sha512-dqVFojOO9rOvyFbbM3/v9/GJR355OSuBhEY4NQlMIRc2w0Xch5MT/2uPoq3+OvJ+5h7a8LFAco3fucSffG0FbA==} - engines: {node: '>=16'} - hasBin: true + /react-native-windows@0.73.12(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react-native@0.73.7)(react@18.2.0): + resolution: {integrity: sha512-d3rShmeBlJZq/uDfQoP8qtM8WP0h5c/RXTy/PgyKPej+h/JVwPNVe8b8unbRS510VL+K5g/3on5KbfTJT0oR4g==} + engines: {node: '>= 18'} peerDependencies: react: 18.2.0 + react-native: ^0.73.0 peerDependenciesMeta: react: optional: true + react-native: + optional: true dependencies: + '@babel/runtime': 7.24.4 '@jest/create-cache-key-function': 29.7.0 - '@react-native-community/cli': 11.3.10(@babel/core@7.23.3) - '@react-native-community/cli-platform-android': 11.3.10 - '@react-native-community/cli-platform-ios': 11.3.10 - '@react-native/assets-registry': 0.72.0 - '@react-native/codegen': 0.72.7(@babel/preset-env@7.23.3) - '@react-native/gradle-plugin': 0.72.11 - '@react-native/js-polyfills': 0.72.1 - '@react-native/normalize-colors': 0.72.0 - '@react-native/virtualized-lists': 0.72.8(react-native@0.72.7) + '@react-native-community/cli': 12.3.6 + '@react-native-community/cli-platform-android': 12.3.6 + '@react-native-community/cli-platform-ios': 12.3.6 + '@react-native-windows/cli': 0.73.3(react-native@0.73.7) + '@react-native/assets-registry': 0.73.1 + '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.4) + '@react-native/community-cli-plugin': 0.73.17(@babel/core@7.24.4)(@babel/preset-env@7.24.4) + '@react-native/gradle-plugin': 0.73.4 + '@react-native/js-polyfills': 0.73.1 + '@react-native/normalize-colors': 0.73.2 + '@react-native/virtualized-lists': 0.73.4(react-native@0.73.7) abort-controller: 3.0.0 anser: 1.4.10 + ansi-regex: 5.0.1 base64-js: 1.5.1 - deprecated-react-native-prop-types: 4.2.3 + chalk: 4.1.2 + deprecated-react-native-prop-types: 5.0.0 event-target-shim: 5.0.1 - flow-enums-runtime: 0.0.5 + flow-enums-runtime: 0.0.6 invariant: 2.2.4 jest-environment-node: 29.7.0 jsc-android: 250231.0.0 memoize-one: 5.2.1 - metro-runtime: 0.76.8 - metro-source-map: 0.76.8 + metro-runtime: 0.80.6 + metro-source-map: 0.80.6 mkdirp: 0.5.6 nullthrows: 1.1.1 pretty-format: 26.6.2 promise: 8.3.0 react: 18.2.0 react-devtools-core: 4.28.5 - react-refresh: 0.4.3 + react-native: 0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0) + react-refresh: 0.14.0 react-shallow-renderer: 16.15.0(react@18.2.0) regenerator-runtime: 0.13.11 scheduler: 0.24.0-canary-efb381bbf-20230505 + source-map-support: 0.5.21 stacktrace-parser: 0.1.10 - use-sync-external-store: 1.2.0(react@18.2.0) whatwg-fetch: 3.6.19 ws: 6.2.2 yargs: 17.7.2 transitivePeerDependencies: - '@babel/core' - '@babel/preset-env' + - applicationinsights-native-metrics - bufferutil - encoding - supports-color - utf-8-validate + dev: false - /react-native@0.72.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0): + /react-native@0.72.7(@babel/core@7.23.3)(@babel/preset-env@7.23.3)(react@18.2.0): resolution: {integrity: sha512-dqVFojOO9rOvyFbbM3/v9/GJR355OSuBhEY4NQlMIRc2w0Xch5MT/2uPoq3+OvJ+5h7a8LFAco3fucSffG0FbA==} engines: {node: '>=16'} hasBin: true @@ -24852,11 +25843,11 @@ packages: optional: true dependencies: '@jest/create-cache-key-function': 29.7.0 - '@react-native-community/cli': 11.3.10(@babel/core@7.24.4) + '@react-native-community/cli': 11.3.10(@babel/core@7.23.3) '@react-native-community/cli-platform-android': 11.3.10 '@react-native-community/cli-platform-ios': 11.3.10 '@react-native/assets-registry': 0.72.0 - '@react-native/codegen': 0.72.7(@babel/preset-env@7.24.4) + '@react-native/codegen': 0.72.7(@babel/preset-env@7.23.3) '@react-native/gradle-plugin': 0.72.11 '@react-native/js-polyfills': 0.72.1 '@react-native/normalize-colors': 0.72.0 @@ -24895,9 +25886,10 @@ packages: - encoding - supports-color - utf-8-validate + dev: true - /react-native@0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0): - resolution: {integrity: sha512-iHgDArmF4CrhL0qTj+Rn+CBN5pZWUL9lUGl8ub+V9Hwu/vnzQQh8rTMVSwVd2sV6N76KjpE5a4TfIAHkpIHhKg==} + /react-native@0.73.7(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0): + resolution: {integrity: sha512-LfI/INAC9jTf80bBHJQo0SfTEPQADsU8HoLaW7xQKjYXUX40dhu3AoyNEkMOHY4cpQyjEliQZ4dQpQMy733KRQ==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -24916,7 +25908,7 @@ packages: '@react-native/gradle-plugin': 0.73.4 '@react-native/js-polyfills': 0.73.1 '@react-native/normalize-colors': 0.73.2 - '@react-native/virtualized-lists': 0.73.4(react-native@0.73.5) + '@react-native/virtualized-lists': 0.73.4(react-native@0.73.7) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -24929,8 +25921,8 @@ packages: jest-environment-node: 29.7.0 jsc-android: 250231.0.0 memoize-one: 5.2.1 - metro-runtime: 0.80.8 - metro-source-map: 0.80.8 + metro-runtime: 0.80.6 + metro-source-map: 0.80.6 mkdirp: 0.5.6 nullthrows: 1.1.1 pretty-format: 26.6.2 @@ -24942,7 +25934,7 @@ packages: regenerator-runtime: 0.13.11 scheduler: 0.24.0-canary-efb381bbf-20230505 stacktrace-parser: 0.1.10 - whatwg-fetch: 3.6.20 + whatwg-fetch: 3.6.19 ws: 6.2.2 yargs: 17.7.2 transitivePeerDependencies: @@ -24960,6 +25952,7 @@ packages: /react-refresh@0.4.3: resolution: {integrity: sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==} engines: {node: '>=0.10.0'} + dev: true /react-router-dom@6.20.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==} @@ -25219,6 +26212,13 @@ packages: source-map: 0.6.1 tslib: 2.6.2 + /rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + dependencies: + resolve: 1.22.8 + dev: false + /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -25406,6 +26406,17 @@ packages: engines: {node: '>=0.10.0'} dev: true + /require-in-the-middle@7.3.0: + resolution: {integrity: sha512-nQFEv9gRw6SJAwWD2LrL0NmQvAcO7FBwJbwmr2ttPAacfy0xuiOjE5zt+zM4xDyuyvUaxBi/9gb2SoCyNEVJcw==} + engines: {node: '>=8.6.0'} + dependencies: + debug: 4.3.4(supports-color@5.5.0) + module-details-from-path: 1.0.3 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: false + /require-main-filename@1.0.1: resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} dev: true @@ -25495,6 +26506,14 @@ packages: lowercase-keys: 2.0.0 dev: true + /restore-cursor@2.0.0: + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} + engines: {node: '>=4'} + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.7 + dev: false + /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -25623,29 +26642,29 @@ packages: fsevents: 2.3.3 dev: true - /rollup@4.16.4: - resolution: {integrity: sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==} + /rollup@4.17.1: + resolution: {integrity: sha512-0gG94inrUtg25sB2V/pApwiv1lUb0bQ25FPNuzO89Baa+B+c0ccaaBKM5zkZV/12pUUdH+lWCSm9wmHqyocuVQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.16.4 - '@rollup/rollup-android-arm64': 4.16.4 - '@rollup/rollup-darwin-arm64': 4.16.4 - '@rollup/rollup-darwin-x64': 4.16.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.16.4 - '@rollup/rollup-linux-arm-musleabihf': 4.16.4 - '@rollup/rollup-linux-arm64-gnu': 4.16.4 - '@rollup/rollup-linux-arm64-musl': 4.16.4 - '@rollup/rollup-linux-powerpc64le-gnu': 4.16.4 - '@rollup/rollup-linux-riscv64-gnu': 4.16.4 - '@rollup/rollup-linux-s390x-gnu': 4.16.4 - '@rollup/rollup-linux-x64-gnu': 4.16.4 - '@rollup/rollup-linux-x64-musl': 4.16.4 - '@rollup/rollup-win32-arm64-msvc': 4.16.4 - '@rollup/rollup-win32-ia32-msvc': 4.16.4 - '@rollup/rollup-win32-x64-msvc': 4.16.4 + '@rollup/rollup-android-arm-eabi': 4.17.1 + '@rollup/rollup-android-arm64': 4.17.1 + '@rollup/rollup-darwin-arm64': 4.17.1 + '@rollup/rollup-darwin-x64': 4.17.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.17.1 + '@rollup/rollup-linux-arm-musleabihf': 4.17.1 + '@rollup/rollup-linux-arm64-gnu': 4.17.1 + '@rollup/rollup-linux-arm64-musl': 4.17.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.17.1 + '@rollup/rollup-linux-riscv64-gnu': 4.17.1 + '@rollup/rollup-linux-s390x-gnu': 4.17.1 + '@rollup/rollup-linux-x64-gnu': 4.17.1 + '@rollup/rollup-linux-x64-musl': 4.17.1 + '@rollup/rollup-win32-arm64-msvc': 4.17.1 + '@rollup/rollup-win32-ia32-msvc': 4.17.1 + '@rollup/rollup-win32-x64-msvc': 4.17.1 fsevents: 2.3.3 dev: true @@ -25929,7 +26948,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 - dev: true /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -25940,7 +26958,6 @@ packages: /shebang-regex@1.0.0: resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} engines: {node: '>=0.10.0'} - dev: true /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} @@ -25949,6 +26966,16 @@ packages: /shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + /shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 + dev: false + /shiki@0.14.7: resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} dependencies: @@ -25958,6 +26985,10 @@ packages: vscode-textmate: 8.0.0 dev: true + /shimmer@1.2.1: + resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + dev: false + /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -26000,6 +27031,11 @@ packages: valid-url: 1.0.9 dev: false + /slash@1.0.0: + resolution: {integrity: sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==} + engines: {node: '>=0.10.0'} + dev: false + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -26278,6 +27314,10 @@ packages: tweetnacl: 0.14.5 dev: true + /stack-chain@1.3.7: + resolution: {integrity: sha512-D8cWtWVdIe/jBA7v5p5Hwl5yOSOrmZPWDPe2KxQ5UAGD+nxbxU0lKXA4h85Ta6+qgdKVL3vUxsbIZjc1kBG7ug==} + dev: false + /stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -26568,7 +27608,6 @@ packages: /strip-eof@1.0.0: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} - dev: true /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} @@ -26657,6 +27696,10 @@ packages: react: 18.2.0 dev: false + /styleq@0.1.3: + resolution: {integrity: sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==} + dev: false + /stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} @@ -26805,16 +27848,6 @@ packages: commander: 2.20.3 source-map-support: 0.5.21 - /terser@5.30.4: - resolution: {integrity: sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@jridgewell/source-map': 0.3.6 - acorn: 8.11.3 - commander: 2.20.3 - source-map-support: 0.5.21 - /test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -27223,7 +28256,7 @@ packages: joycon: 3.1.1 postcss-load-config: 4.0.2(ts-node@10.9.2) resolve-from: 5.0.0 - rollup: 4.16.4 + rollup: 4.17.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tree-kill: 1.2.2 @@ -27233,14 +28266,14 @@ packages: - ts-node dev: true - /tsutils@3.21.0(typescript@5.0.4): + /tsutils@3.21.0(typescript@5.4.5): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.0.4 + typescript: 5.4.5 dev: true /tty-browserify@0.0.0: @@ -27535,12 +28568,6 @@ packages: hasBin: true dev: false - /typescript@5.0.4: - resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} - engines: {node: '>=12.20'} - hasBin: true - dev: true - /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} @@ -27561,7 +28588,6 @@ packages: /ua-parser-js@1.0.37: resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==} - dev: true /ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} @@ -27574,6 +28600,7 @@ packages: dependencies: commander: 2.13.0 source-map: 0.6.1 + dev: true /uglify-js@2.8.29: resolution: {integrity: sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==} @@ -27872,6 +28899,14 @@ packages: dev: true optional: true + /username@5.1.0: + resolution: {integrity: sha512-PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg==} + engines: {node: '>=8'} + dependencies: + execa: 1.0.0 + mem: 4.3.0 + dev: false + /utf-8-validate@5.0.10: resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} engines: {node: '>=6.14.2'} @@ -27931,7 +28966,6 @@ packages: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true - dev: true /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} @@ -27969,6 +29003,20 @@ packages: spdx-expression-parse: 3.0.1 dev: true + /valtio@1.10.5(react@18.2.0): + resolution: {integrity: sha512-jTp0k63VXf4r5hPoaC6a6LCG4POkVSh629WLi1+d5PlajLsbynTMd7qAgEiOSPxzoX5iNvbN7iZ/k/g29wrNiQ==} + engines: {node: '>=12.20.0'} + peerDependencies: + react: '>=16.8' + peerDependenciesMeta: + react: + optional: true + dependencies: + proxy-compare: 2.5.1 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + /valtio@1.11.2(@types/react@18.2.38)(react@18.2.0): resolution: {integrity: sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==} engines: {node: '>=12.20.0'} @@ -28373,6 +29421,11 @@ packages: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} dev: true + /webidl-conversions@5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} + engines: {node: '>=8'} + dev: false + /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -28432,14 +29485,20 @@ packages: /whatwg-fetch@3.6.19: resolution: {integrity: sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==} - /whatwg-fetch@3.6.20: - resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} - /whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} dev: true + /whatwg-url-without-unicode@8.0.0-3: + resolution: {integrity: sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==} + engines: {node: '>=10'} + dependencies: + buffer: 5.7.1 + punycode: 2.3.1 + webidl-conversions: 5.0.0 + dev: false + /whatwg-url@11.0.0: resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} engines: {node: '>=12'} @@ -28539,7 +29598,6 @@ packages: hasBin: true dependencies: isexe: 2.0.0 - dev: true /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} @@ -28714,11 +29772,31 @@ packages: bufferutil: 4.0.8 utf-8-validate: 5.0.10 + /xml-formatter@2.6.1: + resolution: {integrity: sha512-dOiGwoqm8y22QdTNI7A+N03tyVfBlQ0/oehAzxIZtwnFAHGeSlrfjF73YQvzSsa/Kt6+YZasKsrdu6OIpuBggw==} + engines: {node: '>= 10'} + dependencies: + xml-parser-xo: 3.2.0 + dev: false + /xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} dev: true + /xml-parser-xo@3.2.0: + resolution: {integrity: sha512-8LRU6cq+d7mVsoDaMhnkkt3CTtAs4153p49fRo+HIB3I1FD1o5CeXRjRH29sQevIfVJIcPjKSsPU/+Ujhq09Rg==} + engines: {node: '>= 10'} + dev: false + + /xml-parser@1.2.1: + resolution: {integrity: sha512-lPUzzmS0zdwcNtyNndCl2IwH172ozkUDqmfmH3FcuDzHVl552Kr6oNfsvteHabqTWhsrMgpijqZ/yT7Wo1/Pzw==} + dependencies: + debug: 2.6.9(supports-color@4.5.0) + transitivePeerDependencies: + - supports-color + dev: false + /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} dev: true @@ -28727,6 +29805,11 @@ packages: resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} engines: {node: '>=0.4.0'} + /xpath@0.0.27: + resolution: {integrity: sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==} + engines: {node: '>=0.6.0'} + dev: false + /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -28763,6 +29846,7 @@ packages: /yaml@2.3.4: resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} + dev: true /yaml@2.4.1: resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} @@ -28783,6 +29867,11 @@ packages: lodash.assign: 4.2.0 dev: true + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: false + /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -28809,6 +29898,19 @@ packages: y18n: 4.0.3 yargs-parser: 18.1.3 + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: false + /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} From 1f34162dc9ba6c91a66bd1306c3676b4425f0117 Mon Sep 17 00:00:00 2001 From: Kris Urbas <605420+krzysu@users.noreply.github.com> Date: Tue, 14 May 2024 13:57:09 +0200 Subject: [PATCH 06/15] fix: refresh profile following after a follow or unfollow (#938) --- .changeset/grumpy-bottles-relate.md | 7 +++++++ packages/react/src/shared.tsx | 7 +++++-- .../adapters/responders/FollowProfileResponder.ts | 13 +++++++++++-- .../adapters/responders/UnfollowProfileResponder.ts | 13 +++++++++++-- 4 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 .changeset/grumpy-bottles-relate.md diff --git a/.changeset/grumpy-bottles-relate.md b/.changeset/grumpy-bottles-relate.md new file mode 100644 index 000000000..aa1ecf062 --- /dev/null +++ b/.changeset/grumpy-bottles-relate.md @@ -0,0 +1,7 @@ +--- +"@lens-protocol/react": patch +"@lens-protocol/react-native": patch +"@lens-protocol/react-web": patch +--- + +**fix:** refresh profile following after a follow or unfollow diff --git a/packages/react/src/shared.tsx b/packages/react/src/shared.tsx index 796fb749f..26c41f61b 100644 --- a/packages/react/src/shared.tsx +++ b/packages/react/src/shared.tsx @@ -115,11 +115,14 @@ export function createSharedDependencies(userConfig: BaseConfig): SharedDependen [TransactionKind.CREATE_POST]: new RefreshCurrentProfileResponder(profileCacheManager), [TransactionKind.CREATE_PROFILE]: new CreateProfileResponder(apolloClient), [TransactionKind.CREATE_QUOTE]: new RefreshCurrentProfileResponder(profileCacheManager), - [TransactionKind.FOLLOW_PROFILE]: new FollowProfileResponder(profileCacheManager), + [TransactionKind.FOLLOW_PROFILE]: new FollowProfileResponder(apolloClient, profileCacheManager), [TransactionKind.LINK_HANDLE]: new LinkHandleResponder(apolloClient, profileCacheManager), [TransactionKind.MIRROR_PUBLICATION]: new RefreshCurrentProfileResponder(profileCacheManager), [TransactionKind.UNBLOCK_PROFILE]: new UnblockProfilesResponder(profileCacheManager), - [TransactionKind.UNFOLLOW_PROFILE]: new UnfollowProfileResponder(profileCacheManager), + [TransactionKind.UNFOLLOW_PROFILE]: new UnfollowProfileResponder( + apolloClient, + profileCacheManager, + ), [TransactionKind.UNLINK_HANDLE]: new LinkHandleResponder(apolloClient, profileCacheManager), [TransactionKind.UPDATE_FOLLOW_POLICY]: new RefreshCurrentProfileResponder(profileCacheManager), [TransactionKind.UPDATE_PROFILE_DETAILS]: new RefreshCurrentProfileResponder( diff --git a/packages/react/src/transactions/adapters/responders/FollowProfileResponder.ts b/packages/react/src/transactions/adapters/responders/FollowProfileResponder.ts index 9e6d5174e..d2e3e022e 100644 --- a/packages/react/src/transactions/adapters/responders/FollowProfileResponder.ts +++ b/packages/react/src/transactions/adapters/responders/FollowProfileResponder.ts @@ -1,3 +1,4 @@ +import { FollowingDocument, SafeApolloClient } from '@lens-protocol/api-bindings'; import { FollowRequest } from '@lens-protocol/domain/use-cases/profile'; import { ITransactionResponder, @@ -7,9 +8,17 @@ import { import { IProfileCacheManager } from '../../../profile/adapters/IProfileCacheManager'; export class FollowProfileResponder implements ITransactionResponder { - constructor(private readonly profileCacheManager: IProfileCacheManager) {} + constructor( + private readonly apolloClient: SafeApolloClient, + private readonly profileCacheManager: IProfileCacheManager, + ) {} async commit({ request }: TransactionData) { - await this.profileCacheManager.fetchProfileById(request.profileId); + await Promise.all([ + this.profileCacheManager.fetchProfileById(request.profileId), + this.apolloClient.refetchQueries({ + include: [FollowingDocument], + }), + ]); } } diff --git a/packages/react/src/transactions/adapters/responders/UnfollowProfileResponder.ts b/packages/react/src/transactions/adapters/responders/UnfollowProfileResponder.ts index 88e248aca..f703a412f 100644 --- a/packages/react/src/transactions/adapters/responders/UnfollowProfileResponder.ts +++ b/packages/react/src/transactions/adapters/responders/UnfollowProfileResponder.ts @@ -1,3 +1,4 @@ +import { FollowingDocument, SafeApolloClient } from '@lens-protocol/api-bindings'; import { UnfollowRequest } from '@lens-protocol/domain/use-cases/profile'; import { TransactionData, @@ -7,9 +8,17 @@ import { import { IProfileCacheManager } from '../../../profile/adapters/IProfileCacheManager'; export class UnfollowProfileResponder implements ITransactionResponder { - constructor(private readonly profileCacheManager: IProfileCacheManager) {} + constructor( + private readonly apolloClient: SafeApolloClient, + private readonly profileCacheManager: IProfileCacheManager, + ) {} async commit({ request }: TransactionData) { - await this.profileCacheManager.fetchProfileById(request.profileId); + await Promise.all([ + this.profileCacheManager.fetchProfileById(request.profileId), + this.apolloClient.refetchQueries({ + include: [FollowingDocument], + }), + ]); } } From 46a648de26c062ccd3b7bc5561e897900ce9df48 Mon Sep 17 00:00:00 2001 From: Cesare Naldi Date: Tue, 14 May 2024 18:15:30 +0200 Subject: [PATCH 07/15] feat: React Suspense support for useFeed --- .changeset/soft-yaks-shop.md | 7 + .../web/src/components/auth/WhenLoggedIn.tsx | 13 +- examples/web/src/discovery/UseFeed.tsx | 36 ++--- .../react/src/authentication/useSession.ts | 12 +- packages/react/src/discovery/useFeed.ts | 131 ++++++++++++------ packages/react/src/helpers/reads.ts | 16 +-- packages/react/src/helpers/suspense.ts | 5 +- .../react/src/misc/useLatestPaidActions.ts | 2 - packages/react/src/profile/useProfile.ts | 20 ++- .../react/src/publication/usePublication.ts | 58 ++++---- .../react/src/publication/usePublications.ts | 23 +-- 11 files changed, 173 insertions(+), 150 deletions(-) create mode 100644 .changeset/soft-yaks-shop.md diff --git a/.changeset/soft-yaks-shop.md b/.changeset/soft-yaks-shop.md new file mode 100644 index 000000000..d249abf2c --- /dev/null +++ b/.changeset/soft-yaks-shop.md @@ -0,0 +1,7 @@ +--- +"@lens-protocol/react": patch +"@lens-protocol/react-native": patch +"@lens-protocol/react-web": patch +--- + +**feat:** add React Suspense support to `useFeed` hook diff --git a/examples/web/src/components/auth/WhenLoggedIn.tsx b/examples/web/src/components/auth/WhenLoggedIn.tsx index 584d60c19..2bd4897f5 100644 --- a/examples/web/src/components/auth/WhenLoggedIn.tsx +++ b/examples/web/src/components/auth/WhenLoggedIn.tsx @@ -7,9 +7,6 @@ import { } from '@lens-protocol/react-web'; import { ReactNode } from 'react'; -import { ErrorMessage } from '../error/ErrorMessage'; -import { Loading } from '../loading/Loading'; - export type RenderFunction = (session: T) => ReactNode; export type LoggedInChildren = ReactNode | RenderFunction; @@ -30,15 +27,7 @@ export function WhenLoggedIn< T extends SessionType.JustWallet | SessionType.WithProfile, S extends WalletOnlySession | ProfileSession, >(props: WhenLoggedInProps) { - const { data: session, loading, error } = useSession(); - - if (loading) { - return ; - } - - if (error) { - return ; - } + const { data: session } = useSession({ suspense: true }); if (session.type !== props.with) { return props.fallback ?? null; diff --git a/examples/web/src/discovery/UseFeed.tsx b/examples/web/src/discovery/UseFeed.tsx index 8157c10b3..ed1c6cf6c 100644 --- a/examples/web/src/discovery/UseFeed.tsx +++ b/examples/web/src/discovery/UseFeed.tsx @@ -1,31 +1,23 @@ -import { ProfileId, useFeed } from '@lens-protocol/react-web'; +import { useFeed } from '@lens-protocol/react-web'; import { RequireProfileSession } from '../components/auth'; import { PublicationCard } from '../components/cards'; -import { ErrorMessage } from '../components/error/ErrorMessage'; -import { Loading } from '../components/loading/Loading'; import { useInfiniteScroll } from '../hooks/useInfiniteScroll'; -function UseFeedInner({ profileId }: { profileId: ProfileId }) { - const { data, error, loading, hasMore, beforeCount, observeRef, prev } = useInfiniteScroll( +function Feed() { + const { data, hasMore, observeRef } = useInfiniteScroll( useFeed({ - where: { - for: profileId, - }, + suspense: true, }), ); return (
- {data?.length === 0 &&

No items

} - - {loading && } - - {error && } +

+ useFeed +

- + {data?.length === 0 &&

No items

} {data?.map((item, i) => ( @@ -38,14 +30,8 @@ function UseFeedInner({ profileId }: { profileId: ProfileId }) { export function UseFeed() { return ( -
-

- useFeed -

- - - {({ profile }) => } - -
+ + {() => } + ); } diff --git a/packages/react/src/authentication/useSession.ts b/packages/react/src/authentication/useSession.ts index 92a68a715..976e8dc99 100644 --- a/packages/react/src/authentication/useSession.ts +++ b/packages/react/src/authentication/useSession.ts @@ -89,7 +89,7 @@ export type Session = AnonymousSession | ProfileSession | WalletOnlySession; /** * {@link useSession} hook arguments */ -export type UseSessionArgs = SuspenseEnabled; +export type UseSessionArgs = SuspenseEnabled; /** * Returns current {@link Session} data. @@ -125,7 +125,7 @@ export type UseSessionArgs = SuspenseEnabled): SuspenseResult; +export function useSession(args: UseSessionArgs): SuspenseResult; /** * Returns current {@link Session} data. @@ -160,11 +160,11 @@ export function useSession(args: UseSessionArgs): SuspenseResult; * @category Authentication * @group Hooks */ -export function useSession(args?: UseSessionArgs): ReadResult; +export function useSession(): ReadResult; -export function useSession( - args?: UseSessionArgs, -): ReadResult | SuspenseResult { +export function useSession(args?: { + suspense: boolean; +}): ReadResult | SuspenseResult { const sessionData = useSessionDataVar(); const [primeCacheWithProfile, data] = useProfileFromCache(sessionData); diff --git a/packages/react/src/discovery/useFeed.ts b/packages/react/src/discovery/useFeed.ts index 024283346..a658e075e 100644 --- a/packages/react/src/discovery/useFeed.ts +++ b/packages/react/src/discovery/useFeed.ts @@ -1,60 +1,113 @@ -import { FeedItem, FeedRequest, useFeed as useBaseFeedQuery } from '@lens-protocol/api-bindings'; +import { FeedDocument, FeedItem, FeedRequest, FeedWhere } from '@lens-protocol/api-bindings'; -import { SessionType, useSession } from '../authentication'; +import { SessionType, UseSessionArgs, useSession } from '../authentication'; import { useLensApolloClient } from '../helpers/arguments'; -import { PaginatedArgs, PaginatedReadResult, usePaginatedReadResult } from '../helpers/reads'; +import { PaginatedArgs, PaginatedReadResult } from '../helpers/reads'; +import { + SuspendablePaginatedResult, + SuspenseEnabled, + SuspensePaginatedResult, + useSuspendablePaginatedQuery, +} from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; +/** + * {@link useFeed} hook arguments + */ export type UseFeedArgs = PaginatedArgs; +export type { FeedRequest, FeedWhere }; + +/** + * {@link useFeed} hook arguments with Suspense support + * + * @experimental This API can change without notice + */ +export type UseSuspenseFeedArgs = SuspenseEnabled; + /** * Fetch a the feed of a given profile and filters. * * You MUST be authenticated via {@link useLogin} to use this hook. * + * @example + * ```tsx + * const { data, loading, error } = useFeed({ + * where: { + * for: '0x01`, // profileId + * }, + * }); + * + * if (loading) return
Loading...
; + * + * if (error) return
Error: {error.message}
; + * + * return ( + *
    + * {data.map((item, idx) => ( + *
  • + * // render item details + *
  • + * ))} + *
+ * ); + * ``` + * * @category Discovery * @group Hooks * @param args - {@link UseFeedArgs} + */ +export function useFeed({ where }: UseFeedArgs): PaginatedReadResult; + +/** + * Fetch a the feed of a given profile and filters. + * + * You MUST be authenticated via {@link useLogin} to use this hook. + * + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). * * @example * ```tsx - * import { useFeed, ProfileId } from '@lens-protocol/react'; - * - * function Feed({ profileId }: { profileId: ProfileId }) { - * const { data, loading, error } = useFeed({ - * where: { - * for: profileId, - * }, - * }); - * - * if (loading) return
Loading...
; - * - * if (error) return
Error: {error.message}
; - * - * return ( - *
    - * {data.map((item, idx) => ( - *
  • - * // render item details - *
  • - * ))} - *
- * ); - * } + * const { data, loading, error } = useFeed({ + * where: { + * for: '0x01`, // profileId + * }, + * suspense: true, + * }); + * + * return ( + *
    + * {data.map((item, idx) => ( + *
  • + * // render item details + *
  • + * ))} + *
+ * ); * ``` + * + * @experimental This API can change without notice + * @category Discovery + * @group Hooks + * @param args - {@link UseSuspenseFeedArgs} */ -export function useFeed({ where }: UseFeedArgs): PaginatedReadResult { - const { data: session } = useSession(); - - return usePaginatedReadResult( - useBaseFeedQuery( - useLensApolloClient({ - variables: useFragmentVariables({ - where, - statsFor: where?.metadata?.publishedOn, - }), - skip: session?.type !== SessionType.WithProfile, +export function useFeed({ where }: UseSuspenseFeedArgs): SuspensePaginatedResult; + +export function useFeed({ + suspense = false, + where, +}: UseFeedArgs & { suspense?: boolean }): SuspendablePaginatedResult { + const { data: session } = useSession({ suspense } as UseSessionArgs); + + return useSuspendablePaginatedQuery({ + suspense, + query: FeedDocument, + options: useLensApolloClient({ + variables: useFragmentVariables({ + where, + statsFor: where?.metadata?.publishedOn, }), - ), - ); + skip: session.type !== SessionType.WithProfile, + }), + }); } diff --git a/packages/react/src/helpers/reads.ts b/packages/react/src/helpers/reads.ts index 8a8a7b6bb..a9ef4b1cd 100644 --- a/packages/react/src/helpers/reads.ts +++ b/packages/react/src/helpers/reads.ts @@ -12,7 +12,6 @@ import { InputMaybe, Cursor, PaginatedResultInfo, - LimitType, } from '@lens-protocol/api-bindings'; import { Prettify } from '@lens-protocol/shared-kernel'; import { useCallback, useEffect, useRef, useState } from 'react'; @@ -111,20 +110,7 @@ export function useReadResult< return buildReadResult(data?.result, error); } -export type OmitCursor = Omit; - -export type PaginatedArgs = Prettify< - OmitCursor< - T & { - /** - * The number of items to return. - * - * @defaultValue Default value is set by the API and it might differ between queries. - */ - limit?: LimitType; - } - > ->; +export type PaginatedArgs = Prettify>; /** * A paginated read result. diff --git a/packages/react/src/helpers/suspense.ts b/packages/react/src/helpers/suspense.ts index 5d702fb3a..bbd5712aa 100644 --- a/packages/react/src/helpers/suspense.ts +++ b/packages/react/src/helpers/suspense.ts @@ -51,9 +51,8 @@ export type SuspenseReadResult = SuspenseResultWithError; * * @experimental This is an experimental type that can change at any time. */ -export type SuspenseEnabled = { - suspense?: TSuspense; -}; +// eslint-disable-next-line @typescript-eslint/ban-types +export type SuspenseEnabled = T & { suspense: true }; /** * @internal diff --git a/packages/react/src/misc/useLatestPaidActions.ts b/packages/react/src/misc/useLatestPaidActions.ts index 75671f9d3..462864eee 100644 --- a/packages/react/src/misc/useLatestPaidActions.ts +++ b/packages/react/src/misc/useLatestPaidActions.ts @@ -43,7 +43,6 @@ export type UseLatestPaidActionsArgs = PaginatedArgs; export function useLatestPaidActions({ filter, where, - limit, }: UseLatestPaidActionsArgs = {}): PaginatedReadResult { return usePaginatedReadResult( useLatestPaidActionsBase( @@ -51,7 +50,6 @@ export function useLatestPaidActions({ variables: useFragmentVariables({ filter, where, - limit, }), }), ), diff --git a/packages/react/src/profile/useProfile.ts b/packages/react/src/profile/useProfile.ts index 923c2e409..41c412902 100644 --- a/packages/react/src/profile/useProfile.ts +++ b/packages/react/src/profile/useProfile.ts @@ -13,7 +13,7 @@ import { ReadResult } from '../helpers/reads'; import { SuspenseEnabled, SuspenseResultWithError, useSuspendableQuery } from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; -function profileNotFound({ forProfileId, forHandle }: UseProfileArgs) { +function profileNotFound({ forProfileId, forHandle }: UseProfileArgs) { return new NotFoundError( forProfileId ? `Profile with id: ${forProfileId}` @@ -26,8 +26,14 @@ export type { ProfileRequest }; /** * {@link useProfile} hook arguments */ -export type UseProfileArgs = OneOf & - SuspenseEnabled; +export type UseProfileArgs = OneOf; + +/** + * {@link useProfile} hook arguments with Suspense support + * + * @experimental This API can change without notice + */ +export type UseSuspenseProfileArgs = SuspenseEnabled; export type UseProfileResult = | ReadResult @@ -61,7 +67,7 @@ export type UseProfileResult = export function useProfile({ forHandle, forProfileId, -}: UseProfileArgs): ReadResult; +}: UseProfileArgs): ReadResult; /** * Fetches a Profile by either its full handle or id. @@ -77,18 +83,18 @@ export function useProfile({ * console.log(data.id); * ``` * + * @experimental This API can change without notice * @category Profiles * @group Hooks - * @param args - {@link UseProfileArgs} */ export function useProfile( - args: UseProfileArgs, + args: UseSuspenseProfileArgs, ): SuspenseResultWithError; export function useProfile({ suspense = false, ...request -}: UseProfileArgs): UseProfileResult { +}: UseProfileArgs & { suspense?: boolean }): UseProfileResult { invariant( request.forProfileId === undefined || request.forHandle === undefined, "Only one of 'forProfileId' or 'forHandle' should be provided to 'useProfile' hook", diff --git a/packages/react/src/publication/usePublication.ts b/packages/react/src/publication/usePublication.ts index 0c361b60c..8db21f7cb 100644 --- a/packages/react/src/publication/usePublication.ts +++ b/packages/react/src/publication/usePublication.ts @@ -13,7 +13,7 @@ import { ReadResult } from '../helpers/reads'; import { SuspenseEnabled, SuspenseResultWithError, useSuspendableQuery } from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; -function publicationNotFound({ forId, forTxHash }: UsePublicationArgs) { +function publicationNotFound({ forId, forTxHash }: UsePublicationArgs) { return new NotFoundError( forId ? `Publication with id ${forId} was not found` @@ -26,8 +26,14 @@ export type { PublicationRequest }; /** * {@link usePublication} hook arguments */ -export type UsePublicationArgs = OneOf & - SuspenseEnabled; +export type UsePublicationArgs = OneOf; + +/** + * {@link usePublication} hook arguments with Suspense support + * + * @experimental This API can change without notice + */ +export type UseSuspensePublicationArgs = SuspenseEnabled; export type UsePublicationResult = | ReadResult @@ -36,34 +42,28 @@ export type UsePublicationResult = /** * Fetch a publication by either its publication id or transaction hash. * - * @example - * ```tsx - * const { data, error, loading } = usePublication({ - * forId: '0x04-0x0b', - * }); - * ``` - * - * ## Basic Usage - * - * Get Publication by Id: - * * ```ts * const { data, error, loading } = usePublication({ * forId: '0x04-0x0b', - * }); - * ``` - * - * Get Publication by Transaction Hash: - * - * ```ts - * const { data, error, loading } = usePublication({ + * // OR * forTxHash: '0xcd0655e8d1d131ebfc72fa5ebff6ed0430e6e39e729af1a81da3b6f33822a6ff', * }); * ``` * - * ## Suspense Enabled + * @category Publications + * @group Hooks * - * You can enable suspense mode to suspend the component until the session data is available. + * @param args - {@link UsePublicationArgs} + */ +export function usePublication({ + forId, + forTxHash, +}: UsePublicationArgs): ReadResult; + +/** + * Fetch a publication by either its publication id or transaction hash. + * + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). * * ```ts * const { data } = usePublication({ @@ -74,22 +74,18 @@ export type UsePublicationResult = * console.log(data.id); * ``` * + * @experimental This API can change without notice * @category Publications * @group Hooks - * - * @param args - {@link UsePublicationArgs} */ -export function usePublication({ - forId, - forTxHash, -}: UsePublicationArgs): ReadResult; export function usePublication( - args: UsePublicationArgs, + args: UseSuspensePublicationArgs, ): SuspenseResultWithError; + export function usePublication({ suspense = false, ...request -}: UsePublicationArgs): UsePublicationResult { +}: UsePublicationArgs & { suspense?: boolean }): UsePublicationResult { invariant( request.forId === undefined || request.forTxHash === undefined, "Only one of 'forId' or 'forTxHash' should be provided to 'usePublication' hook", diff --git a/packages/react/src/publication/usePublications.ts b/packages/react/src/publication/usePublications.ts index f50d84e37..d28518639 100644 --- a/packages/react/src/publication/usePublications.ts +++ b/packages/react/src/publication/usePublications.ts @@ -17,11 +17,17 @@ import { useFragmentVariables } from '../helpers/variables'; /** * {@link usePublications} hook arguments */ -export type UsePublicationsArgs = - PaginatedArgs & SuspenseEnabled; +export type UsePublicationsArgs = PaginatedArgs; export type { PublicationsRequest }; +/** + * {@link usePublications} hook arguments with Suspense support + * + * @experimental This API can change without notice + */ +export type UseSuspensePublicationsArgs = SuspenseEnabled; + /** * Retrieves a paginated list of publications, filtered according to specified criteria. * @@ -68,11 +74,8 @@ export type { PublicationsRequest }; * * @category Publications * @group Hooks - * @param args - {@link UsePublicationsArgs} */ -export function usePublications( - args: UsePublicationsArgs, -): PaginatedReadResult; +export function usePublications(args: UsePublicationsArgs): PaginatedReadResult; /** * Retrieves a paginated list of publications, filtered according to specified criteria. * @@ -85,19 +88,19 @@ export function usePublications( * }); * ``` * + * @experimental This API can change without notice * @category Publications * @group Hooks - * @param args - {@link UsePublicationsArgs} */ export function usePublications( - args: UsePublicationsArgs, + args: UseSuspensePublicationsArgs, ): SuspensePaginatedResult; export function usePublications({ + limit, suspense = false, where, - limit, -}: UsePublicationsArgs): SuspendablePaginatedResult { +}: UsePublicationsArgs & { suspense?: boolean }): SuspendablePaginatedResult { return useSuspendablePaginatedQuery({ suspense, query: PublicationsDocument, From 047eaa0b0e648952b0251f79a982ecf9b585f9f8 Mon Sep 17 00:00:00 2001 From: Kris Urbas <605420+krzysu@users.noreply.github.com> Date: Wed, 15 May 2024 09:47:54 +0200 Subject: [PATCH 08/15] fix: lens-next-app - improve readme with getting started steps (#939) --- examples/lens-next-app/README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/examples/lens-next-app/README.md b/examples/lens-next-app/README.md index 4dc5f5872..53377fe36 100644 --- a/examples/lens-next-app/README.md +++ b/examples/lens-next-app/README.md @@ -2,7 +2,11 @@ This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next ## Getting Started -First, run the development server: +Start by renaming the `.env.example` file to `.env` and then populate it with the necessary values: + +- `NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID` - This is the Project ID for WalletConnect. You can create a free Project ID at [WalletConnect Cloud](https://cloud.walletconnect.com/sign-in). + +After setting up the environment variables, launch the development server: ```bash npm run dev @@ -14,6 +18,8 @@ pnpm dev bun dev ``` -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. +Once the server is running, open http://localhost:3000 in your browser to view the result. + +You can begin editing the page by modifying `app/page.tsx`. The page will automatically update as you make changes to the file. -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. +Happy coding! From 3ffa198563e8502184ad869736a3d54a84d8745f Mon Sep 17 00:00:00 2001 From: Cesare Naldi Date: Wed, 15 May 2024 20:56:33 +0200 Subject: [PATCH 09/15] feat: add React Suspense support to useProfiles hook --- .changeset/giant-mirrors-count.md | 7 +++ examples/web/src/profiles/UseProfiles.tsx | 9 +-- packages/react/src/profile/useProfiles.ts | 76 ++++++++++++++++------- 3 files changed, 60 insertions(+), 32 deletions(-) create mode 100644 .changeset/giant-mirrors-count.md diff --git a/.changeset/giant-mirrors-count.md b/.changeset/giant-mirrors-count.md new file mode 100644 index 000000000..f5c56659f --- /dev/null +++ b/.changeset/giant-mirrors-count.md @@ -0,0 +1,7 @@ +--- +"@lens-protocol/react": minor +"@lens-protocol/react-native": minor +"@lens-protocol/react-web": minor +--- + +**feat:** add React Suspense support to `useProfiles` hook diff --git a/examples/web/src/profiles/UseProfiles.tsx b/examples/web/src/profiles/UseProfiles.tsx index 96e08c440..aba8bb924 100644 --- a/examples/web/src/profiles/UseProfiles.tsx +++ b/examples/web/src/profiles/UseProfiles.tsx @@ -1,15 +1,11 @@ import { profileId, useProfiles } from '@lens-protocol/react-web'; -import { ErrorMessage } from '../components/error/ErrorMessage'; -import { Loading } from '../components/loading/Loading'; import { useInfiniteScroll } from '../hooks/useInfiniteScroll'; import { ProfileCard } from './components/ProfileCard'; export function UseProfiles() { const { data: profiles, - error, - loading, hasMore, observeRef, } = useInfiniteScroll( @@ -17,13 +13,10 @@ export function UseProfiles() { where: { profileIds: [profileId('0x01'), profileId('0x02'), profileId('0x03'), profileId('0x04')], }, + suspense: true, }), ); - if (loading) return ; - - if (error) return ; - return (

diff --git a/packages/react/src/profile/useProfiles.ts b/packages/react/src/profile/useProfiles.ts index d243bafe3..6b3e5dd44 100644 --- a/packages/react/src/profile/useProfiles.ts +++ b/packages/react/src/profile/useProfiles.ts @@ -1,11 +1,18 @@ import { Profile, + ProfilesDocument, ProfilesRequest, - useProfiles as useProfilesHook, + ProfilesRequestWhere, } from '@lens-protocol/api-bindings'; import { useLensApolloClient } from '../helpers/arguments'; -import { PaginatedArgs, PaginatedReadResult, usePaginatedReadResult } from '../helpers/reads'; +import { PaginatedArgs, PaginatedReadResult } from '../helpers/reads'; +import { + SuspendablePaginatedResult, + SuspenseEnabled, + SuspensePaginatedResult, + useSuspendablePaginatedQuery, +} from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; /** @@ -13,18 +20,18 @@ import { useFragmentVariables } from '../helpers/variables'; */ export type UseProfilesArgs = PaginatedArgs; +export type { ProfilesRequest, ProfilesRequestWhere }; + /** - * `useProfiles` is a paginated hook that lets you fetch profiles based on a set of filters. + * {@link useProfiles} hook arguments with Suspense support * - * @example - * ```ts - * const { data, loading, error } = useProfiles({ - * ``` - * - * @category Profiles - * @group Hooks + * @experimental This API can change without notice + */ +export type UseSuspenseProfilesArgs = SuspenseEnabled; + +/** + * Retrieves a paginated list of profiles, filtered according to specified criteria. * - * @example * Fetch profiles by handles * ```tsx * const { data, loading, error } = useProfiles({ @@ -34,7 +41,6 @@ export type UseProfilesArgs = PaginatedArgs; * }); * ``` * - * @example * Fetch profiles by ids * ```tsx * const { data, loading, error } = useProfiles({ @@ -44,7 +50,6 @@ export type UseProfilesArgs = PaginatedArgs; * }); * ``` * - * @example * Fetch profiles by owner addresses * ```tsx * const { data, loading, error } = useProfiles({ @@ -54,7 +59,6 @@ export type UseProfilesArgs = PaginatedArgs; * }); * ``` * - * @example * Fetch profiles who commented on a publication * ```tsx * const { data, loading, error } = useProfiles({ @@ -64,7 +68,6 @@ export type UseProfilesArgs = PaginatedArgs; * }); * ``` * - * @example * Fetch profiles who mirrored a publication * ```tsx * const { data, loading, error } = useProfiles({ @@ -74,7 +77,6 @@ export type UseProfilesArgs = PaginatedArgs; * }); * ``` * - * @example * Fetch profiles who quoted a publication * ```tsx * const { data, loading, error } = useProfiles({ @@ -83,13 +85,39 @@ export type UseProfilesArgs = PaginatedArgs; * }, * }); * ``` + * + * @category Profiles + * @group Hooks */ -export function useProfiles(args: UseProfilesArgs): PaginatedReadResult { - return usePaginatedReadResult( - useProfilesHook( - useLensApolloClient({ - variables: useFragmentVariables(args), - }), - ), - ); +export function useProfiles(args: UseProfilesArgs): PaginatedReadResult; + +/** + * Retrieves a paginated list of profiles, filtered according to specified criteria. + * + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). + * + * ```tsx + * const { data } = useProfiles({ + * where: { ... }, + * suspense: true, + * }); + * ``` + * + * @experimental This API can change without notice + * @category Profiles + * @group Hooks + */ +export function useProfiles(args: UseSuspenseProfilesArgs): SuspensePaginatedResult; + +export function useProfiles({ + suspense = false, + ...args +}: UseProfilesArgs & { suspense?: boolean }): SuspendablePaginatedResult { + return useSuspendablePaginatedQuery({ + suspense, + query: ProfilesDocument, + options: useLensApolloClient({ + variables: useFragmentVariables(args), + }), + }); } From 53071caf2e9757a6beb784e8e1c9f0a1cfeecaa8 Mon Sep 17 00:00:00 2001 From: Cesare Naldi Date: Thu, 16 May 2024 15:53:46 +0200 Subject: [PATCH 10/15] feat: adds React Suspense support to useSearchProfiles hook --- .changeset/dull-walls-smoke.md | 7 ++ .../web/src/discovery/UseSearchProfiles.tsx | 21 ++--- .../react/src/discovery/useSearchProfiles.ts | 88 ++++++++++++++++--- 3 files changed, 92 insertions(+), 24 deletions(-) create mode 100644 .changeset/dull-walls-smoke.md diff --git a/.changeset/dull-walls-smoke.md b/.changeset/dull-walls-smoke.md new file mode 100644 index 000000000..06f2a8d08 --- /dev/null +++ b/.changeset/dull-walls-smoke.md @@ -0,0 +1,7 @@ +--- +"@lens-protocol/react": minor +"@lens-protocol/react-native": minor +"@lens-protocol/react-web": minor +--- + +**feat:** adds React Suspense support to `useSearchProfiles` hook diff --git a/examples/web/src/discovery/UseSearchProfiles.tsx b/examples/web/src/discovery/UseSearchProfiles.tsx index 758d8bdfc..3f1fc38d3 100644 --- a/examples/web/src/discovery/UseSearchProfiles.tsx +++ b/examples/web/src/discovery/UseSearchProfiles.tsx @@ -1,7 +1,6 @@ import { useSearchProfiles } from '@lens-protocol/react-web'; -import { ChangeEvent, useState } from 'react'; +import { ChangeEvent, Suspense, startTransition, useState } from 'react'; -import { ErrorMessage } from '../components/error/ErrorMessage'; import { Loading } from '../components/loading/Loading'; import { useInfiniteScroll } from '../hooks/useInfiniteScroll'; import { ProfileCard } from '../profiles/components/ProfileCard'; @@ -11,17 +10,14 @@ type SearchResultsProps = { }; function SearchResults({ query }: SearchResultsProps) { - const { data, error, loading, hasMore, observeRef } = useInfiniteScroll( - useSearchProfiles({ query }), + const { data, hasMore, observeRef } = useInfiniteScroll( + useSearchProfiles({ query, suspense: true }), ); - if (loading) return ; - - if (error) return ; - if (data.length === 0) { return

No profiles found

; } + return (
{data.map((profile) => ( @@ -37,7 +33,9 @@ export function UseSearchProfiles() { const [selectedQuery, setSelectedQuery] = useState(); const handleSubmit = () => { - setSelectedQuery(inputValue); + startTransition(() => { + setSelectedQuery(inputValue); + }); }; const handleChange = (e: ChangeEvent) => { @@ -53,7 +51,10 @@ export function UseSearchProfiles() {
- {selectedQuery && } + + }> + {selectedQuery && } +

); } diff --git a/packages/react/src/discovery/useSearchProfiles.ts b/packages/react/src/discovery/useSearchProfiles.ts index ed720bd66..580c648d4 100644 --- a/packages/react/src/discovery/useSearchProfiles.ts +++ b/packages/react/src/discovery/useSearchProfiles.ts @@ -1,22 +1,37 @@ import { Profile, ProfileSearchRequest, - useSearchProfiles as useBaseSearchProfiles, + ProfileSearchWhere, + SearchProfilesDocument, } from '@lens-protocol/api-bindings'; import { useLensApolloClient } from '../helpers/arguments'; -import { PaginatedArgs, PaginatedReadResult, usePaginatedReadResult } from '../helpers/reads'; +import { PaginatedArgs, PaginatedReadResult } from '../helpers/reads'; +import { + SuspendablePaginatedResult, + SuspenseEnabled, + SuspensePaginatedResult, + useSuspendablePaginatedQuery, +} from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; +/** + * {@link useSearchProfiles} hook arguments + */ export type UseSearchProfilesArgs = PaginatedArgs; +export type { ProfileSearchRequest, ProfileSearchWhere }; + /** - * `useSearchProfiles` is a paginated hook that lets you search for profiles based on a defined criteria + * {@link useSearchProfiles} hook arguments with Suspense support * - * @category Discovery - * @group Hooks + * @experimental This API can change without notice + */ +export type UseSuspenseSearchProfilesArgs = SuspenseEnabled; + +/** + * `useSearchProfiles` is a paginated hook that lets you search for profiles based on a defined criteria * - * @example * ```tsx * function SearchProfiles() { * const { data, error, loading } = useSearchProfiles({ query: 'foo' }); @@ -34,13 +49,58 @@ export type UseSearchProfilesArgs = PaginatedArgs; * ); * } * ``` + * + * @category Discovery + * @group Hooks */ -export function useSearchProfiles(args: UseSearchProfilesArgs): PaginatedReadResult { - return usePaginatedReadResult( - useBaseSearchProfiles( - useLensApolloClient({ - variables: useFragmentVariables(args), - }), - ), - ); +export function useSearchProfiles(args: UseSearchProfilesArgs): PaginatedReadResult; + +/** + * `useSearchProfiles` is a paginated hook that lets you search for profiles based on a defined criteria + * + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). + * + * ```tsx + * const { data } = useSearchProfiles({ + * query: 'foo', + * suspense: true, + * }); + * + * console.log(data); + * ``` + * + * Use [startTransition](https://react.dev/reference/react/startTransition) to avoid to re-suspend the component. + * + * ```tsx + * const [query, setQuery] = useState('bob'); + * + * const { data } = useSearchProfiles({ + * query, + * suspense: true, + * }); + * + * const search = startTransition(() => { + * setQuery('foo'); + * }); + * ``` + * + * @experimental This API can change without notice + * @category Discovery + * @group Hooks + */ +export function useSearchProfiles( + args: UseSuspenseSearchProfilesArgs, +): SuspensePaginatedResult; + +export function useSearchProfiles({ + suspense = false, + ...args +}: UseSearchProfilesArgs & { suspense?: boolean }): SuspendablePaginatedResult { + return useSuspendablePaginatedQuery({ + suspense, + query: SearchProfilesDocument, + options: useLensApolloClient({ + variables: useFragmentVariables(args), + }), + }); } From 032c71c3d0cd32b18e2d7e61b07c2bb348feb3c6 Mon Sep 17 00:00:00 2001 From: Kris Urbas <605420+krzysu@users.noreply.github.com> Date: Fri, 17 May 2024 10:55:36 +0200 Subject: [PATCH 11/15] feat: add suspense to useProfileFollowers and useProfileFollowing hooks --- .changeset/giant-crabs-invent.md | 7 ++ .../web/src/profiles/UseProfileFollowers.tsx | 11 +-- .../web/src/profiles/UseProfileFollowing.tsx | 11 +-- .../react/src/profile/useProfileFollowers.ts | 72 ++++++++++++++----- .../react/src/profile/useProfileFollowing.ts | 72 ++++++++++++++----- 5 files changed, 121 insertions(+), 52 deletions(-) create mode 100644 .changeset/giant-crabs-invent.md diff --git a/.changeset/giant-crabs-invent.md b/.changeset/giant-crabs-invent.md new file mode 100644 index 000000000..e98f23b52 --- /dev/null +++ b/.changeset/giant-crabs-invent.md @@ -0,0 +1,7 @@ +--- +"@lens-protocol/react": minor +"@lens-protocol/react-native": minor +"@lens-protocol/react-web": minor +--- + +**feat:** add React Suspense support to `useProfileFollowers` and `useProfileFollowing` hooks diff --git a/examples/web/src/profiles/UseProfileFollowers.tsx b/examples/web/src/profiles/UseProfileFollowers.tsx index 14149e624..aa8ba5ea2 100644 --- a/examples/web/src/profiles/UseProfileFollowers.tsx +++ b/examples/web/src/profiles/UseProfileFollowers.tsx @@ -1,27 +1,20 @@ import { profileId, useProfileFollowers } from '@lens-protocol/react-web'; -import { ErrorMessage } from '../components/error/ErrorMessage'; -import { Loading } from '../components/loading/Loading'; import { useInfiniteScroll } from '../hooks/useInfiniteScroll'; import { ProfileCard } from './components/ProfileCard'; export function UseProfileFollowers() { const { data: profiles, - error, - loading, hasMore, observeRef, } = useInfiniteScroll( useProfileFollowers({ - of: profileId('0x03'), + of: profileId('0x07'), + suspense: true, }), ); - if (loading) return ; - - if (error) return ; - return (

diff --git a/examples/web/src/profiles/UseProfileFollowing.tsx b/examples/web/src/profiles/UseProfileFollowing.tsx index 466629923..de098346e 100644 --- a/examples/web/src/profiles/UseProfileFollowing.tsx +++ b/examples/web/src/profiles/UseProfileFollowing.tsx @@ -1,27 +1,20 @@ import { profileId, useProfileFollowing } from '@lens-protocol/react-web'; -import { ErrorMessage } from '../components/error/ErrorMessage'; -import { Loading } from '../components/loading/Loading'; import { useInfiniteScroll } from '../hooks/useInfiniteScroll'; import { ProfileCard } from './components/ProfileCard'; export function UseProfileFollowing() { const { data: profiles, - error, - loading, hasMore, observeRef, } = useInfiniteScroll( useProfileFollowing({ - for: profileId('0x04'), + for: profileId('0x0109'), + suspense: true, }), ); - if (loading) return ; - - if (error) return ; - return (

diff --git a/packages/react/src/profile/useProfileFollowers.ts b/packages/react/src/profile/useProfileFollowers.ts index a9e0b820a..7d6eec88a 100644 --- a/packages/react/src/profile/useProfileFollowers.ts +++ b/packages/react/src/profile/useProfileFollowers.ts @@ -1,11 +1,13 @@ -import { - Profile, - FollowersRequest, - useFollowers as useFollowersHook, -} from '@lens-protocol/api-bindings'; +import { Profile, FollowersRequest, FollowersDocument } from '@lens-protocol/api-bindings'; import { useLensApolloClient } from '../helpers/arguments'; -import { PaginatedArgs, PaginatedReadResult, usePaginatedReadResult } from '../helpers/reads'; +import { PaginatedArgs, PaginatedReadResult } from '../helpers/reads'; +import { + SuspendablePaginatedResult, + SuspenseEnabled, + SuspensePaginatedResult, + useSuspendablePaginatedQuery, +} from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; /** @@ -13,11 +15,17 @@ import { useFragmentVariables } from '../helpers/variables'; */ export type UseProfileFollowersArgs = PaginatedArgs; +export type { FollowersRequest }; + /** - * `useProfileFollowers` is a paginated hook that lets you fetch profiles that follow a requested profile. + * {@link useProfileFollowers} hook arguments with Suspense support * - * @category Profiles - * @group Hooks + * @experimental This API can change without notice + */ +export type UseSuspenseProfileFollowersArgs = SuspenseEnabled; + +/** + * Fetch profiles that follow a requested profile. * * @example * ```tsx @@ -25,13 +33,43 @@ export type UseProfileFollowersArgs = PaginatedArgs; * of: '0x123', * }); * ``` + * + * @category Profiles + * @group Hooks */ -export function useProfileFollowers(args: UseProfileFollowersArgs): PaginatedReadResult { - return usePaginatedReadResult( - useFollowersHook( - useLensApolloClient({ - variables: useFragmentVariables(args), - }), - ), - ); +export function useProfileFollowers(args: UseProfileFollowersArgs): PaginatedReadResult; + +/** + * Fetch profiles that follow a requested profile. + * + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). + * + * ```tsx + * const { data } = useProfileFollowers({ + * of: '0x123', + * suspense: true, + * }); + * + * console.log(data); + * ``` + * + * @experimental This API can change without notice + * @category Profiles + * @group Hooks + */ +export function useProfileFollowers( + args: UseSuspenseProfileFollowersArgs, +): SuspensePaginatedResult; + +export function useProfileFollowers({ + suspense = false, + ...args +}: UseProfileFollowersArgs & { suspense?: boolean }): SuspendablePaginatedResult { + return useSuspendablePaginatedQuery({ + suspense, + query: FollowersDocument, + options: useLensApolloClient({ + variables: useFragmentVariables(args), + }), + }); } diff --git a/packages/react/src/profile/useProfileFollowing.ts b/packages/react/src/profile/useProfileFollowing.ts index aafe63bae..711d38267 100644 --- a/packages/react/src/profile/useProfileFollowing.ts +++ b/packages/react/src/profile/useProfileFollowing.ts @@ -1,11 +1,13 @@ -import { - Profile, - FollowingRequest, - useFollowing as useFollowingHook, -} from '@lens-protocol/api-bindings'; +import { Profile, FollowingRequest, FollowingDocument } from '@lens-protocol/api-bindings'; import { useLensApolloClient } from '../helpers/arguments'; -import { PaginatedArgs, PaginatedReadResult, usePaginatedReadResult } from '../helpers/reads'; +import { PaginatedArgs, PaginatedReadResult } from '../helpers/reads'; +import { + SuspendablePaginatedResult, + SuspenseEnabled, + SuspensePaginatedResult, + useSuspendablePaginatedQuery, +} from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; /** @@ -13,11 +15,17 @@ import { useFragmentVariables } from '../helpers/variables'; */ export type UseProfileFollowingArgs = PaginatedArgs; +export type { FollowingRequest }; + /** - * `useProfileFollowing` is a paginated hook that lets you fetch profiles that are followed by a requested profile. + * {@link useProfileFollowing} hook arguments with Suspense support * - * @category Profiles - * @group Hooks + * @experimental This API can change without notice + */ +export type UseSuspenseProfileFollowingArgs = SuspenseEnabled; + +/** + * Fetch profiles that are followed by a requested profile. * * @example * ```tsx @@ -25,13 +33,43 @@ export type UseProfileFollowingArgs = PaginatedArgs; * for: '0x123', * }); * ``` + * + * @category Profiles + * @group Hooks */ -export function useProfileFollowing(args: UseProfileFollowingArgs): PaginatedReadResult { - return usePaginatedReadResult( - useFollowingHook( - useLensApolloClient({ - variables: useFragmentVariables(args), - }), - ), - ); +export function useProfileFollowing(args: UseProfileFollowingArgs): PaginatedReadResult; + +/** + * Fetch profiles that are followed by a requested profile. + * + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). + * + * ```tsx + * const { data } = useProfileFollowing({ + * for: '0x123', + * suspense: true, + * }); + * + * console.log(data); + * ``` + * + * @experimental This API can change without notice + * @category Profiles + * @group Hooks + */ +export function useProfileFollowing( + args: UseSuspenseProfileFollowingArgs, +): SuspensePaginatedResult; + +export function useProfileFollowing({ + suspense = false, + ...args +}: UseProfileFollowingArgs & { suspense?: boolean }): SuspendablePaginatedResult { + return useSuspendablePaginatedQuery({ + suspense, + query: FollowingDocument, + options: useLensApolloClient({ + variables: useFragmentVariables(args), + }), + }); } From be49f3efb58944fa2801884cd119bd6ede51a8a8 Mon Sep 17 00:00:00 2001 From: Cesare Naldi Date: Thu, 16 May 2024 16:38:38 +0200 Subject: [PATCH 12/15] feat: add React Suspense support to useSearchPublications hook --- .changeset/lovely-dodos-prove.md | 7 ++ .../src/discovery/UseSearchPublications.tsx | 16 ++- .../react/src/discovery/useSearchProfiles.ts | 8 +- .../src/discovery/useSearchPublications.ts | 104 ++++++++++++++---- 4 files changed, 102 insertions(+), 33 deletions(-) create mode 100644 .changeset/lovely-dodos-prove.md diff --git a/.changeset/lovely-dodos-prove.md b/.changeset/lovely-dodos-prove.md new file mode 100644 index 000000000..f10895af9 --- /dev/null +++ b/.changeset/lovely-dodos-prove.md @@ -0,0 +1,7 @@ +--- +"@lens-protocol/react": minor +"@lens-protocol/react-native": minor +"@lens-protocol/react-web": minor +--- + +**feat:** add React Suspense support to `useSearchPublications` hook diff --git a/examples/web/src/discovery/UseSearchPublications.tsx b/examples/web/src/discovery/UseSearchPublications.tsx index 5e522f40c..c3e09e676 100644 --- a/examples/web/src/discovery/UseSearchPublications.tsx +++ b/examples/web/src/discovery/UseSearchPublications.tsx @@ -1,8 +1,7 @@ import { LimitType, useSearchPublications } from '@lens-protocol/react-web'; -import { useState } from 'react'; +import { Suspense, startTransition, useState } from 'react'; import { PublicationCard } from '../components/cards'; -import { ErrorMessage } from '../components/error/ErrorMessage'; import { Loading } from '../components/loading/Loading'; import { useInfiniteScroll } from '../hooks/useInfiniteScroll'; @@ -11,17 +10,14 @@ type SearchResultsProps = { }; function SearchResults({ query }: SearchResultsProps) { - const { data, error, loading, hasMore, observeRef } = useInfiniteScroll( + const { data, hasMore, observeRef } = useInfiniteScroll( useSearchPublications({ query, limit: LimitType.Fifty, + suspense: true, }), ); - if (loading) return ; - - if (error) return ; - if (data.length === 0) { return

No publications found

; } @@ -48,7 +44,9 @@ export function UseSearchPublications() { const q = formData.get('query') as string | null; if (q) { - setQuery(q); + startTransition(() => { + setQuery(q); + }); } }; @@ -62,7 +60,7 @@ export function UseSearchPublications() {   - {query && } + }>{query && }

); } diff --git a/packages/react/src/discovery/useSearchProfiles.ts b/packages/react/src/discovery/useSearchProfiles.ts index 580c648d4..c7e940291 100644 --- a/packages/react/src/discovery/useSearchProfiles.ts +++ b/packages/react/src/discovery/useSearchProfiles.ts @@ -79,9 +79,11 @@ export function useSearchProfiles(args: UseSearchProfilesArgs): PaginatedReadRes * suspense: true, * }); * - * const search = startTransition(() => { - * setQuery('foo'); - * }); + * const search = () => { + * startTransition(() => { + * setQuery('foo'); + * }); + * }; * ``` * * @experimental This API can change without notice diff --git a/packages/react/src/discovery/useSearchPublications.ts b/packages/react/src/discovery/useSearchPublications.ts index 39b1d7ef0..385e2eb11 100644 --- a/packages/react/src/discovery/useSearchPublications.ts +++ b/packages/react/src/discovery/useSearchPublications.ts @@ -1,23 +1,37 @@ import { PrimaryPublication, PublicationSearchRequest, - useSearchPublications as useBaseSearchPublications, + PublicationSearchWhere, + SearchPublicationsDocument, } from '@lens-protocol/api-bindings'; import { useLensApolloClient } from '../helpers/arguments'; -import { PaginatedArgs, PaginatedReadResult, usePaginatedReadResult } from '../helpers/reads'; +import { PaginatedArgs, PaginatedReadResult } from '../helpers/reads'; +import { + SuspendablePaginatedResult, + SuspenseEnabled, + SuspensePaginatedResult, + useSuspendablePaginatedQuery, +} from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; +/** + * {@link useSearchPublications} hook arguments + */ export type UseSearchPublicationsArgs = PaginatedArgs; +export type { PublicationSearchRequest, PublicationSearchWhere }; + /** - * Search for publications based on a defined criteria + * {@link useSearchPublications} hook arguments with Suspense support * - * @category Discovery - * @group Hooks - * @param args - {@link UseSearchPublicationsArgs} + * @experimental This API can change without notice + */ +export type UseSuspenseSearchPublicationsArgs = SuspenseEnabled; + +/** + * Search for publications based on a defined criteria * - * @example * Search for publications with content that contains "foo" * ```tsx * import { useSearchPublications } from '@lens-protocol/react'; @@ -41,7 +55,6 @@ export type UseSearchPublicationsArgs = PaginatedArgs; * } * ``` * - * @example * Search for audio post publications with content that matches a query * ```tsx * import { useSearchPublications } from '@lens-protocol/react'; @@ -72,22 +85,71 @@ export type UseSearchPublicationsArgs = PaginatedArgs; * ); * } * ``` + * + * @category Discovery + * @group Hooks */ +export function useSearchPublications( + args: UseSearchPublicationsArgs, +): PaginatedReadResult; + +/** + * Search for publications based on a defined criteria + * + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). + * + * ```tsx + * const { data } = useSearchPublications({ + * query: 'foo', + * suspense: true, + * }); + * + * console.log(data); + * ``` + * + * Use [startTransition](https://react.dev/reference/react/startTransition) to avoid to re-suspend the component. + * + * ```tsx + * const [query, setQuery] = useState('foo'); + * + * const { data } = useSearchPublications({ + * query, + * suspense: true, + * }); + * + * const search = () => { + * startTransition(() => { + * setQuery('bar'); + * }); + * }; + * ``` + * + * @experimental This API can change without notice + * @category Discovery + * @group Hooks + */ +export function useSearchPublications( + args: UseSuspenseSearchPublicationsArgs, +): SuspensePaginatedResult; + export function useSearchPublications({ - query, limit, + query, + suspense = false, where, -}: UseSearchPublicationsArgs): PaginatedReadResult { - return usePaginatedReadResult( - useBaseSearchPublications( - useLensApolloClient({ - variables: useFragmentVariables({ - query, - limit, - where, - statsFor: where?.metadata?.publishedOn, - }), +}: UseSearchPublicationsArgs & { suspense?: boolean }): SuspendablePaginatedResult< + PrimaryPublication[] +> { + return useSuspendablePaginatedQuery({ + suspense, + query: SearchPublicationsDocument, + options: useLensApolloClient({ + variables: useFragmentVariables({ + query, + limit, + where, + statsFor: where?.metadata?.publishedOn, }), - ), - ); + }), + }); } From afb3970c8bcb719a10acd02c7fb60892306c3b46 Mon Sep 17 00:00:00 2001 From: Cesare Naldi Date: Tue, 21 May 2024 11:53:30 +0100 Subject: [PATCH 13/15] feat: support Shared Revenue collect module (#935) * chore: removes mention of APP_NOT_ALLOWED broadcasst error reason * feat: support new Shared Revenue Collect module * Adopt mintFee and updates node scripts * Supports protocolSharedRevenueCollectOpenAction input * Verify allowance and balance of mint fee token too * Refactors OpenAction use-case * Updates PublicActProxy addresses * Improves resolveCollectPolicy * Fix EPOC value * Ensures correct publicPaidAct amount is used and correct spender * Simplifies use of config.sponsored * Fix OpenActionGateway tests --- .changeset/weak-hairs-tan.md | 10 + examples/node/abi/PublicActProxy.json | 452 +- examples/node/contracts/PublicActProxy.ts | 140 +- .../factories/PublicActProxy__factory.ts | 296 +- .../recipes/openActionWalletOnly.ts | 34 +- examples/web/src/components/CollectPolicy.tsx | 88 + examples/web/src/components/cards.tsx | 5 +- .../src/discovery/UseExplorePublications.tsx | 42 +- .../web/src/publications/UseOpenAction.tsx | 85 +- .../src/apollo/cache/transactions.ts | 12 +- .../src/lens/__helpers__/fragments.ts | 9 + .../src/lens/graphql/fragments.graphql | 39 + .../src/lens/graphql/generated.ts | 4310 +++++++++++++++++ .../src/lens/utils/CollectModuleSettings.ts | 275 +- .../utils/__tests__/token-allowance.spec.ts | 156 - packages/api-bindings/src/lens/utils/index.ts | 1 - .../src/lens/utils/token-allowance.ts | 82 - .../src/abi/PublicActProxy.json | 452 +- .../src/types/PublicActProxy.ts | 150 +- packages/client/codegen-api.yml | 4 +- .../client/src/graphql/fragments.generated.ts | 1026 ++++ packages/client/src/graphql/fragments.graphql | 39 + .../client/src/graphql/types.generated.ts | 34 + packages/client/src/graphql/types.ts | 4 + .../explore/graphql/explore.generated.ts | 128 + .../submodules/feed/graphql/feed.generated.ts | 640 +++ .../graphql/notifications.generated.ts | 896 ++++ .../graphql/publication.generated.ts | 256 + .../publication/helpers/openActions.ts | 46 +- .../bookmarks/graphql/bookmarks.generated.ts | 128 + .../revenue/graphql/revenue.generated.ts | 384 ++ .../search/graphql/search.generated.ts | 128 + .../src/use-cases/profile/LinkHandle.ts | 3 +- .../src/use-cases/profile/UnfollowProfile.ts | 1 + .../profile/UpdateProfileManagers.ts | 1 + .../src/use-cases/publications/OpenAction.ts | 79 +- .../publications/OpenActionConfig.ts | 77 +- .../publications/__helpers__/mocks.ts | 32 +- .../publications/__tests__/OpenAction.spec.ts | 58 +- .../transactions/BroadcastingError.ts | 2 + packages/gated-content/codegen.yml | 1 + .../src/graphql/__helpers__/mocks.ts | 1 + .../gated-content/src/graphql/generated.ts | 800 ++- packages/react/src/environments.ts | 8 +- packages/react/src/publication/index.ts | 2 + .../adapters/AbstractContractCallGateway.ts | 2 +- .../CreateProfileTransactionGateway.ts | 3 +- .../adapters/OpenActionGateway.ts | 115 +- .../adapters/__tests__/MomokaRelayer.spec.ts | 4 - .../adapters/__tests__/OnChainRelayer.spec.ts | 4 - .../__tests__/OpenActionGateway.spec.ts | 83 +- .../CreateMomokaCommentGateway.spec.ts | 6 - .../CreateMomokaMirrorGateway.spec.ts | 6 - .../__tests__/CreateMomokaPostGateway.spec.ts | 6 - .../CreateMomokaQuoteGateway.spec.ts | 6 - .../CreateOnChainCommentGateway.spec.ts | 6 - .../CreateOnChainMirrorGateway.spec.ts | 6 - .../CreateOnChainPostGateway.spec.ts | 6 - .../CreateOnChainQuoteGateway.spec.ts | 6 - .../resolveOpenActionModuleInput.spec.ts | 19 + .../resolveOpenActionModuleInput.ts | 38 + .../src/transactions/adapters/relayer.ts | 4 - .../adapters/schemas/publications.ts | 37 +- .../publications/useCreateComment.ts | 7 - .../publications/useCreateMirror.ts | 8 - .../publications/useCreatePost.ts | 7 - .../publications/useCreateQuote.ts | 7 - .../publications/useOptimisticCreatePost.ts | 1 - .../__tests__/token-allowance.spec.ts | 173 + .../transactions/useApproveModule/index.ts | 1 + .../useApproveModule/token-allowance.ts | 128 + .../useApproveModule.ts | 38 +- .../src/transactions/useBlockProfiles.ts | 10 +- packages/react/src/transactions/useFollow.ts | 8 - .../react/src/transactions/useLinkHandle.ts | 9 - .../__tests__/createOpenActionRequest.spec.ts | 96 +- .../useOpenAction/createOpenActionRequest.ts | 78 +- .../src/transactions/useOpenAction/types.ts | 22 +- .../useOpenAction/useOpenAction.ts | 148 +- .../src/transactions/useSetProfileMetadata.ts | 8 - .../src/transactions/useUnblockProfiles.ts | 9 - .../react/src/transactions/useUnfollow.ts | 10 - .../react/src/transactions/useUnlinkHandle.ts | 9 - .../src/transactions/useUpdateFollowPolicy.ts | 9 - .../transactions/useUpdateProfileManagers.ts | 9 - 85 files changed, 11595 insertions(+), 973 deletions(-) create mode 100644 .changeset/weak-hairs-tan.md create mode 100644 examples/web/src/components/CollectPolicy.tsx delete mode 100644 packages/api-bindings/src/lens/utils/__tests__/token-allowance.spec.ts delete mode 100644 packages/api-bindings/src/lens/utils/token-allowance.ts create mode 100644 packages/react/src/transactions/useApproveModule/__tests__/token-allowance.spec.ts create mode 100644 packages/react/src/transactions/useApproveModule/index.ts create mode 100644 packages/react/src/transactions/useApproveModule/token-allowance.ts rename packages/react/src/transactions/{ => useApproveModule}/useApproveModule.ts (82%) diff --git a/.changeset/weak-hairs-tan.md b/.changeset/weak-hairs-tan.md new file mode 100644 index 000000000..149bc4897 --- /dev/null +++ b/.changeset/weak-hairs-tan.md @@ -0,0 +1,10 @@ +--- +"@lens-protocol/client": minor +"@lens-protocol/react-native": minor +"@lens-protocol/react-web": minor +"@lens-protocol/react": minor +"@lens-protocol/api-bindings": patch +"@lens-protocol/domain": patch +--- + +**feat:** support new Shared Revenue Collect module diff --git a/examples/node/abi/PublicActProxy.json b/examples/node/abi/PublicActProxy.json index 4b44d7900..c388925d3 100644 --- a/examples/node/abi/PublicActProxy.json +++ b/examples/node/abi/PublicActProxy.json @@ -1,109 +1,433 @@ [ { + "type": "constructor", "inputs": [ - { "internalType": "address", "name": "lensHub", "type": "address" }, - { "internalType": "address", "name": "collectPublicationAction", "type": "address" } + { + "name": "lensHub", + "type": "address", + "internalType": "address" + }, + { + "name": "collectPublicationAction", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "COLLECT_PUBLICATION_ACTION", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract CollectPublicationAction" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "HUB", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ILensHub" + } ], - "stateMutability": "nonpayable", - "type": "constructor" + "stateMutability": "view" }, { - "inputs": [{ "internalType": "uint8", "name": "increment", "type": "uint8" }], + "type": "function", "name": "incrementNonce", + "inputs": [ + { + "name": "increment", + "type": "uint8", + "internalType": "uint8" + } + ], "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "nonpayable" }, { - "inputs": [], + "type": "function", "name": "name", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }], - "stateMutability": "pure", - "type": "function" + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" }, { - "inputs": [{ "internalType": "address", "name": "signer", "type": "address" }], + "type": "function", "name": "nonces", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" }, { + "type": "function", + "name": "publicCollect", "inputs": [ { - "components": [ - { "internalType": "uint256", "name": "publicationActedProfileId", "type": "uint256" }, - { "internalType": "uint256", "name": "publicationActedId", "type": "uint256" }, - { "internalType": "uint256", "name": "actorProfileId", "type": "uint256" }, - { "internalType": "uint256[]", "name": "referrerProfileIds", "type": "uint256[]" }, - { "internalType": "uint256[]", "name": "referrerPubIds", "type": "uint256[]" }, - { "internalType": "address", "name": "actionModuleAddress", "type": "address" }, - { "internalType": "bytes", "name": "actionModuleData", "type": "bytes" } - ], - "internalType": "struct Types.PublicationActionParams", "name": "publicationActionParams", - "type": "tuple" + "type": "tuple", + "internalType": "struct Types.PublicationActionParams", + "components": [ + { + "name": "publicationActedProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "publicationActedId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actorProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "actionModuleAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "actionModuleData", + "type": "bytes", + "internalType": "bytes" + } + ] } ], - "name": "publicCollect", "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "nonpayable" }, { + "type": "function", + "name": "publicCollectWithSig", "inputs": [ { - "components": [ - { "internalType": "uint256", "name": "publicationActedProfileId", "type": "uint256" }, - { "internalType": "uint256", "name": "publicationActedId", "type": "uint256" }, - { "internalType": "uint256", "name": "actorProfileId", "type": "uint256" }, - { "internalType": "uint256[]", "name": "referrerProfileIds", "type": "uint256[]" }, - { "internalType": "uint256[]", "name": "referrerPubIds", "type": "uint256[]" }, - { "internalType": "address", "name": "actionModuleAddress", "type": "address" }, - { "internalType": "bytes", "name": "actionModuleData", "type": "bytes" } - ], - "internalType": "struct Types.PublicationActionParams", "name": "publicationActionParams", - "type": "tuple" + "type": "tuple", + "internalType": "struct Types.PublicationActionParams", + "components": [ + { + "name": "publicationActedProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "publicationActedId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actorProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "actionModuleAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "actionModuleData", + "type": "bytes", + "internalType": "bytes" + } + ] }, { - "components": [ - { "internalType": "address", "name": "signer", "type": "address" }, - { "internalType": "uint8", "name": "v", "type": "uint8" }, - { "internalType": "bytes32", "name": "r", "type": "bytes32" }, - { "internalType": "bytes32", "name": "s", "type": "bytes32" }, - { "internalType": "uint256", "name": "deadline", "type": "uint256" } - ], - "internalType": "struct Types.EIP712Signature", "name": "signature", - "type": "tuple" + "type": "tuple", + "internalType": "struct Types.EIP712Signature", + "components": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + }, + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "deadline", + "type": "uint256", + "internalType": "uint256" + } + ] } ], - "name": "publicCollectWithSig", "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "nonpayable" }, { + "type": "function", + "name": "publicFreeAct", "inputs": [ { + "name": "publicationActionParams", + "type": "tuple", + "internalType": "struct Types.PublicationActionParams", "components": [ - { "internalType": "uint256", "name": "publicationActedProfileId", "type": "uint256" }, - { "internalType": "uint256", "name": "publicationActedId", "type": "uint256" }, - { "internalType": "uint256", "name": "actorProfileId", "type": "uint256" }, - { "internalType": "uint256[]", "name": "referrerProfileIds", "type": "uint256[]" }, - { "internalType": "uint256[]", "name": "referrerPubIds", "type": "uint256[]" }, - { "internalType": "address", "name": "actionModuleAddress", "type": "address" }, - { "internalType": "bytes", "name": "actionModuleData", "type": "bytes" } - ], + { + "name": "publicationActedProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "publicationActedId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actorProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "actionModuleAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "actionModuleData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "publicPaidAct", + "inputs": [ + { + "name": "publicationActionParams", + "type": "tuple", "internalType": "struct Types.PublicationActionParams", + "components": [ + { + "name": "publicationActedProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "publicationActedId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actorProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "actionModuleAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "actionModuleData", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "currency", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "approveTo", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "publicPaidActWithSig", + "inputs": [ + { "name": "publicationActionParams", - "type": "tuple" + "type": "tuple", + "internalType": "struct Types.PublicationActionParams", + "components": [ + { + "name": "publicationActedProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "publicationActedId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actorProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "actionModuleAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "actionModuleData", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "currency", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "approveTo", + "type": "address", + "internalType": "address" + }, + { + "name": "signature", + "type": "tuple", + "internalType": "struct Types.EIP712Signature", + "components": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + }, + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "deadline", + "type": "uint256", + "internalType": "uint256" + } + ] } ], - "name": "publicFreeAct", "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "nonpayable" } ] diff --git a/examples/node/contracts/PublicActProxy.ts b/examples/node/contracts/PublicActProxy.ts index 8c72e38dd..9f2661ed1 100644 --- a/examples/node/contracts/PublicActProxy.ts +++ b/examples/node/contracts/PublicActProxy.ts @@ -71,24 +71,34 @@ export declare namespace Types { export interface PublicActProxyInterface extends utils.Interface { functions: { + 'COLLECT_PUBLICATION_ACTION()': FunctionFragment; + 'HUB()': FunctionFragment; 'incrementNonce(uint8)': FunctionFragment; 'name()': FunctionFragment; 'nonces(address)': FunctionFragment; 'publicCollect((uint256,uint256,uint256,uint256[],uint256[],address,bytes))': FunctionFragment; 'publicCollectWithSig((uint256,uint256,uint256,uint256[],uint256[],address,bytes),(address,uint8,bytes32,bytes32,uint256))': FunctionFragment; 'publicFreeAct((uint256,uint256,uint256,uint256[],uint256[],address,bytes))': FunctionFragment; + 'publicPaidAct((uint256,uint256,uint256,uint256[],uint256[],address,bytes),address,uint256,address)': FunctionFragment; + 'publicPaidActWithSig((uint256,uint256,uint256,uint256[],uint256[],address,bytes),address,uint256,address,(address,uint8,bytes32,bytes32,uint256))': FunctionFragment; }; getFunction( nameOrSignatureOrTopic: + | 'COLLECT_PUBLICATION_ACTION' + | 'HUB' | 'incrementNonce' | 'name' | 'nonces' | 'publicCollect' | 'publicCollectWithSig' - | 'publicFreeAct', + | 'publicFreeAct' + | 'publicPaidAct' + | 'publicPaidActWithSig', ): FunctionFragment; + encodeFunctionData(functionFragment: 'COLLECT_PUBLICATION_ACTION', values?: undefined): string; + encodeFunctionData(functionFragment: 'HUB', values?: undefined): string; encodeFunctionData( functionFragment: 'incrementNonce', values: [PromiseOrValue], @@ -107,13 +117,36 @@ export interface PublicActProxyInterface extends utils.Interface { functionFragment: 'publicFreeAct', values: [Types.PublicationActionParamsStruct], ): string; + encodeFunctionData( + functionFragment: 'publicPaidAct', + values: [ + Types.PublicationActionParamsStruct, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'publicPaidActWithSig', + values: [ + Types.PublicationActionParamsStruct, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + Types.EIP712SignatureStruct, + ], + ): string; + decodeFunctionResult(functionFragment: 'COLLECT_PUBLICATION_ACTION', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'HUB', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'incrementNonce', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'nonces', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'publicCollect', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'publicCollectWithSig', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'publicFreeAct', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'publicPaidAct', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'publicPaidActWithSig', data: BytesLike): Result; events: {}; } @@ -143,6 +176,10 @@ export interface PublicActProxy extends BaseContract { removeListener: OnEvent; functions: { + COLLECT_PUBLICATION_ACTION(overrides?: CallOverrides): Promise<[string]>; + + HUB(overrides?: CallOverrides): Promise<[string]>; + incrementNonce( increment: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue }, @@ -167,8 +204,29 @@ export interface PublicActProxy extends BaseContract { publicationActionParams: Types.PublicationActionParamsStruct, overrides?: Overrides & { from?: PromiseOrValue }, ): Promise; + + publicPaidAct( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + publicPaidActWithSig( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + signature: Types.EIP712SignatureStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; }; + COLLECT_PUBLICATION_ACTION(overrides?: CallOverrides): Promise; + + HUB(overrides?: CallOverrides): Promise; + incrementNonce( increment: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue }, @@ -194,7 +252,28 @@ export interface PublicActProxy extends BaseContract { overrides?: Overrides & { from?: PromiseOrValue }, ): Promise; + publicPaidAct( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + publicPaidActWithSig( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + signature: Types.EIP712SignatureStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + callStatic: { + COLLECT_PUBLICATION_ACTION(overrides?: CallOverrides): Promise; + + HUB(overrides?: CallOverrides): Promise; + incrementNonce( increment: PromiseOrValue, overrides?: CallOverrides, @@ -219,11 +298,32 @@ export interface PublicActProxy extends BaseContract { publicationActionParams: Types.PublicationActionParamsStruct, overrides?: CallOverrides, ): Promise; + + publicPaidAct( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + publicPaidActWithSig( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + signature: Types.EIP712SignatureStruct, + overrides?: CallOverrides, + ): Promise; }; filters: {}; estimateGas: { + COLLECT_PUBLICATION_ACTION(overrides?: CallOverrides): Promise; + + HUB(overrides?: CallOverrides): Promise; + incrementNonce( increment: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue }, @@ -248,9 +348,30 @@ export interface PublicActProxy extends BaseContract { publicationActionParams: Types.PublicationActionParamsStruct, overrides?: Overrides & { from?: PromiseOrValue }, ): Promise; + + publicPaidAct( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + publicPaidActWithSig( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + signature: Types.EIP712SignatureStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; }; populateTransaction: { + COLLECT_PUBLICATION_ACTION(overrides?: CallOverrides): Promise; + + HUB(overrides?: CallOverrides): Promise; + incrementNonce( increment: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue }, @@ -278,5 +399,22 @@ export interface PublicActProxy extends BaseContract { publicationActionParams: Types.PublicationActionParamsStruct, overrides?: Overrides & { from?: PromiseOrValue }, ): Promise; + + publicPaidAct( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + publicPaidActWithSig( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + signature: Types.EIP712SignatureStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; }; } diff --git a/examples/node/contracts/factories/PublicActProxy__factory.ts b/examples/node/contracts/factories/PublicActProxy__factory.ts index cb2e52efe..d8e1d0d2e 100644 --- a/examples/node/contracts/factories/PublicActProxy__factory.ts +++ b/examples/node/contracts/factories/PublicActProxy__factory.ts @@ -8,247 +8,435 @@ import type { PublicActProxy, PublicActProxyInterface } from '../PublicActProxy' const _abi = [ { + type: 'constructor', inputs: [ { - internalType: 'address', name: 'lensHub', type: 'address', + internalType: 'address', }, { - internalType: 'address', name: 'collectPublicationAction', type: 'address', + internalType: 'address', }, ], stateMutability: 'nonpayable', - type: 'constructor', }, { + type: 'function', + name: 'COLLECT_PUBLICATION_ACTION', + inputs: [], + outputs: [ + { + name: '', + type: 'address', + internalType: 'contract CollectPublicationAction', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + name: 'HUB', + inputs: [], + outputs: [ + { + name: '', + type: 'address', + internalType: 'contract ILensHub', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + name: 'incrementNonce', inputs: [ { - internalType: 'uint8', name: 'increment', type: 'uint8', + internalType: 'uint8', }, ], - name: 'incrementNonce', outputs: [], stateMutability: 'nonpayable', - type: 'function', }, { - inputs: [], + type: 'function', name: 'name', + inputs: [], outputs: [ { - internalType: 'string', name: '', type: 'string', + internalType: 'string', }, ], stateMutability: 'pure', - type: 'function', }, { + type: 'function', + name: 'nonces', inputs: [ { - internalType: 'address', name: 'signer', type: 'address', + internalType: 'address', }, ], - name: 'nonces', outputs: [ { - internalType: 'uint256', name: '', type: 'uint256', + internalType: 'uint256', }, ], stateMutability: 'view', - type: 'function', }, { + type: 'function', + name: 'publicCollect', inputs: [ { + name: 'publicationActionParams', + type: 'tuple', + internalType: 'struct Types.PublicationActionParams', components: [ { - internalType: 'uint256', name: 'publicationActedProfileId', type: 'uint256', + internalType: 'uint256', }, { - internalType: 'uint256', name: 'publicationActedId', type: 'uint256', + internalType: 'uint256', }, { - internalType: 'uint256', name: 'actorProfileId', type: 'uint256', + internalType: 'uint256', }, { - internalType: 'uint256[]', name: 'referrerProfileIds', type: 'uint256[]', + internalType: 'uint256[]', }, { - internalType: 'uint256[]', name: 'referrerPubIds', type: 'uint256[]', + internalType: 'uint256[]', }, { - internalType: 'address', name: 'actionModuleAddress', type: 'address', + internalType: 'address', }, { - internalType: 'bytes', name: 'actionModuleData', type: 'bytes', + internalType: 'bytes', }, ], - internalType: 'struct Types.PublicationActionParams', - name: 'publicationActionParams', - type: 'tuple', }, ], - name: 'publicCollect', outputs: [], stateMutability: 'nonpayable', - type: 'function', }, { + type: 'function', + name: 'publicCollectWithSig', inputs: [ { + name: 'publicationActionParams', + type: 'tuple', + internalType: 'struct Types.PublicationActionParams', components: [ { - internalType: 'uint256', name: 'publicationActedProfileId', type: 'uint256', + internalType: 'uint256', }, { - internalType: 'uint256', name: 'publicationActedId', type: 'uint256', + internalType: 'uint256', }, { - internalType: 'uint256', name: 'actorProfileId', type: 'uint256', + internalType: 'uint256', }, { - internalType: 'uint256[]', name: 'referrerProfileIds', type: 'uint256[]', + internalType: 'uint256[]', }, { - internalType: 'uint256[]', name: 'referrerPubIds', type: 'uint256[]', + internalType: 'uint256[]', }, { - internalType: 'address', name: 'actionModuleAddress', type: 'address', + internalType: 'address', }, { - internalType: 'bytes', name: 'actionModuleData', type: 'bytes', + internalType: 'bytes', }, ], - internalType: 'struct Types.PublicationActionParams', - name: 'publicationActionParams', - type: 'tuple', }, { + name: 'signature', + type: 'tuple', + internalType: 'struct Types.EIP712Signature', components: [ { - internalType: 'address', name: 'signer', type: 'address', + internalType: 'address', }, { - internalType: 'uint8', name: 'v', type: 'uint8', + internalType: 'uint8', }, { - internalType: 'bytes32', name: 'r', type: 'bytes32', + internalType: 'bytes32', }, { - internalType: 'bytes32', name: 's', type: 'bytes32', + internalType: 'bytes32', }, { - internalType: 'uint256', name: 'deadline', type: 'uint256', + internalType: 'uint256', }, ], - internalType: 'struct Types.EIP712Signature', - name: 'signature', - type: 'tuple', }, ], - name: 'publicCollectWithSig', outputs: [], stateMutability: 'nonpayable', - type: 'function', }, { + type: 'function', + name: 'publicFreeAct', inputs: [ { + name: 'publicationActionParams', + type: 'tuple', + internalType: 'struct Types.PublicationActionParams', components: [ { - internalType: 'uint256', name: 'publicationActedProfileId', type: 'uint256', + internalType: 'uint256', }, { - internalType: 'uint256', name: 'publicationActedId', type: 'uint256', + internalType: 'uint256', }, { - internalType: 'uint256', name: 'actorProfileId', type: 'uint256', + internalType: 'uint256', }, { - internalType: 'uint256[]', name: 'referrerProfileIds', type: 'uint256[]', + internalType: 'uint256[]', }, { - internalType: 'uint256[]', name: 'referrerPubIds', type: 'uint256[]', + internalType: 'uint256[]', }, { - internalType: 'address', name: 'actionModuleAddress', type: 'address', + internalType: 'address', }, { - internalType: 'bytes', name: 'actionModuleData', type: 'bytes', + internalType: 'bytes', }, ], - internalType: 'struct Types.PublicationActionParams', + }, + ], + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + name: 'publicPaidAct', + inputs: [ + { name: 'publicationActionParams', type: 'tuple', + internalType: 'struct Types.PublicationActionParams', + components: [ + { + name: 'publicationActedProfileId', + type: 'uint256', + internalType: 'uint256', + }, + { + name: 'publicationActedId', + type: 'uint256', + internalType: 'uint256', + }, + { + name: 'actorProfileId', + type: 'uint256', + internalType: 'uint256', + }, + { + name: 'referrerProfileIds', + type: 'uint256[]', + internalType: 'uint256[]', + }, + { + name: 'referrerPubIds', + type: 'uint256[]', + internalType: 'uint256[]', + }, + { + name: 'actionModuleAddress', + type: 'address', + internalType: 'address', + }, + { + name: 'actionModuleData', + type: 'bytes', + internalType: 'bytes', + }, + ], + }, + { + name: 'currency', + type: 'address', + internalType: 'address', + }, + { + name: 'amount', + type: 'uint256', + internalType: 'uint256', + }, + { + name: 'approveTo', + type: 'address', + internalType: 'address', }, ], - name: 'publicFreeAct', outputs: [], stateMutability: 'nonpayable', + }, + { type: 'function', + name: 'publicPaidActWithSig', + inputs: [ + { + name: 'publicationActionParams', + type: 'tuple', + internalType: 'struct Types.PublicationActionParams', + components: [ + { + name: 'publicationActedProfileId', + type: 'uint256', + internalType: 'uint256', + }, + { + name: 'publicationActedId', + type: 'uint256', + internalType: 'uint256', + }, + { + name: 'actorProfileId', + type: 'uint256', + internalType: 'uint256', + }, + { + name: 'referrerProfileIds', + type: 'uint256[]', + internalType: 'uint256[]', + }, + { + name: 'referrerPubIds', + type: 'uint256[]', + internalType: 'uint256[]', + }, + { + name: 'actionModuleAddress', + type: 'address', + internalType: 'address', + }, + { + name: 'actionModuleData', + type: 'bytes', + internalType: 'bytes', + }, + ], + }, + { + name: 'currency', + type: 'address', + internalType: 'address', + }, + { + name: 'amount', + type: 'uint256', + internalType: 'uint256', + }, + { + name: 'approveTo', + type: 'address', + internalType: 'address', + }, + { + name: 'signature', + type: 'tuple', + internalType: 'struct Types.EIP712Signature', + components: [ + { + name: 'signer', + type: 'address', + internalType: 'address', + }, + { + name: 'v', + type: 'uint8', + internalType: 'uint8', + }, + { + name: 'r', + type: 'bytes32', + internalType: 'bytes32', + }, + { + name: 's', + type: 'bytes32', + internalType: 'bytes32', + }, + { + name: 'deadline', + type: 'uint256', + internalType: 'uint256', + }, + ], + }, + ], + outputs: [], + stateMutability: 'nonpayable', }, ] as const; diff --git a/examples/node/scripts/publication/recipes/openActionWalletOnly.ts b/examples/node/scripts/publication/recipes/openActionWalletOnly.ts index 52234eb29..235bc7086 100644 --- a/examples/node/scripts/publication/recipes/openActionWalletOnly.ts +++ b/examples/node/scripts/publication/recipes/openActionWalletOnly.ts @@ -10,7 +10,7 @@ dotenv.config(); const typedAbi = abi as ethers.ContractInterface; const publicActionProxyAddress = { - development: '0x88c8fa7C470d9d94aDfA40187157917B26A548d3', + development: '0x77706372deCeb81D49422F9115680B4873722AF1', production: '0x53582b1b7BE71622E7386D736b6baf87749B7a2B', }; @@ -52,36 +52,22 @@ async function main() { const { typedData } = resultTypedData.unwrap(); - // sign the typed data - const signedTypedData = await wallet._signTypedData( - typedData.domain, - typedData.types, - typedData.value, - ); - // init publicActProxy contract const publicActProxy = new ethers.Contract( publicActionProxyAddress.development, typedAbi, wallet, ) as PublicActProxy; - - // prepare data for the contract - const { v, r, s } = ethers.utils.splitSignature(signedTypedData); - // submit tx - const tx = await publicActProxy.publicCollectWithSig( - { - publicationActedProfileId: typedData.value.publicationActedProfileId, - publicationActedId: typedData.value.publicationActedId, - actorProfileId: typedData.value.actorProfileId, - referrerProfileIds: typedData.value.referrerProfileIds, - referrerPubIds: typedData.value.referrerPubIds, - actionModuleAddress: typedData.value.actionModuleAddress, - actionModuleData: typedData.value.actionModuleData, - }, - { signer: wallet.address, v, r, s, deadline: typedData.value.deadline }, - ); + const tx = await publicActProxy.publicFreeAct({ + publicationActedProfileId: typedData.value.publicationActedProfileId, + publicationActedId: typedData.value.publicationActedId, + actorProfileId: typedData.value.actorProfileId, + referrerProfileIds: typedData.value.referrerProfileIds, + referrerPubIds: typedData.value.referrerPubIds, + actionModuleAddress: typedData.value.actionModuleAddress, + actionModuleData: typedData.value.actionModuleData, + }); console.log(`Submitted a tx with a hash: `, tx.hash); diff --git a/examples/web/src/components/CollectPolicy.tsx b/examples/web/src/components/CollectPolicy.tsx new file mode 100644 index 000000000..f4cf0b7b7 --- /dev/null +++ b/examples/web/src/components/CollectPolicy.tsx @@ -0,0 +1,88 @@ +import { + CollectFee, + ExplorePublication, + MintFee, + MultirecipientCollectFee, + isMultirecipientCollectFee, + resolveCollectPolicy, +} from '@lens-protocol/react-web'; + +import { formatAmount } from '../utils/formatAmount'; + +export function formatFee({ amount, rate }: CollectFee | MultirecipientCollectFee | MintFee) { + if (rate) { + const fiat = amount.convert(rate); + return `${formatAmount(amount)} (${formatAmount(fiat)})`; + } + return formatAmount(amount); +} + +export function CollectFeeDetails({ fee }: { fee: CollectFee | MultirecipientCollectFee }) { + return ( +
+ Collect Fee: {formatFee(fee)} +
    + {fee.referralFee > 0 &&
  • Referral fee: {fee.referralFee}%
  • } + + {isMultirecipientCollectFee(fee) ? ( +
    + Recipients: +
      + {fee.recipients.map((r) => ( +
    • + {r.recipient} ({r.split}%) +
    • + ))} +
    +
    + ) : ( +
  • Recipient: {fee.recipient}
  • + )} +
+
+ ); +} + +function MintFeeDetails({ fee }: { fee: MintFee }) { + return ( +
+ Mint fee: {formatFee(fee)} +
    +
  • Creator: {fee.distribution.creatorSplit}%
  • +
  • Creator App: {fee.distribution.creatorClientSplit}%
  • +
  • Executor App: {fee.distribution.executorClientSplit}%
  • +
  • Protocol: {fee.distribution.protocolSplit}%
  • +
+
+ ); +} + +export function CollectCriteria({ publication }: { publication: ExplorePublication }) { + const policy = resolveCollectPolicy(publication); + + if (!policy) return

The publication is not collectable.

; + + return ( +
    + {policy.followerOnly === true &&
  • Only followers can collect
  • } + + {policy.collectLimit &&
  • Collect limit: {policy.collectLimit}
  • } + + {policy.endsAt &&
  • Ends at: {policy.endsAt}
  • } + + {policy.collectFee === null && policy.mintFee === null &&
  • Free collect
  • } + + {policy.collectFee && ( +
  • + +
  • + )} + + {policy.mintFee && ( +
  • + +
  • + )} +
+ ); +} diff --git a/examples/web/src/components/cards.tsx b/examples/web/src/components/cards.tsx index 019774385..8ae78972b 100644 --- a/examples/web/src/components/cards.tsx +++ b/examples/web/src/components/cards.tsx @@ -79,7 +79,10 @@ type PublicationCardProps = { export function PublicationCard({ publication, children }: PublicationCardProps) { return ( -
+
- {policy.followerOnly === true &&
Only followers can collect
} - {policy.collectLimit &&
{`Collect limit: ${policy.collectLimit}`}
} - {policy.endsAt &&
{`Ends at: ${policy.endsAt}`}
} - {!policy.fee ? ( -
Free collect
- ) : ( - <> -
{`Paid collect: ${formatAmount(policy.fee.amount)} (${formatFiatAmount( - policy.fee.amount, - policy.fee.rate, - )})`}
- {policy.fee.referralFee > 0 &&
{`Referral fee: ${policy.fee.referralFee}%`}
} - {!isMultirecipientCollectFee(policy.fee) ? ( -
{`Recipient: ${policy.fee.recipient}`}
- ) : ( -
{`Recipients: ${policy.fee.recipients.map((r) => r.recipient).join(', ')}`}
- )} - - )} -
- ); -} export function UseExplorePublications() { const { @@ -67,7 +31,7 @@ export function UseExplorePublications() {
{publications.map((publication) => ( - + ))} {hasMore &&

Loading more...

} diff --git a/examples/web/src/publications/UseOpenAction.tsx b/examples/web/src/publications/UseOpenAction.tsx index 2b4e779dc..8b4827196 100644 --- a/examples/web/src/publications/UseOpenAction.tsx +++ b/examples/web/src/publications/UseOpenAction.tsx @@ -1,10 +1,12 @@ import { textOnly } from '@lens-protocol/metadata'; import { + InsufficientAllowanceError, isPostPublication, OpenActionKind, OpenActionType, PublicationId, TriStateValue, + useApproveModule, useCreatePost, useOpenAction, usePublication, @@ -12,6 +14,7 @@ import { import { useState } from 'react'; import { toast } from 'react-hot-toast'; +import { CollectCriteria } from '../components/CollectPolicy'; import { Logs } from '../components/Logs'; import { RequireProfileSession, RequireWalletSession } from '../components/auth'; import { PublicationCard } from '../components/cards'; @@ -23,11 +26,12 @@ import { invariant } from '../utils'; function TestScenario({ id }: { id: PublicationId }) { const { data: publication, loading, error } = usePublication({ forId: id }); - const { execute } = useOpenAction({ + const { execute: act, loading: collecting } = useOpenAction({ action: { kind: OpenActionKind.COLLECT, }, }); + const { execute: approve, loading: approving } = useApproveModule(); if (loading) { return ; @@ -38,9 +42,27 @@ function TestScenario({ id }: { id: PublicationId }) { } const collect = async (sponsored?: boolean) => { - const result = await execute({ publication, sponsored }); + const result = await act({ publication, sponsored }); if (result.isFailure()) { + // requires approval + if (result.error instanceof InsufficientAllowanceError) { + const approval = await approve({ + on: publication, + }); + + if (approval.isFailure()) { + toast.error(approval.error.message); + return; + } + + toast.success('You successfully approved the module'); + + // retry to collect + await collect(sponsored); + return; + } + toast.error(result.error.message); return; } @@ -57,38 +79,35 @@ function TestScenario({ id }: { id: PublicationId }) { invariant(isPostPublication(publication), 'Publication is not a post'); + const disabled = + approving || collecting || publication.operations.canCollect === TriStateValue.No; + return (
- -
- -

As Lens Profile you can perform:

- -   - -
-
-
- -

As wallet you can perform:

- -
-
+ + + +
+ +

As Lens Profile you can perform:

+ +   + +
+
+
+ +

As wallet you can perform:

+ +
+
+
); } @@ -117,7 +136,7 @@ export function UseOpenAction() { metadata: uri, actions: [ { - type: OpenActionType.SIMPLE_COLLECT, + type: OpenActionType.SHARED_REVENUE_COLLECT, followerOnly: false, collectLimit: 5, }, diff --git a/packages/api-bindings/src/apollo/cache/transactions.ts b/packages/api-bindings/src/apollo/cache/transactions.ts index c38650d3a..4e74cc7a5 100644 --- a/packages/api-bindings/src/apollo/cache/transactions.ts +++ b/packages/api-bindings/src/apollo/cache/transactions.ts @@ -13,11 +13,11 @@ import { UnlinkHandleRequest, } from '@lens-protocol/domain/use-cases/profile'; import { - OpenActionRequest, - AllOpenActionType, CreateQuoteRequest, CreateMirrorRequest, CreateCommentRequest, + CollectRequest, + isCollectRequest, } from '@lens-protocol/domain/use-cases/publications'; import { AnyTransactionRequest } from '@lens-protocol/domain/use-cases/transactions'; @@ -68,14 +68,10 @@ export function useRecentTransactionsVar() { function isCollectTransaction( transaction: TransactionState, -): transaction is TransactionState { +): transaction is TransactionState { return ( transaction.request.kind === TransactionKind.ACT_ON_PUBLICATION && - [ - AllOpenActionType.LEGACY_COLLECT, - AllOpenActionType.SIMPLE_COLLECT, - AllOpenActionType.MULTIRECIPIENT_COLLECT, - ].includes(transaction.request.type) + isCollectRequest(transaction.request) ); } diff --git a/packages/api-bindings/src/lens/__helpers__/fragments.ts b/packages/api-bindings/src/lens/__helpers__/fragments.ts index c9b0dca68..b2319bc86 100644 --- a/packages/api-bindings/src/lens/__helpers__/fragments.ts +++ b/packages/api-bindings/src/lens/__helpers__/fragments.ts @@ -490,6 +490,15 @@ export function mockSimpleCollectOpenActionSettingsFragment( }); } +export function mockProtocolSharedRevenueCollectOpenActionSettingsFragment( + overrides?: Partial, +) { + return mock({ + ...overrides, + __typename: 'ProtocolSharedRevenueCollectOpenActionSettings', + }); +} + export function mockMultirecipientFeeCollectOpenActionSettingsFragment( overrides?: Partial, ) { diff --git a/packages/api-bindings/src/lens/graphql/fragments.graphql b/packages/api-bindings/src/lens/graphql/fragments.graphql index 3dade1cc7..35ac0edfe 100644 --- a/packages/api-bindings/src/lens/graphql/fragments.graphql +++ b/packages/api-bindings/src/lens/graphql/fragments.graphql @@ -469,6 +469,33 @@ fragment SimpleCollectOpenActionSettings on SimpleCollectOpenActionSettings { endsAt } +fragment ProtocolSharedRevenueCollectOpenActionSettings on ProtocolSharedRevenueCollectOpenActionSettings { + __typename + type + contract { + ...NetworkAddress + } + collectNft + amount { + ...Amount + } + mintFee { + ...Amount + } + distribution { + creatorClientSplit + creatorSplit + executorClientSplit + protocolSplit + } + recipient + referralFee + followerOnly + collectLimit + endsAt + creatorClient +} + # purposefully renamed Recipient to have a better narrative fragment Recipient on RecipientDataOutput { # __typename not include to hide RecipientDataOutput not needed anyway here @@ -720,6 +747,9 @@ fragment PublicationOperations on PublicationOperations { fragment PublicationMetadataLitEncryption on PublicationMetadataLitEncryption { __typename encryptionKey + accessControlContract { + ...NetworkAddress + } accessCondition { ...RootCondition } @@ -1639,6 +1669,9 @@ fragment Post on Post { ... on MultirecipientFeeCollectOpenActionSettings { ...MultirecipientFeeCollectOpenActionSettings } + ... on ProtocolSharedRevenueCollectOpenActionSettings { + ...ProtocolSharedRevenueCollectOpenActionSettings + } ... on SimpleCollectOpenActionSettings { ...SimpleCollectOpenActionSettings } @@ -1778,6 +1811,9 @@ fragment CommentFields on Comment { ... on MultirecipientFeeCollectOpenActionSettings { ...MultirecipientFeeCollectOpenActionSettings } + ... on ProtocolSharedRevenueCollectOpenActionSettings { + ...ProtocolSharedRevenueCollectOpenActionSettings + } ... on SimpleCollectOpenActionSettings { ...SimpleCollectOpenActionSettings } @@ -1961,6 +1997,9 @@ fragment QuoteFields on Quote { ... on MultirecipientFeeCollectOpenActionSettings { ...MultirecipientFeeCollectOpenActionSettings } + ... on ProtocolSharedRevenueCollectOpenActionSettings { + ...ProtocolSharedRevenueCollectOpenActionSettings + } ... on SimpleCollectOpenActionSettings { ...SimpleCollectOpenActionSettings } diff --git a/packages/api-bindings/src/lens/graphql/generated.ts b/packages/api-bindings/src/lens/graphql/generated.ts index 4503e3b6f..d4dda3dbe 100644 --- a/packages/api-bindings/src/lens/graphql/generated.ts +++ b/packages/api-bindings/src/lens/graphql/generated.ts @@ -73,6 +73,7 @@ export type Scalars = { export type ActOnOpenActionInput = { multirecipientCollectOpenAction?: InputMaybe; + protocolSharedRevenueCollectOpenAction?: InputMaybe; simpleCollectOpenAction?: InputMaybe; unknownOpenAction?: InputMaybe; }; @@ -191,6 +192,7 @@ export enum ClaimableTokenType { export type CollectActionModuleInput = { multirecipientCollectOpenAction?: InputMaybe; + protocolSharedRevenueCollectOpenAction?: InputMaybe; simpleCollectOpenAction?: InputMaybe; }; @@ -206,6 +208,7 @@ export enum CollectOpenActionModuleType { LegacySimpleCollectModule = 'LegacySimpleCollectModule', LegacyTimedFeeCollectModule = 'LegacyTimedFeeCollectModule', MultirecipientFeeCollectOpenActionModule = 'MultirecipientFeeCollectOpenActionModule', + ProtocolSharedRevenueCollectOpenActionModule = 'ProtocolSharedRevenueCollectOpenActionModule', SimpleCollectOpenActionModule = 'SimpleCollectOpenActionModule', UnknownOpenActionModule = 'UnknownOpenActionModule', } @@ -808,6 +811,13 @@ export enum MetadataAttributeType { String = 'STRING', } +export type ModDisputeReportRequest = { + reason: Scalars['String']; + reportedProfileId?: InputMaybe; + reportedPublicationId?: InputMaybe; + reporter: Scalars['ProfileId']; +}; + export type ModExplorePublicationRequest = { cursor?: InputMaybe; limit?: InputMaybe; @@ -828,6 +838,13 @@ export type ModExplorePublicationsWhere = { since?: InputMaybe; }; +export type ModReportsRequest = { + cursor?: InputMaybe; + forProfile?: InputMaybe; + forPublication?: InputMaybe; + limit?: InputMaybe; +}; + export type ModuleCurrencyApproval = { followModule?: InputMaybe; openActionModule?: InputMaybe; @@ -1156,6 +1173,7 @@ export enum OpenActionModuleType { LegacySimpleCollectModule = 'LegacySimpleCollectModule', LegacyTimedFeeCollectModule = 'LegacyTimedFeeCollectModule', MultirecipientFeeCollectOpenActionModule = 'MultirecipientFeeCollectOpenActionModule', + ProtocolSharedRevenueCollectOpenActionModule = 'ProtocolSharedRevenueCollectOpenActionModule', SimpleCollectOpenActionModule = 'SimpleCollectOpenActionModule', UnknownOpenActionModule = 'UnknownOpenActionModule', } @@ -1437,6 +1455,22 @@ export type ProfilesRequestWhere = { whoQuotedPublication?: InputMaybe; }; +export type ProtocolSharedRevenueActRedeemInput = { + /** The frontend app address that the collector uses */ + executorClient?: InputMaybe; +}; + +export type ProtocolSharedRevenueCollectModuleInput = { + amount?: InputMaybe; + collectLimit?: InputMaybe; + /** The wallet of a client app to share revenues alongside the recipient and the protocol. Optional. */ + creatorClient?: InputMaybe; + endsAt?: InputMaybe; + followerOnly: Scalars['Boolean']; + recipient?: InputMaybe; + referralFee?: InputMaybe; +}; + export type PublicationBookmarkRequest = { on: Scalars['PublicationId']; }; @@ -1575,6 +1609,7 @@ export enum PublicationReportingIllegalSubreason { AnimalAbuse = 'ANIMAL_ABUSE', DirectThreat = 'DIRECT_THREAT', HumanAbuse = 'HUMAN_ABUSE', + IntEllEctualProperty = 'INTEllECTUAL_PROPERTY', ThreatIndividual = 'THREAT_INDIVIDUAL', Violence = 'VIOLENCE', } @@ -2527,6 +2562,27 @@ export type SimpleCollectOpenActionSettings = { amount: Amount; }; +export type ProtocolSharedRevenueCollectOpenActionSettings = { + __typename: 'ProtocolSharedRevenueCollectOpenActionSettings'; + type: OpenActionModuleType; + collectNft: EvmAddress | null; + recipient: EvmAddress; + referralFee: number; + followerOnly: boolean; + collectLimit: string | null; + endsAt: string | null; + creatorClient: EvmAddress | null; + contract: NetworkAddress; + amount: Amount; + mintFee: Amount; + distribution: { + creatorClientSplit: number; + creatorSplit: number; + executorClientSplit: number; + protocolSplit: number; + }; +}; + export type Recipient = { recipient: EvmAddress; split: number }; export type MultirecipientFeeCollectOpenActionSettings = { @@ -2715,6 +2771,7 @@ export type PublicationMetadataLitEncryption = { __typename: 'PublicationMetadataLitEncryption'; encryptionKey: ContentEncryptionKey; encryptedPaths: Array; + accessControlContract: NetworkAddress; accessCondition: RootCondition; }; @@ -3218,6 +3275,7 @@ export type Post = { | LegacySimpleCollectModuleSettings | LegacyTimedFeeCollectModuleSettings | MultirecipientFeeCollectOpenActionSettings + | ProtocolSharedRevenueCollectOpenActionSettings | SimpleCollectOpenActionSettings | UnknownOpenActionModuleSettings >; @@ -3272,6 +3330,7 @@ export type CommentFields = { | LegacySimpleCollectModuleSettings | LegacyTimedFeeCollectModuleSettings | MultirecipientFeeCollectOpenActionSettings + | ProtocolSharedRevenueCollectOpenActionSettings | SimpleCollectOpenActionSettings | UnknownOpenActionModuleSettings >; @@ -3345,6 +3404,7 @@ export type QuoteFields = { | LegacySimpleCollectModuleSettings | LegacyTimedFeeCollectModuleSettings | MultirecipientFeeCollectOpenActionSettings + | ProtocolSharedRevenueCollectOpenActionSettings | SimpleCollectOpenActionSettings | UnknownOpenActionModuleSettings >; @@ -10443,6 +10503,16 @@ export const FragmentPublicationMetadataLitEncryption = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -12401,6 +12471,16 @@ export const FragmentAudioMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -13592,6 +13672,16 @@ export const FragmentVideoMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -14782,6 +14872,16 @@ export const FragmentImageMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -15959,6 +16059,16 @@ export const FragmentArticleMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -17167,6 +17277,16 @@ export const FragmentEventMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -18358,6 +18478,16 @@ export const FragmentLinkMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -19535,6 +19665,16 @@ export const FragmentEmbedMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -20722,6 +20862,16 @@ export const FragmentCheckingInMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -21669,6 +21819,16 @@ export const FragmentTextOnlyMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -22736,6 +22896,16 @@ export const FragmentThreeDMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -23928,6 +24098,16 @@ export const FragmentStoryMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -25107,6 +25287,16 @@ export const FragmentTransactionMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -26284,6 +26474,16 @@ export const FragmentMintMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -27463,6 +27663,16 @@ export const FragmentSpaceMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -28645,6 +28855,16 @@ export const FragmentLiveStreamMetadataV3 = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -30886,6 +31106,187 @@ export const FragmentMultirecipientFeeCollectOpenActionSettings = /*#__PURE__*/ }, ], } as unknown as DocumentNode; +export const FragmentProtocolSharedRevenueCollectOpenActionSettings = /*#__PURE__*/ { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'Erc20' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'Erc20' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'symbol' } }, + { kind: 'Field', name: { kind: 'Name', value: 'decimals' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FiatAmount' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FiatAmount' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'asset' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Fiat' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'Fiat' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'Fiat' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'symbol' } }, + { kind: 'Field', name: { kind: 'Name', value: 'decimals' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'Amount' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'Amount' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'asset' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Erc20' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'rate' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'request' }, + value: { + kind: 'ObjectValue', + fields: [ + { + kind: 'ObjectField', + name: { kind: 'Name', value: 'for' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'fxRateFor' } }, + }, + ], + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'FiatAmount' } }], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'NetworkAddress' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'NetworkAddress' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'address' } }, + { kind: 'Field', name: { kind: 'Name', value: 'chainId' } }, + ], + }, + }, + ], +} as unknown as DocumentNode; export const FragmentSimpleCollectOpenActionSettings = /*#__PURE__*/ { kind: 'Document', definitions: [ @@ -31909,6 +32310,25 @@ export const FragmentPost = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -33471,6 +33891,67 @@ export const FragmentPost = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -34098,6 +34579,16 @@ export const FragmentPost = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -37219,6 +37710,25 @@ export const FragmentQuoteFields = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -38789,6 +39299,67 @@ export const FragmentQuoteFields = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -39416,6 +39987,16 @@ export const FragmentQuoteFields = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -42565,6 +43146,25 @@ export const FragmentCommentFields = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -44162,6 +44762,67 @@ export const FragmentCommentFields = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -44789,6 +45450,16 @@ export const FragmentCommentFields = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -47951,6 +48622,25 @@ export const FragmentCommentFields = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -48546,6 +49236,25 @@ export const FragmentCommentFields = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -50208,6 +50917,67 @@ export const FragmentQuote = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -50835,6 +51605,16 @@ export const FragmentQuote = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -53997,6 +54777,25 @@ export const FragmentQuote = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -54620,6 +55419,25 @@ export const FragmentQuote = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -55250,6 +56068,25 @@ export const FragmentQuote = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -56878,6 +57715,67 @@ export const FragmentExplorePublication = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -57505,6 +58403,16 @@ export const FragmentExplorePublication = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -60667,6 +61575,25 @@ export const FragmentExplorePublication = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -61290,6 +62217,25 @@ export const FragmentExplorePublication = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -61920,6 +62866,25 @@ export const FragmentExplorePublication = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -63652,6 +64617,67 @@ export const FragmentComment = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -64279,6 +65305,16 @@ export const FragmentComment = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -67441,6 +68477,25 @@ export const FragmentComment = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -68064,6 +69119,25 @@ export const FragmentComment = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -68694,6 +69768,25 @@ export const FragmentComment = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -70372,6 +71465,67 @@ export const FragmentMirror = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -70999,6 +72153,16 @@ export const FragmentMirror = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -74161,6 +75325,25 @@ export const FragmentMirror = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -74784,6 +75967,25 @@ export const FragmentMirror = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -75484,6 +76686,25 @@ export const FragmentMirror = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -78216,6 +79437,67 @@ export const FragmentFeedItem = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -78843,6 +80125,16 @@ export const FragmentFeedItem = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -82005,6 +83297,25 @@ export const FragmentFeedItem = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -82628,6 +83939,25 @@ export const FragmentFeedItem = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -83404,6 +84734,25 @@ export const FragmentFeedItem = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -85092,6 +86441,67 @@ export const FragmentFeedHighlight = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -85719,6 +87129,16 @@ export const FragmentFeedHighlight = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -88881,6 +90301,25 @@ export const FragmentFeedHighlight = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -89504,6 +90943,25 @@ export const FragmentFeedHighlight = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -90134,6 +91592,25 @@ export const FragmentFeedHighlight = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -93856,6 +95333,67 @@ export const FragmentOpenActionPaidAction = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -94483,6 +96021,16 @@ export const FragmentOpenActionPaidAction = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -97645,6 +99193,25 @@ export const FragmentOpenActionPaidAction = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -98268,6 +99835,25 @@ export const FragmentOpenActionPaidAction = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -98968,6 +100554,25 @@ export const FragmentOpenActionPaidAction = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -100690,6 +102295,67 @@ export const FragmentAnyPublicationInternal = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -101317,6 +102983,16 @@ export const FragmentAnyPublicationInternal = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -104479,6 +106155,25 @@ export const FragmentAnyPublicationInternal = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -105102,6 +106797,25 @@ export const FragmentAnyPublicationInternal = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -105878,6 +107592,25 @@ export const FragmentAnyPublicationInternal = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -109953,6 +111686,67 @@ export const FragmentReactionNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -110580,6 +112374,16 @@ export const FragmentReactionNotification = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -113742,6 +115546,25 @@ export const FragmentReactionNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -114365,6 +116188,25 @@ export const FragmentReactionNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -115065,6 +116907,25 @@ export const FragmentReactionNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -116789,6 +118650,67 @@ export const FragmentCommentNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -117416,6 +119338,16 @@ export const FragmentCommentNotification = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -120578,6 +122510,25 @@ export const FragmentCommentNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -121201,6 +123152,25 @@ export const FragmentCommentNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -121901,6 +123871,25 @@ export const FragmentCommentNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -124538,6 +126527,67 @@ export const FragmentMirrorNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -125165,6 +127215,16 @@ export const FragmentMirrorNotification = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -128327,6 +130387,25 @@ export const FragmentMirrorNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -128950,6 +131029,25 @@ export const FragmentMirrorNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -129650,6 +131748,25 @@ export const FragmentMirrorNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -131353,6 +133470,67 @@ export const FragmentQuoteNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -131980,6 +134158,16 @@ export const FragmentQuoteNotification = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -135142,6 +137330,25 @@ export const FragmentQuoteNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -135765,6 +137972,25 @@ export const FragmentQuoteNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -136395,6 +138621,25 @@ export const FragmentQuoteNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -139306,6 +141551,67 @@ export const FragmentActedNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -140007,6 +142313,16 @@ export const FragmentActedNotification = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -143169,6 +145485,25 @@ export const FragmentActedNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -143792,6 +146127,25 @@ export const FragmentActedNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -144568,6 +146922,25 @@ export const FragmentActedNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -147284,6 +149657,67 @@ export const FragmentMentionNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -147911,6 +150345,16 @@ export const FragmentMentionNotification = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -151073,6 +153517,25 @@ export const FragmentMentionNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -151696,6 +154159,25 @@ export const FragmentMentionNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -152396,6 +154878,25 @@ export const FragmentMentionNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -154159,6 +156660,67 @@ export const FragmentNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -154860,6 +157422,16 @@ export const FragmentNotification = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -158022,6 +160594,25 @@ export const FragmentNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -158645,6 +161236,25 @@ export const FragmentNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -159421,6 +162031,25 @@ export const FragmentNotification = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -164750,6 +167379,67 @@ export const FragmentPublicationRevenue = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -165377,6 +168067,16 @@ export const FragmentPublicationRevenue = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -168539,6 +171239,25 @@ export const FragmentPublicationRevenue = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -169162,6 +171881,25 @@ export const FragmentPublicationRevenue = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -169938,6 +172676,25 @@ export const FragmentPublicationRevenue = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -172804,6 +175561,67 @@ export const ExplorePublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -173431,6 +176249,16 @@ export const ExplorePublicationsDocument = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -176593,6 +179421,25 @@ export const ExplorePublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -177216,6 +180063,25 @@ export const ExplorePublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -177846,6 +180712,25 @@ export const ExplorePublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -180966,6 +183851,67 @@ export const FeedDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -181593,6 +184539,16 @@ export const FeedDocument = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -184755,6 +187711,25 @@ export const FeedDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -185378,6 +188353,25 @@ export const FeedDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -186154,6 +189148,25 @@ export const FeedDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -188038,6 +191051,67 @@ export const FeedHighlightsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -188665,6 +191739,16 @@ export const FeedHighlightsDocument = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -191827,6 +194911,25 @@ export const FeedHighlightsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -192450,6 +195553,25 @@ export const FeedHighlightsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -193080,6 +196202,25 @@ export const FeedHighlightsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -195099,6 +198240,67 @@ export const LatestPaidActionsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -195726,6 +198928,16 @@ export const LatestPaidActionsDocument = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -198888,6 +202100,25 @@ export const LatestPaidActionsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -199511,6 +202742,25 @@ export const LatestPaidActionsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -200211,6 +203461,25 @@ export const LatestPaidActionsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -204152,6 +207421,67 @@ export const NotificationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -204853,6 +208183,16 @@ export const NotificationsDocument = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -208015,6 +211355,25 @@ export const NotificationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -208638,6 +211997,25 @@ export const NotificationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -209414,6 +212792,25 @@ export const NotificationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -224469,6 +227866,67 @@ export const PublicationDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -225096,6 +228554,16 @@ export const PublicationDocument = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -228258,6 +231726,25 @@ export const PublicationDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -228881,6 +232368,25 @@ export const PublicationDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -229657,6 +233163,25 @@ export const PublicationDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -231567,6 +235092,67 @@ export const PublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -232194,6 +235780,16 @@ export const PublicationsDocument = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -235356,6 +238952,25 @@ export const PublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -235979,6 +239594,25 @@ export const PublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -236755,6 +240389,25 @@ export const PublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -238892,6 +242545,67 @@ export const PublicationBookmarksDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -239519,6 +243233,16 @@ export const PublicationBookmarksDocument = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -242681,6 +246405,25 @@ export const PublicationBookmarksDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -243304,6 +247047,25 @@ export const PublicationBookmarksDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -244080,6 +247842,25 @@ export const PublicationBookmarksDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -250881,6 +254662,67 @@ export const RevenueFromPublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -251508,6 +255350,16 @@ export const RevenueFromPublicationsDocument = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -254670,6 +258522,25 @@ export const RevenueFromPublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -255293,6 +259164,25 @@ export const RevenueFromPublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -256069,6 +259959,25 @@ export const RevenueFromPublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -257977,6 +261886,67 @@ export const RevenueFromPublicationDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -258604,6 +262574,16 @@ export const RevenueFromPublicationDocument = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -261766,6 +265746,25 @@ export const RevenueFromPublicationDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -262389,6 +266388,25 @@ export const RevenueFromPublicationDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -263165,6 +267183,25 @@ export const RevenueFromPublicationDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -265409,6 +269446,67 @@ export const SearchPublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'Recipient' }, @@ -266036,6 +270134,16 @@ export const SearchPublicationsDocument = /*#__PURE__*/ { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -269198,6 +273306,25 @@ export const SearchPublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -269821,6 +273948,25 @@ export const SearchPublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -270521,6 +274667,25 @@ export const SearchPublicationsDocument = /*#__PURE__*/ { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -276553,6 +280718,29 @@ export type DidReactOnPublicationResultFieldPolicy = { publicationId?: FieldPolicy | FieldReadFunction; result?: FieldPolicy | FieldReadFunction; }; +export type DisputedReportKeySpecifier = ( + | 'createdAt' + | 'disputeReason' + | 'disputer' + | 'reportAdditionalInfo' + | 'reportReason' + | 'reportSubreason' + | 'reportedProfile' + | 'reportedPublication' + | 'reporter' + | DisputedReportKeySpecifier +)[]; +export type DisputedReportFieldPolicy = { + createdAt?: FieldPolicy | FieldReadFunction; + disputeReason?: FieldPolicy | FieldReadFunction; + disputer?: FieldPolicy | FieldReadFunction; + reportAdditionalInfo?: FieldPolicy | FieldReadFunction; + reportReason?: FieldPolicy | FieldReadFunction; + reportSubreason?: FieldPolicy | FieldReadFunction; + reportedProfile?: FieldPolicy | FieldReadFunction; + reportedPublication?: FieldPolicy | FieldReadFunction; + reporter?: FieldPolicy | FieldReadFunction; +}; export type EIP712TypedDataDomainKeySpecifier = ( | 'chainId' | 'name' @@ -277423,6 +281611,25 @@ export type ModFollowerResultFieldPolicy = { follower?: FieldPolicy | FieldReadFunction; following?: FieldPolicy | FieldReadFunction; }; +export type ModReportKeySpecifier = ( + | 'additionalInfo' + | 'createdAt' + | 'reason' + | 'reportedProfile' + | 'reportedPublication' + | 'reporter' + | 'subreason' + | ModReportKeySpecifier +)[]; +export type ModReportFieldPolicy = { + additionalInfo?: FieldPolicy | FieldReadFunction; + createdAt?: FieldPolicy | FieldReadFunction; + reason?: FieldPolicy | FieldReadFunction; + reportedProfile?: FieldPolicy | FieldReadFunction; + reportedPublication?: FieldPolicy | FieldReadFunction; + reporter?: FieldPolicy | FieldReadFunction; + subreason?: FieldPolicy | FieldReadFunction; +}; export type ModuleInfoKeySpecifier = ('name' | 'type' | ModuleInfoKeySpecifier)[]; export type ModuleInfoFieldPolicy = { name?: FieldPolicy | FieldReadFunction; @@ -277659,6 +281866,7 @@ export type MutationKeySpecifier = ( | 'linkHandleToProfile' | 'mirrorOnMomoka' | 'mirrorOnchain' + | 'modDisputeReport' | 'nftOwnershipChallenge' | 'peerToPeerRecommend' | 'peerToPeerUnrecommend' @@ -277749,6 +281957,7 @@ export type MutationFieldPolicy = { linkHandleToProfile?: FieldPolicy | FieldReadFunction; mirrorOnMomoka?: FieldPolicy | FieldReadFunction; mirrorOnchain?: FieldPolicy | FieldReadFunction; + modDisputeReport?: FieldPolicy | FieldReadFunction; nftOwnershipChallenge?: FieldPolicy | FieldReadFunction; peerToPeerRecommend?: FieldPolicy | FieldReadFunction; peerToPeerUnrecommend?: FieldPolicy | FieldReadFunction; @@ -277954,6 +282163,15 @@ export type PaginatedCurrenciesResultFieldPolicy = { items?: FieldPolicy | FieldReadFunction; pageInfo?: FieldPolicy | FieldReadFunction; }; +export type PaginatedDisputedReportsKeySpecifier = ( + | 'items' + | 'pageInfo' + | PaginatedDisputedReportsKeySpecifier +)[]; +export type PaginatedDisputedReportsFieldPolicy = { + items?: FieldPolicy | FieldReadFunction; + pageInfo?: FieldPolicy | FieldReadFunction; +}; export type PaginatedExplorePublicationResultKeySpecifier = ( | 'items' | 'pageInfo' @@ -278008,6 +282226,15 @@ export type PaginatedModFollowersResultFieldPolicy = { items?: FieldPolicy | FieldReadFunction; pageInfo?: FieldPolicy | FieldReadFunction; }; +export type PaginatedModReportsKeySpecifier = ( + | 'items' + | 'pageInfo' + | PaginatedModReportsKeySpecifier +)[]; +export type PaginatedModReportsFieldPolicy = { + items?: FieldPolicy | FieldReadFunction; + pageInfo?: FieldPolicy | FieldReadFunction; +}; export type PaginatedNftCollectionsResultKeySpecifier = ( | 'items' | 'pageInfo' @@ -278486,6 +282713,48 @@ export type ProfilesManagedResultFieldPolicy = { address?: FieldPolicy | FieldReadFunction; isLensManager?: FieldPolicy | FieldReadFunction; }; +export type ProtocolSharedRevenueCollectOpenActionSettingsKeySpecifier = ( + | 'amount' + | 'collectLimit' + | 'collectNft' + | 'contract' + | 'creatorClient' + | 'distribution' + | 'endsAt' + | 'followerOnly' + | 'mintFee' + | 'recipient' + | 'referralFee' + | 'type' + | ProtocolSharedRevenueCollectOpenActionSettingsKeySpecifier +)[]; +export type ProtocolSharedRevenueCollectOpenActionSettingsFieldPolicy = { + amount?: FieldPolicy | FieldReadFunction; + collectLimit?: FieldPolicy | FieldReadFunction; + collectNft?: FieldPolicy | FieldReadFunction; + contract?: FieldPolicy | FieldReadFunction; + creatorClient?: FieldPolicy | FieldReadFunction; + distribution?: FieldPolicy | FieldReadFunction; + endsAt?: FieldPolicy | FieldReadFunction; + followerOnly?: FieldPolicy | FieldReadFunction; + mintFee?: FieldPolicy | FieldReadFunction; + recipient?: FieldPolicy | FieldReadFunction; + referralFee?: FieldPolicy | FieldReadFunction; + type?: FieldPolicy | FieldReadFunction; +}; +export type ProtocolSharedRevenueDistributionKeySpecifier = ( + | 'creatorClientSplit' + | 'creatorSplit' + | 'executorClientSplit' + | 'protocolSplit' + | ProtocolSharedRevenueDistributionKeySpecifier +)[]; +export type ProtocolSharedRevenueDistributionFieldPolicy = { + creatorClientSplit?: FieldPolicy | FieldReadFunction; + creatorSplit?: FieldPolicy | FieldReadFunction; + executorClientSplit?: FieldPolicy | FieldReadFunction; + protocolSplit?: FieldPolicy | FieldReadFunction; +}; export type PublicationMarketplaceMetadataAttributeKeySpecifier = ( | 'displayType' | 'traitType' @@ -278674,8 +282943,10 @@ export type QueryKeySpecifier = ( | 'lensAPIOwnedEOAs' | 'lensProtocolVersion' | 'lensTransactionStatus' + | 'modDisputedReports' | 'modExplorePublications' | 'modFollowers' + | 'modLatestReports' | 'moduleMetadata' | 'momokaSubmitters' | 'momokaSummary' @@ -278766,8 +283037,10 @@ export type QueryFieldPolicy = { lensAPIOwnedEOAs?: FieldPolicy | FieldReadFunction; lensProtocolVersion?: FieldPolicy | FieldReadFunction; lensTransactionStatus?: FieldPolicy | FieldReadFunction; + modDisputedReports?: FieldPolicy | FieldReadFunction; modExplorePublications?: FieldPolicy | FieldReadFunction; modFollowers?: FieldPolicy | FieldReadFunction; + modLatestReports?: FieldPolicy | FieldReadFunction; moduleMetadata?: FieldPolicy | FieldReadFunction; momokaSubmitters?: FieldPolicy | FieldReadFunction; momokaSummary?: FieldPolicy | FieldReadFunction; @@ -280077,6 +284350,10 @@ export type StrictTypedTypePolicies = { | (() => undefined | DidReactOnPublicationResultKeySpecifier); fields?: DidReactOnPublicationResultFieldPolicy; }; + DisputedReport?: Omit & { + keyFields?: false | DisputedReportKeySpecifier | (() => undefined | DisputedReportKeySpecifier); + fields?: DisputedReportFieldPolicy; + }; EIP712TypedDataDomain?: Omit & { keyFields?: | false @@ -280473,6 +284750,10 @@ export type StrictTypedTypePolicies = { | (() => undefined | ModFollowerResultKeySpecifier); fields?: ModFollowerResultFieldPolicy; }; + ModReport?: Omit & { + keyFields?: false | ModReportKeySpecifier | (() => undefined | ModReportKeySpecifier); + fields?: ModReportFieldPolicy; + }; ModuleInfo?: Omit & { keyFields?: false | ModuleInfoKeySpecifier | (() => undefined | ModuleInfoKeySpecifier); fields?: ModuleInfoFieldPolicy; @@ -280654,6 +284935,13 @@ export type StrictTypedTypePolicies = { | (() => undefined | PaginatedCurrenciesResultKeySpecifier); fields?: PaginatedCurrenciesResultFieldPolicy; }; + PaginatedDisputedReports?: Omit & { + keyFields?: + | false + | PaginatedDisputedReportsKeySpecifier + | (() => undefined | PaginatedDisputedReportsKeySpecifier); + fields?: PaginatedDisputedReportsFieldPolicy; + }; PaginatedExplorePublicationResult?: Omit & { keyFields?: | false @@ -280696,6 +284984,13 @@ export type StrictTypedTypePolicies = { | (() => undefined | PaginatedModFollowersResultKeySpecifier); fields?: PaginatedModFollowersResultFieldPolicy; }; + PaginatedModReports?: Omit & { + keyFields?: + | false + | PaginatedModReportsKeySpecifier + | (() => undefined | PaginatedModReportsKeySpecifier); + fields?: PaginatedModReportsFieldPolicy; + }; PaginatedNftCollectionsResult?: Omit & { keyFields?: | false @@ -280930,6 +285225,20 @@ export type StrictTypedTypePolicies = { | (() => undefined | ProfilesManagedResultKeySpecifier); fields?: ProfilesManagedResultFieldPolicy; }; + ProtocolSharedRevenueCollectOpenActionSettings?: Omit & { + keyFields?: + | false + | ProtocolSharedRevenueCollectOpenActionSettingsKeySpecifier + | (() => undefined | ProtocolSharedRevenueCollectOpenActionSettingsKeySpecifier); + fields?: ProtocolSharedRevenueCollectOpenActionSettingsFieldPolicy; + }; + ProtocolSharedRevenueDistribution?: Omit & { + keyFields?: + | false + | ProtocolSharedRevenueDistributionKeySpecifier + | (() => undefined | ProtocolSharedRevenueDistributionKeySpecifier); + fields?: ProtocolSharedRevenueDistributionFieldPolicy; + }; PublicationMarketplaceMetadataAttribute?: Omit & { keyFields?: | false @@ -281289,6 +285598,7 @@ const result: PossibleTypesResultData = { 'LegacySimpleCollectModuleSettings', 'LegacyTimedFeeCollectModuleSettings', 'MultirecipientFeeCollectOpenActionSettings', + 'ProtocolSharedRevenueCollectOpenActionSettings', 'SimpleCollectOpenActionSettings', 'UnknownOpenActionModuleSettings', ], diff --git a/packages/api-bindings/src/lens/utils/CollectModuleSettings.ts b/packages/api-bindings/src/lens/utils/CollectModuleSettings.ts index 98580acb8..0981078ec 100644 --- a/packages/api-bindings/src/lens/utils/CollectModuleSettings.ts +++ b/packages/api-bindings/src/lens/utils/CollectModuleSettings.ts @@ -4,18 +4,21 @@ import * as gql from '../graphql/generated'; import { OpenActionModuleSettings, PrimaryPublication } from '../publication'; import { erc20Amount, fiatAmount } from './amount'; -export type CollectModuleSettings = +export type LegacyCollectModuleSettings = | gql.LegacyAaveFeeCollectModuleSettings | gql.LegacyErc4626FeeCollectModuleSettings | gql.LegacyFeeCollectModuleSettings + | gql.LegacyFreeCollectModuleSettings | gql.LegacyLimitedFeeCollectModuleSettings | gql.LegacyLimitedTimedFeeCollectModuleSettings | gql.LegacyMultirecipientFeeCollectModuleSettings - | gql.LegacyTimedFeeCollectModuleSettings | gql.LegacySimpleCollectModuleSettings - | gql.LegacyFreeCollectModuleSettings - | gql.MultirecipientFeeCollectOpenActionSettings - | gql.SimpleCollectOpenActionSettings; + | gql.LegacyTimedFeeCollectModuleSettings; + +export type CollectModuleSettings = Exclude< + OpenActionModuleSettings, + gql.UnknownOpenActionModuleSettings | gql.LegacyRevertCollectModuleSettings +>; const ModulesWithKnownCollectCapability: Record = { LegacyAaveFeeCollectModuleSettings: true, @@ -29,6 +32,7 @@ const ModulesWithKnownCollectCapability: Record, +): CollectFee | MultirecipientCollectFee | null { + const amount = erc20Amount(module.amount); - if (erc20.isZero()) return undefined; + if (amount.isZero()) return null; const shared = { - amount: erc20, + amount, rate: module.amount.rate ? fiatAmount(module.amount.rate) : undefined, referralFee: module.referralFee, }; @@ -130,6 +272,33 @@ function buildCollectFee( }; } +function buildMintFee(module: gql.ProtocolSharedRevenueCollectOpenActionSettings): MintFee | null { + const amount = erc20Amount(module.mintFee); + + if (amount.isZero()) return null; + + return { + amount, + creatorClient: module.creatorClient, + distribution: { + creatorClientSplit: module.distribution.creatorClientSplit / 100, + creatorSplit: module.distribution.creatorSplit / 100, + executorClientSplit: module.distribution.executorClientSplit / 100, + protocolSplit: module.distribution.protocolSplit / 100, + }, + }; +} + +function resolveEndsAt(datetime: string | null): string | null { + if (!datetime) return null; + + const date = new Date(datetime); + + if (date.getTime() === 0) return null; + + return datetime; +} + /** * Resolve API's {@link OpenActionModuleSettings} to more user friendly {@link CollectPolicy}. * @@ -141,7 +310,6 @@ export function resolveCollectPolicy(collectable: PrimaryPublication): CollectPo if (!module) return null; - const fee = buildCollectFee(module); const shared = { followerOnly: module.followerOnly, contract: module.contract, @@ -150,55 +318,102 @@ export function resolveCollectPolicy(collectable: PrimaryPublication): CollectPo switch (module.__typename) { case 'LegacyAaveFeeCollectModuleSettings': case 'LegacyERC4626FeeCollectModuleSettings': { + const collectFee = buildCollectFee(module); + return { ...shared, + collectFee, collectNft: null, collectLimit: module.collectLimit, - endsAt: module.endsAt, - fee, + endsAt: resolveEndsAt(module.endsAt), + fee: collectFee, + mintFee: null, }; } + case 'LegacyLimitedFeeCollectModuleSettings': case 'LegacyLimitedTimedFeeCollectModuleSettings': { + const collectFee = buildCollectFee(module); + return { ...shared, + collectFee, collectNft: module.collectNft, collectLimit: module.collectLimit, endsAt: null, - fee, + fee: collectFee, + mintFee: null, }; } + case 'LegacyFeeCollectModuleSettings': case 'LegacyTimedFeeCollectModuleSettings': { + const collectFee = buildCollectFee(module); + return { ...shared, + collectFee, collectNft: module.collectNft, collectLimit: null, endsAt: null, - fee, + fee: collectFee, + mintFee: null, }; } + case 'LegacyFreeCollectModuleSettings': return { ...shared, collectNft: module.collectNft, collectLimit: null, + collectFee: null, endsAt: null, + fee: null, + mintFee: null, }; + case 'LegacyMultirecipientFeeCollectModuleSettings': - case 'MultirecipientFeeCollectOpenActionSettings': + case 'MultirecipientFeeCollectOpenActionSettings': { + const collectFee = buildCollectFee(module); + + return { + ...shared, + collectFee, + collectNft: module.collectNft, + collectLimit: module.collectLimit, + endsAt: resolveEndsAt(module.endsAt), + fee: collectFee, + mintFee: null, + }; + } + case 'LegacySimpleCollectModuleSettings': case 'SimpleCollectOpenActionSettings': { + const collectFee = buildCollectFee(module); + return { ...shared, + collectFee, collectNft: module.collectNft, collectLimit: module.collectLimit, - endsAt: module.endsAt, - fee, + endsAt: resolveEndsAt(module.endsAt), + fee: collectFee, + mintFee: null, }; } - default: - return null; + case 'ProtocolSharedRevenueCollectOpenActionSettings': { + const collectFee = buildCollectFee(module); + + return { + ...shared, + collectFee, + collectNft: module.collectNft, + collectLimit: module.collectLimit, + endsAt: resolveEndsAt(module.endsAt), + fee: collectFee, + mintFee: buildMintFee(module), + }; + } } } diff --git a/packages/api-bindings/src/lens/utils/__tests__/token-allowance.spec.ts b/packages/api-bindings/src/lens/utils/__tests__/token-allowance.spec.ts deleted file mode 100644 index 6d2059e26..000000000 --- a/packages/api-bindings/src/lens/utils/__tests__/token-allowance.spec.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { TransactionKind } from '@lens-protocol/domain/entities'; -import { - TokenAllowanceLimit, - TokenAllowanceRequest, -} from '@lens-protocol/domain/use-cases/transactions'; -import { mockDaiAmount, mockEvmAddress } from '@lens-protocol/shared-kernel/mocks'; - -import { - mockAmountFragmentFrom, - mockCommentFragment, - mockFeeFollowModuleSettingsFragment, - mockLegacyAaveFeeCollectModuleSettingsFragment, - mockLegacyErc4626FeeCollectModuleSettingsFragment, - mockLegacyFeeCollectModuleSettingsFragment, - mockLegacyLimitedFeeCollectModuleSettingsFragment, - mockLegacyLimitedTimedFeeCollectModuleSettingsFragment, - mockLegacyMultirecipientFeeCollectModuleSettingsFragment, - mockLegacySimpleCollectModuleSettingsFragment, - mockLegacyTimedFeeCollectModuleSettingsFragment, - mockMirrorFragment, - mockMultirecipientFeeCollectOpenActionSettingsFragment, - mockNetworkAddressFragment, - mockPostFragment, - mockProfileFragment, - mockQuoteFragment, - mockSimpleCollectOpenActionSettingsFragment, -} from '../../__helpers__'; -import { AnyPublication } from '../../publication'; -import { CollectModuleSettings } from '../CollectModuleSettings'; -import { resolveTokenAllowanceRequest } from '../token-allowance'; - -const amount = mockDaiAmount(42); -const spender = mockEvmAddress(); - -function assertExpectedTokenAllowanceRequest(request: TokenAllowanceRequest) { - expect(request).toEqual({ - kind: TransactionKind.APPROVE_MODULE, - amount, - limit: TokenAllowanceLimit.EXACT, - spender, - }); -} - -describe(`Given the ${resolveTokenAllowanceRequest.name} helper`, () => { - describe(`when the item is a Profile`, () => { - const item = mockProfileFragment({ - followModule: mockFeeFollowModuleSettingsFragment({ - amount: mockAmountFragmentFrom(amount), - contract: mockNetworkAddressFragment({ address: spender }), - }), - }); - - describe('configured with FeeFollowModuleSettings', () => { - it('should return the expected TokenAllowanceRequest', () => { - const request = resolveTokenAllowanceRequest(item, TokenAllowanceLimit.EXACT); - - assertExpectedTokenAllowanceRequest(request); - }); - }); - }); - - describe.each<{ - name: string; - mockPublicationWith: (settings: CollectModuleSettings) => AnyPublication; - }>([ - { - name: 'Post', - mockPublicationWith: (settings) => - mockPostFragment({ - openActionModules: [settings], - }), - }, - { - name: 'Comment', - mockPublicationWith: (settings) => - mockCommentFragment({ - openActionModules: [settings], - }), - }, - { - name: 'Quote', - mockPublicationWith: (settings) => - mockQuoteFragment({ - openActionModules: [settings], - }), - }, - { - name: 'Mirror for a Post', - mockPublicationWith: (settings) => - mockMirrorFragment({ - mirrorOn: mockPostFragment({ - openActionModules: [settings], - }), - }), - }, - ])(`when the item is a $name`, ({ mockPublicationWith }) => { - describe.each([ - mockSimpleCollectOpenActionSettingsFragment({ - amount: mockAmountFragmentFrom(amount), - contract: mockNetworkAddressFragment({ address: spender }), - }), - - mockMultirecipientFeeCollectOpenActionSettingsFragment({ - amount: mockAmountFragmentFrom(amount), - contract: mockNetworkAddressFragment({ address: spender }), - }), - - mockLegacyFeeCollectModuleSettingsFragment({ - amount: mockAmountFragmentFrom(amount), - contract: mockNetworkAddressFragment({ address: spender }), - }), - - mockLegacyLimitedFeeCollectModuleSettingsFragment({ - amount: mockAmountFragmentFrom(amount), - contract: mockNetworkAddressFragment({ address: spender }), - }), - - mockLegacyLimitedTimedFeeCollectModuleSettingsFragment({ - amount: mockAmountFragmentFrom(amount), - contract: mockNetworkAddressFragment({ address: spender }), - }), - - mockLegacyTimedFeeCollectModuleSettingsFragment({ - amount: mockAmountFragmentFrom(amount), - contract: mockNetworkAddressFragment({ address: spender }), - }), - - mockLegacyMultirecipientFeeCollectModuleSettingsFragment({ - amount: mockAmountFragmentFrom(amount), - contract: mockNetworkAddressFragment({ address: spender }), - }), - - mockLegacySimpleCollectModuleSettingsFragment({ - amount: mockAmountFragmentFrom(amount), - contract: mockNetworkAddressFragment({ address: spender }), - }), - - mockLegacyErc4626FeeCollectModuleSettingsFragment({ - amount: mockAmountFragmentFrom(amount), - contract: mockNetworkAddressFragment({ address: spender }), - }), - - mockLegacyAaveFeeCollectModuleSettingsFragment({ - amount: mockAmountFragmentFrom(amount), - contract: mockNetworkAddressFragment({ address: spender }), - }), - ])('configured with $__typename', (settings) => { - it('should return the expected TokenAllowanceRequest', () => { - const item = mockPublicationWith(settings); - const request = resolveTokenAllowanceRequest(item, TokenAllowanceLimit.EXACT); - - assertExpectedTokenAllowanceRequest(request); - }); - }); - }); -}); diff --git a/packages/api-bindings/src/lens/utils/index.ts b/packages/api-bindings/src/lens/utils/index.ts index 515263215..50329158b 100644 --- a/packages/api-bindings/src/lens/utils/index.ts +++ b/packages/api-bindings/src/lens/utils/index.ts @@ -2,5 +2,4 @@ export * from './amount'; export * from './CollectModuleSettings'; export * from './omitTypename'; export * from './publication'; -export * from './token-allowance'; export * from './types'; diff --git a/packages/api-bindings/src/lens/utils/token-allowance.ts b/packages/api-bindings/src/lens/utils/token-allowance.ts deleted file mode 100644 index 4ba723bd2..000000000 --- a/packages/api-bindings/src/lens/utils/token-allowance.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { TransactionKind } from '@lens-protocol/domain/entities'; -import { - TokenAllowanceLimit, - TokenAllowanceRequest, -} from '@lens-protocol/domain/use-cases/transactions'; -import { assertNever, invariant, never } from '@lens-protocol/shared-kernel'; - -import { Profile } from '../graphql/generated'; -import { AnyPublication, PrimaryPublication } from '../publication'; -import { findCollectModuleSettings } from './CollectModuleSettings'; -import { erc20Amount } from './amount'; - -function resolveTokenAllowanceRequestForCollect( - publication: PrimaryPublication, - limit: TokenAllowanceLimit, -): TokenAllowanceRequest { - const module = findCollectModuleSettings(publication); - - invariant(module, `Publication ${publication.id} has no collect module`); - - switch (module.__typename) { - case 'LegacyAaveFeeCollectModuleSettings': - case 'LegacyERC4626FeeCollectModuleSettings': - case 'LegacyFeeCollectModuleSettings': - case 'LegacyLimitedFeeCollectModuleSettings': - case 'LegacyLimitedTimedFeeCollectModuleSettings': - case 'LegacyMultirecipientFeeCollectModuleSettings': - case 'LegacySimpleCollectModuleSettings': - case 'LegacyTimedFeeCollectModuleSettings': - case 'MultirecipientFeeCollectOpenActionSettings': - case 'SimpleCollectOpenActionSettings': - return { - kind: TransactionKind.APPROVE_MODULE, - amount: erc20Amount(module.amount), - limit, - spender: module.contract.address, - }; - - default: - never(`Unsupported collect module type ${module.__typename}`); - } -} - -function resolveTokenAllowanceRequestForFollow( - profile: Profile, - limit: TokenAllowanceLimit, -): TokenAllowanceRequest { - invariant(profile.followModule, `Profile ${profile.id} has no follow module`); - - switch (profile.followModule.__typename) { - case 'FeeFollowModuleSettings': - return { - kind: TransactionKind.APPROVE_MODULE, - amount: erc20Amount(profile.followModule.amount), - limit, - spender: profile.followModule.contract.address, - }; - default: - never(`Unsupported follow module type ${profile.followModule.__typename}`); - } -} - -export function resolveTokenAllowanceRequest( - item: AnyPublication | Profile, - limit: TokenAllowanceLimit, -): TokenAllowanceRequest { - switch (item.__typename) { - case 'Mirror': - return resolveTokenAllowanceRequestForCollect(item.mirrorOn, limit); - - case 'Comment': - case 'Post': - case 'Quote': - return resolveTokenAllowanceRequestForCollect(item, limit); - - case 'Profile': - return resolveTokenAllowanceRequestForFollow(item, limit); - - default: - assertNever(item); - } -} diff --git a/packages/blockchain-bindings/src/abi/PublicActProxy.json b/packages/blockchain-bindings/src/abi/PublicActProxy.json index 4b44d7900..c388925d3 100644 --- a/packages/blockchain-bindings/src/abi/PublicActProxy.json +++ b/packages/blockchain-bindings/src/abi/PublicActProxy.json @@ -1,109 +1,433 @@ [ { + "type": "constructor", "inputs": [ - { "internalType": "address", "name": "lensHub", "type": "address" }, - { "internalType": "address", "name": "collectPublicationAction", "type": "address" } + { + "name": "lensHub", + "type": "address", + "internalType": "address" + }, + { + "name": "collectPublicationAction", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "COLLECT_PUBLICATION_ACTION", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract CollectPublicationAction" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "HUB", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ILensHub" + } ], - "stateMutability": "nonpayable", - "type": "constructor" + "stateMutability": "view" }, { - "inputs": [{ "internalType": "uint8", "name": "increment", "type": "uint8" }], + "type": "function", "name": "incrementNonce", + "inputs": [ + { + "name": "increment", + "type": "uint8", + "internalType": "uint8" + } + ], "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "nonpayable" }, { - "inputs": [], + "type": "function", "name": "name", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }], - "stateMutability": "pure", - "type": "function" + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" }, { - "inputs": [{ "internalType": "address", "name": "signer", "type": "address" }], + "type": "function", "name": "nonces", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" }, { + "type": "function", + "name": "publicCollect", "inputs": [ { - "components": [ - { "internalType": "uint256", "name": "publicationActedProfileId", "type": "uint256" }, - { "internalType": "uint256", "name": "publicationActedId", "type": "uint256" }, - { "internalType": "uint256", "name": "actorProfileId", "type": "uint256" }, - { "internalType": "uint256[]", "name": "referrerProfileIds", "type": "uint256[]" }, - { "internalType": "uint256[]", "name": "referrerPubIds", "type": "uint256[]" }, - { "internalType": "address", "name": "actionModuleAddress", "type": "address" }, - { "internalType": "bytes", "name": "actionModuleData", "type": "bytes" } - ], - "internalType": "struct Types.PublicationActionParams", "name": "publicationActionParams", - "type": "tuple" + "type": "tuple", + "internalType": "struct Types.PublicationActionParams", + "components": [ + { + "name": "publicationActedProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "publicationActedId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actorProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "actionModuleAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "actionModuleData", + "type": "bytes", + "internalType": "bytes" + } + ] } ], - "name": "publicCollect", "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "nonpayable" }, { + "type": "function", + "name": "publicCollectWithSig", "inputs": [ { - "components": [ - { "internalType": "uint256", "name": "publicationActedProfileId", "type": "uint256" }, - { "internalType": "uint256", "name": "publicationActedId", "type": "uint256" }, - { "internalType": "uint256", "name": "actorProfileId", "type": "uint256" }, - { "internalType": "uint256[]", "name": "referrerProfileIds", "type": "uint256[]" }, - { "internalType": "uint256[]", "name": "referrerPubIds", "type": "uint256[]" }, - { "internalType": "address", "name": "actionModuleAddress", "type": "address" }, - { "internalType": "bytes", "name": "actionModuleData", "type": "bytes" } - ], - "internalType": "struct Types.PublicationActionParams", "name": "publicationActionParams", - "type": "tuple" + "type": "tuple", + "internalType": "struct Types.PublicationActionParams", + "components": [ + { + "name": "publicationActedProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "publicationActedId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actorProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "actionModuleAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "actionModuleData", + "type": "bytes", + "internalType": "bytes" + } + ] }, { - "components": [ - { "internalType": "address", "name": "signer", "type": "address" }, - { "internalType": "uint8", "name": "v", "type": "uint8" }, - { "internalType": "bytes32", "name": "r", "type": "bytes32" }, - { "internalType": "bytes32", "name": "s", "type": "bytes32" }, - { "internalType": "uint256", "name": "deadline", "type": "uint256" } - ], - "internalType": "struct Types.EIP712Signature", "name": "signature", - "type": "tuple" + "type": "tuple", + "internalType": "struct Types.EIP712Signature", + "components": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + }, + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "deadline", + "type": "uint256", + "internalType": "uint256" + } + ] } ], - "name": "publicCollectWithSig", "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "nonpayable" }, { + "type": "function", + "name": "publicFreeAct", "inputs": [ { + "name": "publicationActionParams", + "type": "tuple", + "internalType": "struct Types.PublicationActionParams", "components": [ - { "internalType": "uint256", "name": "publicationActedProfileId", "type": "uint256" }, - { "internalType": "uint256", "name": "publicationActedId", "type": "uint256" }, - { "internalType": "uint256", "name": "actorProfileId", "type": "uint256" }, - { "internalType": "uint256[]", "name": "referrerProfileIds", "type": "uint256[]" }, - { "internalType": "uint256[]", "name": "referrerPubIds", "type": "uint256[]" }, - { "internalType": "address", "name": "actionModuleAddress", "type": "address" }, - { "internalType": "bytes", "name": "actionModuleData", "type": "bytes" } - ], + { + "name": "publicationActedProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "publicationActedId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actorProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "actionModuleAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "actionModuleData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "publicPaidAct", + "inputs": [ + { + "name": "publicationActionParams", + "type": "tuple", "internalType": "struct Types.PublicationActionParams", + "components": [ + { + "name": "publicationActedProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "publicationActedId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actorProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "actionModuleAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "actionModuleData", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "currency", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "approveTo", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "publicPaidActWithSig", + "inputs": [ + { "name": "publicationActionParams", - "type": "tuple" + "type": "tuple", + "internalType": "struct Types.PublicationActionParams", + "components": [ + { + "name": "publicationActedProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "publicationActedId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actorProfileId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "actionModuleAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "actionModuleData", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "currency", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "approveTo", + "type": "address", + "internalType": "address" + }, + { + "name": "signature", + "type": "tuple", + "internalType": "struct Types.EIP712Signature", + "components": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + }, + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "deadline", + "type": "uint256", + "internalType": "uint256" + } + ] } ], - "name": "publicFreeAct", "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "nonpayable" } ] diff --git a/packages/blockchain-bindings/src/types/PublicActProxy.ts b/packages/blockchain-bindings/src/types/PublicActProxy.ts index 10d47fd4c..9f2661ed1 100644 --- a/packages/blockchain-bindings/src/types/PublicActProxy.ts +++ b/packages/blockchain-bindings/src/types/PublicActProxy.ts @@ -1,8 +1,6 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -import type { FunctionFragment, Result } from '@ethersproject/abi'; -import type { Listener, Provider } from '@ethersproject/providers'; import type { BaseContract, BigNumber, @@ -15,12 +13,14 @@ import type { Signer, utils, } from 'ethers'; +import type { FunctionFragment, Result } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; import type { - OnEvent, - PromiseOrValue, - TypedEvent, TypedEventFilter, + TypedEvent, TypedListener, + OnEvent, + PromiseOrValue, } from './common'; export declare namespace Types { @@ -71,24 +71,34 @@ export declare namespace Types { export interface PublicActProxyInterface extends utils.Interface { functions: { + 'COLLECT_PUBLICATION_ACTION()': FunctionFragment; + 'HUB()': FunctionFragment; 'incrementNonce(uint8)': FunctionFragment; 'name()': FunctionFragment; 'nonces(address)': FunctionFragment; 'publicCollect((uint256,uint256,uint256,uint256[],uint256[],address,bytes))': FunctionFragment; 'publicCollectWithSig((uint256,uint256,uint256,uint256[],uint256[],address,bytes),(address,uint8,bytes32,bytes32,uint256))': FunctionFragment; 'publicFreeAct((uint256,uint256,uint256,uint256[],uint256[],address,bytes))': FunctionFragment; + 'publicPaidAct((uint256,uint256,uint256,uint256[],uint256[],address,bytes),address,uint256,address)': FunctionFragment; + 'publicPaidActWithSig((uint256,uint256,uint256,uint256[],uint256[],address,bytes),address,uint256,address,(address,uint8,bytes32,bytes32,uint256))': FunctionFragment; }; getFunction( nameOrSignatureOrTopic: + | 'COLLECT_PUBLICATION_ACTION' + | 'HUB' | 'incrementNonce' | 'name' | 'nonces' | 'publicCollect' | 'publicCollectWithSig' - | 'publicFreeAct', + | 'publicFreeAct' + | 'publicPaidAct' + | 'publicPaidActWithSig', ): FunctionFragment; + encodeFunctionData(functionFragment: 'COLLECT_PUBLICATION_ACTION', values?: undefined): string; + encodeFunctionData(functionFragment: 'HUB', values?: undefined): string; encodeFunctionData( functionFragment: 'incrementNonce', values: [PromiseOrValue], @@ -107,13 +117,36 @@ export interface PublicActProxyInterface extends utils.Interface { functionFragment: 'publicFreeAct', values: [Types.PublicationActionParamsStruct], ): string; + encodeFunctionData( + functionFragment: 'publicPaidAct', + values: [ + Types.PublicationActionParamsStruct, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'publicPaidActWithSig', + values: [ + Types.PublicationActionParamsStruct, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + Types.EIP712SignatureStruct, + ], + ): string; + decodeFunctionResult(functionFragment: 'COLLECT_PUBLICATION_ACTION', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'HUB', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'incrementNonce', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'nonces', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'publicCollect', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'publicCollectWithSig', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'publicFreeAct', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'publicPaidAct', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'publicPaidActWithSig', data: BytesLike): Result; events: {}; } @@ -143,6 +176,10 @@ export interface PublicActProxy extends BaseContract { removeListener: OnEvent; functions: { + COLLECT_PUBLICATION_ACTION(overrides?: CallOverrides): Promise<[string]>; + + HUB(overrides?: CallOverrides): Promise<[string]>; + incrementNonce( increment: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue }, @@ -167,8 +204,29 @@ export interface PublicActProxy extends BaseContract { publicationActionParams: Types.PublicationActionParamsStruct, overrides?: Overrides & { from?: PromiseOrValue }, ): Promise; + + publicPaidAct( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + publicPaidActWithSig( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + signature: Types.EIP712SignatureStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; }; + COLLECT_PUBLICATION_ACTION(overrides?: CallOverrides): Promise; + + HUB(overrides?: CallOverrides): Promise; + incrementNonce( increment: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue }, @@ -194,7 +252,28 @@ export interface PublicActProxy extends BaseContract { overrides?: Overrides & { from?: PromiseOrValue }, ): Promise; + publicPaidAct( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + publicPaidActWithSig( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + signature: Types.EIP712SignatureStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + callStatic: { + COLLECT_PUBLICATION_ACTION(overrides?: CallOverrides): Promise; + + HUB(overrides?: CallOverrides): Promise; + incrementNonce( increment: PromiseOrValue, overrides?: CallOverrides, @@ -219,11 +298,32 @@ export interface PublicActProxy extends BaseContract { publicationActionParams: Types.PublicationActionParamsStruct, overrides?: CallOverrides, ): Promise; + + publicPaidAct( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + publicPaidActWithSig( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + signature: Types.EIP712SignatureStruct, + overrides?: CallOverrides, + ): Promise; }; filters: {}; estimateGas: { + COLLECT_PUBLICATION_ACTION(overrides?: CallOverrides): Promise; + + HUB(overrides?: CallOverrides): Promise; + incrementNonce( increment: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue }, @@ -248,9 +348,30 @@ export interface PublicActProxy extends BaseContract { publicationActionParams: Types.PublicationActionParamsStruct, overrides?: Overrides & { from?: PromiseOrValue }, ): Promise; + + publicPaidAct( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + publicPaidActWithSig( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + signature: Types.EIP712SignatureStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; }; populateTransaction: { + COLLECT_PUBLICATION_ACTION(overrides?: CallOverrides): Promise; + + HUB(overrides?: CallOverrides): Promise; + incrementNonce( increment: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue }, @@ -278,5 +399,22 @@ export interface PublicActProxy extends BaseContract { publicationActionParams: Types.PublicationActionParamsStruct, overrides?: Overrides & { from?: PromiseOrValue }, ): Promise; + + publicPaidAct( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + publicPaidActWithSig( + publicationActionParams: Types.PublicationActionParamsStruct, + currency: PromiseOrValue, + amount: PromiseOrValue, + approveTo: PromiseOrValue, + signature: Types.EIP712SignatureStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; }; } diff --git a/packages/client/codegen-api.yml b/packages/client/codegen-api.yml index c665f8f38..fe924d004 100644 --- a/packages/client/codegen-api.yml +++ b/packages/client/codegen-api.yml @@ -56,8 +56,8 @@ config: schema: # - https://api-amoy.lens-v2.crtlkey.com/ # staging - - https://api-v2-amoy.lens.dev/ # testnet - # - http://localhost:4000/ + # - https://api-v2-amoy.lens.dev/ # testnet + - http://localhost:4000/ documents: - src/**/*.graphql generates: diff --git a/packages/client/src/graphql/fragments.generated.ts b/packages/client/src/graphql/fragments.generated.ts index a5827d555..c04f2687a 100644 --- a/packages/client/src/graphql/fragments.generated.ts +++ b/packages/client/src/graphql/fragments.generated.ts @@ -285,6 +285,27 @@ export type SimpleCollectOpenActionSettingsFragment = { amount: AmountFragment; }; +export type ProtocolSharedRevenueCollectOpenActionSettingsFragment = { + __typename: 'ProtocolSharedRevenueCollectOpenActionSettings'; + type: Types.OpenActionModuleType; + collectNft: string | null; + recipient: string; + referralFee: number; + followerOnly: boolean; + collectLimit: string | null; + endsAt: string | null; + creatorClient: string | null; + contract: NetworkAddressFragment; + amount: AmountFragment; + distribution: { + creatorClientSplit: number; + creatorSplit: number; + executorClientSplit: number; + protocolSplit: number; + }; + mintFee: AmountFragment; +}; + export type MultirecipientFeeCollectOpenActionSettingsFragment = { __typename: 'MultirecipientFeeCollectOpenActionSettings'; type: Types.OpenActionModuleType; @@ -479,6 +500,7 @@ export type PublicationMetadataLitEncryptionFragment = { __typename: 'PublicationMetadataLitEncryption'; encryptionKey: string; encryptedPaths: Array; + accessControlContract: NetworkAddressFragment; accessCondition: RootConditionFragment; }; @@ -1078,6 +1100,7 @@ export type PostFragment = { | LegacySimpleCollectModuleSettingsFragment | LegacyTimedFeeCollectModuleSettingsFragment | MultirecipientFeeCollectOpenActionSettingsFragment + | ProtocolSharedRevenueCollectOpenActionSettingsFragment | SimpleCollectOpenActionSettingsFragment | UnknownOpenActionModuleSettingsFragment >; @@ -1131,6 +1154,7 @@ export type CommentBaseFragment = { | LegacySimpleCollectModuleSettingsFragment | LegacyTimedFeeCollectModuleSettingsFragment | MultirecipientFeeCollectOpenActionSettingsFragment + | ProtocolSharedRevenueCollectOpenActionSettingsFragment | SimpleCollectOpenActionSettingsFragment | UnknownOpenActionModuleSettingsFragment >; @@ -1203,6 +1227,7 @@ export type QuoteBaseFragment = { | LegacySimpleCollectModuleSettingsFragment | LegacyTimedFeeCollectModuleSettingsFragment | MultirecipientFeeCollectOpenActionSettingsFragment + | ProtocolSharedRevenueCollectOpenActionSettingsFragment | SimpleCollectOpenActionSettingsFragment | UnknownOpenActionModuleSettingsFragment >; @@ -5962,6 +5987,16 @@ export const PublicationMetadataLitEncryptionFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -8010,6 +8045,16 @@ export const AudioMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -9261,6 +9306,16 @@ export const VideoMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -10511,6 +10566,16 @@ export const ImageMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -11748,6 +11813,16 @@ export const ArticleMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -13016,6 +13091,16 @@ export const EventMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -14267,6 +14352,16 @@ export const LinkMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -15504,6 +15599,16 @@ export const EmbedMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -16751,6 +16856,16 @@ export const CheckingInMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -17752,6 +17867,16 @@ export const TextOnlyMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -18915,6 +19040,16 @@ export const ThreeDMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -20167,6 +20302,16 @@ export const StoryMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -21406,6 +21551,16 @@ export const TransactionMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -22643,6 +22798,16 @@ export const MintMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -23882,6 +24047,16 @@ export const SpaceMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -25124,6 +25299,16 @@ export const LiveStreamMetadataV3FragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -27426,6 +27611,193 @@ export const MultirecipientFeeCollectOpenActionSettingsFragmentDoc = { }, ], } as unknown as DocumentNode; +export const ProtocolSharedRevenueCollectOpenActionSettingsFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'Erc20' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'Erc20' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'symbol' } }, + { kind: 'Field', name: { kind: 'Name', value: 'decimals' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FiatAmount' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FiatAmount' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'asset' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Fiat' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'Fiat' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'Fiat' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'symbol' } }, + { kind: 'Field', name: { kind: 'Name', value: 'decimals' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'Amount' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'Amount' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'asset' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Erc20' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'rate' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'request' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'rateRequest' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'FiatAmount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'asFiat' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'request' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'rateRequest' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'FiatAmount' } }], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'NetworkAddress' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'NetworkAddress' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'address' } }, + { kind: 'Field', name: { kind: 'Name', value: 'chainId' } }, + ], + }, + }, + ], +} as unknown as DocumentNode; export const SimpleCollectOpenActionSettingsFragmentDoc = { kind: 'Document', definitions: [ @@ -28426,6 +28798,25 @@ export const PostFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -29957,6 +30348,67 @@ export const PostFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'MultirecipientFeeCollectOpenActionSettings' }, @@ -30708,6 +31160,16 @@ export const PostFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -33899,6 +34361,25 @@ export const CommentBaseFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -35392,6 +35873,67 @@ export const CommentBaseFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'MultirecipientFeeCollectOpenActionSettings' }, @@ -36143,6 +36685,16 @@ export const CommentBaseFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -39227,6 +39779,25 @@ export const QuoteBaseFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -40720,6 +41291,67 @@ export const QuoteBaseFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'MultirecipientFeeCollectOpenActionSettings' }, @@ -41471,6 +42103,16 @@ export const QuoteBaseFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -45585,6 +46227,67 @@ export const CommentFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'MultirecipientFeeCollectOpenActionSettings' }, @@ -46336,6 +47039,16 @@ export const CommentFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -49538,6 +50251,25 @@ export const CommentFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -50134,6 +50866,25 @@ export const CommentFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -50718,6 +51469,25 @@ export const CommentFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -52319,6 +53089,67 @@ export const QuoteFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'MultirecipientFeeCollectOpenActionSettings' }, @@ -53070,6 +53901,16 @@ export const QuoteFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -56272,6 +57113,25 @@ export const QuoteFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -56868,6 +57728,25 @@ export const QuoteFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -57452,6 +58331,25 @@ export const QuoteFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -59053,6 +59951,67 @@ export const MirrorFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'MultirecipientFeeCollectOpenActionSettings' }, @@ -59804,6 +60763,16 @@ export const MirrorFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -63006,6 +63975,25 @@ export const MirrorFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -63602,6 +64590,25 @@ export const MirrorFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -64280,6 +65287,25 @@ export const MirrorFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { diff --git a/packages/client/src/graphql/fragments.graphql b/packages/client/src/graphql/fragments.graphql index 095cdb3b9..db005e876 100644 --- a/packages/client/src/graphql/fragments.graphql +++ b/packages/client/src/graphql/fragments.graphql @@ -444,6 +444,33 @@ fragment SimpleCollectOpenActionSettings on SimpleCollectOpenActionSettings { endsAt } +fragment ProtocolSharedRevenueCollectOpenActionSettings on ProtocolSharedRevenueCollectOpenActionSettings { + __typename + type + contract { + ...NetworkAddress + } + collectNft + amount { + ...Amount + } + distribution { + creatorClientSplit + creatorSplit + executorClientSplit + protocolSplit + } + mintFee { + ...Amount + } + recipient + referralFee + followerOnly + collectLimit + endsAt + creatorClient +} + fragment MultirecipientFeeCollectOpenActionSettings on MultirecipientFeeCollectOpenActionSettings { __typename type @@ -694,6 +721,9 @@ fragment PublicationOperations on PublicationOperations { fragment PublicationMetadataLitEncryption on PublicationMetadataLitEncryption { __typename encryptionKey + accessControlContract { + ...NetworkAddress + } accessCondition { ...RootCondition } @@ -1616,6 +1646,9 @@ fragment Post on Post { ... on MultirecipientFeeCollectOpenActionSettings { ...MultirecipientFeeCollectOpenActionSettings } + ... on ProtocolSharedRevenueCollectOpenActionSettings { + ...ProtocolSharedRevenueCollectOpenActionSettings + } ... on SimpleCollectOpenActionSettings { ...SimpleCollectOpenActionSettings } @@ -1747,6 +1780,9 @@ fragment CommentBase on Comment { ... on MultirecipientFeeCollectOpenActionSettings { ...MultirecipientFeeCollectOpenActionSettings } + ... on ProtocolSharedRevenueCollectOpenActionSettings { + ...ProtocolSharedRevenueCollectOpenActionSettings + } ... on SimpleCollectOpenActionSettings { ...SimpleCollectOpenActionSettings } @@ -1929,6 +1965,9 @@ fragment QuoteBase on Quote { ... on MultirecipientFeeCollectOpenActionSettings { ...MultirecipientFeeCollectOpenActionSettings } + ... on ProtocolSharedRevenueCollectOpenActionSettings { + ...ProtocolSharedRevenueCollectOpenActionSettings + } ... on SimpleCollectOpenActionSettings { ...SimpleCollectOpenActionSettings } diff --git a/packages/client/src/graphql/types.generated.ts b/packages/client/src/graphql/types.generated.ts index 1119795f0..3433c3f5a 100644 --- a/packages/client/src/graphql/types.generated.ts +++ b/packages/client/src/graphql/types.generated.ts @@ -63,6 +63,7 @@ export type Scalars = { export type ActOnOpenActionInput = { multirecipientCollectOpenAction?: InputMaybe; + protocolSharedRevenueCollectOpenAction?: InputMaybe; simpleCollectOpenAction?: InputMaybe; unknownOpenAction?: InputMaybe; }; @@ -181,6 +182,7 @@ export enum ClaimableTokenType { export type CollectActionModuleInput = { multirecipientCollectOpenAction?: InputMaybe; + protocolSharedRevenueCollectOpenAction?: InputMaybe; simpleCollectOpenAction?: InputMaybe; }; @@ -798,6 +800,13 @@ export enum MetadataAttributeType { String = 'STRING', } +export type ModDisputeReportRequest = { + reason: Scalars['String']['input']; + reportedProfileId?: InputMaybe; + reportedPublicationId?: InputMaybe; + reporter: Scalars['ProfileId']['input']; +}; + export type ModExplorePublicationRequest = { cursor?: InputMaybe; limit?: InputMaybe; @@ -818,6 +827,13 @@ export type ModExplorePublicationsWhere = { since?: InputMaybe; }; +export type ModReportsRequest = { + cursor?: InputMaybe; + forProfile?: InputMaybe; + forPublication?: InputMaybe; + limit?: InputMaybe; +}; + export type ModuleCurrencyApproval = { followModule?: InputMaybe; openActionModule?: InputMaybe; @@ -1146,6 +1162,7 @@ export enum OpenActionModuleType { LegacySimpleCollectModule = 'LegacySimpleCollectModule', LegacyTimedFeeCollectModule = 'LegacyTimedFeeCollectModule', MultirecipientFeeCollectOpenActionModule = 'MultirecipientFeeCollectOpenActionModule', + ProtocolSharedRevenueCollectOpenActionModule = 'ProtocolSharedRevenueCollectOpenActionModule', SimpleCollectOpenActionModule = 'SimpleCollectOpenActionModule', UnknownOpenActionModule = 'UnknownOpenActionModule', } @@ -1427,6 +1444,22 @@ export type ProfilesRequestWhere = { whoQuotedPublication?: InputMaybe; }; +export type ProtocolSharedRevenueActRedeemInput = { + /** The frontend app address that the collector uses */ + executorClient?: InputMaybe; +}; + +export type ProtocolSharedRevenueCollectModuleInput = { + amount?: InputMaybe; + collectLimit?: InputMaybe; + /** The wallet of a client app to share revenues alongside the recipient and the protocol. Optional. */ + creatorClient?: InputMaybe; + endsAt?: InputMaybe; + followerOnly: Scalars['Boolean']['input']; + recipient?: InputMaybe; + referralFee?: InputMaybe; +}; + export type PublicationBookmarkRequest = { on: Scalars['PublicationId']['input']; }; @@ -1565,6 +1598,7 @@ export enum PublicationReportingIllegalSubreason { AnimalAbuse = 'ANIMAL_ABUSE', DirectThreat = 'DIRECT_THREAT', HumanAbuse = 'HUMAN_ABUSE', + IntEllEctualProperty = 'INTEllECTUAL_PROPERTY', ThreatIndividual = 'THREAT_INDIVIDUAL', Violence = 'VIOLENCE', } diff --git a/packages/client/src/graphql/types.ts b/packages/client/src/graphql/types.ts index e4d7bda46..bf737cf55 100644 --- a/packages/client/src/graphql/types.ts +++ b/packages/client/src/graphql/types.ts @@ -33,6 +33,10 @@ export type AnyPublicationFragment = export type PrimaryPublicationFragment = PostFragment | CommentFragment | QuoteFragment; +export type OpenActionModuleFragment = NonNullable< + PrimaryPublicationFragment['openActionModules'] +>[number]; + export type PublicationMetadataFragment = | ArticleMetadataV3Fragment | AudioMetadataV3Fragment diff --git a/packages/client/src/submodules/explore/graphql/explore.generated.ts b/packages/client/src/submodules/explore/graphql/explore.generated.ts index 1e661290c..0d3e5741e 100644 --- a/packages/client/src/submodules/explore/graphql/explore.generated.ts +++ b/packages/client/src/submodules/explore/graphql/explore.generated.ts @@ -707,6 +707,25 @@ export const ExplorePublicationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -2436,6 +2455,16 @@ export const ExplorePublicationsDocument = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -5493,6 +5522,67 @@ export const ExplorePublicationsDocument = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -6250,6 +6340,25 @@ export const ExplorePublicationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -6835,6 +6944,25 @@ export const ExplorePublicationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { diff --git a/packages/client/src/submodules/feed/graphql/feed.generated.ts b/packages/client/src/submodules/feed/graphql/feed.generated.ts index 908e7233a..02300e757 100644 --- a/packages/client/src/submodules/feed/graphql/feed.generated.ts +++ b/packages/client/src/submodules/feed/graphql/feed.generated.ts @@ -2514,6 +2514,25 @@ export const FeedItemFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -3336,6 +3355,16 @@ export const FeedItemFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -6393,6 +6422,67 @@ export const FeedItemFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -7169,6 +7259,25 @@ export const FeedItemFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -7753,6 +7862,25 @@ export const FeedItemFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -11392,6 +11520,25 @@ export const OpenActionPaidActionFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -12214,6 +12361,16 @@ export const OpenActionPaidActionFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -15271,6 +15428,67 @@ export const OpenActionPaidActionFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -16047,6 +16265,25 @@ export const OpenActionPaidActionFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -16631,6 +16868,25 @@ export const OpenActionPaidActionFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -18474,6 +18730,25 @@ export const FeedDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -19296,6 +19571,16 @@ export const FeedDocument = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -22353,6 +22638,67 @@ export const FeedDocument = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -23129,6 +23475,25 @@ export const FeedDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -23713,6 +24078,25 @@ export const FeedDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -25572,6 +25956,25 @@ export const FeedHighlightsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -26394,6 +26797,16 @@ export const FeedHighlightsDocument = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -29451,6 +29864,67 @@ export const FeedHighlightsDocument = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -30133,6 +30607,25 @@ export const FeedHighlightsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -30717,6 +31210,25 @@ export const FeedHighlightsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -32634,6 +33146,25 @@ export const LatestPaidActionsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -33456,6 +33987,16 @@ export const LatestPaidActionsDocument = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -36513,6 +37054,67 @@ export const LatestPaidActionsDocument = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -37289,6 +37891,25 @@ export const LatestPaidActionsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -37873,6 +38494,25 @@ export const LatestPaidActionsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { diff --git a/packages/client/src/submodules/notifications/graphql/notifications.generated.ts b/packages/client/src/submodules/notifications/graphql/notifications.generated.ts index 72e16b224..11159f08d 100644 --- a/packages/client/src/submodules/notifications/graphql/notifications.generated.ts +++ b/packages/client/src/submodules/notifications/graphql/notifications.generated.ts @@ -1558,6 +1558,25 @@ export const ReactionNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -2380,6 +2399,16 @@ export const ReactionNotificationFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -5437,6 +5466,67 @@ export const ReactionNotificationFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -6213,6 +6303,25 @@ export const ReactionNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -6797,6 +6906,25 @@ export const ReactionNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -8406,6 +8534,25 @@ export const CommentNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -9228,6 +9375,16 @@ export const CommentNotificationFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -12285,6 +12442,67 @@ export const CommentNotificationFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -13061,6 +13279,25 @@ export const CommentNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -13645,6 +13882,25 @@ export const CommentNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -15228,6 +15484,25 @@ export const MirrorNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -16050,6 +16325,16 @@ export const MirrorNotificationFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -19107,6 +19392,67 @@ export const MirrorNotificationFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -19883,6 +20229,25 @@ export const MirrorNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -20467,6 +20832,25 @@ export const MirrorNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -22076,6 +22460,25 @@ export const QuoteNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -22898,6 +23301,16 @@ export const QuoteNotificationFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -25955,6 +26368,67 @@ export const QuoteNotificationFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -26637,6 +27111,25 @@ export const QuoteNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -27221,6 +27714,25 @@ export const QuoteNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -29923,6 +30435,25 @@ export const ActedNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -30745,6 +31276,16 @@ export const ActedNotificationFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -33802,6 +34343,67 @@ export const ActedNotificationFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -34578,6 +35180,25 @@ export const ActedNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -35162,6 +35783,25 @@ export const ActedNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -37808,6 +38448,25 @@ export const MentionNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -38630,6 +39289,16 @@ export const MentionNotificationFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -41687,6 +42356,67 @@ export const MentionNotificationFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -42463,6 +43193,25 @@ export const MentionNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -43047,6 +43796,25 @@ export const MentionNotificationFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -45263,6 +46031,25 @@ export const NotificationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -46085,6 +46872,16 @@ export const NotificationsDocument = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -49142,6 +49939,67 @@ export const NotificationsDocument = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -49918,6 +50776,25 @@ export const NotificationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -50502,6 +51379,25 @@ export const NotificationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { diff --git a/packages/client/src/submodules/publication/graphql/publication.generated.ts b/packages/client/src/submodules/publication/graphql/publication.generated.ts index 52a02d0a4..d9395c4c9 100644 --- a/packages/client/src/submodules/publication/graphql/publication.generated.ts +++ b/packages/client/src/submodules/publication/graphql/publication.generated.ts @@ -2135,6 +2135,25 @@ export const PublicationDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -3864,6 +3883,16 @@ export const PublicationDocument = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -6921,6 +6950,67 @@ export const PublicationDocument = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -7773,6 +7863,25 @@ export const PublicationDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -8357,6 +8466,25 @@ export const PublicationDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -9247,6 +9375,25 @@ export const PublicationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -10976,6 +11123,16 @@ export const PublicationsDocument = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -14033,6 +14190,67 @@ export const PublicationsDocument = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -14885,6 +15103,25 @@ export const PublicationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -15469,6 +15706,25 @@ export const PublicationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { diff --git a/packages/client/src/submodules/publication/helpers/openActions.ts b/packages/client/src/submodules/publication/helpers/openActions.ts index 0a7b49195..7027315c7 100644 --- a/packages/client/src/submodules/publication/helpers/openActions.ts +++ b/packages/client/src/submodules/publication/helpers/openActions.ts @@ -1,45 +1,9 @@ -import { - LegacyAaveFeeCollectModuleSettingsFragment, - LegacyErc4626FeeCollectModuleSettingsFragment, - LegacyFeeCollectModuleSettingsFragment, - LegacyFreeCollectModuleSettingsFragment, - LegacyLimitedFeeCollectModuleSettingsFragment, - LegacyLimitedTimedFeeCollectModuleSettingsFragment, - LegacyMultirecipientFeeCollectModuleSettingsFragment, - LegacyRevertCollectModuleSettingsFragment, - LegacySimpleCollectModuleSettingsFragment, - LegacyTimedFeeCollectModuleSettingsFragment, - MultirecipientFeeCollectOpenActionSettingsFragment, - SimpleCollectOpenActionSettingsFragment, - UnknownOpenActionModuleSettingsFragment, -} from '../../../graphql/fragments.generated'; +import { OpenActionModuleFragment } from '../../../graphql'; -export type OpenActionModuleFragment = - | LegacyAaveFeeCollectModuleSettingsFragment - | LegacyErc4626FeeCollectModuleSettingsFragment - | LegacyFeeCollectModuleSettingsFragment - | LegacyFreeCollectModuleSettingsFragment - | LegacyLimitedFeeCollectModuleSettingsFragment - | LegacyLimitedTimedFeeCollectModuleSettingsFragment - | LegacyMultirecipientFeeCollectModuleSettingsFragment - | LegacyRevertCollectModuleSettingsFragment - | LegacySimpleCollectModuleSettingsFragment - | LegacyTimedFeeCollectModuleSettingsFragment - | MultirecipientFeeCollectOpenActionSettingsFragment - | SimpleCollectOpenActionSettingsFragment - | UnknownOpenActionModuleSettingsFragment; - -export type OpenActionModuleWithReferralFeeFragment = - | LegacyAaveFeeCollectModuleSettingsFragment - | LegacyErc4626FeeCollectModuleSettingsFragment - | LegacyFeeCollectModuleSettingsFragment - | LegacyLimitedFeeCollectModuleSettingsFragment - | LegacyLimitedTimedFeeCollectModuleSettingsFragment - | LegacyMultirecipientFeeCollectModuleSettingsFragment - | LegacySimpleCollectModuleSettingsFragment - | LegacyTimedFeeCollectModuleSettingsFragment - | MultirecipientFeeCollectOpenActionSettingsFragment - | SimpleCollectOpenActionSettingsFragment; +export type OpenActionModuleWithReferralFeeFragment = Extract< + OpenActionModuleFragment, + { referralFee: number } +>; export function isOpenActionModuleWithReferralFee( module: OpenActionModuleFragment, diff --git a/packages/client/src/submodules/publication/submodules/bookmarks/graphql/bookmarks.generated.ts b/packages/client/src/submodules/publication/submodules/bookmarks/graphql/bookmarks.generated.ts index 57ccf920e..a508c2917 100644 --- a/packages/client/src/submodules/publication/submodules/bookmarks/graphql/bookmarks.generated.ts +++ b/packages/client/src/submodules/publication/submodules/bookmarks/graphql/bookmarks.generated.ts @@ -737,6 +737,25 @@ export const PublicationBookmarksDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -2466,6 +2485,16 @@ export const PublicationBookmarksDocument = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -5523,6 +5552,67 @@ export const PublicationBookmarksDocument = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -6299,6 +6389,25 @@ export const PublicationBookmarksDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -6883,6 +6992,25 @@ export const PublicationBookmarksDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { diff --git a/packages/client/src/submodules/revenue/graphql/revenue.generated.ts b/packages/client/src/submodules/revenue/graphql/revenue.generated.ts index bdd3c5bcb..28137039d 100644 --- a/packages/client/src/submodules/revenue/graphql/revenue.generated.ts +++ b/packages/client/src/submodules/revenue/graphql/revenue.generated.ts @@ -893,6 +893,25 @@ export const PublicationRevenueFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -2501,6 +2520,16 @@ export const PublicationRevenueFragmentDoc = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -5558,6 +5587,67 @@ export const PublicationRevenueFragmentDoc = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -6410,6 +6500,25 @@ export const PublicationRevenueFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -6994,6 +7103,25 @@ export const PublicationRevenueFragmentDoc = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -8048,6 +8176,25 @@ export const RevenueFromPublicationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -9656,6 +9803,16 @@ export const RevenueFromPublicationsDocument = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -12713,6 +12870,67 @@ export const RevenueFromPublicationsDocument = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -13565,6 +13783,25 @@ export const RevenueFromPublicationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -14149,6 +14386,25 @@ export const RevenueFromPublicationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -15190,6 +15446,25 @@ export const RevenueFromPublicationDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -16798,6 +17073,16 @@ export const RevenueFromPublicationDocument = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -19855,6 +20140,67 @@ export const RevenueFromPublicationDocument = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -20707,6 +21053,25 @@ export const RevenueFromPublicationDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -21291,6 +21656,25 @@ export const RevenueFromPublicationDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { diff --git a/packages/client/src/submodules/search/graphql/search.generated.ts b/packages/client/src/submodules/search/graphql/search.generated.ts index f2ad74515..cb7a3a969 100644 --- a/packages/client/src/submodules/search/graphql/search.generated.ts +++ b/packages/client/src/submodules/search/graphql/search.generated.ts @@ -723,6 +723,25 @@ export const SearchPublicationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -2452,6 +2471,16 @@ export const SearchPublicationsDocument = { selections: [ { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, { kind: 'Field', name: { kind: 'Name', value: 'encryptionKey' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'accessControlContract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, { kind: 'Field', name: { kind: 'Name', value: 'accessCondition' }, @@ -5509,6 +5538,67 @@ export const SearchPublicationsDocument = { ], }, }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'contract' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'FragmentSpread', name: { kind: 'Name', value: 'NetworkAddress' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'collectNft' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'amount' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'distribution' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'creatorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'executorClientSplit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'protocolSplit' } }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'mintFee' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'FragmentSpread', name: { kind: 'Name', value: 'Amount' } }], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'recipient' } }, + { kind: 'Field', name: { kind: 'Name', value: 'referralFee' } }, + { kind: 'Field', name: { kind: 'Name', value: 'followerOnly' } }, + { kind: 'Field', name: { kind: 'Name', value: 'collectLimit' } }, + { kind: 'Field', name: { kind: 'Name', value: 'endsAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'creatorClient' } }, + ], + }, + }, { kind: 'FragmentDefinition', name: { kind: 'Name', value: 'SimpleCollectOpenActionSettings' }, @@ -6285,6 +6375,25 @@ export const SearchPublicationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { @@ -6869,6 +6978,25 @@ export const SearchPublicationsDocument = { ], }, }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'ProtocolSharedRevenueCollectOpenActionSettings' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'ProtocolSharedRevenueCollectOpenActionSettings', + }, + }, + ], + }, + }, { kind: 'InlineFragment', typeCondition: { diff --git a/packages/domain/src/use-cases/profile/LinkHandle.ts b/packages/domain/src/use-cases/profile/LinkHandle.ts index 0279995e3..8aab4c1e9 100644 --- a/packages/domain/src/use-cases/profile/LinkHandle.ts +++ b/packages/domain/src/use-cases/profile/LinkHandle.ts @@ -5,7 +5,7 @@ import { SponsorshipReady } from '../transactions/SponsorshipReady'; export type LinkHandleRequest = { fullHandle: string; - profileId: ProfileId; + profileId: ProfileId; // TODO remove, seems not used kind: TransactionKind.LINK_HANDLE; signless: boolean; sponsored: boolean; @@ -22,6 +22,7 @@ export class LinkHandle extends SponsorshipReady { protected override async charged(request: LinkHandleRequest): Promise { await this.paidExecution.execute(request); } + protected override async sponsored(request: LinkHandleRequest): Promise { await this.delegableExecution.execute(request); } diff --git a/packages/domain/src/use-cases/profile/UnfollowProfile.ts b/packages/domain/src/use-cases/profile/UnfollowProfile.ts index 45017de62..d21e9600b 100644 --- a/packages/domain/src/use-cases/profile/UnfollowProfile.ts +++ b/packages/domain/src/use-cases/profile/UnfollowProfile.ts @@ -21,6 +21,7 @@ export class UnfollowProfile extends SponsorshipReady { protected override async charged(request: UnfollowRequest): Promise { await this.paidExecution.execute(request); } + protected override async sponsored(request: UnfollowRequest): Promise { await this.delegableExecution.execute(request); } diff --git a/packages/domain/src/use-cases/profile/UpdateProfileManagers.ts b/packages/domain/src/use-cases/profile/UpdateProfileManagers.ts index 1ebd80a4c..f53050d6e 100644 --- a/packages/domain/src/use-cases/profile/UpdateProfileManagers.ts +++ b/packages/domain/src/use-cases/profile/UpdateProfileManagers.ts @@ -24,6 +24,7 @@ export class UpdateProfileManagers extends SponsorshipReady { await this.paidExecution.execute(request); } + protected override async sponsored(request: UpdateProfileManagersRequest): Promise { await this.sponsoredExecution.execute(request); } diff --git a/packages/domain/src/use-cases/publications/OpenAction.ts b/packages/domain/src/use-cases/publications/OpenAction.ts index b715782f1..57aa8cbe6 100644 --- a/packages/domain/src/use-cases/publications/OpenAction.ts +++ b/packages/domain/src/use-cases/publications/OpenAction.ts @@ -11,7 +11,6 @@ import { DelegableSigning } from '../transactions/DelegableSigning'; import { ITransactionResultPresenter } from '../transactions/ITransactionResultPresenter'; import { PaidTransaction } from '../transactions/PaidTransaction'; import { SignedOnChain } from '../transactions/SignedOnChain'; -import { SponsorshipReady } from '../transactions/SponsorshipReady'; import { InsufficientAllowanceError, InsufficientFundsError, @@ -21,14 +20,30 @@ import { Referrers } from './Referrers'; export enum AllOpenActionType { LEGACY_COLLECT = 'LEGACY_COLLECT', - SIMPLE_COLLECT = 'SIMPLE_COLLECT', MULTIRECIPIENT_COLLECT = 'MULTIRECIPIENT_COLLECT', + SHARED_REVENUE_COLLECT = 'SHARED_REVENUE_COLLECT', + SIMPLE_COLLECT = 'SIMPLE_COLLECT', UNKNOWN_OPEN_ACTION = 'UNKNOWN_OPEN_ACTION', } +export enum FeeType { + COLLECT = 'COLLECT', + MINT = 'MINT', +} + export type CollectFee = { + type: FeeType.COLLECT; + amount: Amount; + module: EvmAddress; + spender: EvmAddress; +}; + +export type MintFee = { + type: FeeType.MINT; amount: Amount; - contractAddress: EvmAddress; + module: EvmAddress; + spender: EvmAddress; + executorClient?: EvmAddress; }; export type LegacyCollectRequest = { @@ -64,6 +79,17 @@ export type SimpleCollectRequest = { sponsored: boolean; }; +export type SharedRevenueCollectRequest = { + kind: TransactionKind.ACT_ON_PUBLICATION; + type: AllOpenActionType.SHARED_REVENUE_COLLECT; + publicationId: PublicationId; + referrers?: Referrers; + fee: CollectFee | MintFee; + public: boolean; + signless: boolean; + sponsored: boolean; +}; + export type UnknownActionRequest = { kind: TransactionKind.ACT_ON_PUBLICATION; type: AllOpenActionType.UNKNOWN_OPEN_ACTION; @@ -71,6 +97,7 @@ export type UnknownActionRequest = { address: EvmAddress; data: Data; referrers?: Referrers; + amount?: Amount; public: boolean; signless: boolean; sponsored: boolean; @@ -79,6 +106,7 @@ export type UnknownActionRequest = { export type CollectRequest = | LegacyCollectRequest | MultirecipientCollectRequest + | SharedRevenueCollectRequest | SimpleCollectRequest; export type OpenActionRequest = CollectRequest | UnknownActionRequest; @@ -88,18 +116,28 @@ export type DelegableOpenActionRequest = | SimpleCollectRequest | UnknownActionRequest; -function isCollectRequest(request: OpenActionRequest): request is CollectRequest { +export function isCollectRequest(request: OpenActionRequest): request is CollectRequest { return [ AllOpenActionType.LEGACY_COLLECT, - AllOpenActionType.SIMPLE_COLLECT, AllOpenActionType.MULTIRECIPIENT_COLLECT, + AllOpenActionType.SHARED_REVENUE_COLLECT, + AllOpenActionType.SIMPLE_COLLECT, ].includes(request.type); } -export type PaidCollectRequest = CollectRequest & { fee: CollectFee }; +export function isUnknownActionRequest( + request: OpenActionRequest, +): request is UnknownActionRequest { + return request.type === AllOpenActionType.UNKNOWN_OPEN_ACTION; +} + +type PaidCollectRequest = CollectRequest & { fee: CollectFee | MintFee }; +/** + * @internal + */ export function isPaidCollectRequest(request: OpenActionRequest): request is PaidCollectRequest { - return isCollectRequest(request) && request.fee !== undefined; + return isCollectRequest(request) && 'fee' in request && request.fee !== undefined; } function isPublicOpenActionRequest( @@ -117,43 +155,34 @@ export type IOpenActionPresenter = ITransactionResultPresenter< | WalletConnectionError >; -export class OpenAction extends SponsorshipReady { +export class OpenAction { constructor( private readonly tokenAvailability: TokenAvailability, private readonly signedExecution: SignedOnChain, private readonly delegableExecution: DelegableSigning, private readonly paidExecution: PaidTransaction, private readonly presenter: IOpenActionPresenter, - ) { - super(); - } + ) {} - protected async charged(request: OpenActionRequest): Promise { - await this.paidExecution.execute(request); - } - - protected async sponsored(request: OpenActionRequest): Promise { + async execute(request: OpenActionRequest): Promise { if (isPaidCollectRequest(request)) { const result = await this.tokenAvailability.checkAvailability({ amount: request.fee.amount, - spender: request.fee.contractAddress, + spender: request.fee.spender, }); if (result.isFailure()) { this.presenter.present(result); return; } + } - if (isPublicOpenActionRequest(request)) { - return this.charged(request); - } - - await this.signedExecution.execute(request); - return; + if (isPublicOpenActionRequest(request) || request.sponsored === false) { + return this.paidExecution.execute(request); } - if (isPublicOpenActionRequest(request)) { - return this.charged(request); + if (isPaidCollectRequest(request)) { + return this.signedExecution.execute(request); } await this.delegableExecution.execute(request); diff --git a/packages/domain/src/use-cases/publications/OpenActionConfig.ts b/packages/domain/src/use-cases/publications/OpenActionConfig.ts index e1de1d021..741f26b43 100644 --- a/packages/domain/src/use-cases/publications/OpenActionConfig.ts +++ b/packages/domain/src/use-cases/publications/OpenActionConfig.ts @@ -1,5 +1,7 @@ import { Data, Erc20Amount, EvmAddress } from '@lens-protocol/shared-kernel'; +import { AllOpenActionType } from './OpenAction'; + export type RecipientWithSplit = { /** * The recipient of the collect fee split. @@ -14,11 +16,20 @@ export type RecipientWithSplit = { }; export enum OpenActionType { - SIMPLE_COLLECT = 'SIMPLE_COLLECT', - MULTIRECIPIENT_COLLECT = 'MULTIRECIPIENT_COLLECT', - UNKNOWN_OPEN_ACTION = 'UNKNOWN_OPEN_ACTION', + MULTIRECIPIENT_COLLECT = AllOpenActionType.MULTIRECIPIENT_COLLECT, + SHARED_REVENUE_COLLECT = AllOpenActionType.SHARED_REVENUE_COLLECT, + /** + * @deprecated As part of [LIP-23](https://github.com/lens-protocol/LIPs/pull/51) the 'free collect' + * will evolve into shared revenue model. Over time this option will be deprecated and removed + * from gasless support in the Lens API. Use {@link OpenActionType.SHARED_REVENUE_COLLECT} instead. + */ + SIMPLE_COLLECT = AllOpenActionType.SIMPLE_COLLECT, + UNKNOWN_OPEN_ACTION = AllOpenActionType.UNKNOWN_OPEN_ACTION, } +/** + * @deprecated Use {@link SharedRevenueCollectActionConfig} instead. + */ export type SimpleCollectActionConfig = { type: OpenActionType.SIMPLE_COLLECT; /** @@ -62,6 +73,61 @@ export type SimpleCollectActionConfig = { endsAt?: Date; }; +/** + * A [LIP-23](https://github.com/lens-protocol/LIPs/pull/51) compliant collect action configuration. + */ +export type SharedRevenueCollectActionConfig = { + type: OpenActionType.SHARED_REVENUE_COLLECT; + /** + * The maximum number of NFT to mint. + * + * @defaultValue no limit + */ + collectLimit?: number; + /** + * Whether only followers can collect. + */ + followerOnly: boolean; + /** + * The date when the collect ends. + * + * @defaultValue no end date + */ + endsAt?: Date; +} & ( + | { + /** + * The collect fee amount. + * + * Use {@link Amount.erc20} with instances {@link Erc20} to create an instance of this type. + */ + amount: Erc20Amount; + /** + * The referral reward as a percentage. + * + * This is the maximum referral fee percentage that can be used to reward the referrer. + * The referrers are determined by the FE app used when this simple collect open action is executed. + * + * Number between 1-100 with up to 2 decimals of precision (e.g. 10.5 for 10.5%) + * + * @defaultValue no referral reward + */ + referralFee?: number; + /** + * The recipient of the collect fee. + */ + recipient?: EvmAddress; + } + | { + /** + * The creator app address. + * + * If not set, the share for the creator app will be given to the creator of the publication. + */ + creatorClient?: EvmAddress; + } +); + export type MultirecipientCollectActionConfig = { type: OpenActionType.MULTIRECIPIENT_COLLECT; /** @@ -103,7 +169,10 @@ export type MultirecipientCollectActionConfig = { endsAt?: Date; }; -export type CollectActionConfig = SimpleCollectActionConfig | MultirecipientCollectActionConfig; +export type CollectActionConfig = + | SimpleCollectActionConfig + | MultirecipientCollectActionConfig + | SharedRevenueCollectActionConfig; export type UnknownOpenActionConfig = { type: OpenActionType.UNKNOWN_OPEN_ACTION; diff --git a/packages/domain/src/use-cases/publications/__helpers__/mocks.ts b/packages/domain/src/use-cases/publications/__helpers__/mocks.ts index e559ec7f2..4a14da737 100644 --- a/packages/domain/src/use-cases/publications/__helpers__/mocks.ts +++ b/packages/domain/src/use-cases/publications/__helpers__/mocks.ts @@ -12,8 +12,11 @@ import { HidePublicationRequest } from '../HidePublication'; import { AllOpenActionType, CollectFee, + FeeType, LegacyCollectRequest, + MintFee, MultirecipientCollectRequest, + SharedRevenueCollectRequest, SimpleCollectRequest, UnknownActionRequest, } from '../OpenAction'; @@ -130,8 +133,20 @@ export function mockUnknownReferencePolicyConfig( export function mockCollectFee(overrides?: Partial): CollectFee { return { amount: mockDaiAmount(1, ChainType.POLYGON), - contractAddress: mockEvmAddress(), + module: mockEvmAddress(), + spender: mockEvmAddress(), ...overrides, + type: FeeType.COLLECT, + }; +} + +export function mockMintFee(overrides?: Partial): MintFee { + return { + amount: mockDaiAmount(1, ChainType.POLYGON), + module: mockEvmAddress(), + spender: mockEvmAddress(), + ...overrides, + type: FeeType.MINT, }; } @@ -149,6 +164,21 @@ export function mockLegacyCollectRequest( }; } +export function mockSharedRevenueCollectRequest( + overrides?: Partial, +): SharedRevenueCollectRequest { + return { + publicationId: mockPublicationId(), + fee: mockMintFee(), + public: false, + signless: true, + sponsored: true, + ...overrides, + type: AllOpenActionType.SHARED_REVENUE_COLLECT, + kind: TransactionKind.ACT_ON_PUBLICATION, + }; +} + export function mockSimpleCollectRequest( overrides?: Partial, ): SimpleCollectRequest { diff --git a/packages/domain/src/use-cases/publications/__tests__/OpenAction.spec.ts b/packages/domain/src/use-cases/publications/__tests__/OpenAction.spec.ts index c716aa05b..c70dda1c1 100644 --- a/packages/domain/src/use-cases/publications/__tests__/OpenAction.spec.ts +++ b/packages/domain/src/use-cases/publications/__tests__/OpenAction.spec.ts @@ -21,7 +21,9 @@ import { import { mockCollectFee, mockLegacyCollectRequest, + mockMintFee, mockMultirecipientCollectRequest, + mockSharedRevenueCollectRequest, mockSimpleCollectRequest, mockUnknownActionRequest, } from '../__helpers__/mocks'; @@ -54,28 +56,36 @@ function setupOpenAction({ } describe(`Given the ${OpenAction.name} use-case interactor`, () => { - describe.only.each([ + describe.each([ { - description: 'LegacyCollectRequest', + description: 'LegacyCollectRequest with collect fee', request: mockLegacyCollectRequest({ fee: mockCollectFee() }), }, { - description: 'SimpleCollectRequest', + description: 'SimpleCollectRequest with collect fee', request: mockSimpleCollectRequest({ fee: mockCollectFee() }), }, { - description: 'MultirecipientCollectRequest', + description: 'SharedRevenueCollectRequest with mint fee', + request: mockSharedRevenueCollectRequest({ fee: mockMintFee() }), + }, + { + description: 'SharedRevenueCollectRequest with collect fee', + request: mockSharedRevenueCollectRequest({ fee: mockCollectFee() }), + }, + { + description: 'MultirecipientCollectRequest (implicit collect fee)', request: mockMultirecipientCollectRequest(), }, { - description: 'public SimpleCollectRequest', + description: 'public SimpleCollectRequest with fee', request: mockSimpleCollectRequest({ fee: mockCollectFee(), public: true }), }, { - description: 'public MultirecipientCollectRequest', + description: 'public MultirecipientCollectRequest (implicit collect fee)', request: mockMultirecipientCollectRequest({ public: true }), }, - ])(`when executed with a request that requires a fee`, ({ request, description }) => { + ])(`when executed with a request that involves a fee`, ({ request, description }) => { invariant(isPaidCollectRequest(request), 'Test misconfiguration.'); it(`should check the token availability for ${description}`, async () => { @@ -87,7 +97,7 @@ describe(`Given the ${OpenAction.name} use-case interactor`, () => { const tokenAvailability = mockTokeAvailability({ request: { amount: request.fee.amount, - spender: request.fee.contractAddress, + spender: request.fee.spender, }, result: failure(error), }); @@ -104,7 +114,7 @@ describe(`Given the ${OpenAction.name} use-case interactor`, () => { }); }); - describe.only.each([ + describe.each([ { type: 'LegacyCollectRequest', request: mockLegacyCollectRequest({ fee: mockCollectFee() }), @@ -113,18 +123,22 @@ describe(`Given the ${OpenAction.name} use-case interactor`, () => { type: 'SimpleCollectRequest', request: mockSimpleCollectRequest({ fee: mockCollectFee() }), }, + { + type: 'SharedRevenueCollectRequest with mint fee', + request: mockSharedRevenueCollectRequest(), + }, { type: 'MultirecipientCollectRequest', request: mockMultirecipientCollectRequest(), }, - ])(`when executed with a request that requires a fee`, ({ request, type }) => { + ])(`when executed with a request that involves a fee`, ({ request, type }) => { invariant(isPaidCollectRequest(request), 'Test misconfiguration.'); it(`should support the ${SignedOnChain.name}<${type}> strategy`, async () => { const tokenAvailability = mockTokeAvailability({ request: { amount: request.fee.amount, - spender: request.fee.contractAddress, + spender: request.fee.spender, }, result: success(), }); @@ -140,12 +154,17 @@ describe(`Given the ${OpenAction.name} use-case interactor`, () => { }); }); - describe.only.each([ + describe.each([ { type: 'SimpleCollectRequest', request: mockSimpleCollectRequest({ fee: undefined, public: true }), tokenAvailability: mock(), }, + { + type: 'SharedRevenueCollectRequest', + request: mockSharedRevenueCollectRequest({ public: true }), + tokenAvailability: mockTokeAvailability({ result: success() }), + }, { type: 'UnknownActionRequest', request: mockUnknownActionRequest({ public: true }), @@ -170,7 +189,7 @@ describe(`Given the ${OpenAction.name} use-case interactor`, () => { }); }); - describe.only.each([ + describe.each([ { type: 'LegacyCollectRequest', request: mockLegacyCollectRequest({ fee: undefined }), @@ -184,7 +203,7 @@ describe(`Given the ${OpenAction.name} use-case interactor`, () => { request: mockUnknownActionRequest(), }, ])( - `when executed with a request without fee or for which is not possible to determine (e.g. unknown open action)`, + `when executed with a request without fee or for which is not possible to determine if requires a fee (e.g. unknown open action)`, ({ request, type }) => { it(`should support the ${DelegableSigning.name}<${type}> strategy`, async () => { const { openAction, signedExecution, delegableExecution, paidExecution } = @@ -199,7 +218,7 @@ describe(`Given the ${OpenAction.name} use-case interactor`, () => { }, ); - describe.only.each([ + describe.each([ { type: 'LegacyCollectRequest', request: mockLegacyCollectRequest({ sponsored: false }), @@ -208,6 +227,10 @@ describe(`Given the ${OpenAction.name} use-case interactor`, () => { type: 'SimpleCollectRequest', request: mockSimpleCollectRequest({ sponsored: false }), }, + { + type: 'SharedRevenueCollectRequest', + request: mockSharedRevenueCollectRequest({ sponsored: false }), + }, { type: 'UnknownActionRequest', request: mockUnknownActionRequest({ sponsored: false }), @@ -220,8 +243,9 @@ describe(`Given the ${OpenAction.name} use-case interactor`, () => { 'when executed with a request that has the "sponsored" flag set to false', ({ request, type }) => { it(`should support the ${PaidTransaction.name}<${type}> strategy`, async () => { - const { openAction, signedExecution, delegableExecution, paidExecution } = - setupOpenAction(); + const { openAction, signedExecution, delegableExecution, paidExecution } = setupOpenAction({ + tokenAvailability: mockTokeAvailability({ result: success() }), + }); await openAction.execute(request); diff --git a/packages/domain/src/use-cases/transactions/BroadcastingError.ts b/packages/domain/src/use-cases/transactions/BroadcastingError.ts index a1adf860d..292d49cab 100644 --- a/packages/domain/src/use-cases/transactions/BroadcastingError.ts +++ b/packages/domain/src/use-cases/transactions/BroadcastingError.ts @@ -7,6 +7,8 @@ export type RequestFallback = AnyTransactionRequestModel; export enum BroadcastingErrorReason { /** * The app is not whitelisted to use gasless transactions. + * + * @deprecated This error reason is not longer used and will be removed in the future. */ APP_NOT_ALLOWED = 'APP_NOT_ALLOWED', /** diff --git a/packages/gated-content/codegen.yml b/packages/gated-content/codegen.yml index f45ac5700..fcdab0697 100644 --- a/packages/gated-content/codegen.yml +++ b/packages/gated-content/codegen.yml @@ -11,6 +11,7 @@ config: field: false strictScalars: true scalars: + ABIJson: string AppId: string BlockchainData: string BroadcastId: string diff --git a/packages/gated-content/src/graphql/__helpers__/mocks.ts b/packages/gated-content/src/graphql/__helpers__/mocks.ts index d24bbf5b9..0c1734a67 100644 --- a/packages/gated-content/src/graphql/__helpers__/mocks.ts +++ b/packages/gated-content/src/graphql/__helpers__/mocks.ts @@ -141,6 +141,7 @@ export function mockPublicationMetadataLitEncryption( ): PublicationMetadataLitEncryption { return { accessCondition: mockRootCondition(), + accessControlContract: mockNetworkAddress(), encryptionKey: faker.datatype.hexadecimal({ length: 368 }), encryptedPaths: [], ...overrides, diff --git a/packages/gated-content/src/graphql/generated.ts b/packages/gated-content/src/graphql/generated.ts index fe1ce08ca..70d7cbf67 100644 --- a/packages/gated-content/src/graphql/generated.ts +++ b/packages/gated-content/src/graphql/generated.ts @@ -10,6 +10,7 @@ export type Scalars = { Boolean: boolean; Int: number; Float: number; + ABIJson: string; AppId: string; BlockchainData: string; BroadcastId: string; @@ -55,6 +56,7 @@ export type Scalars = { export type ActOnOpenActionInput = { readonly multirecipientCollectOpenAction?: InputMaybe; + readonly protocolSharedRevenueCollectOpenAction?: InputMaybe; readonly simpleCollectOpenAction?: InputMaybe; readonly unknownOpenAction?: InputMaybe; }; @@ -107,13 +109,20 @@ export type AlreadyInvitedCheckRequest = { export type Amount = { readonly __typename: 'Amount'; + /** This is the total value of the amount in the fiat currency */ + readonly asFiat?: Maybe; /** The asset */ readonly asset: Asset; + /** This is the most recent snapshotted 1:1 conversion rate between the asset and the requested fiat currency */ readonly rate?: Maybe; /** Floating point number as string (e.g. 42.009837). It could have the entire precision of the Asset or be truncated to the last significant decimal. */ readonly value: Scalars['String']; }; +export type AmountAsFiatArgs = { + request: RateRequest; +}; + export type AmountRateArgs = { request: RateRequest; }; @@ -229,6 +238,8 @@ export type AuthenticationResult = { readonly __typename: 'AuthenticationResult'; /** The access token */ readonly accessToken: Scalars['Jwt']; + /** The identity token */ + readonly identityToken: Scalars['Jwt']; /** The refresh token */ readonly refreshToken: Scalars['Jwt']; }; @@ -335,14 +346,28 @@ export type ClaimProfileWithHandleRequest = { export type ClaimProfileWithHandleResult = ClaimProfileWithHandleErrorResult | RelaySuccess; +export type ClaimTokensRequest = { + readonly for: ClaimableTokenType; +}; + export type ClaimableProfilesResult = { readonly __typename: 'ClaimableProfilesResult'; readonly canMintProfileWithFreeTextHandle: Scalars['Boolean']; readonly reserved: ReadonlyArray; }; +export enum ClaimableTokenType { + Bonsai = 'BONSAI', +} + +export type ClaimableTokensResult = { + readonly __typename: 'ClaimableTokensResult'; + readonly bonsai: Amount; +}; + export type CollectActionModuleInput = { readonly multirecipientCollectOpenAction?: InputMaybe; + readonly protocolSharedRevenueCollectOpenAction?: InputMaybe; readonly simpleCollectOpenAction?: InputMaybe; }; @@ -375,6 +400,8 @@ export type Comment = { readonly createdAt: Scalars['DateTime']; readonly firstComment?: Maybe; readonly hashtagsMentioned: ReadonlyArray; + /** Signifies whether this comment has been hidden by the author of its parent publication */ + readonly hiddenByAuthor: Scalars['Boolean']; readonly id: Scalars['PublicationId']; readonly isEncrypted: Scalars['Boolean']; readonly isHidden: Scalars['Boolean']; @@ -563,6 +590,61 @@ export type CreateFollowEip712TypedDataValue = { readonly nonce: Scalars['Nonce']; }; +export type CreateFrameEip712TypedData = { + readonly __typename: 'CreateFrameEIP712TypedData'; + /** The typed data domain */ + readonly domain: Eip712TypedDataDomain; + /** The types */ + readonly types: CreateFrameEip712TypedDataTypes; + /** The values */ + readonly value: CreateFrameEip712TypedDataValue; +}; + +export type CreateFrameEip712TypedDataInput = { + /** The typed data domain */ + readonly domain: Eip712TypedDataDomainInput; + /** The types */ + readonly types: CreateFrameEip712TypedDataTypesInput; + /** The values */ + readonly value: CreateFrameEip712TypedDataValueInput; +}; + +export type CreateFrameEip712TypedDataTypes = { + readonly __typename: 'CreateFrameEIP712TypedDataTypes'; + readonly FrameData: ReadonlyArray; +}; + +export type CreateFrameEip712TypedDataTypesInput = { + readonly FrameData: ReadonlyArray; +}; + +export type CreateFrameEip712TypedDataValue = { + readonly __typename: 'CreateFrameEIP712TypedDataValue'; + readonly actionResponse: Scalars['String']; + readonly buttonIndex: Scalars['Int']; + readonly deadline: Scalars['UnixTimestamp']; + readonly inputText: Scalars['String']; + readonly profileId: Scalars['ProfileId']; + readonly pubId: Scalars['PublicationId']; + /** The EIP-721 spec version, must be 1.0.0 */ + readonly specVersion: Scalars['String']; + readonly state: Scalars['String']; + readonly url: Scalars['URI']; +}; + +export type CreateFrameEip712TypedDataValueInput = { + readonly actionResponse: Scalars['String']; + readonly buttonIndex: Scalars['Int']; + readonly deadline: Scalars['UnixTimestamp']; + readonly inputText: Scalars['String']; + readonly profileId: Scalars['ProfileId']; + readonly pubId: Scalars['PublicationId']; + /** The EIP-721 spec version, must be 1.0.0 */ + readonly specVersion: Scalars['String']; + readonly state: Scalars['String']; + readonly url: Scalars['URI']; +}; + export type CreateLegacyCollectBroadcastItemResult = { readonly __typename: 'CreateLegacyCollectBroadcastItemResult'; /** The date the broadcast item expiries */ @@ -1198,10 +1280,40 @@ export type DegreesOfSeparationReferenceModuleSettings = { readonly type: ReferenceModuleType; }; +export type DidReactOnPublicationPublicationIdAndProfileId = { + readonly profileId: Scalars['ProfileId']; + readonly publicationId: Scalars['PublicationId']; +}; + +export type DidReactOnPublicationRequest = { + readonly for: ReadonlyArray; + readonly where?: InputMaybe; +}; + +export type DidReactOnPublicationResult = { + readonly __typename: 'DidReactOnPublicationResult'; + readonly profileId: Scalars['ProfileId']; + readonly publicationId: Scalars['PublicationId']; + readonly result: Scalars['Boolean']; +}; + export type DismissRecommendedProfilesRequest = { readonly dismiss: ReadonlyArray; }; +export type DisputedReport = { + readonly __typename: 'DisputedReport'; + readonly createdAt: Scalars['DateTime']; + readonly disputeReason: Scalars['String']; + readonly disputer: Profile; + readonly reportAdditionalInfo: Scalars['String']; + readonly reportReason: Scalars['String']; + readonly reportSubreason: Scalars['String']; + readonly reportedProfile: Profile; + readonly reportedPublication?: Maybe; + readonly reporter: Profile; +}; + /** The eip 712 typed data domain */ export type Eip712TypedDataDomain = { readonly __typename: 'EIP712TypedDataDomain'; @@ -1215,6 +1327,17 @@ export type Eip712TypedDataDomain = { readonly version: Scalars['String']; }; +export type Eip712TypedDataDomainInput = { + /** The chainId */ + readonly chainId: Scalars['ChainId']; + /** The name of the typed data domain */ + readonly name: Scalars['String']; + /** The verifying contract */ + readonly verifyingContract: Scalars['EvmAddress']; + /** The version */ + readonly version: Scalars['String']; +}; + /** The eip 712 typed data field */ export type Eip712TypedDataField = { readonly __typename: 'EIP712TypedDataField'; @@ -1224,6 +1347,13 @@ export type Eip712TypedDataField = { readonly type: Scalars['String']; }; +export type Eip712TypedDataFieldInput = { + /** The name of the typed data field */ + readonly name: Scalars['String']; + /** The type of the typed data field */ + readonly type: Scalars['String']; +}; + export type EmbedMetadataV3 = { readonly __typename: 'EmbedMetadataV3'; readonly appId?: Maybe; @@ -1392,6 +1522,7 @@ export enum ExplorePublicationsOrderByType { TopCommented = 'TOP_COMMENTED', TopMirrored = 'TOP_MIRRORED', TopQuoted = 'TOP_QUOTED', + TopReacted = 'TOP_REACTED', } export type ExplorePublicationsWhere = { @@ -1459,6 +1590,7 @@ export type FeedRequest = { }; export type FeedWhere = { + readonly customFilters?: InputMaybe>; readonly feedEventItemTypes?: InputMaybe>; readonly for?: InputMaybe; readonly metadata?: InputMaybe; @@ -1492,7 +1624,7 @@ export type FollowLensManager = { readonly profileId: Scalars['ProfileId']; }; -/** The lens manager will only support FREE follow modules, if you want your unknown module allowed to be signless please contact us */ +/** The lens manager will only support follow modules which are verified here - https://github.com/lens-protocol/verified-modules/blob/master/follow-modules.json */ export type FollowLensManagerModuleRedeemInput = { readonly unknownFollowModule?: InputMaybe; }; @@ -1536,6 +1668,12 @@ export type FollowOnlyReferenceModuleSettings = { readonly type: ReferenceModuleType; }; +export type FollowPaidAction = { + readonly __typename: 'FollowPaidAction'; + readonly followed: Profile; + readonly latestActed: ReadonlyArray; +}; + export type FollowRequest = { readonly follow: ReadonlyArray; }; @@ -1569,14 +1707,68 @@ export type FollowersRequest = { readonly cursor?: InputMaybe; readonly limit?: InputMaybe; readonly of: Scalars['ProfileId']; + /** The order by which to sort the profiles - note if your looking at your own followers it always be DESC */ + readonly orderBy?: InputMaybe; }; export type FollowingRequest = { readonly cursor?: InputMaybe; readonly for: Scalars['ProfileId']; readonly limit?: InputMaybe; + /** The order by which to sort the profiles - note if your looking at your own following it always be DESC */ + readonly orderBy?: InputMaybe; +}; + +export type FrameEip712Request = { + readonly actionResponse: Scalars['String']; + readonly buttonIndex: Scalars['Int']; + readonly deadline: Scalars['UnixTimestamp']; + readonly inputText: Scalars['String']; + readonly profileId: Scalars['ProfileId']; + readonly pubId: Scalars['PublicationId']; + /** The EIP-721 spec version, must be 1.0.0 */ + readonly specVersion: Scalars['String']; + readonly state: Scalars['String']; + readonly url: Scalars['URI']; +}; + +export type FrameLensManagerEip712Request = { + readonly actionResponse: Scalars['String']; + readonly buttonIndex: Scalars['Int']; + readonly inputText: Scalars['String']; + readonly profileId: Scalars['ProfileId']; + readonly pubId: Scalars['PublicationId']; + /** The EIP-721 spec version, must be 1.0.0 */ + readonly specVersion: Scalars['String']; + readonly state: Scalars['String']; + readonly url: Scalars['URI']; +}; + +export type FrameLensManagerSignatureResult = { + readonly __typename: 'FrameLensManagerSignatureResult'; + /** The signature */ + readonly signature: Scalars['Signature']; + /** The typed data signed */ + readonly signedTypedData: CreateFrameEip712TypedData; +}; + +export type FrameVerifySignature = { + /** The identity token */ + readonly identityToken: Scalars['Jwt']; + /** The signature */ + readonly signature: Scalars['Signature']; + /** The typed data signed */ + readonly signedTypedData: CreateFrameEip712TypedDataInput; }; +export enum FrameVerifySignatureResult { + DeadlineExpired = 'DEADLINE_EXPIRED', + IdentityCannotUseProfile = 'IDENTITY_CANNOT_USE_PROFILE', + IdentityUnauthorized = 'IDENTITY_UNAUTHORIZED', + SignerAddressCannotUseProfile = 'SIGNER_ADDRESS_CANNOT_USE_PROFILE', + Verified = 'VERIFIED', +} + export type FraudReasonInput = { readonly reason: PublicationReportingReason; readonly subreason: PublicationReportingFraudSubreason; @@ -1604,6 +1796,18 @@ export type GeoLocation = { readonly rawURI: Scalars['EncryptableURI']; }; +export type GetModuleMetadataResult = { + readonly __typename: 'GetModuleMetadataResult'; + readonly metadata: ModuleMetadata; + readonly moduleType: ModuleType; + /** True if the module can be signedless and use lens manager without a signature */ + readonly signlessApproved: Scalars['Boolean']; + /** True if the module can be sponsored through gasless so the user does not need to pay for gas */ + readonly sponsoredApproved: Scalars['Boolean']; + /** True if the module is deemed as safe */ + readonly verified: Scalars['Boolean']; +}; + export type GetProfileMetadataArgs = { /** The app id to query the profile's metadata */ readonly appId?: InputMaybe; @@ -1611,10 +1815,17 @@ export type GetProfileMetadataArgs = { readonly useFallback?: InputMaybe; }; +export type HandleGuardianResult = { + readonly __typename: 'HandleGuardianResult'; + readonly cooldownEndsOn?: Maybe; + readonly protected: Scalars['Boolean']; +}; + export type HandleInfo = { readonly __typename: 'HandleInfo'; /** The full handle - namespace/localname */ readonly fullHandle: Scalars['Handle']; + readonly guardian: HandleGuardianResult; /** The handle nft token id */ readonly id: Scalars['TokenId']; /** If null its not linked to anything */ @@ -1636,10 +1847,38 @@ export type HandleLinkedTo = { readonly nftTokenId: Scalars['TokenId']; }; +export type HandleToAddressRequest = { + /** The full handle - namespace/localname */ + readonly handle: Scalars['Handle']; +}; + +export enum HiddenCommentsType { + HiddenOnly = 'HIDDEN_ONLY', + Hide = 'HIDE', + Show = 'SHOW', +} + +export type HideCommentRequest = { + /** The comment to hide. It has to be under a publication made by the user making the request. If already hidden, nothing will happen. */ + readonly for: Scalars['PublicationId']; +}; + +export type HideManagedProfileRequest = { + /** The profile to hide */ + readonly profileId: Scalars['ProfileId']; +}; + export type HidePublicationRequest = { readonly for: Scalars['PublicationId']; }; +export type IphResult = { + readonly __typename: 'IPHResult'; + readonly h?: Maybe; + readonly hda: Scalars['Boolean']; + readonly hs: Scalars['Boolean']; +}; + export type IdKitPhoneVerifyWebhookRequest = { readonly sharedSecret: Scalars['String']; readonly worldcoin?: InputMaybe; @@ -1727,6 +1966,19 @@ export type InternalAllowedDomainsRequest = { readonly secret: Scalars['String']; }; +export type InternalBoostProfileRequest = { + readonly h?: InputMaybe; + readonly p?: InputMaybe; + readonly s: Scalars['Int']; + readonly secret: Scalars['String']; +}; + +export type InternalBoostScoreRequest = { + readonly h?: InputMaybe; + readonly p?: InputMaybe; + readonly secret: Scalars['String']; +}; + export type InternalClaimRequest = { readonly address: Scalars['EvmAddress']; readonly freeTextHandle?: InputMaybe; @@ -1762,6 +2014,12 @@ export type InternalInvitesRequest = { readonly secret: Scalars['String']; }; +export type InternalMintHandleAndProfileRequest = { + readonly a: Scalars['EvmAddress']; + readonly h: Scalars['String']; + readonly secret: Scalars['String']; +}; + export type InternalNftIndexRequest = { readonly n: ReadonlyArray; readonly secret: Scalars['String']; @@ -1772,6 +2030,11 @@ export type InternalNftVerifyRequest = { readonly secret: Scalars['String']; }; +export type InternalPaymentHandleInfoRequest = { + readonly p: Scalars['String']; + readonly secret: Scalars['String']; +}; + export type InternalProfileStatusRequest = { readonly hhh: Scalars['String']; readonly secret: Scalars['String']; @@ -1783,6 +2046,14 @@ export type InternalRemoveCuratedTagRequest = { readonly ttt: Scalars['String']; }; +export type InternalUpdateModuleOptionsRequest = { + readonly i: Scalars['EvmAddress']; + readonly lma?: InputMaybe; + readonly secret: Scalars['String']; + readonly t: ModuleType; + readonly v?: InputMaybe; +}; + export type InternalUpdateProfileStatusRequest = { readonly dd: Scalars['Boolean']; readonly hhh: Scalars['String']; @@ -1796,6 +2067,8 @@ export type InviteRequest = { export type InvitedResult = { readonly __typename: 'InvitedResult'; + readonly addressInvited: Scalars['EvmAddress']; + /** @deprecated Profiles hand out invites on Lens V2 so this is unnecessary information. Will always be the dead address. */ readonly by: Scalars['EvmAddress']; readonly profileMinted?: Maybe; readonly when: Scalars['DateTime']; @@ -1819,6 +2092,28 @@ export type LastLoggedInProfileRequest = { readonly for: Scalars['EvmAddress']; }; +export type LatestActed = { + readonly __typename: 'LatestActed'; + readonly actedAt: Scalars['DateTime']; + readonly profile: Profile; + readonly txHash: Scalars['TxHash']; +}; + +export type LatestPaidActionsFilter = { + readonly openActionFilters?: InputMaybe>; + readonly openActionPublicationMetadataFilters?: InputMaybe; +}; + +export type LatestPaidActionsResult = { + readonly __typename: 'LatestPaidActionsResult'; + readonly items: ReadonlyArray; + readonly pageInfo: PaginatedResultInfo; +}; + +export type LatestPaidActionsWhere = { + readonly customFilters?: InputMaybe>; +}; + export type LegacyAaveFeeCollectModuleSettings = { readonly __typename: 'LegacyAaveFeeCollectModuleSettings'; /** The collect module amount info */ @@ -2024,11 +2319,6 @@ export enum LensProfileManagerRelayErrorReasonType { export type LensProfileManagerRelayResult = LensProfileManagerRelayError | RelaySuccess; -export enum LensProtocolVersion { - V1 = 'V1', - V2 = 'V2', -} - export enum LensTransactionFailureType { MetadataError = 'METADATA_ERROR', Reverted = 'REVERTED', @@ -2110,6 +2400,13 @@ export type LiveStreamMetadataV3 = { readonly title: Scalars['String']; }; +/** Managed profile visibility type */ +export enum ManagedProfileVisibility { + All = 'ALL', + HiddenOnly = 'HIDDEN_ONLY', + NoneHidden = 'NONE_HIDDEN', +} + export type MarketplaceMetadata = { readonly __typename: 'MarketplaceMetadata'; readonly animationUrl?: Maybe; @@ -2196,6 +2493,58 @@ export type MirrorNotification = { export type MirrorablePublication = Comment | Post | Quote; +export type ModDisputeReportRequest = { + readonly reason: Scalars['String']; + readonly reportedProfileId?: InputMaybe; + readonly reportedPublicationId?: InputMaybe; + readonly reporter: Scalars['ProfileId']; +}; + +export type ModExplorePublicationRequest = { + readonly cursor?: InputMaybe; + readonly limit?: InputMaybe; + readonly orderBy: ExplorePublicationsOrderByType; + readonly where?: InputMaybe; +}; + +export enum ModExplorePublicationType { + Comment = 'COMMENT', + Post = 'POST', + Quote = 'QUOTE', +} + +export type ModExplorePublicationsWhere = { + readonly customFilters?: InputMaybe>; + readonly metadata?: InputMaybe; + readonly publicationTypes?: InputMaybe>; + readonly since?: InputMaybe; +}; + +export type ModFollowerResult = { + readonly __typename: 'ModFollowerResult'; + readonly createdAt: Scalars['DateTime']; + readonly follower: Profile; + readonly following: Profile; +}; + +export type ModReport = { + readonly __typename: 'ModReport'; + readonly additionalInfo?: Maybe; + readonly createdAt: Scalars['DateTime']; + readonly reason: Scalars['String']; + readonly reportedProfile: Profile; + readonly reportedPublication?: Maybe; + readonly reporter: Profile; + readonly subreason: Scalars['String']; +}; + +export type ModReportsRequest = { + readonly cursor?: InputMaybe; + readonly forProfile?: InputMaybe; + readonly forPublication?: InputMaybe; + readonly limit?: InputMaybe; +}; + export type ModuleCurrencyApproval = { readonly followModule?: InputMaybe; readonly openActionModule?: InputMaybe; @@ -2211,6 +2560,28 @@ export type ModuleInfo = { readonly type: Scalars['String']; }; +export type ModuleMetadata = { + readonly __typename: 'ModuleMetadata'; + readonly attributes: ReadonlyArray; + readonly authors: ReadonlyArray; + readonly description: Scalars['String']; + readonly initializeCalldataABI: Scalars['ABIJson']; + readonly initializeResultDataABI?: Maybe; + readonly name: Scalars['String']; + readonly processCalldataABI: Scalars['ABIJson']; + readonly title: Scalars['String']; +}; + +export type ModuleMetadataRequest = { + readonly implementation: Scalars['EvmAddress']; +}; + +export enum ModuleType { + Follow = 'FOLLOW', + OpenAction = 'OPEN_ACTION', + Reference = 'REFERENCE', +} + export type MomokaCommentRequest = { readonly commentOn: Scalars['PublicationId']; readonly contentURI: Scalars['URI']; @@ -2340,6 +2711,7 @@ export enum MomokaValidatorError { PotentialReorg = 'POTENTIAL_REORG', PublicationNonceInvalid = 'PUBLICATION_NONCE_INVALID', PublicationNoneDa = 'PUBLICATION_NONE_DA', + PublicationNotRecognized = 'PUBLICATION_NOT_RECOGNIZED', PublicationNoPointer = 'PUBLICATION_NO_POINTER', PublicationSignerNotAllowed = 'PUBLICATION_SIGNER_NOT_ALLOWED', SimulationFailed = 'SIMULATION_FAILED', @@ -2433,23 +2805,33 @@ export type Mutation = { readonly deleteNftGallery?: Maybe; readonly dismissRecommendedProfiles?: Maybe; readonly follow: LensProfileManagerRelayResult; + /** Hides a comment that exists under a publication made by the author. If already hidden, does nothing. */ + readonly hideComment?: Maybe; + /** Hide a managed profile from your managed profiles list. */ + readonly hideManagedProfile?: Maybe; readonly hidePublication?: Maybe; readonly idKitPhoneVerifyWebhook: IdKitPhoneVerifyWebhookResultStatusType; readonly internalAddCuratedTag?: Maybe; readonly internalAddInvites?: Maybe; readonly internalAllowDomain?: Maybe; + readonly internalBoostProfile: Scalars['Int']; readonly internalClaim?: Maybe; readonly internalCuratedUpdate?: Maybe; + readonly internalMintHandleAndProfile: Scalars['TxHash']; readonly internalNftIndex?: Maybe; readonly internalNftVerify?: Maybe; readonly internalRemoveCuratedTag?: Maybe; + readonly internalUpdateModuleOptions?: Maybe; readonly internalUpdateProfileStatus?: Maybe; readonly invite?: Maybe; readonly legacyCollect: LensProfileManagerRelayResult; readonly linkHandleToProfile: LensProfileManagerRelayResult; readonly mirrorOnMomoka: RelayMomokaResult; readonly mirrorOnchain: LensProfileManagerRelayResult; + readonly modDisputeReport?: Maybe; readonly nftOwnershipChallenge: NftOwnershipChallengeResult; + readonly peerToPeerRecommend?: Maybe; + readonly peerToPeerUnrecommend?: Maybe; readonly postOnMomoka: RelayMomokaResult; readonly postOnchain: LensProfileManagerRelayResult; readonly quoteOnMomoka: RelayMomokaResult; @@ -2459,14 +2841,20 @@ export type Mutation = { readonly removeProfileInterests?: Maybe; readonly removePublicationBookmark?: Maybe; readonly removeReaction?: Maybe; + readonly reportProfile?: Maybe; readonly reportPublication?: Maybe; readonly revokeAuthentication?: Maybe; readonly setDefaultProfile?: Maybe; readonly setFollowModule: LensProfileManagerRelayResult; readonly setProfileMetadata: LensProfileManagerRelayResult; + readonly signFrameAction: FrameLensManagerSignatureResult; readonly unblock: LensProfileManagerRelayResult; readonly undoPublicationNotInterested?: Maybe; readonly unfollow: LensProfileManagerRelayResult; + /** Unhides a hidden comment under a publication made by the author. If not hidden, does nothing. */ + readonly unhideComment?: Maybe; + /** Unhide an already hidden managed profile from your managed profiles list. */ + readonly unhideManagedProfile?: Maybe; readonly unlinkHandleFromProfile: LensProfileManagerRelayResult; readonly updateNftGalleryInfo?: Maybe; readonly updateNftGalleryItems?: Maybe; @@ -2637,6 +3025,14 @@ export type MutationFollowArgs = { request: FollowLensManagerRequest; }; +export type MutationHideCommentArgs = { + request: HideCommentRequest; +}; + +export type MutationHideManagedProfileArgs = { + request: HideManagedProfileRequest; +}; + export type MutationHidePublicationArgs = { request: HidePublicationRequest; }; @@ -2657,6 +3053,10 @@ export type MutationInternalAllowDomainArgs = { request: InternalAllowDomainRequest; }; +export type MutationInternalBoostProfileArgs = { + request: InternalBoostProfileRequest; +}; + export type MutationInternalClaimArgs = { request: InternalClaimRequest; }; @@ -2665,6 +3065,10 @@ export type MutationInternalCuratedUpdateArgs = { request: InternalCuratedUpdateRequest; }; +export type MutationInternalMintHandleAndProfileArgs = { + request: InternalMintHandleAndProfileRequest; +}; + export type MutationInternalNftIndexArgs = { request: InternalNftIndexRequest; }; @@ -2677,6 +3081,10 @@ export type MutationInternalRemoveCuratedTagArgs = { request: InternalRemoveCuratedTagRequest; }; +export type MutationInternalUpdateModuleOptionsArgs = { + request: InternalUpdateModuleOptionsRequest; +}; + export type MutationInternalUpdateProfileStatusArgs = { request: InternalUpdateProfileStatusRequest; }; @@ -2701,10 +3109,22 @@ export type MutationMirrorOnchainArgs = { request: OnchainMirrorRequest; }; +export type MutationModDisputeReportArgs = { + request: ModDisputeReportRequest; +}; + export type MutationNftOwnershipChallengeArgs = { request: NftOwnershipChallengeRequest; }; +export type MutationPeerToPeerRecommendArgs = { + request: PeerToPeerRecommendRequest; +}; + +export type MutationPeerToPeerUnrecommendArgs = { + request: PeerToPeerRecommendRequest; +}; + export type MutationPostOnMomokaArgs = { request: MomokaPostRequest; }; @@ -2741,6 +3161,10 @@ export type MutationRemoveReactionArgs = { request: ReactionRequest; }; +export type MutationReportProfileArgs = { + request: ReportProfileRequest; +}; + export type MutationReportPublicationArgs = { request: ReportPublicationRequest; }; @@ -2761,6 +3185,10 @@ export type MutationSetProfileMetadataArgs = { request: OnchainSetProfileMetadataRequest; }; +export type MutationSignFrameActionArgs = { + request: FrameLensManagerEip712Request; +}; + export type MutationUnblockArgs = { request: UnblockRequest; }; @@ -2773,6 +3201,14 @@ export type MutationUnfollowArgs = { request: UnfollowRequest; }; +export type MutationUnhideCommentArgs = { + request: UnhideCommentRequest; +}; + +export type MutationUnhideManagedProfileArgs = { + request: UnhideManagedProfileRequest; +}; + export type MutationUnlinkHandleFromProfileArgs = { request: UnlinkHandleFromProfileRequest; }; @@ -2797,6 +3233,8 @@ export type MutualFollowersRequest = { readonly cursor?: InputMaybe; readonly limit?: InputMaybe; readonly observer: Scalars['ProfileId']; + /** The order by which to sort the profiles */ + readonly orderBy?: InputMaybe; readonly viewing: Scalars['ProfileId']; }; @@ -2836,10 +3274,10 @@ export type Nfi = { export type Nft = { readonly __typename: 'Nft'; readonly collection: NftCollection; - readonly contentURI: Scalars['URI']; + readonly contentURI?: Maybe; readonly contract: NetworkAddress; readonly contractType: NftContractType; - readonly metadata: NftMetadata; + readonly metadata?: Maybe; readonly owner: Owner; readonly tokenId: Scalars['TokenId']; readonly totalSupply: Scalars['String']; @@ -3032,6 +3470,8 @@ export type Notification = export type NotificationRequest = { readonly cursor?: InputMaybe; + /** The order by which to sort the profiles on follows, reactions, actions and mirrors */ + readonly orderBy?: InputMaybe; readonly where?: InputMaybe; }; @@ -3050,6 +3490,7 @@ export type NotificationWhere = { readonly highSignalFilter?: InputMaybe; readonly notificationTypes?: InputMaybe>; readonly publishedOn?: InputMaybe>; + readonly timeBasedAggregation?: InputMaybe; }; export type OnchainCommentRequest = { @@ -3118,6 +3559,7 @@ export type OpenActionModule = | LegacySimpleCollectModuleSettings | LegacyTimedFeeCollectModuleSettings | MultirecipientFeeCollectOpenActionSettings + | ProtocolSharedRevenueCollectOpenActionSettings | SimpleCollectOpenActionSettings | UnknownOpenActionModuleSettings; @@ -3138,10 +3580,17 @@ export enum OpenActionModuleType { LegacySimpleCollectModule = 'LegacySimpleCollectModule', LegacyTimedFeeCollectModule = 'LegacyTimedFeeCollectModule', MultirecipientFeeCollectOpenActionModule = 'MultirecipientFeeCollectOpenActionModule', + ProtocolSharedRevenueCollectOpenActionModule = 'ProtocolSharedRevenueCollectOpenActionModule', SimpleCollectOpenActionModule = 'SimpleCollectOpenActionModule', UnknownOpenActionModule = 'UnknownOpenActionModule', } +export type OpenActionPaidAction = { + readonly __typename: 'OpenActionPaidAction'; + readonly actedOn: PrimaryPublication; + readonly latestActed: ReadonlyArray; +}; + export type OpenActionProfileActed = { readonly __typename: 'OpenActionProfileActed'; readonly actedAt: Scalars['DateTime']; @@ -3187,6 +3636,12 @@ export type PaginatedCurrenciesResult = { readonly pageInfo: PaginatedResultInfo; }; +export type PaginatedDisputedReports = { + readonly __typename: 'PaginatedDisputedReports'; + readonly items: ReadonlyArray; + readonly pageInfo: PaginatedResultInfo; +}; + export type PaginatedExplorePublicationResult = { readonly __typename: 'PaginatedExplorePublicationResult'; readonly items: ReadonlyArray; @@ -3211,6 +3666,24 @@ export type PaginatedHandlesResult = { readonly pageInfo: PaginatedResultInfo; }; +export type PaginatedModExplorePublicationResult = { + readonly __typename: 'PaginatedModExplorePublicationResult'; + readonly items: ReadonlyArray; + readonly pageInfo: PaginatedResultInfo; +}; + +export type PaginatedModFollowersResult = { + readonly __typename: 'PaginatedModFollowersResult'; + readonly items: ReadonlyArray; + readonly pageInfo: PaginatedResultInfo; +}; + +export type PaginatedModReports = { + readonly __typename: 'PaginatedModReports'; + readonly items: ReadonlyArray; + readonly pageInfo: PaginatedResultInfo; +}; + /** Nft collections paginated result */ export type PaginatedNftCollectionsResult = { readonly __typename: 'PaginatedNftCollectionsResult'; @@ -3301,6 +3774,11 @@ export type PaginatedPublicationsTagsResult = { readonly pageInfo: PaginatedResultInfo; }; +export type PaginatedRequest = { + readonly cursor?: InputMaybe; + readonly limit?: InputMaybe; +}; + /** The paginated result info */ export type PaginatedResultInfo = { readonly __typename: 'PaginatedResultInfo'; @@ -3328,6 +3806,13 @@ export type PaginatedWhoReactedResult = { readonly pageInfo: PaginatedResultInfo; }; +export type PaidAction = FollowPaidAction | OpenActionPaidAction; + +export type PeerToPeerRecommendRequest = { + /** The profile to recommend */ + readonly profileId: Scalars['ProfileId']; +}; + export type PhysicalAddress = { readonly __typename: 'PhysicalAddress'; /** The country name component. */ @@ -3412,7 +3897,7 @@ export type PopularNftCollectionsRequest = { /** Include only verified collections */ readonly onlyVerified?: InputMaybe; /** The ordering of Nft collection owners. Defaults to Total Lens Profile owners */ - readonly orderBy?: InputMaybe; + readonly orderBy?: PopularNftCollectionsOrder; }; export type Post = { @@ -3471,6 +3956,8 @@ export type Profile = { readonly operations: ProfileOperations; /** Who owns the profile */ readonly ownedBy: NetworkAddress; + /** If the profile has been recommended by the authenticated user */ + readonly peerToPeerRecommendedByMe: Scalars['Boolean']; /** If the profile has got signless enabled */ readonly signless: Scalars['Boolean']; /** If lens API will sponsor this persons for gasless experience, note they can have signless on but sponsor false which means it be rejected */ @@ -3524,6 +4011,11 @@ export enum ProfileActionHistoryType { UnlinkHandle = 'UNLINK_HANDLE', } +export type ProfileFraudReasonInput = { + readonly reason: ProfileReportingReason; + readonly subreason: ProfileReportingFraudSubreason; +}; + export type ProfileGuardianResult = { readonly __typename: 'ProfileGuardianResult'; readonly cooldownEndsOn?: Maybe; @@ -3699,6 +4191,26 @@ export type ProfileRecommendationsRequest = { readonly shuffle?: InputMaybe; }; +export enum ProfileReportingFraudSubreason { + Impersonation = 'IMPERSONATION', + SomethingElse = 'SOMETHING_ELSE', +} + +export enum ProfileReportingReason { + Fraud = 'FRAUD', + Spam = 'SPAM', +} + +export type ProfileReportingReasonInput = { + readonly fraudReason?: InputMaybe; + readonly spamReason?: InputMaybe; +}; + +export enum ProfileReportingSpamSubreason { + Repetitive = 'REPETITIVE', + SomethingElse = 'SOMETHING_ELSE', +} + export type ProfileRequest = { /** The handle for profile you want to fetch - namespace/localname */ readonly forHandle?: InputMaybe; @@ -3709,6 +4221,8 @@ export type ProfileRequest = { export type ProfileSearchRequest = { readonly cursor?: InputMaybe; readonly limit?: InputMaybe; + /** The order by which to sort the profiles */ + readonly orderBy?: InputMaybe; /** Query for the profile search */ readonly query: Scalars['String']; /** Filtering criteria for profile search */ @@ -3720,6 +4234,11 @@ export type ProfileSearchWhere = { readonly customFilters?: InputMaybe>; }; +export type ProfileSpamReasonInput = { + readonly reason: ProfileReportingReason; + readonly subreason: ProfileReportingSpamSubreason; +}; + /** The Profile Stats */ export type ProfileStats = { readonly __typename: 'ProfileStats'; @@ -3728,6 +4247,8 @@ export type ProfileStats = { readonly followers: Scalars['Int']; readonly following: Scalars['Int']; readonly id: Scalars['ProfileId']; + /** The profile classifier score of this profile relative to others on Lens. It is a % out of 100. */ + readonly lensClassifierScore?: Maybe; readonly mirrors: Scalars['Int']; readonly posts: Scalars['Int']; readonly publications: Scalars['Int']; @@ -3756,6 +4277,7 @@ export type ProfileStatsReactionsArgs = { export type ProfileStatsArg = { readonly customFilters?: InputMaybe>; readonly forApps?: InputMaybe>; + readonly hiddenComments?: InputMaybe; }; export type ProfileStatsCountOpenActionArgs = { @@ -3776,6 +4298,7 @@ export type ProfilesManagedRequest = { readonly cursor?: InputMaybe; /** The Ethereum address for which to retrieve managed profiles */ readonly for: Scalars['EvmAddress']; + readonly hiddenFilter?: InputMaybe; readonly includeOwned?: InputMaybe; readonly limit?: InputMaybe; }; @@ -3786,9 +4309,16 @@ export type ProfilesManagedResult = { readonly isLensManager: Scalars['Boolean']; }; +export enum ProfilesOrderBy { + Default = 'DEFAULT', + ProfileClassifier = 'PROFILE_CLASSIFIER', +} + export type ProfilesRequest = { readonly cursor?: InputMaybe; readonly limit?: InputMaybe; + /** The order by which to sort the profiles */ + readonly orderBy?: InputMaybe; /** The where clause to use to filter on what you are looking for */ readonly where: ProfilesRequestWhere; }; @@ -3808,6 +4338,40 @@ export type ProfilesRequestWhere = { readonly whoQuotedPublication?: InputMaybe; }; +export type ProtocolSharedRevenueCollectModuleInput = { + readonly amount?: InputMaybe; + readonly collectLimit?: InputMaybe; + /** The wallet of a client app to share revenues alongside the recipient and the protocol. Optional. */ + readonly creatorClient?: InputMaybe; + readonly currentCollects?: Scalars['Float']; + readonly endsAt?: InputMaybe; + readonly followerOnly: Scalars['Boolean']; + readonly recipient?: InputMaybe; + readonly referralFee?: InputMaybe; +}; + +export type ProtocolSharedRevenueCollectOpenActionSettings = { + readonly __typename: 'ProtocolSharedRevenueCollectOpenActionSettings'; + /** The collect module amount info. `Amount.value = 0` in case of free collects. */ + readonly amount: Amount; + /** The maximum number of collects for this publication. */ + readonly collectLimit?: Maybe; + /** The collect nft address - only deployed on first collect */ + readonly collectNft?: Maybe; + readonly contract: NetworkAddress; + /** If supplied, this is the app that will receive a split of the shared revenue together with the recipient as well as the protocol */ + readonly creatorClient?: Maybe; + /** The end timestamp after which collecting is impossible. */ + readonly endsAt?: Maybe; + /** True if only followers of publisher may collect the post. */ + readonly followerOnly: Scalars['Boolean']; + /** The collect module recipient address */ + readonly recipient: Scalars['EvmAddress']; + /** The collect module referral fee */ + readonly referralFee: Scalars['Float']; + readonly type: OpenActionModuleType; +}; + export type PublicationBookmarkRequest = { readonly on: Scalars['PublicationId']; }; @@ -3823,6 +4387,8 @@ export type PublicationBookmarksWhere = { }; export type PublicationCommentOn = { + /** You can use this enum to show, hide or show only hidden comments */ + readonly hiddenComments?: InputMaybe; readonly id: Scalars['PublicationId']; readonly ranking?: InputMaybe; }; @@ -3917,6 +4483,7 @@ export enum PublicationMetadataLicenseType { export type PublicationMetadataLitEncryption = { readonly __typename: 'PublicationMetadataLitEncryption'; readonly accessCondition: RootCondition; + readonly accessControlContract: NetworkAddress; readonly encryptedPaths: ReadonlyArray; readonly encryptionKey: Scalars['ContentEncryptionKey']; }; @@ -4050,6 +4617,7 @@ export enum PublicationReportingIllegalSubreason { AnimalAbuse = 'ANIMAL_ABUSE', DirectThreat = 'DIRECT_THREAT', HumanAbuse = 'HUMAN_ABUSE', + Plagiarism = 'PLAGIARISM', ThreatIndividual = 'THREAT_INDIVIDUAL', Violence = 'VIOLENCE', } @@ -4099,6 +4667,7 @@ export type PublicationSearchWhere = { readonly customFilters?: InputMaybe>; readonly metadata?: InputMaybe; readonly publicationTypes?: InputMaybe>; + readonly withOpenActions?: InputMaybe>; }; export type PublicationStats = { @@ -4126,6 +4695,7 @@ export type PublicationStatsCountOpenActionArgs = { export type PublicationStatsInput = { readonly customFilters?: InputMaybe>; + readonly hiddenComments?: InputMaybe; /** Filter the returned stats on apps and 1 of the following filters: tags, contentWarning, mainContentFocus, locale */ readonly metadata?: InputMaybe; }; @@ -4180,16 +4750,21 @@ export type PublicationsWhere = { export type Query = { readonly __typename: 'Query'; readonly approvedAuthentications: PaginatedApprovedAuthenticationResult; + /** note here if your using a wallet JWT token it will get the allowance of the public proxy contract if its supported if not throw as profiles act not wallets */ readonly approvedModuleAllowanceAmount: ReadonlyArray; readonly canClaim: ReadonlyArray; readonly challenge: AuthChallengeResult; + readonly claimTokens: LensProfileManagerRelayResult; readonly claimableProfiles: ClaimableProfilesResult; readonly claimableStatus: ClaimProfileStatusType; + readonly claimableTokens: ClaimableTokensResult; + readonly createFrameTypedData: CreateFrameEip712TypedData; /** Get all enabled currencies */ readonly currencies: PaginatedCurrenciesResult; readonly currentSession: ApprovedAuthentication; /** Get the default profile for a given EvmAddress. If no default is explicitly set, you will get the oldest profile owned by the address. */ readonly defaultProfile?: Maybe; + readonly didReactOnPublication: ReadonlyArray; readonly exploreProfiles: PaginatedProfileResult; readonly explorePublications: PaginatedExplorePublicationResult; readonly feed: PaginatedFeedResult; @@ -4198,18 +4773,29 @@ export type Query = { readonly followStatusBulk: ReadonlyArray; readonly followers: PaginatedProfileResult; readonly following: PaginatedProfileResult; + readonly generateLensAPIRelayAddress: Scalars['EvmAddress']; + /** note here if your using a wallet JWT token it will approve to the public proxy contract if its supported if not throw as profiles act not wallets */ readonly generateModuleCurrencyApprovalData: GenerateModuleCurrencyApprovalResult; + readonly handleToAddress?: Maybe; readonly internalAllowedDomains: ReadonlyArray; + readonly internalBoostScore?: Maybe; readonly internalClaimStatus?: Maybe; readonly internalCuratedHandles: ReadonlyArray; readonly internalCuratedTags: ReadonlyArray; readonly internalInvites: Scalars['Int']; + readonly internalPaymentHandleInfo?: Maybe; readonly internalProfileStatus: PrfResult; readonly invitedProfiles: ReadonlyArray; readonly lastLoggedInProfile?: Maybe; + readonly latestPaidActions: LatestPaidActionsResult; readonly lensAPIOwnedEOAs: ReadonlyArray; - readonly lensProtocolVersion: LensProtocolVersion; + readonly lensProtocolVersion: Scalars['String']; readonly lensTransactionStatus?: Maybe; + readonly modDisputedReports: PaginatedDisputedReports; + readonly modExplorePublications: PaginatedModExplorePublicationResult; + readonly modFollowers: PaginatedModFollowersResult; + readonly modLatestReports: PaginatedModReports; + readonly moduleMetadata?: Maybe; readonly momokaSubmitters: MomokaSubmittersResult; readonly momokaSummary: MomokaSummaryResult; readonly momokaTransaction?: Maybe; @@ -4255,9 +4841,11 @@ export type Query = { readonly supportedOpenActionModules: PaginatedSupportedModules; readonly supportedReferenceModules: PaginatedSupportedModules; readonly txIdToTxHash?: Maybe; + readonly userRateLimit: UserCurrentRateLimitResult; readonly userSigNonces: UserSigNonces; readonly validatePublicationMetadata: PublicationValidateMetadataResult; readonly verify: Scalars['Boolean']; + readonly verifyFrameSignature: FrameVerifySignatureResult; readonly whoActedOnPublication: PaginatedProfileResult; /** The list of profiles that the logged in profile has blocked */ readonly whoHaveBlocked: PaginatedProfileResult; @@ -4280,6 +4868,14 @@ export type QueryChallengeArgs = { request: ChallengeRequest; }; +export type QueryClaimTokensArgs = { + request: ClaimTokensRequest; +}; + +export type QueryCreateFrameTypedDataArgs = { + request: FrameEip712Request; +}; + export type QueryCurrenciesArgs = { request: PaginatedOffsetRequest; }; @@ -4288,6 +4884,10 @@ export type QueryDefaultProfileArgs = { request: DefaultProfileRequest; }; +export type QueryDidReactOnPublicationArgs = { + request: DidReactOnPublicationRequest; +}; + export type QueryExploreProfilesArgs = { request: ExploreProfilesRequest; }; @@ -4324,10 +4924,18 @@ export type QueryGenerateModuleCurrencyApprovalDataArgs = { request: GenerateModuleCurrencyApprovalDataRequest; }; +export type QueryHandleToAddressArgs = { + request: HandleToAddressRequest; +}; + export type QueryInternalAllowedDomainsArgs = { request: InternalAllowedDomainsRequest; }; +export type QueryInternalBoostScoreArgs = { + request: InternalBoostScoreRequest; +}; + export type QueryInternalClaimStatusArgs = { request: InternalClaimStatusRequest; }; @@ -4344,6 +4952,10 @@ export type QueryInternalInvitesArgs = { request: InternalInvitesRequest; }; +export type QueryInternalPaymentHandleInfoArgs = { + request: InternalPaymentHandleInfoRequest; +}; + export type QueryInternalProfileStatusArgs = { request: InternalProfileStatusRequest; }; @@ -4352,10 +4964,36 @@ export type QueryLastLoggedInProfileArgs = { request: LastLoggedInProfileRequest; }; +export type QueryLatestPaidActionsArgs = { + filter?: InputMaybe; + request?: InputMaybe; + where?: InputMaybe; +}; + export type QueryLensTransactionStatusArgs = { request: LensTransactionStatusRequest; }; +export type QueryModDisputedReportsArgs = { + request: PaginatedRequest; +}; + +export type QueryModExplorePublicationsArgs = { + request: ModExplorePublicationRequest; +}; + +export type QueryModFollowersArgs = { + request: PaginatedRequest; +}; + +export type QueryModLatestReportsArgs = { + request: ModReportsRequest; +}; + +export type QueryModuleMetadataArgs = { + request: ModuleMetadataRequest; +}; + export type QueryMomokaTransactionArgs = { request: MomokaTransactionRequest; }; @@ -4496,6 +5134,10 @@ export type QueryTxIdToTxHashArgs = { for: Scalars['TxId']; }; +export type QueryUserRateLimitArgs = { + request: UserCurrentRateLimitRequest; +}; + export type QueryValidatePublicationMetadataArgs = { request: ValidatePublicationMetadataRequest; }; @@ -4504,6 +5146,10 @@ export type QueryVerifyArgs = { request: VerifyRequest; }; +export type QueryVerifyFrameSignatureArgs = { + request: FrameVerifySignature; +}; + export type QueryWhoActedOnPublicationArgs = { request: WhoActedOnPublicationRequest; }; @@ -4571,6 +5217,8 @@ export type ReactionNotification = { }; export type ReactionRequest = { + /** The ID of the app that the reaction was made from. */ + readonly app?: InputMaybe; readonly for: Scalars['PublicationId']; readonly reaction: PublicationReactionType; }; @@ -4659,6 +5307,17 @@ export type RelayResult = RelayError | RelaySuccess; export enum RelayRoleKey { CreateProfile = 'CREATE_PROFILE', + CreateProfileWithHandleUsingCredits_1 = 'CREATE_PROFILE_WITH_HANDLE_USING_CREDITS_1', + CreateProfileWithHandleUsingCredits_2 = 'CREATE_PROFILE_WITH_HANDLE_USING_CREDITS_2', + CreateProfileWithHandleUsingCredits_3 = 'CREATE_PROFILE_WITH_HANDLE_USING_CREDITS_3', + CreateProfileWithHandleUsingCredits_4 = 'CREATE_PROFILE_WITH_HANDLE_USING_CREDITS_4', + CreateProfileWithHandleUsingCredits_5 = 'CREATE_PROFILE_WITH_HANDLE_USING_CREDITS_5', + CreateProfileWithHandleUsingCredits_6 = 'CREATE_PROFILE_WITH_HANDLE_USING_CREDITS_6', + CreateProfileWithHandleUsingCredits_7 = 'CREATE_PROFILE_WITH_HANDLE_USING_CREDITS_7', + CreateProfileWithHandleUsingCredits_8 = 'CREATE_PROFILE_WITH_HANDLE_USING_CREDITS_8', + CreateProfileWithHandleUsingCredits_9 = 'CREATE_PROFILE_WITH_HANDLE_USING_CREDITS_9', + CreateProfileWithHandleUsingCredits_10 = 'CREATE_PROFILE_WITH_HANDLE_USING_CREDITS_10', + CreateProfileWithHandleUsingCreditsUnderCharLimit = 'CREATE_PROFILE_WITH_HANDLE_USING_CREDITS_UNDER_CHAR_LIMIT', LensManager_1 = 'LENS_MANAGER_1', LensManager_2 = 'LENS_MANAGER_2', LensManager_3 = 'LENS_MANAGER_3', @@ -4669,6 +5328,26 @@ export enum RelayRoleKey { LensManager_8 = 'LENS_MANAGER_8', LensManager_9 = 'LENS_MANAGER_9', LensManager_10 = 'LENS_MANAGER_10', + LensManager_11 = 'LENS_MANAGER_11', + LensManager_12 = 'LENS_MANAGER_12', + LensManager_13 = 'LENS_MANAGER_13', + LensManager_14 = 'LENS_MANAGER_14', + LensManager_15 = 'LENS_MANAGER_15', + LensManager_16 = 'LENS_MANAGER_16', + LensManager_17 = 'LENS_MANAGER_17', + LensManager_18 = 'LENS_MANAGER_18', + LensManager_19 = 'LENS_MANAGER_19', + LensManager_20 = 'LENS_MANAGER_20', + LensManager_21 = 'LENS_MANAGER_21', + LensManager_22 = 'LENS_MANAGER_22', + LensManager_23 = 'LENS_MANAGER_23', + LensManager_24 = 'LENS_MANAGER_24', + LensManager_25 = 'LENS_MANAGER_25', + LensManager_26 = 'LENS_MANAGER_26', + LensManager_27 = 'LENS_MANAGER_27', + LensManager_28 = 'LENS_MANAGER_28', + LensManager_29 = 'LENS_MANAGER_29', + LensManager_30 = 'LENS_MANAGER_30', WithSig_1 = 'WITH_SIG_1', WithSig_2 = 'WITH_SIG_2', WithSig_3 = 'WITH_SIG_3', @@ -4679,6 +5358,16 @@ export enum RelayRoleKey { WithSig_8 = 'WITH_SIG_8', WithSig_9 = 'WITH_SIG_9', WithSig_10 = 'WITH_SIG_10', + WithSig_11 = 'WITH_SIG_11', + WithSig_12 = 'WITH_SIG_12', + WithSig_13 = 'WITH_SIG_13', + WithSig_14 = 'WITH_SIG_14', + WithSig_15 = 'WITH_SIG_15', + WithSig_16 = 'WITH_SIG_16', + WithSig_17 = 'WITH_SIG_17', + WithSig_18 = 'WITH_SIG_18', + WithSig_19 = 'WITH_SIG_19', + WithSig_20 = 'WITH_SIG_20', } export type RelaySuccess = { @@ -4687,6 +5376,12 @@ export type RelaySuccess = { readonly txId: Scalars['TxId']; }; +export type ReportProfileRequest = { + readonly additionalComments?: InputMaybe; + readonly for: Scalars['ProfileId']; + readonly reason: ProfileReportingReasonInput; +}; + export type ReportPublicationRequest = { readonly additionalComments?: InputMaybe; readonly for: Scalars['PublicationId']; @@ -4898,6 +5593,7 @@ export type SupportedModulesRequest = { readonly cursor?: InputMaybe; readonly includeUnknown?: InputMaybe; readonly limit?: InputMaybe; + readonly onlyVerified?: InputMaybe; }; export type SybilDotOrgIdentity = { @@ -5018,6 +5714,16 @@ export type UnfollowRequest = { readonly unfollow: ReadonlyArray; }; +export type UnhideCommentRequest = { + /** The comment to unhide. It has to be under a publication made by the user making the request. If already visible, nothing will happen. */ + readonly for: Scalars['PublicationId']; +}; + +export type UnhideManagedProfileRequest = { + /** The profile to unhide */ + readonly profileId: Scalars['ProfileId']; +}; + export type UnknownFollowModuleInput = { readonly address: Scalars['EvmAddress']; readonly data: Scalars['BlockchainData']; @@ -5031,9 +5737,22 @@ export type UnknownFollowModuleRedeemInput = { export type UnknownFollowModuleSettings = { readonly __typename: 'UnknownFollowModuleSettings'; readonly contract: NetworkAddress; - /** The data used to setup the module which you can decode with your known ABI */ + /** + * The data used to setup the module which you can decode with your known ABI + * @deprecated Use initializeResultData instead + */ readonly followModuleReturnData?: Maybe; + /** The data used to setup the module */ + readonly initializeCalldata?: Maybe; + /** The data returned from the init module */ + readonly initializeResultData?: Maybe; + /** True if the module can be signedless and use lens manager without a signature */ + readonly signlessApproved: Scalars['Boolean']; + /** True if the module can be sponsored through gasless so the user does not need to pay for gas */ + readonly sponsoredApproved: Scalars['Boolean']; readonly type: FollowModuleType; + /** True if the module is deemed as safe */ + readonly verified: Scalars['Boolean']; }; export type UnknownOpenActionActRedeemInput = { @@ -5051,9 +5770,22 @@ export type UnknownOpenActionModuleSettings = { /** The collect nft address - only deployed on first collect and if its a collectable open action */ readonly collectNft?: Maybe; readonly contract: NetworkAddress; - /** The data used to setup the module which you can decode with your known ABI */ + /** The data used to setup the module */ + readonly initializeCalldata?: Maybe; + /** The data returned from the init module */ + readonly initializeResultData?: Maybe; + /** + * The data returned from the init module + * @deprecated Use initializeResultData instead + */ readonly openActionModuleReturnData?: Maybe; + /** True if the module can be signedless and use lens manager without a signature */ + readonly signlessApproved: Scalars['Boolean']; + /** True if the module can be sponsored through gasless so the user does not need to pay for gas */ + readonly sponsoredApproved: Scalars['Boolean']; readonly type: OpenActionModuleType; + /** True if the module is deemed as safe */ + readonly verified: Scalars['Boolean']; }; export type UnknownOpenActionResult = { @@ -5071,9 +5803,22 @@ export type UnknownReferenceModuleInput = { export type UnknownReferenceModuleSettings = { readonly __typename: 'UnknownReferenceModuleSettings'; readonly contract: NetworkAddress; - /** The data used to setup the module which you can decode with your known ABI */ + /** The data used to setup the module */ + readonly initializeCalldata?: Maybe; + /** The data returned from the init module */ + readonly initializeResultData?: Maybe; + /** + * The data used to setup the module which you can decode with your known ABI + * @deprecated Use initializeResultData instead + */ readonly referenceModuleReturnData?: Maybe; + /** True if the module can be signedless and use lens manager without a signature */ + readonly signlessApproved: Scalars['Boolean']; + /** True if the module can be sponsored through gasless so the user does not need to pay for gas */ + readonly sponsoredApproved: Scalars['Boolean']; readonly type: ReferenceModuleType; + /** True if the module is deemed as safe */ + readonly verified: Scalars['Boolean']; }; export type UnknownSupportedModule = { @@ -5087,6 +5832,27 @@ export type UnlinkHandleFromProfileRequest = { readonly handle: Scalars['Handle']; }; +export type UserCurrentRateLimit = { + readonly __typename: 'UserCurrentRateLimit'; + readonly dayAllowance: Scalars['Int']; + readonly dayAllowanceLeft: Scalars['Int']; + readonly dayAllowanceUsed: Scalars['Int']; + readonly hourAllowance: Scalars['Int']; + readonly hourAllowanceLeft: Scalars['Int']; + readonly hourAllowanceUsed: Scalars['Int']; +}; + +export type UserCurrentRateLimitRequest = { + readonly profileId?: InputMaybe; + readonly userAddress: Scalars['EvmAddress']; +}; + +export type UserCurrentRateLimitResult = { + readonly __typename: 'UserCurrentRateLimitResult'; + readonly momoka: UserCurrentRateLimit; + readonly onchain: UserCurrentRateLimit; +}; + export type UserPoapsQueryRequest = { readonly cursor?: InputMaybe; readonly for: Scalars['ProfileId']; @@ -5107,7 +5873,9 @@ export type ValidatePublicationMetadataRequest = { export type VerifyRequest = { /** The access token to verify */ - readonly accessToken: Scalars['Jwt']; + readonly accessToken?: InputMaybe; + /** The identity token to verify */ + readonly identityToken?: InputMaybe; }; export type Video = { @@ -5146,6 +5914,8 @@ export type WhoActedOnPublicationRequest = { readonly cursor?: InputMaybe; readonly limit?: InputMaybe; readonly on: Scalars['PublicationId']; + /** The order by which to sort the profiles */ + readonly orderBy?: InputMaybe; readonly where?: InputMaybe; }; @@ -5162,6 +5932,8 @@ export type WhoReactedPublicationRequest = { readonly cursor?: InputMaybe; readonly for: Scalars['PublicationId']; readonly limit?: InputMaybe; + /** The order by which to sort the profiles */ + readonly orderBy?: InputMaybe; readonly where?: InputMaybe; }; diff --git a/packages/react/src/environments.ts b/packages/react/src/environments.ts index 38ff9196f..11299c744 100644 --- a/packages/react/src/environments.ts +++ b/packages/react/src/environments.ts @@ -1,4 +1,4 @@ -import { ChainType, URL } from '@lens-protocol/shared-kernel'; +import { ChainType, EvmAddress, URL } from '@lens-protocol/shared-kernel'; import { ChainConfigRegistry, amoy, goerli, mainnet, polygon } from './chains'; @@ -31,7 +31,8 @@ export type EnvironmentConfig = { chains: ChainConfigRegistry; timings: TransactionObserverTimings; contracts: { - permissionlessCreator: string; + permissionlessCreator: EvmAddress; + publicActProxy: EvmAddress; }; handleResolver: ProfileHandleResolver; }; @@ -59,6 +60,7 @@ export const production: EnvironmentConfig = { }, contracts: { permissionlessCreator: '0x0b5e6100243f793e480DE6088dE6bA70aA9f3872', + publicActProxy: '0x358bac99d38609F3D9fB9450Dff87DF65AdD8965', }, handleResolver: (localName) => `lens/${localName}`, }; @@ -86,6 +88,7 @@ export const development: EnvironmentConfig = { }, contracts: { permissionlessCreator: '0x36440da1D98FF46637f0b98AAA082bc77977B49B', + publicActProxy: '0xfD8671cC32ca785Cb4fb81431CF0Acfe7d4dAa3F', }, handleResolver: (localName) => `lens/${localName}`, }; @@ -107,6 +110,7 @@ export const staging: EnvironmentConfig = { }, contracts: { permissionlessCreator: '0x36440da1D98FF46637f0b98AAA082bc77977B49B', + publicActProxy: '0xfD8671cC32ca785Cb4fb81431CF0Acfe7d4dAa3F', }, handleResolver: (localName) => `lens/${localName}`, }; diff --git a/packages/react/src/publication/index.ts b/packages/react/src/publication/index.ts index eefb1c1dc..8e6016f85 100644 --- a/packages/react/src/publication/index.ts +++ b/packages/react/src/publication/index.ts @@ -117,6 +117,8 @@ export type { CollectPolicy, DegreesOfSeparationReferencePolicy, FollowersOnlyReferencePolicy, + MintFee, + MintFeeDistribution, MultirecipientCollectFee, NoReferencePolicy, ReferenceModule, diff --git a/packages/react/src/transactions/adapters/AbstractContractCallGateway.ts b/packages/react/src/transactions/adapters/AbstractContractCallGateway.ts index 7cecf77d5..a8f924741 100644 --- a/packages/react/src/transactions/adapters/AbstractContractCallGateway.ts +++ b/packages/react/src/transactions/adapters/AbstractContractCallGateway.ts @@ -57,7 +57,7 @@ export abstract class AbstractContractCallGateway> { + ): Promise> { const provider = await this.providerFactory.createProvider({ chainType: ChainType.POLYGON, }); diff --git a/packages/react/src/transactions/adapters/CreateProfileTransactionGateway.ts b/packages/react/src/transactions/adapters/CreateProfileTransactionGateway.ts index 8214052d9..f22733264 100644 --- a/packages/react/src/transactions/adapters/CreateProfileTransactionGateway.ts +++ b/packages/react/src/transactions/adapters/CreateProfileTransactionGateway.ts @@ -1,3 +1,4 @@ +import { AddressZero } from '@ethersproject/constants'; import { JsonRpcProvider } from '@ethersproject/providers'; import { GenerateLensApiRelayAddressData, @@ -35,7 +36,7 @@ export class CreateProfileTransactionGateway extends AbstractContractCallGateway const encodedData = contract.interface.encodeFunctionData('createProfileWithHandle', [ { to: request.to, - followModule: '0x0000000000000000000000000000000000000000', + followModule: AddressZero, followModuleInitData: '0x', }, request.localName, diff --git a/packages/react/src/transactions/adapters/OpenActionGateway.ts b/packages/react/src/transactions/adapters/OpenActionGateway.ts index dc0b4bb73..dbe7640e7 100644 --- a/packages/react/src/transactions/adapters/OpenActionGateway.ts +++ b/packages/react/src/transactions/adapters/OpenActionGateway.ts @@ -15,18 +15,25 @@ import { NativeTransaction, Nonce } from '@lens-protocol/domain/entities'; import { AllOpenActionType, DelegableOpenActionRequest, + FeeType, LegacyCollectRequest, - MultirecipientCollectRequest, OpenActionRequest, - SimpleCollectRequest, - UnknownActionRequest, + isUnknownActionRequest, } from '@lens-protocol/domain/use-cases/publications'; import { BroadcastingError, IDelegatedTransactionGateway, ISignedOnChainGateway, } from '@lens-protocol/domain/use-cases/transactions'; -import { ChainType, Data, PromiseResult, success } from '@lens-protocol/shared-kernel'; +import { + BigDecimal, + ChainType, + Data, + Erc20Amount, + PromiseResult, + never, + success, +} from '@lens-protocol/shared-kernel'; import { v4 } from 'uuid'; import { RequiredConfig } from '../../config'; @@ -37,10 +44,9 @@ import { ITransactionFactory } from './ITransactionFactory'; import { resolveOnchainReferrers } from './referrals'; import { handleRelayError } from './relayer'; -type NewOpenActionRequest = - | SimpleCollectRequest - | MultirecipientCollectRequest - | UnknownActionRequest; +type NewOpenActionRequest = Exclude; + +type NewDelegableOpenActionRequest = Exclude; export class OpenActionGateway extends AbstractContractCallGateway @@ -148,9 +154,9 @@ export class OpenActionGateway } private async relayActOnOpenActionRequestWithProfileManager( - request: SimpleCollectRequest | UnknownActionRequest, + request: NewDelegableOpenActionRequest, ): PromiseResult { - const input = this.resolveActOnOpenActionRequest(request); + const input = this.resolveActOnOpenActionLensManagerRequest(request); const { data } = await this.apolloClient.mutate({ mutation: ActOnOpenActionDocument, @@ -189,6 +195,25 @@ export class OpenActionGateway private resolveActOnOpenActionRequest(request: NewOpenActionRequest): gql.ActOnOpenActionRequest { switch (request.type) { + case AllOpenActionType.MULTIRECIPIENT_COLLECT: + return { + for: request.publicationId, + actOn: { + multirecipientCollectOpenAction: true, + }, + referrers: resolveOnchainReferrers(request.referrers), + }; + case AllOpenActionType.SHARED_REVENUE_COLLECT: + return { + for: request.publicationId, + actOn: { + protocolSharedRevenueCollectOpenAction: { + executorClient: + request.fee.type === FeeType.MINT ? request.fee.executorClient ?? null : null, + }, + }, + referrers: resolveOnchainReferrers(request.referrers), + }; case AllOpenActionType.SIMPLE_COLLECT: return { for: request.publicationId, @@ -197,11 +222,29 @@ export class OpenActionGateway }, referrers: resolveOnchainReferrers(request.referrers), }; - case AllOpenActionType.MULTIRECIPIENT_COLLECT: + case AllOpenActionType.UNKNOWN_OPEN_ACTION: return { for: request.publicationId, actOn: { - multirecipientCollectOpenAction: true, + unknownOpenAction: { + address: request.address, + data: request.data, + }, + }, + referrers: resolveOnchainReferrers(request.referrers), + }; + } + } + + private resolveActOnOpenActionLensManagerRequest( + request: NewDelegableOpenActionRequest, + ): gql.ActOnOpenActionLensManagerRequest { + switch (request.type) { + case AllOpenActionType.SIMPLE_COLLECT: + return { + for: request.publicationId, + actOn: { + simpleCollectOpenAction: true, }, referrers: resolveOnchainReferrers(request.referrers), }; @@ -298,13 +341,21 @@ export class OpenActionGateway request: NewOpenActionRequest, result: gql.CreateActOnOpenActionBroadcastItemResult, ): ContractCallDetails { - if ( - request.type == AllOpenActionType.UNKNOWN_OPEN_ACTION || - (request.type == AllOpenActionType.SIMPLE_COLLECT && !request.fee) - ) { - return this.createPublicFreeActCallDetails(result); + switch (request.type) { + case AllOpenActionType.SIMPLE_COLLECT: + case AllOpenActionType.SHARED_REVENUE_COLLECT: + if (!request.fee) { + return this.createPublicFreeActCallDetails(result); + } + break; + + case AllOpenActionType.UNKNOWN_OPEN_ACTION: + if (!request.amount) { + return this.createPublicFreeActCallDetails(result); + } + break; } - return this.createPublicCollectCallDetails(result); + return this.createPublicPaidActCallDetails(request, result); } private createPublicFreeActCallDetails( @@ -328,11 +379,30 @@ export class OpenActionGateway }; } - private createPublicCollectCallDetails( + private resolvePublicPaidActAmount(request: NewOpenActionRequest): Erc20Amount { + switch (request.type) { + case AllOpenActionType.MULTIRECIPIENT_COLLECT: + case AllOpenActionType.SHARED_REVENUE_COLLECT: + return request.fee.amount; + + case AllOpenActionType.UNKNOWN_OPEN_ACTION: + return request.amount ?? never(); + + case AllOpenActionType.SIMPLE_COLLECT: + return request.fee?.amount ?? never(); + + default: + never(); + } + } + + private createPublicPaidActCallDetails( + request: NewOpenActionRequest, result: gql.CreateActOnOpenActionBroadcastItemResult, ): ContractCallDetails { + const amount = this.resolvePublicPaidActAmount(request); const contract = publicActProxy(result.typedData.domain.verifyingContract); - const encodedData = contract.interface.encodeFunctionData('publicCollect', [ + const encodedData = contract.interface.encodeFunctionData('publicPaidAct', [ { publicationActedProfileId: result.typedData.message.publicationActedProfileId, publicationActedId: result.typedData.message.publicationActedId, @@ -342,6 +412,11 @@ export class OpenActionGateway actionModuleAddress: result.typedData.message.actionModuleAddress, actionModuleData: result.typedData.message.actionModuleData, }, + amount.asset.address, + BigDecimal.rescale(amount.toBigDecimal(), amount.asset.decimals).toHex(), + isUnknownActionRequest(request) + ? contract.address + : request.fee?.module ?? never('Fee is required for publicPaidAct'), ]); return { contractAddress: result.typedData.domain.verifyingContract, diff --git a/packages/react/src/transactions/adapters/__tests__/MomokaRelayer.spec.ts b/packages/react/src/transactions/adapters/__tests__/MomokaRelayer.spec.ts index a46c9e739..efab211f4 100644 --- a/packages/react/src/transactions/adapters/__tests__/MomokaRelayer.spec.ts +++ b/packages/react/src/transactions/adapters/__tests__/MomokaRelayer.spec.ts @@ -67,10 +67,6 @@ describe(`Given an instance of the ${MomokaRelayer.name}`, () => { }); describe.only.each([ - { - broadcastResult: mockRelayErrorFragment(RelayErrorReasonType.AppNotAllowed), - reason: BroadcastingErrorReason.APP_NOT_ALLOWED, - }, { broadcastResult: mockRelayErrorFragment(RelayErrorReasonType.NotSponsored), reason: BroadcastingErrorReason.NOT_SPONSORED, diff --git a/packages/react/src/transactions/adapters/__tests__/OnChainRelayer.spec.ts b/packages/react/src/transactions/adapters/__tests__/OnChainRelayer.spec.ts index 7398ec368..d4f2017ef 100644 --- a/packages/react/src/transactions/adapters/__tests__/OnChainRelayer.spec.ts +++ b/packages/react/src/transactions/adapters/__tests__/OnChainRelayer.spec.ts @@ -63,10 +63,6 @@ describe(`Given an instance of the ${OnChainRelayer.name}`, () => { }); describe.only.each([ - { - broadcastResult: mockRelayErrorFragment(RelayErrorReasonType.AppNotAllowed), - reason: BroadcastingErrorReason.APP_NOT_ALLOWED, - }, { broadcastResult: mockRelayErrorFragment(RelayErrorReasonType.NotSponsored), reason: BroadcastingErrorReason.NOT_SPONSORED, diff --git a/packages/react/src/transactions/adapters/__tests__/OpenActionGateway.spec.ts b/packages/react/src/transactions/adapters/__tests__/OpenActionGateway.spec.ts index e7fffd8ed..52bc9a048 100644 --- a/packages/react/src/transactions/adapters/__tests__/OpenActionGateway.spec.ts +++ b/packages/react/src/transactions/adapters/__tests__/OpenActionGateway.spec.ts @@ -19,10 +19,12 @@ import { import { NativeTransaction, UnsignedTransaction } from '@lens-protocol/domain/entities'; import { mockLegacyCollectRequest, + mockMintFee, mockMultirecipientCollectRequest, mockNonce, mockProfileId, mockPublicationId, + mockSharedRevenueCollectRequest, mockSimpleCollectRequest, mockUnknownActionRequest, mockWallet, @@ -134,6 +136,34 @@ describe(`Given an instance of ${OpenActionGateway.name}`, () => { return { data, response }; }, }, + { + name: 'SharedRevenueCollectRequest', + request: mockSharedRevenueCollectRequest({ publicationId, referrers }), + setupMocks: (nonce?: number) => { + const data = mockCreateActOnOpenActionTypedDataData({ nonce }); + const response = mockCreateActOnOpenActionTypedDataResponse({ + variables: { + request: { + for: publicationId, + actOn: { + protocolSharedRevenueCollectOpenAction: { + executorClient: null, + }, + }, + referrers: expectedOnChainReferrers, + }, + options: nonce + ? { + overrideSigNonce: nonce, + } + : undefined, + }, + data, + }); + + return { data, response }; + }, + }, { name: 'MultirecipientCollectRequest', request: mockMultirecipientCollectRequest({ publicationId, referrers }), @@ -249,6 +279,24 @@ describe(`Given an instance of ${OpenActionGateway.name}`, () => { data: mockCreateActOnOpenActionTypedDataData(), }), }, + { + name: 'SharedRevenueCollectRequest', + request: mockSharedRevenueCollectRequest({ publicationId, referrers }), + response: mockCreateActOnOpenActionTypedDataResponse({ + variables: { + request: { + for: publicationId, + actOn: { + protocolSharedRevenueCollectOpenAction: { + executorClient: null, + }, + }, + referrers: expectedOnChainReferrers, + }, + }, + data: mockCreateActOnOpenActionTypedDataData(), + }), + }, { name: 'MultirecipientCollectRequest', request: mockMultirecipientCollectRequest({ publicationId, referrers }), @@ -380,12 +428,6 @@ describe(`Given an instance of ${OpenActionGateway.name}`, () => { describe(`when creating any ${NativeTransaction.name}`, () => { describe.each([ - { - relayError: mockLensProfileManagerRelayError( - LensProfileManagerRelayErrorReasonType.AppNotAllowed, - ), - reason: BroadcastingErrorReason.APP_NOT_ALLOWED, - }, { relayError: mockLensProfileManagerRelayError( LensProfileManagerRelayErrorReasonType.NoLensManagerEnabled, @@ -450,6 +492,28 @@ describe(`Given an instance of ${OpenActionGateway.name}`, () => { }, referrers: expectedOnChainReferrers, }, + expectedMethodHash: '0xc0cc2190', // publicFreeAct + }, + { + name: 'SharedRevenueCollectRequest', + request: mockSharedRevenueCollectRequest({ + publicationId, + referrers, + public: true, + fee: mockMintFee({ + executorClient: '0xAbAe21DD8737DbdCa26A16D6210D9293986800f9', + }), + }), + expectedRequest: { + for: publicationId, + actOn: { + protocolSharedRevenueCollectOpenAction: { + executorClient: '0xAbAe21DD8737DbdCa26A16D6210D9293986800f9', + }, + }, + referrers: expectedOnChainReferrers, + }, + expectedMethodHash: '0x9648337c', // publicPaidAct }, { name: 'MultirecipientCollectRequest', @@ -461,6 +525,7 @@ describe(`Given an instance of ${OpenActionGateway.name}`, () => { }, referrers: expectedOnChainReferrers, }, + expectedMethodHash: '0x9648337c', // publicPaidAct }, { name: 'UnknownActionRequest', @@ -479,10 +544,11 @@ describe(`Given an instance of ${OpenActionGateway.name}`, () => { }, }, }, + expectedMethodHash: '0xc0cc2190', // publicFreeAct }, ])( `when creating ${UnsignedTransaction.name}<$name> for a Public Act Proxy call`, - ({ request, expectedRequest }) => { + ({ request, expectedRequest, expectedMethodHash }) => { const wallet = mockWallet(); const data = mockCreateActOnOpenActionTypedDataData(); @@ -502,6 +568,9 @@ describe(`Given an instance of ${OpenActionGateway.name}`, () => { const unsignedTransaction = await gateway.createUnsignedTransaction(request, wallet); expect(unsignedTransaction).toBeInstanceOf(UnsignedContractCallTransaction); + expect(unsignedTransaction.transactionRequest.data).toEqual( + expect.stringContaining(expectedMethodHash), + ); }); }, ); diff --git a/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaCommentGateway.spec.ts b/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaCommentGateway.spec.ts index fb9d87e13..e7ff390d0 100644 --- a/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaCommentGateway.spec.ts +++ b/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaCommentGateway.spec.ts @@ -86,12 +86,6 @@ describe(`Given an instance of ${CreateMomokaCommentGateway.name}`, () => { }); it.each([ - { - relayError: mockLensProfileManagerRelayError( - LensProfileManagerRelayErrorReasonType.AppNotAllowed, - ), - reason: BroadcastingErrorReason.APP_NOT_ALLOWED, - }, { relayError: mockLensProfileManagerRelayError( LensProfileManagerRelayErrorReasonType.NoLensManagerEnabled, diff --git a/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaMirrorGateway.spec.ts b/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaMirrorGateway.spec.ts index d8646af25..279d94971 100644 --- a/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaMirrorGateway.spec.ts +++ b/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaMirrorGateway.spec.ts @@ -84,12 +84,6 @@ describe(`Given an instance of ${CreateMomokaMirrorGateway.name}`, () => { }); it.each([ - { - relayError: mockLensProfileManagerRelayError( - LensProfileManagerRelayErrorReasonType.AppNotAllowed, - ), - reason: BroadcastingErrorReason.APP_NOT_ALLOWED, - }, { relayError: mockLensProfileManagerRelayError( LensProfileManagerRelayErrorReasonType.NoLensManagerEnabled, diff --git a/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaPostGateway.spec.ts b/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaPostGateway.spec.ts index 5c8be9e6d..d9f38878d 100644 --- a/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaPostGateway.spec.ts +++ b/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaPostGateway.spec.ts @@ -84,12 +84,6 @@ describe(`Given an instance of ${CreateMomokaPostGateway.name}`, () => { }); it.each([ - { - relayError: mockLensProfileManagerRelayError( - LensProfileManagerRelayErrorReasonType.AppNotAllowed, - ), - reason: BroadcastingErrorReason.APP_NOT_ALLOWED, - }, { relayError: mockLensProfileManagerRelayError( LensProfileManagerRelayErrorReasonType.NoLensManagerEnabled, diff --git a/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaQuoteGateway.spec.ts b/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaQuoteGateway.spec.ts index 9c237262f..5b09cb17c 100644 --- a/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaQuoteGateway.spec.ts +++ b/packages/react/src/transactions/adapters/publications/__tests__/CreateMomokaQuoteGateway.spec.ts @@ -86,12 +86,6 @@ describe(`Given an instance of ${CreateMomokaQuoteGateway.name}`, () => { }); it.each([ - { - relayError: mockLensProfileManagerRelayError( - LensProfileManagerRelayErrorReasonType.AppNotAllowed, - ), - reason: BroadcastingErrorReason.APP_NOT_ALLOWED, - }, { relayError: mockLensProfileManagerRelayError( LensProfileManagerRelayErrorReasonType.NoLensManagerEnabled, diff --git a/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainCommentGateway.spec.ts b/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainCommentGateway.spec.ts index 289fbe38d..a24c1ad46 100644 --- a/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainCommentGateway.spec.ts +++ b/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainCommentGateway.spec.ts @@ -151,12 +151,6 @@ describe(`Given an instance of ${CreateOnChainCommentGateway.name}`, () => { }); it.each([ - { - relayError: mockLensProfileManagerRelayError( - LensProfileManagerRelayErrorReasonType.AppNotAllowed, - ), - reason: BroadcastingErrorReason.APP_NOT_ALLOWED, - }, { relayError: mockLensProfileManagerRelayError( LensProfileManagerRelayErrorReasonType.NoLensManagerEnabled, diff --git a/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainMirrorGateway.spec.ts b/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainMirrorGateway.spec.ts index 6767cfe41..4ef11e018 100644 --- a/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainMirrorGateway.spec.ts +++ b/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainMirrorGateway.spec.ts @@ -130,12 +130,6 @@ describe(`Given an instance of ${CreateOnChainMirrorGateway.name}`, () => { }); it.each([ - { - relayError: mockLensProfileManagerRelayError( - LensProfileManagerRelayErrorReasonType.AppNotAllowed, - ), - reason: BroadcastingErrorReason.APP_NOT_ALLOWED, - }, { relayError: mockLensProfileManagerRelayError( LensProfileManagerRelayErrorReasonType.NoLensManagerEnabled, diff --git a/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainPostGateway.spec.ts b/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainPostGateway.spec.ts index 63ad72557..826f43a04 100644 --- a/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainPostGateway.spec.ts +++ b/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainPostGateway.spec.ts @@ -150,12 +150,6 @@ describe(`Given an instance of ${CreateOnChainPostGateway.name}`, () => { }); it.each([ - { - relayError: mockLensProfileManagerRelayError( - LensProfileManagerRelayErrorReasonType.AppNotAllowed, - ), - reason: BroadcastingErrorReason.APP_NOT_ALLOWED, - }, { relayError: mockLensProfileManagerRelayError( LensProfileManagerRelayErrorReasonType.NoLensManagerEnabled, diff --git a/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainQuoteGateway.spec.ts b/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainQuoteGateway.spec.ts index 39354fdd3..a67df1196 100644 --- a/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainQuoteGateway.spec.ts +++ b/packages/react/src/transactions/adapters/publications/__tests__/CreateOnChainQuoteGateway.spec.ts @@ -151,12 +151,6 @@ describe(`Given an instance of ${CreateOnChainQuoteGateway.name}`, () => { }); it.each([ - { - relayError: mockLensProfileManagerRelayError( - LensProfileManagerRelayErrorReasonType.AppNotAllowed, - ), - reason: BroadcastingErrorReason.APP_NOT_ALLOWED, - }, { relayError: mockLensProfileManagerRelayError( LensProfileManagerRelayErrorReasonType.NoLensManagerEnabled, diff --git a/packages/react/src/transactions/adapters/publications/__tests__/resolveOpenActionModuleInput.spec.ts b/packages/react/src/transactions/adapters/publications/__tests__/resolveOpenActionModuleInput.spec.ts index 47fd34017..06e649604 100644 --- a/packages/react/src/transactions/adapters/publications/__tests__/resolveOpenActionModuleInput.spec.ts +++ b/packages/react/src/transactions/adapters/publications/__tests__/resolveOpenActionModuleInput.spec.ts @@ -41,6 +41,25 @@ describe(`Given the ${resolveOpenActionModuleInput.name} function`, () => { }, }, }, + { + config: { + type: OpenActionType.SHARED_REVENUE_COLLECT, + collectLimit: 10, + followerOnly: true, + endsAt, + creatorClient: address1, + }, + expected: { + collectOpenAction: { + protocolSharedRevenueCollectOpenAction: { + collectLimit: '10', + endsAt: endsAt.toISOString(), + followerOnly: true, + creatorClient: address1, + }, + }, + }, + }, { config: { type: OpenActionType.MULTIRECIPIENT_COLLECT, diff --git a/packages/react/src/transactions/adapters/publications/resolveOpenActionModuleInput.ts b/packages/react/src/transactions/adapters/publications/resolveOpenActionModuleInput.ts index 81f845b64..8db11f5a4 100644 --- a/packages/react/src/transactions/adapters/publications/resolveOpenActionModuleInput.ts +++ b/packages/react/src/transactions/adapters/publications/resolveOpenActionModuleInput.ts @@ -27,6 +27,44 @@ export function resolveOpenActionModuleInput(config: OpenActionConfig): OpenActi }, }; + case OpenActionType.SHARED_REVENUE_COLLECT: + if ('amount' in config) { + return { + collectOpenAction: { + protocolSharedRevenueCollectOpenAction: { + amount: { + currency: config.amount.asset.address, + value: config.amount.toSignificantDigits(), + }, + + referralFee: config.referralFee, + + recipient: config.recipient ?? null, + + collectLimit: config.collectLimit?.toString() ?? null, + + endsAt: config.endsAt?.toISOString() ?? null, + + followerOnly: config.followerOnly, + }, + }, + }; + } + + return { + collectOpenAction: { + protocolSharedRevenueCollectOpenAction: { + collectLimit: config.collectLimit?.toString() ?? null, + + endsAt: config.endsAt?.toISOString() ?? null, + + followerOnly: config.followerOnly, + + creatorClient: config.creatorClient, + }, + }, + }; + case OpenActionType.MULTIRECIPIENT_COLLECT: return { collectOpenAction: { diff --git a/packages/react/src/transactions/adapters/relayer.ts b/packages/react/src/transactions/adapters/relayer.ts index a02ca4863..eb6815ae9 100644 --- a/packages/react/src/transactions/adapters/relayer.ts +++ b/packages/react/src/transactions/adapters/relayer.ts @@ -15,10 +15,6 @@ export function handleRelayError( _?: unknown, ): Failure { switch (error.reason) { - case RelayErrorReasonType.AppNotAllowed: - case LensProfileManagerRelayErrorReasonType.AppNotAllowed: - return failure(new BroadcastingError(BroadcastingErrorReason.APP_NOT_ALLOWED)); - case RelayErrorReasonType.RateLimited: case LensProfileManagerRelayErrorReasonType.RateLimited: return failure(new BroadcastingError(BroadcastingErrorReason.RATE_LIMITED)); diff --git a/packages/react/src/transactions/adapters/schemas/publications.ts b/packages/react/src/transactions/adapters/schemas/publications.ts index f102d813f..1dee5bf59 100644 --- a/packages/react/src/transactions/adapters/schemas/publications.ts +++ b/packages/react/src/transactions/adapters/schemas/publications.ts @@ -10,6 +10,7 @@ import { RecipientWithSplit, ReferencePolicyType, OpenActionRequest, + FeeType, } from '@lens-protocol/domain/use-cases/publications'; import { UnknownObject } from '@lens-protocol/shared-kernel'; import { z } from 'zod'; @@ -31,6 +32,17 @@ const RecipientWithSplitSchema: z.ZodType { @@ -165,8 +178,18 @@ export const CreateMirrorRequestSchema: z.ZodType< }); const CollectFeeSchema = z.object({ + type: z.literal(FeeType.COLLECT), amount: Erc20AmountSchema, - contractAddress: EvmAddressSchema, + module: EvmAddressSchema, + spender: EvmAddressSchema, +}); + +const MintFeeSchema = z.object({ + type: z.literal(FeeType.MINT), + amount: Erc20AmountSchema, + module: EvmAddressSchema, + spender: EvmAddressSchema, + executorClient: EvmAddressSchema.optional(), }); const BaseCollectRequestSchema = z.object({ @@ -194,6 +217,16 @@ export const SimpleCollectRequestSchema = BaseCollectRequestSchema.extend({ sponsored: z.boolean(), }); +export const SharedRevenueCollectRequestSchema = BaseCollectRequestSchema.extend({ + type: z.literal(AllOpenActionType.SHARED_REVENUE_COLLECT), + publicationId: PublicationIdSchema, + referrers: ReferrersSchema.optional(), + fee: z.discriminatedUnion('type', [CollectFeeSchema, MintFeeSchema]), + public: z.boolean(), + signless: z.boolean(), + sponsored: z.boolean(), +}); + export const MultirecipientCollectRequestSchema = BaseCollectRequestSchema.extend({ type: z.literal(AllOpenActionType.MULTIRECIPIENT_COLLECT), publicationId: PublicationIdSchema, @@ -210,6 +243,7 @@ export const UnknownActionRequestSchema = BaseCollectRequestSchema.extend({ address: EvmAddressSchema, data: DataSchema, referrers: ReferrersSchema.optional(), + amount: Erc20AmountSchema.optional(), public: z.boolean(), signless: z.boolean(), sponsored: z.boolean(), @@ -220,5 +254,6 @@ export const OpenActionRequestSchema: z.ZodType { + describe(`when invoking the ${resolveTokenAllowanceRequestForFollow.name} function`, () => { + const profile = mockProfileFragment({ + followModule: mockFeeFollowModuleSettingsFragment({ + amount: mockAmountFragmentFrom(amount), + contract: mockNetworkAddressFragment({ address: spender }), + }), + }); + + describe('configured with FeeFollowModuleSettings', () => { + it('should return the expected TokenAllowanceRequest', () => { + const request = resolveTokenAllowanceRequestForFollow(profile, TokenAllowanceLimit.EXACT); + + assertExpectedTokenAllowanceRequest(request); + }); + }); + }); + + describe.each<{ + name: string; + mockPublicationWith: (settings: CollectModuleSettings) => AnyPublication; + }>([ + { + name: 'Post', + mockPublicationWith: (settings) => + mockPostFragment({ + openActionModules: [settings], + }), + }, + { + name: 'Comment', + mockPublicationWith: (settings) => + mockCommentFragment({ + openActionModules: [settings], + }), + }, + { + name: 'Quote', + mockPublicationWith: (settings) => + mockQuoteFragment({ + openActionModules: [settings], + }), + }, + { + name: 'Mirror for a Post', + mockPublicationWith: (settings) => + mockMirrorFragment({ + mirrorOn: mockPostFragment({ + openActionModules: [settings], + }), + }), + }, + ])( + `when invoking the ${resolveTokenAllowanceRequestForCollect.name} function on a $name`, + ({ mockPublicationWith }) => { + describe.each([ + mockSimpleCollectOpenActionSettingsFragment({ + amount: mockAmountFragmentFrom(amount), + contract: mockNetworkAddressFragment({ address: spender }), + }), + + mockMultirecipientFeeCollectOpenActionSettingsFragment({ + amount: mockAmountFragmentFrom(amount), + contract: mockNetworkAddressFragment({ address: spender }), + }), + + mockLegacyFeeCollectModuleSettingsFragment({ + amount: mockAmountFragmentFrom(amount), + contract: mockNetworkAddressFragment({ address: spender }), + }), + + mockLegacyLimitedFeeCollectModuleSettingsFragment({ + amount: mockAmountFragmentFrom(amount), + contract: mockNetworkAddressFragment({ address: spender }), + }), + + mockLegacyLimitedTimedFeeCollectModuleSettingsFragment({ + amount: mockAmountFragmentFrom(amount), + contract: mockNetworkAddressFragment({ address: spender }), + }), + + mockLegacyTimedFeeCollectModuleSettingsFragment({ + amount: mockAmountFragmentFrom(amount), + contract: mockNetworkAddressFragment({ address: spender }), + }), + + mockLegacyMultirecipientFeeCollectModuleSettingsFragment({ + amount: mockAmountFragmentFrom(amount), + contract: mockNetworkAddressFragment({ address: spender }), + }), + + mockLegacySimpleCollectModuleSettingsFragment({ + amount: mockAmountFragmentFrom(amount), + contract: mockNetworkAddressFragment({ address: spender }), + }), + + mockLegacyErc4626FeeCollectModuleSettingsFragment({ + amount: mockAmountFragmentFrom(amount), + contract: mockNetworkAddressFragment({ address: spender }), + }), + + mockLegacyAaveFeeCollectModuleSettingsFragment({ + amount: mockAmountFragmentFrom(amount), + contract: mockNetworkAddressFragment({ address: spender }), + }), + + mockProtocolSharedRevenueCollectOpenActionSettingsFragment({ + amount: mockAmountFragmentFrom(amount), + contract: mockNetworkAddressFragment({ address: spender }), + }), + ])('configured with $__typename', (settings) => { + it('should return the expected TokenAllowanceRequest', () => { + const publication = mockPublicationWith(settings); + const request = resolveTokenAllowanceRequestForCollect({ + publication, + limit: TokenAllowanceLimit.EXACT, + sessionType: SessionType.WithProfile, + publicActProxy: mockEvmAddress(), + }); + + assertExpectedTokenAllowanceRequest(request); + }); + }); + }, + ); +}); diff --git a/packages/react/src/transactions/useApproveModule/index.ts b/packages/react/src/transactions/useApproveModule/index.ts new file mode 100644 index 000000000..4eb042ef8 --- /dev/null +++ b/packages/react/src/transactions/useApproveModule/index.ts @@ -0,0 +1 @@ +export * from './useApproveModule'; diff --git a/packages/react/src/transactions/useApproveModule/token-allowance.ts b/packages/react/src/transactions/useApproveModule/token-allowance.ts new file mode 100644 index 000000000..e3b13a8c5 --- /dev/null +++ b/packages/react/src/transactions/useApproveModule/token-allowance.ts @@ -0,0 +1,128 @@ +import { + AnyPublication, + Profile, + ProtocolSharedRevenueCollectOpenActionSettings, + erc20Amount, + findCollectModuleSettings, + isMirrorPublication, +} from '@lens-protocol/api-bindings'; +import { TransactionKind } from '@lens-protocol/domain/entities'; +import { + TokenAllowanceLimit, + TokenAllowanceRequest, +} from '@lens-protocol/domain/use-cases/transactions'; +import { Erc20Amount, EvmAddress, invariant, never } from '@lens-protocol/shared-kernel'; + +import { SessionType } from '../../authentication'; + +function createTokenAllowanceRequest( + args: Omit, +): TokenAllowanceRequest { + return { + ...args, + kind: TransactionKind.APPROVE_MODULE, + }; +} + +function buildMintFeeAmount(module: ProtocolSharedRevenueCollectOpenActionSettings): Erc20Amount { + return erc20Amount(module.mintFee); +} + +export type ResolveTokenAllowanceRequestForCollectArgs = { + publicActProxy: EvmAddress; + limit: TokenAllowanceLimit; + publication: AnyPublication; + sessionType: SessionType.JustWallet | SessionType.WithProfile; +}; + +export function resolveTokenAllowanceRequestForCollect({ + limit, + publicActProxy, + publication, + sessionType, +}: ResolveTokenAllowanceRequestForCollectArgs): TokenAllowanceRequest { + if (isMirrorPublication(publication)) { + return resolveTokenAllowanceRequestForCollect({ + publication: publication.mirrorOn, + limit, + publicActProxy, + sessionType, + }); + } + + const module = findCollectModuleSettings(publication); + + invariant(module, `Publication ${publication.id} has no collect module`); + + switch (module.__typename) { + case 'LegacyAaveFeeCollectModuleSettings': + case 'LegacyERC4626FeeCollectModuleSettings': + case 'LegacyFeeCollectModuleSettings': + case 'LegacyLimitedFeeCollectModuleSettings': + case 'LegacyLimitedTimedFeeCollectModuleSettings': + case 'LegacyMultirecipientFeeCollectModuleSettings': + case 'LegacySimpleCollectModuleSettings': + case 'LegacyTimedFeeCollectModuleSettings': + return createTokenAllowanceRequest({ + amount: erc20Amount(module.amount), + limit, + spender: module.contract.address, + }); + + case 'MultirecipientFeeCollectOpenActionSettings': + case 'SimpleCollectOpenActionSettings': + case 'ProtocolSharedRevenueCollectOpenActionSettings': { + const spender = + sessionType === SessionType.JustWallet ? publicActProxy : module.contract.address; + + switch (module.__typename) { + case 'MultirecipientFeeCollectOpenActionSettings': + case 'SimpleCollectOpenActionSettings': + return createTokenAllowanceRequest({ + amount: erc20Amount(module.amount), + limit, + spender, + }); + + case 'ProtocolSharedRevenueCollectOpenActionSettings': { + const collectAmount = erc20Amount(module.amount); + + if (collectAmount.isZero()) { + return createTokenAllowanceRequest({ + amount: buildMintFeeAmount(module), + limit, + spender, + }); + } + + return createTokenAllowanceRequest({ + amount: collectAmount, + limit, + spender, + }); + } + } + } + } + + never(`Unsupported collect module type ${module.__typename}`); +} + +export function resolveTokenAllowanceRequestForFollow( + profile: Profile, + limit: TokenAllowanceLimit, +): TokenAllowanceRequest { + invariant(profile.followModule, `Profile ${profile.id} has no follow module`); + + switch (profile.followModule.__typename) { + case 'FeeFollowModuleSettings': + return createTokenAllowanceRequest({ + amount: erc20Amount(profile.followModule.amount), + limit, + spender: profile.followModule.contract.address, + }); + + default: + never(`Unsupported follow module type ${profile.followModule.__typename}`); + } +} diff --git a/packages/react/src/transactions/useApproveModule.ts b/packages/react/src/transactions/useApproveModule/useApproveModule.ts similarity index 82% rename from packages/react/src/transactions/useApproveModule.ts rename to packages/react/src/transactions/useApproveModule/useApproveModule.ts index e27b5135a..cec297f4c 100644 --- a/packages/react/src/transactions/useApproveModule.ts +++ b/packages/react/src/transactions/useApproveModule/useApproveModule.ts @@ -1,4 +1,4 @@ -import { AnyPublication, Profile, resolveTokenAllowanceRequest } from '@lens-protocol/api-bindings'; +import { AnyPublication, Profile } from '@lens-protocol/api-bindings'; import { InsufficientGasError, PendingSigningRequestError, @@ -7,9 +7,16 @@ import { WalletConnectionError, } from '@lens-protocol/domain/entities'; import { TokenAllowanceLimit } from '@lens-protocol/domain/use-cases/transactions'; +import { invariant } from '@lens-protocol/shared-kernel'; -import { useDeferredTask, UseDeferredTask } from '../helpers/tasks'; -import { useTokenAllowanceController } from './adapters/useTokenAllowanceController'; +import { useSession } from '../../authentication'; +import { useDeferredTask, UseDeferredTask } from '../../helpers/tasks'; +import { useSharedDependencies } from '../../shared'; +import { useTokenAllowanceController } from '../adapters/useTokenAllowanceController'; +import { + resolveTokenAllowanceRequestForCollect, + resolveTokenAllowanceRequestForFollow, +} from './token-allowance'; export { TokenAllowanceLimit }; @@ -215,9 +222,10 @@ export type ApproveModuleArgs = { * * @category Modules * @group Hooks + * @param args - {@link UseApproveModuleArgs} */ export function useApproveModule( - args: UseApproveModuleArgs = { limit: TokenAllowanceLimit.EXACT }, + { limit }: UseApproveModuleArgs = { limit: TokenAllowanceLimit.EXACT }, ): UseDeferredTask< void, | InsufficientGasError @@ -227,10 +235,30 @@ export function useApproveModule( | WalletConnectionError, ApproveModuleArgs > { + const { config } = useSharedDependencies(); + const { data: session } = useSession(); const increaseAllowance = useTokenAllowanceController(); + const resolveTokenAllowanceRequest = (on: AnyPublication | Profile) => { + if (on.__typename === 'Profile') { + return resolveTokenAllowanceRequestForFollow(on, limit); + } + + invariant( + session?.authenticated, + 'User must be authenticated to allow to approve the correct contract', + ); + + return resolveTokenAllowanceRequestForCollect({ + publication: on, + limit, + sessionType: session.type, + publicActProxy: config.environment.contracts.publicActProxy, + }); + }; + return useDeferredTask(async ({ on }) => { - const request = resolveTokenAllowanceRequest(on, args.limit); + const request = resolveTokenAllowanceRequest(on); return increaseAllowance(request); }); diff --git a/packages/react/src/transactions/useBlockProfiles.ts b/packages/react/src/transactions/useBlockProfiles.ts index e88611893..023aaa004 100644 --- a/packages/react/src/transactions/useBlockProfiles.ts +++ b/packages/react/src/transactions/useBlockProfiles.ts @@ -33,7 +33,7 @@ export type BlockProfileArgs = { * See {@link BroadcastingError} with: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions + * * If not specified, or `true`, the hook will attempt a Sponsored Transaction. * Set it to `false` to force it to use a Self-Funded Transaction. @@ -193,7 +193,6 @@ export type BlockProfileArgs = { * If for some reason the Lens API cannot sponsor the transaction, the hook will fail with a {@link BroadcastingError} with one of the following reasons: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * In those cases you can retry the transaction as self-funded like in the following example: * @@ -224,13 +223,6 @@ export type BlockProfileArgs = { * } * } * ``` - * - * In this example we omitted {@link BroadcastingErrorReason.APP_NOT_ALLOWED} as it's not normally a problem per-se. - * It just requires the app to apply for whitelisting. See https://docs.lens.xyz/docs/gasless-and-signless#whitelisting-your-app. - * - * You can still include it in your fallback logic if you want to. For example to unblock testing your app from a domain that is not the - * whitelisted one (e.g. localhost). - * */ export function useBlockProfiles(): UseDeferredTask< AsyncTransactionResult, diff --git a/packages/react/src/transactions/useFollow.ts b/packages/react/src/transactions/useFollow.ts index 2b4bd4b72..e5910292e 100644 --- a/packages/react/src/transactions/useFollow.ts +++ b/packages/react/src/transactions/useFollow.ts @@ -107,7 +107,6 @@ export type FollowArgs = { * See {@link BroadcastingError} with: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * If not specified, or `true`, the hook will attempt a Sponsored Transaction. * Set it to `false` to force it to use a Self-Funded Transaction. @@ -260,7 +259,6 @@ export type FollowArgs = { * If for some reason the Lens API cannot sponsor the transaction, the hook will fail with a {@link BroadcastingError} with one of the following reasons: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * In those cases you can retry the transaction as self-funded like in the following example: * @@ -284,12 +282,6 @@ export type FollowArgs = { * } * ``` * - * In this example we omitted {@link BroadcastingErrorReason.APP_NOT_ALLOWED} as it's not normally a problem per-se. - * It just requires the app to apply for whitelisting. See https://docs.lens.xyz/docs/gasless-and-signless#whitelisting-your-app. - * - * You can still include it in your fallback logic if you want to. For example to unblock testing your app from a domain that is not the - * whitelisted one (e.g. localhost). - * * @category Profiles * @group Hooks */ diff --git a/packages/react/src/transactions/useLinkHandle.ts b/packages/react/src/transactions/useLinkHandle.ts index a5dbed113..681ed665c 100644 --- a/packages/react/src/transactions/useLinkHandle.ts +++ b/packages/react/src/transactions/useLinkHandle.ts @@ -28,7 +28,6 @@ export type LinkHandleArgs = { * See {@link BroadcastingError} with: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * If not specified, or `true`, the hook will attempt a Sponsored Transaction. * Set it to `false` to force it to use a Self-Funded Transaction. @@ -172,7 +171,6 @@ export type LinkHandleArgs = { * If for some reason the Lens API cannot sponsor the transaction, the hook will fail with a {@link BroadcastingError} with one of the following reasons: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * In those cases you can retry the transaction as self-funded like in the following example: * @@ -203,13 +201,6 @@ export type LinkHandleArgs = { * } * } * ``` - * - * In this example we omitted {@link BroadcastingErrorReason.APP_NOT_ALLOWED} as it's not normally a problem per-se. - * It just requires the app to apply for whitelisting. See https://docs.lens.xyz/docs/gasless-and-signless#whitelisting-your-app. - * - * You can still include it in your fallback logic if you want to. For example to unblock testing your app from a domain that is not the - * whitelisted one (e.g. localhost). - * */ export function useLinkHandle(): UseDeferredTask< AsyncTransactionResult, diff --git a/packages/react/src/transactions/useOpenAction/__tests__/createOpenActionRequest.spec.ts b/packages/react/src/transactions/useOpenAction/__tests__/createOpenActionRequest.spec.ts index 4d99e0ed1..b66dbc439 100644 --- a/packages/react/src/transactions/useOpenAction/__tests__/createOpenActionRequest.spec.ts +++ b/packages/react/src/transactions/useOpenAction/__tests__/createOpenActionRequest.spec.ts @@ -8,6 +8,7 @@ import { mockNetworkAddressFragment, mockPostFragment, mockProfileFragment, + mockProtocolSharedRevenueCollectOpenActionSettingsFragment, mockSimpleCollectOpenActionSettingsFragment, mockUnknownOpenActionModuleSettingsFragment, } from '@lens-protocol/api-bindings/mocks'; @@ -21,6 +22,7 @@ import { mockProfileSession, mockWalletOnlySession, } from '../../../authentication/__helpers__/mocks'; +import { staging } from '../../../environments'; import { createOpenActionRequest } from '../createOpenActionRequest'; import { OpenActionKind } from '../types'; @@ -36,9 +38,10 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { it(`should throw an ${InvariantError.name}`, () => { expect(() => createOpenActionRequest( - { publication }, + { publication, sponsored: true }, { kind: OpenActionKind.COLLECT }, mockProfileSession(), + staging, ), ).toThrow(InvariantError); }); @@ -56,20 +59,21 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { type: AllOpenActionType.LEGACY_COLLECT, fee: { amount: fee, - contractAddress: aContractAddress, + spender: aContractAddress, }, }, + expectedRequest: 'LegacyCollectRequest', }, { settings: mockLegacyFreeCollectModuleSettingsFragment(), expected: { type: AllOpenActionType.LEGACY_COLLECT, }, + expectedRequest: 'LegacyCollectRequest', }, ])( - `when acting on a publication configured w/ $settings.__typename collect`, - ({ expected, settings }) => { - const expectedRequest = 'LegacyCollectRequest'; + `and a PrimaryPublication configured with the $settings.__typename`, + ({ expected, expectedRequest, settings }) => { const publication = mockPostFragment({ openActionModules: [settings], }); @@ -78,12 +82,13 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { signless: true, }); - describe(`on a PrimaryPublication`, () => { + describe(`when executing the Collect Action`, () => { it(`should support signless & sponsored ${expectedRequest} in a ${SessionType.WithProfile} session`, () => { const result = createOpenActionRequest( - { publication }, + { publication, sponsored: true }, { kind: OpenActionKind.COLLECT }, mockProfileSession({ profile }), + staging, ); expect(result).toMatchObject({ @@ -103,6 +108,7 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { }, { kind: OpenActionKind.COLLECT }, mockProfileSession({ profile }), + staging, ); expect(result).toMatchObject({ @@ -114,24 +120,26 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { it(`should throw an ${InvariantError.name} if attempted in a ${SessionType.JustWallet} session`, () => { expect(() => createOpenActionRequest( - { publication }, + { publication, sponsored: true }, { kind: OpenActionKind.COLLECT }, mockWalletOnlySession(), + staging, ), ).toThrow(InvariantError); }); }); - describe(`on a Mirror`, () => { + describe(`when executing the Collect Action on a Mirror for it`, () => { const mirror = mockMirrorFragment({ mirrorOn: publication, }); it(`should use the Mirror ID as the "referrer" for the ${expectedRequest}`, () => { const result = createOpenActionRequest( - { publication: mirror }, + { publication: mirror, sponsored: true }, { kind: OpenActionKind.COLLECT }, mockProfileSession({ profile }), + staging, ); expect(result).toMatchObject({ @@ -155,11 +163,27 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { type: AllOpenActionType.SIMPLE_COLLECT, fee: { amount: fee, - contractAddress: aContractAddress, + spender: aContractAddress, }, }, expectedRequest: 'SimpleCollectRequest', }, + { + settings: mockProtocolSharedRevenueCollectOpenActionSettingsFragment({ + amount: mockAmountFragmentFrom(fee), + contract: mockNetworkAddressFragment({ + address: aContractAddress, + }), + }), + expected: { + type: AllOpenActionType.SHARED_REVENUE_COLLECT, + fee: { + amount: fee, + spender: aContractAddress, + }, + }, + expectedRequest: 'SharedRevenueCollectRequest', + }, { settings: mockMultirecipientFeeCollectOpenActionSettingsFragment({ amount: mockAmountFragmentFrom(fee), @@ -171,13 +195,13 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { type: AllOpenActionType.MULTIRECIPIENT_COLLECT, fee: { amount: fee, - contractAddress: aContractAddress, + spender: aContractAddress, }, }, expectedRequest: 'MultirecipientCollectRequest', }, ])( - `when acting on a publication configured w/ $settings.__typename`, + `and a PrimaryPublication configured with the $settings.__typename`, ({ expected, expectedRequest, settings }) => { const publication = mockPostFragment({ openActionModules: [settings], @@ -187,13 +211,14 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { signless: true, }); - describe(`on a PrimaryPublication`, () => { + describe(`when executing the Collect Action`, () => { it(`should support signless & sponsored ${expectedRequest} in a ${SessionType.WithProfile} session`, () => { const referrers = [mockPublicationId(), mockProfileId()]; const result = createOpenActionRequest( - { publication }, + { publication, sponsored: true }, { kind: OpenActionKind.COLLECT, referrers }, mockProfileSession({ profile }), + staging, ); expect(result).toMatchObject({ @@ -208,9 +233,10 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { it(`should forward the referrers list`, () => { const referrers = [mockPublicationId(), mockProfileId()]; const result = createOpenActionRequest( - { publication }, + { publication, sponsored: true }, { kind: OpenActionKind.COLLECT, referrers }, mockProfileSession({ profile }), + staging, ); expect(result).toMatchObject({ @@ -223,6 +249,7 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { { publication, sponsored: false }, { kind: OpenActionKind.COLLECT }, mockProfileSession({ profile }), + staging, ); expect(result).toMatchObject({ @@ -234,9 +261,10 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { it(`should support public ${expectedRequest} in a ${SessionType.JustWallet} session`, () => { const referrers = [mockPublicationId(), mockProfileId()]; const result = createOpenActionRequest( - { publication }, + { publication, sponsored: true }, { kind: OpenActionKind.COLLECT, referrers }, mockWalletOnlySession(), + staging, ); expect(result).toMatchObject({ @@ -250,16 +278,17 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { }); }); - describe(`on a Mirror`, () => { + describe(`when executing the Collect Action on a Mirror`, () => { it(`should use the Mirror ID as default "referrers" for the ${expectedRequest}`, () => { const mirror = mockMirrorFragment({ mirrorOn: publication, }); const result = createOpenActionRequest( - { publication: mirror }, + { publication: mirror, sponsored: true }, { kind: OpenActionKind.COLLECT }, mockProfileSession({ profile }), + staging, ); expect(result).toMatchObject({ @@ -268,6 +297,23 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { }); }); }); + + describe(`when executing the specific Open Action in a ${SessionType.JustWallet} session`, () => { + it.only(`should specify the PublicActProxy as the fee spender`, () => { + const result = createOpenActionRequest( + { publication, sponsored: true }, + { kind: OpenActionKind.COLLECT }, + mockWalletOnlySession(), + staging, + ); + + expect(result).toMatchObject({ + fee: { + spender: staging.contracts.publicActProxy, + }, + }); + }); + }); }, ); @@ -295,7 +341,7 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { it(`should forward the referrers list`, () => { const referrers = [mockPublicationId(), mockProfileId()]; const result = createOpenActionRequest( - { publication }, + { publication, sponsored: true }, { kind: OpenActionKind.UNKNOWN, address: signlessSettings.contract.address, @@ -303,6 +349,7 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { referrers, }, mockProfileSession(), + staging, ); expect(result).toMatchObject({ @@ -319,13 +366,14 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { it(`should support signless & sponsored ${expectedRequest}`, () => { const result = createOpenActionRequest( - { publication }, + { publication, sponsored: true }, { kind: OpenActionKind.UNKNOWN, address: signlessSettings.contract.address, data, }, mockProfileSession({ profile }), + staging, ); expect(result).toMatchObject({ @@ -345,6 +393,7 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { const result = createOpenActionRequest( { publication, + sponsored: true, }, { kind: OpenActionKind.UNKNOWN, @@ -352,6 +401,7 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { data, }, mockProfileSession({ profile }), + staging, ); expect(result).toMatchObject({ @@ -375,6 +425,7 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { data, }, mockProfileSession({ profile }), + staging, ); expect(result).toMatchObject({ @@ -387,13 +438,14 @@ describe(`Given the ${createOpenActionRequest.name} predicate`, () => { describe(`when executing the specific Open Action in a ${SessionType.JustWallet} session`, () => { it(`should support public ${expectedRequest}`, () => { const result = createOpenActionRequest( - { publication }, + { publication, sponsored: true }, { kind: OpenActionKind.UNKNOWN, address: signlessSettings.contract.address, data, }, mockWalletOnlySession(), + staging, ); expect(result).toMatchObject({ diff --git a/packages/react/src/transactions/useOpenAction/createOpenActionRequest.ts b/packages/react/src/transactions/useOpenAction/createOpenActionRequest.ts index 2e49c9f16..aeffb8f18 100644 --- a/packages/react/src/transactions/useOpenAction/createOpenActionRequest.ts +++ b/packages/react/src/transactions/useOpenAction/createOpenActionRequest.ts @@ -1,7 +1,9 @@ -/* eslint-disable no-case-declarations */ import { AnyPublication, + MultirecipientFeeCollectOpenActionSettings, OpenActionModuleSettings, + ProtocolSharedRevenueCollectOpenActionSettings, + SimpleCollectOpenActionSettings, UnknownOpenActionModuleSettings, erc20Amount, findCollectModuleSettings, @@ -10,12 +12,14 @@ import { TransactionKind } from '@lens-protocol/domain/entities'; import { AllOpenActionType, CollectRequest, + FeeType, OpenActionRequest, UnknownActionRequest, } from '@lens-protocol/domain/use-cases/publications'; import { Data, invariant, never } from '@lens-protocol/shared-kernel'; import { ProfileSession, SessionType, WalletOnlySession } from '../../authentication'; +import { EnvironmentConfig } from '../../environments'; import { CollectParams, OpenActionArgs, @@ -30,10 +34,24 @@ function resolveTargetPublication(publication: AnyPublication) { return publication.__typename === 'Mirror' ? publication.mirrorOn : publication; } +function resolveFeeSpender( + session: ProfileSession | WalletOnlySession, + environment: EnvironmentConfig, + settings: + | MultirecipientFeeCollectOpenActionSettings + | ProtocolSharedRevenueCollectOpenActionSettings + | SimpleCollectOpenActionSettings, +) { + return session.type === SessionType.JustWallet + ? environment.contracts.publicActProxy + : settings.contract.address; +} + function resolveCollectRequestFor( args: RequiredOpenActionArgs, params: CollectParams, session: ProfileSession | WalletOnlySession, + environment: EnvironmentConfig, ): CollectRequest { const collectable = resolveTargetPublication(args.publication); const settings = findCollectModuleSettings(collectable); @@ -64,8 +82,10 @@ function resolveCollectRequestFor( publicationId: collectable.id, referrer: args.publication !== collectable ? args.publication.id : undefined, fee: { + type: FeeType.COLLECT, amount: erc20Amount(settings.amount), - contractAddress: settings.contract.address, + module: settings.contract.address, + spender: settings.contract.address, }, public: false, signless, @@ -87,7 +107,7 @@ function resolveCollectRequestFor( sponsored, }; - case 'SimpleCollectOpenActionSettings': + case 'SimpleCollectOpenActionSettings': { const amount = erc20Amount(settings.amount); return { @@ -100,13 +120,16 @@ function resolveCollectRequestFor( fee: amount.isZero() ? undefined : { + type: FeeType.COLLECT, amount, - contractAddress: settings.contract.address, + module: settings.contract.address, + spender: resolveFeeSpender(session, environment, settings), }, public: session.type === SessionType.JustWallet, signless, sponsored, }; + } case 'MultirecipientFeeCollectOpenActionSettings': return { @@ -117,14 +140,47 @@ function resolveCollectRequestFor( params.referrers ?? (args.publication !== collectable ? [args.publication.id] : undefined), fee: { + type: FeeType.COLLECT, amount: erc20Amount(settings.amount), - contractAddress: settings.contract.address, + module: settings.contract.address, + spender: resolveFeeSpender(session, environment, settings), }, public: session.type === SessionType.JustWallet, signless, sponsored, }; + case 'ProtocolSharedRevenueCollectOpenActionSettings': { + const amount = erc20Amount(settings.amount); + const spender = resolveFeeSpender(session, environment, settings); + + return { + kind: TransactionKind.ACT_ON_PUBLICATION, + type: AllOpenActionType.SHARED_REVENUE_COLLECT, + publicationId: collectable.id, + referrers: + params.referrers ?? + (args.publication !== collectable ? [args.publication.id] : undefined), + fee: amount.isZero() + ? { + type: FeeType.MINT, + amount: erc20Amount(settings.mintFee), + module: settings.contract.address, + spender, + executorClient: params.executorClient, + } + : { + type: FeeType.COLLECT, + amount, + module: settings.contract.address, + spender, + }, + public: session.type === SessionType.JustWallet, + signless, + sponsored, + }; + } + default: never(`The publication ${collectable.id} is not collectable`); } @@ -136,7 +192,7 @@ function isUnknownOpenActionModuleSettings( return settings.__typename === 'UnknownOpenActionModuleSettings'; } -function resolveExecutionDynamics( +function resolveExecutionMode( args: RequiredOpenActionArgs, session: ProfileSession | WalletOnlySession, settings: UnknownOpenActionModuleSettings, @@ -179,7 +235,7 @@ function resolveUnknownRequestFor( target.openActionModules?.find( (entry): entry is UnknownOpenActionModuleSettings => isUnknownOpenActionModuleSettings(entry) && entry.contract.address === params.address, - ) ?? never(`Cannot find Open Action settings ${params.address} fro publication ${target.id}`); + ) ?? never(`Cannot find Open Action settings ${params.address} in publication ${target.id}`); return { kind: TransactionKind.ACT_ON_PUBLICATION, @@ -188,20 +244,22 @@ function resolveUnknownRequestFor( address: settings.contract.address, data: params.data as Data, referrers: params.referrers, + amount: params.amount, - ...resolveExecutionDynamics(args, session, settings), + ...resolveExecutionMode(args, session, settings), }; } export function createOpenActionRequest( - { publication, sponsored = true }: OpenActionArgs, + { publication, sponsored }: RequiredOpenActionArgs, params: OpenActionParams, session: ProfileSession | WalletOnlySession, + environment: EnvironmentConfig, ): OpenActionRequest { const args = { publication, sponsored }; switch (params.kind) { case OpenActionKind.COLLECT: - return resolveCollectRequestFor(args, params, session); + return resolveCollectRequestFor(args, params, session, environment); case OpenActionKind.UNKNOWN: return resolveUnknownRequestFor(args, params, session); diff --git a/packages/react/src/transactions/useOpenAction/types.ts b/packages/react/src/transactions/useOpenAction/types.ts index 9d6badfb8..191793d2c 100644 --- a/packages/react/src/transactions/useOpenAction/types.ts +++ b/packages/react/src/transactions/useOpenAction/types.ts @@ -1,6 +1,6 @@ import { AnyPublication } from '@lens-protocol/api-bindings'; import { ProfileId, PublicationId } from '@lens-protocol/domain/entities'; -import { EvmAddress } from '@lens-protocol/shared-kernel'; +import { Erc20Amount, EvmAddress } from '@lens-protocol/shared-kernel'; /** * The category of Open Actions to perform on a given publication. @@ -33,6 +33,12 @@ export type UnknownActionParams = { * The usage of referrers is determined by the specific Open Action module. */ referrers?: ReadonlyArray; + /** + * The amount to be used by the Unknown Open Action. + * + * Use {@link Amount.erc20} with instances {@link Erc20} to create an instance of this type. + */ + amount?: Erc20Amount; }; /** @@ -52,6 +58,19 @@ export type CollectParams = { * @defaultValue if the publication is a Mirror the Mirror ID, empty otherwise. */ referrers?: ReadonlyArray; + + /** + * The executor app address. + * + * This field is evaluated only when the Publication's collect settings utilize + * the `ProtocolSharedRevenueMinFeeMintModule`, and no collect fee has been set. + * + * In the case above, the executor app will receive their share of the mint fee as per + * Lens Protocol shared revenue settings. + * + * If not set, the share for the executor app will be given to the creator of the publication. + */ + executorClient?: EvmAddress; }; /** @@ -85,7 +104,6 @@ export type OpenActionArgs = { * See {@link BroadcastingError} with: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * If not specified, or `true`, the hook will attempt a Sponsored Transaction. * Set it to `false` to force it to use a Self-Funded Transaction. diff --git a/packages/react/src/transactions/useOpenAction/useOpenAction.ts b/packages/react/src/transactions/useOpenAction/useOpenAction.ts index 7ee41c003..ca6a15331 100644 --- a/packages/react/src/transactions/useOpenAction/useOpenAction.ts +++ b/packages/react/src/transactions/useOpenAction/useOpenAction.ts @@ -13,9 +13,9 @@ import { invariant } from '@lens-protocol/shared-kernel'; import { useSession } from '../../authentication'; import { useDeferredTask, UseDeferredTask } from '../../helpers/tasks'; +import { useSharedDependencies } from '../../shared'; import { AsyncTransactionResult } from '../adapters/AsyncTransactionResult'; import { useOpenActionController } from '../adapters/useOpenActionController'; -import { useSponsoredConfig } from '../shared/useSponsoredConfig'; import { createOpenActionRequest } from './createOpenActionRequest'; import { OpenActionArgs, UseOpenActionArgs } from './types'; @@ -40,7 +40,7 @@ export type OpenActionAsyncResult = AsyncTransactionResult; * }); * ``` * - * ## Collect a publication + * ## Collect a Publication * * You can use the `useOpenAction` hook to collect a publication. * @@ -58,7 +58,76 @@ export type OpenActionAsyncResult = AsyncTransactionResult; * * It supports seamlessly new collect Open Action modules as well as legacy collect modules. * - * ## Failure scenarios + * ## Collect Referrers + * + * When collecting a publication using the new SimpleCollectOpenAction or MultirecipientFeeCollectOpenAction + * you can specify a list of referrer Publication and/or Profile IDs. + * + * ```ts + * const { execute, error, loading } = useOpenAction({ + * action: { + * kind: OpenActionKind.COLLECT, + * referrers: [ + * publicationId, + * profileId, + * ], + * }, + * }); + * ``` + * + * The referrers will split the referral reward of any collect fee paid by the collector. + * + * ## Public Collect + * + * You can use the `useOpenAction` hook to collect a publication with just a wallet. + * First make sure you logged-in via {@link useLogin} with just an EVM address. + * + * Then you can use the `useOpenAction` to collect a publication as mentioned above. + * + * ## Execute Any Open Action + * + * You can use the `useOpenAction` hook to execute any Open Action. + * + * You must know the address of the Open Action module and the data required to execute it. + * + * ```ts + * const { execute, error, loading } = useOpenAction({ + * action: { + * kind: OpenActionKind.UNKNOWN, + * address: '0x...', // the address of the Open Action module + * data: '0x...', // any data needed to execute the Open Action + * } + * }); + * + * const collect = async (publication: AnyPublication) => { + * const result = await execute({ publication }); + * + * // ... + * } + * ``` + * + * In case the Open Action imply the payment of a fee, you need to specify the amount to pay. + * + * ```ts + * const bonsai = erc20({ + * address: '0x3d2bD0e15829AA5C362a4144FdF4A1112fa29B5c', + * chainType: ChainType.POLYGON, + * decimals: 18, + * name: 'BONSAI', + * symbol: 'BONSAI', + * }); + * + * const { execute, error, loading } = useOpenAction({ + * action: { + * kind: OpenActionKind.UNKNOWN, + * address: '0x...', // the address of the Open Action module + * data: '0x...', // any data needed to execute the Open Action + * amount: Amount.erc20(bonsai, '10'), // the amount to pay + * } + * }); + * ``` + * + * ## Failure Scenarios * * You can handle possible failure scenarios by checking the `result` value. * @@ -108,7 +177,7 @@ export type OpenActionAsyncResult = AsyncTransactionResult; * }; * ``` * - * ## Wait for completion + * ## Wait for Completion * * You can always wait the operation to be fully processed and indexed by Lens API. * @@ -133,55 +202,7 @@ export type OpenActionAsyncResult = AsyncTransactionResult; * }; * ``` * - * ## Collect referrers - * - * When collecting a publication using the new SimpleCollectOpenAction or MultirecipientFeeCollectOpenAction - * you can specify a list of referrer Publication and/or Profile IDs. - * - * ```ts - * const { execute, error, loading } = useOpenAction({ - * action: { - * kind: OpenActionKind.COLLECT, - * referrers: [ - * publicationId, - * profileId, - * ], - * }, - * }); - * ``` - * - * The referrers will split the referral reward of any collect fee paid by the collector. - * - * ## Public collect - * - * You can use the `useOpenAction` hook to collect a publication with just a wallet. - * First make sure you logged-in via {@link useLogin} with just an EVM address. - * - * Then you can use the `useOpenAction` to collect a publication as mentioned above. - * - * ## Custom open action - * - * You can use the `useOpenAction` hook to execute a custom Open Action. - * - * You must know the address of the Open Action module and the data required to execute it. - * - * ```ts - * const { execute, error, loading } = useOpenAction({ - * action: { - * kind: OpenActionKind.UNKNOWN, - * address: '0x...', // the address of the Open Action module - * data: '0x...', // any data needed to execute the Open Action - * } - * }); - * - * const collect = async (publication: AnyPublication) => { - * const result = await execute({ publication }); - * - * // ... - * } - * ``` - * - * ## Self-funded approach + * ## Self-funded Approach * * It just takes a single parameter to disable the sponsorship of the transaction gas costs. * @@ -210,12 +231,11 @@ export type OpenActionAsyncResult = AsyncTransactionResult; * error happens only with self-funded transactions and it means that the wallet does not * have enough funds to pay for the transaction gas costs. * - * ## Self-funded fallback + * ## Self-funded Fallback * * If for some reason the Lens API cannot sponsor the transaction, the hook will fail with a {@link BroadcastingError} with one of the following reasons: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * In those cases you can retry the transaction as self-funded like in the following example: * @@ -239,12 +259,6 @@ export type OpenActionAsyncResult = AsyncTransactionResult; * } * ``` * - * In this example we omitted {@link BroadcastingErrorReason.APP_NOT_ALLOWED} as it's not normally a problem per-se. - * It just requires the app to apply for whitelisting. See https://docs.lens.xyz/docs/gasless-and-signless#whitelisting-your-app. - * - * You can still include it in your fallback logic if you want to. For example to unblock testing your app from a domain that is not the - * whitelisted one (e.g. localhost). - * * @category Publications * @group Hooks */ @@ -263,7 +277,7 @@ export function useOpenAction( > { const { data: session } = useSession(); const openAction = useOpenActionController(); - const configureRequest = useSponsoredConfig(); + const { config } = useSharedDependencies(); return useDeferredTask(async ({ publication, sponsored = true }: OpenActionArgs) => { invariant( @@ -275,8 +289,14 @@ export function useOpenAction( 'You cannot execute an Open Action on a Momoka publication.', ); - const request = configureRequest( - createOpenActionRequest({ publication, sponsored }, args.action, session), + const request = createOpenActionRequest( + { + publication, + sponsored: config.sponsored ? sponsored : true, + }, + args.action, + session, + config.environment, ); return openAction(request); diff --git a/packages/react/src/transactions/useSetProfileMetadata.ts b/packages/react/src/transactions/useSetProfileMetadata.ts index ef3f35777..835e467b0 100644 --- a/packages/react/src/transactions/useSetProfileMetadata.ts +++ b/packages/react/src/transactions/useSetProfileMetadata.ts @@ -28,7 +28,6 @@ export type UseSetProfileMetadataArgs = { * See {@link BroadcastingError} with: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * If not specified, or `true`, the hook will attempt a Sponsored Transaction. * Set it to `false` to force it to use a Self-Funded Transaction. @@ -178,7 +177,6 @@ export type UseSetProfileMetadataArgs = { * If for some reason the Lens API cannot sponsor the transaction, the hook will fail with a {@link BroadcastingError} with one of the following reasons: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * In those cases you can retry the transaction as self-funded like in the following example: * @@ -211,12 +209,6 @@ export type UseSetProfileMetadataArgs = { * } * ``` * - * In this example we omitted {@link BroadcastingErrorReason.APP_NOT_ALLOWED} as it's not normally a problem per-se. - * It just requires the app to apply for whitelisting. See https://docs.lens.xyz/docs/gasless-and-signless#whitelisting-your-app. - * - * You can still include it in your fallback logic if you want to. For example to unblock testing your app from a domain that is not the - * whitelisted one (e.g. localhost). - * * @category Profiles * @group Hooks */ diff --git a/packages/react/src/transactions/useUnblockProfiles.ts b/packages/react/src/transactions/useUnblockProfiles.ts index cdd8056fc..a93da599e 100644 --- a/packages/react/src/transactions/useUnblockProfiles.ts +++ b/packages/react/src/transactions/useUnblockProfiles.ts @@ -32,7 +32,6 @@ export type UnblockProfileArgs = { * See {@link BroadcastingError} with: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * If not specified, or `true`, the hook will attempt a Sponsored Transaction. * Set it to `false` to force it to use a Self-Funded Transaction. @@ -192,7 +191,6 @@ export type UnblockProfileArgs = { * If for some reason the Lens API cannot sponsor the transaction, the hook will fail with a {@link BroadcastingError} with one of the following reasons: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * In those cases you can retry the transaction as self-funded like in the following example: * @@ -223,13 +221,6 @@ export type UnblockProfileArgs = { * } * } * ``` - * - * In this example we omitted {@link BroadcastingErrorReason.APP_NOT_ALLOWED} as it's not normally a problem per-se. - * It just requires the app to apply for whitelisting. See https://docs.lens.xyz/docs/gasless-and-signless#whitelisting-your-app. - * - * You can still include it in your fallback logic if you want to. For example to unblock testing your app from a domain that is not the - * whitelisted one (e.g. localhost). - * */ export function useUnblockProfiles(): UseDeferredTask< AsyncTransactionResult, diff --git a/packages/react/src/transactions/useUnfollow.ts b/packages/react/src/transactions/useUnfollow.ts index 6b9903e61..1a2e9d0d1 100644 --- a/packages/react/src/transactions/useUnfollow.ts +++ b/packages/react/src/transactions/useUnfollow.ts @@ -35,7 +35,6 @@ export type UnfollowArgs = { * See {@link BroadcastingError} with: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * If not specified, or `true`, the hook will attempt a Sponsored Transaction. * Set it to `false` to force it to use a Self-Funded Transaction. @@ -179,7 +178,6 @@ export type UnfollowArgs = { * If for some reason the Lens API cannot sponsor the transaction, the hook will fail with a {@link BroadcastingError} with one of the following reasons: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * In those cases you can retry the transaction as self-funded like in the following example: * @@ -210,14 +208,6 @@ export type UnfollowArgs = { * } * } * ``` - * - * In this example we omitted {@link BroadcastingErrorReason.APP_NOT_ALLOWED} as it's not normally a problem per-se. - * It just requires the app to apply for whitelisting. See https://docs.lens.xyz/docs/gasless-and-signless#whitelisting-your-app. - * - * You can still include it in your fallback logic if you want to. For example to unblock testing your app from a domain that is not the - * whitelisted one (e.g. localhost). - * - * */ export function useUnfollow(): UseDeferredTask< UnfollowAsyncResult, diff --git a/packages/react/src/transactions/useUnlinkHandle.ts b/packages/react/src/transactions/useUnlinkHandle.ts index 140b4ebcc..d3807777e 100644 --- a/packages/react/src/transactions/useUnlinkHandle.ts +++ b/packages/react/src/transactions/useUnlinkHandle.ts @@ -28,7 +28,6 @@ export type UnlinkHandleArgs = { * See {@link BroadcastingError} with: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * If not specified, or `true`, the hook will attempt a Sponsored Transaction. * Set it to `false` to force it to use a Self-Funded Transaction. @@ -172,7 +171,6 @@ export type UnlinkHandleArgs = { * If for some reason the Lens API cannot sponsor the transaction, the hook will fail with a {@link BroadcastingError} with one of the following reasons: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * In those cases you can retry the transaction as self-funded like in the following example: * @@ -203,13 +201,6 @@ export type UnlinkHandleArgs = { * } * } * ``` - * - * In this example we omitted {@link BroadcastingErrorReason.APP_NOT_ALLOWED} as it's not normally a problem per-se. - * It just requires the app to apply for whitelisting. See https://docs.lens.xyz/docs/gasless-and-signless#whitelisting-your-app. - * - * You can still include it in your fallback logic if you want to. For example to unblock testing your app from a domain that is not the - * whitelisted one (e.g. localhost). - * */ export function useUnlinkHandle(): UseDeferredTask< AsyncTransactionResult, diff --git a/packages/react/src/transactions/useUpdateFollowPolicy.ts b/packages/react/src/transactions/useUpdateFollowPolicy.ts index fb5b0f9fb..cebd55469 100644 --- a/packages/react/src/transactions/useUpdateFollowPolicy.ts +++ b/packages/react/src/transactions/useUpdateFollowPolicy.ts @@ -32,7 +32,6 @@ export type UpdateFollowPolicyArgs = { * See {@link BroadcastingError} with: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * If not specified, or `true`, the hook will attempt a Sponsored Transaction. * Set it to `false` to force it to use a Self-Funded Transaction. @@ -121,7 +120,6 @@ export type UpdateFollowPolicyArgs = { * If for some reason the Lens API cannot sponsor the transaction, the hook will fail with a {@link BroadcastingError} with one of the following reasons: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * In those cases you can retry the transaction as self-funded like in the following example: * @@ -157,13 +155,6 @@ export type UpdateFollowPolicyArgs = { * } * } * ``` - * - * In this example we omitted {@link BroadcastingErrorReason.APP_NOT_ALLOWED} as it's not normally a problem per-se. - * It just requires the app to apply for whitelisting. See https://docs.lens.xyz/docs/gasless-and-signless#whitelisting-your-app. - * - * You can still include it in your fallback logic if you want to. For example to unblock testing your app from a domain that is not the - * whitelisted one (e.g. localhost). - * */ export function useUpdateFollowPolicy(): UseDeferredTask< void, diff --git a/packages/react/src/transactions/useUpdateProfileManagers.ts b/packages/react/src/transactions/useUpdateProfileManagers.ts index 0744b9e4f..d4e1ad154 100644 --- a/packages/react/src/transactions/useUpdateProfileManagers.ts +++ b/packages/react/src/transactions/useUpdateProfileManagers.ts @@ -36,7 +36,6 @@ export type UpdateProfileManagersArgs = AtLeastOneOf<{ * See {@link BroadcastingError} with: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * If not specified, or `true`, the hook will attempt a Sponsored Transaction. * Set it to `false` to force it to use a Self-Funded Transaction. @@ -156,7 +155,6 @@ export type UpdateProfileManagersArgs = AtLeastOneOf<{ * If for some reason the Lens API cannot sponsor the transaction, the hook will fail with a {@link BroadcastingError} with one of the following reasons: * - {@link BroadcastingErrorReason.NOT_SPONSORED} - the profile is not sponsored * - {@link BroadcastingErrorReason.RATE_LIMITED} - the profile reached the rate limit - * - {@link BroadcastingErrorReason.APP_NOT_ALLOWED} - the app is not whitelisted for gasless transactions * * In those cases you can retry the transaction as self-funded like in the following example: * @@ -185,13 +183,6 @@ export type UpdateProfileManagersArgs = AtLeastOneOf<{ * } * } * ``` - * - * In this example we omitted {@link BroadcastingErrorReason.APP_NOT_ALLOWED} as it's not normally a problem per-se. - * It just requires the app to apply for whitelisting. See https://docs.lens.xyz/docs/gasless-and-signless#whitelisting-your-app. - * - * You can still include it in your fallback logic if you want to. For example to unblock testing your app from a domain that is not the - * whitelisted one (e.g. localhost). - * * @category Profiles * @group Hooks */ From 3e4911040708f9f2a9cdc695a035f01a85807924 Mon Sep 17 00:00:00 2001 From: Cesare Naldi Date: Tue, 21 May 2024 13:29:44 +0200 Subject: [PATCH 14/15] feat: Suspense support to useExplorePublications, useExploreProfiles, useRecommendedProfiles hooks --- .changeset/seven-pugs-own.md | 7 + .../web/src/discovery/UseExploreProfiles.tsx | 9 +- .../src/discovery/UseExplorePublications.tsx | 9 +- .../src/discovery/UseRecommendedProfiles.tsx | 34 ++--- .../react/src/authentication/useSession.ts | 2 +- .../react/src/discovery/useExploreProfiles.ts | 112 +++++++++++----- .../src/discovery/useExplorePublications.ts | 123 ++++++++++++------ .../src/discovery/useRecommendedProfiles.ts | 69 +++++++--- .../react/src/discovery/useSearchProfiles.ts | 4 +- .../src/discovery/useSearchPublications.ts | 78 +++++------ packages/react/src/helpers/tasks.ts | 2 +- packages/react/src/misc/useCurrencies.ts | 4 +- .../react/src/profile/useProfileManagers.ts | 4 +- 13 files changed, 276 insertions(+), 181 deletions(-) create mode 100644 .changeset/seven-pugs-own.md diff --git a/.changeset/seven-pugs-own.md b/.changeset/seven-pugs-own.md new file mode 100644 index 000000000..8342ee4be --- /dev/null +++ b/.changeset/seven-pugs-own.md @@ -0,0 +1,7 @@ +--- +"@lens-protocol/react": minor +"@lens-protocol/react-native": minor +"@lens-protocol/react-web": minor +--- + +**feat:** add React Suspense support to `useExplorePublications`, `useExploreProfiles`, `useRecommendedProfiles` hooks diff --git a/examples/web/src/discovery/UseExploreProfiles.tsx b/examples/web/src/discovery/UseExploreProfiles.tsx index 3cc60d42a..e51a4961f 100644 --- a/examples/web/src/discovery/UseExploreProfiles.tsx +++ b/examples/web/src/discovery/UseExploreProfiles.tsx @@ -1,21 +1,16 @@ import { useExploreProfiles, ExploreProfilesOrderByType } from '@lens-protocol/react-web'; -import { ErrorMessage } from '../components/error/ErrorMessage'; -import { Loading } from '../components/loading/Loading'; import { useInfiniteScroll } from '../hooks/useInfiniteScroll'; import { ProfileCard } from '../profiles/components/ProfileCard'; export function UseExploreProfiles() { - const { data, error, loading, hasMore, observeRef } = useInfiniteScroll( + const { data, hasMore, observeRef } = useInfiniteScroll( useExploreProfiles({ orderBy: ExploreProfilesOrderByType.LatestCreated, + suspense: true, }), ); - if (loading) return ; - - if (error) return ; - if (data.length === 0) return

No items

; return ( diff --git a/examples/web/src/discovery/UseExplorePublications.tsx b/examples/web/src/discovery/UseExplorePublications.tsx index acca4c889..31ce20049 100644 --- a/examples/web/src/discovery/UseExplorePublications.tsx +++ b/examples/web/src/discovery/UseExplorePublications.tsx @@ -2,27 +2,20 @@ import { ExplorePublicationsOrderByType, useExplorePublications } from '@lens-pr import { CollectCriteria } from '../components/CollectPolicy'; import { PublicationCard } from '../components/cards'; -import { ErrorMessage } from '../components/error/ErrorMessage'; -import { Loading } from '../components/loading/Loading'; import { useInfiniteScroll } from '../hooks/useInfiniteScroll'; export function UseExplorePublications() { const { data: publications, - error, - loading, hasMore, observeRef, } = useInfiniteScroll( useExplorePublications({ orderBy: ExplorePublicationsOrderByType.Latest, + suspense: true, }), ); - if (loading) return ; - - if (error) return ; - return (

diff --git a/examples/web/src/discovery/UseRecommendedProfiles.tsx b/examples/web/src/discovery/UseRecommendedProfiles.tsx index 9840d3655..ec7b9ffc4 100644 --- a/examples/web/src/discovery/UseRecommendedProfiles.tsx +++ b/examples/web/src/discovery/UseRecommendedProfiles.tsx @@ -5,21 +5,18 @@ import { } from '@lens-protocol/react-web'; import { RequireProfileSession } from '../components/auth'; -import { ErrorMessage } from '../components/error/ErrorMessage'; -import { Loading } from '../components/loading/Loading'; import { useInfiniteScroll } from '../hooks/useInfiniteScroll'; import { ProfileCard } from '../profiles/components/ProfileCard'; function UseRecommendedProfilesInner({ profileId }: { profileId: ProfileId }) { const { data: profiles, - error, - loading, hasMore, observeRef, } = useInfiniteScroll( useRecommendedProfiles({ for: profileId, + suspense: true, }), ); @@ -29,21 +26,20 @@ function UseRecommendedProfilesInner({ profileId }: { profileId: ProfileId }) { void dismiss({ profileIds: [id] }); }; - if (loading) return ; - - if (error) return ; - return (
- {profiles.map((p) => ( -
- +

+ useRecommendedProfiles +

+
+ {profiles.map((p) => ( + -
- ))} + ))} +
{hasMore &&

Loading more...

}
@@ -52,14 +48,8 @@ function UseRecommendedProfilesInner({ profileId }: { profileId: ProfileId }) { export function UseRecommendedProfiles() { return ( -
-

- useRecommendedProfiles & useDismissRecommendedProfiles -

- - - {({ profile }) => } - -
+ + {({ profile }) => } + ); } diff --git a/packages/react/src/authentication/useSession.ts b/packages/react/src/authentication/useSession.ts index 976e8dc99..7f9289a1c 100644 --- a/packages/react/src/authentication/useSession.ts +++ b/packages/react/src/authentication/useSession.ts @@ -99,7 +99,7 @@ export type UseSessionArgs = SuspenseEnabled; * function Page() { * const { data, error, loading } = useSession(); * - * if (loading) return

Loading...

; + * if (loading) return ; * * if (error) return

Something went wrong.

; * diff --git a/packages/react/src/discovery/useExploreProfiles.ts b/packages/react/src/discovery/useExploreProfiles.ts index 1c204b0a1..f025a463d 100644 --- a/packages/react/src/discovery/useExploreProfiles.ts +++ b/packages/react/src/discovery/useExploreProfiles.ts @@ -1,61 +1,101 @@ import { + ExploreProfilesDocument, ExploreProfilesOrderByType, ExploreProfilesRequest, + ExploreProfilesWhere, Profile, - useExploreProfiles as useBaseExploreProfilesQuery, } from '@lens-protocol/api-bindings'; import { useLensApolloClient } from '../helpers/arguments'; -import { PaginatedArgs, PaginatedReadResult, usePaginatedReadResult } from '../helpers/reads'; +import { PaginatedArgs, PaginatedReadResult } from '../helpers/reads'; +import { + SuspendablePaginatedResult, + SuspenseEnabled, + SuspensePaginatedResult, + useSuspendablePaginatedQuery, +} from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; +/** + * {@link useExploreProfiles} hook arguments + */ export type UseExploreProfilesArgs = PaginatedArgs; +export type { ExploreProfilesRequest, ExploreProfilesWhere }; + /** - * `useExploreProfiles` is a paginated hook that lets you discover new profiles based on a defined criteria - * - * @category Discovery - * @group Hooks - * @param args - {@link UseExploreProfilesArgs} + * {@link useExploreProfiles} hook arguments with Suspense support + */ +export type UseSuspenseExploreProfilesArgs = SuspenseEnabled; + +/** + * Discover new profiles based on a defined criteria. * - * @example - * Explore the latest created profiles * ```tsx - * import { useExploreProfiles, ExploreProfilesOrderByType } from '@lens-protocol/react'; + * const { data, error, loading } = useExploreProfiles({ + * orderBy: ExploreProfilesOrderByType.LatestCreated, + * }); + * + * if (loading) return ; + * + * if (error) return ; * - * function ExploreProfiles() { - * const { data, error, loading } = useExploreProfiles({ - * orderBy: ExploreProfilesOrderByType.LatestCreated, - * }); + * return ( + * <> + * {data.map((profile) => ( + * + * ))} + * + * ); + * ``` + * + * @category Discovery + * @group Hooks + */ +export function useExploreProfiles(args?: UseExploreProfilesArgs): PaginatedReadResult; + +/** + * Discover new profiles based on a defined criteria. * - * if (loading) return

Loading...

; + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). * - * if (error) return

Error: {error.message}

; + * ```ts + * const { data } = useExploreProfiles({ + * orderBy: ExploreProfilesOrderByType.LatestCreated, + * suspense: true, + * ); * - * return ( - *
    - * {data.map((profile) => ( - *
  • {profile.handle}
  • - * ))} - *
- * ); - * } + * console.log(data); * ``` + * + * @experimental This API can change without notice + * @category Discovery + * @group Hooks */ export function useExploreProfiles( - { where, limit, orderBy = ExploreProfilesOrderByType.LatestCreated }: UseExploreProfilesArgs = { + args: UseSuspenseExploreProfilesArgs, +): SuspensePaginatedResult; + +export function useExploreProfiles( + { + where, + limit, + orderBy = ExploreProfilesOrderByType.LatestCreated, + suspense = false, + }: UseExploreProfilesArgs & { suspense?: boolean } = { orderBy: ExploreProfilesOrderByType.LatestCreated, + suspense: false, }, -): PaginatedReadResult { - return usePaginatedReadResult( - useBaseExploreProfilesQuery( - useLensApolloClient({ - variables: useFragmentVariables({ - limit, - where, - orderBy, - }), +): SuspendablePaginatedResult { + return useSuspendablePaginatedQuery({ + suspense, + query: ExploreProfilesDocument, + options: useLensApolloClient({ + variables: useFragmentVariables({ + limit, + where, + orderBy, }), - ), - ); + }), + }); } diff --git a/packages/react/src/discovery/useExplorePublications.ts b/packages/react/src/discovery/useExplorePublications.ts index 3a4597443..b5fc90e41 100644 --- a/packages/react/src/discovery/useExplorePublications.ts +++ b/packages/react/src/discovery/useExplorePublications.ts @@ -1,66 +1,109 @@ import { + ExplorePublication, ExplorePublicationRequest, + ExplorePublicationsDocument, ExplorePublicationsOrderByType, - useExplorePublications as useUnderlyingQuery, - ExplorePublication, + ExplorePublicationsWhere, } from '@lens-protocol/api-bindings'; import { useLensApolloClient } from '../helpers/arguments'; -import { PaginatedArgs, PaginatedReadResult, usePaginatedReadResult } from '../helpers/reads'; +import { PaginatedArgs, PaginatedReadResult } from '../helpers/reads'; +import { + SuspendablePaginatedResult, + SuspenseEnabled, + SuspensePaginatedResult, + useSuspendablePaginatedQuery, +} from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; +/** + * {@link useExplorePublications} hook arguments + */ export type UseExplorePublicationsArgs = PaginatedArgs; +export type { ExplorePublicationRequest, ExplorePublicationsWhere }; + /** - * `useExplorePublications` is a paginated hook that lets you discover new publications base on a defined criteria + * {@link useExplorePublications} hook arguments with Suspense support * - * @category Discovery - * @group Hooks - * @param args - {@link UseExplorePublicationsArgs} + * @experimental This API can change without notice + */ +export type UseSuspenseExplorePublicationsArgs = SuspenseEnabled; + +/** + * Discover new publications base on a defined criteria. * - * @example - * Explore publications of type post with the most comments * ```tsx - * import { useExplorePublications, ExplorePublicationsOrderByType, ExplorePublicationType } from '@lens-protocol/react'; + * const { data, error, loading } = useExplorePublications( + * where: { + * publicationTypes: [ExplorePublicationType.Post], + * }, + * orderBy: ExplorePublicationsOrderByType.TopCommented, + * ); + * + * if (loading) return ; + * + * if (error) return ; * - * function ExplorePublications() { - * const { data, error, loading } = useExplorePublications( - * where: { - * publicationTypes: [ExplorePublicationType.Post], - * }, - * orderBy: ExplorePublicationsOrderByType.TopCommented, + * return ( + * <> + * {data.map((publication) => ( + * + * ))} + * * ); + * ``` + * + * @category Discovery + * @group Hooks + */ +export function useExplorePublications( + args?: UseExplorePublicationsArgs, +): PaginatedReadResult; + +/** + * Discover new publications base on a defined criteria. * - * if (loading) return

Loading...

; + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). * - * if (error) return

Error: {error.message}

; + * ```ts + * const { data } = useExplorePublications( + * where: { + * publicationTypes: [ExplorePublicationType.Post], + * }, + * orderBy: ExplorePublicationsOrderByType.TopCommented, + * suspense: true, + * ); * - * return ( - *
    - * {data.map((publication) => ( - *
  • - * // render publication details - *
  • - * ))} - *
- * ); - * } + * console.log(data); * ``` + * + * @experimental This API can change without notice + * @category Discovery + * @group Hooks */ export function useExplorePublications( - { where, orderBy = ExplorePublicationsOrderByType.Latest }: UseExplorePublicationsArgs = { + args: UseSuspenseExplorePublicationsArgs, +): SuspensePaginatedResult; + +export function useExplorePublications( + { + orderBy = ExplorePublicationsOrderByType.Latest, + where, + suspense = false, + }: UseExplorePublicationsArgs & { suspense?: boolean } = { orderBy: ExplorePublicationsOrderByType.Latest, }, -): PaginatedReadResult { - return usePaginatedReadResult( - useUnderlyingQuery( - useLensApolloClient({ - variables: useFragmentVariables({ - where, - orderBy, - statsFor: where?.metadata?.publishedOn, - }), +): SuspendablePaginatedResult { + return useSuspendablePaginatedQuery({ + suspense, + query: ExplorePublicationsDocument, + options: useLensApolloClient({ + variables: useFragmentVariables({ + where, + orderBy, + statsFor: where?.metadata?.publishedOn, }), - ), - ); + }), + }); } diff --git a/packages/react/src/discovery/useRecommendedProfiles.ts b/packages/react/src/discovery/useRecommendedProfiles.ts index 5e112d1bd..d8497a8c4 100644 --- a/packages/react/src/discovery/useRecommendedProfiles.ts +++ b/packages/react/src/discovery/useRecommendedProfiles.ts @@ -1,11 +1,17 @@ import { Profile, + ProfileRecommendationsDocument, ProfileRecommendationsRequest, - useProfileRecommendations as useProfileRecommendationsHook, } from '@lens-protocol/api-bindings'; import { useLensApolloClient } from '../helpers/arguments'; -import { PaginatedArgs, PaginatedReadResult, usePaginatedReadResult } from '../helpers/reads'; +import { PaginatedArgs, PaginatedReadResult } from '../helpers/reads'; +import { + SuspendablePaginatedResult, + SuspenseEnabled, + SuspensePaginatedResult, + useSuspendablePaginatedQuery, +} from '../helpers/suspense'; import { useFragmentVariables } from '../helpers/variables'; /** @@ -13,27 +19,60 @@ import { useFragmentVariables } from '../helpers/variables'; */ export type UseRecommendedProfilesArgs = PaginatedArgs; +export type { ProfileRecommendationsRequest }; + /** - * `useRecommendedProfiles` is a paginated hook that lets you fetch recommended profiles. - * - * @category Discovery - * @group Hooks + * {@link useRecommendedProfiles} hook arguments with Suspense support + */ +export type UseSuspenseRecommendedProfilesArgs = SuspenseEnabled; + +/** + * Provides profile recommendations based on user's social engagement and machine learning predictions. * - * @example * ```tsx * const { data, loading, error } = useRecommendedProfiles({ * for: '0x123', * }); * ``` + * + * @category Discovery + * @group Hooks */ export function useRecommendedProfiles( args: UseRecommendedProfilesArgs, -): PaginatedReadResult { - return usePaginatedReadResult( - useProfileRecommendationsHook( - useLensApolloClient({ - variables: useFragmentVariables(args), - }), - ), - ); +): PaginatedReadResult; + +/** + * Provides profile recommendations based on user's social engagement and machine learning predictions. + * + * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). + * + * ```ts + * const { data } = useRecommendedProfiles({ + * for: '0x123', + * suspense: true + * }); + * + * console.log(data); + * ``` + * + * @experimental This API can change without notice + * @category Discovery + * @group Hooks + */ +export function useRecommendedProfiles( + args: UseSuspenseRecommendedProfilesArgs, +): SuspensePaginatedResult; + +export function useRecommendedProfiles({ + suspense = false, + ...args +}: UseRecommendedProfilesArgs & { suspense?: boolean }): SuspendablePaginatedResult { + return useSuspendablePaginatedQuery({ + suspense, + query: ProfileRecommendationsDocument, + options: useLensApolloClient({ + variables: useFragmentVariables(args), + }), + }); } diff --git a/packages/react/src/discovery/useSearchProfiles.ts b/packages/react/src/discovery/useSearchProfiles.ts index c7e940291..2e7d786da 100644 --- a/packages/react/src/discovery/useSearchProfiles.ts +++ b/packages/react/src/discovery/useSearchProfiles.ts @@ -36,9 +36,9 @@ export type UseSuspenseSearchProfilesArgs = SuspenseEnabledLoading...

; + * if (loading) return ; * - * if (error) return

Error: {error.message}

; + * if (error) return ; * * return ( *
    diff --git a/packages/react/src/discovery/useSearchPublications.ts b/packages/react/src/discovery/useSearchPublications.ts index 385e2eb11..b2825f61c 100644 --- a/packages/react/src/discovery/useSearchPublications.ts +++ b/packages/react/src/discovery/useSearchPublications.ts @@ -30,60 +30,48 @@ export type { PublicationSearchRequest, PublicationSearchWhere }; export type UseSuspenseSearchPublicationsArgs = SuspenseEnabled; /** - * Search for publications based on a defined criteria + * Search for publications based on a defined criteria. * * Search for publications with content that contains "foo" * ```tsx - * import { useSearchPublications } from '@lens-protocol/react'; + * const { data, error, loading } = useSearchPublications({ query: 'foo' }); * - * function SearchPublication() { - * const { data, error, loading } = useSearchPublications({ query: 'foo' }); + * if (loading) return ; * - * if (loading) return

    Loading...

    ; + * if (error) return ; * - * if (error) return

    Error: {error.message}

    ; - * - * return ( - *
      - * {data.map((publication) => ( - *
    • - * // render publication details - *
    • - * ))} - *
    - * ); - * } + * return ( + * <> + * {data.map((publication) => ( + * + * ))} + * + * ); * ``` * * Search for audio post publications with content that matches a query * ```tsx - * import { useSearchPublications } from '@lens-protocol/react'; - * - * function SearchPublication() { - * const { data, error, loading } = useSearchPublications({ - * query, - * where: { - * publicationTypes: [SearchPublicationType.Post], - * metadata: { - * mainContentFocus: [PublicationMetadataMainFocusType.Audio], - * }, - * }, - * }); - * - * if (loading) return

    Loading...

    ; - * - * if (error) return

    Error: {error.message}

    ; - * - * return ( - *
      - * {data.map((publication) => ( - *
    • - * // render publication details - *
    • - * ))} - *
    - * ); - * } + * const { data, error, loading } = useSearchPublications({ + * query: '...', + * where: { + * publicationTypes: [SearchPublicationType.Post], + * metadata: { + * mainContentFocus: [PublicationMetadataMainFocusType.Audio], + * }, + * }, + * }); + * + * if (loading) return ; + * + * if (error) return ; + * + * return ( + * <> + * {data.map((publication) => ( + * + * ))} + * + * ); * ``` * * @category Discovery @@ -94,7 +82,7 @@ export function useSearchPublications( ): PaginatedReadResult; /** - * Search for publications based on a defined criteria + * Search for publications based on a defined criteria. * * This signature supports [React Suspense](https://react.dev/reference/react/Suspense). * diff --git a/packages/react/src/helpers/tasks.ts b/packages/react/src/helpers/tasks.ts index 08997352a..128ca6ec4 100644 --- a/packages/react/src/helpers/tasks.ts +++ b/packages/react/src/helpers/tasks.ts @@ -86,7 +86,7 @@ export type DeferredTaskState = * // data === undefined on first call * // data === TData from previous successful call * // error === undefined - * return

    Loading...

    ; + * return ; * } * * if (error) { diff --git a/packages/react/src/misc/useCurrencies.ts b/packages/react/src/misc/useCurrencies.ts index ece4b69f6..217975408 100644 --- a/packages/react/src/misc/useCurrencies.ts +++ b/packages/react/src/misc/useCurrencies.ts @@ -32,9 +32,9 @@ export type UseCurrenciesArgs = PaginatedArgs; * function CurrencySelector({ onChange }: { onChange: (currency: Erc20) => void }) { * const { data: currencies, error, loading } = useCurrencies(); * - * if (loading) return

    Loading...

    ; + * if (loading) return ; * - * if (error) return

    Error: {error.message}

    ; + * if (error) return ; * * const handleChange = (event: React.ChangeEvent) => { * const currency = currencies.find((c) => c.symbol === event.target.value); diff --git a/packages/react/src/profile/useProfileManagers.ts b/packages/react/src/profile/useProfileManagers.ts index 7935cb6ec..12ad5838f 100644 --- a/packages/react/src/profile/useProfileManagers.ts +++ b/packages/react/src/profile/useProfileManagers.ts @@ -26,11 +26,11 @@ export type UseProfileManagersArgs = PaginatedArgs<{ * }); * * if (loading) { - * return

    Loading...

    ; + * return ; * } * * if (error) { - * return

    Error: {error.message}

    ; + * return ; * } * * return ( From 900c84a9aadb1462a8bd48509c819b3706ef3ba6 Mon Sep 17 00:00:00 2001 From: Cesare Naldi Date: Tue, 21 May 2024 18:09:21 +0200 Subject: [PATCH 15/15] chore: bumps up versions --- .changeset/big-tomatoes-taste.md | 8 ------ .changeset/brown-guests-fix.md | 7 ----- .changeset/dull-walls-smoke.md | 7 ----- .changeset/giant-crabs-invent.md | 7 ----- .changeset/giant-mirrors-count.md | 7 ----- .changeset/grumpy-bottles-relate.md | 7 ----- .changeset/lovely-dodos-prove.md | 7 ----- .changeset/seven-pugs-own.md | 7 ----- .changeset/smooth-geese-nail.md | 7 ----- .changeset/soft-yaks-shop.md | 7 ----- .changeset/weak-hairs-tan.md | 10 ------- .changeset/yellow-insects-obey.md | 7 ----- packages/api-bindings/CHANGELOG.md | 9 ++++++ packages/api-bindings/package.json | 2 +- packages/blockchain-bindings/CHANGELOG.md | 7 +++++ packages/blockchain-bindings/package.json | 2 +- packages/client/CHANGELOG.md | 10 +++++++ packages/client/package.json | 2 +- packages/domain/CHANGELOG.md | 6 ++++ packages/domain/package.json | 2 +- packages/react-native/CHANGELOG.md | 35 +++++++++++++++++++++++ packages/react-native/package.json | 2 +- packages/react-web/CHANGELOG.md | 33 +++++++++++++++++++++ packages/react-web/package.json | 2 +- packages/react/CHANGELOG.md | 25 ++++++++++++++++ packages/react/package.json | 2 +- packages/wagmi/CHANGELOG.md | 18 ++++++++++++ packages/wagmi/package.json | 2 +- 28 files changed, 151 insertions(+), 96 deletions(-) delete mode 100644 .changeset/big-tomatoes-taste.md delete mode 100644 .changeset/brown-guests-fix.md delete mode 100644 .changeset/dull-walls-smoke.md delete mode 100644 .changeset/giant-crabs-invent.md delete mode 100644 .changeset/giant-mirrors-count.md delete mode 100644 .changeset/grumpy-bottles-relate.md delete mode 100644 .changeset/lovely-dodos-prove.md delete mode 100644 .changeset/seven-pugs-own.md delete mode 100644 .changeset/smooth-geese-nail.md delete mode 100644 .changeset/soft-yaks-shop.md delete mode 100644 .changeset/weak-hairs-tan.md delete mode 100644 .changeset/yellow-insects-obey.md diff --git a/.changeset/big-tomatoes-taste.md b/.changeset/big-tomatoes-taste.md deleted file mode 100644 index c2c550a3f..000000000 --- a/.changeset/big-tomatoes-taste.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@lens-protocol/api-bindings": patch -"@lens-protocol/react": patch -"@lens-protocol/react-native": patch -"@lens-protocol/react-web": patch ---- - -**fix:** custom origin header important for react native usecase diff --git a/.changeset/brown-guests-fix.md b/.changeset/brown-guests-fix.md deleted file mode 100644 index 97dfaccf5..000000000 --- a/.changeset/brown-guests-fix.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lens-protocol/react": minor -"@lens-protocol/react-native": minor -"@lens-protocol/react-web": minor ---- - -**feat:** adds React Suspense support to `usePublications` hook diff --git a/.changeset/dull-walls-smoke.md b/.changeset/dull-walls-smoke.md deleted file mode 100644 index 06f2a8d08..000000000 --- a/.changeset/dull-walls-smoke.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lens-protocol/react": minor -"@lens-protocol/react-native": minor -"@lens-protocol/react-web": minor ---- - -**feat:** adds React Suspense support to `useSearchProfiles` hook diff --git a/.changeset/giant-crabs-invent.md b/.changeset/giant-crabs-invent.md deleted file mode 100644 index e98f23b52..000000000 --- a/.changeset/giant-crabs-invent.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lens-protocol/react": minor -"@lens-protocol/react-native": minor -"@lens-protocol/react-web": minor ---- - -**feat:** add React Suspense support to `useProfileFollowers` and `useProfileFollowing` hooks diff --git a/.changeset/giant-mirrors-count.md b/.changeset/giant-mirrors-count.md deleted file mode 100644 index f5c56659f..000000000 --- a/.changeset/giant-mirrors-count.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lens-protocol/react": minor -"@lens-protocol/react-native": minor -"@lens-protocol/react-web": minor ---- - -**feat:** add React Suspense support to `useProfiles` hook diff --git a/.changeset/grumpy-bottles-relate.md b/.changeset/grumpy-bottles-relate.md deleted file mode 100644 index aa1ecf062..000000000 --- a/.changeset/grumpy-bottles-relate.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lens-protocol/react": patch -"@lens-protocol/react-native": patch -"@lens-protocol/react-web": patch ---- - -**fix:** refresh profile following after a follow or unfollow diff --git a/.changeset/lovely-dodos-prove.md b/.changeset/lovely-dodos-prove.md deleted file mode 100644 index f10895af9..000000000 --- a/.changeset/lovely-dodos-prove.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lens-protocol/react": minor -"@lens-protocol/react-native": minor -"@lens-protocol/react-web": minor ---- - -**feat:** add React Suspense support to `useSearchPublications` hook diff --git a/.changeset/seven-pugs-own.md b/.changeset/seven-pugs-own.md deleted file mode 100644 index 8342ee4be..000000000 --- a/.changeset/seven-pugs-own.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lens-protocol/react": minor -"@lens-protocol/react-native": minor -"@lens-protocol/react-web": minor ---- - -**feat:** add React Suspense support to `useExplorePublications`, `useExploreProfiles`, `useRecommendedProfiles` hooks diff --git a/.changeset/smooth-geese-nail.md b/.changeset/smooth-geese-nail.md deleted file mode 100644 index 3221b4542..000000000 --- a/.changeset/smooth-geese-nail.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lens-protocol/react": minor -"@lens-protocol/react-native": minor -"@lens-protocol/react-web": minor ---- - -**feat:** experimental React Suspense support in `usePublication` hook diff --git a/.changeset/soft-yaks-shop.md b/.changeset/soft-yaks-shop.md deleted file mode 100644 index d249abf2c..000000000 --- a/.changeset/soft-yaks-shop.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lens-protocol/react": patch -"@lens-protocol/react-native": patch -"@lens-protocol/react-web": patch ---- - -**feat:** add React Suspense support to `useFeed` hook diff --git a/.changeset/weak-hairs-tan.md b/.changeset/weak-hairs-tan.md deleted file mode 100644 index 149bc4897..000000000 --- a/.changeset/weak-hairs-tan.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@lens-protocol/client": minor -"@lens-protocol/react-native": minor -"@lens-protocol/react-web": minor -"@lens-protocol/react": minor -"@lens-protocol/api-bindings": patch -"@lens-protocol/domain": patch ---- - -**feat:** support new Shared Revenue Collect module diff --git a/.changeset/yellow-insects-obey.md b/.changeset/yellow-insects-obey.md deleted file mode 100644 index 7130665ad..000000000 --- a/.changeset/yellow-insects-obey.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lens-protocol/react": patch -"@lens-protocol/react-native": patch -"@lens-protocol/react-web": patch ---- - -**fixes:** typedoc for some hooks diff --git a/packages/api-bindings/CHANGELOG.md b/packages/api-bindings/CHANGELOG.md index c52ee7295..42503bcaa 100644 --- a/packages/api-bindings/CHANGELOG.md +++ b/packages/api-bindings/CHANGELOG.md @@ -1,5 +1,14 @@ # @lens-protocol/api-bindings +## 0.12.2 + +### Patch Changes + +- 21f652d22: **fix:** custom origin header important for react native usecase +- afb3970c8: **feat:** support new Shared Revenue Collect module +- Updated dependencies [afb3970c8] + - @lens-protocol/domain@0.12.1 + ## 0.12.1 ### Patch Changes diff --git a/packages/api-bindings/package.json b/packages/api-bindings/package.json index 587e14a2a..1a7efad02 100644 --- a/packages/api-bindings/package.json +++ b/packages/api-bindings/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/api-bindings", - "version": "0.12.1", + "version": "0.12.2", "description": "Graphql fragments, react hooks, typescript types of lens API.", "repository": { "directory": "packages/api-bindings", diff --git a/packages/blockchain-bindings/CHANGELOG.md b/packages/blockchain-bindings/CHANGELOG.md index 27207c943..57dead767 100644 --- a/packages/blockchain-bindings/CHANGELOG.md +++ b/packages/blockchain-bindings/CHANGELOG.md @@ -1,5 +1,12 @@ # @lens-protocol/blockchain-bindings +## 0.10.3 + +### Patch Changes + +- Updated dependencies [afb3970c8] + - @lens-protocol/domain@0.12.1 + ## 0.10.2 ### Patch Changes diff --git a/packages/blockchain-bindings/package.json b/packages/blockchain-bindings/package.json index c2d4c8449..b2509c319 100644 --- a/packages/blockchain-bindings/package.json +++ b/packages/blockchain-bindings/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/blockchain-bindings", - "version": "0.10.2", + "version": "0.10.3", "description": "Utilities for interacting with the blockchain.", "repository": { "directory": "packages/blockchain-bindings", diff --git a/packages/client/CHANGELOG.md b/packages/client/CHANGELOG.md index 3b634494b..07257d8b0 100644 --- a/packages/client/CHANGELOG.md +++ b/packages/client/CHANGELOG.md @@ -1,5 +1,15 @@ # @lens-protocol/client +## 2.3.0 + +### Minor Changes + +- afb3970c8: **feat:** support new Shared Revenue Collect module + +### Patch Changes + +- @lens-protocol/blockchain-bindings@0.10.3 + ## 2.2.0 ### Minor Changes diff --git a/packages/client/package.json b/packages/client/package.json index 7d6dcfb42..4ac174fdb 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/client", - "version": "2.2.0", + "version": "2.3.0", "description": "Low level Lens API client", "repository": { "directory": "packages/client", diff --git a/packages/domain/CHANGELOG.md b/packages/domain/CHANGELOG.md index 25fdf8e88..81c64fadf 100644 --- a/packages/domain/CHANGELOG.md +++ b/packages/domain/CHANGELOG.md @@ -1,5 +1,11 @@ # @lens-protocol/domain +## 0.12.1 + +### Patch Changes + +- afb3970c8: **feat:** support new Shared Revenue Collect module + ## 0.12.0 ### Minor Changes diff --git a/packages/domain/package.json b/packages/domain/package.json index dce304775..ab2523074 100644 --- a/packages/domain/package.json +++ b/packages/domain/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/domain", - "version": "0.12.0", + "version": "0.12.1", "description": "Critical Business Rules and Application-specific Business Rules", "exports": { "./mocks": { diff --git a/packages/react-native/CHANGELOG.md b/packages/react-native/CHANGELOG.md index ab98f703f..b8e8ea710 100644 --- a/packages/react-native/CHANGELOG.md +++ b/packages/react-native/CHANGELOG.md @@ -1,5 +1,40 @@ # @lens-protocol/react-native +## 2.3.0 + +### Minor Changes + +- d8b19df55: **feat:** adds React Suspense support to `usePublications` hook +- 53071caf2: **feat:** adds React Suspense support to `useSearchProfiles` hook +- 032c71c3d: **feat:** add React Suspense support to `useProfileFollowers` and `useProfileFollowing` hooks +- 3ffa19856: **feat:** add React Suspense support to `useProfiles` hook +- be49f3efb: **feat:** add React Suspense support to `useSearchPublications` hook +- 3e4911040: **feat:** add React Suspense support to `useExplorePublications`, `useExploreProfiles`, `useRecommendedProfiles` hooks +- b1cb9e78c: **feat:** experimental React Suspense support in `usePublication` hook +- afb3970c8: **feat:** support new Shared Revenue Collect module + +### Patch Changes + +- 21f652d22: **fix:** custom origin header important for react native usecase +- 1f34162dc: **fix:** refresh profile following after a follow or unfollow +- 46a648de2: **feat:** add React Suspense support to `useFeed` hook +- fcd04e356: **fixes:** typedoc for some hooks +- Updated dependencies [21f652d22] +- Updated dependencies [d8b19df55] +- Updated dependencies [53071caf2] +- Updated dependencies [032c71c3d] +- Updated dependencies [3ffa19856] +- Updated dependencies [1f34162dc] +- Updated dependencies [be49f3efb] +- Updated dependencies [3e4911040] +- Updated dependencies [b1cb9e78c] +- Updated dependencies [46a648de2] +- Updated dependencies [afb3970c8] +- Updated dependencies [fcd04e356] + - @lens-protocol/api-bindings@0.12.2 + - @lens-protocol/react@2.3.0 + - @lens-protocol/domain@0.12.1 + ## 2.2.0 ### Minor Changes diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 4a7338fa1..c46ae8b12 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/react-native", - "version": "2.2.0", + "version": "2.3.0", "description": "Lens Protocol SDK for React Native", "main": "dist/lens-protocol-react-native.cjs.js", "module": "dist/lens-protocol-react-native.esm.js", diff --git a/packages/react-web/CHANGELOG.md b/packages/react-web/CHANGELOG.md index d00f18498..556b25286 100644 --- a/packages/react-web/CHANGELOG.md +++ b/packages/react-web/CHANGELOG.md @@ -1,5 +1,38 @@ # @lens-protocol/react-web +## 2.3.0 + +### Minor Changes + +- d8b19df55: **feat:** adds React Suspense support to `usePublications` hook +- 53071caf2: **feat:** adds React Suspense support to `useSearchProfiles` hook +- 032c71c3d: **feat:** add React Suspense support to `useProfileFollowers` and `useProfileFollowing` hooks +- 3ffa19856: **feat:** add React Suspense support to `useProfiles` hook +- be49f3efb: **feat:** add React Suspense support to `useSearchPublications` hook +- 3e4911040: **feat:** add React Suspense support to `useExplorePublications`, `useExploreProfiles`, `useRecommendedProfiles` hooks +- b1cb9e78c: **feat:** experimental React Suspense support in `usePublication` hook +- afb3970c8: **feat:** support new Shared Revenue Collect module + +### Patch Changes + +- 1f34162dc: **fix:** refresh profile following after a follow or unfollow +- 46a648de2: **feat:** add React Suspense support to `useFeed` hook +- fcd04e356: **fixes:** typedoc for some hooks +- Updated dependencies [21f652d22] +- Updated dependencies [d8b19df55] +- Updated dependencies [53071caf2] +- Updated dependencies [032c71c3d] +- Updated dependencies [3ffa19856] +- Updated dependencies [1f34162dc] +- Updated dependencies [be49f3efb] +- Updated dependencies [3e4911040] +- Updated dependencies [b1cb9e78c] +- Updated dependencies [46a648de2] +- Updated dependencies [afb3970c8] +- Updated dependencies [fcd04e356] + - @lens-protocol/react@2.3.0 + - @lens-protocol/domain@0.12.1 + ## 2.2.0 ### Minor Changes diff --git a/packages/react-web/package.json b/packages/react-web/package.json index 667638b6f..1382a57fa 100644 --- a/packages/react-web/package.json +++ b/packages/react-web/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/react-web", - "version": "2.2.0", + "version": "2.3.0", "description": "Lens Protocol SDK for React web applications", "main": "dist/lens-protocol-react-web.cjs.js", "module": "dist/lens-protocol-react-web.esm.js", diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index c6fca5a75..def7ebbac 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,30 @@ # @lens-protocol/react +## 2.3.0 + +### Minor Changes + +- d8b19df55: **feat:** adds React Suspense support to `usePublications` hook +- 53071caf2: **feat:** adds React Suspense support to `useSearchProfiles` hook +- 032c71c3d: **feat:** add React Suspense support to `useProfileFollowers` and `useProfileFollowing` hooks +- 3ffa19856: **feat:** add React Suspense support to `useProfiles` hook +- be49f3efb: **feat:** add React Suspense support to `useSearchPublications` hook +- 3e4911040: **feat:** add React Suspense support to `useExplorePublications`, `useExploreProfiles`, `useRecommendedProfiles` hooks +- b1cb9e78c: **feat:** experimental React Suspense support in `usePublication` hook +- afb3970c8: **feat:** support new Shared Revenue Collect module + +### Patch Changes + +- 21f652d22: **fix:** custom origin header important for react native usecase +- 1f34162dc: **fix:** refresh profile following after a follow or unfollow +- 46a648de2: **feat:** add React Suspense support to `useFeed` hook +- fcd04e356: **fixes:** typedoc for some hooks +- Updated dependencies [21f652d22] +- Updated dependencies [afb3970c8] + - @lens-protocol/api-bindings@0.12.2 + - @lens-protocol/domain@0.12.1 + - @lens-protocol/blockchain-bindings@0.10.3 + ## 2.2.0 ### Minor Changes diff --git a/packages/react/package.json b/packages/react/package.json index c1286dbe8..102a8ea93 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/react", - "version": "2.2.0", + "version": "2.3.0", "description": "Interacting with the Lens Protocol API using React.", "main": "dist/lens-protocol-react.cjs.js", "module": "dist/lens-protocol-react.esm.js", diff --git a/packages/wagmi/CHANGELOG.md b/packages/wagmi/CHANGELOG.md index 52ea77a73..fca5e13b4 100644 --- a/packages/wagmi/CHANGELOG.md +++ b/packages/wagmi/CHANGELOG.md @@ -1,5 +1,23 @@ # @lens-protocol/wagmi +## 4.1.3 + +### Patch Changes + +- Updated dependencies [21f652d22] +- Updated dependencies [d8b19df55] +- Updated dependencies [53071caf2] +- Updated dependencies [032c71c3d] +- Updated dependencies [3ffa19856] +- Updated dependencies [1f34162dc] +- Updated dependencies [be49f3efb] +- Updated dependencies [3e4911040] +- Updated dependencies [b1cb9e78c] +- Updated dependencies [46a648de2] +- Updated dependencies [afb3970c8] +- Updated dependencies [fcd04e356] + - @lens-protocol/react-web@2.3.0 + ## 4.1.2 ### Patch Changes diff --git a/packages/wagmi/package.json b/packages/wagmi/package.json index 719aaa58f..8a8b432a8 100644 --- a/packages/wagmi/package.json +++ b/packages/wagmi/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/wagmi", - "version": "4.1.2", + "version": "4.1.3", "description": "wagmi bindings for @lens-protocol/react", "repository": { "directory": "packages/wagmi",