termcast 1.4.1 → 1.6.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/build.d.ts.map +1 -1
- package/dist/build.js +30 -12
- package/dist/build.js.map +1 -1
- package/dist/cli.js +0 -40
- package/dist/cli.js.map +1 -1
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +7 -1
- package/dist/compile.js.map +1 -1
- package/dist/components/bar-graph.d.ts +23 -8
- package/dist/components/bar-graph.d.ts.map +1 -1
- package/dist/components/bar-graph.js +84 -40
- package/dist/components/bar-graph.js.map +1 -1
- package/dist/components/dotted-line-graph.d.ts +86 -0
- package/dist/components/dotted-line-graph.d.ts.map +1 -0
- package/dist/components/dotted-line-graph.js +260 -0
- package/dist/components/dotted-line-graph.js.map +1 -0
- package/dist/components/extension-preferences.d.ts.map +1 -1
- package/dist/components/extension-preferences.js +1 -10
- package/dist/components/extension-preferences.js.map +1 -1
- package/dist/components/graph.d.ts.map +1 -1
- package/dist/components/graph.js +7 -1
- package/dist/components/graph.js.map +1 -1
- package/dist/components/histogram.d.ts +42 -0
- package/dist/components/histogram.d.ts.map +1 -0
- package/dist/components/histogram.js +115 -0
- package/dist/components/histogram.js.map +1 -0
- package/dist/components/horizontal-bar-graph.d.ts +47 -0
- package/dist/components/horizontal-bar-graph.d.ts.map +1 -0
- package/dist/components/horizontal-bar-graph.js +137 -0
- package/dist/components/horizontal-bar-graph.js.map +1 -0
- package/dist/components/list.d.ts +9 -0
- package/dist/components/list.d.ts.map +1 -1
- package/dist/components/list.js +84 -21
- package/dist/components/list.js.map +1 -1
- package/dist/examples/bar-graph-weekly.js +2 -2
- package/dist/examples/bar-graph-weekly.js.map +1 -1
- package/dist/examples/charts-showcase-barchart.d.ts +2 -0
- package/dist/examples/charts-showcase-barchart.d.ts.map +1 -0
- package/dist/examples/charts-showcase-barchart.js +10 -0
- package/dist/examples/charts-showcase-barchart.js.map +1 -0
- package/dist/examples/charts-showcase-bargraph.d.ts +2 -0
- package/dist/examples/charts-showcase-bargraph.d.ts.map +1 -0
- package/dist/examples/charts-showcase-bargraph.js +60 -0
- package/dist/examples/charts-showcase-bargraph.js.map +1 -0
- package/dist/examples/charts-showcase-candle.d.ts +2 -0
- package/dist/examples/charts-showcase-candle.d.ts.map +1 -0
- package/dist/examples/charts-showcase-candle.js +30 -0
- package/dist/examples/charts-showcase-candle.js.map +1 -0
- package/dist/examples/charts-showcase-graph.d.ts +2 -0
- package/dist/examples/charts-showcase-graph.d.ts.map +1 -0
- package/dist/examples/charts-showcase-graph.js +33 -0
- package/dist/examples/charts-showcase-graph.js.map +1 -0
- package/dist/examples/charts-showcase-heatmap.d.ts +2 -0
- package/dist/examples/charts-showcase-heatmap.d.ts.map +1 -0
- package/dist/examples/charts-showcase-heatmap.js +36 -0
- package/dist/examples/charts-showcase-heatmap.js.map +1 -0
- package/dist/examples/charts-showcase-mixed.d.ts +2 -0
- package/dist/examples/charts-showcase-mixed.d.ts.map +1 -0
- package/dist/examples/charts-showcase-mixed.js +30 -0
- package/dist/examples/charts-showcase-mixed.js.map +1 -0
- package/dist/examples/charts-showcase-progress.d.ts +2 -0
- package/dist/examples/charts-showcase-progress.d.ts.map +1 -0
- package/dist/examples/charts-showcase-progress.js +10 -0
- package/dist/examples/charts-showcase-progress.js.map +1 -0
- package/dist/examples/graph-multi-series.js +1 -1
- package/dist/examples/graph-multi-series.js.map +1 -1
- package/dist/examples/horizontal-bar-graph-weekly.d.ts +2 -0
- package/dist/examples/horizontal-bar-graph-weekly.d.ts.map +1 -0
- package/dist/examples/horizontal-bar-graph-weekly.js +67 -0
- package/dist/examples/horizontal-bar-graph-weekly.js.map +1 -0
- package/dist/examples/list-detail-height-ratchet.d.ts +2 -0
- package/dist/examples/list-detail-height-ratchet.d.ts.map +1 -0
- package/dist/examples/list-detail-height-ratchet.js +26 -0
- package/dist/examples/list-detail-height-ratchet.js.map +1 -0
- package/dist/examples/simple-dotted-line-graph.d.ts +2 -0
- package/dist/examples/simple-dotted-line-graph.d.ts.map +1 -0
- package/dist/examples/simple-dotted-line-graph.js +39 -0
- package/dist/examples/simple-dotted-line-graph.js.map +1 -0
- package/dist/examples/simple-histogram.d.ts +2 -0
- package/dist/examples/simple-histogram.d.ts.map +1 -0
- package/dist/examples/simple-histogram.js +47 -0
- package/dist/examples/simple-histogram.js.map +1 -0
- package/dist/extensions/dev.d.ts.map +1 -1
- package/dist/extensions/dev.js +1 -0
- package/dist/extensions/dev.js.map +1 -1
- package/dist/globals.js +8 -0
- package/dist/globals.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/package-json.d.ts +2 -0
- package/dist/package-json.d.ts.map +1 -1
- package/dist/package-json.js +20 -17
- package/dist/package-json.js.map +1 -1
- package/dist/platform/node/sqlite.d.ts +6 -5
- package/dist/platform/node/sqlite.d.ts.map +1 -1
- package/dist/platform/node/sqlite.js +30 -14
- package/dist/platform/node/sqlite.js.map +1 -1
- package/dist/profiler.d.ts +2 -0
- package/dist/profiler.d.ts.map +1 -0
- package/dist/profiler.js +390 -0
- package/dist/profiler.js.map +1 -0
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +11 -9
- package/dist/theme.js.map +1 -1
- package/dist/utils/run-command.d.ts.map +1 -1
- package/dist/utils/run-command.js +8 -19
- package/dist/utils/run-command.js.map +1 -1
- package/dist/utils.d.ts +1 -19
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -100
- package/dist/utils.js.map +1 -1
- package/package.json +18 -21
- package/src/build.tsx +38 -15
- package/src/cli.tsx +3 -40
- package/src/compile.tsx +9 -1
- package/src/compile.vitest.tsx +8 -8
- package/src/components/bar-graph.tsx +217 -111
- package/src/components/dotted-line-graph.tsx +407 -0
- package/src/components/extension-preferences.tsx +2 -12
- package/src/components/graph.tsx +5 -1
- package/src/components/histogram.tsx +228 -0
- package/src/components/horizontal-bar-graph.tsx +279 -0
- package/src/components/list.tsx +112 -26
- package/src/examples/action-shortcut.vitest.tsx +20 -20
- package/src/examples/actions-context.vitest.tsx +2 -2
- package/src/examples/bar-graph-weekly.tsx +2 -2
- package/src/examples/bar-graph-weekly.vitest.tsx +103 -102
- package/src/examples/charts-showcase-bargraph.tsx +103 -0
- package/src/examples/detail-metadata-showcase.vitest.tsx +12 -12
- package/src/examples/form-basic.vitest.tsx +11 -11
- package/src/examples/form-dropdown.vitest.tsx +11 -11
- package/src/examples/form-scroll.vitest.tsx +1 -1
- package/src/examples/form-tagpicker.vitest.tsx +11 -11
- package/src/examples/github.vitest.tsx +22 -31
- package/src/examples/graph-bar-chart.vitest.tsx +36 -36
- package/src/examples/graph-multi-series.tsx +1 -1
- package/src/examples/graph-polymarket.vitest.tsx +24 -24
- package/src/examples/graph-row.vitest.tsx +14 -14
- package/src/examples/graph-styles.vitest.tsx +77 -77
- package/src/examples/horizontal-bar-graph-weekly.tsx +138 -0
- package/src/examples/horizontal-bar-graph-weekly.vitest.tsx +164 -0
- package/src/examples/list-detail-height-ratchet.tsx +48 -0
- package/src/examples/list-detail-height-ratchet.vitest.tsx +161 -0
- package/src/examples/list-detail-metadata.vitest.tsx +51 -51
- package/src/examples/list-dropdown-default.vitest.tsx +27 -27
- package/src/examples/list-fetch-data.vitest.tsx +3 -3
- package/src/examples/list-loading-empty-view.vitest.tsx +1 -1
- package/src/examples/list-no-actions.vitest.tsx +3 -3
- package/src/examples/list-scrollbox.vitest.tsx +6 -6
- package/src/examples/list-spacing-mode.vitest.tsx +1 -1
- package/src/examples/list-with-detail.vitest.tsx +55 -55
- package/src/examples/list-with-dropdown.vitest.tsx +6 -6
- package/src/examples/list-with-sections.vitest.tsx +20 -20
- package/src/examples/list-with-toast.vitest.tsx +4 -4
- package/src/examples/simple-candle-chart.vitest.tsx +61 -59
- package/src/examples/simple-dotted-line-graph.tsx +53 -0
- package/src/examples/simple-dotted-line-graph.vitest.tsx +62 -0
- package/src/examples/simple-grid.vitest.tsx +4 -4
- package/src/examples/simple-heatmap.vitest.tsx +9 -9
- package/src/examples/simple-histogram.tsx +90 -0
- package/src/examples/simple-navigation.vitest.tsx +25 -25
- package/src/examples/simple-progress-bar.vitest.tsx +7 -7
- package/src/examples/swift-extension.vitest.tsx +5 -5
- package/src/examples/toast-action.vitest.tsx +4 -4
- package/src/extensions/dev.tsx +2 -1
- package/src/extensions/dev.vitest.tsx +17 -17
- package/src/globals.ts +9 -0
- package/src/index.tsx +21 -0
- package/src/package-json.tsx +24 -23
- package/src/platform/node/sqlite.ts +29 -13
- package/src/profiler.tsx +487 -0
- package/src/theme.tsx +11 -10
- package/src/utils/run-command.tsx +10 -19
- package/src/utils.tsx +0 -163
- package/src/examples/store.tsx +0 -4
- package/src/examples/store.vitest.tsx +0 -78
- package/src/extensions/home.tsx +0 -227
- package/src/extensions/store.tsx +0 -375
package/dist/profiler.js
ADDED
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
// React component profiler for termcast.
|
|
2
|
+
//
|
|
3
|
+
// Captures React 19.2+ PerformanceMeasure entries emitted by the development
|
|
4
|
+
// reconciler (react-reconciler/cjs/react-reconciler.development.js) and writes
|
|
5
|
+
// a .cpuprofile file on process exit. Analyze with profano:
|
|
6
|
+
//
|
|
7
|
+
// TERMCAST_REACT_PROFILE=1 termcast dev ./my-extension
|
|
8
|
+
// bunx profano ./tmp/react-profile-*.cpuprofile --sort self
|
|
9
|
+
// bunx profano ./tmp/react-profile-*.cpuprofile --sort total
|
|
10
|
+
//
|
|
11
|
+
// The reconciler emits performance.measure() calls with:
|
|
12
|
+
// - name: "\u200b" + componentName (component renders)
|
|
13
|
+
// - name: trigger string like "Mount", "Cascading Update", etc.
|
|
14
|
+
// - detail.devtools.track: "Components ⚛" for component renders
|
|
15
|
+
//
|
|
16
|
+
// NOTE: React also emits some entries via console.timeStamp() which are not
|
|
17
|
+
// captured by PerformanceObserver. This profiler captures a useful subset of
|
|
18
|
+
// React's performance track data, not every component render.
|
|
19
|
+
//
|
|
20
|
+
// The profile builds a best-effort call tree from time containment: if measure
|
|
21
|
+
// A fully contains measure B in time, B becomes a child of A. Partially
|
|
22
|
+
// overlapping measures are attached to the nearest containing ancestor.
|
|
23
|
+
// This gives meaningful self vs total times in profano output:
|
|
24
|
+
// - total time = all time inside a measure (including children)
|
|
25
|
+
// - self time = time not attributed to any child measure
|
|
26
|
+
//
|
|
27
|
+
// Requirements:
|
|
28
|
+
// - React 19.2+ in development mode (NODE_ENV !== 'production')
|
|
29
|
+
// - PerformanceObserver available (Node.js 16+, Bun)
|
|
30
|
+
import fs from 'node:fs';
|
|
31
|
+
import path from 'node:path';
|
|
32
|
+
import { logger } from './logger';
|
|
33
|
+
const measures = [];
|
|
34
|
+
let observerInstalled = false;
|
|
35
|
+
let profileWritten = false;
|
|
36
|
+
let perfObserver = null;
|
|
37
|
+
function writeProfileOnce() {
|
|
38
|
+
if (profileWritten) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
profileWritten = true;
|
|
42
|
+
// Drain any queued records not yet delivered by the observer callback,
|
|
43
|
+
// so the last measures before exit are captured.
|
|
44
|
+
if (perfObserver) {
|
|
45
|
+
for (const entry of perfObserver.takeRecords()) {
|
|
46
|
+
const detail = entry.detail;
|
|
47
|
+
if (!detail?.devtools?.track) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
measures.push({
|
|
51
|
+
name: entry.name,
|
|
52
|
+
duration: entry.duration,
|
|
53
|
+
startTime: entry.startTime,
|
|
54
|
+
track: detail.devtools.track,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
writeProfile();
|
|
59
|
+
}
|
|
60
|
+
export function installProfiler() {
|
|
61
|
+
if (observerInstalled) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (typeof PerformanceObserver === 'undefined') {
|
|
65
|
+
logger.error('PerformanceObserver not available, profiling disabled');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
observerInstalled = true;
|
|
69
|
+
perfObserver = new PerformanceObserver((list) => {
|
|
70
|
+
for (const entry of list.getEntries()) {
|
|
71
|
+
const detail = entry.detail;
|
|
72
|
+
if (!detail?.devtools?.track) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
measures.push({
|
|
76
|
+
name: entry.name,
|
|
77
|
+
duration: entry.duration,
|
|
78
|
+
startTime: entry.startTime,
|
|
79
|
+
track: detail.devtools.track,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
perfObserver.observe({ type: 'measure', buffered: true });
|
|
84
|
+
// Hook into the devtools fiber tree to collect component source locations
|
|
85
|
+
// from _debugStack on each commit. This builds the componentSourceMap
|
|
86
|
+
// incrementally as components render.
|
|
87
|
+
installFiberHook();
|
|
88
|
+
// Write profile on exit signals. The named function reference is used so
|
|
89
|
+
// removeListener actually removes the correct handler, preventing recursion
|
|
90
|
+
// when process.kill re-raises the signal.
|
|
91
|
+
const handleSignal = (signal) => {
|
|
92
|
+
writeProfileOnce();
|
|
93
|
+
process.removeListener(signal, handleSignal);
|
|
94
|
+
process.kill(process.pid, signal);
|
|
95
|
+
};
|
|
96
|
+
process.on('SIGINT', handleSignal);
|
|
97
|
+
process.on('SIGTERM', handleSignal);
|
|
98
|
+
process.on('exit', writeProfileOnce);
|
|
99
|
+
logger.log('React profiler installed. Profile will be written on exit.');
|
|
100
|
+
}
|
|
101
|
+
// Build a call tree from time containment: if span A fully contains span B,
|
|
102
|
+
// B is a child of A. Each unique (track, name) pair can appear at multiple
|
|
103
|
+
// tree positions when it occurs inside different parent spans.
|
|
104
|
+
//
|
|
105
|
+
// The algorithm: sort spans longest-first so parents come before children.
|
|
106
|
+
// For each span, walk the tree from root finding the deepest ancestor that
|
|
107
|
+
// contains it, then attach a new node there. Each tree node gets a unique ID
|
|
108
|
+
// even if the same component name appears multiple times (different call sites).
|
|
109
|
+
function buildCallTree({ spans, sourceMap }) {
|
|
110
|
+
const ROOT_ID = 1;
|
|
111
|
+
const IDLE_ID = 2;
|
|
112
|
+
const nodes = [
|
|
113
|
+
{
|
|
114
|
+
id: ROOT_ID,
|
|
115
|
+
callFrame: { functionName: '(root)', scriptId: '0', url: '', lineNumber: -1, columnNumber: -1 },
|
|
116
|
+
children: [IDLE_ID],
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: IDLE_ID,
|
|
120
|
+
callFrame: { functionName: '(idle)', scriptId: '0', url: '', lineNumber: -1, columnNumber: -1 },
|
|
121
|
+
children: [],
|
|
122
|
+
},
|
|
123
|
+
];
|
|
124
|
+
let nextId = 3;
|
|
125
|
+
const rootEntry = {
|
|
126
|
+
nodeId: ROOT_ID,
|
|
127
|
+
startUs: -Infinity,
|
|
128
|
+
endUs: Infinity,
|
|
129
|
+
children: [],
|
|
130
|
+
};
|
|
131
|
+
// Sort spans by duration descending so parents (longer) are inserted first
|
|
132
|
+
const indexed = spans.map((s, i) => ({ ...s, originalIndex: i }));
|
|
133
|
+
indexed.sort((a, b) => (b.endUs - b.startUs) - (a.endUs - a.startUs));
|
|
134
|
+
// Map from original span index to the leaf node ID for sampling
|
|
135
|
+
const spanToLeafId = new Map();
|
|
136
|
+
for (const span of indexed) {
|
|
137
|
+
// Find deepest ancestor in the tree that fully contains this span
|
|
138
|
+
const parent = findDeepestContainer(rootEntry, span.startUs, span.endUs);
|
|
139
|
+
const id = nextId++;
|
|
140
|
+
const newEntry = {
|
|
141
|
+
nodeId: id,
|
|
142
|
+
startUs: span.startUs,
|
|
143
|
+
endUs: span.endUs,
|
|
144
|
+
children: [],
|
|
145
|
+
};
|
|
146
|
+
// Resolve source file path from the component name.
|
|
147
|
+
// Falls back to the React track name (e.g. "Components ⚛") for scheduler
|
|
148
|
+
// events and components not found in source.
|
|
149
|
+
// scriptId is stable per source identity so profano aggregates repeated
|
|
150
|
+
// renders of the same component into one row.
|
|
151
|
+
const sourcePath = sourceMap.get(span.name);
|
|
152
|
+
const sourceMatch = sourcePath ? /^(.*):(\d+)$/.exec(sourcePath) : null;
|
|
153
|
+
const url = sourceMatch ? sourceMatch[1] : (sourcePath || span.track);
|
|
154
|
+
const lineNumber = sourceMatch ? Number(sourceMatch[2]) : -1;
|
|
155
|
+
const scriptId = sourcePath || `${span.track}:${span.name}`;
|
|
156
|
+
nodes.push({
|
|
157
|
+
id,
|
|
158
|
+
callFrame: {
|
|
159
|
+
functionName: span.name,
|
|
160
|
+
scriptId,
|
|
161
|
+
url,
|
|
162
|
+
lineNumber,
|
|
163
|
+
columnNumber: -1,
|
|
164
|
+
},
|
|
165
|
+
children: [],
|
|
166
|
+
});
|
|
167
|
+
// Add as child of parent in both the tree and the profile nodes
|
|
168
|
+
parent.children.push(newEntry);
|
|
169
|
+
const parentNode = nodes.find((n) => n.id === parent.nodeId);
|
|
170
|
+
if (!parentNode.children.includes(id)) {
|
|
171
|
+
parentNode.children.push(id);
|
|
172
|
+
}
|
|
173
|
+
spanToLeafId.set(span.originalIndex, id);
|
|
174
|
+
}
|
|
175
|
+
return { nodes, spanToLeafId };
|
|
176
|
+
}
|
|
177
|
+
function findDeepestContainer(entry, startUs, endUs) {
|
|
178
|
+
// Check children for a tighter fit
|
|
179
|
+
for (const child of entry.children) {
|
|
180
|
+
if (child.startUs <= startUs && child.endUs >= endUs) {
|
|
181
|
+
return findDeepestContainer(child, startUs, endUs);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return entry;
|
|
185
|
+
}
|
|
186
|
+
// Component name → source file:line mapping built from React's fiber _debugStack.
|
|
187
|
+
// Populated at runtime by hooking into __REACT_DEVTOOLS_GLOBAL_HOOK__.onCommitFiberRoot
|
|
188
|
+
// which gives us the actual fiber tree with debug stack traces. Each fiber's _debugStack
|
|
189
|
+
// is an Error whose second stack frame points to where the JSX element was created.
|
|
190
|
+
// This is much more accurate than regex scanning source files.
|
|
191
|
+
const componentSourceMap = new Map();
|
|
192
|
+
// Extract "file:line" from a fiber's _debugStack Error.
|
|
193
|
+
// The stack trace format varies between Bun and Node:
|
|
194
|
+
// at functionName (/path/to/file.tsx:42:5) — named frame
|
|
195
|
+
// at /path/to/file.tsx:42:5 — anonymous frame
|
|
196
|
+
// We want the first non-React-internal frame. node_modules paths are kept
|
|
197
|
+
// so components from third-party packages show their real location.
|
|
198
|
+
function parseFrameLocation(frame) {
|
|
199
|
+
// Named frame: at fn (/path/file.tsx:1:2)
|
|
200
|
+
const parenthesized = /\((.+):(\d+):\d+\)\s*$/.exec(frame);
|
|
201
|
+
if (parenthesized) {
|
|
202
|
+
return { filePath: parenthesized[1], line: parenthesized[2] };
|
|
203
|
+
}
|
|
204
|
+
// Anonymous frame: at /path/file.tsx:1:2
|
|
205
|
+
const bare = /^\s*at (.+):(\d+):\d+\s*$/.exec(frame);
|
|
206
|
+
if (bare) {
|
|
207
|
+
return { filePath: bare[1], line: bare[2] };
|
|
208
|
+
}
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
function extractSourceFromFiber(fiber) {
|
|
212
|
+
const debugStack = fiber._debugStack;
|
|
213
|
+
if (!debugStack) {
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
const stack = debugStack.stack || String(debugStack);
|
|
217
|
+
const frames = stack.split('\n');
|
|
218
|
+
for (const frame of frames) {
|
|
219
|
+
// Skip only React internals, keep everything else including node_modules
|
|
220
|
+
if (frame.includes('react.development') ||
|
|
221
|
+
frame.includes('react-jsx') ||
|
|
222
|
+
frame.includes('react-reconciler')) {
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
const loc = parseFrameLocation(frame);
|
|
226
|
+
if (loc) {
|
|
227
|
+
const relativePath = path.relative(process.cwd(), loc.filePath);
|
|
228
|
+
return `${relativePath}:${loc.line}`;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
// Get display name from a fiber, handling memo/forwardRef wrappers.
|
|
234
|
+
// React wraps components in objects with .type or .render for these HOCs.
|
|
235
|
+
function getFiberComponentName(fiber) {
|
|
236
|
+
const type = fiber.type;
|
|
237
|
+
if (!type) {
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
// Direct function component or class
|
|
241
|
+
if (type.displayName || type.name) {
|
|
242
|
+
return type.displayName || type.name;
|
|
243
|
+
}
|
|
244
|
+
// memo(Component) — type is { $$typeof: REACT_MEMO_TYPE, type: innerComponent }
|
|
245
|
+
if (type.type?.displayName || type.type?.name) {
|
|
246
|
+
return type.type.displayName || type.type.name;
|
|
247
|
+
}
|
|
248
|
+
// forwardRef(Component) — type is { $$typeof: REACT_FORWARD_REF_TYPE, render: fn }
|
|
249
|
+
if (type.render?.displayName || type.render?.name) {
|
|
250
|
+
return type.render.displayName || type.render.name;
|
|
251
|
+
}
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
// Iterative fiber tree walk to avoid stack overflow on large flat lists.
|
|
255
|
+
// Sibling chains can be hundreds deep; recursion would overflow.
|
|
256
|
+
function walkFiberTree(root) {
|
|
257
|
+
const stack = root ? [root] : [];
|
|
258
|
+
while (stack.length > 0) {
|
|
259
|
+
const fiber = stack.pop();
|
|
260
|
+
const name = getFiberComponentName(fiber);
|
|
261
|
+
if (name && !componentSourceMap.has(name)) {
|
|
262
|
+
const source = extractSourceFromFiber(fiber);
|
|
263
|
+
if (source) {
|
|
264
|
+
componentSourceMap.set(name, source);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
if (fiber.sibling) {
|
|
268
|
+
stack.push(fiber.sibling);
|
|
269
|
+
}
|
|
270
|
+
if (fiber.child) {
|
|
271
|
+
stack.push(fiber.child);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
function installFiberHook() {
|
|
276
|
+
const hook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
277
|
+
if (!hook) {
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
// Preserve all arguments and `this` so React Refresh and other hooks
|
|
281
|
+
// that depend on priorityLevel and didError continue to work.
|
|
282
|
+
const originalOnCommit = hook.onCommitFiberRoot;
|
|
283
|
+
hook.onCommitFiberRoot = function (...args) {
|
|
284
|
+
const root = args[1];
|
|
285
|
+
try {
|
|
286
|
+
walkFiberTree(root?.current);
|
|
287
|
+
}
|
|
288
|
+
finally {
|
|
289
|
+
return originalOnCommit?.apply(this, args);
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
function writeProfile() {
|
|
294
|
+
if (measures.length === 0) {
|
|
295
|
+
logger.log('No React performance measures captured, skipping profile write');
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
const TICK = 1000; // microseconds per sample (1ms resolution)
|
|
299
|
+
// componentSourceMap was populated incrementally by the fiber hook during rendering
|
|
300
|
+
const sourceMap = componentSourceMap;
|
|
301
|
+
const sorted = [...measures].sort((a, b) => a.startTime - b.startTime);
|
|
302
|
+
const t0 = sorted[0].startTime;
|
|
303
|
+
const endUs = Math.round((Math.max(...sorted.map((m) => m.startTime + m.duration)) - t0) * 1000);
|
|
304
|
+
// Convert measures to spans with microsecond timestamps
|
|
305
|
+
const spans = sorted.map((m) => ({
|
|
306
|
+
startUs: Math.round((m.startTime - t0) * 1000),
|
|
307
|
+
endUs: Math.round((m.startTime + m.duration - t0) * 1000),
|
|
308
|
+
name: m.name.replace('\u200b', ''),
|
|
309
|
+
track: m.track,
|
|
310
|
+
}));
|
|
311
|
+
// Build call tree from time containment, passing sourceMap for file paths
|
|
312
|
+
const { nodes, spanToLeafId } = buildCallTree({ spans, sourceMap });
|
|
313
|
+
// Generate samples only over active span windows and compress idle gaps.
|
|
314
|
+
// Instead of iterating every tick across the full timeline (which is O(ticks * spans)
|
|
315
|
+
// and can hang for long sessions), collect all span boundaries, sort them, and only
|
|
316
|
+
// sample within active windows. Idle gaps between windows become a single idle sample
|
|
317
|
+
// with a large timeDelta.
|
|
318
|
+
const samples = [];
|
|
319
|
+
const timeDeltas = [];
|
|
320
|
+
const IDLE_ID = 2;
|
|
321
|
+
// Collect unique boundary times from all spans
|
|
322
|
+
const boundaries = new Set();
|
|
323
|
+
for (const span of spans) {
|
|
324
|
+
boundaries.add(span.startUs);
|
|
325
|
+
boundaries.add(span.endUs);
|
|
326
|
+
}
|
|
327
|
+
// Add timeline start/end
|
|
328
|
+
boundaries.add(0);
|
|
329
|
+
boundaries.add(endUs);
|
|
330
|
+
const sortedBoundaries = [...boundaries].sort((a, b) => a - b);
|
|
331
|
+
// Sort spans narrowest-first for fast deepest-leaf lookup
|
|
332
|
+
const spansByNarrowest = spans
|
|
333
|
+
.map((s, i) => ({ ...s, idx: i }))
|
|
334
|
+
.sort((a, b) => (a.endUs - a.startUs) - (b.endUs - b.startUs));
|
|
335
|
+
// For each window between consecutive boundaries, determine if any span is
|
|
336
|
+
// active. If yes, sample at TICK resolution. If no, emit one idle sample.
|
|
337
|
+
for (let w = 0; w < sortedBoundaries.length - 1; w++) {
|
|
338
|
+
const windowStart = sortedBoundaries[w];
|
|
339
|
+
const windowEnd = sortedBoundaries[w + 1];
|
|
340
|
+
if (windowStart >= windowEnd) {
|
|
341
|
+
continue;
|
|
342
|
+
}
|
|
343
|
+
// Check if any span is active at the midpoint of this window
|
|
344
|
+
const mid = windowStart + Math.floor((windowEnd - windowStart) / 2);
|
|
345
|
+
let hasActiveSpan = false;
|
|
346
|
+
for (const span of spansByNarrowest) {
|
|
347
|
+
if (mid >= span.startUs && mid < span.endUs) {
|
|
348
|
+
hasActiveSpan = true;
|
|
349
|
+
break;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
if (!hasActiveSpan) {
|
|
353
|
+
// Compress idle window into a single sample
|
|
354
|
+
samples.push(IDLE_ID);
|
|
355
|
+
timeDeltas.push(windowEnd - windowStart);
|
|
356
|
+
continue;
|
|
357
|
+
}
|
|
358
|
+
// Sample at TICK resolution within this active window.
|
|
359
|
+
// Use Math.min so the last sample's timeDelta covers only the remainder,
|
|
360
|
+
// preventing inflation when the window is shorter than TICK or not divisible.
|
|
361
|
+
for (let t = windowStart; t < windowEnd; t += TICK) {
|
|
362
|
+
const nextT = Math.min(t + TICK, windowEnd);
|
|
363
|
+
let leafId = IDLE_ID;
|
|
364
|
+
for (const span of spansByNarrowest) {
|
|
365
|
+
if (t >= span.startUs && t < span.endUs) {
|
|
366
|
+
leafId = spanToLeafId.get(span.idx) ?? IDLE_ID;
|
|
367
|
+
break;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
samples.push(leafId);
|
|
371
|
+
timeDeltas.push(nextT - t);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
const profile = {
|
|
375
|
+
nodes,
|
|
376
|
+
samples,
|
|
377
|
+
startTime: 0,
|
|
378
|
+
endTime: endUs,
|
|
379
|
+
timeDeltas,
|
|
380
|
+
};
|
|
381
|
+
// Write to ./tmp/react-profile.cpuprofile relative to cwd
|
|
382
|
+
const outDir = path.join(process.cwd(), 'tmp');
|
|
383
|
+
fs.mkdirSync(outDir, { recursive: true });
|
|
384
|
+
const outPath = path.join(outDir, `react-profile-${Date.now()}.cpuprofile`);
|
|
385
|
+
fs.writeFileSync(outPath, JSON.stringify(profile));
|
|
386
|
+
const activeSamples = samples.filter((s) => s !== 2).length;
|
|
387
|
+
logger.log(`Wrote React profile: ${outPath} (${measures.length} measures, ${nodes.length} nodes, ${activeSamples} active / ${samples.length} total samples)`);
|
|
388
|
+
console.error(`\nReact profile written: ${outPath}\nAnalyze with: npx profano ${outPath} --sort self`);
|
|
389
|
+
}
|
|
390
|
+
//# sourceMappingURL=profiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiler.js","sourceRoot":"","sources":["../src/profiler.tsx"],"names":[],"mappings":"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"}
|
package/dist/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAoC,KAAK,aAAa,EAAgC,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAoC,KAAK,aAAa,EAAgC,MAAM,UAAU,CAAA;AAqB7G,wBAAgB,kBAAkB,IAAI,MAAM,CAW3C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAM/C;AAGD,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAGD,wBAAgB,QAAQ,IAAI,aAAa,CAGxC;AAID,wBAAgB,sBAAsB,IAAI,WAAW,CAGpD;AAID,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAoB1E;AAKD,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,CAU9D;AAID,eAAO,MAAM,mBAAmB,aAI9B,CAAA"}
|
package/dist/theme.js
CHANGED
|
@@ -2,6 +2,7 @@ import { SyntaxStyle } from '@opentui/core';
|
|
|
2
2
|
import { getResolvedTheme, getSyntaxTheme, defaultThemeName, themeNames } from './themes';
|
|
3
3
|
import { useStore } from './state';
|
|
4
4
|
import { Cache } from './apis/cache';
|
|
5
|
+
import { Color } from './colors';
|
|
5
6
|
// Global cache for theme persistence (no namespace = global storage).
|
|
6
7
|
// Tracks extensionPath so the cache is recreated if the path changes.
|
|
7
8
|
let globalCache = null;
|
|
@@ -73,17 +74,18 @@ export function getInteractiveHoverBackground(theme) {
|
|
|
73
74
|
}
|
|
74
75
|
return theme.primary;
|
|
75
76
|
}
|
|
76
|
-
// Shared color palette for
|
|
77
|
-
//
|
|
77
|
+
// Shared color palette for chart components.
|
|
78
|
+
// Based on the original Histogram showcase colors, which read better than a
|
|
79
|
+
// strictly semantic theme order for categorical data.
|
|
78
80
|
export function getThemePalette(theme) {
|
|
79
81
|
return [
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
82
|
+
Color.Orange,
|
|
83
|
+
Color.SecondaryText,
|
|
84
|
+
'#00CCCC',
|
|
85
|
+
Color.Purple,
|
|
86
|
+
Color.Yellow,
|
|
87
|
+
Color.Green,
|
|
88
|
+
Color.Blue,
|
|
87
89
|
];
|
|
88
90
|
}
|
|
89
91
|
// For backward compatibility - some code imports markdownSyntaxStyle directly
|
package/dist/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAsB,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC7G,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-command.d.ts","sourceRoot":"","sources":["../../src/utils/run-command.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"run-command.d.ts","sourceRoot":"","sources":["../../src/utils/run-command.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAGhE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;CACrB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,QAAY,GACb,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,mBAAmB,CAOlD;AAsBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,aAAa,EACb,QAAQ,EACR,QAAY,GACb,EAAE;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAUP;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;IACrC,SAAS,CAAC,EAAE,eAAe,EAAE,CAAA;IAC7B,WAAW,CAAC,EAAE,GAAG,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,GAAG,CAAC,CAAA;IAC1D,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;IACxC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;CAC7C;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoJ1E;AA+DD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx } from "@opentui/react/jsx-runtime";
|
|
2
|
-
import { goke } from 'goke';
|
|
3
2
|
import { useStore } from 'termcast/src/state';
|
|
4
3
|
import { showToast, Toast } from 'termcast/src/apis/toast';
|
|
5
4
|
import { LocalStorage } from 'termcast/src/apis/localstorage';
|
|
@@ -11,17 +10,11 @@ import { logger } from '../logger';
|
|
|
11
10
|
* @param skipArgv - Number of subcommand args to skip (e.g. 1 for "dev" in "termcast dev")
|
|
12
11
|
*/
|
|
13
12
|
export function parseExtensionArgs({ skipArgv = 0, } = {}) {
|
|
14
|
-
|
|
15
|
-
const argv = [
|
|
16
|
-
process.argv[0],
|
|
17
|
-
process.argv[1],
|
|
18
|
-
...process.argv.slice(2 + skipArgv),
|
|
19
|
-
];
|
|
20
|
-
const parsed = goke().parse(argv, { run: false });
|
|
13
|
+
const args = process.argv.slice(2 + skipArgv);
|
|
21
14
|
return {
|
|
22
|
-
commandName:
|
|
23
|
-
showHelp:
|
|
24
|
-
showVersion:
|
|
15
|
+
commandName: args.find((arg) => !arg.startsWith('-')),
|
|
16
|
+
showHelp: args.includes('--help') || args.includes('-h'),
|
|
17
|
+
showVersion: args.includes('--version') || args.includes('-v'),
|
|
25
18
|
};
|
|
26
19
|
}
|
|
27
20
|
function printExtensionHelp({ extensionName, commands, }) {
|
|
@@ -66,7 +59,7 @@ export async function runCommand(options) {
|
|
|
66
59
|
push(_jsx(ExtensionPreferences, { extensionName: extensionName, commandName: prefsCheck.requiredPreferences === 'command'
|
|
67
60
|
? command.name
|
|
68
61
|
: undefined, onSubmit: () => {
|
|
69
|
-
runCommand({ ...options, push: replace || push });
|
|
62
|
+
void runCommand({ ...options, push: replace || push });
|
|
70
63
|
} }));
|
|
71
64
|
return;
|
|
72
65
|
}
|
|
@@ -78,7 +71,7 @@ export async function runCommand(options) {
|
|
|
78
71
|
// Use replace in onSubmit so the command replaces the arguments screen
|
|
79
72
|
push(_jsx(CommandArguments, { arguments: commandArgs, commandTitle: command.title, onSubmit: (args) => {
|
|
80
73
|
useStore.setState({ currentCommandArguments: args });
|
|
81
|
-
runCommand({ ...options, push: replace || push });
|
|
74
|
+
void runCommand({ ...options, push: replace || push });
|
|
82
75
|
} }));
|
|
83
76
|
return;
|
|
84
77
|
}
|
|
@@ -183,12 +176,8 @@ async function checkRequiredPreferences({ command, extensionName, packageJson, }
|
|
|
183
176
|
const extensionPrefsKey = `preferences.${extensionName}`;
|
|
184
177
|
const savedCommandPrefs = await LocalStorage.getItem(commandPrefsKey);
|
|
185
178
|
const savedExtensionPrefs = await LocalStorage.getItem(extensionPrefsKey);
|
|
186
|
-
const parsedCommandPrefs = savedCommandPrefs
|
|
187
|
-
|
|
188
|
-
: {};
|
|
189
|
-
const parsedExtensionPrefs = savedExtensionPrefs
|
|
190
|
-
? JSON.parse(savedExtensionPrefs)
|
|
191
|
-
: {};
|
|
179
|
+
const parsedCommandPrefs = typeof savedCommandPrefs === 'string' ? JSON.parse(savedCommandPrefs) : {};
|
|
180
|
+
const parsedExtensionPrefs = typeof savedExtensionPrefs === 'string' ? JSON.parse(savedExtensionPrefs) : {};
|
|
192
181
|
// Check if all required command preferences are set
|
|
193
182
|
for (const pref of commandPrefs) {
|
|
194
183
|
if (pref.required && parsedCommandPrefs[pref.name] == null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../../src/utils/run-command.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../../src/utils/run-command.tsx"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import { type RaycastPackageJson
|
|
2
|
+
import { type RaycastPackageJson } from './package-json';
|
|
3
3
|
export interface RenderWithProvidersOptions {
|
|
4
4
|
extensionName?: string;
|
|
5
5
|
extensionPath?: string;
|
|
@@ -39,32 +39,14 @@ export declare function showInFinder(path: PathLike): Promise<void>;
|
|
|
39
39
|
export declare function trash(path: PathLike | PathLike[]): Promise<void>;
|
|
40
40
|
export declare function open(target: string, application?: Application | string): Promise<void>;
|
|
41
41
|
export declare function captureException(exception: unknown): void;
|
|
42
|
-
export declare function getExtensionPath(extensionName: string): string;
|
|
43
|
-
export declare function getExtensionPackageJsonPath(extensionName: string): string;
|
|
44
|
-
export declare function getExtensionPackageJson(extensionName: string): RaycastPackageJson | null;
|
|
45
42
|
export interface ExtensionPreferencesInfo {
|
|
46
43
|
hasPreferences: boolean;
|
|
47
44
|
hasRequiredPreferences: boolean;
|
|
48
45
|
}
|
|
49
|
-
export declare function checkExtensionPreferences(extensionName: string): ExtensionPreferencesInfo;
|
|
50
|
-
interface BundledCommand extends CommandWithFile {
|
|
51
|
-
bundledPath: string;
|
|
52
|
-
}
|
|
53
|
-
interface StoredExtension {
|
|
54
|
-
name: string;
|
|
55
|
-
packageJsonPath: string;
|
|
56
|
-
commands: BundledCommand[];
|
|
57
|
-
}
|
|
58
46
|
export declare function resolveCommandPath({ commandName, dir, }: {
|
|
59
47
|
commandName: string;
|
|
60
48
|
dir: string;
|
|
61
49
|
}): string;
|
|
62
|
-
export declare function getStoreDirectory(): string;
|
|
63
|
-
export declare function installExtension({ extensionName, extensionSourcePath, }: {
|
|
64
|
-
extensionName: string;
|
|
65
|
-
extensionSourcePath: string;
|
|
66
|
-
}): void;
|
|
67
|
-
export declare function getStoredExtensions(): StoredExtension[];
|
|
68
50
|
export type ParseExecOutputHandler<T = any> = (args: {
|
|
69
51
|
stdout: string;
|
|
70
52
|
}) => T;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.tsx"],"names":[],"mappings":"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"}
|