+
Error loading chart, please check your query or try again later.
diff --git a/packages/app/tests/e2e/components/ChartEditorComponent.ts b/packages/app/tests/e2e/components/ChartEditorComponent.ts
index d7bd3423..45769813 100644
--- a/packages/app/tests/e2e/components/ChartEditorComponent.ts
+++ b/packages/app/tests/e2e/components/ChartEditorComponent.ts
@@ -18,6 +18,7 @@ export class ChartEditorComponent {
private readonly chartTypeInput: Locator;
private readonly sourceSelector: Locator;
private readonly metricSelector: Locator;
+ private readonly aggFnSelect: Locator;
private readonly addOrRemoveAlertButton: Locator;
private readonly webhookSelector: Locator;
private readonly runQueryButton: Locator;
@@ -29,6 +30,7 @@ export class ChartEditorComponent {
this.chartTypeInput = page.getByTestId('chart-type-input');
this.sourceSelector = page.getByTestId('source-selector');
this.metricSelector = page.getByTestId('metric-name-selector');
+ this.aggFnSelect = page.getByTestId('agg-fn-select');
this.addOrRemoveAlertButton = page.getByTestId('alert-button');
this.webhookSelector = page.getByTestId('select-webhook');
this.addNewWebhookButton = page.getByTestId('add-new-webhook-button');
@@ -99,6 +101,33 @@ export class ChartEditorComponent {
}
}
+ /**
+ * Select an aggregation function from the dropdown
+ */
+ async selectAggFn(label: string) {
+ await this.aggFnSelect.click();
+ await this.page.getByRole('option', { name: label }).click();
+ }
+
+ /**
+ * Get the currently selected aggregation function value
+ */
+ async getSelectedAggFn(): Promise {
+ return this.aggFnSelect.inputValue();
+ }
+
+ /**
+ * Check if an aggregation function option is available in the dropdown
+ */
+ async isAggFnOptionAvailable(label: string): Promise {
+ await this.aggFnSelect.click();
+ const option = this.page.getByRole('option', { name: label });
+ const visible = await option.isVisible().catch(() => false);
+ // Close the dropdown
+ await this.page.keyboard.press('Escape');
+ return visible;
+ }
+
async clickAddAlert() {
await this.addOrRemoveAlertButton.click();
this.addNewWebhookButton.waitFor({
@@ -250,6 +279,10 @@ export class ChartEditorComponent {
return this.metricSelector;
}
+ get aggFn() {
+ return this.aggFnSelect;
+ }
+
get alertButton() {
return this.addOrRemoveAlertButton;
}
diff --git a/packages/app/tests/e2e/features/correlated-metric-source.spec.ts b/packages/app/tests/e2e/features/correlated-metric-source.spec.ts
new file mode 100644
index 00000000..96143c20
--- /dev/null
+++ b/packages/app/tests/e2e/features/correlated-metric-source.spec.ts
@@ -0,0 +1,35 @@
+import { SearchPage } from '../page-objects/SearchPage';
+import { expect, test } from '../utils/base-test';
+
+test.describe('Correlated Metric Source', { tag: ['@full-stack'] }, () => {
+ let searchPage: SearchPage;
+
+ test.beforeEach(async ({ page }) => {
+ searchPage = new SearchPage(page);
+ });
+
+ test('should show alert when no correlated metric source is configured', async ({
+ page,
+ }) => {
+ // Navigate to search page
+ await searchPage.goto();
+
+ // Select the source without metricSourceId
+ await searchPage.selectSource('E2E K8s Logs No Metrics');
+
+ // Search for K8s events that have k8s.pod.uid resource attribute
+ await searchPage.performSearch('ResourceAttributes.k8s.pod.uid:*');
+
+ // Click on first row to open side panel
+ await searchPage.table.clickFirstRow();
+
+ // Click the Infrastructure tab
+ await searchPage.sidePanel.clickTab('infrastructure');
+
+ // Assert the "No correlated metric source" alert is visible
+ await expect(page.getByText('No correlated metric source')).toBeVisible();
+ await expect(
+ page.getByText('does not have a correlated metric source'),
+ ).toBeVisible();
+ });
+});
diff --git a/packages/app/tests/e2e/features/dashboard.spec.ts b/packages/app/tests/e2e/features/dashboard.spec.ts
index 1510bec0..4f7264d9 100644
--- a/packages/app/tests/e2e/features/dashboard.spec.ts
+++ b/packages/app/tests/e2e/features/dashboard.spec.ts
@@ -793,6 +793,41 @@ test.describe('Dashboard', { tag: ['@dashboard'] }, () => {
});
});
+ test(
+ 'should deselect and hide the Custom aggregation function when switching to a metric source',
+ { tag: '@full-stack' },
+ async () => {
+ await test.step('Navigate to dashboard and open new tile editor', async () => {
+ await dashboardPage.openNewTileEditor();
+ });
+
+ await test.step('Select the "Custom" aggregation function', async () => {
+ await dashboardPage.chartEditor.selectAggFn('Custom');
+ const selectedAggFn =
+ await dashboardPage.chartEditor.getSelectedAggFn();
+ expect(selectedAggFn).toBe('Custom');
+ });
+
+ await test.step('Switch the source to a metric source', async () => {
+ await dashboardPage.chartEditor.selectSource(
+ DEFAULT_METRICS_SOURCE_NAME,
+ );
+ });
+
+ await test.step('Verify the aggregation function was automatically changed away from "Custom"', async () => {
+ const selectedAggFn =
+ await dashboardPage.chartEditor.getSelectedAggFn();
+ expect(selectedAggFn).toBe('Count of Events');
+ });
+
+ await test.step('Verify the "Custom" option is NOT available in the aggregation dropdown', async () => {
+ const isCustomAvailable =
+ await dashboardPage.chartEditor.isAggFnOptionAvailable('Custom');
+ expect(isCustomAvailable).toBe(false);
+ });
+ },
+ );
+
test(
'should clear saved query when WHERE input is cleared and saved',
{},
diff --git a/packages/app/tests/e2e/fixtures/e2e-fixtures.json b/packages/app/tests/e2e/fixtures/e2e-fixtures.json
index 7ee876e5..d4e3f31b 100644
--- a/packages/app/tests/e2e/fixtures/e2e-fixtures.json
+++ b/packages/app/tests/e2e/fixtures/e2e-fixtures.json
@@ -92,6 +92,23 @@
"traceIdExpression": "TraceId",
"spanIdExpression": "SpanId",
"implicitColumnExpression": "Body"
+ },
+ {
+ "id": "E2E K8s Logs No Metrics",
+ "kind": "log",
+ "name": "E2E K8s Logs No Metrics",
+ "connection": "local",
+ "from": { "databaseName": "default", "tableName": "e2e_otel_logs" },
+ "timestampValueExpression": "TimestampTime",
+ "defaultTableSelectExpression": "Timestamp, ServiceName, SeverityText, Body",
+ "serviceNameExpression": "ServiceName",
+ "severityTextExpression": "SeverityText",
+ "eventAttributesExpression": "LogAttributes",
+ "resourceAttributesExpression": "ResourceAttributes",
+ "traceIdExpression": "TraceId",
+ "spanIdExpression": "SpanId",
+ "implicitColumnExpression": "Body",
+ "displayedTimestampValueExpression": "Timestamp"
}
]
}
diff --git a/packages/common-utils/CHANGELOG.md b/packages/common-utils/CHANGELOG.md
index 3cf4e5d9..2c19be33 100644
--- a/packages/common-utils/CHANGELOG.md
+++ b/packages/common-utils/CHANGELOG.md
@@ -1,5 +1,23 @@
# @hyperdx/common-utils
+## 0.17.0
+
+### Minor Changes
+
+- a15122b3: feat: new team setting for number of filters to fetch
+- 941d0450: feat: support sample-weighted aggregations for sampled trace data
+
+### Patch Changes
+
+- 518bda7d: feat: Add dashboard template gallery
+- 4e54d850: fix: show Map sub-fields in facet panel for non-LowCardinality value types
+- 53ba1e39: feat: Add favoriting for dashboards and saved searches
+- b7581db8: feat: Add more chart display units
+- 48a8d32b: fix: Fixed bug preventing clicking into rows with nullable date types (and other misc type) columns.
+- a55b151e: fix: render clickhouse keywords properly in codemirror
+- 308da30b: feat: Add $\_\_sourceTable macro
+- e5c7fdf9: feat: Add saved searches listing page
+
## 0.16.2
### Patch Changes
diff --git a/packages/common-utils/package.json b/packages/common-utils/package.json
index 277a59ae..1aac3904 100644
--- a/packages/common-utils/package.json
+++ b/packages/common-utils/package.json
@@ -1,7 +1,7 @@
{
"name": "@hyperdx/common-utils",
"description": "Common utilities for HyperDX application",
- "version": "0.16.2",
+ "version": "0.17.0",
"license": "MIT",
"private": true,
"files": [
diff --git a/packages/otel-collector/CHANGELOG.md b/packages/otel-collector/CHANGELOG.md
index d2936c42..e18a2746 100644
--- a/packages/otel-collector/CHANGELOG.md
+++ b/packages/otel-collector/CHANGELOG.md
@@ -1,5 +1,7 @@
# @hyperdx/otel-collector
+## 2.23.0
+
## 2.22.1
### Patch Changes
diff --git a/packages/otel-collector/package.json b/packages/otel-collector/package.json
index 2bcfc537..ff1254a5 100644
--- a/packages/otel-collector/package.json
+++ b/packages/otel-collector/package.json
@@ -1,7 +1,7 @@
{
"name": "@hyperdx/otel-collector",
"description": "HyperDX OpenTelemetry Collector configuration and Docker image",
- "version": "2.22.1",
+ "version": "2.23.0",
"license": "MIT",
"private": true
}
diff --git a/yarn.lock b/yarn.lock
index 52902d56..5c1050e8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3878,6 +3878,17 @@ __metadata:
languageName: node
linkType: hard
+"@eslint-community/eslint-utils@npm:^4.9.1":
+ version: 4.9.1
+ resolution: "@eslint-community/eslint-utils@npm:4.9.1"
+ dependencies:
+ eslint-visitor-keys: "npm:^3.4.3"
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+ checksum: 10c0/dc4ab5e3e364ef27e33666b11f4b86e1a6c1d7cbf16f0c6ff87b1619b3562335e9201a3d6ce806221887ff780ec9d828962a290bb910759fd40a674686503f02
+ languageName: node
+ linkType: hard
+
"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.12.1":
version: 4.12.2
resolution: "@eslint-community/regexpp@npm:4.12.2"
@@ -3892,6 +3903,92 @@ __metadata:
languageName: node
linkType: hard
+"@eslint-react/ast@npm:3.0.0":
+ version: 3.0.0
+ resolution: "@eslint-react/ast@npm:3.0.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:^8.57.0"
+ "@typescript-eslint/typescript-estree": "npm:^8.57.0"
+ "@typescript-eslint/utils": "npm:^8.57.0"
+ string-ts: "npm:^2.3.1"
+ peerDependencies:
+ eslint: ^10.0.0
+ typescript: "*"
+ checksum: 10c0/d22565903f78061a5b2b6cc093209c50b941311d0fe760dc8eb74b9a7792968801f02eba3de7e3ff981e25fc36bdcbd3b5c1e340941b201a57bebf5683b5cdc9
+ languageName: node
+ linkType: hard
+
+"@eslint-react/core@npm:3.0.0":
+ version: 3.0.0
+ resolution: "@eslint-react/core@npm:3.0.0"
+ dependencies:
+ "@eslint-react/ast": "npm:3.0.0"
+ "@eslint-react/shared": "npm:3.0.0"
+ "@eslint-react/var": "npm:3.0.0"
+ "@typescript-eslint/scope-manager": "npm:^8.57.0"
+ "@typescript-eslint/types": "npm:^8.57.0"
+ "@typescript-eslint/utils": "npm:^8.57.0"
+ ts-pattern: "npm:^5.9.0"
+ peerDependencies:
+ eslint: ^10.0.0
+ typescript: "*"
+ checksum: 10c0/bc38ef9191dd4b8da213b86b02bce995edbbd5cd805cb89f7285eec4822c436f6978937f77a65d0fe6db90ed7657044872f945969753b184f5bcb9e1cc34c87a
+ languageName: node
+ linkType: hard
+
+"@eslint-react/eslint-plugin@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "@eslint-react/eslint-plugin@npm:3.0.0"
+ dependencies:
+ "@eslint-react/shared": "npm:3.0.0"
+ "@typescript-eslint/scope-manager": "npm:^8.57.0"
+ "@typescript-eslint/type-utils": "npm:^8.57.0"
+ "@typescript-eslint/types": "npm:^8.57.0"
+ "@typescript-eslint/utils": "npm:^8.57.0"
+ eslint-plugin-react-dom: "npm:3.0.0"
+ eslint-plugin-react-naming-convention: "npm:3.0.0"
+ eslint-plugin-react-rsc: "npm:3.0.0"
+ eslint-plugin-react-web-api: "npm:3.0.0"
+ eslint-plugin-react-x: "npm:3.0.0"
+ ts-api-utils: "npm:^2.4.0"
+ peerDependencies:
+ eslint: ^10.0.0
+ typescript: "*"
+ checksum: 10c0/d52bdbdf058c58149bfb104e182e05b4e88280edc440e70aede334205cad280e79829217d7fbfeda1162eb7020a5e7bb5339a9e0ac6e8c1143096d0261146ec3
+ languageName: node
+ linkType: hard
+
+"@eslint-react/shared@npm:3.0.0":
+ version: 3.0.0
+ resolution: "@eslint-react/shared@npm:3.0.0"
+ dependencies:
+ "@typescript-eslint/utils": "npm:^8.57.0"
+ ts-pattern: "npm:^5.9.0"
+ zod: "npm:^4.3.6"
+ peerDependencies:
+ eslint: ^10.0.0
+ typescript: "*"
+ checksum: 10c0/04af79b8aca7063cd093b0447d3eaa5067d1614bde019fc5a16df308eff0460a574440223504b230c06617a1ceeaf149730ca1ba6b863dc173baf7bf0e1b1ceb
+ languageName: node
+ linkType: hard
+
+"@eslint-react/var@npm:3.0.0":
+ version: 3.0.0
+ resolution: "@eslint-react/var@npm:3.0.0"
+ dependencies:
+ "@eslint-react/ast": "npm:3.0.0"
+ "@eslint-react/shared": "npm:3.0.0"
+ "@typescript-eslint/scope-manager": "npm:^8.57.0"
+ "@typescript-eslint/types": "npm:^8.57.0"
+ "@typescript-eslint/utils": "npm:^8.57.0"
+ ts-pattern: "npm:^5.9.0"
+ peerDependencies:
+ eslint: ^10.0.0
+ typescript: "*"
+ checksum: 10c0/1dcd34e44ad14c5be3889551c8bbb8a0eadf9b05a3bee343e8640a9953b27a2eeec9c9fc4997e56a4fff0b6a512ddb663d8411cf751e988201488a4207f9573e
+ languageName: node
+ linkType: hard
+
"@eslint/compat@npm:^2.0.0":
version: 2.0.0
resolution: "@eslint/compat@npm:2.0.0"
@@ -4133,7 +4230,7 @@ __metadata:
"@ai-sdk/anthropic": "npm:^3.0.58"
"@ai-sdk/openai": "npm:^3.0.47"
"@esm2cjs/p-queue": "npm:^7.3.0"
- "@hyperdx/common-utils": "npm:^0.16.2"
+ "@hyperdx/common-utils": "npm:^0.17.0"
"@hyperdx/node-opentelemetry": "npm:^0.9.0"
"@hyperdx/passport-local-mongoose": "npm:^9.0.1"
"@opentelemetry/api": "npm:^1.8.0"
@@ -4213,10 +4310,11 @@ __metadata:
"@codemirror/lint": "npm:^6.0.0"
"@codemirror/state": "npm:^6.0.0"
"@dagrejs/dagre": "npm:^1.1.5"
+ "@eslint-react/eslint-plugin": "npm:^3.0.0"
"@eslint/compat": "npm:^2.0.0"
"@hookform/resolvers": "npm:^3.9.0"
"@hyperdx/browser": "npm:^0.22.0"
- "@hyperdx/common-utils": "npm:^0.16.2"
+ "@hyperdx/common-utils": "npm:^0.17.0"
"@hyperdx/node-opentelemetry": "npm:^0.9.0"
"@jedmao/location": "npm:^3.0.0"
"@mantine/core": "npm:^7.17.8"
@@ -4266,7 +4364,6 @@ __metadata:
dayjs: "npm:^1.11.19"
eslint-config-next: "npm:^16.0.10"
eslint-plugin-playwright: "npm:^2.4.0"
- eslint-plugin-react: "npm:^7.37.0"
eslint-plugin-react-hook-form: "npm:^0.3.1"
eslint-plugin-react-hooks: "npm:^7.0.1"
eslint-plugin-storybook: "npm:10.1.4"
@@ -4342,7 +4439,7 @@ __metadata:
languageName: node
linkType: hard
-"@hyperdx/common-utils@npm:^0.16.2, @hyperdx/common-utils@workspace:packages/common-utils":
+"@hyperdx/common-utils@npm:^0.17.0, @hyperdx/common-utils@workspace:packages/common-utils":
version: 0.0.0-use.local
resolution: "@hyperdx/common-utils@workspace:packages/common-utils"
dependencies:
@@ -10230,6 +10327,19 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/project-service@npm:8.57.2":
+ version: 8.57.2
+ resolution: "@typescript-eslint/project-service@npm:8.57.2"
+ dependencies:
+ "@typescript-eslint/tsconfig-utils": "npm:^8.57.2"
+ "@typescript-eslint/types": "npm:^8.57.2"
+ debug: "npm:^4.4.3"
+ peerDependencies:
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/f84e3165b0a214318d4bc119018b87c044170d7638945e84bd4cee2d752b62c1797ce722ca1161cd06f48512d0115ef75500e6c8fc01005ad4bb39fb48dd77bf
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/scope-manager@npm:8.48.1":
version: 8.48.1
resolution: "@typescript-eslint/scope-manager@npm:8.48.1"
@@ -10240,6 +10350,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/scope-manager@npm:8.57.2, @typescript-eslint/scope-manager@npm:^8.57.0":
+ version: 8.57.2
+ resolution: "@typescript-eslint/scope-manager@npm:8.57.2"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.57.2"
+ "@typescript-eslint/visitor-keys": "npm:8.57.2"
+ checksum: 10c0/532b1a97a5c2fce51400fa1a94e09615b4df84ce1f2d107206a3f3935074cada396a3e30f155582a698981832868e1afea1641ff779ad9456fdc94169b7def64
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/tsconfig-utils@npm:8.48.1, @typescript-eslint/tsconfig-utils@npm:^8.48.1":
version: 8.48.1
resolution: "@typescript-eslint/tsconfig-utils@npm:8.48.1"
@@ -10249,6 +10369,15 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/tsconfig-utils@npm:8.57.2, @typescript-eslint/tsconfig-utils@npm:^8.57.2":
+ version: 8.57.2
+ resolution: "@typescript-eslint/tsconfig-utils@npm:8.57.2"
+ peerDependencies:
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/199dad2d96efc88ce94f5f3e12e97205537bf7a7152e56ef1d84dfbe7bd1babebea9b9f396c01b6c447505a4eb02c1cbbd2c28828c587b51b41b15d017a11d2f
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/type-utils@npm:8.48.1":
version: 8.48.1
resolution: "@typescript-eslint/type-utils@npm:8.48.1"
@@ -10265,6 +10394,22 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/type-utils@npm:^8.57.0":
+ version: 8.57.2
+ resolution: "@typescript-eslint/type-utils@npm:8.57.2"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.57.2"
+ "@typescript-eslint/typescript-estree": "npm:8.57.2"
+ "@typescript-eslint/utils": "npm:8.57.2"
+ debug: "npm:^4.4.3"
+ ts-api-utils: "npm:^2.4.0"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/9c479cd0e809d26b7da7b31e830520bc016aaf528bc10a8b8279374808cb76a27f1b4adc77c84156417dc70f6a9e8604f47717b555a27293da2b9b5cfda70411
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/types@npm:8.48.1, @typescript-eslint/types@npm:^8.48.1":
version: 8.48.1
resolution: "@typescript-eslint/types@npm:8.48.1"
@@ -10272,6 +10417,13 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/types@npm:8.57.2, @typescript-eslint/types@npm:^8.57.0, @typescript-eslint/types@npm:^8.57.2":
+ version: 8.57.2
+ resolution: "@typescript-eslint/types@npm:8.57.2"
+ checksum: 10c0/3cd87dd77d28b3ac2fed56a17909b0d11633628d4d733aa148dfd7af72e2cc3ec0e6114b72fac0ff538e8a47e907b4b10dab4095170ae1bd73719ef0b8eaf2e7
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/typescript-estree@npm:8.48.1":
version: 8.48.1
resolution: "@typescript-eslint/typescript-estree@npm:8.48.1"
@@ -10291,6 +10443,25 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/typescript-estree@npm:8.57.2, @typescript-eslint/typescript-estree@npm:^8.57.0":
+ version: 8.57.2
+ resolution: "@typescript-eslint/typescript-estree@npm:8.57.2"
+ dependencies:
+ "@typescript-eslint/project-service": "npm:8.57.2"
+ "@typescript-eslint/tsconfig-utils": "npm:8.57.2"
+ "@typescript-eslint/types": "npm:8.57.2"
+ "@typescript-eslint/visitor-keys": "npm:8.57.2"
+ debug: "npm:^4.4.3"
+ minimatch: "npm:^10.2.2"
+ semver: "npm:^7.7.3"
+ tinyglobby: "npm:^0.2.15"
+ ts-api-utils: "npm:^2.4.0"
+ peerDependencies:
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/2c5d143f0abbafd07a45f0b956aab5d6487b27f74fe93bee93e0a3f8edc8913f1522faf8d7d5215f3809a8d12f5729910ea522156552f2481b66e6d05ab311ae
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/utils@npm:8.48.1, @typescript-eslint/utils@npm:^8.8.1":
version: 8.48.1
resolution: "@typescript-eslint/utils@npm:8.48.1"
@@ -10306,6 +10477,21 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/utils@npm:8.57.2, @typescript-eslint/utils@npm:^8.57.0":
+ version: 8.57.2
+ resolution: "@typescript-eslint/utils@npm:8.57.2"
+ dependencies:
+ "@eslint-community/eslint-utils": "npm:^4.9.1"
+ "@typescript-eslint/scope-manager": "npm:8.57.2"
+ "@typescript-eslint/types": "npm:8.57.2"
+ "@typescript-eslint/typescript-estree": "npm:8.57.2"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/5771f3d4206004cc817a6556a472926b4c1c885dc448049c10ffab1d5aac7bd59450a391fb57ce8ef31a8367e9c8ddb3bc9370c4e83fc8b61f50fd5189390e8f
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/visitor-keys@npm:8.48.1":
version: 8.48.1
resolution: "@typescript-eslint/visitor-keys@npm:8.48.1"
@@ -10316,6 +10502,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/visitor-keys@npm:8.57.2":
+ version: 8.57.2
+ resolution: "@typescript-eslint/visitor-keys@npm:8.57.2"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.57.2"
+ eslint-visitor-keys: "npm:^5.0.0"
+ checksum: 10c0/8ceb8c228bf97b3e4b343bf6e42a91998d2522f459eb6b53c6bfad4898a9df74295660893dee6b698bdbbda537e968bfc13a3c56fc341089ebfba13db766a574
+ languageName: node
+ linkType: hard
+
"@uiw/codemirror-extensions-basic-setup@npm:4.23.3":
version: 4.23.3
resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.23.3"
@@ -11825,6 +12021,13 @@ __metadata:
languageName: node
linkType: hard
+"birecord@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "birecord@npm:0.1.1"
+ checksum: 10c0/7c7f8c38caebd98bcbfc8a209eaa3044384636ea162757de670c8633b7d1064b3b58e4e3d3a48fe10e279cd39290a76a31a18956a1c76b2b13522b6cf0293238
+ languageName: node
+ linkType: hard
+
"bl@npm:^4.0.3, bl@npm:^4.1.0":
version: 4.1.0
resolution: "bl@npm:4.1.0"
@@ -12918,6 +13121,13 @@ __metadata:
languageName: node
linkType: hard
+"compare-versions@npm:^6.1.1":
+ version: 6.1.1
+ resolution: "compare-versions@npm:6.1.1"
+ checksum: 10c0/415205c7627f9e4f358f571266422980c9fe2d99086be0c9a48008ef7c771f32b0fbe8e97a441ffedc3910872f917a0675fe0fe3c3b6d331cda6d8690be06338
+ languageName: node
+ linkType: hard
+
"component-emitter@npm:^1.3.0":
version: 1.3.0
resolution: "component-emitter@npm:1.3.0"
@@ -15116,6 +15326,26 @@ __metadata:
languageName: node
linkType: hard
+"eslint-plugin-react-dom@npm:3.0.0":
+ version: 3.0.0
+ resolution: "eslint-plugin-react-dom@npm:3.0.0"
+ dependencies:
+ "@eslint-react/ast": "npm:3.0.0"
+ "@eslint-react/core": "npm:3.0.0"
+ "@eslint-react/shared": "npm:3.0.0"
+ "@eslint-react/var": "npm:3.0.0"
+ "@typescript-eslint/scope-manager": "npm:^8.57.0"
+ "@typescript-eslint/types": "npm:^8.57.0"
+ "@typescript-eslint/utils": "npm:^8.57.0"
+ compare-versions: "npm:^6.1.1"
+ ts-pattern: "npm:^5.9.0"
+ peerDependencies:
+ eslint: ^10.0.0
+ typescript: "*"
+ checksum: 10c0/00b4ec055b7bc2cc12becbed6da633e2574b25d2ff5cfc7f4d74b37b96d95b04464403f7ce583b95fa530bb52af5b7d31c9ad8a35b402b24623c0c2a7490ad35
+ languageName: node
+ linkType: hard
+
"eslint-plugin-react-hook-form@npm:^0.3.1":
version: 0.3.1
resolution: "eslint-plugin-react-hook-form@npm:0.3.1"
@@ -15140,6 +15370,90 @@ __metadata:
languageName: node
linkType: hard
+"eslint-plugin-react-naming-convention@npm:3.0.0":
+ version: 3.0.0
+ resolution: "eslint-plugin-react-naming-convention@npm:3.0.0"
+ dependencies:
+ "@eslint-react/ast": "npm:3.0.0"
+ "@eslint-react/core": "npm:3.0.0"
+ "@eslint-react/shared": "npm:3.0.0"
+ "@eslint-react/var": "npm:3.0.0"
+ "@typescript-eslint/scope-manager": "npm:^8.57.0"
+ "@typescript-eslint/type-utils": "npm:^8.57.0"
+ "@typescript-eslint/types": "npm:^8.57.0"
+ "@typescript-eslint/utils": "npm:^8.57.0"
+ compare-versions: "npm:^6.1.1"
+ string-ts: "npm:^2.3.1"
+ ts-pattern: "npm:^5.9.0"
+ peerDependencies:
+ eslint: ^10.0.0
+ typescript: "*"
+ checksum: 10c0/71abffdba83e5070b98c2f246577e968423a9445dde237222721ba789c69646ec8cd701d98172ef7d5f9ca98ff0383c769a1c646df81ea46f3659c0406e441c8
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react-rsc@npm:3.0.0":
+ version: 3.0.0
+ resolution: "eslint-plugin-react-rsc@npm:3.0.0"
+ dependencies:
+ "@eslint-react/ast": "npm:3.0.0"
+ "@eslint-react/shared": "npm:3.0.0"
+ "@eslint-react/var": "npm:3.0.0"
+ "@typescript-eslint/scope-manager": "npm:^8.57.0"
+ "@typescript-eslint/type-utils": "npm:^8.57.0"
+ "@typescript-eslint/types": "npm:^8.57.0"
+ "@typescript-eslint/utils": "npm:^8.57.0"
+ ts-pattern: "npm:^5.9.0"
+ peerDependencies:
+ eslint: ^10.0.0
+ typescript: "*"
+ checksum: 10c0/d129083595c805aba35c7faa753b9c76ed507b388d522cf4e0873dfabd93f50f8c350f9910c49588302ee80924ea551ec0b5725d4aa6ceb6836f0c2eb2fcc757
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react-web-api@npm:3.0.0":
+ version: 3.0.0
+ resolution: "eslint-plugin-react-web-api@npm:3.0.0"
+ dependencies:
+ "@eslint-react/ast": "npm:3.0.0"
+ "@eslint-react/core": "npm:3.0.0"
+ "@eslint-react/shared": "npm:3.0.0"
+ "@eslint-react/var": "npm:3.0.0"
+ "@typescript-eslint/scope-manager": "npm:^8.57.0"
+ "@typescript-eslint/types": "npm:^8.57.0"
+ "@typescript-eslint/utils": "npm:^8.57.0"
+ birecord: "npm:^0.1.1"
+ ts-pattern: "npm:^5.9.0"
+ peerDependencies:
+ eslint: ^10.0.0
+ typescript: "*"
+ checksum: 10c0/7cafcd210eec97f16e70ce641e8d8daf2313e643caa8121bdcee5df6b107f5764e2331d993b67e5fc896a893cbaa30db9751df94284fc92fb30205f0240ee556
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react-x@npm:3.0.0":
+ version: 3.0.0
+ resolution: "eslint-plugin-react-x@npm:3.0.0"
+ dependencies:
+ "@eslint-react/ast": "npm:3.0.0"
+ "@eslint-react/core": "npm:3.0.0"
+ "@eslint-react/shared": "npm:3.0.0"
+ "@eslint-react/var": "npm:3.0.0"
+ "@typescript-eslint/scope-manager": "npm:^8.57.0"
+ "@typescript-eslint/type-utils": "npm:^8.57.0"
+ "@typescript-eslint/types": "npm:^8.57.0"
+ "@typescript-eslint/utils": "npm:^8.57.0"
+ compare-versions: "npm:^6.1.1"
+ string-ts: "npm:^2.3.1"
+ ts-api-utils: "npm:^2.4.0"
+ ts-pattern: "npm:^5.9.0"
+ peerDependencies:
+ eslint: ^10.0.0
+ typescript: "*"
+ checksum: 10c0/a58af67830dd54ddf1acab60d6a78da516fee6072591b50454dbef83a5132f3e7e57d54a191e8b3a412556191f3558bbe9ed5d0fd3f77323311cd8f6a99b5ce2
+ languageName: node
+ linkType: hard
+
"eslint-plugin-react@npm:^7.37.0":
version: 7.37.5
resolution: "eslint-plugin-react@npm:7.37.5"
@@ -15232,6 +15546,13 @@ __metadata:
languageName: node
linkType: hard
+"eslint-visitor-keys@npm:^5.0.0":
+ version: 5.0.1
+ resolution: "eslint-visitor-keys@npm:5.0.1"
+ checksum: 10c0/16190bdf2cbae40a1109384c94450c526a79b0b9c3cb21e544256ed85ac48a4b84db66b74a6561d20fe6ab77447f150d711c2ad5ad74df4fcc133736bce99678
+ languageName: node
+ linkType: hard
+
"eslint@npm:^9.39.1":
version: 9.39.1
resolution: "eslint@npm:9.39.1"
@@ -20803,6 +21124,15 @@ __metadata:
languageName: node
linkType: hard
+"minimatch@npm:^10.2.2":
+ version: 10.2.4
+ resolution: "minimatch@npm:10.2.4"
+ dependencies:
+ brace-expansion: "npm:^5.0.2"
+ checksum: 10c0/35f3dfb7b99b51efd46afd378486889f590e7efb10e0f6a10ba6800428cf65c9a8dedb74427d0570b318d749b543dc4e85f06d46d2858bc8cac7e1eb49a95945
+ languageName: node
+ linkType: hard
+
"minimatch@npm:^8.0.2":
version: 8.0.4
resolution: "minimatch@npm:8.0.4"
@@ -25714,6 +26044,13 @@ __metadata:
languageName: node
linkType: hard
+"string-ts@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "string-ts@npm:2.3.1"
+ checksum: 10c0/14b2829934713bf6cdf7ea54d948283af345e5c505bfb505aca949ab67235cbc99a3e335581f8a91f68935ac52c0d44b32112618658371e5593d5a75f26b3048
+ languageName: node
+ linkType: hard
+
"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3":
version: 4.2.3
resolution: "string-width@npm:4.2.3"
@@ -26811,6 +27148,15 @@ __metadata:
languageName: node
linkType: hard
+"ts-api-utils@npm:^2.4.0":
+ version: 2.5.0
+ resolution: "ts-api-utils@npm:2.5.0"
+ peerDependencies:
+ typescript: ">=4.8.4"
+ checksum: 10c0/767849383c114e7f1971fa976b20e73ac28fd0c70d8d65c0004790bf4d8f89888c7e4cf6d5949f9c1beae9bc3c64835bef77bbe27fddf45a3c7b60cebcf85c8c
+ languageName: node
+ linkType: hard
+
"ts-dedent@npm:^2.0.0":
version: 2.2.0
resolution: "ts-dedent@npm:2.2.0"
@@ -26903,6 +27249,13 @@ __metadata:
languageName: node
linkType: hard
+"ts-pattern@npm:^5.9.0":
+ version: 5.9.0
+ resolution: "ts-pattern@npm:5.9.0"
+ checksum: 10c0/7640db25c39d29b287471b2b82d4f7b4674a02098c6ba4d10fed180adfb07d0e0c71930d9e59dc0d90654145e02fd320af63cf0df3c41e100d4154658a612a0a
+ languageName: node
+ linkType: hard
+
"tsc-alias@npm:^1.8.8":
version: 1.8.8
resolution: "tsc-alias@npm:1.8.8"
@@ -28575,7 +28928,7 @@ __metadata:
languageName: node
linkType: hard
-"zod@npm:^4.1.11":
+"zod@npm:^4.1.11, zod@npm:^4.3.6":
version: 4.3.6
resolution: "zod@npm:4.3.6"
checksum: 10c0/860d25a81ab41d33aa25f8d0d07b091a04acb426e605f396227a796e9e800c44723ed96d0f53a512b57be3d1520f45bf69c0cb3b378a232a00787a2609625307