@upstash/react-redis-browser 0.2.14-rc.6 → 0.2.14-rc.8

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/index.d.mts CHANGED
@@ -21,7 +21,7 @@ type RedisBrowserStorage = {
21
21
  get: () => string | null;
22
22
  };
23
23
  type TabType = "keys" | "search" | "all";
24
- declare const RedisBrowser: ({ url, token, hideTabs, tabType, storage, disableTelemetry, onFullScreenClick, theme, }: RedisCredentials & {
24
+ declare const RedisBrowser: ({ url, token, hideTabs, tabType, storage, disableTelemetry, onFullScreenClick, theme, allowSearch, }: RedisCredentials & {
25
25
  /**
26
26
  * Whether to disable telemetry.
27
27
  *
@@ -76,6 +76,14 @@ declare const RedisBrowser: ({ url, token, hideTabs, tabType, storage, disableTe
76
76
  * ```
77
77
  */
78
78
  theme?: DarkModeOption;
79
+ /**
80
+ * Whether to allow picking the "Search Index" type filter in keys search.
81
+ *
82
+ * This option is temporary
83
+ *
84
+ * @default true
85
+ */
86
+ allowSearch?: boolean;
79
87
  }) => react_jsx_runtime.JSX.Element;
80
88
 
81
89
  export { type DarkModeOption, RedisBrowser, type RedisBrowserStorage };
package/dist/index.d.ts CHANGED
@@ -21,7 +21,7 @@ type RedisBrowserStorage = {
21
21
  get: () => string | null;
22
22
  };
23
23
  type TabType = "keys" | "search" | "all";
24
- declare const RedisBrowser: ({ url, token, hideTabs, tabType, storage, disableTelemetry, onFullScreenClick, theme, }: RedisCredentials & {
24
+ declare const RedisBrowser: ({ url, token, hideTabs, tabType, storage, disableTelemetry, onFullScreenClick, theme, allowSearch, }: RedisCredentials & {
25
25
  /**
26
26
  * Whether to disable telemetry.
27
27
  *
@@ -76,6 +76,14 @@ declare const RedisBrowser: ({ url, token, hideTabs, tabType, storage, disableTe
76
76
  * ```
77
77
  */
78
78
  theme?: DarkModeOption;
79
+ /**
80
+ * Whether to allow picking the "Search Index" type filter in keys search.
81
+ *
82
+ * This option is temporary
83
+ *
84
+ * @default true
85
+ */
86
+ allowSearch?: boolean;
79
87
  }) => react_jsx_runtime.JSX.Element;
80
88
 
81
89
  export { type DarkModeOption, RedisBrowser, type RedisBrowserStorage };
package/dist/index.js CHANGED
@@ -3368,10 +3368,14 @@ function Toaster() {
3368
3368
  // src/components/databrowser/hooks/use-fetch-search-indexes.tsx
3369
3369
 
3370
3370
  var FETCH_SEARCH_INDEXES_QUERY_KEY = "fetch-search-indexes";
3371
- var useFetchSearchIndexes = (match) => {
3371
+ var useFetchSearchIndexes = ({
3372
+ match,
3373
+ enabled
3374
+ } = {}) => {
3372
3375
  const { redisNoPipeline: redis } = useRedis();
3373
3376
  return _reactquery.useQuery.call(void 0, {
3374
3377
  queryKey: [FETCH_SEARCH_INDEXES_QUERY_KEY],
3378
+ enabled: _nullishCoalesce(enabled, () => ( true)),
3375
3379
  queryFn: async () => {
3376
3380
  let cursor = "0";
3377
3381
  const finalResult = [];
@@ -3434,7 +3438,8 @@ var SCAN_COUNTS = [100, 300, 500];
3434
3438
  var KeysProvider = ({ children }) => {
3435
3439
  const { active, search, valuesSearch, isValuesSearchSelected } = useTab();
3436
3440
  const { data: searchIndexDetails, isLoading: isIndexDetailsLoading } = useFetchSearchIndex(
3437
- valuesSearch.index
3441
+ valuesSearch.index,
3442
+ { enabled: isValuesSearchSelected }
3438
3443
  );
3439
3444
  const { redisNoPipeline: redis } = useRedis();
3440
3445
  const parsedValueQuery = parseJSObjectLiteral(valuesSearch.query);
@@ -7314,8 +7319,12 @@ var SearchInput = () => {
7314
7319
  // src/components/databrowser/components/sidebar/type-selector.tsx
7315
7320
 
7316
7321
  var ALL_TYPES_KEY = "all";
7317
- function DataTypeSelector() {
7322
+ function DataTypeSelector({ allowSearch }) {
7318
7323
  const { search, setSearchType } = useTab();
7324
+ const entries = [
7325
+ [ALL_TYPES_KEY, "All Types"],
7326
+ ...Object.entries(DATA_TYPE_NAMES).filter(([key]) => allowSearch || key !== "search")
7327
+ ];
7319
7328
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
7320
7329
  Select,
7321
7330
  {
@@ -7329,13 +7338,7 @@ function DataTypeSelector() {
7329
7338
  value: search.type === void 0 ? ALL_TYPES_KEY : search.type,
7330
7339
  children: [
7331
7340
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectTrigger, { className: "!w-auto shrink-0 select-none whitespace-nowrap border-zinc-300 pr-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectValue, {}) }),
7332
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectGroup, { children: (() => {
7333
- const entries = [
7334
- [ALL_TYPES_KEY, "All Types"],
7335
- ...Object.entries(DATA_TYPE_NAMES)
7336
- ];
7337
- return entries.map(([key, value]) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectItem, { value: key, children: value }, key));
7338
- })() }) })
7341
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectGroup, { children: entries.map(([key, value]) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectItem, { value: key, children: value }, key)) }) })
7339
7342
  ]
7340
7343
  }
7341
7344
  );
@@ -7343,7 +7346,7 @@ function DataTypeSelector() {
7343
7346
 
7344
7347
  // src/components/databrowser/components/header/index.tsx
7345
7348
 
7346
- var Header = ({ tabType }) => {
7349
+ var Header = ({ tabType, allowSearch }) => {
7347
7350
  const { isValuesSearchSelected, setIsValuesSearchSelected } = useTab();
7348
7351
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-1.5", children: [
7349
7352
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex grow items-center gap-1.5", children: [
@@ -7373,7 +7376,7 @@ var Header = ({ tabType }) => {
7373
7376
  }
7374
7377
  ),
7375
7378
  isValuesSearchSelected ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IndexSelector, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
7376
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTypeSelector, {}),
7379
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTypeSelector, { allowSearch }),
7377
7380
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SearchInput, {})
7378
7381
  ] })
7379
7382
  ] }),
@@ -10566,10 +10569,13 @@ var SearchContent = () => {
10566
10569
  };
10567
10570
  var DatabrowserInstance = ({
10568
10571
  hidden,
10569
- tabType
10572
+ tabType,
10573
+ allowSearch
10570
10574
  }) => {
10571
10575
  const { isValuesSearchSelected, setIsValuesSearchSelected } = useTab();
10572
- const { data: indexes, isLoading } = useFetchSearchIndexes();
10576
+ const { data: indexes, isLoading } = useFetchSearchIndexes({
10577
+ enabled: tabType === "search"
10578
+ });
10573
10579
  _react.useEffect.call(void 0, () => {
10574
10580
  if (tabType === "keys" && isValuesSearchSelected) {
10575
10581
  setIsValuesSearchSelected(false);
@@ -10587,7 +10593,7 @@ var DatabrowserInstance = ({
10587
10593
  ),
10588
10594
  children: [
10589
10595
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3 py-5", children: [
10590
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Header, { tabType }),
10596
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Header, { tabType, allowSearch }),
10591
10597
  isValuesSearchSelected && !showEmptyState && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SearchContent, {}),
10592
10598
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderError, {})
10593
10599
  ] }),
@@ -11159,7 +11165,8 @@ var RedisBrowser = ({
11159
11165
  storage,
11160
11166
  disableTelemetry,
11161
11167
  onFullScreenClick,
11162
- theme = "light"
11168
+ theme = "light",
11169
+ allowSearch = false
11163
11170
  }) => {
11164
11171
  const credentials = _react.useMemo.call(void 0, () => ({ token, url }), [token, url]);
11165
11172
  const rootRef = _react.useRef.call(void 0, null);
@@ -11169,6 +11176,7 @@ var RedisBrowser = ({
11169
11176
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedisProvider, { redisCredentials: credentials, telemetry: !disableTelemetry, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DarkModeProvider, { theme, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DatabrowserProvider, { storage, rootRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reacttooltip.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
11170
11177
  RedisBrowserRoot,
11171
11178
  {
11179
+ allowSearch,
11172
11180
  hideTabs,
11173
11181
  tabType,
11174
11182
  rootRef,
@@ -11179,6 +11187,7 @@ var RedisBrowser = ({
11179
11187
  var RedisBrowserRoot = ({
11180
11188
  hideTabs,
11181
11189
  tabType,
11190
+ allowSearch,
11182
11191
  rootRef,
11183
11192
  onFullScreenClick
11184
11193
  }) => {
@@ -11197,20 +11206,30 @@ var RedisBrowserRoot = ({
11197
11206
  ref: rootRef,
11198
11207
  children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col overflow-hidden rounded-[14px] border-[4px] border-zinc-300 text-zinc-700", children: [
11199
11208
  !hideTabs && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DatabrowserTabs, { onFullScreenClick }),
11200
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DatabrowserInstances, { tabType })
11209
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DatabrowserInstances, { tabType, allowSearch })
11201
11210
  ] })
11202
11211
  }
11203
11212
  )
11204
11213
  );
11205
11214
  };
11206
- var DatabrowserInstances = ({ tabType }) => {
11215
+ var DatabrowserInstances = ({
11216
+ tabType,
11217
+ allowSearch
11218
+ }) => {
11207
11219
  const { tabs, selectedTab, selectTab, addTab } = useDatabrowserStore();
11208
11220
  _react.useEffect.call(void 0, () => {
11209
11221
  if (tabs.length === 0) addTab();
11210
11222
  else if (!selectedTab) selectTab(tabs[0][0]);
11211
11223
  }, [tabs, selectedTab, addTab, selectTab]);
11212
11224
  if (!selectedTab) return;
11213
- return tabs.map(([id]) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabIdProvider, { value: id, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DatabrowserInstance, { hidden: id !== selectedTab, tabType }) }, id));
11225
+ return tabs.map(([id]) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabIdProvider, { value: id, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
11226
+ DatabrowserInstance,
11227
+ {
11228
+ hidden: id !== selectedTab,
11229
+ tabType,
11230
+ allowSearch
11231
+ }
11232
+ ) }, id));
11214
11233
  };
11215
11234
 
11216
11235
 
package/dist/index.mjs CHANGED
@@ -3368,10 +3368,14 @@ function Toaster() {
3368
3368
  // src/components/databrowser/hooks/use-fetch-search-indexes.tsx
3369
3369
  import { useQuery } from "@tanstack/react-query";
3370
3370
  var FETCH_SEARCH_INDEXES_QUERY_KEY = "fetch-search-indexes";
3371
- var useFetchSearchIndexes = (match) => {
3371
+ var useFetchSearchIndexes = ({
3372
+ match,
3373
+ enabled
3374
+ } = {}) => {
3372
3375
  const { redisNoPipeline: redis } = useRedis();
3373
3376
  return useQuery({
3374
3377
  queryKey: [FETCH_SEARCH_INDEXES_QUERY_KEY],
3378
+ enabled: enabled ?? true,
3375
3379
  queryFn: async () => {
3376
3380
  let cursor = "0";
3377
3381
  const finalResult = [];
@@ -3434,7 +3438,8 @@ var SCAN_COUNTS = [100, 300, 500];
3434
3438
  var KeysProvider = ({ children }) => {
3435
3439
  const { active, search, valuesSearch, isValuesSearchSelected } = useTab();
3436
3440
  const { data: searchIndexDetails, isLoading: isIndexDetailsLoading } = useFetchSearchIndex(
3437
- valuesSearch.index
3441
+ valuesSearch.index,
3442
+ { enabled: isValuesSearchSelected }
3438
3443
  );
3439
3444
  const { redisNoPipeline: redis } = useRedis();
3440
3445
  const parsedValueQuery = parseJSObjectLiteral(valuesSearch.query);
@@ -7314,8 +7319,12 @@ var SearchInput = () => {
7314
7319
  // src/components/databrowser/components/sidebar/type-selector.tsx
7315
7320
  import { jsx as jsx51, jsxs as jsxs30 } from "react/jsx-runtime";
7316
7321
  var ALL_TYPES_KEY = "all";
7317
- function DataTypeSelector() {
7322
+ function DataTypeSelector({ allowSearch }) {
7318
7323
  const { search, setSearchType } = useTab();
7324
+ const entries = [
7325
+ [ALL_TYPES_KEY, "All Types"],
7326
+ ...Object.entries(DATA_TYPE_NAMES).filter(([key]) => allowSearch || key !== "search")
7327
+ ];
7319
7328
  return /* @__PURE__ */ jsxs30(
7320
7329
  Select,
7321
7330
  {
@@ -7329,13 +7338,7 @@ function DataTypeSelector() {
7329
7338
  value: search.type === void 0 ? ALL_TYPES_KEY : search.type,
7330
7339
  children: [
7331
7340
  /* @__PURE__ */ jsx51(SelectTrigger, { className: "!w-auto shrink-0 select-none whitespace-nowrap border-zinc-300 pr-8", children: /* @__PURE__ */ jsx51(SelectValue, {}) }),
7332
- /* @__PURE__ */ jsx51(SelectContent, { children: /* @__PURE__ */ jsx51(SelectGroup, { children: (() => {
7333
- const entries = [
7334
- [ALL_TYPES_KEY, "All Types"],
7335
- ...Object.entries(DATA_TYPE_NAMES)
7336
- ];
7337
- return entries.map(([key, value]) => /* @__PURE__ */ jsx51(SelectItem, { value: key, children: value }, key));
7338
- })() }) })
7341
+ /* @__PURE__ */ jsx51(SelectContent, { children: /* @__PURE__ */ jsx51(SelectGroup, { children: entries.map(([key, value]) => /* @__PURE__ */ jsx51(SelectItem, { value: key, children: value }, key)) }) })
7339
7342
  ]
7340
7343
  }
7341
7344
  );
@@ -7343,7 +7346,7 @@ function DataTypeSelector() {
7343
7346
 
7344
7347
  // src/components/databrowser/components/header/index.tsx
7345
7348
  import { Fragment as Fragment9, jsx as jsx52, jsxs as jsxs31 } from "react/jsx-runtime";
7346
- var Header = ({ tabType }) => {
7349
+ var Header = ({ tabType, allowSearch }) => {
7347
7350
  const { isValuesSearchSelected, setIsValuesSearchSelected } = useTab();
7348
7351
  return /* @__PURE__ */ jsxs31("div", { className: "flex items-center justify-between gap-1.5", children: [
7349
7352
  /* @__PURE__ */ jsxs31("div", { className: "flex grow items-center gap-1.5", children: [
@@ -7373,7 +7376,7 @@ var Header = ({ tabType }) => {
7373
7376
  }
7374
7377
  ),
7375
7378
  isValuesSearchSelected ? /* @__PURE__ */ jsx52(IndexSelector, {}) : /* @__PURE__ */ jsxs31(Fragment9, { children: [
7376
- /* @__PURE__ */ jsx52(DataTypeSelector, {}),
7379
+ /* @__PURE__ */ jsx52(DataTypeSelector, { allowSearch }),
7377
7380
  /* @__PURE__ */ jsx52(SearchInput, {})
7378
7381
  ] })
7379
7382
  ] }),
@@ -10566,10 +10569,13 @@ var SearchContent = () => {
10566
10569
  };
10567
10570
  var DatabrowserInstance = ({
10568
10571
  hidden,
10569
- tabType
10572
+ tabType,
10573
+ allowSearch
10570
10574
  }) => {
10571
10575
  const { isValuesSearchSelected, setIsValuesSearchSelected } = useTab();
10572
- const { data: indexes, isLoading } = useFetchSearchIndexes();
10576
+ const { data: indexes, isLoading } = useFetchSearchIndexes({
10577
+ enabled: tabType === "search"
10578
+ });
10573
10579
  useEffect19(() => {
10574
10580
  if (tabType === "keys" && isValuesSearchSelected) {
10575
10581
  setIsValuesSearchSelected(false);
@@ -10587,7 +10593,7 @@ var DatabrowserInstance = ({
10587
10593
  ),
10588
10594
  children: [
10589
10595
  /* @__PURE__ */ jsxs44("div", { className: "space-y-3 py-5", children: [
10590
- /* @__PURE__ */ jsx73(Header, { tabType }),
10596
+ /* @__PURE__ */ jsx73(Header, { tabType, allowSearch }),
10591
10597
  isValuesSearchSelected && !showEmptyState && /* @__PURE__ */ jsx73(SearchContent, {}),
10592
10598
  /* @__PURE__ */ jsx73(HeaderError, {})
10593
10599
  ] }),
@@ -11159,7 +11165,8 @@ var RedisBrowser = ({
11159
11165
  storage,
11160
11166
  disableTelemetry,
11161
11167
  onFullScreenClick,
11162
- theme = "light"
11168
+ theme = "light",
11169
+ allowSearch = false
11163
11170
  }) => {
11164
11171
  const credentials = useMemo12(() => ({ token, url }), [token, url]);
11165
11172
  const rootRef = useRef11(null);
@@ -11169,6 +11176,7 @@ var RedisBrowser = ({
11169
11176
  return /* @__PURE__ */ jsx78(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx78(RedisProvider, { redisCredentials: credentials, telemetry: !disableTelemetry, children: /* @__PURE__ */ jsx78(DarkModeProvider, { theme, children: /* @__PURE__ */ jsx78(DatabrowserProvider, { storage, rootRef, children: /* @__PURE__ */ jsx78(TooltipProvider, { children: /* @__PURE__ */ jsx78(
11170
11177
  RedisBrowserRoot,
11171
11178
  {
11179
+ allowSearch,
11172
11180
  hideTabs,
11173
11181
  tabType,
11174
11182
  rootRef,
@@ -11179,6 +11187,7 @@ var RedisBrowser = ({
11179
11187
  var RedisBrowserRoot = ({
11180
11188
  hideTabs,
11181
11189
  tabType,
11190
+ allowSearch,
11182
11191
  rootRef,
11183
11192
  onFullScreenClick
11184
11193
  }) => {
@@ -11197,20 +11206,30 @@ var RedisBrowserRoot = ({
11197
11206
  ref: rootRef,
11198
11207
  children: /* @__PURE__ */ jsxs48("div", { className: "flex h-full flex-col overflow-hidden rounded-[14px] border-[4px] border-zinc-300 text-zinc-700", children: [
11199
11208
  !hideTabs && /* @__PURE__ */ jsx78(DatabrowserTabs, { onFullScreenClick }),
11200
- /* @__PURE__ */ jsx78(DatabrowserInstances, { tabType })
11209
+ /* @__PURE__ */ jsx78(DatabrowserInstances, { tabType, allowSearch })
11201
11210
  ] })
11202
11211
  }
11203
11212
  )
11204
11213
  );
11205
11214
  };
11206
- var DatabrowserInstances = ({ tabType }) => {
11215
+ var DatabrowserInstances = ({
11216
+ tabType,
11217
+ allowSearch
11218
+ }) => {
11207
11219
  const { tabs, selectedTab, selectTab, addTab } = useDatabrowserStore();
11208
11220
  useEffect22(() => {
11209
11221
  if (tabs.length === 0) addTab();
11210
11222
  else if (!selectedTab) selectTab(tabs[0][0]);
11211
11223
  }, [tabs, selectedTab, addTab, selectTab]);
11212
11224
  if (!selectedTab) return;
11213
- return tabs.map(([id]) => /* @__PURE__ */ jsx78(TabIdProvider, { value: id, children: /* @__PURE__ */ jsx78(DatabrowserInstance, { hidden: id !== selectedTab, tabType }) }, id));
11225
+ return tabs.map(([id]) => /* @__PURE__ */ jsx78(TabIdProvider, { value: id, children: /* @__PURE__ */ jsx78(
11226
+ DatabrowserInstance,
11227
+ {
11228
+ hidden: id !== selectedTab,
11229
+ tabType,
11230
+ allowSearch
11231
+ }
11232
+ ) }, id));
11214
11233
  };
11215
11234
  export {
11216
11235
  RedisBrowser
package/package.json CHANGED
@@ -1 +1 @@
1
- { "name": "@upstash/react-redis-browser", "version": "v0.2.14-rc.6", "main": "./dist/index.js", "types": "./dist/index.d.ts", "license": "MIT", "private": false, "publishConfig": { "access": "public" }, "repository": { "type": "git", "url": "git@github.com:upstash/react-redis-browser.git" }, "bugs": { "url": "https://github.com/upstash/react-redis-browser/issues" }, "homepage": "https://github.com/upstash/react-redis-browser", "files": [ "./dist/**" ], "scripts": { "build": "tsup", "dev": "vite", "lint": "tsc && eslint", "fmt": "prettier --write ./src", "prepare": "husky" }, "lint-staged": { "**/*.{js,ts,tsx}": [ "prettier --write", "eslint --fix" ] }, "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@ianvs/prettier-plugin-sort-imports": "^4.4.0", "@monaco-editor/react": "^4.6.0", "@radix-ui/react-alert-dialog": "^1.0.5", "@radix-ui/react-context-menu": "^2.2.2", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-dropdown-menu": "^2.1.15", "@radix-ui/react-label": "^2.1.8", "@radix-ui/react-popover": "^1.0.7", "@radix-ui/react-portal": "^1.1.2", "@radix-ui/react-progress": "^1.1.8", "@radix-ui/react-scroll-area": "^1.0.3", "@radix-ui/react-select": "^2.0.0", "@radix-ui/react-separator": "^1.1.8", "@radix-ui/react-slot": "^1.0.2", "@radix-ui/react-toast": "^1.1.5", "@radix-ui/react-tooltip": "^1.0.7", "@tabler/icons-react": "^3.19.0", "@tanstack/react-query": "^5.32.0", "@types/bytes": "^3.1.4", "@upstash/redis": "1.37.0-rc.6", "bytes": "^3.1.2", "cmdk": "^1.1.1", "react-hook-form": "^7.53.0", "react-resizable-panels": "^2.1.4", "zustand": "5.0.0" }, "devDependencies": { "@playwright/test": "^1.56.1", "@types/bun": "^1.3.7", "@types/node": "^22.8.4", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", "@typescript-eslint/eslint-plugin": "8.4.0", "@typescript-eslint/parser": "8.4.0", "@vitejs/plugin-react": "^4.1.0", "autoprefixer": "^10.4.14", "class-variance-authority": "^0.7.0", "clsx": "^2.0.0", "dotenv": "^16.5.0", "eslint": "9.10.0", "eslint-plugin-unicorn": "55.0.0", "husky": "^9.1.7", "lint-staged": "^16.2.7", "postcss": "^8.4.31", "postcss-prefix-selector": "^2.1.0", "prettier": "^3.0.3", "prettier-plugin-tailwindcss": "^0.5.5", "react": "^18.3.1", "react-dom": "^18.3.1", "tailwind-merge": "^2.5.4", "tailwindcss": "^3.4.14", "tailwindcss-animate": "^1.0.7", "tsup": "^8.3.5", "typescript": "^5.0.4", "vite": "^5.4.10", "vite-tsconfig-paths": "^5.0.1" }, "peerDependencies": { "react": "^18.2.0 || ^19", "react-dom": "^18.2.0 || ^19" } }
1
+ { "name": "@upstash/react-redis-browser", "version": "v0.2.14-rc.8", "main": "./dist/index.js", "types": "./dist/index.d.ts", "license": "MIT", "private": false, "publishConfig": { "access": "public" }, "repository": { "type": "git", "url": "git@github.com:upstash/react-redis-browser.git" }, "bugs": { "url": "https://github.com/upstash/react-redis-browser/issues" }, "homepage": "https://github.com/upstash/react-redis-browser", "files": [ "./dist/**" ], "scripts": { "build": "tsup", "dev": "vite", "lint": "tsc && eslint", "fmt": "prettier --write ./src", "prepare": "husky" }, "lint-staged": { "**/*.{js,ts,tsx}": [ "prettier --write", "eslint --fix" ] }, "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@ianvs/prettier-plugin-sort-imports": "^4.4.0", "@monaco-editor/react": "^4.6.0", "@radix-ui/react-alert-dialog": "^1.0.5", "@radix-ui/react-context-menu": "^2.2.2", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-dropdown-menu": "^2.1.15", "@radix-ui/react-label": "^2.1.8", "@radix-ui/react-popover": "^1.0.7", "@radix-ui/react-portal": "^1.1.2", "@radix-ui/react-progress": "^1.1.8", "@radix-ui/react-scroll-area": "^1.0.3", "@radix-ui/react-select": "^2.0.0", "@radix-ui/react-separator": "^1.1.8", "@radix-ui/react-slot": "^1.0.2", "@radix-ui/react-toast": "^1.1.5", "@radix-ui/react-tooltip": "^1.0.7", "@tabler/icons-react": "^3.19.0", "@tanstack/react-query": "^5.32.0", "@types/bytes": "^3.1.4", "@upstash/redis": "1.37.0-rc.6", "bytes": "^3.1.2", "cmdk": "^1.1.1", "react-hook-form": "^7.53.0", "react-resizable-panels": "^2.1.4", "zustand": "5.0.0" }, "devDependencies": { "@playwright/test": "^1.56.1", "@types/bun": "^1.3.7", "@types/node": "^22.8.4", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", "@typescript-eslint/eslint-plugin": "8.4.0", "@typescript-eslint/parser": "8.4.0", "@vitejs/plugin-react": "^4.1.0", "autoprefixer": "^10.4.14", "class-variance-authority": "^0.7.0", "clsx": "^2.0.0", "dotenv": "^16.5.0", "eslint": "9.10.0", "eslint-plugin-unicorn": "55.0.0", "husky": "^9.1.7", "lint-staged": "^16.2.7", "postcss": "^8.4.31", "postcss-prefix-selector": "^2.1.0", "prettier": "^3.0.3", "prettier-plugin-tailwindcss": "^0.5.5", "react": "^18.3.1", "react-dom": "^18.3.1", "tailwind-merge": "^2.5.4", "tailwindcss": "^3.4.14", "tailwindcss-animate": "^1.0.7", "tsup": "^8.3.5", "typescript": "^5.0.4", "vite": "^5.4.10", "vite-tsconfig-paths": "^5.0.1" }, "peerDependencies": { "react": "^18.2.0 || ^19", "react-dom": "^18.2.0 || ^19" } }