@seamapi/react 4.9.0 → 4.9.1

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.
@@ -30,5 +30,5 @@ interface SeamProviderBaseProps extends PropsWithChildren {
30
30
  onSessionUpdate?: (client: SeamHttp) => void;
31
31
  }
32
32
  export declare const seamComponentsClassName = "seam-components";
33
- export declare function SeamProvider({ children, disableTelemetry, disableCssInjection, disableFontInjection, unminifiyCss, telemetryClient, ...props }: SeamProviderProps): JSX.Element;
33
+ export declare function SeamProvider({ children, disableTelemetry, disableCssInjection, disableFontInjection, unminifiyCss, telemetryClient, queryClient, ...props }: SeamProviderProps): JSX.Element;
34
34
  export {};
@@ -5,7 +5,7 @@ import { useSeamFont } from '../../lib/seam/use-seam-font.js';
5
5
  import { useSeamStyles } from '../../lib/seam/use-seam-styles.js';
6
6
  import { TelemetryProvider, useUserTelemetry, } from '../../lib/telemetry/index.js';
7
7
  export const seamComponentsClassName = 'seam-components';
8
- export function SeamProvider({ children, disableTelemetry = false, disableCssInjection = false, disableFontInjection = false, unminifiyCss = false, telemetryClient, ...props }) {
8
+ export function SeamProvider({ children, disableTelemetry = false, disableCssInjection = false, disableFontInjection = false, unminifiyCss = false, telemetryClient, queryClient, ...props }) {
9
9
  useSeamStyles({ disabled: disableCssInjection, unminified: unminifiyCss });
10
10
  useSeamFont({ disabled: disableFontInjection });
11
11
  const { Provider } = seamContext;
@@ -14,7 +14,7 @@ export function SeamProvider({ children, disableTelemetry = false, disableCssInj
14
14
  const context = createSeamContextValue(props);
15
15
  return context;
16
16
  }, [props]);
17
- return (_jsx("div", { className: seamComponentsClassName, children: _jsx(TelemetryProvider, { client: telemetryClient ?? globalThis.seamTelemetryClient, disabled: disableTelemetry, endpoint: endpoint, children: _jsx(SeamQueryProvider, { ...props, children: _jsx(Provider, { value: value, children: _jsx(Telemetry, { children: children }) }) }) }) }));
17
+ return (_jsx("div", { className: seamComponentsClassName, children: _jsx(TelemetryProvider, { client: telemetryClient ?? globalThis.seamTelemetryClient, disabled: disableTelemetry, endpoint: endpoint, children: _jsx(SeamQueryProvider, { queryClient: queryClient ?? globalThis.seamQueryClient, ...props, children: _jsx(Provider, { value: value, children: _jsx(Telemetry, { children: children }) }) }) }) }));
18
18
  }
19
19
  function Telemetry({ children }) {
20
20
  useUserTelemetry();
@@ -1 +1 @@
1
- {"version":3,"file":"SeamProvider.js","sourceRoot":"","sources":["../../src/lib/seam/SeamProvider.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAA0B,OAAO,EAAE,MAAM,OAAO,CAAA;AAEtE,OAAO,EACL,iBAAiB,GAIlB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAEL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,wBAAwB,CAAA;AA8C/B,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAA;AAExD,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,mBAAmB,GAAG,KAAK,EAC3B,oBAAoB,GAAG,KAAK,EAC5B,YAAY,GAAG,KAAK,EACpB,eAAe,EACf,GAAG,KAAK,EACU;IAClB,aAAa,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;IAC1E,WAAW,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAA;IAE/C,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAA;IAEhC,MAAM,QAAQ,GAAG,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;QAC7C,OAAO,OAAO,CAAA;IAChB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,CACL,cAAK,SAAS,EAAE,uBAAuB,YACrC,KAAC,iBAAiB,IAChB,MAAM,EAAE,eAAe,IAAI,UAAU,CAAC,mBAAmB,EACzD,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,QAAQ,YAElB,KAAC,iBAAiB,OAAK,KAAK,YAC1B,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACpB,KAAC,SAAS,cAAE,QAAQ,GAAa,GACxB,GACO,GACF,GAChB,CACP,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,QAAQ,EAAqB;IAChD,gBAAgB,EAAE,CAAA;IAClB,OAAO,4BAAG,QAAQ,GAAI,CAAA;AACxB,CAAC;AAED,MAAM,6BAA6B,GAAG,GAAgB,EAAE;IACtD,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjB,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAAC,QAA2B,EAAe,EAAE;IAC1E,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,6BAA6B,EAAE,CAAA;AAE/D,MAAM,WAAW,GAAG,aAAa,CAAc,uBAAuB,CAAC,CAAA"}
1
+ {"version":3,"file":"SeamProvider.js","sourceRoot":"","sources":["../../src/lib/seam/SeamProvider.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAA0B,OAAO,EAAE,MAAM,OAAO,CAAA;AAEtE,OAAO,EACL,iBAAiB,GAIlB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAEL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,wBAAwB,CAAA;AA8C/B,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAA;AAExD,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,mBAAmB,GAAG,KAAK,EAC3B,oBAAoB,GAAG,KAAK,EAC5B,YAAY,GAAG,KAAK,EACpB,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACU;IAClB,aAAa,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;IAC1E,WAAW,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAA;IAE/C,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAA;IAEhC,MAAM,QAAQ,GAAG,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;QAC7C,OAAO,OAAO,CAAA;IAChB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,CACL,cAAK,SAAS,EAAE,uBAAuB,YACrC,KAAC,iBAAiB,IAChB,MAAM,EAAE,eAAe,IAAI,UAAU,CAAC,mBAAmB,EACzD,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,QAAQ,YAElB,KAAC,iBAAiB,IAChB,WAAW,EAAE,WAAW,IAAI,UAAU,CAAC,eAAe,KAClD,KAAK,YAET,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACpB,KAAC,SAAS,cAAE,QAAQ,GAAa,GACxB,GACO,GACF,GAChB,CACP,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,QAAQ,EAAqB;IAChD,gBAAgB,EAAE,CAAA;IAClB,OAAO,4BAAG,QAAQ,GAAI,CAAA;AACxB,CAAC;AAED,MAAM,6BAA6B,GAAG,GAAgB,EAAE;IACtD,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjB,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAAC,QAA2B,EAAe,EAAE;IAC1E,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,6BAA6B,EAAE,CAAA;AAE/D,MAAM,WAAW,GAAG,aAAa,CAAc,uBAAuB,CAAC,CAAA"}
@@ -8,10 +8,12 @@ export interface SeamQueryContext {
8
8
  publishableKey?: string | undefined;
9
9
  userIdentifierKey?: string | undefined;
10
10
  clientSessionToken?: string | undefined;
11
+ queryKeyPrefix?: string | undefined;
11
12
  }
12
13
  export type SeamQueryProviderProps = SeamQueryProviderPropsWithClient | SeamQueryProviderPropsWithPublishableKey | SeamQueryProviderPropsWithClientSessionToken;
13
14
  export interface SeamQueryProviderPropsWithClient extends SeamQueryProviderBaseProps {
14
15
  client: SeamHttp;
16
+ queryKeyPrefix: string;
15
17
  }
16
18
  export interface SeamQueryProviderPropsWithPublishableKey extends SeamQueryProviderBaseProps, SeamQueryProviderClientOptions {
17
19
  publishableKey: string;
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
2
+ import { QueryClient, QueryClientContext, QueryClientProvider, } from '@tanstack/react-query';
3
3
  import { createContext, useContext, useEffect, useMemo, } from 'react';
4
4
  import { useSeamClient } from './use-seam-client.js';
5
5
  const defaultQueryClient = new QueryClient();
@@ -19,7 +19,13 @@ export function SeamQueryProvider({ children, onSessionUpdate = () => { }, query
19
19
  throw new Error(`Must provide either a Seam client, clientSessionToken, or a publishableKey.`);
20
20
  }
21
21
  const { Provider } = seamContext;
22
- return (_jsx(QueryClientProvider, { client: queryClient ?? globalThis.seamQueryClient ?? defaultQueryClient, children: _jsx(Provider, { value: value, children: _jsx(Session, { onSessionUpdate: onSessionUpdate, children: children }) }) }));
22
+ const queryClientFromContext = useContext(QueryClientContext);
23
+ if (queryClientFromContext != null &&
24
+ queryClient != null &&
25
+ queryClientFromContext !== queryClient) {
26
+ throw new Error('The QueryClient passed into SeamQueryProvider is different from the one in the existing QueryClientContext. Omit the queryClient prop from SeamProvider or SeamQueryProvider to use the existing QueryClient provided by the QueryClientProvider.');
27
+ }
28
+ return (_jsx(QueryClientProvider, { client: queryClientFromContext ?? queryClient ?? defaultQueryClient, children: _jsx(Provider, { value: value, children: _jsx(Session, { onSessionUpdate: onSessionUpdate, children: children }) }) }));
23
29
  }
24
30
  function Session({ onSessionUpdate, children, }) {
25
31
  const { client } = useSeamClient();
@@ -44,6 +50,9 @@ const createDefaultSeamQueryContextValue = () => {
44
50
  };
45
51
  const createSeamQueryContextValue = (options) => {
46
52
  if (isSeamQueryProviderPropsWithClient(options)) {
53
+ if (options.queryKeyPrefix == null) {
54
+ throw new InvalidSeamQueryProviderProps('The client prop must be used with a queryKeyPrefix prop.');
55
+ }
47
56
  return {
48
57
  ...options,
49
58
  endpointClient: null,
@@ -1 +1 @@
1
- {"version":3,"file":"SeamQueryProvider.js","sourceRoot":"","sources":["../../src/lib/seam/SeamQueryProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SeamQueryProvider.js","sourceRoot":"","sources":["../../src/lib/seam/SeamQueryProvider.tsx"],"names":[],"mappings":";AAKA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,aAAa,EAEb,UAAU,EACV,SAAS,EACT,OAAO,GACR,MAAM,OAAO,CAAA;AAEd,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AA6CpD,MAAM,kBAAkB,GAAG,IAAI,WAAW,EAAE,CAAA;AAE5C,MAAM,UAAU,iBAAiB,CAAC,EAChC,QAAQ,EACR,eAAe,GAAG,GAAG,EAAE,GAAE,CAAC,EAC1B,WAAW,EACX,GAAG,KAAK,EACe;IACvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAA;QAClD,IACE,OAAO,CAAC,MAAM,IAAI,IAAI;YACtB,OAAO,CAAC,cAAc,IAAI,IAAI;YAC9B,OAAO,CAAC,kBAAkB,IAAI,IAAI,EAClC,CAAC;YACD,OAAO,4BAA4B,CAAA;QACrC,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,IACE,KAAK,CAAC,MAAM,IAAI,IAAI;QACpB,KAAK,CAAC,cAAc,IAAI,IAAI;QAC5B,KAAK,CAAC,kBAAkB,IAAI,IAAI,EAChC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAA;IACH,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAA;IAChC,MAAM,sBAAsB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAE7D,IACE,sBAAsB,IAAI,IAAI;QAC9B,WAAW,IAAI,IAAI;QACnB,sBAAsB,KAAK,WAAW,EACtC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,mPAAmP,CACpP,CAAA;IACH,CAAC;IAED,OAAO,CACL,KAAC,mBAAmB,IAClB,MAAM,EAAE,sBAAsB,IAAI,WAAW,IAAI,kBAAkB,YAEnE,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACpB,KAAC,OAAO,IAAC,eAAe,EAAE,eAAe,YAAG,QAAQ,GAAW,GACtD,GACS,CACvB,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,EACf,eAAe,EACf,QAAQ,GAES;IACjB,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAA;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,IAAI,IAAI;YAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAA;IAE7B,OAAO,4BAAG,QAAQ,GAAI,CAAA;AACxB,CAAC;AAED,MAAM,kCAAkC,GAAG,GAAqB,EAAE;IAChE,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAA;QAC/C,CAAC;QACD,OAAO,2BAA2B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAA;IAC/C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,2BAA2B,GAAG,CAClC,OAA+B,EACb,EAAE;IACpB,IAAI,kCAAkC,CAAC,OAAO,CAAC,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,6BAA6B,CACrC,0DAA0D,CAC3D,CAAA;QACH,CAAC;QACD,OAAO;YACL,GAAG,OAAO;YACV,cAAc,EAAE,IAAI;SACrB,CAAA;IACH,CAAC;IAED,IAAI,8CAA8C,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,MAAM,EAAE,kBAAkB,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAA;QACxD,OAAO;YACL,kBAAkB;YAClB,aAAa;YACb,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,IAAI;SACrB,CAAA;IACH,CAAC;IAED,IAAI,0CAA0C,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAA;QACvE,OAAO;YACL,cAAc;YACd,iBAAiB;YACjB,aAAa;YACb,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,IAAI;SACrB,CAAA;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAA;AAC/C,CAAC,CAAA;AAED,MAAM,4BAA4B,GAAG,kCAAkC,EAAE,CAAA;AAEzE,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CACtC,4BAA4B,CAC7B,CAAA;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAAC,WAAW,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,kCAAkC,GAAG,CACzC,KAA6B,EACc,EAAE;IAC7C,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAEtC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAA;IACvC,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,KAAK,CAAA;IAEhC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAA;IAC5E,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,6BAA6B,CACrC,uCAAuC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CACzE,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,0CAA0C,GAAG,CACjD,KAA6B,EAEE,EAAE;IACjC,IAAI,CAAC,CAAC,gBAAgB,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAE9C,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAA;IAChC,IAAI,cAAc,IAAI,IAAI;QAAE,OAAO,KAAK,CAAA;IAExC,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,6BAA6B,CACrC,8DAA8D,CAC/D,CAAA;IACH,CAAC;IAED,IAAI,oBAAoB,IAAI,KAAK,IAAI,KAAK,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC;QACtE,MAAM,IAAI,6BAA6B,CACrC,0EAA0E,CAC3E,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,8CAA8C,GAAG,CACrD,KAA6B,EAEE,EAAE;IACjC,IAAI,CAAC,CAAC,oBAAoB,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAElD,MAAM,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAA;IACpC,IAAI,kBAAkB,IAAI,IAAI;QAAE,OAAO,KAAK,CAAA;IAE5C,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,6BAA6B,CACrC,kEAAkE,CACnE,CAAA;IACH,CAAC;IAED,IAAI,gBAAgB,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;QAC9D,MAAM,IAAI,6BAA6B,CACrC,0EAA0E,CAC3E,CAAA;IACH,CAAC;IAED,IAAI,mBAAmB,IAAI,KAAK,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;QACpE,MAAM,IAAI,6BAA6B,CACrC,6EAA6E,CAC9E,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,6BAA8B,SAAQ,KAAK;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,6CAA6C,OAAO,EAAE,CAAC,CAAA;QAC7D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IACnC,CAAC;CACF"}
@@ -2,6 +2,7 @@ import { SeamHttp, SeamHttpEndpoints } from '@seamapi/http/connect';
2
2
  export declare function useSeamClient(): {
3
3
  client: SeamHttp | null;
4
4
  endpointClient: SeamHttpEndpoints | null;
5
+ queryKeyPrefixes: string[];
5
6
  isPending: boolean;
6
7
  isError: boolean;
7
8
  error: unknown;
@@ -4,10 +4,11 @@ import { useEffect } from 'react';
4
4
  import { v4 as uuidv4 } from 'uuid';
5
5
  import { useSeamQueryContext } from './SeamQueryProvider.js';
6
6
  export function useSeamClient() {
7
- const { client, clientOptions, publishableKey, clientSessionToken, ...context } = useSeamQueryContext();
7
+ const { client, clientOptions, publishableKey, clientSessionToken, queryKeyPrefix, ...context } = useSeamQueryContext();
8
8
  const userIdentifierKey = useUserIdentifierKeyOrFingerprint(clientSessionToken != null ? '' : context.userIdentifierKey);
9
9
  const { isPending, isError, error, data } = useQuery({
10
10
  queryKey: [
11
+ ...getQueryKeyPrefixes({ queryKeyPrefix }),
11
12
  'client',
12
13
  {
13
14
  client,
@@ -40,6 +41,12 @@ export function useSeamClient() {
40
41
  return {
41
42
  client: data?.[0] ?? null,
42
43
  endpointClient: data?.[1] ?? null,
44
+ queryKeyPrefixes: getQueryKeyPrefixes({
45
+ queryKeyPrefix,
46
+ userIdentifierKey,
47
+ publishableKey,
48
+ clientSessionToken,
49
+ }),
43
50
  isPending,
44
51
  isError,
45
52
  error,
@@ -74,4 +81,16 @@ This is not recommended because the client session is now bound to this machine
74
81
  globalThis.localStorage?.setItem('seam_user_fingerprint', fingerprint);
75
82
  return fingerprint;
76
83
  }
84
+ const getQueryKeyPrefixes = ({ queryKeyPrefix, userIdentifierKey, publishableKey, clientSessionToken, }) => {
85
+ const seamPrefix = 'seam';
86
+ if (queryKeyPrefix != null)
87
+ return [seamPrefix, queryKeyPrefix];
88
+ if (clientSessionToken != null) {
89
+ return [seamPrefix, clientSessionToken];
90
+ }
91
+ if (publishableKey != null && userIdentifierKey != null) {
92
+ return [seamPrefix, publishableKey, userIdentifierKey];
93
+ }
94
+ return [seamPrefix];
95
+ };
77
96
  //# sourceMappingURL=use-seam-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-seam-client.js","sourceRoot":"","sources":["../../src/lib/seam/use-seam-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-seam-client.js","sourceRoot":"","sources":["../../src/lib/seam/use-seam-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAE5D,MAAM,UAAU,aAAa;IAQ3B,MAAM,EACJ,MAAM,EACN,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,GAAG,OAAO,EACX,GAAG,mBAAmB,EAAE,CAAA;IACzB,MAAM,iBAAiB,GAAG,iCAAiC,CACzD,kBAAkB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAC5D,CAAA;IAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,CAElD;QACA,QAAQ,EAAE;YACR,GAAG,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAC;YAC1C,QAAQ;YACR;gBACE,MAAM;gBACN,aAAa;gBACb,cAAc;gBACd,iBAAiB;gBACjB,kBAAkB;aACnB;SACF;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,MAAM,IAAI,IAAI;gBAChB,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;YAE9D,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;gBAC/B,MAAM,wBAAwB,GAAG,QAAQ,CAAC,sBAAsB,CAC9D,kBAAkB,EAClB,aAAa,CACd,CAAA;gBAED,OAAO;oBACL,wBAAwB;oBACxB,iBAAiB,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,CAAC;iBAC9D,CAAA;YACH,CAAC;YAED,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAA;YACH,CAAC;YAED,MAAM,oBAAoB,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAC5D,cAAc,EACd,iBAAiB,EACjB,aAAa,CACd,CAAA;YACD,OAAO;gBACL,oBAAoB;gBACpB,iBAAiB,CAAC,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC;aAC1D,CAAA;QACH,CAAC;KACF,CAAC,CAAA;IAEF,OAAO;QACL,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;QACzB,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;QACjC,gBAAgB,EAAE,mBAAmB,CAAC;YACpC,cAAc;YACd,iBAAiB;YACjB,cAAc;YACd,kBAAkB;SACnB,CAAC;QACF,SAAS;QACT,OAAO;QACP,KAAK;KACN,CAAA;AACH,CAAC;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C;QACE,KAAK,CACH;YACE,sCAAsC;YACtC,8FAA8F;YAC9F,uEAAuE;YACvE,+CAA+C;SAChD,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACjD,CAAC;CACF;AAED,SAAS,iCAAiC,CACxC,iBAAqC;IAErC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,iBAAiB,IAAI,IAAI;YAAE,OAAM;QACrC,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC;;8GAE6F,CAAC,CAAA;IAC7G,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAEvB,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,MAAM,WAAW,GACf,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,uBAAuB,CAAC;QACzD,eAAe,MAAM,EAAE,EAAE,CAAA;IAE3B,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAA;IAEtE,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,EAC3B,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,kBAAkB,GAMnB,EAAY,EAAE;IACb,MAAM,UAAU,GAAG,MAAM,CAAA;IAEzB,IAAI,cAAc,IAAI,IAAI;QAAE,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;IAE/D,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;QAC/B,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,cAAc,IAAI,IAAI,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;QACxD,OAAO,CAAC,UAAU,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,CAAC,UAAU,CAAC,CAAA;AACrB,CAAC,CAAA"}
@@ -1,11 +1,15 @@
1
1
  import { useQuery, } from '@tanstack/react-query';
2
2
  import { useSeamClient } from '../../lib/seam/use-seam-client.js';
3
3
  export function useSeamQuery(endpointPath, parameters, options = {}) {
4
- const { endpointClient: client } = useSeamClient();
4
+ const { endpointClient: client, queryKeyPrefixes } = useSeamClient();
5
5
  return useQuery({
6
6
  enabled: client != null,
7
7
  ...options,
8
- queryKey: [endpointPath, parameters],
8
+ queryKey: [
9
+ ...queryKeyPrefixes,
10
+ ...endpointPath.split('/').filter((v) => v !== ''),
11
+ parameters,
12
+ ],
9
13
  queryFn: async () => {
10
14
  if (client == null)
11
15
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"use-seam-query.js","sourceRoot":"","sources":["../../src/lib/seam/use-seam-query.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,GAGT,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAQ3D,MAAM,UAAU,YAAY,CAC1B,YAAe,EACf,UAAsC,EACtC,UACiD,EAAE;IAEnD,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAA;IAClD,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,IAAI;QACvB,GAAG,OAAO;QACV,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;QACpC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAA;YAC/B,iHAAiH;YACjH,2FAA2F;YAC3F,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAmC,CAAA;YACvE,OAAO,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"use-seam-query.js","sourceRoot":"","sources":["../../src/lib/seam/use-seam-query.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,GAGT,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAQ3D,MAAM,UAAU,YAAY,CAC1B,YAAe,EACf,UAAsC,EACtC,UACiD,EAAE;IAEnD,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,aAAa,EAAE,CAAA;IACpE,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,IAAI;QACvB,GAAG,OAAO;QACV,QAAQ,EAAE;YACR,GAAG,gBAAgB;YACnB,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAClD,UAAU;SACX;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAA;YAC/B,iHAAiH;YACjH,2FAA2F;YAC3F,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAmC,CAAA;YACvE,OAAO,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const seamapiReactVersion = "4.9.0";
1
+ declare const seamapiReactVersion = "4.9.1";
2
2
  export default seamapiReactVersion;
package/lib/version.js CHANGED
@@ -1,3 +1,3 @@
1
- const seamapiReactVersion = '4.9.0';
1
+ const seamapiReactVersion = '4.9.1';
2
2
  export default seamapiReactVersion;
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/react",
3
- "version": "4.9.0",
3
+ "version": "4.9.1",
4
4
  "description": "Seam Components.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -69,6 +69,7 @@ export function SeamProvider({
69
69
  disableFontInjection = false,
70
70
  unminifiyCss = false,
71
71
  telemetryClient,
72
+ queryClient,
72
73
  ...props
73
74
  }: SeamProviderProps): JSX.Element {
74
75
  useSeamStyles({ disabled: disableCssInjection, unminified: unminifiyCss })
@@ -89,7 +90,10 @@ export function SeamProvider({
89
90
  disabled={disableTelemetry}
90
91
  endpoint={endpoint}
91
92
  >
92
- <SeamQueryProvider {...props}>
93
+ <SeamQueryProvider
94
+ queryClient={queryClient ?? globalThis.seamQueryClient}
95
+ {...props}
96
+ >
93
97
  <Provider value={value}>
94
98
  <Telemetry>{children}</Telemetry>
95
99
  </Provider>
@@ -3,7 +3,11 @@ import type {
3
3
  SeamHttpEndpoints,
4
4
  SeamHttpOptionsWithClientSessionToken,
5
5
  } from '@seamapi/http/connect'
6
- import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
6
+ import {
7
+ QueryClient,
8
+ QueryClientContext,
9
+ QueryClientProvider,
10
+ } from '@tanstack/react-query'
7
11
  import {
8
12
  createContext,
9
13
  type PropsWithChildren,
@@ -21,6 +25,7 @@ export interface SeamQueryContext {
21
25
  publishableKey?: string | undefined
22
26
  userIdentifierKey?: string | undefined
23
27
  clientSessionToken?: string | undefined
28
+ queryKeyPrefix?: string | undefined
24
29
  }
25
30
 
26
31
  export type SeamQueryProviderProps =
@@ -31,6 +36,7 @@ export type SeamQueryProviderProps =
31
36
  export interface SeamQueryProviderPropsWithClient
32
37
  extends SeamQueryProviderBaseProps {
33
38
  client: SeamHttp
39
+ queryKeyPrefix: string
34
40
  }
35
41
 
36
42
  export interface SeamQueryProviderPropsWithPublishableKey
@@ -86,10 +92,21 @@ export function SeamQueryProvider({
86
92
  }
87
93
 
88
94
  const { Provider } = seamContext
95
+ const queryClientFromContext = useContext(QueryClientContext)
96
+
97
+ if (
98
+ queryClientFromContext != null &&
99
+ queryClient != null &&
100
+ queryClientFromContext !== queryClient
101
+ ) {
102
+ throw new Error(
103
+ 'The QueryClient passed into SeamQueryProvider is different from the one in the existing QueryClientContext. Omit the queryClient prop from SeamProvider or SeamQueryProvider to use the existing QueryClient provided by the QueryClientProvider.'
104
+ )
105
+ }
89
106
 
90
107
  return (
91
108
  <QueryClientProvider
92
- client={queryClient ?? globalThis.seamQueryClient ?? defaultQueryClient}
109
+ client={queryClientFromContext ?? queryClient ?? defaultQueryClient}
93
110
  >
94
111
  <Provider value={value}>
95
112
  <Session onSessionUpdate={onSessionUpdate}>{children}</Session>
@@ -128,6 +145,11 @@ const createSeamQueryContextValue = (
128
145
  options: SeamQueryProviderProps
129
146
  ): SeamQueryContext => {
130
147
  if (isSeamQueryProviderPropsWithClient(options)) {
148
+ if (options.queryKeyPrefix == null) {
149
+ throw new InvalidSeamQueryProviderProps(
150
+ 'The client prop must be used with a queryKeyPrefix prop.'
151
+ )
152
+ }
131
153
  return {
132
154
  ...options,
133
155
  endpointClient: null,
@@ -8,6 +8,7 @@ import { useSeamQueryContext } from './SeamQueryProvider.js'
8
8
  export function useSeamClient(): {
9
9
  client: SeamHttp | null
10
10
  endpointClient: SeamHttpEndpoints | null
11
+ queryKeyPrefixes: string[]
11
12
  isPending: boolean
12
13
  isError: boolean
13
14
  error: unknown
@@ -17,6 +18,7 @@ export function useSeamClient(): {
17
18
  clientOptions,
18
19
  publishableKey,
19
20
  clientSessionToken,
21
+ queryKeyPrefix,
20
22
  ...context
21
23
  } = useSeamQueryContext()
22
24
  const userIdentifierKey = useUserIdentifierKeyOrFingerprint(
@@ -27,6 +29,7 @@ export function useSeamClient(): {
27
29
  [SeamHttp, SeamHttpEndpoints]
28
30
  >({
29
31
  queryKey: [
32
+ ...getQueryKeyPrefixes({ queryKeyPrefix }),
30
33
  'client',
31
34
  {
32
35
  client,
@@ -73,6 +76,12 @@ export function useSeamClient(): {
73
76
  return {
74
77
  client: data?.[0] ?? null,
75
78
  endpointClient: data?.[1] ?? null,
79
+ queryKeyPrefixes: getQueryKeyPrefixes({
80
+ queryKeyPrefix,
81
+ userIdentifierKey,
82
+ publishableKey,
83
+ clientSessionToken,
84
+ }),
76
85
  isPending,
77
86
  isError,
78
87
  error,
@@ -117,3 +126,29 @@ This is not recommended because the client session is now bound to this machine
117
126
 
118
127
  return fingerprint
119
128
  }
129
+
130
+ const getQueryKeyPrefixes = ({
131
+ queryKeyPrefix,
132
+ userIdentifierKey,
133
+ publishableKey,
134
+ clientSessionToken,
135
+ }: {
136
+ queryKeyPrefix: string | undefined
137
+ userIdentifierKey?: string
138
+ publishableKey?: string | undefined
139
+ clientSessionToken?: string | undefined
140
+ }): string[] => {
141
+ const seamPrefix = 'seam'
142
+
143
+ if (queryKeyPrefix != null) return [seamPrefix, queryKeyPrefix]
144
+
145
+ if (clientSessionToken != null) {
146
+ return [seamPrefix, clientSessionToken]
147
+ }
148
+
149
+ if (publishableKey != null && userIdentifierKey != null) {
150
+ return [seamPrefix, publishableKey, userIdentifierKey]
151
+ }
152
+
153
+ return [seamPrefix]
154
+ }
@@ -23,11 +23,15 @@ export function useSeamQuery<T extends SeamHttpEndpointQueryPaths>(
23
23
  options: Parameters<SeamHttpEndpoints[T]>[1] &
24
24
  QueryOptions<QueryData<T>, SeamHttpApiError> = {}
25
25
  ): UseSeamQueryResult<T> {
26
- const { endpointClient: client } = useSeamClient()
26
+ const { endpointClient: client, queryKeyPrefixes } = useSeamClient()
27
27
  return useQuery({
28
28
  enabled: client != null,
29
29
  ...options,
30
- queryKey: [endpointPath, parameters],
30
+ queryKey: [
31
+ ...queryKeyPrefixes,
32
+ ...endpointPath.split('/').filter((v) => v !== ''),
33
+ parameters,
34
+ ],
31
35
  queryFn: async () => {
32
36
  if (client == null) return null
33
37
  // Using @ts-expect-error over any is preferred, but not possible here because TypeScript will run out of memory.
@@ -1,3 +1,3 @@
1
- const seamapiReactVersion = '4.9.0'
1
+ const seamapiReactVersion = '4.9.1'
2
2
 
3
3
  export default seamapiReactVersion