@xyo-network/react-payload-diviner 9.0.2 → 9.0.4

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.
@@ -1,19 +1,19 @@
1
1
  export declare const DivinedPayloadContext: import("react").Context<({
2
- payload?: import("@xyo-network/payload-model").Payload | null;
2
+ payload?: import("@xyo-network/sdk-protocol-js").Payload | null;
3
3
  payloadError?: Error;
4
- setPayload?: import("react").Dispatch<import("@xyo-network/payload-model").Payload | null | undefined>;
4
+ setPayload?: import("react").Dispatch<import("@xyo-network/sdk-protocol-js").Payload | null | undefined>;
5
5
  } & {
6
6
  provided: true;
7
7
  }) | (import("@xylabs/react-shared").FixedValues<import("@xylabs/react-shared").ProvidedContextExState<{
8
- payload?: import("@xyo-network/payload-model").Payload | null;
8
+ payload?: import("@xyo-network/sdk-protocol-js").Payload | null;
9
9
  payloadError?: Error;
10
- setPayload?: import("react").Dispatch<import("@xyo-network/payload-model").Payload | null | undefined>;
10
+ setPayload?: import("react").Dispatch<import("@xyo-network/sdk-protocol-js").Payload | null | undefined>;
11
11
  }>, never> & {
12
12
  provided: false;
13
13
  }) | (import("@xylabs/react-shared").FixedValues<import("@xylabs/react-shared").NotProvidedContextExState<{
14
- payload?: import("@xyo-network/payload-model").Payload | null;
14
+ payload?: import("@xyo-network/sdk-protocol-js").Payload | null;
15
15
  payloadError?: Error;
16
- setPayload?: import("react").Dispatch<import("@xyo-network/payload-model").Payload | null | undefined>;
16
+ setPayload?: import("react").Dispatch<import("@xyo-network/sdk-protocol-js").Payload | null | undefined>;
17
17
  }>, never> & {
18
18
  provided: false;
19
19
  })>;
@@ -1,5 +1,5 @@
1
1
  import type { ContextExState } from '@xylabs/react-shared';
2
- import type { Payload } from '@xyo-network/payload-model';
2
+ import type { Payload } from '@xyo-network/sdk-js';
3
3
  import type { Dispatch } from 'react';
4
4
  export type DivinedPayloadState = ContextExState<{
5
5
  payload?: Payload | null;
@@ -1 +1 @@
1
- {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/DivinedPayload/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAErC,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACxB,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,UAAU,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;CAClD,CAAC,CAAA"}
1
+ {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/DivinedPayload/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAErC,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACxB,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,UAAU,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;CAClD,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  export declare const useDivinedPayload: () => Omit<{
2
- payload?: import("@xyo-network/payload-model").Payload | null;
2
+ payload?: import("@xyo-network/sdk-protocol-js").Payload | null;
3
3
  payloadError?: Error;
4
- setPayload?: import("react").Dispatch<import("@xyo-network/payload-model").Payload | null | undefined>;
4
+ setPayload?: import("react").Dispatch<import("@xyo-network/sdk-protocol-js").Payload | null | undefined>;
5
5
  } & {
6
6
  provided: true;
7
7
  }, "provided"> | Omit<import("@xylabs/react-shared").NotProvidedContextExState<import("./State.ts").DivinedPayloadState>, "provided">;
@@ -1,4 +1,4 @@
1
- import type { Payload } from '@xyo-network/payload-model';
1
+ import type { Payload } from '@xyo-network/sdk-js';
2
2
  import type { Dispatch } from 'react';
3
3
  export declare const usePayloadDiviner: (required?: boolean) => Omit<{
4
4
  diviner?: import("@xyo-network/diviner-payload-abstract").PayloadDiviner;
@@ -1 +1 @@
1
- {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../../src/contexts/PayloadDiviner/use.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAKrC,eAAO,MAAM,iBAAiB,GAAI,kBAAgB;;;;;qIAEjD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,OAAO,GAAG,OAAO,EAC1D,OAAO,MAAM,KACZ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,KAAK,GAAG,SAAS,CAiC1E,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3D,UAAU,MAAM,EAAE,KACjB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CA4CpF,CAAA"}
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../../src/contexts/PayloadDiviner/use.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAKrC,eAAO,MAAM,iBAAiB,GAAI,kBAAgB;;;;;qIAEjD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,OAAO,GAAG,OAAO,EAC1D,OAAO,MAAM,KACZ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,KAAK,GAAG,SAAS,CAiC1E,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3D,UAAU,MAAM,EAAE,KACjB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CA4CpF,CAAA"}
@@ -4,8 +4,8 @@ var DivinedPayloadContext = createContextEx();
4
4
 
5
5
  // src/contexts/DivinedPayload/Provider.tsx
6
6
  import { ErrorRender } from "@xylabs/react-error";
7
- import { ModuleErrorSchema } from "@xyo-network/payload-model";
8
7
  import { useBuildHuri } from "@xyo-network/react-payload-huri";
8
+ import { ModuleErrorSchema } from "@xyo-network/sdk-js";
9
9
  import { useMemo as useMemo2 } from "react";
10
10
  import { useParams, useSearchParams } from "react-router-dom";
11
11
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/contexts/DivinedPayload/Context.ts", "../../src/contexts/DivinedPayload/Provider.tsx", "../../src/contexts/PayloadDiviner/Context.ts", "../../src/contexts/PayloadDiviner/Provider.tsx", "../../src/contexts/PayloadDiviner/use.ts", "../../src/contexts/DivinedPayload/use.ts"],
4
- "sourcesContent": ["import { createContextEx } from '@xylabs/react-shared'\n\nimport type { DivinedPayloadState } from './State.ts'\n\nexport const DivinedPayloadContext = createContextEx<DivinedPayloadState>()\n", "import { ErrorRender } from '@xylabs/react-error'\nimport { ModuleErrorSchema } from '@xyo-network/payload-model'\nimport { useBuildHuri } from '@xyo-network/react-payload-huri'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\nimport { useParams, useSearchParams } from 'react-router-dom'\n\nimport { useDivinePayload } from '../PayloadDiviner/index.ts'\nimport { DivinedPayloadContext } from './Context.ts'\nimport type { DivinedPayloadState } from './State.ts'\nimport { useDivinedPayload } from './use.ts'\n\nexport interface DivinedPayloadProviderProps extends PropsWithChildren {\n hash?: string\n}\n\nexport const DivinedPayloadProvider: React.FC<DivinedPayloadProviderProps> = ({ children, hash }) => {\n const { hash: hashParam } = useParams()\n\n const huriFromHashParam = useBuildHuri(hashParam)\n\n const [params] = useSearchParams()\n const huriSearchParameter = params.get('huri')\n const decodedHuriParam = decodeURIComponent(huriSearchParameter ?? '')\n const huriUri = hash ?? decodedHuriParam ?? huriFromHashParam\n\n const [payload, setPayload, payloadError] = useDivinePayload(huriUri)\n\n const value: DivinedPayloadState = useMemo(() => ({\n payload, payloadError, provided: true, setPayload,\n }), [payload, payloadError, setPayload])\n\n return (\n <DivinedPayloadContext value={value}>\n {children}\n </DivinedPayloadContext>\n )\n}\n\nexport const DivinedPayloadWithHandleInner: React.FC<PropsWithChildren> = ({ children }) => {\n const { payloadError } = useDivinedPayload()\n\n return (\n <ErrorRender\n error={payloadError\n ? {\n message: payloadError.message, schema: ModuleErrorSchema, sources: [],\n }\n : undefined}\n errorContext=\"Divined Payload Provider\"\n >\n {children}\n </ErrorRender>\n )\n}\n\nexport const DivinedPayloadWithHandleProvider: React.FC<DivinedPayloadProviderProps> = ({ children, ...props }) => {\n return (\n <DivinedPayloadProvider {...props}>\n <DivinedPayloadWithHandleInner>{children}</DivinedPayloadWithHandleInner>\n </DivinedPayloadProvider>\n )\n}\n", "import { createContextEx } from '@xylabs/react-shared'\n\nimport type { PayloadDivinerState } from './State.ts'\n\nconst PayloadDivinerContext = createContextEx<PayloadDivinerState>()\n\nexport { PayloadDivinerContext }\n", "import { useResetState } from '@xylabs/react-hooks'\nimport type { ContextExProviderProps } from '@xylabs/react-shared'\nimport type { PayloadDiviner } from '@xyo-network/diviner-payload-abstract'\nimport React, { useMemo } from 'react'\n\nimport { PayloadDivinerContext } from './Context.ts'\nimport type { PayloadDivinerState } from './State.ts'\n\nexport type PayloadDivinerProviderProps = ContextExProviderProps<{\n /** Required */\n diviner?: PayloadDiviner\n}>\n\nexport const PayloadDivinerProvider: React.FC<PayloadDivinerProviderProps> = ({\n diviner: divinerProp, required = false, children,\n}) => {\n const [diviner, setDiviner] = useResetState<PayloadDiviner | undefined>(divinerProp)\n\n const value: PayloadDivinerState = useMemo(() => ({\n diviner: diviner === divinerProp ? diviner : undefined, provided: true, setDiviner,\n }), [diviner, divinerProp, setDiviner])\n\n return (\n <PayloadDivinerContext\n value={value}\n >\n {diviner\n ? children\n : required\n ? null\n : children}\n </PayloadDivinerContext>\n )\n}\n", "import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { useContextEx } from '@xylabs/react-shared'\nimport { exists } from '@xylabs/sdk-js'\nimport type { HuriPayload } from '@xyo-network/diviner-huri'\nimport { HuriSchema } from '@xyo-network/diviner-huri'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type { Dispatch } from 'react'\nimport { useEffect, useState } from 'react'\n\nimport { PayloadDivinerContext } from './Context.ts'\n\nexport const usePayloadDiviner = (required = false) => {\n return useContextEx(PayloadDivinerContext, 'PayloadDiviner', required)\n}\n\nexport const useDivinePayload = <T extends Payload = Payload>(\n huri?: string,\n): [T | undefined | null, Dispatch<T | null | undefined>, Error | undefined] => {\n const { diviner } = usePayloadDiviner()\n const [payload, setPayload] = useState<T | null>()\n const [error, setError] = useState<Error>()\n\n useEffect(() => {\n // we do this to clear the payload when the diviner changes\n if (diviner) {\n // eslint-disable-next-line react-hooks/set-state-in-effect, react-x/set-state-in-effect\n setPayload(undefined)\n }\n }, [diviner])\n\n useAsyncEffect(\n async (mounted) => {\n if (huri && diviner && payload === undefined) {\n try {\n const huriPayload: HuriPayload = { huri: [huri], schema: HuriSchema }\n const [payload] = (await diviner?.divine([huriPayload])) ?? []\n if (mounted()) {\n setPayload((payload as T) || null)\n }\n } catch (ex) {\n if (mounted()) {\n setError(ex as Error)\n }\n }\n }\n },\n [diviner, huri, payload],\n )\n\n return [payload, setPayload, error]\n}\n\nexport const useDivinePayloads = <T extends Payload = Payload>(\n huriList: string[],\n): [(T | null)[] | undefined, Dispatch<(T | null)[] | undefined>, Error[] | undefined] => {\n const { diviner } = usePayloadDiviner()\n const [payloads, setPayloads] = useState<(T | null)[]>()\n const [errors, setErrors] = useState<Error[]>()\n\n useEffect(() => {\n if (diviner) {\n // clear payloads when diviner changes\n // eslint-disable-next-line react-hooks/set-state-in-effect, react-x/set-state-in-effect\n setPayloads(undefined)\n }\n }, [diviner])\n\n useAsyncEffect(\n async (mounted) => {\n console.log(`huriList: ${JSON.stringify(huriList, null, 2)}`)\n const payloads = await Promise.allSettled(\n huriList.map(async (huri) => {\n const huriPayload: HuriPayload = { huri: [huri], schema: HuriSchema }\n const [payload] = (await diviner?.divine([huriPayload])) ?? []\n return payload\n }),\n )\n if (mounted()) {\n setPayloads([...payloads.values()].map(value => (value.status === 'rejected' ? null : value.value)) as (T | null)[])\n setErrors(\n (\n [...payloads.values()].map(value => (value.status === 'rejected' ? new Error('divine failed', { cause: value.reason }) : undefined))\n ).filter(exists),\n )\n if (mounted()) {\n setPayloads([...payloads.values()].map(value => (value.status === 'rejected' ? null : value.value)) as (T | null)[])\n setErrors(\n (\n [...payloads.values()].map(value => (value.status === 'rejected' ? new Error('divine failed', { cause: value.reason }) : undefined))\n ).filter(exists),\n )\n }\n }\n },\n [diviner, huriList, payloads],\n )\n\n return [payloads, setPayloads, errors]\n}\n", "import { useContextEx } from '@xylabs/react-shared'\n\nimport { DivinedPayloadContext } from './Context.ts'\n\nexport const useDivinedPayload = () => useContextEx(DivinedPayloadContext, 'DivinedPayload', true)\n"],
5
- "mappings": ";AAAA,SAAS,uBAAuB;AAIzB,IAAM,wBAAwB,gBAAqC;;;ACJ1E,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,oBAAoB;AAE7B,SAAgB,WAAAA,gBAAe;AAC/B,SAAS,WAAW,uBAAuB;;;ACL3C,SAAS,mBAAAC,wBAAuB;AAIhC,IAAM,wBAAwBA,iBAAqC;;;ACJnE,SAAS,qBAAqB;AAG9B,SAAgB,eAAe;AAoB3B;AAVG,IAAM,yBAAgE,CAAC;AAAA,EAC5E,SAAS;AAAA,EAAa,WAAW;AAAA,EAAO;AAC1C,MAAM;AACJ,QAAM,CAAC,SAAS,UAAU,IAAI,cAA0C,WAAW;AAEnF,QAAM,QAA6B,QAAQ,OAAO;AAAA,IAChD,SAAS,YAAY,cAAc,UAAU;AAAA,IAAW,UAAU;AAAA,IAAM;AAAA,EAC1E,IAAI,CAAC,SAAS,aAAa,UAAU,CAAC;AAEtC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MAEC,oBACG,WACA,WACE,OACA;AAAA;AAAA,EACR;AAEJ;;;ACjCA,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,cAAc;AAEvB,SAAS,kBAAkB;AAG3B,SAAS,WAAW,gBAAgB;AAI7B,IAAM,oBAAoB,CAAC,WAAW,UAAU;AACrD,SAAO,aAAa,uBAAuB,kBAAkB,QAAQ;AACvE;AAEO,IAAM,mBAAmB,CAC9B,SAC8E;AAC9E,QAAM,EAAE,QAAQ,IAAI,kBAAkB;AACtC,QAAM,CAAC,SAAS,UAAU,IAAI,SAAmB;AACjD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAgB;AAE1C,YAAU,MAAM;AAEd,QAAI,SAAS;AAEX,iBAAW,MAAS;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AAEZ;AAAA,IACE,OAAO,YAAY;AACjB,UAAI,QAAQ,WAAW,YAAY,QAAW;AAC5C,YAAI;AACF,gBAAM,cAA2B,EAAE,MAAM,CAAC,IAAI,GAAG,QAAQ,WAAW;AACpE,gBAAM,CAACC,QAAO,IAAK,MAAM,SAAS,OAAO,CAAC,WAAW,CAAC,KAAM,CAAC;AAC7D,cAAI,QAAQ,GAAG;AACb,uBAAYA,YAAiB,IAAI;AAAA,UACnC;AAAA,QACF,SAAS,IAAI;AACX,cAAI,QAAQ,GAAG;AACb,qBAAS,EAAW;AAAA,UACtB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,SAAS,MAAM,OAAO;AAAA,EACzB;AAEA,SAAO,CAAC,SAAS,YAAY,KAAK;AACpC;AAEO,IAAM,oBAAoB,CAC/B,aACwF;AACxF,QAAM,EAAE,QAAQ,IAAI,kBAAkB;AACtC,QAAM,CAAC,UAAU,WAAW,IAAI,SAAuB;AACvD,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAkB;AAE9C,YAAU,MAAM;AACd,QAAI,SAAS;AAGX,kBAAY,MAAS;AAAA,IACvB;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AAEZ;AAAA,IACE,OAAO,YAAY;AACjB,cAAQ,IAAI,aAAa,KAAK,UAAU,UAAU,MAAM,CAAC,CAAC,EAAE;AAC5D,YAAMC,YAAW,MAAM,QAAQ;AAAA,QAC7B,SAAS,IAAI,OAAO,SAAS;AAC3B,gBAAM,cAA2B,EAAE,MAAM,CAAC,IAAI,GAAG,QAAQ,WAAW;AACpE,gBAAM,CAAC,OAAO,IAAK,MAAM,SAAS,OAAO,CAAC,WAAW,CAAC,KAAM,CAAC;AAC7D,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AACA,UAAI,QAAQ,GAAG;AACb,oBAAY,CAAC,GAAGA,UAAS,OAAO,CAAC,EAAE,IAAI,WAAU,MAAM,WAAW,aAAa,OAAO,MAAM,KAAM,CAAiB;AACnH;AAAA,UAEI,CAAC,GAAGA,UAAS,OAAO,CAAC,EAAE,IAAI,WAAU,MAAM,WAAW,aAAa,IAAI,MAAM,iBAAiB,EAAE,OAAO,MAAM,OAAO,CAAC,IAAI,MAAU,EACnI,OAAO,MAAM;AAAA,QACjB;AACA,YAAI,QAAQ,GAAG;AACb,sBAAY,CAAC,GAAGA,UAAS,OAAO,CAAC,EAAE,IAAI,WAAU,MAAM,WAAW,aAAa,OAAO,MAAM,KAAM,CAAiB;AACnH;AAAA,YAEI,CAAC,GAAGA,UAAS,OAAO,CAAC,EAAE,IAAI,WAAU,MAAM,WAAW,aAAa,IAAI,MAAM,iBAAiB,EAAE,OAAO,MAAM,OAAO,CAAC,IAAI,MAAU,EACnI,OAAO,MAAM;AAAA,UACjB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,SAAS,UAAU,QAAQ;AAAA,EAC9B;AAEA,SAAO,CAAC,UAAU,aAAa,MAAM;AACvC;;;AClGA,SAAS,gBAAAC,qBAAoB;AAItB,IAAM,oBAAoB,MAAMC,cAAa,uBAAuB,kBAAkB,IAAI;;;AJ6B7F,gBAAAC,YAAA;AAjBG,IAAM,yBAAgE,CAAC,EAAE,UAAU,KAAK,MAAM;AACnG,QAAM,EAAE,MAAM,UAAU,IAAI,UAAU;AAEtC,QAAM,oBAAoB,aAAa,SAAS;AAEhD,QAAM,CAAC,MAAM,IAAI,gBAAgB;AACjC,QAAM,sBAAsB,OAAO,IAAI,MAAM;AAC7C,QAAM,mBAAmB,mBAAmB,uBAAuB,EAAE;AACrE,QAAM,UAAU,QAAQ,oBAAoB;AAE5C,QAAM,CAAC,SAAS,YAAY,YAAY,IAAI,iBAAiB,OAAO;AAEpE,QAAM,QAA6BC,SAAQ,OAAO;AAAA,IAChD;AAAA,IAAS;AAAA,IAAc,UAAU;AAAA,IAAM;AAAA,EACzC,IAAI,CAAC,SAAS,cAAc,UAAU,CAAC;AAEvC,SACE,gBAAAD,KAAC,yBAAsB,OACpB,UACH;AAEJ;AAEO,IAAM,gCAA6D,CAAC,EAAE,SAAS,MAAM;AAC1F,QAAM,EAAE,aAAa,IAAI,kBAAkB;AAE3C,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,eACH;AAAA,QACE,SAAS,aAAa;AAAA,QAAS,QAAQ;AAAA,QAAmB,SAAS,CAAC;AAAA,MACtE,IACA;AAAA,MACJ,cAAa;AAAA,MAEZ;AAAA;AAAA,EACH;AAEJ;AAEO,IAAM,mCAA0E,CAAC,EAAE,UAAU,GAAG,MAAM,MAAM;AACjH,SACE,gBAAAA,KAAC,0BAAwB,GAAG,OAC1B,0BAAAA,KAAC,iCAA+B,UAAS,GAC3C;AAEJ;",
4
+ "sourcesContent": ["import { createContextEx } from '@xylabs/react-shared'\n\nimport type { DivinedPayloadState } from './State.ts'\n\nexport const DivinedPayloadContext = createContextEx<DivinedPayloadState>()\n", "import { ErrorRender } from '@xylabs/react-error'\nimport { useBuildHuri } from '@xyo-network/react-payload-huri'\nimport { ModuleErrorSchema } from '@xyo-network/sdk-js'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\nimport { useParams, useSearchParams } from 'react-router-dom'\n\nimport { useDivinePayload } from '../PayloadDiviner/index.ts'\nimport { DivinedPayloadContext } from './Context.ts'\nimport type { DivinedPayloadState } from './State.ts'\nimport { useDivinedPayload } from './use.ts'\n\nexport interface DivinedPayloadProviderProps extends PropsWithChildren {\n hash?: string\n}\n\nexport const DivinedPayloadProvider: React.FC<DivinedPayloadProviderProps> = ({ children, hash }) => {\n const { hash: hashParam } = useParams()\n\n const huriFromHashParam = useBuildHuri(hashParam)\n\n const [params] = useSearchParams()\n const huriSearchParameter = params.get('huri')\n const decodedHuriParam = decodeURIComponent(huriSearchParameter ?? '')\n const huriUri = hash ?? decodedHuriParam ?? huriFromHashParam\n\n const [payload, setPayload, payloadError] = useDivinePayload(huriUri)\n\n const value: DivinedPayloadState = useMemo(() => ({\n payload, payloadError, provided: true, setPayload,\n }), [payload, payloadError, setPayload])\n\n return (\n <DivinedPayloadContext value={value}>\n {children}\n </DivinedPayloadContext>\n )\n}\n\nexport const DivinedPayloadWithHandleInner: React.FC<PropsWithChildren> = ({ children }) => {\n const { payloadError } = useDivinedPayload()\n\n return (\n <ErrorRender\n error={payloadError\n ? {\n message: payloadError.message, schema: ModuleErrorSchema, sources: [],\n }\n : undefined}\n errorContext=\"Divined Payload Provider\"\n >\n {children}\n </ErrorRender>\n )\n}\n\nexport const DivinedPayloadWithHandleProvider: React.FC<DivinedPayloadProviderProps> = ({ children, ...props }) => {\n return (\n <DivinedPayloadProvider {...props}>\n <DivinedPayloadWithHandleInner>{children}</DivinedPayloadWithHandleInner>\n </DivinedPayloadProvider>\n )\n}\n", "import { createContextEx } from '@xylabs/react-shared'\n\nimport type { PayloadDivinerState } from './State.ts'\n\nconst PayloadDivinerContext = createContextEx<PayloadDivinerState>()\n\nexport { PayloadDivinerContext }\n", "import { useResetState } from '@xylabs/react-hooks'\nimport type { ContextExProviderProps } from '@xylabs/react-shared'\nimport type { PayloadDiviner } from '@xyo-network/diviner-payload-abstract'\nimport React, { useMemo } from 'react'\n\nimport { PayloadDivinerContext } from './Context.ts'\nimport type { PayloadDivinerState } from './State.ts'\n\nexport type PayloadDivinerProviderProps = ContextExProviderProps<{\n /** Required */\n diviner?: PayloadDiviner\n}>\n\nexport const PayloadDivinerProvider: React.FC<PayloadDivinerProviderProps> = ({\n diviner: divinerProp, required = false, children,\n}) => {\n const [diviner, setDiviner] = useResetState<PayloadDiviner | undefined>(divinerProp)\n\n const value: PayloadDivinerState = useMemo(() => ({\n diviner: diviner === divinerProp ? diviner : undefined, provided: true, setDiviner,\n }), [diviner, divinerProp, setDiviner])\n\n return (\n <PayloadDivinerContext\n value={value}\n >\n {diviner\n ? children\n : required\n ? null\n : children}\n </PayloadDivinerContext>\n )\n}\n", "import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { useContextEx } from '@xylabs/react-shared'\nimport { exists } from '@xylabs/sdk-js'\nimport type { HuriPayload } from '@xyo-network/diviner-huri'\nimport { HuriSchema } from '@xyo-network/diviner-huri'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport type { Dispatch } from 'react'\nimport { useEffect, useState } from 'react'\n\nimport { PayloadDivinerContext } from './Context.ts'\n\nexport const usePayloadDiviner = (required = false) => {\n return useContextEx(PayloadDivinerContext, 'PayloadDiviner', required)\n}\n\nexport const useDivinePayload = <T extends Payload = Payload>(\n huri?: string,\n): [T | undefined | null, Dispatch<T | null | undefined>, Error | undefined] => {\n const { diviner } = usePayloadDiviner()\n const [payload, setPayload] = useState<T | null>()\n const [error, setError] = useState<Error>()\n\n useEffect(() => {\n // we do this to clear the payload when the diviner changes\n if (diviner) {\n // eslint-disable-next-line react-hooks/set-state-in-effect, react-x/set-state-in-effect\n setPayload(undefined)\n }\n }, [diviner])\n\n useAsyncEffect(\n async (mounted) => {\n if (huri && diviner && payload === undefined) {\n try {\n const huriPayload: HuriPayload = { huri: [huri], schema: HuriSchema }\n const [payload] = (await diviner?.divine([huriPayload])) ?? []\n if (mounted()) {\n setPayload((payload as T) || null)\n }\n } catch (ex) {\n if (mounted()) {\n setError(ex as Error)\n }\n }\n }\n },\n [diviner, huri, payload],\n )\n\n return [payload, setPayload, error]\n}\n\nexport const useDivinePayloads = <T extends Payload = Payload>(\n huriList: string[],\n): [(T | null)[] | undefined, Dispatch<(T | null)[] | undefined>, Error[] | undefined] => {\n const { diviner } = usePayloadDiviner()\n const [payloads, setPayloads] = useState<(T | null)[]>()\n const [errors, setErrors] = useState<Error[]>()\n\n useEffect(() => {\n if (diviner) {\n // clear payloads when diviner changes\n // eslint-disable-next-line react-hooks/set-state-in-effect, react-x/set-state-in-effect\n setPayloads(undefined)\n }\n }, [diviner])\n\n useAsyncEffect(\n async (mounted) => {\n console.log(`huriList: ${JSON.stringify(huriList, null, 2)}`)\n const payloads = await Promise.allSettled(\n huriList.map(async (huri) => {\n const huriPayload: HuriPayload = { huri: [huri], schema: HuriSchema }\n const [payload] = (await diviner?.divine([huriPayload])) ?? []\n return payload\n }),\n )\n if (mounted()) {\n setPayloads([...payloads.values()].map(value => (value.status === 'rejected' ? null : value.value)) as (T | null)[])\n setErrors(\n (\n [...payloads.values()].map(value => (value.status === 'rejected' ? new Error('divine failed', { cause: value.reason }) : undefined))\n ).filter(exists),\n )\n if (mounted()) {\n setPayloads([...payloads.values()].map(value => (value.status === 'rejected' ? null : value.value)) as (T | null)[])\n setErrors(\n (\n [...payloads.values()].map(value => (value.status === 'rejected' ? new Error('divine failed', { cause: value.reason }) : undefined))\n ).filter(exists),\n )\n }\n }\n },\n [diviner, huriList, payloads],\n )\n\n return [payloads, setPayloads, errors]\n}\n", "import { useContextEx } from '@xylabs/react-shared'\n\nimport { DivinedPayloadContext } from './Context.ts'\n\nexport const useDivinedPayload = () => useContextEx(DivinedPayloadContext, 'DivinedPayload', true)\n"],
5
+ "mappings": "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",
6
6
  "names": ["useMemo", "createContextEx", "payload", "payloads", "useContextEx", "useContextEx", "jsx", "useMemo"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/react-payload-diviner",
3
- "version": "9.0.2",
3
+ "version": "9.0.4",
4
4
  "description": "Common React library for all XYO projects that use React",
5
5
  "keywords": [
6
6
  "xyo",
@@ -41,7 +41,7 @@
41
41
  "README.md"
42
42
  ],
43
43
  "dependencies": {
44
- "@xyo-network/react-payload-huri": "~9.0.2"
44
+ "@xyo-network/react-payload-huri": "~9.0.4"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@bitauth/libauth": "~3.0.0",
@@ -64,15 +64,13 @@
64
64
  "@xylabs/react-shared": "~9.0.2",
65
65
  "@xylabs/sdk-js": "^6.0.7",
66
66
  "@xylabs/threads": "^6.0.7",
67
- "@xylabs/toolchain": "~8.1.12",
68
- "@xylabs/tsconfig": "^8.1.12",
69
- "@xylabs/tsconfig-dom": "^8.1.12",
70
- "@xylabs/tsconfig-react": "~8.1.12",
67
+ "@xylabs/toolchain": "~8.1.15",
68
+ "@xylabs/tsconfig": "^8.1.15",
69
+ "@xylabs/tsconfig-dom": "^8.1.15",
70
+ "@xylabs/tsconfig-react": "~8.1.15",
71
71
  "@xyo-network/diviner-huri": "~6.0.2",
72
- "@xyo-network/diviner-model": "^6.0.2",
73
72
  "@xyo-network/diviner-payload-abstract": "~6.0.2",
74
- "@xyo-network/network": "~6.0.7",
75
- "@xyo-network/payload-model": "^6.0.7",
73
+ "@xyo-network/sdk-js": "^6.0.2",
76
74
  "@xyo-network/sdk-protocol-js": "~6.0.7",
77
75
  "ajv": "^8.20.0",
78
76
  "async-mutex": "^0.5.0",
@@ -118,10 +116,8 @@
118
116
  "@xylabs/sdk-js": "^6.0",
119
117
  "@xylabs/threads": "^6.0",
120
118
  "@xyo-network/diviner-huri": "~6.0",
121
- "@xyo-network/diviner-model": "^6.0",
122
119
  "@xyo-network/diviner-payload-abstract": "~6.0",
123
- "@xyo-network/network": "~6.0",
124
- "@xyo-network/payload-model": "^6.0",
120
+ "@xyo-network/sdk-js": "^6.0",
125
121
  "@xyo-network/sdk-protocol-js": "~6.0",
126
122
  "ajv": "^8.20",
127
123
  "async-mutex": "^0.5",