@checkstack/dependency-frontend 0.2.2 → 0.2.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,55 @@
1
1
  # @checkstack/dependency-frontend
2
2
 
3
+ ## 0.2.4
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [26d8bae]
8
+ - Updated dependencies [26d8bae]
9
+ - @checkstack/ui@1.3.0
10
+ - @checkstack/healthcheck-common@0.11.0
11
+ - @checkstack/dashboard-frontend@0.3.27
12
+
13
+ ## 0.2.3
14
+
15
+ ### Patch Changes
16
+
17
+ - d1a2796: Enforce stricter code quality standards and eliminate AI slop anti-patterns.
18
+
19
+ **New utility**
20
+
21
+ - `extractErrorMessage(error, fallback?)` in `@checkstack/common` for consistent error extraction
22
+
23
+ **ESLint rules**
24
+
25
+ - `react-hooks/rules-of-hooks` and `exhaustive-deps` for hook correctness
26
+ - `no-console` in frontend packages — forces `toast` over silent `console.error`
27
+ - `no-restricted-syntax` banning `instanceof Error` — forces `extractErrorMessage`
28
+ - Custom `no-eslint-disable-any` rule preventing `@typescript-eslint/no-explicit-any` circumvention
29
+
30
+ **Refactoring**
31
+
32
+ - Replace 141 `instanceof Error` boilerplate patterns across the codebase
33
+ - Replace swallowed `console.error` with user-visible `toast.error()` feedback
34
+ - Remove 15 redundant `as` type casts in IntegrationsPage and ProviderConnectionsPage
35
+ - Consolidate 3 identical callback handlers into `handleDialogClose`
36
+ - Fix conditional React hook call in `FormField.tsx`
37
+ - Fix unstable useMemo deps in `Dashboard.tsx`
38
+ - Replace `useEffect`→`setState` with derived `useMemo` in `RegisterPage.tsx`
39
+ - Rewrite `keystore.test.ts` with typed `DrizzleMockChain` (eliminating 7 `any` suppressions)
40
+ - Delete obvious comments in `encryption.ts` and Teams `provider.ts`
41
+
42
+ - Updated dependencies [d1a2796]
43
+ - Updated dependencies [3c34b07]
44
+ - @checkstack/common@0.6.5
45
+ - @checkstack/ui@1.2.1
46
+ - @checkstack/dashboard-frontend@0.3.26
47
+ - @checkstack/frontend-api@0.3.9
48
+ - @checkstack/catalog-common@1.3.1
49
+ - @checkstack/healthcheck-common@0.10.1
50
+ - @checkstack/dependency-common@0.2.1
51
+ - @checkstack/signal-frontend@0.0.15
52
+
3
53
  ## 0.2.2
4
54
 
5
55
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@checkstack/dependency-frontend",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "type": "module",
5
5
  "main": "src/index.tsx",
6
6
  "checkstack": {
@@ -12,14 +12,14 @@
12
12
  "lint:code": "eslint . --max-warnings 0"
13
13
  },
14
14
  "dependencies": {
15
- "@checkstack/catalog-common": "1.2.11",
16
- "@checkstack/common": "0.6.4",
17
- "@checkstack/dashboard-frontend": "0.3.23",
18
- "@checkstack/dependency-common": "0.1.0",
19
- "@checkstack/frontend-api": "0.3.8",
20
- "@checkstack/healthcheck-common": "0.8.4",
21
- "@checkstack/signal-frontend": "0.0.14",
22
- "@checkstack/ui": "1.2.0",
15
+ "@checkstack/catalog-common": "1.3.1",
16
+ "@checkstack/common": "0.6.5",
17
+ "@checkstack/dashboard-frontend": "0.3.26",
18
+ "@checkstack/dependency-common": "0.2.1",
19
+ "@checkstack/frontend-api": "0.3.9",
20
+ "@checkstack/healthcheck-common": "0.10.1",
21
+ "@checkstack/signal-frontend": "0.0.15",
22
+ "@checkstack/ui": "1.2.1",
23
23
  "@xyflow/react": "^12.10.2",
24
24
  "lucide-react": "^0.344.0",
25
25
  "react": "^18.2.0",
@@ -28,7 +28,7 @@
28
28
  "devDependencies": {
29
29
  "typescript": "^5.0.0",
30
30
  "@types/react": "^18.2.0",
31
- "@checkstack/tsconfig": "0.0.4",
31
+ "@checkstack/tsconfig": "0.0.5",
32
32
  "@checkstack/scripts": "0.1.2"
33
33
  }
34
34
  }
@@ -46,6 +46,7 @@ import {
46
46
  type DependencyEdge,
47
47
  type DependencyEdgeData,
48
48
  } from "./canvas/DependencyEdge";
49
+ import { extractErrorMessage } from "@checkstack/common";
49
50
 
50
51
  const nodeTypes = { system: SystemNodeComponent };
51
52
  const edgeTypes = { dependency: DependencyEdgeComponent };
@@ -171,7 +172,7 @@ function DependencyMapContent() {
171
172
  },
172
173
  onError: (error) => {
173
174
  const message =
174
- error instanceof Error ? error.message : "Failed to create dependency";
175
+ extractErrorMessage(error, "Failed to create dependency");
175
176
 
176
177
  // Check for cycle error and resolve names
177
178
  if (message.includes("circular chain")) {
@@ -193,7 +194,7 @@ function DependencyMapContent() {
193
194
  void refetchWarnings();
194
195
  },
195
196
  onError: (error) => {
196
- toast.error(error instanceof Error ? error.message : "Failed to update");
197
+ toast.error(extractErrorMessage(error, "Failed to update"));
197
198
  },
198
199
  });
199
200
 
@@ -206,7 +207,7 @@ function DependencyMapContent() {
206
207
  void refetchWarnings();
207
208
  },
208
209
  onError: (error) => {
209
- toast.error(error instanceof Error ? error.message : "Failed to delete");
210
+ toast.error(extractErrorMessage(error, "Failed to delete"));
210
211
  },
211
212
  });
212
213
 
@@ -350,6 +351,7 @@ function DependencyMapContent() {
350
351
  }, 2000);
351
352
  }
352
353
  },
354
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- handleSave reads from nodesRef (always current); including it would cause infinite re-render loops via setHasUnsaved
353
355
  [onNodesChange],
354
356
  );
355
357