hyperdx/packages/app/package.json
Brandon Pereira de0b4fc755
Search Relative Time Queries (#1305)
Adds "Relative Time" switch to TimePicker component (if relative time is supported by parent). When enabled, searches will work similar to Live Tail but be relative to the option selected.

<img width="555" height="418" alt="Screenshot 2025-10-27 at 2 05 25 PM" src="https://github.com/user-attachments/assets/20d38011-d5d0-479f-a8ea-6b0be441ca87" />

Some notes:

1. When relative is enabled, I disabled very large time ranges to prioritize performance.
2. If you select "Last 15 mins" then reload, the Input will save "Live Tail" because these are the same option, this should be an edge case.
3. In the future, we might want to make "Relative Time" the default, but I didn't want to immediately do that. We could probably improve the UX further (cc @elizabetdev).
4. Moves a lot of the "Live Tail" logic out of various spots and centralizes it in a unified spot to support other values 

Fixes HDX-2653
2025-10-29 15:49:10 +00:00

165 lines
5.2 KiB
JSON

{
"name": "@hyperdx/app",
"version": "2.7.0",
"private": true,
"license": "MIT",
"engines": {
"node": ">=22.16.0"
},
"scripts": {
"dev": "npx dotenv -e .env.development -- next dev",
"dev:local": "NEXT_PUBLIC_IS_LOCAL_MODE=true npx dotenv -e .env.development -- next dev",
"build": "next build",
"start": "next start",
"lint": "npx eslint --quiet . --ext .ts,.tsx",
"lint:fix": "npx eslint . --ext .ts,.tsx --fix",
"lint:styles": "stylelint **/*/*.{css,scss}",
"ci:lint": "yarn lint && yarn tsc --noEmit && yarn lint:styles --quiet",
"ci:unit": "jest --ci --coverage",
"dev:unit": "jest --watchAll --detectOpenHandles",
"test:e2e": "playwright test",
"test:e2e:ui": "playwright test --ui",
"test:e2e:debug": "playwright test --debug",
"storybook": "storybook dev -p 6006",
"storybook:build": "storybook build",
"knip": "knip"
},
"dependencies": {
"@codemirror/lang-json": "^6.0.1",
"@codemirror/lang-sql": "^6.7.0",
"@hookform/resolvers": "^3.9.0",
"@hyperdx/browser": "^0.21.1",
"@hyperdx/common-utils": "^0.7.1",
"@hyperdx/node-opentelemetry": "^0.9.0",
"@lezer/highlight": "^1.2.0",
"@mantine/core": "7.9.2",
"@mantine/dates": "^7.11.2",
"@mantine/dropzone": "^8.3.1",
"@mantine/form": "^7.11.2",
"@mantine/hooks": "7.9.2",
"@mantine/notifications": "^7.9.2",
"@mantine/spotlight": "7.9.2",
"@microsoft/fetch-event-source": "^2.0.1",
"@tabler/icons-react": "^3.5.0",
"@tanstack/react-query": "^5.56.2",
"@tanstack/react-query-devtools": "^5.56.2",
"@tanstack/react-table": "^8.7.9",
"@tanstack/react-virtual": "^3.0.1",
"@uiw/codemirror-theme-atomone": "^4.23.3",
"@uiw/codemirror-themes": "^4.23.3",
"@uiw/react-codemirror": "^4.23.3",
"bootstrap": "^5.1.3",
"chrono-node": "^2.7.8",
"classnames": "^2.3.1",
"crypto-js": "^4.2.0",
"crypto-randomuuid": "^1.0.0",
"date-fns": "^2.28.0",
"date-fns-tz": "^2.0.0",
"flat": "^6.0.1",
"fuse.js": "^6.6.2",
"http-proxy-middleware": "^3.0.5",
"immer": "^9.0.21",
"jotai": "^2.5.1",
"ky": "^0.30.0",
"ky-universal": "^0.10.1",
"lodash": "^4.17.21",
"ms": "^2.1.3",
"next": "^14.2.32",
"next-query-params": "^4.1.0",
"next-runtime-env": "1",
"next-seo": "^4.28.1",
"nextra": "2.0.1",
"nextra-theme-docs": "^2.0.2",
"numbro": "^2.4.0",
"nuqs": "^1.17.0",
"object-hash": "^3.0.0",
"react": "18.3.1",
"react-bootstrap": "^2.4.0",
"react-bootstrap-range-slider": "^3.0.8",
"react-copy-to-clipboard": "^5.1.0",
"react-dom": "18.3.1",
"react-error-boundary": "^3.1.4",
"react-grid-layout": "^1.3.4",
"react-hook-form": "^7.43.8",
"react-hook-form-mantine": "^3.1.3",
"react-hotkeys-hook": "^4.3.7",
"react-json-tree": "^0.17.0",
"react-markdown": "^8.0.4",
"react-papaparse": "^4.4.0",
"react-query": "^3.39.3",
"react-select": "^5.7.0",
"react-sortable-hoc": "^2.0.0",
"react-useportal": "^1.0.18",
"recharts": "^2.12.7",
"rrweb": "2.0.0-alpha.8",
"sass": "^1.54.8",
"serialize-query-params": "^2.0.2",
"sql-formatter": "^15.4.0",
"sqlstring": "^2.3.3",
"store2": "^2.14.3",
"strip-ansi": "^6.0.1",
"timestamp-nano": "^1.0.1",
"uplot": "^1.6.31",
"uplot-react": "^1.2.2",
"use-query-params": "^2.1.2",
"zod": "3.25"
},
"devDependencies": {
"@chromatic-com/storybook": "^1.5.0",
"@hookform/devtools": "^4.3.1",
"@jedmao/location": "^3.0.0",
"@playwright/test": "^1.47.0",
"@storybook/addon-essentials": "^8.1.5",
"@storybook/addon-interactions": "^8.1.5",
"@storybook/addon-links": "^8.1.5",
"@storybook/addon-styling-webpack": "^1.0.0",
"@storybook/blocks": "^8.1.5",
"@storybook/nextjs": "^8.1.5",
"@storybook/react": "^8.1.5",
"@storybook/test": "^8.1.5",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.4.2",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.5.2",
"@types/crypto-js": "^4",
"@types/identity-obj-proxy": "^3",
"@types/intercom-web": "^2.8.18",
"@types/jest": "^29.5.14",
"@types/lodash": "^4.14.186",
"@types/ms": "^0.7.31",
"@types/object-hash": "^2.2.1",
"@types/pluralize": "^0.0.29",
"@types/react": "18.3.1",
"@types/react-copy-to-clipboard": "^5.0.2",
"@types/react-dom": "18.3.1",
"@types/react-grid-layout": "^1.3.2",
"@types/react-syntax-highlighter": "^13.5.2",
"@types/react-table": "^7.7.14",
"@types/sqlstring": "^2.3.2",
"eslint-config-next": "^14.2.29",
"identity-obj-proxy": "^3.0.0",
"jest": "^28.1.3",
"jest-environment-jsdom": "^29.7.0",
"knip": "^5.33.2",
"msw": "^2.3.0",
"msw-storybook-addon": "^2.0.2",
"postcss": "^8.4.38",
"postcss-preset-mantine": "^1.15.0",
"prettier": "^3.3.2",
"storybook": "^8.1.5",
"stylelint": "^16.6.1",
"stylelint-config-standard-scss": "^13.1.0",
"stylelint-prettier": "^5.0.0",
"ts-jest": "^29.2.6",
"typescript": "^4.9.5"
},
"nx": {
"targets": {
"build": {
"outputs": [
"{projectRoot}/.next"
]
}
}
}
}