@powerhousedao/reactor-browser 6.0.2-staging.8 → 6.1.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{client-DhQo2Vi9.d.ts → client-Bmw8cTjQ.d.ts} +22 -1
- package/dist/{client-DhQo2Vi9.d.ts.map → client-Bmw8cTjQ.d.ts.map} +1 -1
- package/dist/{client-DfoxBz8A.js → client-D7hUM13i.js} +28 -1
- package/dist/client-D7hUM13i.js.map +1 -0
- package/dist/index.d.ts +48 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -12
- package/dist/index.js.map +1 -1
- package/dist/{renown-CV_45Xc1.js → renown-s0H1puU4.js} +2 -2
- package/dist/renown-s0H1puU4.js.map +1 -0
- package/dist/src/graphql/client.d.ts +1 -1
- package/dist/src/graphql/client.js +1 -1
- package/dist/src/renown/index.js +1 -1
- package/package.json +17 -9
- package/dist/client-DfoxBz8A.js.map +0 -1
- package/dist/renown-CV_45Xc1.js.map +0 -1
|
@@ -136,7 +136,7 @@ function openRenown(documentId) {
|
|
|
136
136
|
const renown = window.ph?.renown;
|
|
137
137
|
let renownUrl = renown?.baseUrl;
|
|
138
138
|
if (!renownUrl) {
|
|
139
|
-
logger.warn("Renown instance not found, falling back to: ", RENOWN_URL);
|
|
139
|
+
logger.warn("Renown instance not found, falling back to: @url", RENOWN_URL);
|
|
140
140
|
renownUrl = RENOWN_URL;
|
|
141
141
|
}
|
|
142
142
|
if (documentId) {
|
|
@@ -1011,4 +1011,4 @@ function Renown({ onError, ...initOptions }) {
|
|
|
1011
1011
|
//#endregion
|
|
1012
1012
|
export { useLoginStatus as A, RENOWN_CHAIN_ID as C, addRenownEventHandler as D, VERIFIABLE_CREDENTIAL_EIP712_TYPE as E, setLoading as F, useLoading as I, useUser as M, addLoadingEventHandler as N, setRenown as O, loading as P, ISSUER_TYPE as S, RENOWN_URL as T, openRenown as _, RenownAuthButton as a, CREDENTIAL_TYPES as b, ChevronDownIcon as c, RenownLogo as d, SpinnerIcon as f, logout as g, login as h, initRenownCrypto as i, useRenown as j, useDid as k, CopyIcon as l, useRenownAuth as m, useRenownInit as n, RenownUserButton as o, UserIcon as p, initConnectCrypto as r, RenownLoginButton as s, Renown as t, DisconnectIcon as u, CREDENTIAL_SCHEMA_EIP712_TYPE as v, RENOWN_NETWORK_ID as w, DOMAIN_TYPE as x, CREDENTIAL_SUBJECT_TYPE as y };
|
|
1013
1013
|
|
|
1014
|
-
//# sourceMappingURL=renown-
|
|
1014
|
+
//# sourceMappingURL=renown-s0H1puU4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renown-s0H1puU4.js","names":["truncateAddress","logoutUtil","styles","defaultLogout"],"sources":["../src/hooks/loading.ts","../src/hooks/renown.ts","../src/renown/constants.ts","../src/renown/utils.ts","../src/renown/use-renown-auth.ts","../src/renown/components/icons.tsx","../src/renown/components/slot.tsx","../src/renown/components/RenownLoginButton.tsx","../src/renown/components/RenownUserButton.tsx","../src/renown/components/RenownAuthButton.tsx","../src/renown/crypto.ts","../src/renown/use-renown-init.ts","../src/renown/renown-init.tsx"],"sourcesContent":["import type { LOADING } from \"../types/global.js\";\nimport { makePHEventFunctions } from \"./make-ph-event-functions.js\";\n\nexport const {\n useValue: useLoading,\n setValue: setLoading,\n addEventHandler: addLoadingEventHandler,\n} = makePHEventFunctions(\"loading\");\n\nexport const loading: LOADING = null;\n","import type { IRenown, LoginStatus, User } from \"@renown/sdk\";\nimport { useEffect, useState, useSyncExternalStore } from \"react\";\nimport type { LOADING } from \"../types/global.js\";\nimport { loading } from \"./loading.js\";\nimport { makePHEventFunctions } from \"./make-ph-event-functions.js\";\n\nconst renownEventFunctions = makePHEventFunctions(\"renown\");\n\n/** Adds an event handler for the renown instance */\nexport const addRenownEventHandler: () => void =\n renownEventFunctions.addEventHandler;\n\n/** Returns the renown instance */\nexport const useRenown: () => IRenown | LOADING | undefined =\n renownEventFunctions.useValue;\n\n/** Sets the renown instance */\nexport const setRenown: (value: IRenown | LOADING | undefined) => void =\n renownEventFunctions.setValue;\n\n/** Returns the DID from the renown instance */\nexport function useDid() {\n const renown = useRenown();\n return renown?.did;\n}\n\n/** Returns the current user from the renown instance, subscribing to user events */\nexport function useUser(): User | undefined {\n const renown = useRenown();\n const [user, setUser] = useState<User | undefined>(renown?.user);\n\n useEffect(() => {\n setUser(renown?.user);\n if (!renown) return;\n return renown.on(\"user\", setUser);\n }, [renown]);\n\n return user;\n}\n\n/** Returns the login status, subscribing to renown status events */\nexport function useLoginStatus(): LoginStatus | \"loading\" | undefined {\n const renown = useRenown();\n return useSyncExternalStore(\n (cb) => {\n if (!renown) {\n return () => {};\n }\n return renown.on(\"status\", cb);\n },\n () => (renown === loading ? \"loading\" : renown?.status),\n () => undefined,\n );\n}\n","export const RENOWN_URL = \"https://www.renown.id\";\nexport const RENOWN_NETWORK_ID = \"eip155\";\nexport const RENOWN_CHAIN_ID = \"1\";\n\nexport const DOMAIN_TYPE = [\n { name: \"name\", type: \"string\" },\n { name: \"version\", type: \"string\" },\n { name: \"chainId\", type: \"uint256\" },\n { name: \"verifyingContract\", type: \"address\" },\n] as const;\n\nexport const VERIFIABLE_CREDENTIAL_EIP712_TYPE = [\n { name: \"@context\", type: \"string[]\" },\n { name: \"type\", type: \"string[]\" },\n { name: \"id\", type: \"string\" },\n { name: \"issuer\", type: \"Issuer\" },\n { name: \"credentialSubject\", type: \"CredentialSubject\" },\n { name: \"credentialSchema\", type: \"CredentialSchema\" },\n { name: \"issuanceDate\", type: \"string\" },\n { name: \"expirationDate\", type: \"string\" },\n] as const;\n\nexport const CREDENTIAL_SCHEMA_EIP712_TYPE = [\n { name: \"id\", type: \"string\" },\n { name: \"type\", type: \"string\" },\n] as const;\n\nexport const CREDENTIAL_SUBJECT_TYPE = [\n { name: \"app\", type: \"string\" },\n { name: \"id\", type: \"string\" },\n { name: \"name\", type: \"string\" },\n] as const;\n\nexport const ISSUER_TYPE = [\n { name: \"id\", type: \"string\" },\n { name: \"ethereumAddress\", type: \"string\" },\n] as const;\n\nexport const CREDENTIAL_TYPES = {\n EIP712Domain: DOMAIN_TYPE,\n VerifiableCredential: VERIFIABLE_CREDENTIAL_EIP712_TYPE,\n CredentialSchema: CREDENTIAL_SCHEMA_EIP712_TYPE,\n CredentialSubject: CREDENTIAL_SUBJECT_TYPE,\n Issuer: ISSUER_TYPE,\n} as const;\n","import type { IRenown, User } from \"@renown/sdk\";\nimport { logger } from \"document-model\";\nimport { RENOWN_CHAIN_ID, RENOWN_NETWORK_ID, RENOWN_URL } from \"./constants.js\";\n\nexport function openRenown(documentId?: string) {\n const renown = window.ph?.renown;\n let renownUrl = renown?.baseUrl;\n if (!renownUrl) {\n logger.warn(\"Renown instance not found, falling back to: @url\", RENOWN_URL);\n renownUrl = RENOWN_URL;\n }\n\n if (documentId) {\n window.open(`${renownUrl}/profile/${documentId}`, \"_blank\")?.focus();\n return;\n }\n\n const url = new URL(renownUrl);\n url.searchParams.set(\"app\", renown?.did ?? \"\");\n url.searchParams.set(\"connect\", renown?.did ?? \"\");\n url.searchParams.set(\"network\", RENOWN_NETWORK_ID);\n url.searchParams.set(\"chain\", RENOWN_CHAIN_ID);\n\n const returnUrl = new URL(window.location.pathname, window.location.origin);\n url.searchParams.set(\"returnUrl\", returnUrl.toJSON());\n window.open(url, \"_self\")?.focus();\n}\n\n/**\n * Reads the `?user=` DID from the URL if present.\n * Returns the DID and cleans up the URL parameter.\n */\nfunction consumeDidFromUrl(): string | undefined {\n if (typeof window === \"undefined\") return;\n\n const urlParams = new URLSearchParams(window.location.search);\n const userParam = urlParams.get(\"user\");\n if (!userParam) return;\n\n const userDid = decodeURIComponent(userParam);\n\n // Clean up the URL parameter\n const cleanUrl = new URL(window.location.href);\n cleanUrl.searchParams.delete(\"user\");\n window.history.replaceState({}, \"\", cleanUrl.toString());\n\n return userDid;\n}\n\n/**\n * Log in the user. Resolves the user DID from (in order):\n * 1. Explicit `userDid` argument\n * 2. `?user=` URL parameter (from Renown portal redirect)\n * 3. Previously stored session in the Renown instance\n */\nexport async function login(\n userDid: string | undefined,\n renown: IRenown | undefined,\n): Promise<User | undefined> {\n if (!renown) {\n return;\n }\n\n const did = userDid ?? consumeDidFromUrl();\n\n try {\n const user = renown.user;\n\n if (user?.did && (user.did === did || !did)) {\n return user;\n }\n\n if (!did) {\n return;\n }\n\n return await renown.login(did);\n } catch (error) {\n logger.error(\n error instanceof Error ? error.message : JSON.stringify(error),\n );\n }\n}\n\nexport async function logout() {\n const renown = window.ph?.renown;\n await renown?.logout();\n\n // Clear the user parameter from URL to prevent auto-login on refresh\n const url = new URL(window.location.href);\n if (url.searchParams.has(\"user\")) {\n url.searchParams.delete(\"user\");\n window.history.replaceState(null, \"\", url.toString());\n }\n}\n","import type { LoginStatus, User } from \"@renown/sdk\";\nimport { useCallback } from \"react\";\nimport { useLoginStatus, useUser } from \"../hooks/renown.js\";\nimport { logout as logoutUtil, openRenown } from \"./utils.js\";\n\nexport type RenownAuthStatus = LoginStatus | \"loading\";\n\nexport interface RenownAuth {\n status: RenownAuthStatus | undefined;\n user: User | undefined;\n address: string | undefined;\n ensName: string | undefined;\n avatarUrl: string | undefined;\n profileId: string | undefined;\n displayName: string | undefined;\n displayAddress: string | undefined;\n login: () => void;\n logout: () => Promise<void>;\n openProfile: () => void;\n}\n\nfunction truncateAddress(address: string): string {\n if (address.length <= 13) return address;\n return `${address.slice(0, 7)}...${address.slice(-5)}`;\n}\n\nfunction toRenownAuthStatus(\n loginStatus: LoginStatus | \"loading\" | undefined,\n user: User | undefined,\n): RenownAuthStatus | undefined {\n if (loginStatus === \"authorized\") {\n return user ? \"authorized\" : \"checking\";\n }\n return loginStatus;\n}\n\nexport function useRenownAuth(): RenownAuth {\n const user = useUser();\n const loginStatus = useLoginStatus();\n\n // syncs user with login status\n const status = toRenownAuthStatus(loginStatus, user);\n\n const address = user?.address;\n const ensName = user?.ens?.name;\n const avatarUrl = user?.profile?.userImage ?? user?.ens?.avatarUrl;\n const profileId = user?.profile?.documentId;\n\n const displayName = ensName ?? user?.profile?.username ?? undefined;\n const displayAddress = address ? truncateAddress(address) : undefined;\n\n const login = useCallback(() => {\n openRenown();\n }, []);\n\n const logout = useCallback(async () => {\n await logoutUtil();\n }, []);\n\n const openProfile = useCallback(() => {\n if (profileId) {\n openRenown(profileId);\n }\n }, [profileId]);\n\n return {\n status,\n user,\n address,\n ensName,\n avatarUrl,\n profileId,\n displayName,\n displayAddress,\n login,\n logout,\n openProfile,\n };\n}\n","import type { CSSProperties } from \"react\";\n\ninterface IconProps {\n size?: number;\n width?: number;\n height?: number;\n color?: string;\n style?: CSSProperties;\n className?: string;\n}\n\ninterface RenownLogoProps extends IconProps {\n hovered?: boolean;\n}\n\nexport function RenownLogo({\n width = 71,\n height = 19,\n hovered = false,\n color = \"currentColor\",\n className,\n}: RenownLogoProps) {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 71 19\"\n fill={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path d=\"M53.6211 18.4887V9.0342H56.435V10.8096H56.4923C56.7377 10.181 57.1085 9.70244 57.6047 9.37398C58.101 9.03986 58.6981 8.8728 59.3962 8.8728C60.4105 8.8728 61.2039 9.1871 61.7765 9.8157C62.3546 10.4443 62.6436 11.3164 62.6436 12.432V18.4887H59.7397V13.0776C59.7397 12.5283 59.6007 12.1007 59.3225 11.7949C59.0499 11.4835 58.6654 11.3277 58.1692 11.3277C57.6784 11.3277 57.2803 11.4976 56.9749 11.8374C56.6695 12.1772 56.5168 12.6161 56.5168 13.1541V18.4887H53.6211Z\" />\n <path d=\"M53.097 9.03394L50.7412 18.4884H47.6164L46.1522 12.075H46.0949L44.6389 18.4884H41.5632L39.1992 9.03394H42.1195L43.3056 15.7532H43.3628L44.7861 9.03394H47.551L48.9906 15.7532H49.0479L50.234 9.03394H53.097Z\" />\n <path d=\"M37.8661 17.3926C37.0427 18.2591 35.9084 18.6923 34.4632 18.6923C33.0181 18.6923 31.8838 18.2591 31.0604 17.3926C30.2369 16.5205 29.8252 15.3086 29.8252 13.7569C29.8252 12.2336 30.2424 11.033 31.0767 10.1552C31.9111 9.2718 33.0399 8.83008 34.4632 8.83008C35.892 8.83008 37.0208 9.26896 37.8497 10.1467C38.6841 11.0188 39.1013 12.2222 39.1013 13.7569C39.1013 15.3143 38.6896 16.5262 37.8661 17.3926ZM33.2117 15.7702C33.5116 16.2402 33.9288 16.4752 34.4632 16.4752C34.9977 16.4752 35.4148 16.2402 35.7148 15.7702C36.0147 15.2945 36.1647 14.6234 36.1647 13.7569C36.1647 12.9131 36.012 12.2506 35.7066 11.7692C35.4012 11.2878 34.9868 11.0472 34.4632 11.0472C33.9343 11.0472 33.5171 11.2878 33.2117 11.7692C32.9118 12.2449 32.7618 12.9075 32.7618 13.7569C32.7618 14.6234 32.9118 15.2945 33.2117 15.7702Z\" />\n <path d=\"M20.0088 18.4887V9.0342H22.8227V10.8096H22.88C23.1254 10.181 23.4962 9.70244 23.9924 9.37398C24.4887 9.03986 25.0858 8.8728 25.7838 8.8728C26.7982 8.8728 27.5916 9.1871 28.1642 9.8157C28.7423 10.4443 29.0313 11.3164 29.0313 12.432V18.4887H26.1274V13.0776C26.1274 12.5283 25.9883 12.1007 25.7102 11.7949C25.4376 11.4835 25.0531 11.3277 24.5569 11.3277C24.0661 11.3277 23.668 11.4976 23.3626 11.8374C23.0572 12.1772 22.9045 12.6161 22.9045 13.1541V18.4887H20.0088Z\" />\n <path d=\"M14.7486 10.9707C14.2851 10.9707 13.8952 11.1321 13.5789 11.4549C13.2626 11.7777 13.0854 12.1911 13.0472 12.6951H16.4337C16.4064 12.1741 16.2374 11.7579 15.9265 11.4464C15.6212 11.1293 15.2285 10.9707 14.7486 10.9707ZM16.4991 15.5153H19.1167C18.9749 16.4837 18.5141 17.2567 17.7343 17.8343C16.9599 18.4063 15.9838 18.6923 14.8059 18.6923C13.3662 18.6923 12.2374 18.2591 11.4194 17.3926C10.6014 16.5262 10.1924 15.3313 10.1924 13.8079C10.1924 12.2845 10.5987 11.0755 11.4112 10.1807C12.2237 9.28029 13.3226 8.83008 14.7077 8.83008C16.0656 8.83008 17.1481 9.26047 17.9552 10.1213C18.7677 10.9764 19.174 12.1231 19.174 13.5616V14.4195H13.0145V14.6064C13.0145 15.184 13.1835 15.6541 13.5216 16.0165C13.8597 16.3733 14.3015 16.5517 14.8468 16.5517C15.2503 16.5517 15.5993 16.461 15.8938 16.2798C16.1883 16.0929 16.3901 15.8381 16.4991 15.5153Z\" />\n <path d=\"M3.00205 8.58396V12.0667H4.7771C5.32789 12.0667 5.7587 11.911 6.06954 11.5995C6.38038 11.2881 6.5358 10.8662 6.5358 10.3338C6.5358 9.80718 6.37492 9.38528 6.05318 9.06815C5.73143 8.74535 5.30335 8.58396 4.76892 8.58396H3.00205ZM3.00205 14.1989V18.4886H0V6.23096H5.07158C6.53307 6.23096 7.65373 6.5849 8.43355 7.29278C9.21337 8.00066 9.60328 8.99453 9.60328 10.2744C9.60328 11.0446 9.42605 11.7439 9.07159 12.3725C8.71712 12.9955 8.2236 13.4514 7.59101 13.7402L9.94684 18.4886H6.5767L4.55624 14.1989H3.00205Z\" />\n <path\n d=\"M65.7255 0.211478C65.0841 2.46724 63.3737 4.2455 61.2041 4.90969C60.932 4.99366 60.932 5.39096 61.2041 5.47492C63.3725 6.13912 65.0841 7.91738 65.7255 10.1731C65.8056 10.4551 66.1932 10.4551 66.2745 10.1731C66.9159 7.91738 68.6263 6.13912 70.7959 5.47492C71.068 5.39096 71.068 4.99366 70.7959 4.90969C68.6276 4.2455 66.9159 2.46724 66.2745 0.211478C66.1944 -0.0704925 65.8068 -0.0704925 65.7255 0.211478Z\"\n fill={hovered ? \"#21FFB4\" : color}\n />\n </svg>\n );\n}\n\nexport function CopyIcon({ size = 14, color = \"#9EA0A1\" }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n x=\"5\"\n y=\"5\"\n width=\"9\"\n height=\"9\"\n rx=\"1\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n <path\n d=\"M11 5V3C11 2.44772 10.5523 2 10 2H3C2.44772 2 2 2.44772 2 3V10C2 10.5523 2.44772 11 3 11H5\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n </svg>\n );\n}\n\nexport function DisconnectIcon({ size = 14, color = \"#EA4335\" }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V3.33333C2 2.97971 2.14048 2.64057 2.39052 2.39052C2.64057 2.14048 2.97971 2 3.33333 2H6\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M10.6667 11.3333L14 8L10.6667 4.66667\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M14 8H6\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport function SpinnerIcon({ size = 14, color = \"currentColor\" }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ animation: \"spin 1s linear infinite\" }}\n >\n <style>{`@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }`}</style>\n <path d=\"M8 1V4\" stroke={color} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path\n d=\"M8 12V15\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n opacity=\"0.3\"\n />\n <path\n d=\"M3.05 3.05L5.17 5.17\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n opacity=\"0.9\"\n />\n <path\n d=\"M10.83 10.83L12.95 12.95\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n opacity=\"0.4\"\n />\n <path\n d=\"M1 8H4\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n opacity=\"0.8\"\n />\n <path\n d=\"M12 8H15\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n opacity=\"0.5\"\n />\n <path\n d=\"M3.05 12.95L5.17 10.83\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n opacity=\"0.7\"\n />\n <path\n d=\"M10.83 5.17L12.95 3.05\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n opacity=\"0.6\"\n />\n </svg>\n );\n}\n\nexport function ChevronDownIcon({\n size = 14,\n color = \"currentColor\",\n style,\n}: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={style}\n >\n <path\n d=\"M4 6L8 10L12 6\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport function UserIcon({ size = 24, color = \"#6366f1\" }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"12\" cy=\"8\" r=\"4\" stroke={color} strokeWidth=\"2\" />\n <path\n d=\"M4 20C4 16.6863 7.58172 14 12 14C16.4183 14 20 16.6863 20 20\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n","import {\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n Children,\n cloneElement,\n forwardRef,\n isValidElement,\n} from \"react\";\n\ntype AnyProps = Record<string, unknown>;\n\nfunction mergeProps(parentProps: AnyProps, childProps: AnyProps): AnyProps {\n const merged: AnyProps = { ...parentProps };\n\n for (const key of Object.keys(childProps)) {\n const parentValue = parentProps[key];\n const childValue = childProps[key];\n\n if (key === \"style\") {\n merged[key] = { ...(parentValue as object), ...(childValue as object) };\n } else if (key === \"className\") {\n merged[key] = [parentValue, childValue].filter(Boolean).join(\" \");\n } else if (\n typeof parentValue === \"function\" &&\n typeof childValue === \"function\"\n ) {\n merged[key] = (...args: unknown[]) => {\n (childValue as (...a: unknown[]) => void)(...args);\n (parentValue as (...a: unknown[]) => void)(...args);\n };\n } else if (childValue !== undefined) {\n merged[key] = childValue;\n }\n }\n\n return merged;\n}\n\ninterface SlotProps extends HTMLAttributes<HTMLElement> {\n children?: ReactNode;\n ref?: Ref<HTMLElement>;\n}\n\nexport const Slot = forwardRef<HTMLElement, SlotProps>(\n ({ children, ...props }, ref) => {\n const child = Children.only(children);\n\n if (!isValidElement(child)) {\n return null;\n }\n\n const childElement = child as ReactElement<AnyProps>;\n const mergedProps = mergeProps(props, childElement.props);\n\n if (ref) {\n mergedProps.ref = ref;\n }\n\n return cloneElement(childElement, mergedProps);\n },\n);\n\nSlot.displayName = \"Slot\";\n","import type { CSSProperties, ReactNode } from \"react\";\nimport { useCallback, useState } from \"react\";\nimport { openRenown } from \"../utils.js\";\nimport { SpinnerIcon } from \"./icons.js\";\nimport { Slot } from \"./slot.js\";\n\nexport interface RenownLoginButtonProps {\n onLogin?: () => void;\n darkMode?: boolean;\n style?: CSSProperties;\n className?: string;\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst lightStyles = {\n trigger: {\n backgroundColor: \"#ffffff\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"#d1d5db\",\n color: \"#111827\",\n },\n triggerHover: {\n backgroundColor: \"#ecf3f8\",\n borderColor: \"#9ca3af\",\n },\n} as const;\n\nconst darkStyles = {\n trigger: {\n backgroundColor: \"#1f2937\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"#4b5563\",\n color: \"#ecf3f8\",\n },\n triggerHover: {\n backgroundColor: \"#374151\",\n borderColor: \"#6b7280\",\n },\n} as const;\n\nconst styles: Record<string, CSSProperties> = {\n wrapper: {\n position: \"relative\",\n display: \"inline-block\",\n },\n trigger: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"8px\",\n padding: \"8px 32px\",\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"14px\",\n fontWeight: 500,\n fontFamily: \"inherit\",\n lineHeight: \"20px\",\n transition: \"background-color 150ms, border-color 150ms\",\n },\n};\n\nexport function RenownLoginButton({\n onLogin: onLoginProp,\n darkMode = false,\n style,\n className,\n asChild = false,\n children,\n}: RenownLoginButtonProps) {\n const onLogin = onLoginProp ?? (() => openRenown());\n const [isLoading, setIsLoading] = useState(false);\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => setIsHovered(true), []);\n const handleMouseLeave = useCallback(() => setIsHovered(false), []);\n\n const handleClick = () => {\n if (!isLoading) {\n setIsLoading(true);\n onLogin();\n }\n };\n\n const themeStyles = darkMode ? darkStyles : lightStyles;\n\n const triggerStyle: CSSProperties = {\n ...styles.trigger,\n ...themeStyles.trigger,\n ...(isHovered && !isLoading ? themeStyles.triggerHover : {}),\n cursor: isLoading ? \"wait\" : \"pointer\",\n ...style,\n };\n\n const triggerElement = asChild ? (\n <Slot\n onClick={handleClick}\n data-renown-state=\"login\"\n {...(isLoading ? { \"data-loading\": \"\" } : {})}\n >\n {children}\n </Slot>\n ) : (\n <button\n type=\"button\"\n style={triggerStyle}\n aria-label=\"Log in with Renown\"\n onClick={handleClick}\n data-renown-state=\"login\"\n {...(isLoading ? { \"data-loading\": \"\" } : {})}\n >\n {isLoading ? <SpinnerIcon size={16} /> : <span>Log in</span>}\n </button>\n );\n\n return (\n <div\n style={styles.wrapper}\n className={className}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {triggerElement}\n </div>\n );\n}\n","import type { CSSProperties, ReactNode } from \"react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useUser } from \"../../hooks/renown.js\";\nimport { logout as defaultLogout, openRenown } from \"../utils.js\";\nimport {\n ChevronDownIcon,\n CopyIcon,\n DisconnectIcon,\n UserIcon,\n} from \"./icons.js\";\nimport { Slot } from \"./slot.js\";\n\nconst POPOVER_GAP = 4;\nconst POPOVER_HEIGHT = 150;\n\nexport interface RenownUserButtonMenuItem {\n label: string;\n icon?: ReactNode;\n onClick: () => void;\n style?: CSSProperties;\n}\n\nexport interface RenownUserButtonProps {\n address?: string;\n username?: string;\n avatarUrl?: string;\n userId?: string;\n onDisconnect?: () => void;\n style?: CSSProperties;\n className?: string;\n asChild?: boolean;\n children?: ReactNode;\n menuItems?: RenownUserButtonMenuItem[];\n}\n\nconst styles: Record<string, CSSProperties> = {\n wrapper: {\n position: \"relative\",\n display: \"inline-block\",\n },\n trigger: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n padding: \"6px 12px\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"#e5e7eb\",\n backgroundColor: \"#ffffff\",\n cursor: \"pointer\",\n borderRadius: \"8px\",\n fontSize: \"12px\",\n fontWeight: 500,\n fontFamily: \"inherit\",\n color: \"#111827\",\n transition: \"background-color 150ms, border-color 150ms\",\n },\n triggerHover: {\n backgroundColor: \"#f9fafb\",\n borderColor: \"#9ca3af\",\n },\n avatar: {\n width: \"28px\",\n height: \"28px\",\n borderRadius: \"50%\",\n objectFit: \"cover\",\n flexShrink: 0,\n },\n avatarPlaceholder: {\n width: \"28px\",\n height: \"28px\",\n borderRadius: \"50%\",\n background: \"linear-gradient(135deg, #8b5cf6, #3b82f6)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n },\n avatarInitial: {\n fontSize: \"12px\",\n fontWeight: 700,\n color: \"#ffffff\",\n lineHeight: 1,\n },\n displayName: {\n maxWidth: \"120px\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n chevron: {\n flexShrink: 0,\n transition: \"transform 150ms\",\n color: \"#6b7280\",\n },\n chevronOpen: {\n transform: \"rotate(180deg)\",\n },\n popoverBase: {\n position: \"absolute\",\n right: 0,\n backgroundColor: \"#ffffff\",\n borderRadius: \"8px\",\n boxShadow: \"0 4px 12px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.08)\",\n width: \"100%\",\n zIndex: 1000,\n color: \"#111827\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"#e5e7eb\",\n overflow: \"hidden\",\n },\n header: {\n padding: \"12px 16px\",\n borderBottom: \"1px solid #e5e7eb\",\n },\n headerUsername: {\n fontSize: \"14px\",\n fontWeight: 600,\n color: \"#111827\",\n margin: 0,\n },\n addressRow: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"4px\",\n marginTop: \"4px\",\n },\n addressButton: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"4px\",\n padding: 0,\n border: \"none\",\n backgroundColor: \"transparent\",\n cursor: \"pointer\",\n fontSize: \"12px\",\n color: \"#6b7280\",\n fontFamily: \"inherit\",\n position: \"relative\",\n width: \"100%\",\n },\n copiedText: {\n fontSize: \"12px\",\n color: \"#059669\",\n position: \"absolute\",\n left: 0,\n transition: \"opacity 150ms\",\n fontWeight: 500,\n },\n addressText: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"4px\",\n transition: \"opacity 150ms\",\n },\n menuSection: {\n padding: \"4px 0\",\n },\n menuItem: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n width: \"100%\",\n padding: \"8px 16px\",\n border: \"none\",\n backgroundColor: \"transparent\",\n cursor: \"pointer\",\n fontSize: \"14px\",\n color: \"#374151\",\n textDecoration: \"none\",\n fontFamily: \"inherit\",\n transition: \"background-color 150ms\",\n },\n menuItemHover: {\n backgroundColor: \"#f3f4f6\",\n },\n disconnectItem: {\n color: \"#dc2626\",\n },\n separator: {\n height: \"1px\",\n backgroundColor: \"#e5e7eb\",\n margin: 0,\n border: \"none\",\n },\n};\n\nfunction truncateAddress(address: string): string {\n if (address.length <= 13) return address;\n return `${address.slice(0, 7)}...${address.slice(-5)}`;\n}\n\nexport function RenownUserButton({\n address: addressProp,\n username: usernameProp,\n avatarUrl: avatarUrlProp,\n userId: userIdProp,\n onDisconnect: onDisconnectProp,\n style,\n className,\n asChild = false,\n children,\n menuItems,\n}: RenownUserButtonProps) {\n const user = useUser();\n\n const address = addressProp ?? user?.address ?? \"\";\n const username = usernameProp ?? user?.profile?.username ?? user?.ens?.name;\n const avatarUrl =\n avatarUrlProp ?? user?.profile?.userImage ?? user?.ens?.avatarUrl;\n const userId = userIdProp ?? user?.profile?.documentId;\n const onDisconnect = onDisconnectProp ?? (() => void defaultLogout());\n const displayName =\n username ?? (address ? truncateAddress(address) : \"Account\");\n const profileId = userId ?? address;\n\n const [isOpen, setIsOpen] = useState(false);\n const [isHovered, setIsHovered] = useState(false);\n const [isCopied, setIsCopied] = useState(false);\n const [showAbove, setShowAbove] = useState(true);\n const [hoveredItem, setHoveredItem] = useState<string | null>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const closeTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const calculatePosition = useCallback(() => {\n if (!wrapperRef.current) return;\n const rect = wrapperRef.current.getBoundingClientRect();\n const spaceAbove = rect.top;\n setShowAbove(spaceAbove >= POPOVER_HEIGHT + POPOVER_GAP);\n }, []);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n if (closeTimeoutRef.current) {\n clearTimeout(closeTimeoutRef.current);\n closeTimeoutRef.current = null;\n }\n calculatePosition();\n setIsOpen(true);\n }, [calculatePosition]);\n\n const handleMouseLeave = useCallback(() => {\n closeTimeoutRef.current = setTimeout(() => {\n setIsOpen(false);\n setIsHovered(false);\n setHoveredItem(null);\n }, 150);\n }, []);\n\n useEffect(() => {\n return () => {\n if (closeTimeoutRef.current) {\n clearTimeout(closeTimeoutRef.current);\n }\n };\n }, []);\n\n const copyToClipboard = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(address);\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n } catch (err) {\n console.error(\"Failed to copy address:\", err);\n }\n }, [address]);\n\n const triggerElement = asChild ? (\n <Slot data-renown-state=\"authenticated\">{children}</Slot>\n ) : (\n <button\n type=\"button\"\n style={{\n ...styles.trigger,\n ...(isHovered ? styles.triggerHover : {}),\n ...style,\n }}\n aria-label=\"Open account menu\"\n data-renown-state=\"authenticated\"\n >\n {avatarUrl ? (\n <img src={avatarUrl} alt=\"Avatar\" style={styles.avatar} />\n ) : (\n <div style={styles.avatarPlaceholder}>\n <span style={styles.avatarInitial}>\n {(displayName || \"U\")[0].toUpperCase()}\n </span>\n </div>\n )}\n <span style={styles.displayName}>{displayName}</span>\n <ChevronDownIcon\n size={14}\n style={{\n ...styles.chevron,\n ...(isOpen ? styles.chevronOpen : {}),\n }}\n />\n </button>\n );\n\n return (\n <div\n ref={wrapperRef}\n style={styles.wrapper}\n className={className}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {triggerElement}\n {isOpen && (\n <div\n style={{\n ...styles.popoverBase,\n ...(showAbove\n ? { bottom: `calc(100% + ${POPOVER_GAP}px)` }\n : { top: `calc(100% + ${POPOVER_GAP}px)` }),\n }}\n >\n <div style={styles.header}>\n {username && <div style={styles.headerUsername}>{username}</div>}\n {address && (\n <div style={styles.addressRow}>\n <button\n type=\"button\"\n onClick={() => void copyToClipboard()}\n style={styles.addressButton}\n >\n <div\n style={{\n position: \"relative\",\n display: \"flex\",\n alignItems: \"center\",\n gap: \"4px\",\n width: \"100%\",\n }}\n >\n <div\n style={{\n ...styles.addressText,\n opacity: isCopied ? 0 : 1,\n }}\n >\n <span>{truncateAddress(address)}</span>\n <CopyIcon size={12} color=\"#9ca3af\" />\n </div>\n <div\n style={{\n ...styles.copiedText,\n opacity: isCopied ? 1 : 0,\n }}\n >\n Copied!\n </div>\n </div>\n </button>\n </div>\n )}\n </div>\n <div style={styles.menuSection}>\n {profileId && (\n <button\n type=\"button\"\n onClick={() => openRenown(profileId)}\n onMouseEnter={() => setHoveredItem(\"profile\")}\n onMouseLeave={() => setHoveredItem(null)}\n style={{\n ...styles.menuItem,\n ...(hoveredItem === \"profile\" ? styles.menuItemHover : {}),\n }}\n >\n <UserIcon size={14} color=\"#6b7280\" />\n View Profile\n </button>\n )}\n {menuItems?.map((item) => (\n <button\n key={item.label}\n type=\"button\"\n onClick={item.onClick}\n onMouseEnter={() => setHoveredItem(item.label)}\n onMouseLeave={() => setHoveredItem(null)}\n style={{\n ...styles.menuItem,\n ...(hoveredItem === item.label ? styles.menuItemHover : {}),\n ...item.style,\n }}\n >\n {item.icon}\n {item.label}\n </button>\n ))}\n </div>\n <hr style={styles.separator} />\n <div style={styles.menuSection}>\n <button\n type=\"button\"\n onClick={onDisconnect}\n onMouseEnter={() => setHoveredItem(\"disconnect\")}\n onMouseLeave={() => setHoveredItem(null)}\n style={{\n ...styles.menuItem,\n ...styles.disconnectItem,\n ...(hoveredItem === \"disconnect\" ? styles.menuItemHover : {}),\n }}\n >\n <DisconnectIcon size={14} color=\"#dc2626\" />\n Log out\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport { type RenownAuth, useRenownAuth } from \"../use-renown-auth.js\";\nimport { RenownLoginButton } from \"./RenownLoginButton.js\";\nimport { RenownUserButton } from \"./RenownUserButton.js\";\n\nexport interface RenownAuthButtonProps {\n className?: string;\n darkMode?: boolean;\n loginContent?: ReactNode;\n userContent?: ReactNode;\n loadingContent?: ReactNode;\n children?: (auth: RenownAuth) => ReactNode;\n}\n\nexport function RenownAuthButton({\n className = \"\",\n darkMode,\n loginContent,\n userContent,\n loadingContent,\n children,\n}: RenownAuthButtonProps) {\n const auth = useRenownAuth();\n\n if (children) {\n return <>{children(auth)}</>;\n }\n\n if (auth.status === \"loading\" || auth.status === \"checking\") {\n if (loadingContent) {\n return <div className={className}>{loadingContent}</div>;\n }\n\n return (\n <div className={className}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n padding: \"6px 12px\",\n borderRadius: \"8px\",\n border: \"1px solid #e5e7eb\",\n animation: \"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite\",\n }}\n >\n <div\n style={{\n width: \"28px\",\n height: \"28px\",\n borderRadius: \"50%\",\n backgroundColor: \"#e5e7eb\",\n }}\n />\n <div\n style={{\n width: \"80px\",\n height: \"14px\",\n borderRadius: \"4px\",\n backgroundColor: \"#e5e7eb\",\n }}\n />\n </div>\n <style>{`@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }`}</style>\n </div>\n );\n }\n\n if (auth.status === \"authorized\") {\n if (userContent) {\n return <div className={className}>{userContent}</div>;\n }\n\n return (\n <div className={className}>\n <RenownUserButton />\n </div>\n );\n }\n\n if (loginContent) {\n return <div className={className}>{loginContent}</div>;\n }\n\n return (\n <div className={className}>\n <RenownLoginButton darkMode={darkMode} />\n </div>\n );\n}\n","import { BrowserKeyStorage, RenownCryptoBuilder } from \"@renown/sdk\";\n\n/**\n * @deprecated Use {@link initRenownCrypto} instead\n *\n * Initialize ConnectCrypto\n * @returns ConnectCrypto instance\n */\nexport async function initConnectCrypto() {\n return initRenownCrypto();\n}\n\n/**\n * Initialize RenownCrypto\n * @returns RenownCrypto instance\n */\nexport async function initRenownCrypto() {\n const keyStorage = await BrowserKeyStorage.create();\n return await new RenownCryptoBuilder().withKeyPairStorage(keyStorage).build();\n}\n","import type { IRenown } from \"@renown/sdk\";\nimport { RenownBuilder } from \"@renown/sdk\";\nimport { useRef } from \"react\";\nimport { loading } from \"../hooks/loading.js\";\nimport { addRenownEventHandler, setRenown } from \"../hooks/renown.js\";\nimport { login } from \"./utils.js\";\n\nexport interface RenownInitOptions {\n appName: string;\n /**\n * Prefix for localStorage keys, allowing multiple apps\n * to use Renown on the same domain without conflicts.\n */\n namespace?: string;\n url?: string;\n}\n\nasync function initRenown(\n appName: string,\n namespace: string | undefined,\n url: string | undefined,\n): Promise<IRenown> {\n addRenownEventHandler();\n setRenown(loading);\n\n const builder = new RenownBuilder(appName, {\n basename: namespace,\n baseUrl: url,\n });\n const renown = await builder.build();\n setRenown(renown);\n\n await login(undefined, renown);\n\n return renown;\n}\n\n/**\n * Hook that initializes the Renown SDK.\n * Call once at the top of your app. Options are read only on first mount.\n * Returns a promise that resolves with the Renown instance.\n *\n * @example\n * ```tsx\n * function App() {\n * const renownPromise = useRenownInit({ appName: \"my-app\" });\n * return <MyApp />;\n * }\n * ```\n */\nexport function useRenownInit({\n appName,\n namespace,\n url,\n}: RenownInitOptions): Promise<IRenown> {\n const promiseRef = useRef(Promise.withResolvers<IRenown>());\n const initRef = useRef(false);\n\n if (typeof window === \"undefined\") {\n promiseRef.current.reject(new Error(\"window is undefined\"));\n return promiseRef.current.promise;\n }\n\n if (initRef.current) {\n return promiseRef.current.promise;\n }\n\n initRef.current = true;\n\n initRenown(appName, namespace, url)\n .then(promiseRef.current.resolve)\n .catch(promiseRef.current.reject);\n\n return promiseRef.current.promise;\n}\n","import { type RenownInitOptions, useRenownInit } from \"./use-renown-init.js\";\n\nexport interface RenownProps extends RenownInitOptions {\n onError?: (error: unknown) => void;\n}\n\n/**\n * Side-effect component that initializes the Renown SDK.\n * Renders nothing — place it alongside your app tree.\n *\n * @example\n * ```tsx\n * function App() {\n * return (\n * <>\n * <Renown appName=\"my-app\" onError={console.error} />\n * <MyApp />\n * </>\n * );\n * }\n * ```\n */\nexport function Renown({ onError, ...initOptions }: RenownProps) {\n useRenownInit(initOptions).catch(onError ?? console.error);\n return null;\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { l as ReactorGraphQLClient, t as createClient } from "../../client-
|
|
1
|
+
import { l as ReactorGraphQLClient, t as createClient } from "../../client-Bmw8cTjQ.js";
|
|
2
2
|
export { ReactorGraphQLClient, createClient };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as createClient } from "../../client-
|
|
1
|
+
import { t as createClient } from "../../client-D7hUM13i.js";
|
|
2
2
|
export { createClient };
|
package/dist/src/renown/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as RENOWN_CHAIN_ID, E as VERIFIABLE_CREDENTIAL_EIP712_TYPE, S as ISSUER_TYPE, T as RENOWN_URL, _ as openRenown, a as RenownAuthButton, b as CREDENTIAL_TYPES, c as ChevronDownIcon, d as RenownLogo, f as SpinnerIcon, g as logout, h as login, i as initRenownCrypto, l as CopyIcon, m as useRenownAuth, n as useRenownInit, o as RenownUserButton, p as UserIcon, r as initConnectCrypto, s as RenownLoginButton, t as Renown, u as DisconnectIcon, v as CREDENTIAL_SCHEMA_EIP712_TYPE, w as RENOWN_NETWORK_ID, x as DOMAIN_TYPE, y as CREDENTIAL_SUBJECT_TYPE } from "../../renown-
|
|
1
|
+
import { C as RENOWN_CHAIN_ID, E as VERIFIABLE_CREDENTIAL_EIP712_TYPE, S as ISSUER_TYPE, T as RENOWN_URL, _ as openRenown, a as RenownAuthButton, b as CREDENTIAL_TYPES, c as ChevronDownIcon, d as RenownLogo, f as SpinnerIcon, g as logout, h as login, i as initRenownCrypto, l as CopyIcon, m as useRenownAuth, n as useRenownInit, o as RenownUserButton, p as UserIcon, r as initConnectCrypto, s as RenownLoginButton, t as Renown, u as DisconnectIcon, v as CREDENTIAL_SCHEMA_EIP712_TYPE, w as RENOWN_NETWORK_ID, x as DOMAIN_TYPE, y as CREDENTIAL_SUBJECT_TYPE } from "../../renown-s0H1puU4.js";
|
|
2
2
|
export { CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ChevronDownIcon, CopyIcon, DOMAIN_TYPE, DisconnectIcon, ISSUER_TYPE, RENOWN_CHAIN_ID, RENOWN_NETWORK_ID, RENOWN_URL, Renown, RenownAuthButton, RenownLoginButton, RenownLogo, RenownUserButton, SpinnerIcon, UserIcon, VERIFIABLE_CREDENTIAL_EIP712_TYPE, initConnectCrypto, initRenownCrypto, login, logout, openRenown, useRenownAuth, useRenownInit };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerhousedao/reactor-browser",
|
|
3
|
-
"version": "6.0
|
|
3
|
+
"version": "6.1.0-dev.0",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -15,22 +15,27 @@
|
|
|
15
15
|
],
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
18
|
+
"source": "./index.ts",
|
|
18
19
|
"types": "./dist/index.d.ts",
|
|
19
20
|
"import": "./dist/index.js"
|
|
20
21
|
},
|
|
21
22
|
"./analytics": {
|
|
23
|
+
"source": "./src/analytics/index.ts",
|
|
22
24
|
"types": "./dist/src/analytics/index.d.ts",
|
|
23
25
|
"import": "./dist/src/analytics/index.js"
|
|
24
26
|
},
|
|
25
27
|
"./graphql": {
|
|
28
|
+
"source": "./src/graphql/client.ts",
|
|
26
29
|
"types": "./dist/src/graphql/client.d.ts",
|
|
27
30
|
"import": "./dist/src/graphql/client.js"
|
|
28
31
|
},
|
|
29
32
|
"./relational": {
|
|
33
|
+
"source": "./src/relational/index.ts",
|
|
30
34
|
"types": "./dist/src/relational/index.d.ts",
|
|
31
35
|
"import": "./dist/src/relational/index.js"
|
|
32
36
|
},
|
|
33
37
|
"./renown": {
|
|
38
|
+
"source": "./src/renown/index.ts",
|
|
34
39
|
"types": "./dist/src/renown/index.d.ts",
|
|
35
40
|
"import": "./dist/src/renown/index.js"
|
|
36
41
|
}
|
|
@@ -39,9 +44,7 @@
|
|
|
39
44
|
"dependencies": {
|
|
40
45
|
"@tanstack/react-query": "^5.49.2",
|
|
41
46
|
"change-case": "5.4.4",
|
|
42
|
-
"graphql": "16.12.0",
|
|
43
47
|
"graphql-request": "7.4.0",
|
|
44
|
-
"graphql-tag": "2.12.6",
|
|
45
48
|
"kysely": "0.28.16",
|
|
46
49
|
"kysely-pglite-dialect": "1.2.0",
|
|
47
50
|
"lodash.isequal": "^4.5.0",
|
|
@@ -51,12 +54,13 @@
|
|
|
51
54
|
"remeda": "2.33.7",
|
|
52
55
|
"slug": "^11.0.0",
|
|
53
56
|
"zod": "4.3.6",
|
|
54
|
-
"@powerhousedao/analytics-engine-browser": "6.0
|
|
55
|
-
"@powerhousedao/analytics-engine-core": "6.0
|
|
56
|
-
"@powerhousedao/reactor": "6.0
|
|
57
|
-
"@
|
|
58
|
-
"@powerhousedao/
|
|
59
|
-
"
|
|
57
|
+
"@powerhousedao/analytics-engine-browser": "6.1.0-dev.0",
|
|
58
|
+
"@powerhousedao/analytics-engine-core": "6.1.0-dev.0",
|
|
59
|
+
"@powerhousedao/reactor": "6.1.0-dev.0",
|
|
60
|
+
"@powerhousedao/shared": "6.1.0-dev.0",
|
|
61
|
+
"@powerhousedao/reactor-drive": "6.1.0-dev.0",
|
|
62
|
+
"@renown/sdk": "6.1.0-dev.0",
|
|
63
|
+
"document-model": "6.1.0-dev.0"
|
|
60
64
|
},
|
|
61
65
|
"devDependencies": {
|
|
62
66
|
"@electric-sql/pglite": "0.3.15",
|
|
@@ -74,6 +78,8 @@
|
|
|
74
78
|
"@vitest/browser": "4.1.1",
|
|
75
79
|
"@vitest/browser-playwright": "4.1.1",
|
|
76
80
|
"fast-deep-equal": "3.1.3",
|
|
81
|
+
"graphql": "^16",
|
|
82
|
+
"graphql-tag": "^2",
|
|
77
83
|
"playwright": "1.58.2",
|
|
78
84
|
"react": "19.2.6",
|
|
79
85
|
"react-dom": "19.2.6",
|
|
@@ -83,6 +89,8 @@
|
|
|
83
89
|
"vitest-browser-react": "^1.0.1"
|
|
84
90
|
},
|
|
85
91
|
"peerDependencies": {
|
|
92
|
+
"graphql": "^16",
|
|
93
|
+
"graphql-tag": "^2",
|
|
86
94
|
"react": ">=19.0.0",
|
|
87
95
|
"react-dom": ">=19.0.0"
|
|
88
96
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client-DfoxBz8A.js","names":[],"sources":["../src/graphql/gen/schema.ts","../src/graphql/batch-queries.ts","../src/graphql/client.ts"],"sourcesContent":["import type { GraphQLClient, RequestOptions } from \"graphql-request\";\nimport { gql } from \"graphql-tag\";\nexport type Maybe<T> = T | null | undefined;\nexport type InputMaybe<T> = T | null | undefined;\nexport type Exact<T extends { [key: string]: unknown }> = {\n [K in keyof T]: T[K];\n};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]?: Maybe<T[SubKey]>;\n};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]: Maybe<T[SubKey]>;\n};\nexport type MakeEmpty<\n T extends { [key: string]: unknown },\n K extends keyof T,\n> = { [_ in K]?: never };\nexport type Incremental<T> =\n | T\n | {\n [P in keyof T]?: P extends \" $fragmentName\" | \"__typename\" ? T[P] : never;\n };\ntype GraphQLClientRequestHeaders = RequestOptions[\"requestHeaders\"];\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n DateTime: { input: string | Date; output: string | Date };\n JSONObject: { input: NonNullable<unknown>; output: NonNullable<unknown> };\n};\n\nexport type Action = {\n readonly attachments?: Maybe<ReadonlyArray<Attachment>>;\n readonly context?: Maybe<ActionContext>;\n readonly id: Scalars[\"String\"][\"output\"];\n readonly input: Scalars[\"JSONObject\"][\"output\"];\n readonly scope: Scalars[\"String\"][\"output\"];\n readonly timestampUtcMs: Scalars[\"String\"][\"output\"];\n readonly type: Scalars[\"String\"][\"output\"];\n};\n\nexport type ActionContext = {\n readonly signer?: Maybe<ReactorSigner>;\n};\n\nexport type ActionContextInput = {\n readonly signer?: InputMaybe<ReactorSignerInput>;\n};\n\nexport type ActionInput = {\n readonly attachments?: InputMaybe<ReadonlyArray<AttachmentInput>>;\n readonly context?: InputMaybe<ActionContextInput>;\n readonly id: Scalars[\"String\"][\"input\"];\n readonly input: Scalars[\"JSONObject\"][\"input\"];\n readonly scope: Scalars[\"String\"][\"input\"];\n readonly timestampUtcMs: Scalars[\"String\"][\"input\"];\n readonly type: Scalars[\"String\"][\"input\"];\n};\n\nexport type Attachment = {\n readonly data: Scalars[\"String\"][\"output\"];\n readonly extension?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly fileName?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly hash: Scalars[\"String\"][\"output\"];\n readonly mimeType: Scalars[\"String\"][\"output\"];\n};\n\nexport type AttachmentInput = {\n readonly data: Scalars[\"String\"][\"input\"];\n readonly extension?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly fileName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly hash: Scalars[\"String\"][\"input\"];\n readonly mimeType: Scalars[\"String\"][\"input\"];\n};\n\nexport type ChannelMeta = {\n readonly id: Scalars[\"String\"][\"output\"];\n};\n\nexport type ChannelMetaInput = {\n readonly id: Scalars[\"String\"][\"input\"];\n};\n\nexport type DeadLetterInfo = {\n readonly branch: Scalars[\"String\"][\"output\"];\n readonly documentId: Scalars[\"String\"][\"output\"];\n readonly error: Scalars[\"String\"][\"output\"];\n readonly jobId: Scalars[\"String\"][\"output\"];\n readonly operationCount: Scalars[\"Int\"][\"output\"];\n readonly scopes: ReadonlyArray<Scalars[\"String\"][\"output\"]>;\n};\n\nexport type DocumentChangeContext = {\n readonly childId?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly parentId?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\nexport type DocumentChangeEvent = {\n readonly context?: Maybe<DocumentChangeContext>;\n readonly documents: ReadonlyArray<PhDocument>;\n readonly type: DocumentChangeType;\n};\n\nexport enum DocumentChangeType {\n ChildAdded = \"CHILD_ADDED\",\n ChildRemoved = \"CHILD_REMOVED\",\n Created = \"CREATED\",\n Deleted = \"DELETED\",\n ParentAdded = \"PARENT_ADDED\",\n ParentRemoved = \"PARENT_REMOVED\",\n Updated = \"UPDATED\",\n}\n\nexport type DocumentModelGlobalState = {\n readonly id: Scalars[\"String\"][\"output\"];\n readonly name: Scalars[\"String\"][\"output\"];\n readonly namespace?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly specification: Scalars[\"JSONObject\"][\"output\"];\n readonly version?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\nexport type DocumentModelResultPage = {\n readonly cursor?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly hasNextPage: Scalars[\"Boolean\"][\"output\"];\n readonly hasPreviousPage: Scalars[\"Boolean\"][\"output\"];\n readonly items: ReadonlyArray<DocumentModelGlobalState>;\n readonly totalCount: Scalars[\"Int\"][\"output\"];\n};\n\nexport type DocumentOperationsFilterInput = {\n readonly actionTypes?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n readonly branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly scopes?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n readonly sinceRevision?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n readonly timestampFrom?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly timestampTo?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type DocumentWithChildren = {\n readonly childIds: ReadonlyArray<Scalars[\"String\"][\"output\"]>;\n readonly document: PhDocument;\n};\n\nexport type JobChangeEvent = {\n readonly error?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly jobId: Scalars[\"String\"][\"output\"];\n readonly result: Scalars[\"JSONObject\"][\"output\"];\n readonly status: Scalars[\"String\"][\"output\"];\n};\n\nexport type JobInfo = {\n readonly completedAt?: Maybe<Scalars[\"DateTime\"][\"output\"]>;\n readonly createdAt: Scalars[\"DateTime\"][\"output\"];\n readonly error?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly id: Scalars[\"String\"][\"output\"];\n readonly result: Scalars[\"JSONObject\"][\"output\"];\n readonly status: Scalars[\"String\"][\"output\"];\n};\n\nexport type MoveRelationshipResult = {\n readonly source: PhDocument;\n readonly target: PhDocument;\n};\n\nexport type Mutation = {\n readonly addRelationship: PhDocument;\n readonly createDocument: PhDocument;\n readonly createEmptyDocument: PhDocument;\n readonly deleteDocument: Scalars[\"Boolean\"][\"output\"];\n readonly deleteDocuments: Scalars[\"Boolean\"][\"output\"];\n readonly moveRelationship: MoveRelationshipResult;\n readonly mutateDocument: PhDocument;\n readonly mutateDocumentAsync: Scalars[\"String\"][\"output\"];\n readonly pushSyncEnvelopes: Scalars[\"Boolean\"][\"output\"];\n readonly removeRelationship: PhDocument;\n readonly renameDocument: PhDocument;\n readonly touchChannel: TouchChannelResult;\n};\n\nexport type MutationAddRelationshipArgs = {\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n relationshipType: Scalars[\"String\"][\"input\"];\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n};\n\nexport type MutationCreateDocumentArgs = {\n document: Scalars[\"JSONObject\"][\"input\"];\n parentIdentifier?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type MutationCreateEmptyDocumentArgs = {\n documentType: Scalars[\"String\"][\"input\"];\n parentIdentifier?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type MutationDeleteDocumentArgs = {\n identifier: Scalars[\"String\"][\"input\"];\n propagate?: InputMaybe<PropagationMode>;\n};\n\nexport type MutationDeleteDocumentsArgs = {\n identifiers: ReadonlyArray<Scalars[\"String\"][\"input\"]>;\n propagate?: InputMaybe<PropagationMode>;\n};\n\nexport type MutationMoveRelationshipArgs = {\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n relationshipType: Scalars[\"String\"][\"input\"];\n sourceParentIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n targetParentIdentifier: Scalars[\"String\"][\"input\"];\n};\n\nexport type MutationMutateDocumentArgs = {\n actions: ReadonlyArray<Scalars[\"JSONObject\"][\"input\"]>;\n documentIdentifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type MutationMutateDocumentAsyncArgs = {\n actions: ReadonlyArray<Scalars[\"JSONObject\"][\"input\"]>;\n documentIdentifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type MutationPushSyncEnvelopesArgs = {\n envelopes: ReadonlyArray<SyncEnvelopeInput>;\n};\n\nexport type MutationRemoveRelationshipArgs = {\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n relationshipType: Scalars[\"String\"][\"input\"];\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n};\n\nexport type MutationRenameDocumentArgs = {\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n documentIdentifier: Scalars[\"String\"][\"input\"];\n name: Scalars[\"String\"][\"input\"];\n};\n\nexport type MutationTouchChannelArgs = {\n input: TouchChannelInput;\n};\n\nexport type OperationContext = {\n readonly branch: Scalars[\"String\"][\"output\"];\n readonly documentId: Scalars[\"String\"][\"output\"];\n readonly documentType: Scalars[\"String\"][\"output\"];\n readonly ordinal: Scalars[\"Int\"][\"output\"];\n readonly scope: Scalars[\"String\"][\"output\"];\n};\n\nexport type OperationContextInput = {\n readonly branch: Scalars[\"String\"][\"input\"];\n readonly documentId: Scalars[\"String\"][\"input\"];\n readonly documentType: Scalars[\"String\"][\"input\"];\n readonly ordinal: Scalars[\"Int\"][\"input\"];\n readonly scope: Scalars[\"String\"][\"input\"];\n};\n\nexport type OperationInput = {\n readonly action: ActionInput;\n readonly error?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly hash: Scalars[\"String\"][\"input\"];\n readonly id?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly index: Scalars[\"Int\"][\"input\"];\n readonly skip: Scalars[\"Int\"][\"input\"];\n readonly timestampUtcMs: Scalars[\"String\"][\"input\"];\n};\n\nexport type OperationWithContext = {\n readonly context: OperationContext;\n readonly operation: ReactorOperation;\n};\n\nexport type OperationWithContextInput = {\n readonly context: OperationContextInput;\n readonly operation: OperationInput;\n};\n\nexport type OperationsFilterInput = {\n readonly actionTypes?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n readonly branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly documentId: Scalars[\"String\"][\"input\"];\n readonly scopes?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n readonly sinceRevision?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n readonly timestampFrom?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly timestampTo?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type PhDocument = {\n readonly createdAtUtcIso: Scalars[\"DateTime\"][\"output\"];\n readonly documentType: Scalars[\"String\"][\"output\"];\n readonly id: Scalars[\"String\"][\"output\"];\n readonly lastModifiedAtUtcIso: Scalars[\"DateTime\"][\"output\"];\n readonly name: Scalars[\"String\"][\"output\"];\n readonly operations?: Maybe<ReactorOperationResultPage>;\n readonly preferredEditor?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly revisionsList: ReadonlyArray<Revision>;\n readonly slug?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly state: Scalars[\"JSONObject\"][\"output\"];\n};\n\nexport type PhDocumentOperationsArgs = {\n filter?: InputMaybe<DocumentOperationsFilterInput>;\n paging?: InputMaybe<PagingInput>;\n};\n\nexport type PhDocumentResultPage = {\n readonly cursor?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly hasNextPage: Scalars[\"Boolean\"][\"output\"];\n readonly hasPreviousPage: Scalars[\"Boolean\"][\"output\"];\n readonly items: ReadonlyArray<PhDocument>;\n readonly totalCount: Scalars[\"Int\"][\"output\"];\n};\n\nexport type PagingInput = {\n readonly cursor?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly limit?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n readonly offset?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\nexport type PollSyncEnvelopesResult = {\n readonly ackOrdinal: Scalars[\"Int\"][\"output\"];\n readonly deadLetters: ReadonlyArray<DeadLetterInfo>;\n readonly envelopes: ReadonlyArray<SyncEnvelope>;\n readonly hasMore: Scalars[\"Boolean\"][\"output\"];\n};\n\nexport enum PropagationMode {\n Cascade = \"CASCADE\",\n Orphan = \"ORPHAN\",\n}\n\nexport type Query = {\n readonly document?: Maybe<DocumentWithChildren>;\n readonly documentIncomingRelationships: PhDocumentResultPage;\n readonly documentModels: DocumentModelResultPage;\n readonly documentOperations: ReactorOperationResultPage;\n readonly documentOutgoingRelationships: PhDocumentResultPage;\n readonly findDocuments: PhDocumentResultPage;\n readonly jobStatus?: Maybe<JobInfo>;\n readonly pollSyncEnvelopes: PollSyncEnvelopesResult;\n};\n\nexport type QueryDocumentArgs = {\n identifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type QueryDocumentIncomingRelationshipsArgs = {\n paging?: InputMaybe<PagingInput>;\n relationshipType: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type QueryDocumentModelsArgs = {\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n paging?: InputMaybe<PagingInput>;\n};\n\nexport type QueryDocumentOperationsArgs = {\n filter: OperationsFilterInput;\n paging?: InputMaybe<PagingInput>;\n};\n\nexport type QueryDocumentOutgoingRelationshipsArgs = {\n paging?: InputMaybe<PagingInput>;\n relationshipType: Scalars[\"String\"][\"input\"];\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type QueryFindDocumentsArgs = {\n paging?: InputMaybe<PagingInput>;\n search?: InputMaybe<SearchFilterInput>;\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type QueryJobStatusArgs = {\n jobId: Scalars[\"String\"][\"input\"];\n};\n\nexport type QueryPollSyncEnvelopesArgs = {\n channelId: Scalars[\"String\"][\"input\"];\n outboxAck: Scalars[\"Int\"][\"input\"];\n outboxLatest: Scalars[\"Int\"][\"input\"];\n};\n\nexport type ReactorOperation = {\n readonly action: Action;\n readonly error?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly hash: Scalars[\"String\"][\"output\"];\n readonly id?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly index: Scalars[\"Int\"][\"output\"];\n readonly skip: Scalars[\"Int\"][\"output\"];\n readonly timestampUtcMs: Scalars[\"String\"][\"output\"];\n};\n\nexport type ReactorOperationResultPage = {\n readonly cursor?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly hasNextPage: Scalars[\"Boolean\"][\"output\"];\n readonly hasPreviousPage: Scalars[\"Boolean\"][\"output\"];\n readonly items: ReadonlyArray<ReactorOperation>;\n readonly totalCount: Scalars[\"Int\"][\"output\"];\n};\n\nexport type ReactorSigner = {\n readonly app?: Maybe<ReactorSignerApp>;\n readonly signatures: ReadonlyArray<Scalars[\"String\"][\"output\"]>;\n readonly user?: Maybe<ReactorSignerUser>;\n};\n\nexport type ReactorSignerApp = {\n readonly key: Scalars[\"String\"][\"output\"];\n readonly name: Scalars[\"String\"][\"output\"];\n};\n\nexport type ReactorSignerAppInput = {\n readonly key: Scalars[\"String\"][\"input\"];\n readonly name: Scalars[\"String\"][\"input\"];\n};\n\nexport type ReactorSignerInput = {\n readonly app?: InputMaybe<ReactorSignerAppInput>;\n readonly signatures: ReadonlyArray<Scalars[\"String\"][\"input\"]>;\n readonly user?: InputMaybe<ReactorSignerUserInput>;\n};\n\nexport type ReactorSignerUser = {\n readonly address: Scalars[\"String\"][\"output\"];\n readonly chainId: Scalars[\"Int\"][\"output\"];\n readonly networkId: Scalars[\"String\"][\"output\"];\n};\n\nexport type ReactorSignerUserInput = {\n readonly address: Scalars[\"String\"][\"input\"];\n readonly chainId: Scalars[\"Int\"][\"input\"];\n readonly networkId: Scalars[\"String\"][\"input\"];\n};\n\nexport type RemoteCursor = {\n readonly cursorOrdinal: Scalars[\"Int\"][\"output\"];\n readonly lastSyncedAtUtcMs?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly remoteName: Scalars[\"String\"][\"output\"];\n};\n\nexport type RemoteCursorInput = {\n readonly cursorOrdinal: Scalars[\"Int\"][\"input\"];\n readonly lastSyncedAtUtcMs?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly remoteName: Scalars[\"String\"][\"input\"];\n};\n\nexport type RemoteFilterInput = {\n readonly branch: Scalars[\"String\"][\"input\"];\n readonly documentId: ReadonlyArray<Scalars[\"String\"][\"input\"]>;\n readonly scope: ReadonlyArray<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type Revision = {\n readonly revision: Scalars[\"Int\"][\"output\"];\n readonly scope: Scalars[\"String\"][\"output\"];\n};\n\nexport type SearchFilterInput = {\n readonly identifiers?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n readonly parentId?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly type?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type Subscription = {\n readonly documentChanges: DocumentChangeEvent;\n readonly jobChanges: JobChangeEvent;\n};\n\nexport type SubscriptionDocumentChangesArgs = {\n search?: InputMaybe<SearchFilterInput>;\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type SubscriptionJobChangesArgs = {\n jobId: Scalars[\"String\"][\"input\"];\n};\n\nexport type SyncEnvelope = {\n readonly channelMeta: ChannelMeta;\n readonly cursor?: Maybe<RemoteCursor>;\n readonly dependsOn?: Maybe<ReadonlyArray<Scalars[\"String\"][\"output\"]>>;\n readonly key?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly operations?: Maybe<ReadonlyArray<OperationWithContext>>;\n readonly type: SyncEnvelopeType;\n};\n\nexport type SyncEnvelopeInput = {\n readonly channelMeta: ChannelMetaInput;\n readonly cursor?: InputMaybe<RemoteCursorInput>;\n readonly dependsOn?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n readonly key?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly operations?: InputMaybe<ReadonlyArray<OperationWithContextInput>>;\n readonly type: SyncEnvelopeType;\n};\n\nexport enum SyncEnvelopeType {\n Ack = \"ACK\",\n Operations = \"OPERATIONS\",\n}\n\nexport type TouchChannelInput = {\n readonly collectionId: Scalars[\"String\"][\"input\"];\n readonly filter: RemoteFilterInput;\n readonly id: Scalars[\"String\"][\"input\"];\n readonly name: Scalars[\"String\"][\"input\"];\n readonly sinceTimestampUtcMs: Scalars[\"String\"][\"input\"];\n};\n\nexport type TouchChannelResult = {\n readonly ackOrdinal: Scalars[\"Int\"][\"output\"];\n readonly success: Scalars[\"Boolean\"][\"output\"];\n};\n\nexport type ViewFilterInput = {\n readonly branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly scopes?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n};\n\nexport type PhDocumentFieldsFragment = {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n};\n\nexport type GetDocumentModelsQueryVariables = Exact<{\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n paging?: InputMaybe<PagingInput>;\n}>;\n\nexport type GetDocumentModelsQuery = {\n readonly documentModels: {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly id: string;\n readonly name: string;\n readonly namespace?: string | null | undefined;\n readonly version?: string | null | undefined;\n readonly specification: NonNullable<unknown>;\n }>;\n };\n};\n\nexport type GetDocumentQueryVariables = Exact<{\n identifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n}>;\n\nexport type GetDocumentQuery = {\n readonly document?:\n | {\n readonly childIds: ReadonlyArray<string>;\n readonly document: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n }\n | null\n | undefined;\n};\n\nexport type GetDocumentWithOperationsQueryVariables = Exact<{\n identifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n operationsFilter?: InputMaybe<DocumentOperationsFilterInput>;\n operationsPaging?: InputMaybe<PagingInput>;\n}>;\n\nexport type GetDocumentWithOperationsQuery = {\n readonly document?:\n | {\n readonly childIds: ReadonlyArray<string>;\n readonly document: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly operations?:\n | {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly index: number;\n readonly timestampUtcMs: string;\n readonly hash: string;\n readonly skip: number;\n readonly error?: string | null | undefined;\n readonly id?: string | null | undefined;\n readonly action: {\n readonly id: string;\n readonly type: string;\n readonly timestampUtcMs: string;\n readonly input: NonNullable<unknown>;\n readonly scope: string;\n readonly attachments?:\n | ReadonlyArray<{\n readonly data: string;\n readonly mimeType: string;\n readonly hash: string;\n readonly extension?: string | null | undefined;\n readonly fileName?: string | null | undefined;\n }>\n | null\n | undefined;\n readonly context?:\n | {\n readonly signer?:\n | {\n readonly signatures: ReadonlyArray<string>;\n readonly user?:\n | {\n readonly address: string;\n readonly networkId: string;\n readonly chainId: number;\n }\n | null\n | undefined;\n readonly app?:\n | {\n readonly name: string;\n readonly key: string;\n }\n | null\n | undefined;\n }\n | null\n | undefined;\n }\n | null\n | undefined;\n };\n }>;\n }\n | null\n | undefined;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n }\n | null\n | undefined;\n};\n\nexport type GetDocumentOutgoingRelationshipsQueryVariables = Exact<{\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n paging?: InputMaybe<PagingInput>;\n}>;\n\nexport type GetDocumentOutgoingRelationshipsQuery = {\n readonly documentOutgoingRelationships: {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n }>;\n };\n};\n\nexport type GetDocumentIncomingRelationshipsQueryVariables = Exact<{\n targetIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n paging?: InputMaybe<PagingInput>;\n}>;\n\nexport type GetDocumentIncomingRelationshipsQuery = {\n readonly documentIncomingRelationships: {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n }>;\n };\n};\n\nexport type FindDocumentsQueryVariables = Exact<{\n search?: InputMaybe<SearchFilterInput>;\n view?: InputMaybe<ViewFilterInput>;\n paging?: InputMaybe<PagingInput>;\n}>;\n\nexport type FindDocumentsQuery = {\n readonly findDocuments: {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n }>;\n };\n};\n\nexport type GetDocumentOperationsQueryVariables = Exact<{\n filter: OperationsFilterInput;\n paging?: InputMaybe<PagingInput>;\n}>;\n\nexport type GetDocumentOperationsQuery = {\n readonly documentOperations: {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly index: number;\n readonly timestampUtcMs: string;\n readonly hash: string;\n readonly skip: number;\n readonly error?: string | null | undefined;\n readonly id?: string | null | undefined;\n readonly action: {\n readonly id: string;\n readonly type: string;\n readonly timestampUtcMs: string;\n readonly input: NonNullable<unknown>;\n readonly scope: string;\n readonly attachments?:\n | ReadonlyArray<{\n readonly data: string;\n readonly mimeType: string;\n readonly hash: string;\n readonly extension?: string | null | undefined;\n readonly fileName?: string | null | undefined;\n }>\n | null\n | undefined;\n readonly context?:\n | {\n readonly signer?:\n | {\n readonly signatures: ReadonlyArray<string>;\n readonly user?:\n | {\n readonly address: string;\n readonly networkId: string;\n readonly chainId: number;\n }\n | null\n | undefined;\n readonly app?:\n | { readonly name: string; readonly key: string }\n | null\n | undefined;\n }\n | null\n | undefined;\n }\n | null\n | undefined;\n };\n }>;\n };\n};\n\nexport type GetJobStatusQueryVariables = Exact<{\n jobId: Scalars[\"String\"][\"input\"];\n}>;\n\nexport type GetJobStatusQuery = {\n readonly jobStatus?:\n | {\n readonly id: string;\n readonly status: string;\n readonly result: NonNullable<unknown>;\n readonly error?: string | null | undefined;\n readonly createdAt: string | Date;\n readonly completedAt?: string | Date | null | undefined;\n }\n | null\n | undefined;\n};\n\nexport type CreateDocumentMutationVariables = Exact<{\n document: Scalars[\"JSONObject\"][\"input\"];\n parentIdentifier?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type CreateDocumentMutation = {\n readonly createDocument: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type CreateEmptyDocumentMutationVariables = Exact<{\n documentType: Scalars[\"String\"][\"input\"];\n parentIdentifier?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type CreateEmptyDocumentMutation = {\n readonly createEmptyDocument: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type MutateDocumentMutationVariables = Exact<{\n documentIdentifier: Scalars[\"String\"][\"input\"];\n actions: ReadonlyArray<Scalars[\"JSONObject\"][\"input\"]>;\n view?: InputMaybe<ViewFilterInput>;\n}>;\n\nexport type MutateDocumentMutation = {\n readonly mutateDocument: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type MutateDocumentAsyncMutationVariables = Exact<{\n documentIdentifier: Scalars[\"String\"][\"input\"];\n actions: ReadonlyArray<Scalars[\"JSONObject\"][\"input\"]>;\n view?: InputMaybe<ViewFilterInput>;\n}>;\n\nexport type MutateDocumentAsyncMutation = {\n readonly mutateDocumentAsync: string;\n};\n\nexport type RenameDocumentMutationVariables = Exact<{\n documentIdentifier: Scalars[\"String\"][\"input\"];\n name: Scalars[\"String\"][\"input\"];\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type RenameDocumentMutation = {\n readonly renameDocument: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type AddRelationshipMutationVariables = Exact<{\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType: Scalars[\"String\"][\"input\"];\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type AddRelationshipMutation = {\n readonly addRelationship: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type RemoveRelationshipMutationVariables = Exact<{\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType: Scalars[\"String\"][\"input\"];\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type RemoveRelationshipMutation = {\n readonly removeRelationship: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type MoveRelationshipMutationVariables = Exact<{\n sourceParentIdentifier: Scalars[\"String\"][\"input\"];\n targetParentIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType: Scalars[\"String\"][\"input\"];\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type MoveRelationshipMutation = {\n readonly moveRelationship: {\n readonly source: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n readonly target: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n };\n};\n\nexport type DeleteDocumentMutationVariables = Exact<{\n identifier: Scalars[\"String\"][\"input\"];\n propagate?: InputMaybe<PropagationMode>;\n}>;\n\nexport type DeleteDocumentMutation = { readonly deleteDocument: boolean };\n\nexport type DeleteDocumentsMutationVariables = Exact<{\n identifiers: ReadonlyArray<Scalars[\"String\"][\"input\"]>;\n propagate?: InputMaybe<PropagationMode>;\n}>;\n\nexport type DeleteDocumentsMutation = { readonly deleteDocuments: boolean };\n\nexport type DocumentChangesSubscriptionVariables = Exact<{\n search?: InputMaybe<SearchFilterInput>;\n view?: InputMaybe<ViewFilterInput>;\n}>;\n\nexport type DocumentChangesSubscription = {\n readonly documentChanges: {\n readonly type: DocumentChangeType;\n readonly documents: ReadonlyArray<{\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n }>;\n readonly context?:\n | {\n readonly parentId?: string | null | undefined;\n readonly childId?: string | null | undefined;\n }\n | null\n | undefined;\n };\n};\n\nexport type JobChangesSubscriptionVariables = Exact<{\n jobId: Scalars[\"String\"][\"input\"];\n}>;\n\nexport type JobChangesSubscription = {\n readonly jobChanges: {\n readonly jobId: string;\n readonly status: string;\n readonly result: NonNullable<unknown>;\n readonly error?: string | null | undefined;\n };\n};\n\nexport type PollSyncEnvelopesQueryVariables = Exact<{\n channelId: Scalars[\"String\"][\"input\"];\n outboxAck: Scalars[\"Int\"][\"input\"];\n outboxLatest: Scalars[\"Int\"][\"input\"];\n}>;\n\nexport type PollSyncEnvelopesQuery = {\n readonly pollSyncEnvelopes: {\n readonly ackOrdinal: number;\n readonly hasMore: boolean;\n readonly envelopes: ReadonlyArray<{\n readonly type: SyncEnvelopeType;\n readonly key?: string | null | undefined;\n readonly dependsOn?: ReadonlyArray<string> | null | undefined;\n readonly channelMeta: { readonly id: string };\n readonly operations?:\n | ReadonlyArray<{\n readonly operation: {\n readonly index: number;\n readonly timestampUtcMs: string;\n readonly hash: string;\n readonly skip: number;\n readonly error?: string | null | undefined;\n readonly id?: string | null | undefined;\n readonly action: {\n readonly id: string;\n readonly type: string;\n readonly timestampUtcMs: string;\n readonly input: NonNullable<unknown>;\n readonly scope: string;\n readonly attachments?:\n | ReadonlyArray<{\n readonly data: string;\n readonly mimeType: string;\n readonly hash: string;\n readonly extension?: string | null | undefined;\n readonly fileName?: string | null | undefined;\n }>\n | null\n | undefined;\n readonly context?:\n | {\n readonly signer?:\n | {\n readonly signatures: ReadonlyArray<string>;\n readonly user?:\n | {\n readonly address: string;\n readonly networkId: string;\n readonly chainId: number;\n }\n | null\n | undefined;\n readonly app?:\n | { readonly name: string; readonly key: string }\n | null\n | undefined;\n }\n | null\n | undefined;\n }\n | null\n | undefined;\n };\n };\n readonly context: {\n readonly documentId: string;\n readonly documentType: string;\n readonly scope: string;\n readonly branch: string;\n };\n }>\n | null\n | undefined;\n readonly cursor?:\n | {\n readonly remoteName: string;\n readonly cursorOrdinal: number;\n readonly lastSyncedAtUtcMs?: string | null | undefined;\n }\n | null\n | undefined;\n }>;\n readonly deadLetters: ReadonlyArray<{\n readonly documentId: string;\n readonly error: string;\n }>;\n };\n};\n\nexport type TouchChannelMutationVariables = Exact<{\n input: TouchChannelInput;\n}>;\n\nexport type TouchChannelMutation = {\n readonly touchChannel: {\n readonly success: boolean;\n readonly ackOrdinal: number;\n };\n};\n\nexport type PushSyncEnvelopesMutationVariables = Exact<{\n envelopes: ReadonlyArray<SyncEnvelopeInput>;\n}>;\n\nexport type PushSyncEnvelopesMutation = { readonly pushSyncEnvelopes: boolean };\n\nexport const PhDocumentFieldsFragmentDoc = gql`\n fragment PHDocumentFields on PHDocument {\n id\n slug\n name\n documentType\n state\n revisionsList {\n scope\n revision\n }\n createdAtUtcIso\n lastModifiedAtUtcIso\n }\n`;\nexport const GetDocumentModelsDocument = gql`\n query GetDocumentModels($namespace: String, $paging: PagingInput) {\n documentModels(namespace: $namespace, paging: $paging) {\n items {\n id\n name\n namespace\n version\n specification\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n`;\nexport const GetDocumentDocument = gql`\n query GetDocument($identifier: String!, $view: ViewFilterInput) {\n document(identifier: $identifier, view: $view) {\n document {\n ...PHDocumentFields\n }\n childIds\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const GetDocumentWithOperationsDocument = gql`\n query GetDocumentWithOperations(\n $identifier: String!\n $view: ViewFilterInput\n $operationsFilter: DocumentOperationsFilterInput\n $operationsPaging: PagingInput\n ) {\n document(identifier: $identifier, view: $view) {\n document {\n ...PHDocumentFields\n operations(filter: $operationsFilter, paging: $operationsPaging) {\n items {\n index\n timestampUtcMs\n hash\n skip\n error\n id\n action {\n id\n type\n timestampUtcMs\n input\n scope\n attachments {\n data\n mimeType\n hash\n extension\n fileName\n }\n context {\n signer {\n user {\n address\n networkId\n chainId\n }\n app {\n name\n key\n }\n signatures\n }\n }\n }\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n childIds\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const GetDocumentOutgoingRelationshipsDocument = gql`\n query GetDocumentOutgoingRelationships(\n $sourceIdentifier: String!\n $relationshipType: String!\n $view: ViewFilterInput\n $paging: PagingInput\n ) {\n documentOutgoingRelationships(\n sourceIdentifier: $sourceIdentifier\n relationshipType: $relationshipType\n view: $view\n paging: $paging\n ) {\n items {\n ...PHDocumentFields\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const GetDocumentIncomingRelationshipsDocument = gql`\n query GetDocumentIncomingRelationships(\n $targetIdentifier: String!\n $relationshipType: String!\n $view: ViewFilterInput\n $paging: PagingInput\n ) {\n documentIncomingRelationships(\n targetIdentifier: $targetIdentifier\n relationshipType: $relationshipType\n view: $view\n paging: $paging\n ) {\n items {\n ...PHDocumentFields\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const FindDocumentsDocument = gql`\n query FindDocuments(\n $search: SearchFilterInput\n $view: ViewFilterInput\n $paging: PagingInput\n ) {\n findDocuments(search: $search, view: $view, paging: $paging) {\n items {\n ...PHDocumentFields\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const GetDocumentOperationsDocument = gql`\n query GetDocumentOperations(\n $filter: OperationsFilterInput!\n $paging: PagingInput\n ) {\n documentOperations(filter: $filter, paging: $paging) {\n items {\n index\n timestampUtcMs\n hash\n skip\n error\n id\n action {\n id\n type\n timestampUtcMs\n input\n scope\n attachments {\n data\n mimeType\n hash\n extension\n fileName\n }\n context {\n signer {\n user {\n address\n networkId\n chainId\n }\n app {\n name\n key\n }\n signatures\n }\n }\n }\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n`;\nexport const GetJobStatusDocument = gql`\n query GetJobStatus($jobId: String!) {\n jobStatus(jobId: $jobId) {\n id\n status\n result\n error\n createdAt\n completedAt\n }\n }\n`;\nexport const CreateDocumentDocument = gql`\n mutation CreateDocument($document: JSONObject!, $parentIdentifier: String) {\n createDocument(document: $document, parentIdentifier: $parentIdentifier) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const CreateEmptyDocumentDocument = gql`\n mutation CreateEmptyDocument(\n $documentType: String!\n $parentIdentifier: String\n ) {\n createEmptyDocument(\n documentType: $documentType\n parentIdentifier: $parentIdentifier\n ) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const MutateDocumentDocument = gql`\n mutation MutateDocument(\n $documentIdentifier: String!\n $actions: [JSONObject!]!\n $view: ViewFilterInput\n ) {\n mutateDocument(\n documentIdentifier: $documentIdentifier\n actions: $actions\n view: $view\n ) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const MutateDocumentAsyncDocument = gql`\n mutation MutateDocumentAsync(\n $documentIdentifier: String!\n $actions: [JSONObject!]!\n $view: ViewFilterInput\n ) {\n mutateDocumentAsync(\n documentIdentifier: $documentIdentifier\n actions: $actions\n view: $view\n )\n }\n`;\nexport const RenameDocumentDocument = gql`\n mutation RenameDocument(\n $documentIdentifier: String!\n $name: String!\n $branch: String\n ) {\n renameDocument(\n documentIdentifier: $documentIdentifier\n name: $name\n branch: $branch\n ) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const AddRelationshipDocument = gql`\n mutation AddRelationship(\n $sourceIdentifier: String!\n $targetIdentifier: String!\n $relationshipType: String!\n $branch: String\n ) {\n addRelationship(\n sourceIdentifier: $sourceIdentifier\n targetIdentifier: $targetIdentifier\n relationshipType: $relationshipType\n branch: $branch\n ) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const RemoveRelationshipDocument = gql`\n mutation RemoveRelationship(\n $sourceIdentifier: String!\n $targetIdentifier: String!\n $relationshipType: String!\n $branch: String\n ) {\n removeRelationship(\n sourceIdentifier: $sourceIdentifier\n targetIdentifier: $targetIdentifier\n relationshipType: $relationshipType\n branch: $branch\n ) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const MoveRelationshipDocument = gql`\n mutation MoveRelationship(\n $sourceParentIdentifier: String!\n $targetParentIdentifier: String!\n $targetIdentifier: String!\n $relationshipType: String!\n $branch: String\n ) {\n moveRelationship(\n sourceParentIdentifier: $sourceParentIdentifier\n targetParentIdentifier: $targetParentIdentifier\n targetIdentifier: $targetIdentifier\n relationshipType: $relationshipType\n branch: $branch\n ) {\n source {\n ...PHDocumentFields\n }\n target {\n ...PHDocumentFields\n }\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const DeleteDocumentDocument = gql`\n mutation DeleteDocument($identifier: String!, $propagate: PropagationMode) {\n deleteDocument(identifier: $identifier, propagate: $propagate)\n }\n`;\nexport const DeleteDocumentsDocument = gql`\n mutation DeleteDocuments(\n $identifiers: [String!]!\n $propagate: PropagationMode\n ) {\n deleteDocuments(identifiers: $identifiers, propagate: $propagate)\n }\n`;\nexport const DocumentChangesDocument = gql`\n subscription DocumentChanges(\n $search: SearchFilterInput\n $view: ViewFilterInput\n ) {\n documentChanges(search: $search, view: $view) {\n type\n documents {\n ...PHDocumentFields\n }\n context {\n parentId\n childId\n }\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const JobChangesDocument = gql`\n subscription JobChanges($jobId: String!) {\n jobChanges(jobId: $jobId) {\n jobId\n status\n result\n error\n }\n }\n`;\nexport const PollSyncEnvelopesDocument = gql`\n query PollSyncEnvelopes(\n $channelId: String!\n $outboxAck: Int!\n $outboxLatest: Int!\n ) {\n pollSyncEnvelopes(\n channelId: $channelId\n outboxAck: $outboxAck\n outboxLatest: $outboxLatest\n ) {\n envelopes {\n type\n channelMeta {\n id\n }\n operations {\n operation {\n index\n timestampUtcMs\n hash\n skip\n error\n id\n action {\n id\n type\n timestampUtcMs\n input\n scope\n attachments {\n data\n mimeType\n hash\n extension\n fileName\n }\n context {\n signer {\n user {\n address\n networkId\n chainId\n }\n app {\n name\n key\n }\n signatures\n }\n }\n }\n }\n context {\n documentId\n documentType\n scope\n branch\n }\n }\n cursor {\n remoteName\n cursorOrdinal\n lastSyncedAtUtcMs\n }\n key\n dependsOn\n }\n ackOrdinal\n deadLetters {\n documentId\n error\n }\n hasMore\n }\n }\n`;\nexport const TouchChannelDocument = gql`\n mutation TouchChannel($input: TouchChannelInput!) {\n touchChannel(input: $input) {\n success\n ackOrdinal\n }\n }\n`;\nexport const PushSyncEnvelopesDocument = gql`\n mutation PushSyncEnvelopes($envelopes: [SyncEnvelopeInput!]!) {\n pushSyncEnvelopes(envelopes: $envelopes)\n }\n`;\n\nexport type SdkFunctionWrapper = <T>(\n action: (requestHeaders?: Record<string, string>) => Promise<T>,\n operationName: string,\n operationType?: string,\n variables?: any,\n) => Promise<T>;\n\nconst defaultWrapper: SdkFunctionWrapper = (\n action,\n _operationName,\n _operationType,\n _variables,\n) => action();\n\nexport function getSdk(\n client: GraphQLClient,\n withWrapper: SdkFunctionWrapper = defaultWrapper,\n) {\n return {\n GetDocumentModels(\n variables?: GetDocumentModelsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentModelsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentModelsQuery>({\n document: GetDocumentModelsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocumentModels\",\n \"query\",\n variables,\n );\n },\n GetDocument(\n variables: GetDocumentQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentQuery>({\n document: GetDocumentDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocument\",\n \"query\",\n variables,\n );\n },\n GetDocumentWithOperations(\n variables: GetDocumentWithOperationsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentWithOperationsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentWithOperationsQuery>({\n document: GetDocumentWithOperationsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocumentWithOperations\",\n \"query\",\n variables,\n );\n },\n GetDocumentOutgoingRelationships(\n variables: GetDocumentOutgoingRelationshipsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentOutgoingRelationshipsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentOutgoingRelationshipsQuery>({\n document: GetDocumentOutgoingRelationshipsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocumentOutgoingRelationships\",\n \"query\",\n variables,\n );\n },\n GetDocumentIncomingRelationships(\n variables: GetDocumentIncomingRelationshipsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentIncomingRelationshipsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentIncomingRelationshipsQuery>({\n document: GetDocumentIncomingRelationshipsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocumentIncomingRelationships\",\n \"query\",\n variables,\n );\n },\n FindDocuments(\n variables?: FindDocumentsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<FindDocumentsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<FindDocumentsQuery>({\n document: FindDocumentsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"FindDocuments\",\n \"query\",\n variables,\n );\n },\n GetDocumentOperations(\n variables: GetDocumentOperationsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentOperationsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentOperationsQuery>({\n document: GetDocumentOperationsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocumentOperations\",\n \"query\",\n variables,\n );\n },\n GetJobStatus(\n variables: GetJobStatusQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetJobStatusQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetJobStatusQuery>({\n document: GetJobStatusDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetJobStatus\",\n \"query\",\n variables,\n );\n },\n CreateDocument(\n variables: CreateDocumentMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<CreateDocumentMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<CreateDocumentMutation>({\n document: CreateDocumentDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"CreateDocument\",\n \"mutation\",\n variables,\n );\n },\n CreateEmptyDocument(\n variables: CreateEmptyDocumentMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<CreateEmptyDocumentMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<CreateEmptyDocumentMutation>({\n document: CreateEmptyDocumentDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"CreateEmptyDocument\",\n \"mutation\",\n variables,\n );\n },\n MutateDocument(\n variables: MutateDocumentMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<MutateDocumentMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<MutateDocumentMutation>({\n document: MutateDocumentDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"MutateDocument\",\n \"mutation\",\n variables,\n );\n },\n MutateDocumentAsync(\n variables: MutateDocumentAsyncMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<MutateDocumentAsyncMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<MutateDocumentAsyncMutation>({\n document: MutateDocumentAsyncDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"MutateDocumentAsync\",\n \"mutation\",\n variables,\n );\n },\n RenameDocument(\n variables: RenameDocumentMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<RenameDocumentMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<RenameDocumentMutation>({\n document: RenameDocumentDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"RenameDocument\",\n \"mutation\",\n variables,\n );\n },\n AddRelationship(\n variables: AddRelationshipMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<AddRelationshipMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<AddRelationshipMutation>({\n document: AddRelationshipDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"AddRelationship\",\n \"mutation\",\n variables,\n );\n },\n RemoveRelationship(\n variables: RemoveRelationshipMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<RemoveRelationshipMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<RemoveRelationshipMutation>({\n document: RemoveRelationshipDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"RemoveRelationship\",\n \"mutation\",\n variables,\n );\n },\n MoveRelationship(\n variables: MoveRelationshipMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<MoveRelationshipMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<MoveRelationshipMutation>({\n document: MoveRelationshipDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"MoveRelationship\",\n \"mutation\",\n variables,\n );\n },\n DeleteDocument(\n variables: DeleteDocumentMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<DeleteDocumentMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<DeleteDocumentMutation>({\n document: DeleteDocumentDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"DeleteDocument\",\n \"mutation\",\n variables,\n );\n },\n DeleteDocuments(\n variables: DeleteDocumentsMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<DeleteDocumentsMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<DeleteDocumentsMutation>({\n document: DeleteDocumentsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"DeleteDocuments\",\n \"mutation\",\n variables,\n );\n },\n DocumentChanges(\n variables?: DocumentChangesSubscriptionVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<DocumentChangesSubscription> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<DocumentChangesSubscription>({\n document: DocumentChangesDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"DocumentChanges\",\n \"subscription\",\n variables,\n );\n },\n JobChanges(\n variables: JobChangesSubscriptionVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<JobChangesSubscription> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<JobChangesSubscription>({\n document: JobChangesDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"JobChanges\",\n \"subscription\",\n variables,\n );\n },\n PollSyncEnvelopes(\n variables: PollSyncEnvelopesQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<PollSyncEnvelopesQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<PollSyncEnvelopesQuery>({\n document: PollSyncEnvelopesDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"PollSyncEnvelopes\",\n \"query\",\n variables,\n );\n },\n TouchChannel(\n variables: TouchChannelMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<TouchChannelMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<TouchChannelMutation>({\n document: TouchChannelDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"TouchChannel\",\n \"mutation\",\n variables,\n );\n },\n PushSyncEnvelopes(\n variables: PushSyncEnvelopesMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<PushSyncEnvelopesMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<PushSyncEnvelopesMutation>({\n document: PushSyncEnvelopesDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"PushSyncEnvelopes\",\n \"mutation\",\n variables,\n );\n },\n };\n}\nexport type Sdk = ReturnType<typeof getSdk>;\n","import {\n GetDocumentDocument,\n GetDocumentOperationsDocument,\n type OperationsFilterInput,\n type PagingInput,\n type ViewFilterInput,\n} from \"./gen/schema.js\";\n\n/** Get the source string from a GraphQL document (string or DocumentNode). */\nfunction getDocumentSource(doc: unknown): string {\n return typeof doc === \"string\"\n ? doc\n : ((doc as { loc?: { source: { body: string } } }).loc?.source.body ?? \"\");\n}\n\n/**\n * Extract the inner selection set of a named field from a GraphQL document source.\n * Returns the `{ ... }` block including braces.\n */\nfunction extractSelectionSet(\n doc: unknown,\n fieldName: string,\n fallback: string,\n): string {\n const source = getDocumentSource(doc);\n\n const regex = new RegExp(\n `${fieldName}\\\\([^)]*\\\\)\\\\s*(\\\\{[\\\\s\\\\S]*\\\\})\\\\s*\\\\}`,\n );\n return regex.exec(source)?.[1] ?? fallback;\n}\n\n/**\n * Extract the query body and any fragment definitions from a GraphQL document.\n * Returns { body, fragments } where body is the content inside the query `{ ... }`\n * and fragments are any trailing fragment definitions.\n */\nfunction extractQueryParts(\n doc: unknown,\n fallbackBody: string,\n): { body: string; fragments: string } {\n const source = getDocumentSource(doc);\n\n // Match the query body: everything between the first `{` and its closing `}`\n // before any fragment definitions\n const queryMatch = /^[^{]*\\{([\\s\\S]*?)\\}\\s*(fragment[\\s\\S]*)?$/.exec(source);\n const body = queryMatch?.[1]?.trim() ?? fallbackBody;\n const fragments = queryMatch?.[2]?.trim() ?? \"\";\n\n return { body, fragments };\n}\n\nconst operationsSelectionSet = extractSelectionSet(\n GetDocumentOperationsDocument,\n \"documentOperations\",\n \"{ items { index } }\",\n);\n\nconst documentParts = extractQueryParts(\n GetDocumentDocument,\n \"document(identifier: $identifier) { document { id name documentType state revisionsList { scope revision } createdAtUtcIso lastModifiedAtUtcIso } childIds }\",\n);\n\n/**\n * Build a single GraphQL query that fetches documentOperations for\n * multiple filters using aliases. Each filter gets its own alias\n * (`scope_0`, `scope_1`, …) so all scopes are fetched in one HTTP request.\n */\nexport function buildBatchOperationsQuery(\n filters: OperationsFilterInput[],\n pagings: (PagingInput | undefined | null)[],\n) {\n const varDefs = filters\n .flatMap((_, i) => [\n `$filter_${i}: OperationsFilterInput!`,\n `$paging_${i}: PagingInput`,\n ])\n .join(\", \");\n\n const fields = filters\n .map(\n (_, i) =>\n `scope_${i}: documentOperations(filter: $filter_${i}, paging: $paging_${i}) ${operationsSelectionSet}`,\n )\n .join(\"\\n \");\n\n const query = `query BatchGetDocumentOperations(${varDefs}) {\n ${fields}\n }`;\n\n const variables: Record<string, unknown> = {};\n for (let i = 0; i < filters.length; i++) {\n variables[`filter_${i}`] = filters[i];\n variables[`paging_${i}`] = pagings[i] ?? null;\n }\n\n return { query, variables };\n}\n\n/**\n * Build a single GraphQL query that fetches a document AND\n * documentOperations for multiple filters, all in one HTTP request.\n */\nexport function buildBatchDocumentWithOperationsQuery(\n identifier: string,\n view: ViewFilterInput | undefined,\n filters: OperationsFilterInput[],\n pagings: (PagingInput | undefined)[],\n) {\n const docVarDefs = \"$identifier: String!, $view: ViewFilterInput\";\n const opsVarDefs = filters\n .flatMap((_, i) => [\n `$filter_${i}: OperationsFilterInput!`,\n `$paging_${i}: PagingInput`,\n ])\n .join(\", \");\n\n const opsFields = filters\n .map(\n (_, i) =>\n `scope_${i}: documentOperations(filter: $filter_${i}, paging: $paging_${i}) ${operationsSelectionSet}`,\n )\n .join(\"\\n \");\n\n const query = `query BatchGetDocumentWithOperations(${docVarDefs}, ${opsVarDefs}) {\n ${documentParts.body}\n ${opsFields}\n }\n ${documentParts.fragments}`;\n\n const variables: Record<string, unknown> = {\n identifier,\n view: view ?? null,\n };\n for (let i = 0; i < filters.length; i++) {\n variables[`filter_${i}`] = filters[i];\n variables[`paging_${i}`] = pagings[i] ?? null;\n }\n\n return { query, variables };\n}\n","import { GraphQLClient } from \"graphql-request\";\nimport {\n buildBatchDocumentWithOperationsQuery,\n buildBatchOperationsQuery,\n} from \"./batch-queries.js\";\nimport {\n getSdk,\n type GetDocumentOperationsQuery,\n type GetDocumentQuery,\n type OperationsFilterInput,\n type PagingInput,\n type SdkFunctionWrapper,\n type ViewFilterInput,\n} from \"./gen/schema.js\";\nimport type { ReactorGraphQLClient } from \"./types.js\";\n\nexport type { ReactorGraphQLClient } from \"./types.js\";\n\ntype DocumentOperationsPage = GetDocumentOperationsQuery[\"documentOperations\"];\n\ntype DocumentResult = NonNullable<GetDocumentQuery[\"document\"]>;\n\n/**\n * Creates a GraphQL client for the Reactor Subgraph API.\n * @param urlOrGQLClient The URL of the GraphQL API or a GraphQL client instance.\n * @param middleware An optional middleware function to wrap the GraphQL client calls.\n * @returns A GraphQL client for the Reactor Subgraph API.\n */\nexport function createClient(\n urlOrGQLClient: string | GraphQLClient,\n middleware?: SdkFunctionWrapper,\n): ReactorGraphQLClient {\n const client =\n typeof urlOrGQLClient === \"string\"\n ? new GraphQLClient(urlOrGQLClient)\n : urlOrGQLClient;\n\n // The hand-written batch methods below call `client.request` directly,\n // bypassing the middleware that `getSdk` applies. Wrap them in the same\n // shape so auth/logging/tracing middleware runs for batch calls too.\n const runWithMiddleware = async <T>(\n operationName: string,\n run: (requestHeaders?: Record<string, string>) => Promise<T>,\n ): Promise<T> => {\n if (!middleware) return run();\n return middleware(run, operationName, \"query\");\n };\n\n return {\n ...getSdk(client, middleware),\n\n /**\n * Fetch documentOperations for multiple filters in a single HTTP request\n * using GraphQL aliases. Each filter has its own paging parameters.\n * Returns one result page per filter, in order.\n */\n async BatchGetDocumentOperations(\n filters: OperationsFilterInput[],\n pagings: (PagingInput | undefined | null)[],\n ): Promise<DocumentOperationsPage[]> {\n const { query, variables } = buildBatchOperationsQuery(filters, pagings);\n const data = await runWithMiddleware(\n \"BatchGetDocumentOperations\",\n (requestHeaders) =>\n client.request<Record<string, DocumentOperationsPage>>(\n query,\n variables,\n requestHeaders,\n ),\n );\n return filters.map((_, i) => data[`scope_${i}`]);\n },\n\n /**\n * Fetch a document AND documentOperations for multiple filters\n * in a single HTTP request. Combines GetDocument + BatchGetDocumentOperations.\n */\n async BatchGetDocumentWithOperations(\n identifier: string,\n view: ViewFilterInput | undefined,\n filters: OperationsFilterInput[],\n pagings: (PagingInput | undefined)[],\n ): Promise<{\n document: DocumentResult | null;\n operations: DocumentOperationsPage[];\n }> {\n const { query, variables } = buildBatchDocumentWithOperationsQuery(\n identifier,\n view,\n filters,\n pagings,\n );\n const data = await runWithMiddleware(\n \"BatchGetDocumentWithOperations\",\n (requestHeaders) =>\n client.request<\n Record<string, unknown> & { document?: DocumentResult }\n >(query, variables, requestHeaders),\n );\n return {\n document: data.document ?? null,\n operations: filters.map(\n (_, i) => data[`scope_${i}`] as DocumentOperationsPage,\n ),\n };\n },\n };\n}\n"],"mappings":"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"}
|