@tiendanube/live-state 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{LiveStateProvider-BEiLZeen.js → LiveStateProvider--BHGXDwQ.js} +10 -10
- package/dist/{LiveStateProvider-BEiLZeen.js.map → LiveStateProvider--BHGXDwQ.js.map} +1 -1
- package/dist/{LiveStateProvider-B_uOhVFY.cjs → LiveStateProvider-B0jRdNna.cjs} +2 -2
- package/dist/{LiveStateProvider-B_uOhVFY.cjs.map → LiveStateProvider-B0jRdNna.cjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +20 -17
- package/dist/index.js.map +1 -1
- package/dist/src/components/LiveStateInfo.d.ts.map +1 -1
- package/dist/src/components/RichText.d.ts.map +1 -1
- package/dist/src/hooks/useLiveState.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/providers/LiveStateProvider.d.ts +1 -1
- package/dist/src/providers/LiveStateProvider.d.ts.map +1 -1
- package/dist/src/query-client.d.ts +9 -8
- package/dist/src/query-client.d.ts.map +1 -1
- package/dist/src/testing/index.d.ts.map +1 -1
- package/dist/src/types/index.d.ts +0 -23
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/utils/query.d.ts +19 -15
- package/dist/src/utils/query.d.ts.map +1 -1
- package/dist/testing.cjs +1 -1
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/package.json +5 -4
package/dist/testing.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.cjs","names":[],"sources":["../src/testing/index.tsx"],"sourcesContent":["/**\n * @tiendanube/live-state/testing\n *\n * Test utilities for consumers of this library.\n * Import from this sub-path in test files only — do NOT import in production code.\n *\n * @example\n * import { MockLiveStateProvider, createMockLiveState } from '@tiendanube/live-state/testing';\n */\n\nimport React from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport type { LiveStateResponse, TrackingProperties, LogLevel } from '../types';\nimport { createLogger } from '../utils/logger';\n\n// Re-export context internals so consumers can build custom wrappers\nexport { useLiveStateContext } from '../providers/LiveStateProvider';\n\n// ---------------------------------------------------------------------------\n// Mock data factories\n// ---------------------------------------------------------------------------\n\n/**\n * Creates a minimal valid LiveStateResponse for testing.\n * Override any field by passing a partial object.\n *\n * @example\n * const data = createMockLiveState({ type: 'warning', context: 'cart' });\n */\nexport function createMockLiveState(\n overrides: Partial<LiveStateResponse> = {},\n): LiveStateResponse {\n return {\n context: 'awareness',\n type: 'info',\n title: 'Mock notification',\n message: 'This is a mock notification for testing.',\n cta: {\n label: 'Learn more',\n url: '/mock',\n type: 'internal',\n },\n ...overrides,\n };\n}\n\n// ---------------------------------------------------------------------------\n// MockLiveStateProvider\n// ---------------------------------------------------------------------------\n\ninterface MockLiveStateProviderProps {\n children: React.ReactNode;\n /** Mock live state data. Pass null to simulate \"no notification\". */\n liveState?: LiveStateResponse | null;\n /** Simulates loading state */\n isLoading?: boolean;\n /** Simulates error state */\n isError?: boolean;\n /** Spy on tracking events fired by the components */\n onEvent?: (eventName: string, properties?: TrackingProperties) => void;\n}\n\ntype LoggerFn = (\n level: LogLevel,\n message: string,\n context?: Record<string, unknown>,\n) => void;\n\ninterface MockContextValue {\n fetcher: () => Promise<LiveStateResponse | null>;\n onEvent?: (eventName: string, properties?: TrackingProperties) => void;\n disabled: boolean;\n log: LoggerFn;\n}\n\n// Minimal context shape matching LiveStateContextValue\nconst MockContext = React.createContext<MockContextValue | null>(null);\n\n/**\n * Drop-in replacement for `LiveStateProvider` in tests.\n * Controls `liveState`, `isLoading` and `isError` directly — no real fetcher needed.\n *\n * @example\n * render(\n * <MockLiveStateProvider liveState={createMockLiveState({ type: 'alert' })}>\n * <MyComponent />\n * </MockLiveStateProvider>\n * );\n */\nexport function MockLiveStateProvider({\n children,\n liveState = null,\n isLoading = false,\n isError = false,\n onEvent,\n}: MockLiveStateProviderProps) {\n const fetcher = React.useCallback(async () => {\n if (isLoading) return new Promise<LiveStateResponse | null>(() => {});\n if (isError) throw new Error('Mock fetch error');\n return liveState;\n }, [liveState, isLoading, isError]);\n\n const log = React.useMemo(() => createLogger(undefined), []);\n\n // Fresh QueryClient per mount — prevents test pollution between test cases.\n const queryClient = React.useMemo(\n ()
|
|
1
|
+
{"version":3,"file":"testing.cjs","names":[],"sources":["../src/testing/index.tsx"],"sourcesContent":["/**\n * @tiendanube/live-state/testing\n *\n * Test utilities for consumers of this library.\n * Import from this sub-path in test files only — do NOT import in production code.\n *\n * @example\n * import { MockLiveStateProvider, createMockLiveState } from '@tiendanube/live-state/testing';\n */\n\nimport React from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport type { LiveStateResponse, TrackingProperties, LogLevel } from '../types';\nimport { createLogger } from '../utils/logger';\n\n// Re-export context internals so consumers can build custom wrappers\nexport { useLiveStateContext } from '../providers/LiveStateProvider';\n\n// ---------------------------------------------------------------------------\n// Mock data factories\n// ---------------------------------------------------------------------------\n\n/**\n * Creates a minimal valid LiveStateResponse for testing.\n * Override any field by passing a partial object.\n *\n * @example\n * const data = createMockLiveState({ type: 'warning', context: 'cart' });\n */\nexport function createMockLiveState(\n overrides: Partial<LiveStateResponse> = {},\n): LiveStateResponse {\n return {\n context: 'awareness',\n type: 'info',\n title: 'Mock notification',\n message: 'This is a mock notification for testing.',\n cta: {\n label: 'Learn more',\n url: '/mock',\n type: 'internal',\n },\n ...overrides,\n };\n}\n\n// ---------------------------------------------------------------------------\n// MockLiveStateProvider\n// ---------------------------------------------------------------------------\n\ninterface MockLiveStateProviderProps {\n children: React.ReactNode;\n /** Mock live state data. Pass null to simulate \"no notification\". */\n liveState?: LiveStateResponse | null;\n /** Simulates loading state */\n isLoading?: boolean;\n /** Simulates error state */\n isError?: boolean;\n /** Spy on tracking events fired by the components */\n onEvent?: (eventName: string, properties?: TrackingProperties) => void;\n}\n\ntype LoggerFn = (\n level: LogLevel,\n message: string,\n context?: Record<string, unknown>,\n) => void;\n\ninterface MockContextValue {\n fetcher: () => Promise<LiveStateResponse | null>;\n onEvent?: (eventName: string, properties?: TrackingProperties) => void;\n disabled: boolean;\n log: LoggerFn;\n}\n\n// Minimal context shape matching LiveStateContextValue\nconst MockContext = React.createContext<MockContextValue | null>(null);\n\n/**\n * Drop-in replacement for `LiveStateProvider` in tests.\n * Controls `liveState`, `isLoading` and `isError` directly — no real fetcher needed.\n *\n * @example\n * render(\n * <MockLiveStateProvider liveState={createMockLiveState({ type: 'alert' })}>\n * <MyComponent />\n * </MockLiveStateProvider>\n * );\n */\nexport function MockLiveStateProvider({\n children,\n liveState = null,\n isLoading = false,\n isError = false,\n onEvent,\n}: MockLiveStateProviderProps) {\n const fetcher = React.useCallback(async () => {\n if (isLoading) return new Promise<LiveStateResponse | null>(() => {});\n if (isError) throw new Error('Mock fetch error');\n return liveState;\n }, [liveState, isLoading, isError]);\n\n const log = React.useMemo(() => createLogger(undefined), []);\n\n // Fresh QueryClient per mount — prevents test pollution between test cases.\n const queryClient = React.useMemo(\n () =>\n new QueryClient({\n defaultOptions: { queries: { retry: false, staleTime: 0 } },\n }),\n [],\n );\n\n const contextValue: MockContextValue = React.useMemo(\n () => ({ fetcher, onEvent, disabled: true, log }),\n [fetcher, onEvent, log],\n );\n\n return (\n <QueryClientProvider client={queryClient}>\n <MockContext.Provider value={contextValue}>\n {children}\n </MockContext.Provider>\n </QueryClientProvider>\n );\n}\n\n// Override the real context hook so components inside MockLiveStateProvider\n// receive the mock context instead of the real one.\n// This works because useLiveStateContext calls useContext(LiveStateContext) from\n// the real provider — we need to patch the module in tests.\n// Consumers should use vi.mock / jest.mock to swap the provider if needed,\n// or use MockLiveStateProvider which wraps the real context wholesale.\n\n/**\n * Returns a pre-configured mock for the `useLiveState` hook.\n * Use with `vi.mock` / `jest.mock` to replace the real hook in unit tests.\n *\n * @example\n * vi.mock('@tiendanube/live-state', async (importOriginal) => ({\n * ...(await importOriginal()),\n * useLiveState: () => mockUseLiveState({ liveState: createMockLiveState() }),\n * }));\n */\nexport function mockUseLiveState(\n overrides: {\n liveState?: LiveStateResponse | null;\n isLoading?: boolean;\n isError?: boolean;\n error?: Error | null;\n refresh?: () => Promise<void>;\n } = {},\n) {\n return {\n liveState: overrides.liveState ?? null,\n isLoading: overrides.isLoading ?? false,\n isError: overrides.isError ?? false,\n error: overrides.error ?? null,\n refresh: overrides.refresh ?? (() => Promise.resolve()),\n };\n}\n"],"mappings":"4LA6BA,SAAgB,EACd,EAAwC,EAAE,CACvB,CACnB,MAAO,CACL,QAAS,YACT,KAAM,OACN,MAAO,oBACP,QAAS,2CACT,IAAK,CACH,MAAO,aACP,IAAK,QACL,KAAM,WACP,CACD,GAAG,EACJ,CAiCH,IAAM,EAAc,EAAA,QAAM,cAAuC,KAAK,CAatE,SAAgB,EAAsB,CACpC,WACA,YAAY,KACZ,YAAY,GACZ,UAAU,GACV,WAC6B,CAC7B,IAAM,EAAU,EAAA,QAAM,YAAY,SAAY,CAC5C,GAAI,EAAW,OAAO,IAAI,YAAwC,GAAG,CACrE,GAAI,EAAS,MAAU,MAAM,mBAAmB,CAChD,OAAO,GACN,CAAC,EAAW,EAAW,EAAQ,CAAC,CAE7B,EAAM,EAAA,QAAM,YAAc,EAAA,EAAa,IAAA,GAAU,CAAE,EAAE,CAAC,CAGtD,EAAc,EAAA,QAAM,YAEtB,IAAI,EAAA,EAAY,CACd,eAAgB,CAAE,QAAS,CAAE,MAAO,GAAO,UAAW,EAAG,CAAE,CAC5D,CAAC,CACJ,EAAE,CACH,CAEK,EAAiC,EAAA,QAAM,aACpC,CAAE,UAAS,UAAS,SAAU,GAAM,MAAK,EAChD,CAAC,EAAS,EAAS,EAAI,CACxB,CAED,OACE,EAAA,EAAA,KAAC,EAAA,EAAD,CAAqB,OAAQ,YAC3B,EAAA,EAAA,KAAC,EAAY,SAAb,CAAsB,MAAO,EAC1B,WACoB,CAAA,CACH,CAAA,CAqB1B,SAAgB,EACd,EAMI,EAAE,CACN,CACA,MAAO,CACL,UAAW,EAAU,WAAa,KAClC,UAAW,EAAU,WAAa,GAClC,QAAS,EAAU,SAAW,GAC9B,MAAO,EAAU,OAAS,KAC1B,QAAS,EAAU,cAAkB,QAAQ,SAAS,EACvD"}
|
package/dist/testing.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as e, n as t, o as n, u as r } from "./LiveStateProvider
|
|
1
|
+
import { c as e, n as t, o as n, u as r } from "./LiveStateProvider--BHGXDwQ.js";
|
|
2
2
|
import i from "react";
|
|
3
3
|
import { jsx as a } from "react/jsx-runtime";
|
|
4
4
|
//#region src/testing/index.tsx
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","names":[],"sources":["../src/testing/index.tsx"],"sourcesContent":["/**\n * @tiendanube/live-state/testing\n *\n * Test utilities for consumers of this library.\n * Import from this sub-path in test files only — do NOT import in production code.\n *\n * @example\n * import { MockLiveStateProvider, createMockLiveState } from '@tiendanube/live-state/testing';\n */\n\nimport React from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport type { LiveStateResponse, TrackingProperties, LogLevel } from '../types';\nimport { createLogger } from '../utils/logger';\n\n// Re-export context internals so consumers can build custom wrappers\nexport { useLiveStateContext } from '../providers/LiveStateProvider';\n\n// ---------------------------------------------------------------------------\n// Mock data factories\n// ---------------------------------------------------------------------------\n\n/**\n * Creates a minimal valid LiveStateResponse for testing.\n * Override any field by passing a partial object.\n *\n * @example\n * const data = createMockLiveState({ type: 'warning', context: 'cart' });\n */\nexport function createMockLiveState(\n overrides: Partial<LiveStateResponse> = {},\n): LiveStateResponse {\n return {\n context: 'awareness',\n type: 'info',\n title: 'Mock notification',\n message: 'This is a mock notification for testing.',\n cta: {\n label: 'Learn more',\n url: '/mock',\n type: 'internal',\n },\n ...overrides,\n };\n}\n\n// ---------------------------------------------------------------------------\n// MockLiveStateProvider\n// ---------------------------------------------------------------------------\n\ninterface MockLiveStateProviderProps {\n children: React.ReactNode;\n /** Mock live state data. Pass null to simulate \"no notification\". */\n liveState?: LiveStateResponse | null;\n /** Simulates loading state */\n isLoading?: boolean;\n /** Simulates error state */\n isError?: boolean;\n /** Spy on tracking events fired by the components */\n onEvent?: (eventName: string, properties?: TrackingProperties) => void;\n}\n\ntype LoggerFn = (\n level: LogLevel,\n message: string,\n context?: Record<string, unknown>,\n) => void;\n\ninterface MockContextValue {\n fetcher: () => Promise<LiveStateResponse | null>;\n onEvent?: (eventName: string, properties?: TrackingProperties) => void;\n disabled: boolean;\n log: LoggerFn;\n}\n\n// Minimal context shape matching LiveStateContextValue\nconst MockContext = React.createContext<MockContextValue | null>(null);\n\n/**\n * Drop-in replacement for `LiveStateProvider` in tests.\n * Controls `liveState`, `isLoading` and `isError` directly — no real fetcher needed.\n *\n * @example\n * render(\n * <MockLiveStateProvider liveState={createMockLiveState({ type: 'alert' })}>\n * <MyComponent />\n * </MockLiveStateProvider>\n * );\n */\nexport function MockLiveStateProvider({\n children,\n liveState = null,\n isLoading = false,\n isError = false,\n onEvent,\n}: MockLiveStateProviderProps) {\n const fetcher = React.useCallback(async () => {\n if (isLoading) return new Promise<LiveStateResponse | null>(() => {});\n if (isError) throw new Error('Mock fetch error');\n return liveState;\n }, [liveState, isLoading, isError]);\n\n const log = React.useMemo(() => createLogger(undefined), []);\n\n // Fresh QueryClient per mount — prevents test pollution between test cases.\n const queryClient = React.useMemo(\n ()
|
|
1
|
+
{"version":3,"file":"testing.js","names":[],"sources":["../src/testing/index.tsx"],"sourcesContent":["/**\n * @tiendanube/live-state/testing\n *\n * Test utilities for consumers of this library.\n * Import from this sub-path in test files only — do NOT import in production code.\n *\n * @example\n * import { MockLiveStateProvider, createMockLiveState } from '@tiendanube/live-state/testing';\n */\n\nimport React from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport type { LiveStateResponse, TrackingProperties, LogLevel } from '../types';\nimport { createLogger } from '../utils/logger';\n\n// Re-export context internals so consumers can build custom wrappers\nexport { useLiveStateContext } from '../providers/LiveStateProvider';\n\n// ---------------------------------------------------------------------------\n// Mock data factories\n// ---------------------------------------------------------------------------\n\n/**\n * Creates a minimal valid LiveStateResponse for testing.\n * Override any field by passing a partial object.\n *\n * @example\n * const data = createMockLiveState({ type: 'warning', context: 'cart' });\n */\nexport function createMockLiveState(\n overrides: Partial<LiveStateResponse> = {},\n): LiveStateResponse {\n return {\n context: 'awareness',\n type: 'info',\n title: 'Mock notification',\n message: 'This is a mock notification for testing.',\n cta: {\n label: 'Learn more',\n url: '/mock',\n type: 'internal',\n },\n ...overrides,\n };\n}\n\n// ---------------------------------------------------------------------------\n// MockLiveStateProvider\n// ---------------------------------------------------------------------------\n\ninterface MockLiveStateProviderProps {\n children: React.ReactNode;\n /** Mock live state data. Pass null to simulate \"no notification\". */\n liveState?: LiveStateResponse | null;\n /** Simulates loading state */\n isLoading?: boolean;\n /** Simulates error state */\n isError?: boolean;\n /** Spy on tracking events fired by the components */\n onEvent?: (eventName: string, properties?: TrackingProperties) => void;\n}\n\ntype LoggerFn = (\n level: LogLevel,\n message: string,\n context?: Record<string, unknown>,\n) => void;\n\ninterface MockContextValue {\n fetcher: () => Promise<LiveStateResponse | null>;\n onEvent?: (eventName: string, properties?: TrackingProperties) => void;\n disabled: boolean;\n log: LoggerFn;\n}\n\n// Minimal context shape matching LiveStateContextValue\nconst MockContext = React.createContext<MockContextValue | null>(null);\n\n/**\n * Drop-in replacement for `LiveStateProvider` in tests.\n * Controls `liveState`, `isLoading` and `isError` directly — no real fetcher needed.\n *\n * @example\n * render(\n * <MockLiveStateProvider liveState={createMockLiveState({ type: 'alert' })}>\n * <MyComponent />\n * </MockLiveStateProvider>\n * );\n */\nexport function MockLiveStateProvider({\n children,\n liveState = null,\n isLoading = false,\n isError = false,\n onEvent,\n}: MockLiveStateProviderProps) {\n const fetcher = React.useCallback(async () => {\n if (isLoading) return new Promise<LiveStateResponse | null>(() => {});\n if (isError) throw new Error('Mock fetch error');\n return liveState;\n }, [liveState, isLoading, isError]);\n\n const log = React.useMemo(() => createLogger(undefined), []);\n\n // Fresh QueryClient per mount — prevents test pollution between test cases.\n const queryClient = React.useMemo(\n () =>\n new QueryClient({\n defaultOptions: { queries: { retry: false, staleTime: 0 } },\n }),\n [],\n );\n\n const contextValue: MockContextValue = React.useMemo(\n () => ({ fetcher, onEvent, disabled: true, log }),\n [fetcher, onEvent, log],\n );\n\n return (\n <QueryClientProvider client={queryClient}>\n <MockContext.Provider value={contextValue}>\n {children}\n </MockContext.Provider>\n </QueryClientProvider>\n );\n}\n\n// Override the real context hook so components inside MockLiveStateProvider\n// receive the mock context instead of the real one.\n// This works because useLiveStateContext calls useContext(LiveStateContext) from\n// the real provider — we need to patch the module in tests.\n// Consumers should use vi.mock / jest.mock to swap the provider if needed,\n// or use MockLiveStateProvider which wraps the real context wholesale.\n\n/**\n * Returns a pre-configured mock for the `useLiveState` hook.\n * Use with `vi.mock` / `jest.mock` to replace the real hook in unit tests.\n *\n * @example\n * vi.mock('@tiendanube/live-state', async (importOriginal) => ({\n * ...(await importOriginal()),\n * useLiveState: () => mockUseLiveState({ liveState: createMockLiveState() }),\n * }));\n */\nexport function mockUseLiveState(\n overrides: {\n liveState?: LiveStateResponse | null;\n isLoading?: boolean;\n isError?: boolean;\n error?: Error | null;\n refresh?: () => Promise<void>;\n } = {},\n) {\n return {\n liveState: overrides.liveState ?? null,\n isLoading: overrides.isLoading ?? false,\n isError: overrides.isError ?? false,\n error: overrides.error ?? null,\n refresh: overrides.refresh ?? (() => Promise.resolve()),\n };\n}\n"],"mappings":";;;;AA6BA,SAAgB,EACd,IAAwC,EAAE,EACvB;AACnB,QAAO;EACL,SAAS;EACT,MAAM;EACN,OAAO;EACP,SAAS;EACT,KAAK;GACH,OAAO;GACP,KAAK;GACL,MAAM;GACP;EACD,GAAG;EACJ;;AAiCH,IAAM,IAAc,EAAM,cAAuC,KAAK;AAatE,SAAgB,EAAsB,EACpC,aACA,eAAY,MACZ,eAAY,IACZ,aAAU,IACV,cAC6B;CAC7B,IAAM,IAAU,EAAM,YAAY,YAAY;AAC5C,MAAI,EAAW,QAAO,IAAI,cAAwC,GAAG;AACrE,MAAI,EAAS,OAAU,MAAM,mBAAmB;AAChD,SAAO;IACN;EAAC;EAAW;EAAW;EAAQ,CAAC,EAE7B,IAAM,EAAM,cAAc,EAAa,KAAA,EAAU,EAAE,EAAE,CAAC,EAGtD,IAAc,EAAM,cAEtB,IAAI,EAAY,EACd,gBAAgB,EAAE,SAAS;EAAE,OAAO;EAAO,WAAW;EAAG,EAAE,EAC5D,CAAC,EACJ,EAAE,CACH,EAEK,IAAiC,EAAM,eACpC;EAAE;EAAS;EAAS,UAAU;EAAM;EAAK,GAChD;EAAC;EAAS;EAAS;EAAI,CACxB;AAED,QACE,kBAAC,GAAD;EAAqB,QAAQ;YAC3B,kBAAC,EAAY,UAAb;GAAsB,OAAO;GAC1B;GACoB,CAAA;EACH,CAAA;;AAqB1B,SAAgB,EACd,IAMI,EAAE,EACN;AACA,QAAO;EACL,WAAW,EAAU,aAAa;EAClC,WAAW,EAAU,aAAa;EAClC,SAAS,EAAU,WAAW;EAC9B,OAAO,EAAU,SAAS;EAC1B,SAAS,EAAU,kBAAkB,QAAQ,SAAS;EACvD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tiendanube/live-state",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Generic React library for rendering live state notifications",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -45,13 +45,13 @@
|
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"@nimbus-ds/components": "^5.41.0",
|
|
47
47
|
"@nimbus-ds/icons": "^1.14.0",
|
|
48
|
-
"@tanstack/react-query": "^4.0.0 || ^5.0.0",
|
|
49
48
|
"react": "^18.0.0 || ^19.0.0",
|
|
50
49
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
51
50
|
},
|
|
52
51
|
"dependencies": {
|
|
53
52
|
"@amplitude/analytics-browser": "^2.11.1",
|
|
54
|
-
"@microsoft/clarity": "^1.0.0"
|
|
53
|
+
"@microsoft/clarity": "^1.0.0",
|
|
54
|
+
"@tanstack/react-query": "^5.0.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@eslint/js": "^10.0.1",
|
|
@@ -116,6 +116,7 @@
|
|
|
116
116
|
"@nimbus-ds/components/react": "^19.0.0",
|
|
117
117
|
"@nimbus-ds/components/react-dom": "^19.0.0",
|
|
118
118
|
"eslint-plugin-react/eslint": "^10.0.0",
|
|
119
|
-
"eslint-plugin-react-hooks/eslint": "^10.0.0"
|
|
119
|
+
"eslint-plugin-react-hooks/eslint": "^10.0.0",
|
|
120
|
+
"postcss": ">=8.5.10"
|
|
120
121
|
}
|
|
121
122
|
}
|