@ensforge/react 0.0.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/LICENSE +201 -0
- package/README.md +87 -0
- package/dist/atoms/batch.d.ts +14 -0
- package/dist/atoms/batch.d.ts.map +1 -0
- package/dist/atoms/batch.js +16 -0
- package/dist/atoms/batch.js.map +1 -0
- package/dist/atoms/capabilities.d.ts +531 -0
- package/dist/atoms/capabilities.d.ts.map +1 -0
- package/dist/atoms/capabilities.js +21 -0
- package/dist/atoms/capabilities.js.map +1 -0
- package/dist/atoms/dns.d.ts +75 -0
- package/dist/atoms/dns.d.ts.map +1 -0
- package/dist/atoms/dns.js +18 -0
- package/dist/atoms/dns.js.map +1 -0
- package/dist/atoms/events.d.ts +86 -0
- package/dist/atoms/events.d.ts.map +1 -0
- package/dist/atoms/events.js +11 -0
- package/dist/atoms/events.js.map +1 -0
- package/dist/atoms/generic.d.ts +14 -0
- package/dist/atoms/generic.d.ts.map +1 -0
- package/dist/atoms/generic.js +13 -0
- package/dist/atoms/generic.js.map +1 -0
- package/dist/atoms/migration.d.ts +171 -0
- package/dist/atoms/migration.d.ts.map +1 -0
- package/dist/atoms/migration.js +15 -0
- package/dist/atoms/migration.js.map +1 -0
- package/dist/atoms/mutation.d.ts +12 -0
- package/dist/atoms/mutation.d.ts.map +1 -0
- package/dist/atoms/mutation.js +11 -0
- package/dist/atoms/mutation.js.map +1 -0
- package/dist/atoms/name.d.ts +141 -0
- package/dist/atoms/name.d.ts.map +1 -0
- package/dist/atoms/name.js +22 -0
- package/dist/atoms/name.js.map +1 -0
- package/dist/atoms/ownership.d.ts +12 -0
- package/dist/atoms/ownership.d.ts.map +1 -0
- package/dist/atoms/ownership.js +14 -0
- package/dist/atoms/ownership.js.map +1 -0
- package/dist/atoms/permissions.d.ts +16 -0
- package/dist/atoms/permissions.d.ts.map +1 -0
- package/dist/atoms/permissions.js +18 -0
- package/dist/atoms/permissions.js.map +1 -0
- package/dist/atoms/query.d.ts +18 -0
- package/dist/atoms/query.d.ts.map +1 -0
- package/dist/atoms/query.js +30 -0
- package/dist/atoms/query.js.map +1 -0
- package/dist/atoms/records.d.ts +93 -0
- package/dist/atoms/records.d.ts.map +1 -0
- package/dist/atoms/records.js +34 -0
- package/dist/atoms/records.js.map +1 -0
- package/dist/atoms/registration.d.ts +253 -0
- package/dist/atoms/registration.d.ts.map +1 -0
- package/dist/atoms/registration.js +23 -0
- package/dist/atoms/registration.js.map +1 -0
- package/dist/atoms/resolution.d.ts +45 -0
- package/dist/atoms/resolution.d.ts.map +1 -0
- package/dist/atoms/resolution.js +20 -0
- package/dist/atoms/resolution.js.map +1 -0
- package/dist/atoms/reverse.d.ts +14 -0
- package/dist/atoms/reverse.d.ts.map +1 -0
- package/dist/atoms/reverse.js +13 -0
- package/dist/atoms/reverse.js.map +1 -0
- package/dist/atoms/stream.d.ts +11 -0
- package/dist/atoms/stream.d.ts.map +1 -0
- package/dist/atoms/stream.js +23 -0
- package/dist/atoms/stream.js.map +1 -0
- package/dist/atoms/subnames.d.ts +12 -0
- package/dist/atoms/subnames.d.ts.map +1 -0
- package/dist/atoms/subnames.js +14 -0
- package/dist/atoms/subnames.js.map +1 -0
- package/dist/atoms/wrapping.d.ts +13 -0
- package/dist/atoms/wrapping.d.ts.map +1 -0
- package/dist/atoms/wrapping.js +15 -0
- package/dist/atoms/wrapping.js.map +1 -0
- package/dist/atoms.d.ts +19 -0
- package/dist/atoms.js +20 -0
- package/dist/cache/invalidation.d.ts +18 -0
- package/dist/cache/invalidation.d.ts.map +1 -0
- package/dist/cache/invalidation.js +23 -0
- package/dist/cache/invalidation.js.map +1 -0
- package/dist/cache/prefetch.d.ts +10 -0
- package/dist/cache/prefetch.d.ts.map +1 -0
- package/dist/cache/prefetch.js +10 -0
- package/dist/cache/prefetch.js.map +1 -0
- package/dist/cache/registry.d.ts +10 -0
- package/dist/cache/registry.d.ts.map +1 -0
- package/dist/cache/registry.js +12 -0
- package/dist/cache/registry.js.map +1 -0
- package/dist/cache.d.ts +4 -0
- package/dist/cache.js +5 -0
- package/dist/hooks/batch.d.ts +23 -0
- package/dist/hooks/batch.d.ts.map +1 -0
- package/dist/hooks/batch.js +25 -0
- package/dist/hooks/batch.js.map +1 -0
- package/dist/hooks/capabilities.d.ts +2084 -0
- package/dist/hooks/capabilities.d.ts.map +1 -0
- package/dist/hooks/capabilities.js +39 -0
- package/dist/hooks/capabilities.js.map +1 -0
- package/dist/hooks/dns.d.ts +262 -0
- package/dist/hooks/dns.d.ts.map +1 -0
- package/dist/hooks/dns.js +28 -0
- package/dist/hooks/dns.js.map +1 -0
- package/dist/hooks/events.d.ts +275 -0
- package/dist/hooks/events.d.ts.map +1 -0
- package/dist/hooks/events.js +16 -0
- package/dist/hooks/events.js.map +1 -0
- package/dist/hooks/generic.d.ts +12 -0
- package/dist/hooks/generic.d.ts.map +1 -0
- package/dist/hooks/generic.js +13 -0
- package/dist/hooks/generic.js.map +1 -0
- package/dist/hooks/index.d.ts +20 -0
- package/dist/hooks/migration.d.ts +653 -0
- package/dist/hooks/migration.d.ts.map +1 -0
- package/dist/hooks/migration.js +23 -0
- package/dist/hooks/migration.js.map +1 -0
- package/dist/hooks/name.d.ts +522 -0
- package/dist/hooks/name.d.ts.map +1 -0
- package/dist/hooks/name.js +41 -0
- package/dist/hooks/name.js.map +1 -0
- package/dist/hooks/ownership.d.ts +17 -0
- package/dist/hooks/ownership.d.ts.map +1 -0
- package/dist/hooks/ownership.js +19 -0
- package/dist/hooks/ownership.js.map +1 -0
- package/dist/hooks/permissions.d.ts +18 -0
- package/dist/hooks/permissions.d.ts.map +1 -0
- package/dist/hooks/permissions.js +21 -0
- package/dist/hooks/permissions.js.map +1 -0
- package/dist/hooks/records.d.ts +291 -0
- package/dist/hooks/records.d.ts.map +1 -0
- package/dist/hooks/records.js +49 -0
- package/dist/hooks/records.js.map +1 -0
- package/dist/hooks/registration.d.ts +960 -0
- package/dist/hooks/registration.d.ts.map +1 -0
- package/dist/hooks/registration.js +34 -0
- package/dist/hooks/registration.js.map +1 -0
- package/dist/hooks/resolution.d.ts +137 -0
- package/dist/hooks/resolution.d.ts.map +1 -0
- package/dist/hooks/resolution.js +31 -0
- package/dist/hooks/resolution.js.map +1 -0
- package/dist/hooks/reverse.d.ts +28 -0
- package/dist/hooks/reverse.d.ts.map +1 -0
- package/dist/hooks/reverse.js +18 -0
- package/dist/hooks/reverse.js.map +1 -0
- package/dist/hooks/subnames.d.ts +14 -0
- package/dist/hooks/subnames.d.ts.map +1 -0
- package/dist/hooks/subnames.js +17 -0
- package/dist/hooks/subnames.js.map +1 -0
- package/dist/hooks/use-cache.d.ts +11 -0
- package/dist/hooks/use-cache.d.ts.map +1 -0
- package/dist/hooks/use-cache.js +20 -0
- package/dist/hooks/use-cache.js.map +1 -0
- package/dist/hooks/use-mutation.d.ts +8 -0
- package/dist/hooks/use-mutation.d.ts.map +1 -0
- package/dist/hooks/use-mutation.js +79 -0
- package/dist/hooks/use-mutation.js.map +1 -0
- package/dist/hooks/use-query.d.ts +10 -0
- package/dist/hooks/use-query.d.ts.map +1 -0
- package/dist/hooks/use-query.js +81 -0
- package/dist/hooks/use-query.js.map +1 -0
- package/dist/hooks/use-suspense-query.d.ts +15 -0
- package/dist/hooks/use-suspense-query.d.ts.map +1 -0
- package/dist/hooks/use-suspense-query.js +22 -0
- package/dist/hooks/use-suspense-query.js.map +1 -0
- package/dist/hooks/wrapping.d.ts +19 -0
- package/dist/hooks/wrapping.d.ts.map +1 -0
- package/dist/hooks/wrapping.js +21 -0
- package/dist/hooks/wrapping.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +30 -0
- package/dist/internal/action-types.d.ts +8 -0
- package/dist/internal/action-types.d.ts.map +1 -0
- package/dist/internal/runtime.js +9 -0
- package/dist/internal/runtime.js.map +1 -0
- package/dist/mutation/options.d.ts +12 -0
- package/dist/mutation/options.d.ts.map +1 -0
- package/dist/mutation/result.d.ts +25 -0
- package/dist/mutation/result.d.ts.map +1 -0
- package/dist/provider/context.d.ts +9 -0
- package/dist/provider/context.d.ts.map +1 -0
- package/dist/provider/context.js +15 -0
- package/dist/provider/context.js.map +1 -0
- package/dist/provider/ensforge-provider.d.ts +22 -0
- package/dist/provider/ensforge-provider.d.ts.map +1 -0
- package/dist/provider/ensforge-provider.js +31 -0
- package/dist/provider/ensforge-provider.js.map +1 -0
- package/dist/provider/hooks.d.ts +6 -0
- package/dist/provider/hooks.d.ts.map +1 -0
- package/dist/provider/hooks.js +13 -0
- package/dist/provider/hooks.js.map +1 -0
- package/dist/provider/index.d.ts +4 -0
- package/dist/query/keys.d.ts +6 -0
- package/dist/query/keys.d.ts.map +1 -0
- package/dist/query/keys.js +25 -0
- package/dist/query/keys.js.map +1 -0
- package/dist/query/options.d.ts +31 -0
- package/dist/query/options.d.ts.map +1 -0
- package/dist/query/options.js +19 -0
- package/dist/query/options.js.map +1 -0
- package/dist/query/result.d.ts +25 -0
- package/dist/query/result.d.ts.map +1 -0
- package/dist/query/result.js +19 -0
- package/dist/query/result.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-query.js","names":[],"sources":["../../src/hooks/use-query.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext, useEffect, useRef } from \"react\";\n\nimport { useAtomValue, RegistryContext } from \"@effect/atom-react\";\nimport { Effect, Option } from \"effect\";\nimport { AsyncResult, Atom, AtomRegistry } from \"effect/unstable/reactivity\";\n\nimport type { EnsQueryAtomFactory } from \"../atoms/query.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\nimport {\n resolveEnsQueryOptions,\n type EnsQueryOptions,\n type UseEnsQueryParameters,\n} from \"../query/options.js\";\nimport { errorFromCause, resultUpdatedAt, type EnsQueryResult } from \"../query/result.js\";\n\nconst disabledAtom = Atom.make(AsyncResult.initial<unknown, unknown>());\n\nconst splitQueryParameters = <Parameters extends object, Success, Selected>(\n input: UseEnsQueryParameters<Parameters, Success, Selected>,\n): readonly [Parameters, EnsQueryOptions<Success, Selected> | undefined] => {\n const { query, ...parameters } = input;\n return [parameters as Parameters, query];\n};\n\nexport const useQueryAtom = <Parameters extends object, Success, Failure, Selected = Success>(\n factory: EnsQueryAtomFactory<Parameters, Success, Failure>,\n input: UseEnsQueryParameters<Parameters, Success, Selected>,\n): EnsQueryResult<Selected, Failure> => {\n const { defaults, sdk } = useEnsforgeContext();\n const registry = useContext(RegistryContext);\n const [parameters, query] = splitQueryParameters(input);\n const options = resolveEnsQueryOptions(defaults.queries, query);\n const enabled = query?.enabled ?? true;\n const atom = factory(sdk, parameters, options);\n const activeAtom = (enabled ? atom : disabledAtom) as Atom.Atom<\n AsyncResult.AsyncResult<Success, Failure>\n >;\n const rawResult = useAtomValue(activeAtom);\n const result: AsyncResult.AsyncResult<Selected, Failure> =\n query?.select === undefined\n ? (rawResult as unknown as AsyncResult.AsyncResult<Selected, Failure>)\n : AsyncResult.map(rawResult, query.select);\n const staleCheckedAtom = useRef<Atom.Atom<unknown> | undefined>(undefined);\n\n useEffect(() => {\n if (staleCheckedAtom.current === atom) return;\n staleCheckedAtom.current = atom;\n if (!enabled || !AsyncResult.isSuccess(rawResult)) return;\n if (Date.now() - rawResult.timestamp >= options.staleTime) registry.refresh(atom);\n }, [atom, enabled, options.staleTime, rawResult, registry]);\n\n useEffect(() => {\n if (!enabled || options.refetchInterval === false) return;\n const interval = globalThis.setInterval(() => registry.refresh(atom), options.refetchInterval);\n return () => globalThis.clearInterval(interval);\n }, [atom, enabled, options.refetchInterval, registry]);\n\n const refetchEffect = (): Effect.Effect<Selected, Failure> => {\n const effect = Effect.sync(() => registry.refresh(atom)).pipe(\n Effect.andThen(\n AtomRegistry.getResult(registry, atom, {\n suspendOnWaiting: true,\n }),\n ),\n );\n return query?.select === undefined\n ? (effect as unknown as Effect.Effect<Selected, Failure>)\n : effect.pipe(Effect.map(query.select));\n };\n\n const cause = Option.getOrNull(AsyncResult.cause(result));\n const data = Option.getOrUndefined(AsyncResult.value(result));\n const isPending = AsyncResult.isInitial(result);\n const isError = AsyncResult.isFailure(result);\n const isSuccess = AsyncResult.isSuccess(result);\n\n return {\n cause,\n data,\n error: cause === null ? null : errorFromCause(cause),\n fetchStatus: result.waiting ? \"fetching\" : \"idle\",\n isError,\n isFetching: result.waiting,\n isLoading: isPending && result.waiting,\n isPending,\n isRefetching: !isPending && result.waiting,\n isSuccess,\n refetch: () => Effect.runPromise(refetchEffect()),\n refetchEffect,\n result,\n status: isPending ? \"pending\" : isError ? \"error\" : \"success\",\n updatedAt: resultUpdatedAt(result),\n };\n};\n\nexport const makeQueryHook =\n <Parameters extends object, Success, Failure>(\n factory: EnsQueryAtomFactory<Parameters, Success, Failure>,\n ) =>\n <Selected = Success>(\n input: UseEnsQueryParameters<Parameters, Success, Selected>,\n ): EnsQueryResult<Selected, Failure> =>\n useQueryAtom(factory, input);\n\nexport const prefetchQueryAtom = <Success, Failure>(\n registry: AtomRegistry.AtomRegistry,\n atom: Atom.Atom<AsyncResult.AsyncResult<Success, Failure>>,\n signal?: AbortSignal,\n): Promise<Success> =>\n Effect.runPromise(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true }), {\n signal,\n });\n"],"mappings":";;;;;;;;;;;AAiBA,MAAM,eAAe,KAAK,KAAK,YAAY,QAA0B,CAAC;AAEtE,MAAM,wBACJ,UAC0E;CAC1E,MAAM,EAAE,OAAO,GAAG,eAAe;CACjC,OAAO,CAAC,YAA0B,KAAK;AACzC;AAEA,MAAa,gBACX,SACA,UACsC;CACtC,MAAM,EAAE,UAAU,QAAQ,mBAAmB;CAC7C,MAAM,WAAW,WAAW,eAAe;CAC3C,MAAM,CAAC,YAAY,SAAS,qBAAqB,KAAK;CACtD,MAAM,UAAU,uBAAuB,SAAS,SAAS,KAAK;CAC9D,MAAM,UAAU,OAAO,WAAW;CAClC,MAAM,OAAO,QAAQ,KAAK,YAAY,OAAO;CAI7C,MAAM,YAAY,aAHE,UAAU,OAAO,YAGI;CACzC,MAAM,SACJ,OAAO,WAAW,SACb,YACD,YAAY,IAAI,WAAW,MAAM,MAAM;CAC7C,MAAM,mBAAmB,OAAuC,MAAS;CAEzE,gBAAgB;EACd,IAAI,iBAAiB,YAAY,MAAM;EACvC,iBAAiB,UAAU;EAC3B,IAAI,CAAC,WAAW,CAAC,YAAY,UAAU,SAAS,GAAG;EACnD,IAAI,KAAK,IAAI,IAAI,UAAU,aAAa,QAAQ,WAAW,SAAS,QAAQ,IAAI;CAClF,GAAG;EAAC;EAAM;EAAS,QAAQ;EAAW;EAAW;CAAQ,CAAC;CAE1D,gBAAgB;EACd,IAAI,CAAC,WAAW,QAAQ,oBAAoB,OAAO;EACnD,MAAM,WAAW,WAAW,kBAAkB,SAAS,QAAQ,IAAI,GAAG,QAAQ,eAAe;EAC7F,aAAa,WAAW,cAAc,QAAQ;CAChD,GAAG;EAAC;EAAM;EAAS,QAAQ;EAAiB;CAAQ,CAAC;CAErD,MAAM,sBAAwD;EAC5D,MAAM,SAAS,OAAO,WAAW,SAAS,QAAQ,IAAI,CAAC,CAAC,CAAC,KACvD,OAAO,QACL,aAAa,UAAU,UAAU,MAAM,EACrC,kBAAkB,KACpB,CAAC,CACH,CACF;EACA,OAAO,OAAO,WAAW,SACpB,SACD,OAAO,KAAK,OAAO,IAAI,MAAM,MAAM,CAAC;CAC1C;CAEA,MAAM,QAAQ,OAAO,UAAU,YAAY,MAAM,MAAM,CAAC;CACxD,MAAM,OAAO,OAAO,eAAe,YAAY,MAAM,MAAM,CAAC;CAC5D,MAAM,YAAY,YAAY,UAAU,MAAM;CAC9C,MAAM,UAAU,YAAY,UAAU,MAAM;CAC5C,MAAM,YAAY,YAAY,UAAU,MAAM;CAE9C,OAAO;EACL;EACA;EACA,OAAO,UAAU,OAAO,OAAO,eAAe,KAAK;EACnD,aAAa,OAAO,UAAU,aAAa;EAC3C;EACA,YAAY,OAAO;EACnB,WAAW,aAAa,OAAO;EAC/B;EACA,cAAc,CAAC,aAAa,OAAO;EACnC;EACA,eAAe,OAAO,WAAW,cAAc,CAAC;EAChD;EACA;EACA,QAAQ,YAAY,YAAY,UAAU,UAAU;EACpD,WAAW,gBAAgB,MAAM;CACnC;AACF;AAEA,MAAa,iBAET,aAGA,UAEA,aAAa,SAAS,KAAK;AAE/B,MAAa,qBACX,UACA,MACA,WAEA,OAAO,WAAW,aAAa,UAAU,UAAU,MAAM,EAAE,kBAAkB,KAAK,CAAC,GAAG,EACpF,OACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EnsQueryAtomFactory } from "../atoms/query.js";
|
|
2
|
+
import { EnsQueryOptions } from "../query/options.js";
|
|
3
|
+
//#region src/hooks/use-suspense-query.d.ts
|
|
4
|
+
type UseEnsSuspenseQueryParameters<Parameters, Success, Selected = Success> = Parameters & {
|
|
5
|
+
readonly query?: Omit<EnsQueryOptions<Success, Selected>, "enabled">;
|
|
6
|
+
};
|
|
7
|
+
interface EnsSuspenseQueryResult<Success> {
|
|
8
|
+
readonly data: Success;
|
|
9
|
+
readonly isFetching: boolean;
|
|
10
|
+
readonly updatedAt: number;
|
|
11
|
+
}
|
|
12
|
+
declare const makeSuspenseQueryHook: <Parameters extends object, Success, Failure>(factory: EnsQueryAtomFactory<Parameters, Success, Failure>) => <Selected = Success>(input: UseEnsSuspenseQueryParameters<Parameters, Success, Selected>) => EnsSuspenseQueryResult<Selected>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { EnsSuspenseQueryResult, UseEnsSuspenseQueryParameters, makeSuspenseQueryHook };
|
|
15
|
+
//# sourceMappingURL=use-suspense-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-suspense-query.d.ts","names":[],"sources":["../../src/hooks/use-suspense-query.ts"],"mappings":";;;KAYY,8BAA8B,YAAY,SAAS,WAAW,WAAW;WAC1E,QAAQ,KAAK,gBAAgB,SAAS;;UAGhC,uBAAuB;WAC7B,MAAM;WACN;WACA;;cAGE,wBACV,2BAA2B,SAAS,SACnC,SAAS,oBAAoB,YAAY,SAAS,cAEnD,WAAW,SACV,OAAO,8BAA8B,YAAY,SAAS,cACzD,uBAAuB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useEnsforgeContext } from "../provider/context.js";
|
|
4
|
+
import { resolveEnsQueryOptions } from "../query/options.js";
|
|
5
|
+
import { useAtomSuspense } from "@effect/atom-react";
|
|
6
|
+
|
|
7
|
+
//#region src/hooks/use-suspense-query.ts
|
|
8
|
+
const makeSuspenseQueryHook = (factory) => (input) => {
|
|
9
|
+
const { defaults, sdk } = useEnsforgeContext();
|
|
10
|
+
const { query, ...parameters } = input;
|
|
11
|
+
const atom = factory(sdk, parameters, resolveEnsQueryOptions(defaults.queries, query));
|
|
12
|
+
const result = useAtomSuspense(atom, { suspendOnWaiting: false });
|
|
13
|
+
return {
|
|
14
|
+
data: query?.select === void 0 ? result.value : query.select(result.value),
|
|
15
|
+
isFetching: result.waiting,
|
|
16
|
+
updatedAt: result.timestamp
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { makeSuspenseQueryHook };
|
|
22
|
+
//# sourceMappingURL=use-suspense-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-suspense-query.js","names":[],"sources":["../../src/hooks/use-suspense-query.ts"],"sourcesContent":["\"use client\";\n\nimport { useAtomSuspense } from \"@effect/atom-react\";\n\nimport type { EnsQueryAtomFactory } from \"../atoms/query.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\nimport {\n resolveEnsQueryOptions,\n type EnsQueryOptions,\n type UseEnsQueryParameters,\n} from \"../query/options.js\";\n\nexport type UseEnsSuspenseQueryParameters<Parameters, Success, Selected = Success> = Parameters & {\n readonly query?: Omit<EnsQueryOptions<Success, Selected>, \"enabled\">;\n};\n\nexport interface EnsSuspenseQueryResult<Success> {\n readonly data: Success;\n readonly isFetching: boolean;\n readonly updatedAt: number;\n}\n\nexport const makeSuspenseQueryHook =\n <Parameters extends object, Success, Failure>(\n factory: EnsQueryAtomFactory<Parameters, Success, Failure>,\n ) =>\n <Selected = Success>(\n input: UseEnsSuspenseQueryParameters<Parameters, Success, Selected>,\n ): EnsSuspenseQueryResult<Selected> => {\n const { defaults, sdk } = useEnsforgeContext();\n const { query, ...parameters } = input as UseEnsQueryParameters<Parameters, Success, Selected>;\n const options = resolveEnsQueryOptions(defaults.queries, query);\n const atom = factory(sdk, parameters as Parameters, options);\n const result = useAtomSuspense(atom, { suspendOnWaiting: false });\n\n return {\n data:\n query?.select === undefined\n ? (result.value as unknown as Selected)\n : query.select(result.value),\n isFetching: result.waiting,\n updatedAt: result.timestamp,\n };\n };\n"],"mappings":";;;;;;;AAsBA,MAAa,yBAET,aAGA,UACqC;CACrC,MAAM,EAAE,UAAU,QAAQ,mBAAmB;CAC7C,MAAM,EAAE,OAAO,GAAG,eAAe;CAEjC,MAAM,OAAO,QAAQ,KAAK,YADV,uBAAuB,SAAS,SAAS,KACC,CAAC;CAC3D,MAAM,SAAS,gBAAgB,MAAM,EAAE,kBAAkB,MAAM,CAAC;CAEhE,OAAO;EACL,MACE,OAAO,WAAW,SACb,OAAO,QACR,MAAM,OAAO,OAAO,KAAK;EAC/B,YAAY,OAAO;EACnB,WAAW,OAAO;CACpB;AACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UseEnsQueryParameters } from "../query/options.js";
|
|
2
|
+
import { EnsSuspenseQueryResult, UseEnsSuspenseQueryParameters } from "./use-suspense-query.js";
|
|
3
|
+
import { EnsQueryResult } from "../query/result.js";
|
|
4
|
+
import { EnsMutationOptions } from "../mutation/options.js";
|
|
5
|
+
import { EnsMutationResult } from "../mutation/result.js";
|
|
6
|
+
import "../index.js";
|
|
7
|
+
//#region src/hooks/wrapping.d.ts
|
|
8
|
+
declare const useFuses: <Selected = import("@ensforge/core").GetFusesResult>(input: UseEnsQueryParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetFusesResult, Selected>) => EnsQueryResult<Selected, import("@ensforge/core").GetCanonicalResourceError>;
|
|
9
|
+
declare const useFusesSuspense: <Selected = import("@ensforge/core").GetFusesResult>(input: UseEnsSuspenseQueryParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetFusesResult, Selected>) => EnsSuspenseQueryResult<Selected>;
|
|
10
|
+
declare const useWrapperExpiry: <Selected = import("@ensforge/core").GetWrapperExpiryResult>(input: UseEnsQueryParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetWrapperExpiryResult, Selected>) => EnsQueryResult<Selected, import("@ensforge/core").GetCanonicalResourceError>;
|
|
11
|
+
declare const useWrapperExpirySuspense: <Selected = import("@ensforge/core").GetWrapperExpiryResult>(input: UseEnsSuspenseQueryParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetWrapperExpiryResult, Selected>) => EnsSuspenseQueryResult<Selected>;
|
|
12
|
+
declare const useExtendSubnameExpiry: (options?: EnsMutationOptions<import("@ensforge/core").ExtendSubnameExpiryParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").ExtendSubnameExpiryParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
|
|
13
|
+
declare const useSetChildFuses: (options?: EnsMutationOptions<import("@ensforge/core").SetChildFusesParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").SetChildFusesParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
|
|
14
|
+
declare const useSetFuses: (options?: EnsMutationOptions<import("@ensforge/core").SetFusesParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").SetFusesParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
|
|
15
|
+
declare const useUnwrapName: (options?: EnsMutationOptions<import("@ensforge/core").UnwrapNameParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").UnwrapNameParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
|
|
16
|
+
declare const useWrapName: (options?: EnsMutationOptions<import("@ensforge/core").WrapNameParameters, import("@ensforge/core").WrapNameResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").WrapNameParameters, import("@ensforge/core").WrapNameResult, import("@ensforge/core").WriteError>;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { useExtendSubnameExpiry, useFuses, useFusesSuspense, useSetChildFuses, useSetFuses, useUnwrapName, useWrapName, useWrapperExpiry, useWrapperExpirySuspense };
|
|
19
|
+
//# sourceMappingURL=wrapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrapping.d.ts","names":[],"sources":["../../src/hooks/wrapping.ts"],"mappings":";;;;;;;cAea,WAAQ,oCAAA,gBAAA,OAAA,+CAAA,gDAAA,gBAAA,cAAA,eAAA,mCAAA;cACR,mBAAgB,oCAAA,gBAAA,OAAA,uDAAA,gDAAA,gBAAA,cAAA,uBAAA;cAChB,mBAAgB,oCAAA,wBAAA,OAAA,+CAAA,gDAAA,wBAAA,cAAA,eAAA,mCAAA;cAChB,2BAAwB,oCAAA,wBAAA,OAAA,uDAAA,gDAAA,wBAAA,cAAA,uBAAA;cAExB,yBAAsB,UAAtB,4CAAsB,wDAAA,8CAAA,gBAAA,2CAAA,wDAAA,8CAAA;cACtB,mBAAgB,UAAhB,4CAAgB,kDAAA,8CAAA,gBAAA,2CAAA,kDAAA,8CAAA;cAChB,cAAW,UAAX,4CAAW,6CAAA,8CAAA,gBAAA,2CAAA,6CAAA,8CAAA;cACX,gBAAa,UAAb,4CAAa,+CAAA,8CAAA,gBAAA,2CAAA,+CAAA,8CAAA;cACb,cAAW,UAAX,4CAAW,6CAAA,yCAAA,gBAAA,2CAAA,6CAAA,yCAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { makeMutationHook } from "./use-mutation.js";
|
|
4
|
+
import { makeQueryHook } from "./use-query.js";
|
|
5
|
+
import { makeSuspenseQueryHook } from "./use-suspense-query.js";
|
|
6
|
+
import { createExtendSubnameExpiryMutationAtom, createSetChildFusesMutationAtom, createSetFusesMutationAtom, createUnwrapNameMutationAtom, createWrapNameMutationAtom, getFusesAtom, getWrapperExpiryAtom } from "../atoms/wrapping.js";
|
|
7
|
+
|
|
8
|
+
//#region src/hooks/wrapping.ts
|
|
9
|
+
const useFuses = makeQueryHook(getFusesAtom);
|
|
10
|
+
const useFusesSuspense = makeSuspenseQueryHook(getFusesAtom);
|
|
11
|
+
const useWrapperExpiry = makeQueryHook(getWrapperExpiryAtom);
|
|
12
|
+
const useWrapperExpirySuspense = makeSuspenseQueryHook(getWrapperExpiryAtom);
|
|
13
|
+
const useExtendSubnameExpiry = makeMutationHook(createExtendSubnameExpiryMutationAtom);
|
|
14
|
+
const useSetChildFuses = makeMutationHook(createSetChildFusesMutationAtom);
|
|
15
|
+
const useSetFuses = makeMutationHook(createSetFusesMutationAtom);
|
|
16
|
+
const useUnwrapName = makeMutationHook(createUnwrapNameMutationAtom);
|
|
17
|
+
const useWrapName = makeMutationHook(createWrapNameMutationAtom);
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { useExtendSubnameExpiry, useFuses, useFusesSuspense, useSetChildFuses, useSetFuses, useUnwrapName, useWrapName, useWrapperExpiry, useWrapperExpirySuspense };
|
|
21
|
+
//# sourceMappingURL=wrapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrapping.js","names":[],"sources":["../../src/hooks/wrapping.ts"],"sourcesContent":["\"use client\";\n\nimport {\n getFusesAtom,\n getWrapperExpiryAtom,\n createExtendSubnameExpiryMutationAtom,\n createSetChildFusesMutationAtom,\n createSetFusesMutationAtom,\n createUnwrapNameMutationAtom,\n createWrapNameMutationAtom,\n} from \"../atoms/wrapping.js\";\nimport { makeMutationHook } from \"./use-mutation.js\";\nimport { makeQueryHook } from \"./use-query.js\";\nimport { makeSuspenseQueryHook } from \"./use-suspense-query.js\";\n\nexport const useFuses = makeQueryHook(getFusesAtom);\nexport const useFusesSuspense = makeSuspenseQueryHook(getFusesAtom);\nexport const useWrapperExpiry = makeQueryHook(getWrapperExpiryAtom);\nexport const useWrapperExpirySuspense = makeSuspenseQueryHook(getWrapperExpiryAtom);\n\nexport const useExtendSubnameExpiry = makeMutationHook(createExtendSubnameExpiryMutationAtom);\nexport const useSetChildFuses = makeMutationHook(createSetChildFusesMutationAtom);\nexport const useSetFuses = makeMutationHook(createSetFusesMutationAtom);\nexport const useUnwrapName = makeMutationHook(createUnwrapNameMutationAtom);\nexport const useWrapName = makeMutationHook(createWrapNameMutationAtom);\n"],"mappings":";;;;;;;;AAeA,MAAa,WAAW,cAAc,YAAY;AAClD,MAAa,mBAAmB,sBAAsB,YAAY;AAClE,MAAa,mBAAmB,cAAc,oBAAoB;AAClE,MAAa,2BAA2B,sBAAsB,oBAAoB;AAElF,MAAa,yBAAyB,iBAAiB,qCAAqC;AAC5F,MAAa,mBAAmB,iBAAiB,+BAA+B;AAChF,MAAa,cAAc,iBAAiB,0BAA0B;AACtE,MAAa,gBAAgB,iBAAiB,4BAA4B;AAC1E,MAAa,cAAc,iBAAiB,0BAA0B"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { EnsforgeInvalidation, invalidateEnsforge, invalidateEnsforgeEffect, makeInvalidationKeys } from "./cache/invalidation.js";
|
|
2
|
+
import { prefetchEnsforge, prefetchEnsforgeEffect } from "./cache/prefetch.js";
|
|
3
|
+
import { CreateEnsforgeRegistryOptions, createEnsforgeRegistry } from "./cache/registry.js";
|
|
4
|
+
import "./cache.js";
|
|
5
|
+
import { EnsQueryDefaults, EnsQueryOptions, ResolvedEnsQueryOptions, UseEnsQueryParameters, defaultEnsQueryOptions } from "./query/options.js";
|
|
6
|
+
import { EnsSuspenseQueryResult, UseEnsSuspenseQueryParameters, makeSuspenseQueryHook } from "./hooks/use-suspense-query.js";
|
|
7
|
+
import { useCallsStatus, useCallsStatusSuspense, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, usePrepareCalls, usePrepareCallsSuspense, useResumeCalls, useSendCalls, useSimulateCalls, useSimulateCallsSuspense, useWalletCapabilities, useWalletCapabilitiesSuspense } from "./hooks/batch.js";
|
|
8
|
+
import { useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useOperatorApproval, useOperatorApprovalSuspense, useRecordPermissions, useRecordPermissionsSuspense, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useTokenApproval, useTokenApprovalSuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense } from "./hooks/capabilities.js";
|
|
9
|
+
import { useClaimDnsName, useDnsClaimStatus, useDnsClaimStatusSuspense, useDnsImportPlan, useDnsImportPlanSuspense, useDnsRecord, useDnsRecordSuspense, useDnsRecords, useDnsRecordsSuspense, useHasDnsRecords, useHasDnsRecordsSuspense, useImportDnsName, useSetDnsRecords, useSetZoneHash, useZoneHash, useZoneHashSuspense } from "./hooks/dns.js";
|
|
10
|
+
import { useEnsEvents, useEnsEventsSuspense, useNameHistory, useNameHistorySuspense, useWatchEnsEvents } from "./hooks/events.js";
|
|
11
|
+
import { useApproveMigration, useMigrateName, useMigrateNames, useMigrationEligibility, useMigrationEligibilitySuspense, useMigrationPlan, useMigrationPlanSuspense, useMigrationStatus, useMigrationStatusSuspense, useMigrationTarget, useMigrationTargetSuspense } from "./hooks/migration.js";
|
|
12
|
+
import { useCanonicalResource, useCanonicalResourceSuspense, useExpiry, useExpirySuspense, useIsAvailable, useIsAvailableSuspense, useIsMigrated, useIsMigratedSuspense, useIsRenewable, useIsRenewableSuspense, useIsReserved, useIsReservedSuspense, useIsWrapped, useIsWrappedSuspense, useManager, useManagerSuspense, useNameState, useNameStateSuspense, useNameStatus, useNameStatusSuspense, useOwner, useOwnerSuspense, useProtocol, useProtocolSuspense, useRegistrant, useRegistrantSuspense, useRegistry, useRegistrySuspense, useTokenId, useTokenIdSuspense } from "./hooks/name.js";
|
|
13
|
+
import { useReclaimName, useSetManager, useSetTtl, useTransferName, useTransferRegistrant, useTtl, useTtlSuspense } from "./hooks/ownership.js";
|
|
14
|
+
import { useApproveName, useClearNameApproval, useGrantRegistryRoles, useGrantResolverRoles, useGrantResolverRootRoles, useRevokeRegistryRoles, useRevokeResolverRoles, useRevokeResolverRootRoles, useSetOperatorApproval, useSetRecordPermissions, useSetResolverDelegateApproval } from "./hooks/permissions.js";
|
|
15
|
+
import { useAbi, useAbiSuspense, useAddress, useAddressSuspense, useAddresses, useAddressesSuspense, useAvatar, useAvatarSuspense, useClearAvatar, useClearRecords, useContentHash, useContentHashSuspense, useData, useDataSuspense, useInterface, useInterfaceSuspense, useNameRecord, useNameRecordSuspense, usePubkey, usePubkeySuspense, useSetAbi, useSetAddress, useSetAddresses, useSetAlias, useSetAvatar, useSetContentHash, useSetData, useSetInterface, useSetName, useSetPubkey, useSetRecords, useSetText, useSetTexts, useText, useTextSuspense, useTexts, useTextsSuspense } from "./hooks/records.js";
|
|
16
|
+
import { useApprovePaymentToken, useApproveRenewalPayment, useCommitName, useCommitmentStatus, useCommitmentStatusSuspense, useCompleteRegistration, useIsPaymentTokenSupported, useIsPaymentTokenSupportedSuspense, useRegisterName, useRegisterNames, useRegistrationCommitment, useRegistrationCommitmentSuspense, useRegistrationParameters, useRegistrationParametersSuspense, useRegistrationPlan, useRegistrationPlanSuspense, useRegistrationPrice, useRegistrationPriceSuspense, useRenewName, useRenewNames, useRenewalPrice, useRenewalPriceSuspense } from "./hooks/registration.js";
|
|
17
|
+
import { useAlias, useAliasSuspense, useCreateResolver, useGetOrCreateResolver, usePredictResolverAddress, usePredictResolverAddressSuspense, useResolve, useResolveBatch, useResolveBatchSuspense, useResolveSuspense, useResolveWithResolver, useResolveWithResolverSuspense, useResolver, useResolverSuspense, useResolverVersion, useResolverVersionSuspense, useSetResolver, useSetResolverAndRecords, useUpgradeResolver } from "./hooks/resolution.js";
|
|
18
|
+
import { useClearPrimaryName, usePrimaryName, usePrimaryNameSuspense, useSetContractPrimaryName, useSetPrimaryName, useSetPrimaryNameForAddress } from "./hooks/reverse.js";
|
|
19
|
+
import { useCreateSubname, useDeleteSubname, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useTransferSubname } from "./hooks/subnames.js";
|
|
20
|
+
import { useExtendSubnameExpiry, useFuses, useFusesSuspense, useSetChildFuses, useSetFuses, useUnwrapName, useWrapName, useWrapperExpiry, useWrapperExpirySuspense } from "./hooks/wrapping.js";
|
|
21
|
+
import { EnsFetchStatus, EnsQueryResult, EnsQueryStatus } from "./query/result.js";
|
|
22
|
+
import { useReadBatch, useReadBatchSettled, useRecords } from "./hooks/generic.js";
|
|
23
|
+
import { InvalidateEnsforge, useInvalidateEnsforge } from "./hooks/use-cache.js";
|
|
24
|
+
import { EnsMutationCallbacks, EnsMutationOptions } from "./mutation/options.js";
|
|
25
|
+
import { EnsMutationResult, EnsMutationStatus } from "./mutation/result.js";
|
|
26
|
+
import { makeMutationHook } from "./hooks/use-mutation.js";
|
|
27
|
+
import { makeQueryHook, prefetchQueryAtom } from "./hooks/use-query.js";
|
|
28
|
+
import "./hooks/index.js";
|
|
29
|
+
import { EnsforgeReactDefaults } from "./provider/context.js";
|
|
30
|
+
import { EnsforgeProvider, EnsforgeProviderProps } from "./provider/ensforge-provider.js";
|
|
31
|
+
import { useEnsforge, useEnsforgeRegistry } from "./provider/hooks.js";
|
|
32
|
+
import "./provider/index.js";
|
|
33
|
+
import { Ensforge } from "@ensforge/sdk";
|
|
34
|
+
export type * from "@ensforge/sdk";
|
|
35
|
+
export { type CreateEnsforgeRegistryOptions, type EnsFetchStatus, type EnsMutationCallbacks, type EnsMutationOptions, type EnsMutationResult, type EnsMutationStatus, type EnsQueryDefaults, type EnsQueryOptions, type EnsQueryResult, type EnsQueryStatus, type EnsSuspenseQueryResult, Ensforge, type EnsforgeInvalidation, EnsforgeProvider, type EnsforgeProviderProps, type EnsforgeReactDefaults, type InvalidateEnsforge, type ResolvedEnsQueryOptions, type UseEnsQueryParameters, type UseEnsSuspenseQueryParameters, createEnsforgeRegistry, defaultEnsQueryOptions, invalidateEnsforge, invalidateEnsforgeEffect, makeInvalidationKeys, makeMutationHook, makeQueryHook, makeSuspenseQueryHook, prefetchEnsforge, prefetchEnsforgeEffect, prefetchQueryAtom, useAbi, useAbiSuspense, useAddress, useAddressSuspense, useAddresses, useAddressesSuspense, useAlias, useAliasSuspense, useApproveMigration, useApproveName, useApprovePaymentToken, useApproveRenewalPayment, useAvatar, useAvatarSuspense, useCallsStatus, useCallsStatusSuspense, useCanonicalResource, useCanonicalResourceSuspense, useClaimDnsName, useClearAvatar, useClearNameApproval, useClearPrimaryName, useClearRecords, useCommitName, useCommitmentStatus, useCommitmentStatusSuspense, useCompleteRegistration, useContentHash, useContentHashSuspense, useCreateResolver, useCreateSubname, useData, useDataSuspense, useDeleteSubname, useDnsClaimStatus, useDnsClaimStatusSuspense, useDnsImportPlan, useDnsImportPlanSuspense, useDnsRecord, useDnsRecordSuspense, useDnsRecords, useDnsRecordsSuspense, useEnsEvents, useEnsEventsSuspense, useEnsforge, useEnsforgeRegistry, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, useExpiry, useExpirySuspense, useExtendSubnameExpiry, useFuses, useFusesSuspense, useGetOrCreateResolver, useGrantRegistryRoles, useGrantResolverRoles, useGrantResolverRootRoles, useHasDnsRecords, useHasDnsRecordsSuspense, useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useImportDnsName, useInterface, useInterfaceSuspense, useInvalidateEnsforge, useIsAvailable, useIsAvailableSuspense, useIsMigrated, useIsMigratedSuspense, useIsPaymentTokenSupported, useIsPaymentTokenSupportedSuspense, useIsRenewable, useIsRenewableSuspense, useIsReserved, useIsReservedSuspense, useIsWrapped, useIsWrappedSuspense, useManager, useManagerSuspense, useMigrateName, useMigrateNames, useMigrationEligibility, useMigrationEligibilitySuspense, useMigrationPlan, useMigrationPlanSuspense, useMigrationStatus, useMigrationStatusSuspense, useMigrationTarget, useMigrationTargetSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useNameHistory, useNameHistorySuspense, useNameRecord, useNameRecordSuspense, useNameState, useNameStateSuspense, useNameStatus, useNameStatusSuspense, useOperatorApproval, useOperatorApprovalSuspense, useOwner, useOwnerSuspense, usePredictResolverAddress, usePredictResolverAddressSuspense, usePrepareCalls, usePrepareCallsSuspense, usePrimaryName, usePrimaryNameSuspense, useProtocol, useProtocolSuspense, usePubkey, usePubkeySuspense, useReadBatch, useReadBatchSettled, useReclaimName, useRecordPermissions, useRecordPermissionsSuspense, useRecords, useRegisterName, useRegisterNames, useRegistrant, useRegistrantSuspense, useRegistrationCommitment, useRegistrationCommitmentSuspense, useRegistrationParameters, useRegistrationParametersSuspense, useRegistrationPlan, useRegistrationPlanSuspense, useRegistrationPrice, useRegistrationPriceSuspense, useRegistry, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRegistrySuspense, useRenewName, useRenewNames, useRenewalPrice, useRenewalPriceSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolve, useResolveBatch, useResolveBatchSuspense, useResolveSuspense, useResolveWithResolver, useResolveWithResolverSuspense, useResolver, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useResolverSuspense, useResolverVersion, useResolverVersionSuspense, useResumeCalls, useRevokeRegistryRoles, useRevokeResolverRoles, useRevokeResolverRootRoles, useSendCalls, useSetAbi, useSetAddress, useSetAddresses, useSetAlias, useSetAvatar, useSetChildFuses, useSetContentHash, useSetContractPrimaryName, useSetData, useSetDnsRecords, useSetFuses, useSetInterface, useSetManager, useSetName, useSetOperatorApproval, useSetPrimaryName, useSetPrimaryNameForAddress, useSetPubkey, useSetRecordPermissions, useSetRecords, useSetResolver, useSetResolverAndRecords, useSetResolverDelegateApproval, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useSetText, useSetTexts, useSetTtl, useSetZoneHash, useSimulateCalls, useSimulateCallsSuspense, useText, useTextSuspense, useTexts, useTextsSuspense, useTokenApproval, useTokenApprovalSuspense, useTokenId, useTokenIdSuspense, useTransferName, useTransferRegistrant, useTransferSubname, useTtl, useTtlSuspense, useUnwrapName, useUpgradeResolver, useWalletCapabilities, useWalletCapabilitiesSuspense, useWatchEnsEvents, useWrapName, useWrapperExpiry, useWrapperExpirySuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense, useZoneHash, useZoneHashSuspense };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { invalidateEnsforge, invalidateEnsforgeEffect, makeInvalidationKeys } from "./cache/invalidation.js";
|
|
4
|
+
import { prefetchEnsforge, prefetchEnsforgeEffect } from "./cache/prefetch.js";
|
|
5
|
+
import { createEnsforgeRegistry } from "./cache/registry.js";
|
|
6
|
+
import { makeMutationHook } from "./hooks/use-mutation.js";
|
|
7
|
+
import { defaultEnsQueryOptions } from "./query/options.js";
|
|
8
|
+
import { makeQueryHook, prefetchQueryAtom } from "./hooks/use-query.js";
|
|
9
|
+
import { makeSuspenseQueryHook } from "./hooks/use-suspense-query.js";
|
|
10
|
+
import { useCallsStatus, useCallsStatusSuspense, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, usePrepareCalls, usePrepareCallsSuspense, useResumeCalls, useSendCalls, useSimulateCalls, useSimulateCallsSuspense, useWalletCapabilities, useWalletCapabilitiesSuspense } from "./hooks/batch.js";
|
|
11
|
+
import { useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useOperatorApproval, useOperatorApprovalSuspense, useRecordPermissions, useRecordPermissionsSuspense, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useTokenApproval, useTokenApprovalSuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense } from "./hooks/capabilities.js";
|
|
12
|
+
import { useClaimDnsName, useDnsClaimStatus, useDnsClaimStatusSuspense, useDnsImportPlan, useDnsImportPlanSuspense, useDnsRecord, useDnsRecordSuspense, useDnsRecords, useDnsRecordsSuspense, useHasDnsRecords, useHasDnsRecordsSuspense, useImportDnsName, useSetDnsRecords, useSetZoneHash, useZoneHash, useZoneHashSuspense } from "./hooks/dns.js";
|
|
13
|
+
import { useEnsEvents, useEnsEventsSuspense, useNameHistory, useNameHistorySuspense, useWatchEnsEvents } from "./hooks/events.js";
|
|
14
|
+
import { useApproveMigration, useMigrateName, useMigrateNames, useMigrationEligibility, useMigrationEligibilitySuspense, useMigrationPlan, useMigrationPlanSuspense, useMigrationStatus, useMigrationStatusSuspense, useMigrationTarget, useMigrationTargetSuspense } from "./hooks/migration.js";
|
|
15
|
+
import { useCanonicalResource, useCanonicalResourceSuspense, useExpiry, useExpirySuspense, useIsAvailable, useIsAvailableSuspense, useIsMigrated, useIsMigratedSuspense, useIsRenewable, useIsRenewableSuspense, useIsReserved, useIsReservedSuspense, useIsWrapped, useIsWrappedSuspense, useManager, useManagerSuspense, useNameState, useNameStateSuspense, useNameStatus, useNameStatusSuspense, useOwner, useOwnerSuspense, useProtocol, useProtocolSuspense, useRegistrant, useRegistrantSuspense, useRegistry, useRegistrySuspense, useTokenId, useTokenIdSuspense } from "./hooks/name.js";
|
|
16
|
+
import { useReclaimName, useSetManager, useSetTtl, useTransferName, useTransferRegistrant, useTtl, useTtlSuspense } from "./hooks/ownership.js";
|
|
17
|
+
import { useApproveName, useClearNameApproval, useGrantRegistryRoles, useGrantResolverRoles, useGrantResolverRootRoles, useRevokeRegistryRoles, useRevokeResolverRoles, useRevokeResolverRootRoles, useSetOperatorApproval, useSetRecordPermissions, useSetResolverDelegateApproval } from "./hooks/permissions.js";
|
|
18
|
+
import { useAbi, useAbiSuspense, useAddress, useAddressSuspense, useAddresses, useAddressesSuspense, useAvatar, useAvatarSuspense, useClearAvatar, useClearRecords, useContentHash, useContentHashSuspense, useData, useDataSuspense, useInterface, useInterfaceSuspense, useNameRecord, useNameRecordSuspense, usePubkey, usePubkeySuspense, useSetAbi, useSetAddress, useSetAddresses, useSetAlias, useSetAvatar, useSetContentHash, useSetData, useSetInterface, useSetName, useSetPubkey, useSetRecords, useSetText, useSetTexts, useText, useTextSuspense, useTexts, useTextsSuspense } from "./hooks/records.js";
|
|
19
|
+
import { useApprovePaymentToken, useApproveRenewalPayment, useCommitName, useCommitmentStatus, useCommitmentStatusSuspense, useCompleteRegistration, useIsPaymentTokenSupported, useIsPaymentTokenSupportedSuspense, useRegisterName, useRegisterNames, useRegistrationCommitment, useRegistrationCommitmentSuspense, useRegistrationParameters, useRegistrationParametersSuspense, useRegistrationPlan, useRegistrationPlanSuspense, useRegistrationPrice, useRegistrationPriceSuspense, useRenewName, useRenewNames, useRenewalPrice, useRenewalPriceSuspense } from "./hooks/registration.js";
|
|
20
|
+
import { useAlias, useAliasSuspense, useCreateResolver, useGetOrCreateResolver, usePredictResolverAddress, usePredictResolverAddressSuspense, useResolve, useResolveBatch, useResolveBatchSuspense, useResolveSuspense, useResolveWithResolver, useResolveWithResolverSuspense, useResolver, useResolverSuspense, useResolverVersion, useResolverVersionSuspense, useSetResolver, useSetResolverAndRecords, useUpgradeResolver } from "./hooks/resolution.js";
|
|
21
|
+
import { useClearPrimaryName, usePrimaryName, usePrimaryNameSuspense, useSetContractPrimaryName, useSetPrimaryName, useSetPrimaryNameForAddress } from "./hooks/reverse.js";
|
|
22
|
+
import { useCreateSubname, useDeleteSubname, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useTransferSubname } from "./hooks/subnames.js";
|
|
23
|
+
import { useExtendSubnameExpiry, useFuses, useFusesSuspense, useSetChildFuses, useSetFuses, useUnwrapName, useWrapName, useWrapperExpiry, useWrapperExpirySuspense } from "./hooks/wrapping.js";
|
|
24
|
+
import { useReadBatch, useReadBatchSettled, useRecords } from "./hooks/generic.js";
|
|
25
|
+
import { useInvalidateEnsforge } from "./hooks/use-cache.js";
|
|
26
|
+
import { EnsforgeProvider } from "./provider/ensforge-provider.js";
|
|
27
|
+
import { useEnsforge, useEnsforgeRegistry } from "./provider/hooks.js";
|
|
28
|
+
import { Ensforge } from "@ensforge/sdk";
|
|
29
|
+
|
|
30
|
+
export { Ensforge, EnsforgeProvider, createEnsforgeRegistry, defaultEnsQueryOptions, invalidateEnsforge, invalidateEnsforgeEffect, makeInvalidationKeys, makeMutationHook, makeQueryHook, makeSuspenseQueryHook, prefetchEnsforge, prefetchEnsforgeEffect, prefetchQueryAtom, useAbi, useAbiSuspense, useAddress, useAddressSuspense, useAddresses, useAddressesSuspense, useAlias, useAliasSuspense, useApproveMigration, useApproveName, useApprovePaymentToken, useApproveRenewalPayment, useAvatar, useAvatarSuspense, useCallsStatus, useCallsStatusSuspense, useCanonicalResource, useCanonicalResourceSuspense, useClaimDnsName, useClearAvatar, useClearNameApproval, useClearPrimaryName, useClearRecords, useCommitName, useCommitmentStatus, useCommitmentStatusSuspense, useCompleteRegistration, useContentHash, useContentHashSuspense, useCreateResolver, useCreateSubname, useData, useDataSuspense, useDeleteSubname, useDnsClaimStatus, useDnsClaimStatusSuspense, useDnsImportPlan, useDnsImportPlanSuspense, useDnsRecord, useDnsRecordSuspense, useDnsRecords, useDnsRecordsSuspense, useEnsEvents, useEnsEventsSuspense, useEnsforge, useEnsforgeRegistry, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, useExpiry, useExpirySuspense, useExtendSubnameExpiry, useFuses, useFusesSuspense, useGetOrCreateResolver, useGrantRegistryRoles, useGrantResolverRoles, useGrantResolverRootRoles, useHasDnsRecords, useHasDnsRecordsSuspense, useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useImportDnsName, useInterface, useInterfaceSuspense, useInvalidateEnsforge, useIsAvailable, useIsAvailableSuspense, useIsMigrated, useIsMigratedSuspense, useIsPaymentTokenSupported, useIsPaymentTokenSupportedSuspense, useIsRenewable, useIsRenewableSuspense, useIsReserved, useIsReservedSuspense, useIsWrapped, useIsWrappedSuspense, useManager, useManagerSuspense, useMigrateName, useMigrateNames, useMigrationEligibility, useMigrationEligibilitySuspense, useMigrationPlan, useMigrationPlanSuspense, useMigrationStatus, useMigrationStatusSuspense, useMigrationTarget, useMigrationTargetSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useNameHistory, useNameHistorySuspense, useNameRecord, useNameRecordSuspense, useNameState, useNameStateSuspense, useNameStatus, useNameStatusSuspense, useOperatorApproval, useOperatorApprovalSuspense, useOwner, useOwnerSuspense, usePredictResolverAddress, usePredictResolverAddressSuspense, usePrepareCalls, usePrepareCallsSuspense, usePrimaryName, usePrimaryNameSuspense, useProtocol, useProtocolSuspense, usePubkey, usePubkeySuspense, useReadBatch, useReadBatchSettled, useReclaimName, useRecordPermissions, useRecordPermissionsSuspense, useRecords, useRegisterName, useRegisterNames, useRegistrant, useRegistrantSuspense, useRegistrationCommitment, useRegistrationCommitmentSuspense, useRegistrationParameters, useRegistrationParametersSuspense, useRegistrationPlan, useRegistrationPlanSuspense, useRegistrationPrice, useRegistrationPriceSuspense, useRegistry, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRegistrySuspense, useRenewName, useRenewNames, useRenewalPrice, useRenewalPriceSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolve, useResolveBatch, useResolveBatchSuspense, useResolveSuspense, useResolveWithResolver, useResolveWithResolverSuspense, useResolver, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useResolverSuspense, useResolverVersion, useResolverVersionSuspense, useResumeCalls, useRevokeRegistryRoles, useRevokeResolverRoles, useRevokeResolverRootRoles, useSendCalls, useSetAbi, useSetAddress, useSetAddresses, useSetAlias, useSetAvatar, useSetChildFuses, useSetContentHash, useSetContractPrimaryName, useSetData, useSetDnsRecords, useSetFuses, useSetInterface, useSetManager, useSetName, useSetOperatorApproval, useSetPrimaryName, useSetPrimaryNameForAddress, useSetPubkey, useSetRecordPermissions, useSetRecords, useSetResolver, useSetResolverAndRecords, useSetResolverDelegateApproval, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useSetText, useSetTexts, useSetTtl, useSetZoneHash, useSimulateCalls, useSimulateCallsSuspense, useText, useTextSuspense, useTexts, useTextsSuspense, useTokenApproval, useTokenApprovalSuspense, useTokenId, useTokenIdSuspense, useTransferName, useTransferRegistrant, useTransferSubname, useTtl, useTtlSuspense, useUnwrapName, useUpgradeResolver, useWalletCapabilities, useWalletCapabilitiesSuspense, useWatchEnsEvents, useWrapName, useWrapperExpiry, useWrapperExpirySuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense, useZoneHash, useZoneHashSuspense };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
//#region src/internal/action-types.d.ts
|
|
3
|
+
interface BoundEffectAction<Parameters, Success, Failure> {
|
|
4
|
+
readonly effect: (parameters: Parameters) => Effect.Effect<Success, Failure>;
|
|
5
|
+
}
|
|
6
|
+
//#endregion
|
|
7
|
+
export { BoundEffectAction };
|
|
8
|
+
//# sourceMappingURL=action-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-types.d.ts","names":[],"sources":["../../src/internal/action-types.ts"],"mappings":";;UAEiB,kBAAkB,YAAY,SAAS;WAC7C,SAAS,YAAY,eAAe,OAAO,OAAO,SAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","names":[],"sources":["../../src/internal/runtime.ts"],"sourcesContent":["import { Layer } from \"effect\";\nimport { Atom } from \"effect/unstable/reactivity\";\n\nexport const atomRuntime = Atom.runtime(Layer.empty);\n"],"mappings":";;;;AAGA,MAAa,cAAc,KAAK,QAAQ,MAAM,KAAK"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/mutation/options.d.ts
|
|
2
|
+
interface EnsMutationCallbacks<Parameters, Success, Failure> {
|
|
3
|
+
readonly onError?: (error: Failure | Error, parameters: Parameters) => void;
|
|
4
|
+
readonly onSettled?: (data: Success | undefined, error: Failure | Error | null, parameters: Parameters) => void;
|
|
5
|
+
readonly onSuccess?: (data: Success, parameters: Parameters) => void;
|
|
6
|
+
}
|
|
7
|
+
interface EnsMutationOptions<Parameters, Success, Failure> extends EnsMutationCallbacks<Parameters, Success, Failure> {
|
|
8
|
+
readonly retry?: false | number;
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { EnsMutationCallbacks, EnsMutationOptions };
|
|
12
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","names":[],"sources":["../../src/mutation/options.ts"],"mappings":";UAAiB,qBAAqB,YAAY,SAAS;WAChD,WAAW,OAAO,UAAU,OAAO,YAAY;WAC/C,aACP,MAAM,qBACN,OAAO,UAAU,cACjB,YAAY;WAEL,aAAa,MAAM,SAAS,YAAY;;UAGlC,mBAAmB,YAAY,SAAS,iBAAiB,qBACxE,YACA,SACA;WAES"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { EnsMutationCallbacks } from "./options.js";
|
|
2
|
+
import { Cause, Effect } from "effect";
|
|
3
|
+
import { AsyncResult } from "effect/unstable/reactivity";
|
|
4
|
+
//#region src/mutation/result.d.ts
|
|
5
|
+
type EnsMutationStatus = "idle" | "pending" | "success" | "error";
|
|
6
|
+
interface EnsMutationResult<Parameters, Success, Failure> {
|
|
7
|
+
readonly cause: Cause.Cause<Failure> | null;
|
|
8
|
+
readonly data: Success | undefined;
|
|
9
|
+
readonly error: Failure | Error | null;
|
|
10
|
+
readonly interrupt: () => void;
|
|
11
|
+
readonly isError: boolean;
|
|
12
|
+
readonly isIdle: boolean;
|
|
13
|
+
readonly isPending: boolean;
|
|
14
|
+
readonly isSuccess: boolean;
|
|
15
|
+
readonly mutate: (parameters: Parameters, callbacks?: EnsMutationCallbacks<Parameters, Success, Failure>) => void;
|
|
16
|
+
readonly mutateAsync: (parameters: Parameters) => Promise<Success>;
|
|
17
|
+
readonly mutateEffect: (parameters: Parameters) => Effect.Effect<Success, Failure>;
|
|
18
|
+
readonly parameters: Parameters | undefined;
|
|
19
|
+
readonly reset: () => void;
|
|
20
|
+
readonly result: AsyncResult.AsyncResult<Success, Failure>;
|
|
21
|
+
readonly status: EnsMutationStatus;
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { EnsMutationResult, EnsMutationStatus };
|
|
25
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","names":[],"sources":["../../src/mutation/result.ts"],"mappings":";;;;KAKY;UAEK,kBAAkB,YAAY,SAAS;WAC7C,OAAO,MAAM,MAAM;WACnB,MAAM;WACN,OAAO,UAAU;WACjB;WACA;WACA;WACA;WACA;WACA,SACP,YAAY,YACZ,YAAY,qBAAqB,YAAY,SAAS;WAE/C,cAAc,YAAY,eAAe,QAAQ;WACjD,eAAe,YAAY,eAAe,OAAO,OAAO,SAAS;WACjE,YAAY;WACZ;WACA,QAAQ,YAAY,YAAY,SAAS;WACzC,QAAQ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EnsQueryDefaults } from "../query/options.js";
|
|
2
|
+
import { Ensforge } from "@ensforge/sdk";
|
|
3
|
+
//#region src/provider/context.d.ts
|
|
4
|
+
interface EnsforgeReactDefaults {
|
|
5
|
+
readonly queries?: EnsQueryDefaults;
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { EnsforgeReactDefaults };
|
|
9
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","names":[],"sources":["../../src/provider/context.ts"],"mappings":";;;UAQiB;WACN,UAAU"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/provider/context.ts
|
|
6
|
+
const EnsforgeReactContext = createContext(void 0);
|
|
7
|
+
const useEnsforgeContext = () => {
|
|
8
|
+
const value = useContext(EnsforgeReactContext);
|
|
9
|
+
if (value === void 0) throw new Error("Ensforge React hooks must be used inside an EnsforgeProvider");
|
|
10
|
+
return value;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { EnsforgeReactContext, useEnsforgeContext };
|
|
15
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../src/provider/context.ts"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nimport type { Ensforge } from \"@ensforge/sdk\";\n\nimport type { EnsQueryDefaults } from \"../query/options.js\";\n\nexport interface EnsforgeReactDefaults {\n readonly queries?: EnsQueryDefaults;\n}\n\nexport interface EnsforgeReactContextValue {\n readonly defaults: EnsforgeReactDefaults;\n readonly sdk: Ensforge;\n}\n\nexport const EnsforgeReactContext = createContext<EnsforgeReactContextValue | undefined>(undefined);\n\nexport const useEnsforgeContext = (): EnsforgeReactContextValue => {\n const value = useContext(EnsforgeReactContext);\n if (value === undefined) {\n throw new Error(\"Ensforge React hooks must be used inside an EnsforgeProvider\");\n }\n return value;\n};\n"],"mappings":";;;;;AAiBA,MAAa,uBAAuB,cAAqD,MAAS;AAElG,MAAa,2BAAsD;CACjE,MAAM,QAAQ,WAAW,oBAAoB;CAC7C,IAAI,UAAU,QACZ,MAAM,IAAI,MAAM,8DAA8D;CAEhF,OAAO;AACT"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { EnsforgeReactDefaults } from "./context.js";
|
|
2
|
+
import { CreateConfigParameters, Ensforge } from "@ensforge/sdk";
|
|
3
|
+
import { AtomRegistry } from "effect/unstable/reactivity";
|
|
4
|
+
import { ReactNode } from "react";
|
|
5
|
+
//#region src/provider/ensforge-provider.d.ts
|
|
6
|
+
interface SharedEnsforgeProviderProps {
|
|
7
|
+
readonly children?: ReactNode;
|
|
8
|
+
readonly defaultIdleTTL?: number;
|
|
9
|
+
readonly defaults?: EnsforgeReactDefaults;
|
|
10
|
+
readonly registry?: AtomRegistry.AtomRegistry;
|
|
11
|
+
}
|
|
12
|
+
type EnsforgeProviderProps = SharedEnsforgeProviderProps & ({
|
|
13
|
+
readonly config: CreateConfigParameters;
|
|
14
|
+
readonly sdk?: never;
|
|
15
|
+
} | {
|
|
16
|
+
readonly config?: never;
|
|
17
|
+
readonly sdk: Ensforge;
|
|
18
|
+
});
|
|
19
|
+
declare const EnsforgeProvider: (props: EnsforgeProviderProps) => import("react").JSX.Element;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { EnsforgeProvider, EnsforgeProviderProps };
|
|
22
|
+
//# sourceMappingURL=ensforge-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensforge-provider.d.ts","names":[],"sources":["../../src/provider/ensforge-provider.tsx"],"mappings":";;;;;UAeU;WACC,WAAW;WACX;WACA,WAAW;WACX,WAAW,aAAa;;KAGvB,wBAAwB;WAGnB,QAAQ;WACR;;WAGA;WACA,KAAK;;cAIT,mBAAoB,OAAO,0CAAqB,IAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { EnsforgeReactContext } from "./context.js";
|
|
4
|
+
import { Ensforge } from "@ensforge/sdk";
|
|
5
|
+
import { RegistryContext, RegistryProvider } from "@effect/atom-react";
|
|
6
|
+
import { useRef } from "react";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
|
|
9
|
+
//#region src/provider/ensforge-provider.tsx
|
|
10
|
+
const EnsforgeProvider = (props) => {
|
|
11
|
+
const valueRef = useRef(void 0);
|
|
12
|
+
if (valueRef.current === void 0) valueRef.current = Object.freeze({
|
|
13
|
+
defaults: Object.freeze(props.defaults ?? {}),
|
|
14
|
+
sdk: props.sdk ?? new Ensforge(props.config)
|
|
15
|
+
});
|
|
16
|
+
const children = /* @__PURE__ */ jsx(EnsforgeReactContext.Provider, {
|
|
17
|
+
value: valueRef.current,
|
|
18
|
+
children: props.children
|
|
19
|
+
});
|
|
20
|
+
return props.registry === void 0 ? /* @__PURE__ */ jsx(RegistryProvider, {
|
|
21
|
+
defaultIdleTTL: props.defaultIdleTTL,
|
|
22
|
+
children
|
|
23
|
+
}) : /* @__PURE__ */ jsx(RegistryContext.Provider, {
|
|
24
|
+
value: props.registry,
|
|
25
|
+
children
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
//#endregion
|
|
30
|
+
export { EnsforgeProvider };
|
|
31
|
+
//# sourceMappingURL=ensforge-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensforge-provider.js","names":[],"sources":["../../src/provider/ensforge-provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRef, type ReactNode } from \"react\";\n\nimport { RegistryContext, RegistryProvider } from \"@effect/atom-react\";\nimport type { AtomRegistry } from \"effect/unstable/reactivity\";\n\nimport { Ensforge, type CreateConfigParameters } from \"@ensforge/sdk\";\n\nimport {\n EnsforgeReactContext,\n type EnsforgeReactContextValue,\n type EnsforgeReactDefaults,\n} from \"./context.js\";\n\ninterface SharedEnsforgeProviderProps {\n readonly children?: ReactNode;\n readonly defaultIdleTTL?: number;\n readonly defaults?: EnsforgeReactDefaults;\n readonly registry?: AtomRegistry.AtomRegistry;\n}\n\nexport type EnsforgeProviderProps = SharedEnsforgeProviderProps &\n (\n | {\n readonly config: CreateConfigParameters;\n readonly sdk?: never;\n }\n | {\n readonly config?: never;\n readonly sdk: Ensforge;\n }\n );\n\nexport const EnsforgeProvider = (props: EnsforgeProviderProps) => {\n const valueRef = useRef<EnsforgeReactContextValue | undefined>(undefined);\n\n if (valueRef.current === undefined) {\n valueRef.current = Object.freeze({\n defaults: Object.freeze(props.defaults ?? {}),\n sdk: props.sdk ?? new Ensforge(props.config),\n });\n }\n\n const children = (\n <EnsforgeReactContext.Provider value={valueRef.current}>\n {props.children}\n </EnsforgeReactContext.Provider>\n );\n\n return props.registry === undefined ? (\n <RegistryProvider defaultIdleTTL={props.defaultIdleTTL}>{children}</RegistryProvider>\n ) : (\n <RegistryContext.Provider value={props.registry}>{children}</RegistryContext.Provider>\n );\n};\n"],"mappings":";;;;;;;;;AAkCA,MAAa,oBAAoB,UAAiC;CAChE,MAAM,WAAW,OAA8C,MAAS;CAExE,IAAI,SAAS,YAAY,QACvB,SAAS,UAAU,OAAO,OAAO;EAC/B,UAAU,OAAO,OAAO,MAAM,YAAY,CAAC,CAAC;EAC5C,KAAK,MAAM,OAAO,IAAI,SAAS,MAAM,MAAM;CAC7C,CAAC;CAGH,MAAM,WACJ,oBAAC,qBAAqB,UAAtB;EAA+B,OAAO,SAAS;YAC5C,MAAM;CACsB;CAGjC,OAAO,MAAM,aAAa,SACxB,oBAAC,kBAAD;EAAkB,gBAAgB,MAAM;EAAiB;CAA2B,KAEpF,oBAAC,gBAAgB,UAAjB;EAA0B,OAAO,MAAM;EAAW;CAAmC;AAEzF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/provider/hooks.d.ts
|
|
2
|
+
declare const useEnsforge: () => import("@ensforge/sdk").Ensforge;
|
|
3
|
+
declare const useEnsforgeRegistry: () => import("effect/unstable/reactivity/AtomRegistry").AtomRegistry;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { useEnsforge, useEnsforgeRegistry };
|
|
6
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","names":[],"sources":["../../src/provider/hooks.ts"],"mappings":";cAQa,2CAAW;cAEX,6EAAmB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useEnsforgeContext } from "./context.js";
|
|
4
|
+
import { RegistryContext } from "@effect/atom-react";
|
|
5
|
+
import { useContext } from "react";
|
|
6
|
+
|
|
7
|
+
//#region src/provider/hooks.ts
|
|
8
|
+
const useEnsforge = () => useEnsforgeContext().sdk;
|
|
9
|
+
const useEnsforgeRegistry = () => useContext(RegistryContext);
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { useEnsforge, useEnsforgeRegistry };
|
|
13
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","names":[],"sources":["../../src/provider/hooks.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext } from \"react\";\n\nimport { RegistryContext } from \"@effect/atom-react\";\n\nimport { useEnsforgeContext } from \"./context.js\";\n\nexport const useEnsforge = () => useEnsforgeContext().sdk;\n\nexport const useEnsforgeRegistry = () => useContext(RegistryContext);\n"],"mappings":";;;;;;;AAQA,MAAa,oBAAoB,mBAAmB,CAAC,CAAC;AAEtD,MAAa,4BAA4B,WAAW,eAAe"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { EnsforgeReactDefaults } from "./context.js";
|
|
2
|
+
import { EnsforgeProvider, EnsforgeProviderProps } from "./ensforge-provider.js";
|
|
3
|
+
import { useEnsforge, useEnsforgeRegistry } from "./hooks.js";
|
|
4
|
+
export { EnsforgeProvider, type EnsforgeProviderProps, type EnsforgeReactDefaults, useEnsforge, useEnsforgeRegistry };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.d.ts","names":[],"sources":["../../src/query/keys.ts"],"mappings":";;KAEY,yBAAyB,SAAS,eAAe"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/query/keys.ts
|
|
2
|
+
const stringValues = (value) => Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
|
|
3
|
+
const queryKeys = {
|
|
4
|
+
all: "ensforge",
|
|
5
|
+
group: (group) => `ensforge:${group}`,
|
|
6
|
+
name: "ensforge:name",
|
|
7
|
+
address: "ensforge:address"
|
|
8
|
+
};
|
|
9
|
+
const makeReactivityKeys = (sdk, group, parameters) => {
|
|
10
|
+
const keys = {
|
|
11
|
+
[queryKeys.all]: [sdk.config.network],
|
|
12
|
+
[queryKeys.group(group)]: [sdk.config.network]
|
|
13
|
+
};
|
|
14
|
+
if (typeof parameters !== "object" || parameters === null) return keys;
|
|
15
|
+
const identity = parameters;
|
|
16
|
+
if (typeof identity.name === "string") keys[queryKeys.name] = [`${sdk.config.network}:${identity.name}`];
|
|
17
|
+
if (typeof identity.address === "string") keys[queryKeys.address] = [`${sdk.config.network}:${identity.address.toLowerCase()}`];
|
|
18
|
+
const names = stringValues(identity.names);
|
|
19
|
+
if (names.length > 0) keys[queryKeys.name] = names.map((name) => `${sdk.config.network}:${name}`);
|
|
20
|
+
return keys;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { makeReactivityKeys, queryKeys };
|
|
25
|
+
//# sourceMappingURL=keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.js","names":[],"sources":["../../src/query/keys.ts"],"sourcesContent":["import type { Ensforge } from \"@ensforge/sdk\";\n\nexport type EnsforgeReactivityKeys = Readonly<Record<string, ReadonlyArray<unknown>>>;\n\ntype ParametersWithIdentity = {\n readonly address?: unknown;\n readonly name?: unknown;\n readonly names?: unknown;\n};\n\nconst stringValues = (value: unknown): ReadonlyArray<string> =>\n Array.isArray(value) ? value.filter((item): item is string => typeof item === \"string\") : [];\n\nexport const queryKeys = {\n all: \"ensforge\",\n group: (group: string) => `ensforge:${group}`,\n name: \"ensforge:name\",\n address: \"ensforge:address\",\n} as const;\n\nexport const makeReactivityKeys = (\n sdk: Ensforge,\n group: string,\n parameters: unknown,\n): EnsforgeReactivityKeys => {\n const keys: Record<string, ReadonlyArray<unknown>> = {\n [queryKeys.all]: [sdk.config.network],\n [queryKeys.group(group)]: [sdk.config.network],\n };\n\n if (typeof parameters !== \"object\" || parameters === null) return keys;\n\n const identity = parameters as ParametersWithIdentity;\n if (typeof identity.name === \"string\") {\n keys[queryKeys.name] = [`${sdk.config.network}:${identity.name}`];\n }\n if (typeof identity.address === \"string\") {\n keys[queryKeys.address] = [`${sdk.config.network}:${identity.address.toLowerCase()}`];\n }\n\n const names = stringValues(identity.names);\n if (names.length > 0) {\n keys[queryKeys.name] = names.map((name) => `${sdk.config.network}:${name}`);\n }\n\n return keys;\n};\n"],"mappings":";AAUA,MAAM,gBAAgB,UACpB,MAAM,QAAQ,KAAK,IAAI,MAAM,QAAQ,SAAyB,OAAO,SAAS,QAAQ,IAAI,CAAC;AAE7F,MAAa,YAAY;CACvB,KAAK;CACL,QAAQ,UAAkB,YAAY;CACtC,MAAM;CACN,SAAS;AACX;AAEA,MAAa,sBACX,KACA,OACA,eAC2B;CAC3B,MAAM,OAA+C;GAClD,UAAU,MAAM,CAAC,IAAI,OAAO,OAAO;GACnC,UAAU,MAAM,KAAK,IAAI,CAAC,IAAI,OAAO,OAAO;CAC/C;CAEA,IAAI,OAAO,eAAe,YAAY,eAAe,MAAM,OAAO;CAElE,MAAM,WAAW;CACjB,IAAI,OAAO,SAAS,SAAS,UAC3B,KAAK,UAAU,QAAQ,CAAC,GAAG,IAAI,OAAO,QAAQ,GAAG,SAAS,MAAM;CAElE,IAAI,OAAO,SAAS,YAAY,UAC9B,KAAK,UAAU,WAAW,CAAC,GAAG,IAAI,OAAO,QAAQ,GAAG,SAAS,QAAQ,YAAY,GAAG;CAGtF,MAAM,QAAQ,aAAa,SAAS,KAAK;CACzC,IAAI,MAAM,SAAS,GACjB,KAAK,UAAU,QAAQ,MAAM,KAAK,SAAS,GAAG,IAAI,OAAO,QAAQ,GAAG,MAAM;CAG5E,OAAO;AACT"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
//#region src/query/options.d.ts
|
|
2
|
+
interface EnsQueryOptions<Success, Selected = Success> {
|
|
3
|
+
readonly enabled?: boolean;
|
|
4
|
+
readonly gcTime?: number;
|
|
5
|
+
readonly refetchInterval?: false | number;
|
|
6
|
+
readonly refetchOnWindowFocus?: boolean;
|
|
7
|
+
readonly retry?: false | number;
|
|
8
|
+
readonly select?: (value: Success) => Selected;
|
|
9
|
+
readonly staleTime?: number;
|
|
10
|
+
}
|
|
11
|
+
interface EnsQueryDefaults {
|
|
12
|
+
readonly gcTime?: number;
|
|
13
|
+
readonly refetchInterval?: false | number;
|
|
14
|
+
readonly refetchOnWindowFocus?: boolean;
|
|
15
|
+
readonly retry?: false | number;
|
|
16
|
+
readonly staleTime?: number;
|
|
17
|
+
}
|
|
18
|
+
interface ResolvedEnsQueryOptions {
|
|
19
|
+
readonly gcTime: number;
|
|
20
|
+
readonly refetchInterval: false | number;
|
|
21
|
+
readonly refetchOnWindowFocus: boolean;
|
|
22
|
+
readonly retry: false | number;
|
|
23
|
+
readonly staleTime: number;
|
|
24
|
+
}
|
|
25
|
+
declare const defaultEnsQueryOptions: ResolvedEnsQueryOptions;
|
|
26
|
+
type UseEnsQueryParameters<Parameters, Success, Selected = Success> = Parameters & {
|
|
27
|
+
readonly query?: EnsQueryOptions<Success, Selected>;
|
|
28
|
+
};
|
|
29
|
+
//#endregion
|
|
30
|
+
export { EnsQueryDefaults, EnsQueryOptions, ResolvedEnsQueryOptions, UseEnsQueryParameters, defaultEnsQueryOptions };
|
|
31
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","names":[],"sources":["../../src/query/options.ts"],"mappings":";UAAiB,gBAAgB,SAAS,WAAW;WAC1C;WACA;WACA;WACA;WACA;WACA,UAAU,OAAO,YAAY;WAC7B;;UAGM;WACN;WACA;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;;cAGE,wBAAwB;KAuBzB,sBAAsB,YAAY,SAAS,WAAW,WAAW;WAClE,QAAQ,gBAAgB,SAAS"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/query/options.ts
|
|
2
|
+
const defaultEnsQueryOptions = Object.freeze({
|
|
3
|
+
gcTime: 3e5,
|
|
4
|
+
refetchInterval: false,
|
|
5
|
+
refetchOnWindowFocus: false,
|
|
6
|
+
retry: false,
|
|
7
|
+
staleTime: 3e4
|
|
8
|
+
});
|
|
9
|
+
const resolveEnsQueryOptions = (defaults, options) => ({
|
|
10
|
+
gcTime: options?.gcTime ?? defaults?.gcTime ?? defaultEnsQueryOptions.gcTime,
|
|
11
|
+
refetchInterval: options?.refetchInterval ?? defaults?.refetchInterval ?? defaultEnsQueryOptions.refetchInterval,
|
|
12
|
+
refetchOnWindowFocus: options?.refetchOnWindowFocus ?? defaults?.refetchOnWindowFocus ?? defaultEnsQueryOptions.refetchOnWindowFocus,
|
|
13
|
+
retry: options?.retry ?? defaults?.retry ?? defaultEnsQueryOptions.retry,
|
|
14
|
+
staleTime: options?.staleTime ?? defaults?.staleTime ?? defaultEnsQueryOptions.staleTime
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { defaultEnsQueryOptions, resolveEnsQueryOptions };
|
|
19
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","names":[],"sources":["../../src/query/options.ts"],"sourcesContent":["export interface EnsQueryOptions<Success, Selected = Success> {\n readonly enabled?: boolean;\n readonly gcTime?: number;\n readonly refetchInterval?: false | number;\n readonly refetchOnWindowFocus?: boolean;\n readonly retry?: false | number;\n readonly select?: (value: Success) => Selected;\n readonly staleTime?: number;\n}\n\nexport interface EnsQueryDefaults {\n readonly gcTime?: number;\n readonly refetchInterval?: false | number;\n readonly refetchOnWindowFocus?: boolean;\n readonly retry?: false | number;\n readonly staleTime?: number;\n}\n\nexport interface ResolvedEnsQueryOptions {\n readonly gcTime: number;\n readonly refetchInterval: false | number;\n readonly refetchOnWindowFocus: boolean;\n readonly retry: false | number;\n readonly staleTime: number;\n}\n\nexport const defaultEnsQueryOptions: ResolvedEnsQueryOptions = Object.freeze({\n gcTime: 5 * 60_000,\n refetchInterval: false,\n refetchOnWindowFocus: false,\n retry: false,\n staleTime: 30_000,\n});\n\nexport const resolveEnsQueryOptions = (\n defaults: EnsQueryDefaults | undefined,\n options: EnsQueryDefaults | undefined,\n): ResolvedEnsQueryOptions => ({\n gcTime: options?.gcTime ?? defaults?.gcTime ?? defaultEnsQueryOptions.gcTime,\n refetchInterval:\n options?.refetchInterval ?? defaults?.refetchInterval ?? defaultEnsQueryOptions.refetchInterval,\n refetchOnWindowFocus:\n options?.refetchOnWindowFocus ??\n defaults?.refetchOnWindowFocus ??\n defaultEnsQueryOptions.refetchOnWindowFocus,\n retry: options?.retry ?? defaults?.retry ?? defaultEnsQueryOptions.retry,\n staleTime: options?.staleTime ?? defaults?.staleTime ?? defaultEnsQueryOptions.staleTime,\n});\n\nexport type UseEnsQueryParameters<Parameters, Success, Selected = Success> = Parameters & {\n readonly query?: EnsQueryOptions<Success, Selected>;\n};\n"],"mappings":";AA0BA,MAAa,yBAAkD,OAAO,OAAO;CAC3E,QAAQ;CACR,iBAAiB;CACjB,sBAAsB;CACtB,OAAO;CACP,WAAW;AACb,CAAC;AAED,MAAa,0BACX,UACA,aAC6B;CAC7B,QAAQ,SAAS,UAAU,UAAU,UAAU,uBAAuB;CACtE,iBACE,SAAS,mBAAmB,UAAU,mBAAmB,uBAAuB;CAClF,sBACE,SAAS,wBACT,UAAU,wBACV,uBAAuB;CACzB,OAAO,SAAS,SAAS,UAAU,SAAS,uBAAuB;CACnE,WAAW,SAAS,aAAa,UAAU,aAAa,uBAAuB;AACjF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Cause, Effect } from "effect";
|
|
2
|
+
import { AsyncResult } from "effect/unstable/reactivity";
|
|
3
|
+
//#region src/query/result.d.ts
|
|
4
|
+
type EnsQueryStatus = "pending" | "success" | "error";
|
|
5
|
+
type EnsFetchStatus = "idle" | "fetching";
|
|
6
|
+
interface EnsQueryResult<Success, Failure> {
|
|
7
|
+
readonly cause: Cause.Cause<Failure> | null;
|
|
8
|
+
readonly data: Success | undefined;
|
|
9
|
+
readonly error: Failure | Error | null;
|
|
10
|
+
readonly fetchStatus: EnsFetchStatus;
|
|
11
|
+
readonly isError: boolean;
|
|
12
|
+
readonly isFetching: boolean;
|
|
13
|
+
readonly isLoading: boolean;
|
|
14
|
+
readonly isPending: boolean;
|
|
15
|
+
readonly isRefetching: boolean;
|
|
16
|
+
readonly isSuccess: boolean;
|
|
17
|
+
readonly refetch: () => Promise<Success>;
|
|
18
|
+
readonly refetchEffect: () => Effect.Effect<Success, Failure>;
|
|
19
|
+
readonly result: AsyncResult.AsyncResult<Success, Failure>;
|
|
20
|
+
readonly status: EnsQueryStatus;
|
|
21
|
+
readonly updatedAt: number | undefined;
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { EnsFetchStatus, EnsQueryResult, EnsQueryStatus };
|
|
25
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","names":[],"sources":["../../src/query/result.ts"],"mappings":";;;KAGY;KACA;UAEK,eAAe,SAAS;WAC9B,OAAO,MAAM,MAAM;WACnB,MAAM;WACN,OAAO,UAAU;WACjB,aAAa;WACb;WACA;WACA;WACA;WACA;WACA;WACA,eAAe,QAAQ;WACvB,qBAAqB,OAAO,OAAO,SAAS;WAC5C,QAAQ,YAAY,YAAY,SAAS;WACzC,QAAQ;WACR"}
|