@larose-ui/devtools 0.1.1 → 1.0.0

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.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import { LaRoseRuntimeContext } from '@larose-ui/core';
4
- import { UIEvent } from '@larose-ui/observability';
4
+ import { ComponentPerformanceSummary } from '@larose-ui/devtools-core';
5
+ export { ComponentPerformanceSummary, getComponentPerformance } from '@larose-ui/devtools-core';
5
6
 
6
7
  interface DevToolsPanelProps {
7
8
  defaultOpen?: boolean;
@@ -11,14 +12,6 @@ declare function DevToolsProvider({ children }: {
11
12
  children: ReactNode;
12
13
  }): react.JSX.Element;
13
14
 
14
- interface ComponentPerformanceSummary {
15
- renderCount: number;
16
- lastRenderMs: number | null;
17
- avgRenderMs: number | null;
18
- threshold: string | null;
19
- }
20
- declare function getComponentPerformance(events: UIEvent[]): ComponentPerformanceSummary;
21
-
22
15
  interface ReactComponentInfo {
23
16
  displayName: string;
24
17
  props: Record<string, string>;
@@ -43,4 +36,4 @@ declare function InspectorOverlay({ target, }: {
43
36
  }): react.JSX.Element | null;
44
37
  declare function buildInspectorReadout(element: InspectedElement, runtime: LaRoseRuntimeContext | null, performance?: ComponentPerformanceSummary | null): string[];
45
38
 
46
- export { type ComponentPerformanceSummary, DevToolsPanel, type DevToolsPanelProps, DevToolsProvider, type InspectedElement, InspectorOverlay, type ReactComponentInfo, buildInspectorReadout, getComponentPerformance, resolveReactComponentInfo, useComponentInspector };
39
+ export { DevToolsPanel, type DevToolsPanelProps, DevToolsProvider, type InspectedElement, InspectorOverlay, type ReactComponentInfo, buildInspectorReadout, resolveReactComponentInfo, useComponentInspector };
package/dist/index.js CHANGED
@@ -17,6 +17,8 @@ import { useCallback, useEffect, useState } from "react";
17
17
 
18
18
  // src/reactFiber.ts
19
19
  var PROP_SKIP = /* @__PURE__ */ new Set(["children", "ref", "key", "dangerouslySetInnerHTML"]);
20
+ var SENSITIVE_PROP = /password|passwd|secret|token|authorization|auth|api[_-]?key|credential|cookie|bearer|ssn|private[_-]?key/i;
21
+ var REDACTED = "[REDACTED]";
20
22
  var MAX_PROP_LEN = 80;
21
23
  function getFiberKey(node) {
22
24
  return Object.keys(node).find(
@@ -57,7 +59,7 @@ function sanitizeFiberProps(props) {
57
59
  const out = {};
58
60
  for (const [key, value] of Object.entries(props)) {
59
61
  if (PROP_SKIP.has(key) || key.startsWith("__")) continue;
60
- out[key] = formatPropValue(value);
62
+ out[key] = SENSITIVE_PROP.test(key) ? REDACTED : formatPropValue(value);
61
63
  }
62
64
  return out;
63
65
  }
@@ -226,39 +228,8 @@ function buildInspectorReadout(element, runtime, performance) {
226
228
  return lines;
227
229
  }
228
230
 
229
- // src/componentPerformance.ts
230
- function getComponentPerformance(events) {
231
- const perfEvents = events.filter((event) => event.type === "performance");
232
- if (perfEvents.length === 0) {
233
- return {
234
- renderCount: 0,
235
- lastRenderMs: null,
236
- avgRenderMs: null,
237
- threshold: null
238
- };
239
- }
240
- const renderTimes = perfEvents.map((event) => event.metadata?.renderTimeMs).filter((value) => typeof value === "number");
241
- const last = perfEvents.at(-1);
242
- if (!last) {
243
- return {
244
- renderCount: 0,
245
- lastRenderMs: null,
246
- avgRenderMs: null,
247
- threshold: null
248
- };
249
- }
250
- const lastRenderMs = typeof last.metadata?.renderTimeMs === "number" ? last.metadata.renderTimeMs : null;
251
- const threshold = typeof last.metadata?.threshold === "string" ? last.metadata.threshold : null;
252
- const avgRenderMs = renderTimes.length > 0 ? renderTimes.reduce((sum, ms) => sum + ms, 0) / renderTimes.length : null;
253
- return {
254
- renderCount: perfEvents.length,
255
- lastRenderMs,
256
- avgRenderMs,
257
- threshold
258
- };
259
- }
260
-
261
231
  // src/DevToolsPanel.tsx
232
+ import { getComponentPerformance } from "@larose-ui/devtools-core";
262
233
  import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
263
234
  function DevToolsPanel({ defaultOpen = false }) {
264
235
  const [open, setOpen] = useState2(defaultOpen);
@@ -557,12 +528,17 @@ function DevToolsProvider({ children }) {
557
528
  /* @__PURE__ */ jsx2(DevToolsPanel, {})
558
529
  ] });
559
530
  }
531
+
532
+ // src/index.ts
533
+ import {
534
+ getComponentPerformance as getComponentPerformance2
535
+ } from "@larose-ui/devtools-core";
560
536
  export {
561
537
  DevToolsPanel,
562
538
  DevToolsProvider,
563
539
  InspectorOverlay,
564
540
  buildInspectorReadout,
565
- getComponentPerformance,
541
+ getComponentPerformance2 as getComponentPerformance,
566
542
  resolveReactComponentInfo,
567
543
  useComponentInspector
568
544
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@larose-ui/devtools",
3
- "version": "0.1.1",
3
+ "version": "1.0.0",
4
4
  "description": "In-app DevTools inspector for laRose UI platform",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -17,13 +17,14 @@
17
17
  "README.md"
18
18
  ],
19
19
  "dependencies": {
20
- "@larose-ui/core": "0.1.1",
21
- "@larose-ui/observability": "0.1.1",
22
- "@larose-ui/runtime": "0.1.1"
20
+ "@larose-ui/core": "0.2.0",
21
+ "@larose-ui/devtools-core": "0.2.0",
22
+ "@larose-ui/observability": "0.2.0",
23
+ "@larose-ui/runtime": "1.0.0"
23
24
  },
24
25
  "peerDependencies": {
25
26
  "react": ">=18",
26
- "@larose-ui/permissions": "0.1.1"
27
+ "@larose-ui/permissions": "0.2.0"
27
28
  },
28
29
  "devDependencies": {
29
30
  "@testing-library/jest-dom": "^6.6.3",
@@ -36,8 +37,8 @@
36
37
  "tsup": "^8.3.5",
37
38
  "typescript": "^5.7.2",
38
39
  "vitest": "^2.1.8",
39
- "@larose-ui/testing": "0.1.1",
40
- "@larose-ui/permissions": "0.1.1"
40
+ "@larose-ui/permissions": "0.2.0",
41
+ "@larose-ui/testing": "0.2.0"
41
42
  },
42
43
  "license": "MIT",
43
44
  "publishConfig": {