@whatitbroke/react 1.0.1 → 1.0.2

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.
@@ -6,9 +6,12 @@ import { Component, ErrorInfo as ReactErrorInfo, ReactNode } from 'react';
6
6
  import { RootCauseReport } from '@whatitbroke/shared';
7
7
  export interface WhatItBrokeBoundaryProps {
8
8
  children: ReactNode;
9
- fallback?: (report: RootCauseReport | null, error: Error) => ReactNode;
9
+ fallback?: (report: RootCauseReport | null, error: Error, reset: () => void) => ReactNode;
10
10
  onError?: (report: RootCauseReport, error: Error) => void;
11
11
  showOverlay?: boolean;
12
+ overlayPosition?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
13
+ logToConsole?: boolean;
14
+ inlineFallback?: boolean;
12
15
  }
13
16
  interface WhatItBrokeBoundaryState {
14
17
  hasError: boolean;
@@ -19,6 +22,7 @@ export declare class WhatItBrokeBoundary extends Component<WhatItBrokeBoundaryPr
19
22
  private adapter;
20
23
  constructor(props: WhatItBrokeBoundaryProps);
21
24
  static getDerivedStateFromError(error: Error): Partial<WhatItBrokeBoundaryState>;
25
+ reset: () => void;
22
26
  componentDidCatch(error: Error, errorInfo: ReactErrorInfo): Promise<void>;
23
27
  render(): ReactNode;
24
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../src/boundary.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EAAE,SAAS,EAAE,SAAS,IAAI,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC;IACvE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,wBAAwB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;CAChC;AAED,qBAAa,mBAAoB,SAAQ,SAAS,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IACpG,OAAO,CAAC,OAAO,CAAe;gBAElB,KAAK,EAAE,wBAAwB;IAU3C,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAIjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/E,MAAM,IAAI,SAAS;CA8G7B"}
1
+ {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../src/boundary.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EAAE,SAAS,EAAE,SAAS,IAAI,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,eAAe,EAAmB,MAAM,qBAAqB,CAAC;AAIvE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;IAC1F,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IAC5E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,UAAU,wBAAwB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;CAChC;AAED,qBAAa,mBAAoB,SAAQ,SAAS,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IACpG,OAAO,CAAC,OAAO,CAAe;gBAElB,KAAK,EAAE,wBAAwB;IAU3C,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAIzE,KAAK,QAAO,IAAI,CAOrB;IAEa,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B/E,MAAM,IAAI,SAAS;CAmI7B"}
package/dist/boundary.js CHANGED
@@ -4,6 +4,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  * Wraps React components, captures crashes, and renders an actionable root-cause overlay.
5
5
  */
6
6
  import { Component } from 'react';
7
+ import { formatReportCLI } from '@whatitbroke/shared';
8
+ import { ErrorOverlay } from '@whatitbroke/core';
7
9
  import { ReactAdapter } from './adapter.js';
8
10
  export class WhatItBrokeBoundary extends Component {
9
11
  adapter;
@@ -19,13 +21,36 @@ export class WhatItBrokeBoundary extends Component {
19
21
  static getDerivedStateFromError(error) {
20
22
  return { hasError: true, error };
21
23
  }
24
+ reset = () => {
25
+ this.state = { hasError: false, error: null, report: null };
26
+ try {
27
+ this.setState({ hasError: false, error: null, report: null });
28
+ }
29
+ catch {
30
+ // Handled for unmounted test contexts
31
+ }
32
+ };
22
33
  async componentDidCatch(error, errorInfo) {
23
- const report = await this.adapter.analyzeReactError(error, {
24
- componentStack: errorInfo.componentStack || undefined,
25
- });
26
- this.setState({ report });
27
- if (this.props.onError) {
28
- this.props.onError(report, error);
34
+ try {
35
+ const report = await this.adapter.analyzeReactError(error, {
36
+ componentStack: errorInfo.componentStack || undefined,
37
+ });
38
+ this.setState({ report });
39
+ if (this.props.logToConsole !== false) {
40
+ console.error(formatReportCLI(report));
41
+ }
42
+ if (this.props.showOverlay !== false && typeof window !== 'undefined') {
43
+ if (this.props.overlayPosition) {
44
+ ErrorOverlay.init({ position: this.props.overlayPosition });
45
+ }
46
+ ErrorOverlay.addReport(report, error);
47
+ }
48
+ if (this.props.onError) {
49
+ this.props.onError(report, error);
50
+ }
51
+ }
52
+ catch (analysisErr) {
53
+ console.error('WhatItBroke failed during React error analysis:', analysisErr);
29
54
  }
30
55
  }
31
56
  render() {
@@ -33,9 +58,12 @@ export class WhatItBrokeBoundary extends Component {
33
58
  return this.props.children;
34
59
  }
35
60
  if (this.props.fallback && this.state.error) {
36
- return this.props.fallback(this.state.report, this.state.error);
61
+ return this.props.fallback(this.state.report, this.state.error, this.reset);
37
62
  }
38
- // Default actionable overlay
63
+ if (this.props.inlineFallback === false) {
64
+ return null;
65
+ }
66
+ // Default actionable overlay card with reset button
39
67
  const report = this.state.report;
40
68
  const err = this.state.error;
41
69
  return (_jsxs("div", { style: {
@@ -47,15 +75,24 @@ export class WhatItBrokeBoundary extends Component {
47
75
  border: '1px solid #ef4444',
48
76
  margin: '20px',
49
77
  boxShadow: '0 20px 25px -5px rgba(0, 0, 0, 0.5)',
50
- }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '12px', marginBottom: '16px' }, children: [_jsx("span", { style: {
51
- background: '#ef4444',
52
- color: 'white',
53
- fontWeight: 800,
54
- padding: '4px 10px',
78
+ }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '16px' }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '12px' }, children: [_jsx("span", { style: {
79
+ background: '#ef4444',
80
+ color: 'white',
81
+ fontWeight: 800,
82
+ padding: '4px 10px',
83
+ borderRadius: '6px',
84
+ fontSize: '12px',
85
+ letterSpacing: '1px',
86
+ }, children: "WHAT IT BROKE" }), _jsxs("h2", { style: { fontSize: '18px', margin: 0, color: '#f87171' }, children: [err?.name, ": ", err?.message] })] }), _jsx("button", { onClick: this.reset, style: {
87
+ background: 'rgba(255, 255, 255, 0.1)',
88
+ border: '1px solid rgba(255, 255, 255, 0.2)',
89
+ color: '#f8fafc',
90
+ padding: '6px 14px',
55
91
  borderRadius: '6px',
56
- fontSize: '12px',
57
- letterSpacing: '1px',
58
- }, children: "WHAT IT BROKE" }), _jsxs("h2", { style: { fontSize: '18px', margin: 0, color: '#f87171' }, children: [err?.name, ": ", err?.message] })] }), report ? (_jsxs("div", { children: [_jsxs("div", { style: { marginBottom: '12px', color: '#94a3b8', fontSize: '13px' }, children: ["\uD83D\uDCCD ", _jsxs("strong", { children: [report.affectedLocation.file, ":", report.affectedLocation.line] })] }), _jsxs("div", { style: {
92
+ fontSize: '13px',
93
+ fontWeight: 600,
94
+ cursor: 'pointer',
95
+ }, children: "\u21BB Try Again" })] }), report ? (_jsxs("div", { children: [_jsxs("div", { style: { marginBottom: '12px', color: '#94a3b8', fontSize: '13px' }, children: ["\uD83D\uDCCD ", _jsxs("strong", { children: [report.affectedLocation.file, ":", report.affectedLocation.line] })] }), _jsxs("div", { style: {
59
96
  background: 'rgba(239, 68, 68, 0.1)',
60
97
  border: '1px solid rgba(239, 68, 68, 0.2)',
61
98
  padding: '12px',
@@ -1 +1 @@
1
- {"version":3,"file":"boundary.js","sourceRoot":"","sources":["../src/boundary.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boundary.js","sourceRoot":"","sources":["../src/boundary.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './adapter.js';
2
2
  export * from './hooks-detector.js';
3
3
  export * from './boundary.js';
4
+ export * from './overlay.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './adapter.js';
2
2
  export * from './hooks-detector.js';
3
3
  export * from './boundary.js';
4
+ export * from './overlay.js';
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * WhatItBroke - React Overlay Re-Export
3
+ */
4
+ export { ErrorOverlay, ErrorOverlay as ReactErrorOverlay } from '@whatitbroke/core';
5
+ export type { OverlayOptions, CapturedWarning } from '@whatitbroke/core';
6
+ //# sourceMappingURL=overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACpF,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * WhatItBroke - React Overlay Re-Export
3
+ */
4
+ export { ErrorOverlay, ErrorOverlay as ReactErrorOverlay } from '@whatitbroke/core';
5
+ //# sourceMappingURL=overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whatitbroke/react",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "type": "module",
5
5
  "description": "React adapter, Error Boundary, hook rule analyzer, and component tree inspector for WhatItBroke",
6
6
  "main": "./dist/index.js",
@@ -17,16 +17,19 @@
17
17
  "default": "./dist/index.js"
18
18
  }
19
19
  },
20
+ "sideEffects": false,
20
21
  "scripts": {
21
- "build": "tsc",
22
- "prepublishOnly": "npm run build"
22
+ "build": "tsc"
23
23
  },
24
24
  "publishConfig": {
25
25
  "access": "public"
26
26
  },
27
27
  "dependencies": {
28
- "@whatitbroke/shared": "^1.0.1",
29
- "@whatitbroke/core": "^1.0.1"
28
+ "@whatitbroke/shared": "^1.0.2",
29
+ "@whatitbroke/core": "^1.0.2"
30
+ },
31
+ "devDependencies": {
32
+ "@types/react": "^19.0.10"
30
33
  },
31
34
  "peerDependencies": {
32
35
  "react": ">=18.0.0"
@@ -36,19 +39,5 @@
36
39
  "optional": true
37
40
  }
38
41
  },
39
- "devDependencies": {
40
- "@types/react": "^19.0.10"
41
- },
42
- "keywords": [
43
- "debugger",
44
- "react",
45
- "error-boundary",
46
- "hooks",
47
- "root-cause"
48
- ],
49
- "author": "WhatItBroke Team",
50
- "license": "MIT",
51
- "engines": {
52
- "node": ">=18.0.0"
53
- }
42
+ "license": "MIT"
54
43
  }