@buoy-gg/images 7.0.41 → 7.0.43
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/README.md +11 -70
- package/lib/commonjs/autoCapture.js +1 -4
- package/lib/commonjs/autoCapture.web.js +1 -6
- package/lib/commonjs/capture/actions.js +1 -243
- package/lib/commonjs/capture/install.js +1 -45
- package/lib/commonjs/capture/install.web.js +1 -250
- package/lib/commonjs/capture/installExpoImage.js +1 -99
- package/lib/commonjs/capture/installRnImage.js +1 -132
- package/lib/commonjs/capture/nativeImageModules.js +1 -30
- package/lib/commonjs/capture/nativeImageModules.web.js +1 -18
- package/lib/commonjs/capture/overrides.js +1 -346
- package/lib/commonjs/capture/rnDecoratorEarly.js +1 -55
- package/lib/commonjs/capture/savings.js +1 -209
- package/lib/commonjs/capture/savings.web.js +1 -71
- package/lib/commonjs/capture/shared.js +1 -378
- package/lib/commonjs/components/ImageDetail.js +1 -455
- package/lib/commonjs/components/ImageDetailFooter.js +1 -158
- package/lib/commonjs/components/ImageRow.js +1 -156
- package/lib/commonjs/components/ImagesHeader.js +1 -63
- package/lib/commonjs/components/ImagesIcon.js +1 -19
- package/lib/commonjs/components/ImagesListFooter.js +1 -126
- package/lib/commonjs/components/ImagesModal.js +1 -240
- package/lib/commonjs/components/ImagesRoot.js +1 -24
- package/lib/commonjs/components/ImagesRoot.web.js +1 -13
- package/lib/commonjs/components/InsightsBar.js +1 -59
- package/lib/commonjs/export.js +1 -81
- package/lib/commonjs/format.js +1 -117
- package/lib/commonjs/hooks/useImageRecords.js +1 -20
- package/lib/commonjs/index.js +1 -261
- package/lib/commonjs/preset.js +1 -39
- package/lib/commonjs/register.js +1 -19
- package/lib/commonjs/registerEarly.js +1 -14
- package/lib/commonjs/remote.js +1 -42
- package/lib/commonjs/state.js +1 -58
- package/lib/commonjs/store/imageEventStore.js +1 -238
- package/lib/commonjs/store/insights.js +1 -76
- package/lib/commonjs/sync/imagesSyncAdapter.js +1 -361
- package/lib/commonjs/types.js +0 -1
- package/lib/module/autoCapture.js +1 -4
- package/lib/module/autoCapture.web.js +1 -5
- package/lib/module/capture/actions.js +1 -230
- package/lib/module/capture/install.js +1 -40
- package/lib/module/capture/install.web.js +1 -243
- package/lib/module/capture/installExpoImage.js +1 -94
- package/lib/module/capture/installRnImage.js +1 -125
- package/lib/module/capture/nativeImageModules.js +1 -24
- package/lib/module/capture/nativeImageModules.web.js +1 -12
- package/lib/module/capture/overrides.js +1 -329
- package/lib/module/capture/rnDecoratorEarly.js +1 -50
- package/lib/module/capture/savings.js +1 -205
- package/lib/module/capture/savings.web.js +1 -67
- package/lib/module/capture/shared.js +1 -369
- package/lib/module/components/ImageDetail.js +1 -451
- package/lib/module/components/ImageDetailFooter.js +1 -154
- package/lib/module/components/ImageRow.js +1 -152
- package/lib/module/components/ImagesHeader.js +1 -59
- package/lib/module/components/ImagesIcon.js +1 -12
- package/lib/module/components/ImagesListFooter.js +1 -122
- package/lib/module/components/ImagesModal.js +1 -235
- package/lib/module/components/ImagesRoot.js +1 -20
- package/lib/module/components/ImagesRoot.web.js +1 -9
- package/lib/module/components/InsightsBar.js +1 -55
- package/lib/module/export.js +1 -76
- package/lib/module/format.js +1 -108
- package/lib/module/hooks/useImageRecords.js +1 -16
- package/lib/module/index.js +1 -79
- package/lib/module/preset.js +1 -35
- package/lib/module/register.js +1 -19
- package/lib/module/registerEarly.js +1 -14
- package/lib/module/remote.js +1 -36
- package/lib/module/state.js +1 -54
- package/lib/module/store/imageEventStore.js +1 -221
- package/lib/module/store/insights.js +1 -71
- package/lib/module/sync/imagesSyncAdapter.js +1 -356
- package/lib/module/types.js +0 -1
- package/lib/web/chunks/chunk-TTS5EH4R.mjs +1 -2
- package/lib/web/index.mjs +3 -4
- package/lib/web/register.mjs +1 -2
- package/package.json +3 -7
- package/register.js +1 -15
- package/lib/commonjs/autoCapture.js.map +0 -1
- package/lib/commonjs/autoCapture.web.js.map +0 -1
- package/lib/commonjs/capture/actions.js.map +0 -1
- package/lib/commonjs/capture/install.js.map +0 -1
- package/lib/commonjs/capture/install.web.js.map +0 -1
- package/lib/commonjs/capture/installExpoImage.js.map +0 -1
- package/lib/commonjs/capture/installRnImage.js.map +0 -1
- package/lib/commonjs/capture/nativeImageModules.js.map +0 -1
- package/lib/commonjs/capture/nativeImageModules.web.js.map +0 -1
- package/lib/commonjs/capture/overrides.js.map +0 -1
- package/lib/commonjs/capture/rnDecoratorEarly.js.map +0 -1
- package/lib/commonjs/capture/savings.js.map +0 -1
- package/lib/commonjs/capture/savings.web.js.map +0 -1
- package/lib/commonjs/capture/shared.js.map +0 -1
- package/lib/commonjs/components/ImageDetail.js.map +0 -1
- package/lib/commonjs/components/ImageDetailFooter.js.map +0 -1
- package/lib/commonjs/components/ImageRow.js.map +0 -1
- package/lib/commonjs/components/ImagesHeader.js.map +0 -1
- package/lib/commonjs/components/ImagesIcon.js.map +0 -1
- package/lib/commonjs/components/ImagesListFooter.js.map +0 -1
- package/lib/commonjs/components/ImagesModal.js.map +0 -1
- package/lib/commonjs/components/ImagesRoot.js.map +0 -1
- package/lib/commonjs/components/ImagesRoot.web.js.map +0 -1
- package/lib/commonjs/components/InsightsBar.js.map +0 -1
- package/lib/commonjs/export.js.map +0 -1
- package/lib/commonjs/format.js.map +0 -1
- package/lib/commonjs/hooks/useImageRecords.js.map +0 -1
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/preset.js.map +0 -1
- package/lib/commonjs/register.js.map +0 -1
- package/lib/commonjs/registerEarly.js.map +0 -1
- package/lib/commonjs/remote.js.map +0 -1
- package/lib/commonjs/state.js.map +0 -1
- package/lib/commonjs/store/imageEventStore.js.map +0 -1
- package/lib/commonjs/store/insights.js.map +0 -1
- package/lib/commonjs/sync/imagesSyncAdapter.js.map +0 -1
- package/lib/commonjs/types.js.map +0 -1
- package/lib/module/autoCapture.js.map +0 -1
- package/lib/module/autoCapture.web.js.map +0 -1
- package/lib/module/capture/actions.js.map +0 -1
- package/lib/module/capture/install.js.map +0 -1
- package/lib/module/capture/install.web.js.map +0 -1
- package/lib/module/capture/installExpoImage.js.map +0 -1
- package/lib/module/capture/installRnImage.js.map +0 -1
- package/lib/module/capture/nativeImageModules.js.map +0 -1
- package/lib/module/capture/nativeImageModules.web.js.map +0 -1
- package/lib/module/capture/overrides.js.map +0 -1
- package/lib/module/capture/rnDecoratorEarly.js.map +0 -1
- package/lib/module/capture/savings.js.map +0 -1
- package/lib/module/capture/savings.web.js.map +0 -1
- package/lib/module/capture/shared.js.map +0 -1
- package/lib/module/components/ImageDetail.js.map +0 -1
- package/lib/module/components/ImageDetailFooter.js.map +0 -1
- package/lib/module/components/ImageRow.js.map +0 -1
- package/lib/module/components/ImagesHeader.js.map +0 -1
- package/lib/module/components/ImagesIcon.js.map +0 -1
- package/lib/module/components/ImagesListFooter.js.map +0 -1
- package/lib/module/components/ImagesModal.js.map +0 -1
- package/lib/module/components/ImagesRoot.js.map +0 -1
- package/lib/module/components/ImagesRoot.web.js.map +0 -1
- package/lib/module/components/InsightsBar.js.map +0 -1
- package/lib/module/export.js.map +0 -1
- package/lib/module/format.js.map +0 -1
- package/lib/module/hooks/useImageRecords.js.map +0 -1
- package/lib/module/index.js.map +0 -1
- package/lib/module/preset.js.map +0 -1
- package/lib/module/register.js.map +0 -1
- package/lib/module/registerEarly.js.map +0 -1
- package/lib/module/remote.js.map +0 -1
- package/lib/module/state.js.map +0 -1
- package/lib/module/store/imageEventStore.js.map +0 -1
- package/lib/module/store/insights.js.map +0 -1
- package/lib/module/sync/imagesSyncAdapter.js.map +0 -1
- package/lib/module/types.js.map +0 -1
- package/lib/typescript/autoCapture.d.ts.map +0 -1
- package/lib/typescript/autoCapture.web.d.ts.map +0 -1
- package/lib/typescript/capture/actions.d.ts.map +0 -1
- package/lib/typescript/capture/install.d.ts.map +0 -1
- package/lib/typescript/capture/install.web.d.ts.map +0 -1
- package/lib/typescript/capture/installExpoImage.d.ts.map +0 -1
- package/lib/typescript/capture/installRnImage.d.ts.map +0 -1
- package/lib/typescript/capture/nativeImageModules.d.ts.map +0 -1
- package/lib/typescript/capture/nativeImageModules.web.d.ts.map +0 -1
- package/lib/typescript/capture/overrides.d.ts.map +0 -1
- package/lib/typescript/capture/rnDecoratorEarly.d.ts.map +0 -1
- package/lib/typescript/capture/savings.d.ts.map +0 -1
- package/lib/typescript/capture/savings.web.d.ts.map +0 -1
- package/lib/typescript/capture/shared.d.ts.map +0 -1
- package/lib/typescript/components/ImageDetail.d.ts.map +0 -1
- package/lib/typescript/components/ImageDetailFooter.d.ts.map +0 -1
- package/lib/typescript/components/ImageRow.d.ts.map +0 -1
- package/lib/typescript/components/ImagesHeader.d.ts.map +0 -1
- package/lib/typescript/components/ImagesIcon.d.ts.map +0 -1
- package/lib/typescript/components/ImagesListFooter.d.ts.map +0 -1
- package/lib/typescript/components/ImagesModal.d.ts.map +0 -1
- package/lib/typescript/components/ImagesRoot.d.ts.map +0 -1
- package/lib/typescript/components/ImagesRoot.web.d.ts.map +0 -1
- package/lib/typescript/components/InsightsBar.d.ts.map +0 -1
- package/lib/typescript/export.d.ts.map +0 -1
- package/lib/typescript/format.d.ts.map +0 -1
- package/lib/typescript/hooks/useImageRecords.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/preset.d.ts.map +0 -1
- package/lib/typescript/register.d.ts.map +0 -1
- package/lib/typescript/registerEarly.d.ts.map +0 -1
- package/lib/typescript/remote.d.ts.map +0 -1
- package/lib/typescript/state.d.ts.map +0 -1
- package/lib/typescript/store/imageEventStore.d.ts.map +0 -1
- package/lib/typescript/store/insights.d.ts.map +0 -1
- package/lib/typescript/sync/imagesSyncAdapter.d.ts.map +0 -1
- package/lib/typescript/types.d.ts.map +0 -1
- package/lib/web/chunks/chunk-7CWLRQ2L.mjs +0 -2
- package/lib/web/chunks/chunk-B5A6CYSS.mjs +0 -2
- package/lib/web/chunks/chunk-LKTR6X2V.mjs +0 -2
|
@@ -1,59 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.InsightsBar = InsightsBar;
|
|
7
|
-
var _reactNative = require("react-native");
|
|
8
|
-
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
9
|
-
var _insights = require("../store/insights");
|
|
10
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
-
/**
|
|
12
|
-
* InsightsBar — compact warning chips above the list when cross-record
|
|
13
|
-
* findings exist (duplicates, retry storms, queue saturation, missing alt,
|
|
14
|
-
* layout shifts). Renders nothing when all clear.
|
|
15
|
-
*
|
|
16
|
-
* A wrapping row (not a horizontal ScrollView — that under-measures its
|
|
17
|
-
* height inside the modal's flex column and clips the chips).
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
function InsightsBar({
|
|
21
|
-
insights
|
|
22
|
-
}) {
|
|
23
|
-
const chips = (0, _insights.insightChips)(insights);
|
|
24
|
-
if (chips.length === 0) return null;
|
|
25
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
26
|
-
style: styles.bar,
|
|
27
|
-
children: chips.map(chip => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
28
|
-
style: styles.chip,
|
|
29
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
30
|
-
style: styles.chipText,
|
|
31
|
-
children: chip
|
|
32
|
-
})
|
|
33
|
-
}, chip))
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
const styles = _reactNative.StyleSheet.create({
|
|
37
|
-
bar: {
|
|
38
|
-
flexDirection: "row",
|
|
39
|
-
flexWrap: "wrap",
|
|
40
|
-
gap: 6,
|
|
41
|
-
paddingHorizontal: 10,
|
|
42
|
-
paddingVertical: 8,
|
|
43
|
-
borderBottomWidth: _reactNative.StyleSheet.hairlineWidth,
|
|
44
|
-
borderBottomColor: _sharedUi.night.color.border
|
|
45
|
-
},
|
|
46
|
-
chip: {
|
|
47
|
-
backgroundColor: _sharedUi.night.color.warningSoft,
|
|
48
|
-
borderRadius: 999,
|
|
49
|
-
paddingHorizontal: 10,
|
|
50
|
-
paddingVertical: 5
|
|
51
|
-
},
|
|
52
|
-
chipText: {
|
|
53
|
-
color: _sharedUi.night.color.warning,
|
|
54
|
-
fontSize: 10,
|
|
55
|
-
fontWeight: "600",
|
|
56
|
-
lineHeight: 13
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
//# sourceMappingURL=InsightsBar.js.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.InsightsBar=InsightsBar;var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _insights=require("../store/insights");var _jsxRuntime=require("react/jsx-runtime");function InsightsBar({insights:t}){const e=(0,_insights.insightChips)(t);if(e.length===0)return null;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.bar,children:e.map(r=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.chip,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.chipText,children:r})},r))})}const styles=_reactNative.StyleSheet.create({bar:{flexDirection:"row",flexWrap:"wrap",gap:6,paddingHorizontal:10,paddingVertical:8,borderBottomWidth:_reactNative.StyleSheet.hairlineWidth,borderBottomColor:_sharedUi.night.color.border},chip:{backgroundColor:_sharedUi.night.color.warningSoft,borderRadius:999,paddingHorizontal:10,paddingVertical:5},chipText:{color:_sharedUi.night.color.warning,fontSize:10,fontWeight:"600",lineHeight:13}});
|
package/lib/commonjs/export.js
CHANGED
|
@@ -1,81 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.formatRecordMarkdown = formatRecordMarkdown;
|
|
7
|
-
exports.formatRegistryMarkdown = formatRegistryMarkdown;
|
|
8
|
-
var _reactNative = require("react-native");
|
|
9
|
-
var _imageEventStore = require("./store/imageEventStore");
|
|
10
|
-
var _insights = require("./store/insights");
|
|
11
|
-
var _format = require("./format");
|
|
12
|
-
/**
|
|
13
|
-
* Copy-friendly markdown reports — paste-ready context for an issue, PR, or
|
|
14
|
-
* an AI chat. One for the whole registry (list header copy) and one for a
|
|
15
|
-
* single record (detail header copy).
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
function formatRecordMarkdown(record) {
|
|
19
|
-
const verdict = (0, _format.sizeVerdict)(record);
|
|
20
|
-
const cache = (0, _format.cacheBadge)(record);
|
|
21
|
-
const needed = (0, _imageEventStore.neededPixels)(record);
|
|
22
|
-
const decoded = (0, _imageEventStore.estDecodedBytes)(record);
|
|
23
|
-
const wasted = (0, _imageEventStore.estWastedBytes)(record);
|
|
24
|
-
const lines = [];
|
|
25
|
-
lines.push(`## Image report — ${(0, _format.uriTail)(record.uri)}`);
|
|
26
|
-
lines.push("");
|
|
27
|
-
lines.push(`- URI: ${record.uri || "(none)"}`);
|
|
28
|
-
lines.push(`- Library: ${record.lib === "expo" ? "expo-image" : "RN <Image>"} · kind: ${record.sourceKind} · mounted: ${record.mounted ? "yes" : "no"}`);
|
|
29
|
-
lines.push(`- Status: ${record.status}${record.errorCode ? ` (HTTP ${record.errorCode})` : ""} · load cycles: ${record.loadCount}`);
|
|
30
|
-
lines.push(`- Cache: ${cache.label}${record.cacheVerdictSource ? ` (via ${record.cacheVerdictSource === "event" ? "expo onLoad" : "Image.queryCache"})` : ""}`);
|
|
31
|
-
lines.push(`- Load time: ${(0, _format.formatMs)(record.durationMs)}${record.displayedAt && record.loadedAt ? ` · decode→display ${(0, _format.formatMs)(Math.max(0, record.displayedAt - record.loadedAt))}` : ""}`);
|
|
32
|
-
if (record.intrinsic) {
|
|
33
|
-
lines.push(`- Decoded: ${record.intrinsic.width}×${record.intrinsic.height}px${record.mediaType ? ` (${record.mediaType})` : ""}${record.isAnimated ? " animated" : ""} ≈ ${(0, _format.formatBytes)(decoded)} decoded memory`);
|
|
34
|
-
}
|
|
35
|
-
if (record.layout) {
|
|
36
|
-
lines.push(`- Displayed: ${Math.round(record.layout.width)}×${Math.round(record.layout.height)}dp @${_reactNative.PixelRatio.get()}x (needs ${needed ? `${needed.width}×${needed.height}px` : "?"})`);
|
|
37
|
-
}
|
|
38
|
-
if (verdict.label) {
|
|
39
|
-
lines.push(`- Size verdict: ${verdict.label}${wasted > 0 && needed ? ` — wasting ≈${(0, _format.formatBytes)(wasted)}; serve ${needed.width}×${needed.height}` : ""}`);
|
|
40
|
-
}
|
|
41
|
-
if (record.progressSeen) {
|
|
42
|
-
lines.push(`- Network transfer: ${record.bytesTotal ? (0, _format.formatBytes)(record.bytesTotal) : "observed"}`);
|
|
43
|
-
}
|
|
44
|
-
if (record.hasAltText === false) lines.push(`- Accessibility: MISSING alt/accessibilityLabel`);
|
|
45
|
-
if ((record.layoutShifts ?? 0) > 0) lines.push(`- Layout shifts after load: ${record.layoutShifts} (reserve explicit dimensions)`);
|
|
46
|
-
if (record.error) {
|
|
47
|
-
lines.push(`- Error: ${record.error}`);
|
|
48
|
-
if (record.errorHeaders) {
|
|
49
|
-
lines.push(`- Response headers: ${JSON.stringify(record.errorHeaders)}`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (record.overrideLabel) lines.push(`- Simulation active: ${record.overrideLabel}`);
|
|
53
|
-
return lines.join("\n");
|
|
54
|
-
}
|
|
55
|
-
function formatRegistryMarkdown(records, stats, insights, captureStatus, modes) {
|
|
56
|
-
const lines = [];
|
|
57
|
-
lines.push(`## Buoy Images registry (${stats.total} records)`);
|
|
58
|
-
lines.push("");
|
|
59
|
-
lines.push(`${stats.loaded} loaded · ${stats.errors} failed · ${stats.loading} in flight · ≈${(0, _format.formatBytes)(stats.estDecodedBytes)} decoded` + (stats.estWastedBytes > 0 ? ` · ${(0, _format.formatBytes)(stats.estWastedBytes)} wasted on oversized sources` : ""));
|
|
60
|
-
const chips = (0, _insights.insightChips)(insights);
|
|
61
|
-
if (chips.length > 0) lines.push(`Insights: ${chips.join(" · ")}`);
|
|
62
|
-
if (modes.network !== "normal" || modes.blank) {
|
|
63
|
-
lines.push(`Simulation active: network=${modes.network}${modes.blank ? ", blank images" : ""}`);
|
|
64
|
-
}
|
|
65
|
-
if (captureStatus.rnDecoratorTooLate) {
|
|
66
|
-
lines.push(`⚠ RN <Image> capture inactive (register import too late)`);
|
|
67
|
-
}
|
|
68
|
-
lines.push("");
|
|
69
|
-
lines.push("| image | lib | status | cache | ms | decoded px | shown dp | verdict | notes |");
|
|
70
|
-
lines.push("|---|---|---|---|---|---|---|---|---|");
|
|
71
|
-
for (const r of records) {
|
|
72
|
-
const verdict = (0, _format.sizeVerdict)(r);
|
|
73
|
-
const cache = (0, _format.cacheBadge)(r);
|
|
74
|
-
const dims = r.intrinsic ? `${r.intrinsic.width}×${r.intrinsic.height}` : "–";
|
|
75
|
-
const layout = r.layout ? `${Math.round(r.layout.width)}×${Math.round(r.layout.height)}` : "–";
|
|
76
|
-
const notes = [r.error ? `error: ${r.error}` : null, r.overrideLabel ? `sim: ${r.overrideLabel}` : null, r.hasAltText === false ? "no alt" : null, (r.layoutShifts ?? 0) > 0 ? `${r.layoutShifts} layout shifts` : null, r.mounted ? null : "unmounted"].filter(Boolean).join("; ");
|
|
77
|
-
lines.push(`| ${(0, _format.uriTail)(r.uri)} | ${r.lib} | ${r.status} | ${cache.label} | ${r.durationMs != null ? Math.round(r.durationMs) : "–"} | ${dims} | ${layout} | ${verdict.label || "–"} | ${notes || "–"} |`);
|
|
78
|
-
}
|
|
79
|
-
return lines.join("\n");
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=export.js.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.formatRecordMarkdown=formatRecordMarkdown;exports.formatRegistryMarkdown=formatRegistryMarkdown;var _reactNative=require("react-native");var _imageEventStore=require("./store/imageEventStore");var _insights=require("./store/insights");var _format=require("./format");function formatRecordMarkdown(e){const a=(0,_format.sizeVerdict)(e);const u=(0,_format.cacheBadge)(e);const n=(0,_imageEventStore.neededPixels)(e);const o=(0,_imageEventStore.estDecodedBytes)(e);const s=(0,_imageEventStore.estWastedBytes)(e);const i=[];i.push(`## Image report \u2014 ${(0,_format.uriTail)(e.uri)}`);i.push("");i.push(`- URI: ${e.uri||"(none)"}`);i.push(`- Library: ${e.lib==="expo"?"expo-image":"RN <Image>"} \xB7 kind: ${e.sourceKind} \xB7 mounted: ${e.mounted?"yes":"no"}`);i.push(`- Status: ${e.status}${e.errorCode?` (HTTP ${e.errorCode})`:""} \xB7 load cycles: ${e.loadCount}`);i.push(`- Cache: ${u.label}${e.cacheVerdictSource?` (via ${e.cacheVerdictSource==="event"?"expo onLoad":"Image.queryCache"})`:""}`);i.push(`- Load time: ${(0,_format.formatMs)(e.durationMs)}${e.displayedAt&&e.loadedAt?` \xB7 decode\u2192display ${(0,_format.formatMs)(Math.max(0,e.displayedAt-e.loadedAt))}`:""}`);if(e.intrinsic){i.push(`- Decoded: ${e.intrinsic.width}\xD7${e.intrinsic.height}px${e.mediaType?` (${e.mediaType})`:""}${e.isAnimated?" animated":""} \u2248 ${(0,_format.formatBytes)(o)} decoded memory`)}if(e.layout){i.push(`- Displayed: ${Math.round(e.layout.width)}\xD7${Math.round(e.layout.height)}dp @${_reactNative.PixelRatio.get()}x (needs ${n?`${n.width}\xD7${n.height}px`:"?"})`)}if(a.label){i.push(`- Size verdict: ${a.label}${s>0&&n?` \u2014 wasting \u2248${(0,_format.formatBytes)(s)}; serve ${n.width}\xD7${n.height}`:""}`)}if(e.progressSeen){i.push(`- Network transfer: ${e.bytesTotal?(0,_format.formatBytes)(e.bytesTotal):"observed"}`)}if(e.hasAltText===false)i.push(`- Accessibility: MISSING alt/accessibilityLabel`);if((e.layoutShifts??0)>0)i.push(`- Layout shifts after load: ${e.layoutShifts} (reserve explicit dimensions)`);if(e.error){i.push(`- Error: ${e.error}`);if(e.errorHeaders){i.push(`- Response headers: ${JSON.stringify(e.errorHeaders)}`)}}if(e.overrideLabel)i.push(`- Simulation active: ${e.overrideLabel}`);return i.join("\n")}function formatRegistryMarkdown(e,a,u,n,o){const s=[];s.push(`## Buoy Images registry (${a.total} records)`);s.push("");s.push(`${a.loaded} loaded \xB7 ${a.errors} failed \xB7 ${a.loading} in flight \xB7 \u2248${(0,_format.formatBytes)(a.estDecodedBytes)} decoded`+(a.estWastedBytes>0?` \xB7 ${(0,_format.formatBytes)(a.estWastedBytes)} wasted on oversized sources`:""));const i=(0,_insights.insightChips)(u);if(i.length>0)s.push(`Insights: ${i.join(" \xB7 ")}`);if(o.network!=="normal"||o.blank){s.push(`Simulation active: network=${o.network}${o.blank?", blank images":""}`)}if(n.rnDecoratorTooLate){s.push(`\u26A0 RN <Image> capture inactive (register import too late)`)}s.push("");s.push("| image | lib | status | cache | ms | decoded px | shown dp | verdict | notes |");s.push("|---|---|---|---|---|---|---|---|---|");for(const t of e){const l=(0,_format.sizeVerdict)(t);const r=(0,_format.cacheBadge)(t);const h=t.intrinsic?`${t.intrinsic.width}\xD7${t.intrinsic.height}`:"\u2013";const d=t.layout?`${Math.round(t.layout.width)}\xD7${Math.round(t.layout.height)}`:"\u2013";const $=[t.error?`error: ${t.error}`:null,t.overrideLabel?`sim: ${t.overrideLabel}`:null,t.hasAltText===false?"no alt":null,(t.layoutShifts??0)>0?`${t.layoutShifts} layout shifts`:null,t.mounted?null:"unmounted"].filter(Boolean).join("; ");s.push(`| ${(0,_format.uriTail)(t.uri)} | ${t.lib} | ${t.status} | ${r.label} | ${t.durationMs!=null?Math.round(t.durationMs):"\u2013"} | ${h} | ${d} | ${l.label||"\u2013"} | ${$||"\u2013"} |`)}return s.join("\n")}
|
package/lib/commonjs/format.js
CHANGED
|
@@ -1,117 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.cacheBadge = cacheBadge;
|
|
7
|
-
exports.formatBytes = formatBytes;
|
|
8
|
-
exports.formatMs = formatMs;
|
|
9
|
-
exports.sizeVerdict = sizeVerdict;
|
|
10
|
-
exports.statusColor = statusColor;
|
|
11
|
-
exports.uriTail = uriTail;
|
|
12
|
-
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
13
|
-
var _imageEventStore = require("./store/imageEventStore");
|
|
14
|
-
/**
|
|
15
|
-
* Formatting + verdict helpers shared by list rows and the detail view.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
function formatBytes(bytes) {
|
|
19
|
-
if (bytes <= 0) return "0 B";
|
|
20
|
-
if (bytes < 1024) return `${bytes} B`;
|
|
21
|
-
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
22
|
-
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
23
|
-
}
|
|
24
|
-
function formatMs(ms) {
|
|
25
|
-
if (ms == null) return "—";
|
|
26
|
-
if (ms < 1000) return `${Math.round(ms)}ms`;
|
|
27
|
-
return `${(ms / 1000).toFixed(2)}s`;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** Last path segment of a URI, for compact row display. */
|
|
31
|
-
function uriTail(uri) {
|
|
32
|
-
if (!uri) return "(no source)";
|
|
33
|
-
// Metro dev-server asset URLs put the real path in ?unstable_path=…
|
|
34
|
-
const unstable = uri.match(/[?&]unstable_path=([^&?]+)/);
|
|
35
|
-
const effective = unstable ? decodeURIComponent(unstable[1]) : uri;
|
|
36
|
-
const withoutQuery = effective.split("?")[0] ?? effective;
|
|
37
|
-
const segments = withoutQuery.split("/").filter(Boolean);
|
|
38
|
-
return segments[segments.length - 1] ?? effective;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Fresco-style fit verdict: green within 10%, yellow within 50%, red beyond.
|
|
42
|
-
* Undersized sources (upscaled, likely blurry) get their own callout.
|
|
43
|
-
*/
|
|
44
|
-
function sizeVerdict(record) {
|
|
45
|
-
const factor = (0, _imageEventStore.oversizeFactor)(record);
|
|
46
|
-
if (factor == null) return {
|
|
47
|
-
label: "",
|
|
48
|
-
color: _sharedUi.night.color.textTertiary,
|
|
49
|
-
factor
|
|
50
|
-
};
|
|
51
|
-
if (factor < 0.9) {
|
|
52
|
-
return {
|
|
53
|
-
label: `${factor.toFixed(1)}× upscaled`,
|
|
54
|
-
color: _sharedUi.macOSColors.semantic.info,
|
|
55
|
-
factor
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
if (factor <= 1.1) {
|
|
59
|
-
return {
|
|
60
|
-
label: "right-sized",
|
|
61
|
-
color: _sharedUi.macOSColors.semantic.success,
|
|
62
|
-
factor
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
if (factor <= 1.5) {
|
|
66
|
-
return {
|
|
67
|
-
label: `${factor.toFixed(1)}× oversized`,
|
|
68
|
-
color: _sharedUi.macOSColors.semantic.warning,
|
|
69
|
-
factor
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
return {
|
|
73
|
-
label: `${factor.toFixed(1)}× oversized`,
|
|
74
|
-
color: _sharedUi.macOSColors.semantic.error,
|
|
75
|
-
factor
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
function statusColor(record) {
|
|
79
|
-
switch (record.status) {
|
|
80
|
-
case "loaded":
|
|
81
|
-
return _sharedUi.macOSColors.semantic.success;
|
|
82
|
-
case "error":
|
|
83
|
-
return _sharedUi.macOSColors.semantic.error;
|
|
84
|
-
case "loading":
|
|
85
|
-
return _sharedUi.macOSColors.semantic.warning;
|
|
86
|
-
default:
|
|
87
|
-
return _sharedUi.night.color.textTertiary;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/** Cache verdict badge text + tint (memory=green, disk=yellow, network=red). */
|
|
92
|
-
function cacheBadge(record) {
|
|
93
|
-
const verdict = record.cacheVerdict;
|
|
94
|
-
if (verdict === "memory" || verdict === "disk/memory") {
|
|
95
|
-
return {
|
|
96
|
-
label: verdict.toUpperCase(),
|
|
97
|
-
color: _sharedUi.macOSColors.semantic.success
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
if (verdict === "disk") {
|
|
101
|
-
return {
|
|
102
|
-
label: "DISK",
|
|
103
|
-
color: _sharedUi.macOSColors.semantic.warning
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
if (verdict === "none" || record.progressSeen) {
|
|
107
|
-
return {
|
|
108
|
-
label: "NETWORK",
|
|
109
|
-
color: _sharedUi.macOSColors.semantic.error
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
return {
|
|
113
|
-
label: "?",
|
|
114
|
-
color: _sharedUi.night.color.textTertiary
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
//# sourceMappingURL=format.js.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.cacheBadge=cacheBadge;exports.formatBytes=formatBytes;exports.formatMs=formatMs;exports.sizeVerdict=sizeVerdict;exports.statusColor=statusColor;exports.uriTail=uriTail;var _sharedUi=require("@buoy-gg/shared-ui");var _imageEventStore=require("./store/imageEventStore");function formatBytes(e){if(e<=0)return"0 B";if(e<1024)return`${e} B`;if(e<1024*1024)return`${(e/1024).toFixed(1)} KB`;return`${(e/(1024*1024)).toFixed(1)} MB`}function formatMs(e){if(e==null)return"\u2014";if(e<1e3)return`${Math.round(e)}ms`;return`${(e/1e3).toFixed(2)}s`}function uriTail(e){if(!e)return"(no source)";const r=e.match(/[?&]unstable_path=([^&?]+)/);const t=r?decodeURIComponent(r[1]):e;const n=t.split("?")[0]??t;const o=n.split("/").filter(Boolean);return o[o.length-1]??t}function sizeVerdict(e){const r=(0,_imageEventStore.oversizeFactor)(e);if(r==null)return{label:"",color:_sharedUi.night.color.textTertiary,factor:r};if(r<.9){return{label:`${r.toFixed(1)}\xD7 upscaled`,color:_sharedUi.macOSColors.semantic.info,factor:r}}if(r<=1.1){return{label:"right-sized",color:_sharedUi.macOSColors.semantic.success,factor:r}}if(r<=1.5){return{label:`${r.toFixed(1)}\xD7 oversized`,color:_sharedUi.macOSColors.semantic.warning,factor:r}}return{label:`${r.toFixed(1)}\xD7 oversized`,color:_sharedUi.macOSColors.semantic.error,factor:r}}function statusColor(e){switch(e.status){case"loaded":return _sharedUi.macOSColors.semantic.success;case"error":return _sharedUi.macOSColors.semantic.error;case"loading":return _sharedUi.macOSColors.semantic.warning;default:return _sharedUi.night.color.textTertiary}}function cacheBadge(e){const r=e.cacheVerdict;if(r==="memory"||r==="disk/memory"){return{label:r.toUpperCase(),color:_sharedUi.macOSColors.semantic.success}}if(r==="disk"){return{label:"DISK",color:_sharedUi.macOSColors.semantic.warning}}if(r==="none"||e.progressSeen){return{label:"NETWORK",color:_sharedUi.macOSColors.semantic.error}}return{label:"?",color:_sharedUi.night.color.textTertiary}}
|
|
@@ -1,20 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useImageRecords = useImageRecords;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
var _imageEventStore = require("../store/imageEventStore");
|
|
9
|
-
/**
|
|
10
|
-
* React bindings for the image event store.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
function useImageRecords() {
|
|
14
|
-
const snapshot = (0, _react.useSyncExternalStore)(_imageEventStore.subscribe, _imageEventStore.getSnapshot, _imageEventStore.getSnapshot);
|
|
15
|
-
return (0, _react.useMemo)(() => ({
|
|
16
|
-
records: [...snapshot].reverse(),
|
|
17
|
-
stats: (0, _imageEventStore.computeStats)(snapshot)
|
|
18
|
-
}), [snapshot]);
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=useImageRecords.js.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.useImageRecords=useImageRecords;var _react=require("react");var _imageEventStore=require("../store/imageEventStore");function useImageRecords(){const e=(0,_react.useSyncExternalStore)(_imageEventStore.subscribe,_imageEventStore.getSnapshot,_imageEventStore.getSnapshot);return(0,_react.useMemo)(()=>({records:[...e].reverse(),stats:(0,_imageEventStore.computeStats)(e)}),[e])}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -1,261 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "IMAGES_ICON_COLOR", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _ImagesIcon.IMAGES_ICON_COLOR;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
Object.defineProperty(exports, "ImagesIcon", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _ImagesIcon.ImagesIcon;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
Object.defineProperty(exports, "ImagesModal", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () {
|
|
21
|
-
return _ImagesModal.ImagesModal;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
Object.defineProperty(exports, "ImagesRoot", {
|
|
25
|
-
enumerable: true,
|
|
26
|
-
get: function () {
|
|
27
|
-
return _ImagesRoot.ImagesRoot;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
Object.defineProperty(exports, "ImagesToolView", {
|
|
31
|
-
enumerable: true,
|
|
32
|
-
get: function () {
|
|
33
|
-
return _ImagesModal.ImagesToolView;
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
Object.defineProperty(exports, "clearAllOverrides", {
|
|
37
|
-
enumerable: true,
|
|
38
|
-
get: function () {
|
|
39
|
-
return _overrides.clearAllOverrides;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
Object.defineProperty(exports, "clearOverride", {
|
|
43
|
-
enumerable: true,
|
|
44
|
-
get: function () {
|
|
45
|
-
return _overrides.clearOverride;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
Object.defineProperty(exports, "clearRecords", {
|
|
49
|
-
enumerable: true,
|
|
50
|
-
get: function () {
|
|
51
|
-
return _imageEventStore.clearRecords;
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
Object.defineProperty(exports, "computeInsights", {
|
|
55
|
-
enumerable: true,
|
|
56
|
-
get: function () {
|
|
57
|
-
return _insights.computeInsights;
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
Object.defineProperty(exports, "computeStats", {
|
|
61
|
-
enumerable: true,
|
|
62
|
-
get: function () {
|
|
63
|
-
return _imageEventStore.computeStats;
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
Object.defineProperty(exports, "createImagesTool", {
|
|
67
|
-
enumerable: true,
|
|
68
|
-
get: function () {
|
|
69
|
-
return _preset.createImagesTool;
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
Object.defineProperty(exports, "disableImagesCapture", {
|
|
73
|
-
enumerable: true,
|
|
74
|
-
get: function () {
|
|
75
|
-
return _imageEventStore.disableImagesCapture;
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
Object.defineProperty(exports, "estDecodedBytes", {
|
|
79
|
-
enumerable: true,
|
|
80
|
-
get: function () {
|
|
81
|
-
return _imageEventStore.estDecodedBytes;
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
Object.defineProperty(exports, "estWastedBytes", {
|
|
85
|
-
enumerable: true,
|
|
86
|
-
get: function () {
|
|
87
|
-
return _imageEventStore.estWastedBytes;
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
Object.defineProperty(exports, "evictExpoDiskEntry", {
|
|
91
|
-
enumerable: true,
|
|
92
|
-
get: function () {
|
|
93
|
-
return _actions.evictExpoDiskEntry;
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
Object.defineProperty(exports, "flashAllMounted", {
|
|
97
|
-
enumerable: true,
|
|
98
|
-
get: function () {
|
|
99
|
-
return _overrides.flashAllMounted;
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
Object.defineProperty(exports, "flashRecord", {
|
|
103
|
-
enumerable: true,
|
|
104
|
-
get: function () {
|
|
105
|
-
return _overrides.flashRecord;
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
Object.defineProperty(exports, "formatRecordMarkdown", {
|
|
109
|
-
enumerable: true,
|
|
110
|
-
get: function () {
|
|
111
|
-
return _export.formatRecordMarkdown;
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
Object.defineProperty(exports, "formatRegistryMarkdown", {
|
|
115
|
-
enumerable: true,
|
|
116
|
-
get: function () {
|
|
117
|
-
return _export.formatRegistryMarkdown;
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
Object.defineProperty(exports, "getCaptureStatus", {
|
|
121
|
-
enumerable: true,
|
|
122
|
-
get: function () {
|
|
123
|
-
return _install.getCaptureStatus;
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
Object.defineProperty(exports, "getGlobalModes", {
|
|
127
|
-
enumerable: true,
|
|
128
|
-
get: function () {
|
|
129
|
-
return _overrides.getGlobalModes;
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
Object.defineProperty(exports, "getImageRecords", {
|
|
133
|
-
enumerable: true,
|
|
134
|
-
get: function () {
|
|
135
|
-
return _imageEventStore.getSnapshot;
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
Object.defineProperty(exports, "getOverride", {
|
|
139
|
-
enumerable: true,
|
|
140
|
-
get: function () {
|
|
141
|
-
return _overrides.getOverride;
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
Object.defineProperty(exports, "hardReloadAllMounted", {
|
|
145
|
-
enumerable: true,
|
|
146
|
-
get: function () {
|
|
147
|
-
return _actions.hardReloadAllMounted;
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
Object.defineProperty(exports, "hardReloadRecord", {
|
|
151
|
-
enumerable: true,
|
|
152
|
-
get: function () {
|
|
153
|
-
return _actions.hardReloadRecord;
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
Object.defineProperty(exports, "imagesSyncAdapter", {
|
|
157
|
-
enumerable: true,
|
|
158
|
-
get: function () {
|
|
159
|
-
return _imagesSyncAdapter.imagesSyncAdapter;
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
Object.defineProperty(exports, "imagesToolPreset", {
|
|
163
|
-
enumerable: true,
|
|
164
|
-
get: function () {
|
|
165
|
-
return _preset.imagesToolPreset;
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
Object.defineProperty(exports, "insightChips", {
|
|
169
|
-
enumerable: true,
|
|
170
|
-
get: function () {
|
|
171
|
-
return _insights.insightChips;
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
Object.defineProperty(exports, "installImageCapture", {
|
|
175
|
-
enumerable: true,
|
|
176
|
-
get: function () {
|
|
177
|
-
return _install.installImageCapture;
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
Object.defineProperty(exports, "oversizeFactor", {
|
|
181
|
-
enumerable: true,
|
|
182
|
-
get: function () {
|
|
183
|
-
return _imageEventStore.oversizeFactor;
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
Object.defineProperty(exports, "proveSavings", {
|
|
187
|
-
enumerable: true,
|
|
188
|
-
get: function () {
|
|
189
|
-
return _savings.proveSavings;
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
Object.defineProperty(exports, "replaceImagesFromSnapshot", {
|
|
193
|
-
enumerable: true,
|
|
194
|
-
get: function () {
|
|
195
|
-
return _imageEventStore.replaceImagesFromSnapshot;
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
Object.defineProperty(exports, "retryRecord", {
|
|
199
|
-
enumerable: true,
|
|
200
|
-
get: function () {
|
|
201
|
-
return _actions.retryRecord;
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
Object.defineProperty(exports, "setBlankImages", {
|
|
205
|
-
enumerable: true,
|
|
206
|
-
get: function () {
|
|
207
|
-
return _overrides.setBlankImages;
|
|
208
|
-
}
|
|
209
|
-
});
|
|
210
|
-
Object.defineProperty(exports, "setNetworkMode", {
|
|
211
|
-
enumerable: true,
|
|
212
|
-
get: function () {
|
|
213
|
-
return _overrides.setNetworkMode;
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
Object.defineProperty(exports, "setOverride", {
|
|
217
|
-
enumerable: true,
|
|
218
|
-
get: function () {
|
|
219
|
-
return _overrides.setOverride;
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
|
-
Object.defineProperty(exports, "setOverrideForAllMounted", {
|
|
223
|
-
enumerable: true,
|
|
224
|
-
get: function () {
|
|
225
|
-
return _overrides.setOverrideForAllMounted;
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
Object.defineProperty(exports, "setRemoteImagesHandler", {
|
|
229
|
-
enumerable: true,
|
|
230
|
-
get: function () {
|
|
231
|
-
return _remote.setRemoteImagesHandler;
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
Object.defineProperty(exports, "subscribeImageRecords", {
|
|
235
|
-
enumerable: true,
|
|
236
|
-
get: function () {
|
|
237
|
-
return _imageEventStore.subscribe;
|
|
238
|
-
}
|
|
239
|
-
});
|
|
240
|
-
Object.defineProperty(exports, "useImageRecords", {
|
|
241
|
-
enumerable: true,
|
|
242
|
-
get: function () {
|
|
243
|
-
return _useImageRecords.useImageRecords;
|
|
244
|
-
}
|
|
245
|
-
});
|
|
246
|
-
require("./autoCapture");
|
|
247
|
-
var _preset = require("./preset");
|
|
248
|
-
var _ImagesRoot = require("./components/ImagesRoot");
|
|
249
|
-
var _ImagesModal = require("./components/ImagesModal");
|
|
250
|
-
var _ImagesIcon = require("./components/ImagesIcon");
|
|
251
|
-
var _install = require("./capture/install");
|
|
252
|
-
var _actions = require("./capture/actions");
|
|
253
|
-
var _overrides = require("./capture/overrides");
|
|
254
|
-
var _savings = require("./capture/savings");
|
|
255
|
-
var _insights = require("./store/insights");
|
|
256
|
-
var _export = require("./export");
|
|
257
|
-
var _imagesSyncAdapter = require("./sync/imagesSyncAdapter");
|
|
258
|
-
var _imageEventStore = require("./store/imageEventStore");
|
|
259
|
-
var _remote = require("./remote");
|
|
260
|
-
var _useImageRecords = require("./hooks/useImageRecords");
|
|
261
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"IMAGES_ICON_COLOR",{enumerable:true,get:function(){return _ImagesIcon.IMAGES_ICON_COLOR}});Object.defineProperty(exports,"ImagesIcon",{enumerable:true,get:function(){return _ImagesIcon.ImagesIcon}});Object.defineProperty(exports,"ImagesModal",{enumerable:true,get:function(){return _ImagesModal.ImagesModal}});Object.defineProperty(exports,"ImagesRoot",{enumerable:true,get:function(){return _ImagesRoot.ImagesRoot}});Object.defineProperty(exports,"ImagesToolView",{enumerable:true,get:function(){return _ImagesModal.ImagesToolView}});Object.defineProperty(exports,"clearAllOverrides",{enumerable:true,get:function(){return _overrides.clearAllOverrides}});Object.defineProperty(exports,"clearOverride",{enumerable:true,get:function(){return _overrides.clearOverride}});Object.defineProperty(exports,"clearRecords",{enumerable:true,get:function(){return _imageEventStore.clearRecords}});Object.defineProperty(exports,"computeInsights",{enumerable:true,get:function(){return _insights.computeInsights}});Object.defineProperty(exports,"computeStats",{enumerable:true,get:function(){return _imageEventStore.computeStats}});Object.defineProperty(exports,"createImagesTool",{enumerable:true,get:function(){return _preset.createImagesTool}});Object.defineProperty(exports,"disableImagesCapture",{enumerable:true,get:function(){return _imageEventStore.disableImagesCapture}});Object.defineProperty(exports,"estDecodedBytes",{enumerable:true,get:function(){return _imageEventStore.estDecodedBytes}});Object.defineProperty(exports,"estWastedBytes",{enumerable:true,get:function(){return _imageEventStore.estWastedBytes}});Object.defineProperty(exports,"evictExpoDiskEntry",{enumerable:true,get:function(){return _actions.evictExpoDiskEntry}});Object.defineProperty(exports,"flashAllMounted",{enumerable:true,get:function(){return _overrides.flashAllMounted}});Object.defineProperty(exports,"flashRecord",{enumerable:true,get:function(){return _overrides.flashRecord}});Object.defineProperty(exports,"formatRecordMarkdown",{enumerable:true,get:function(){return _export.formatRecordMarkdown}});Object.defineProperty(exports,"formatRegistryMarkdown",{enumerable:true,get:function(){return _export.formatRegistryMarkdown}});Object.defineProperty(exports,"getCaptureStatus",{enumerable:true,get:function(){return _install.getCaptureStatus}});Object.defineProperty(exports,"getGlobalModes",{enumerable:true,get:function(){return _overrides.getGlobalModes}});Object.defineProperty(exports,"getImageRecords",{enumerable:true,get:function(){return _imageEventStore.getSnapshot}});Object.defineProperty(exports,"getOverride",{enumerable:true,get:function(){return _overrides.getOverride}});Object.defineProperty(exports,"hardReloadAllMounted",{enumerable:true,get:function(){return _actions.hardReloadAllMounted}});Object.defineProperty(exports,"hardReloadRecord",{enumerable:true,get:function(){return _actions.hardReloadRecord}});Object.defineProperty(exports,"imagesSyncAdapter",{enumerable:true,get:function(){return _imagesSyncAdapter.imagesSyncAdapter}});Object.defineProperty(exports,"imagesToolPreset",{enumerable:true,get:function(){return _preset.imagesToolPreset}});Object.defineProperty(exports,"insightChips",{enumerable:true,get:function(){return _insights.insightChips}});Object.defineProperty(exports,"installImageCapture",{enumerable:true,get:function(){return _install.installImageCapture}});Object.defineProperty(exports,"oversizeFactor",{enumerable:true,get:function(){return _imageEventStore.oversizeFactor}});Object.defineProperty(exports,"proveSavings",{enumerable:true,get:function(){return _savings.proveSavings}});Object.defineProperty(exports,"replaceImagesFromSnapshot",{enumerable:true,get:function(){return _imageEventStore.replaceImagesFromSnapshot}});Object.defineProperty(exports,"retryRecord",{enumerable:true,get:function(){return _actions.retryRecord}});Object.defineProperty(exports,"setBlankImages",{enumerable:true,get:function(){return _overrides.setBlankImages}});Object.defineProperty(exports,"setNetworkMode",{enumerable:true,get:function(){return _overrides.setNetworkMode}});Object.defineProperty(exports,"setOverride",{enumerable:true,get:function(){return _overrides.setOverride}});Object.defineProperty(exports,"setOverrideForAllMounted",{enumerable:true,get:function(){return _overrides.setOverrideForAllMounted}});Object.defineProperty(exports,"setRemoteImagesHandler",{enumerable:true,get:function(){return _remote.setRemoteImagesHandler}});Object.defineProperty(exports,"subscribeImageRecords",{enumerable:true,get:function(){return _imageEventStore.subscribe}});Object.defineProperty(exports,"useImageRecords",{enumerable:true,get:function(){return _useImageRecords.useImageRecords}});require("./autoCapture");var _preset=require("./preset");var _ImagesRoot=require("./components/ImagesRoot");var _ImagesModal=require("./components/ImagesModal");var _ImagesIcon=require("./components/ImagesIcon");var _install=require("./capture/install");var _actions=require("./capture/actions");var _overrides=require("./capture/overrides");var _savings=require("./capture/savings");var _insights=require("./store/insights");var _export=require("./export");var _imagesSyncAdapter=require("./sync/imagesSyncAdapter");var _imageEventStore=require("./store/imageEventStore");var _remote=require("./remote");var _useImageRecords=require("./hooks/useImageRecords");
|
package/lib/commonjs/preset.js
CHANGED
|
@@ -1,39 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.imagesToolPreset = exports.createImagesTool = void 0;
|
|
7
|
-
var _ImagesIcon = require("./components/ImagesIcon");
|
|
8
|
-
var _ImagesModal = require("./components/ImagesModal");
|
|
9
|
-
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
10
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
-
/**
|
|
12
|
-
* Pre-configured Images tool for FloatingDevTools.
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```tsx
|
|
16
|
-
* import { imagesToolPreset } from '@buoy-gg/images';
|
|
17
|
-
*
|
|
18
|
-
* <FloatingDevTools apps={[imagesToolPreset]} />
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
const imagesToolPreset = exports.imagesToolPreset = (0, _sharedUi.defineToolPreset)({
|
|
23
|
-
id: "images",
|
|
24
|
-
name: "IMAGES",
|
|
25
|
-
description: "Image loads, caching, failures, and oversize checks",
|
|
26
|
-
slot: "both",
|
|
27
|
-
icon: ({
|
|
28
|
-
size,
|
|
29
|
-
color
|
|
30
|
-
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ImagesIcon.ImagesIcon, {
|
|
31
|
-
size: size,
|
|
32
|
-
color: color || _ImagesIcon.IMAGES_ICON_COLOR
|
|
33
|
-
}),
|
|
34
|
-
component: _ImagesModal.ImagesModal
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
/** Create a custom Images tool configuration. */
|
|
38
|
-
const createImagesTool = exports.createImagesTool = (0, _sharedUi.createToolFactory)(imagesToolPreset);
|
|
39
|
-
//# sourceMappingURL=preset.js.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.imagesToolPreset=exports.createImagesTool=void 0;var _ImagesIcon=require("./components/ImagesIcon");var _ImagesModal=require("./components/ImagesModal");var _sharedUi=require("@buoy-gg/shared-ui");var _jsxRuntime=require("react/jsx-runtime");const imagesToolPreset=exports.imagesToolPreset=(0,_sharedUi.defineToolPreset)({id:"images",name:"IMAGES",description:"Image loads, caching, failures, and oversize checks",slot:"both",icon:({size:e,color:o})=>(0,_jsxRuntime.jsx)(_ImagesIcon.ImagesIcon,{size:e,color:o||_ImagesIcon.IMAGES_ICON_COLOR}),component:_ImagesModal.ImagesModal});const createImagesTool=exports.createImagesTool=(0,_sharedUi.createToolFactory)(imagesToolPreset);
|
package/lib/commonjs/register.js
CHANGED
|
@@ -1,19 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _install = require("./capture/install");
|
|
4
|
-
/**
|
|
5
|
-
* Side-effect entry: installs image capture on import.
|
|
6
|
-
*
|
|
7
|
-
* Import this FIRST in your app entry file so the RN-core <Image> decorator
|
|
8
|
-
* lands before React Native's Image module is evaluated:
|
|
9
|
-
*
|
|
10
|
-
* ```ts
|
|
11
|
-
* import "@buoy-gg/images/register";
|
|
12
|
-
* ```
|
|
13
|
-
*
|
|
14
|
-
* This module intentionally imports nothing that touches react-native's Image
|
|
15
|
-
* (directly or transitively) before installing.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
(0, _install.installImageCapture)();
|
|
19
|
-
//# sourceMappingURL=register.js.map
|
|
1
|
+
"use strict";var _install=require("./capture/install");(0,_install.installImageCapture)();
|
|
@@ -1,14 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _rnDecoratorEarly = require("./capture/rnDecoratorEarly");
|
|
4
|
-
/**
|
|
5
|
-
* Pre-InitializeCore entry: registers the RN <Image> decorator only.
|
|
6
|
-
*
|
|
7
|
-
* Use when `@buoy-gg/images/register` reports "missed the module-load race"
|
|
8
|
-
* (development builds load <Image> inside InitializeCore via LogBox). Add it as
|
|
9
|
-
* a Metro pre-main module ahead of InitializeCore, and keep the regular
|
|
10
|
-
* `register` import in the entry file for the rest of the capture setup.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
(0, _rnDecoratorEarly.installRnImageDecoratorEarly)();
|
|
14
|
-
//# sourceMappingURL=registerEarly.js.map
|
|
1
|
+
"use strict";var _rnDecoratorEarly=require("./capture/rnDecoratorEarly");(0,_rnDecoratorEarly.installRnImageDecoratorEarly)();
|