@buoy-gg/images 7.0.14 → 7.0.15
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/lib/commonjs/capture/actions.js +15 -0
- package/lib/commonjs/capture/actions.js.map +1 -1
- package/lib/commonjs/capture/install.js +5 -1
- package/lib/commonjs/capture/install.js.map +1 -1
- package/lib/commonjs/capture/overrides.js +70 -10
- package/lib/commonjs/capture/overrides.js.map +1 -1
- package/lib/commonjs/capture/savings.js +16 -0
- package/lib/commonjs/capture/savings.js.map +1 -1
- package/lib/commonjs/components/ImageDetail.js +11 -1
- package/lib/commonjs/components/ImageDetail.js.map +1 -1
- package/lib/commonjs/components/ImagesModal.js +103 -38
- package/lib/commonjs/components/ImagesModal.js.map +1 -1
- package/lib/commonjs/index.js +26 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/remote.js +42 -0
- package/lib/commonjs/remote.js.map +1 -0
- package/lib/commonjs/state.js +5 -1
- package/lib/commonjs/state.js.map +1 -1
- package/lib/commonjs/store/imageEventStore.js +79 -1
- package/lib/commonjs/store/imageEventStore.js.map +1 -1
- package/lib/commonjs/sync/imagesSyncAdapter.js.map +1 -1
- package/lib/module/capture/actions.js +15 -0
- package/lib/module/capture/actions.js.map +1 -1
- package/lib/module/capture/install.js +5 -1
- package/lib/module/capture/install.js.map +1 -1
- package/lib/module/capture/overrides.js +70 -10
- package/lib/module/capture/overrides.js.map +1 -1
- package/lib/module/capture/savings.js +16 -0
- package/lib/module/capture/savings.js.map +1 -1
- package/lib/module/components/ImageDetail.js +13 -3
- package/lib/module/components/ImageDetail.js.map +1 -1
- package/lib/module/components/ImagesModal.js +104 -40
- package/lib/module/components/ImagesModal.js.map +1 -1
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/remote.js +36 -0
- package/lib/module/remote.js.map +1 -0
- package/lib/module/state.js +5 -1
- package/lib/module/state.js.map +1 -1
- package/lib/module/store/imageEventStore.js +76 -1
- package/lib/module/store/imageEventStore.js.map +1 -1
- package/lib/module/sync/imagesSyncAdapter.js.map +1 -1
- package/lib/typescript/capture/actions.d.ts.map +1 -1
- package/lib/typescript/capture/install.d.ts.map +1 -1
- package/lib/typescript/capture/overrides.d.ts.map +1 -1
- package/lib/typescript/capture/savings.d.ts.map +1 -1
- package/lib/typescript/components/ImageDetail.d.ts.map +1 -1
- package/lib/typescript/components/ImagesModal.d.ts +9 -1
- package/lib/typescript/components/ImagesModal.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +5 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/remote.d.ts +16 -0
- package/lib/typescript/remote.d.ts.map +1 -0
- package/lib/typescript/state.d.ts +9 -1
- package/lib/typescript/state.d.ts.map +1 -1
- package/lib/typescript/store/imageEventStore.d.ts +15 -1
- package/lib/typescript/store/imageEventStore.d.ts.map +1 -1
- package/lib/typescript/sync/imagesSyncAdapter.d.ts +3 -70
- package/lib/typescript/sync/imagesSyncAdapter.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +53 -0
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/capture/actions.ts +9 -0
- package/src/capture/install.ts +5 -1
- package/src/capture/overrides.ts +59 -9
- package/src/capture/savings.ts +11 -0
- package/src/components/ImageDetail.tsx +12 -2
- package/src/components/ImagesModal.tsx +107 -39
- package/src/index.tsx +12 -0
- package/src/remote.ts +42 -0
- package/src/state.ts +16 -1
- package/src/store/imageEventStore.ts +76 -2
- package/src/sync/imagesSyncAdapter.ts +2 -2
- package/src/types.ts +43 -0
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ImagesModal = ImagesModal;
|
|
7
|
+
exports.ImagesToolView = ImagesToolView;
|
|
7
8
|
var _react = require("react");
|
|
8
9
|
var _reactNative = require("react-native");
|
|
9
10
|
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
@@ -11,6 +12,7 @@ var _install = require("../capture/install");
|
|
|
11
12
|
var _overrides = require("../capture/overrides");
|
|
12
13
|
var _export = require("../export");
|
|
13
14
|
var _useImageRecords = require("../hooks/useImageRecords");
|
|
15
|
+
var _remote = require("../remote");
|
|
14
16
|
var _imageEventStore = require("../store/imageEventStore");
|
|
15
17
|
var _ImageDetail = require("./ImageDetail");
|
|
16
18
|
var _ImageDetailFooter = require("./ImageDetailFooter");
|
|
@@ -62,7 +64,8 @@ function ImagesModal({
|
|
|
62
64
|
onClose,
|
|
63
65
|
onBack,
|
|
64
66
|
onMinimize,
|
|
65
|
-
persistenceKey
|
|
67
|
+
persistenceKey,
|
|
68
|
+
inline = false
|
|
66
69
|
}) {
|
|
67
70
|
// Safety net: ensures capture is live even without the early register
|
|
68
71
|
// import (expo-image capture is timing-immune, so this still gets most data).
|
|
@@ -74,6 +77,28 @@ function ImagesModal({
|
|
|
74
77
|
const [selectedId, setSelectedId] = (0, _react.useState)(null);
|
|
75
78
|
const selected = selectedId != null ? (0, _imageEventStore.getRecord)(selectedId) : undefined;
|
|
76
79
|
|
|
80
|
+
// Mirror mode: the synced wire records omit errorHeaders (detail-only data)
|
|
81
|
+
// — pull them from the device the first time a failed record is opened.
|
|
82
|
+
const wantHeadersFor = selected?.status === "error" && selected.errorHeaders == null ? selected.id : null;
|
|
83
|
+
(0, _react.useEffect)(() => {
|
|
84
|
+
const remote = (0, _remote.remoteImagesDispatch)();
|
|
85
|
+
if (wantHeadersFor == null || !remote) return;
|
|
86
|
+
let cancelled = false;
|
|
87
|
+
remote("getDetail", {
|
|
88
|
+
id: wantHeadersFor
|
|
89
|
+
}).then(detail => {
|
|
90
|
+
if (cancelled) return;
|
|
91
|
+
const headers = detail?.errorHeaders;
|
|
92
|
+
// `{}` (not undefined) so a headerless error doesn't refetch forever.
|
|
93
|
+
(0, _imageEventStore.updateRecord)(wantHeadersFor, {
|
|
94
|
+
errorHeaders: headers ?? {}
|
|
95
|
+
});
|
|
96
|
+
}).catch(() => {});
|
|
97
|
+
return () => {
|
|
98
|
+
cancelled = true;
|
|
99
|
+
};
|
|
100
|
+
}, [wantHeadersFor]);
|
|
101
|
+
|
|
77
102
|
// Stepping is relative to the live list (newest first): previous = newer.
|
|
78
103
|
const selectedIndex = selected ? records.findIndex(r => r.id === selected.id) : -1;
|
|
79
104
|
const stepTo = index => {
|
|
@@ -85,6 +110,55 @@ function ImagesModal({
|
|
|
85
110
|
// insights + table) in the list. The shared ToolbarCopyButton resolves this
|
|
86
111
|
// lazily on press and handles clipboard + feedback + gating.
|
|
87
112
|
const getReport = () => selected ? (0, _export.formatRecordMarkdown)(selected) : (0, _export.formatRegistryMarkdown)(records, stats, (0, _insights.computeInsights)(records), (0, _install.getCaptureStatus)(), (0, _overrides.getGlobalModes)());
|
|
113
|
+
const headerContent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_ImagesHeader.ImagesHeader, {
|
|
114
|
+
stats: stats,
|
|
115
|
+
detailOpen: selected != null,
|
|
116
|
+
detailIndex: selectedIndex,
|
|
117
|
+
detailTotal: records.length,
|
|
118
|
+
onCloseDetail: () => setSelectedId(null),
|
|
119
|
+
onClear: _imageEventStore.clearRecords,
|
|
120
|
+
getReport: getReport,
|
|
121
|
+
onBack: onBack
|
|
122
|
+
});
|
|
123
|
+
const body = selected ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
124
|
+
style: styles.detailContainer,
|
|
125
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ImageDetail.ImageDetail, {
|
|
126
|
+
record: selected
|
|
127
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ImageDetailFooter.ImageDetailFooter, {
|
|
128
|
+
record: selected,
|
|
129
|
+
hasPrevious: selectedIndex > 0,
|
|
130
|
+
hasNext: selectedIndex >= 0 && selectedIndex < records.length - 1,
|
|
131
|
+
onPrevious: () => stepTo(selectedIndex - 1),
|
|
132
|
+
onNext: () => stepTo(selectedIndex + 1)
|
|
133
|
+
}, selected.id)]
|
|
134
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
135
|
+
style: styles.listContainer,
|
|
136
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_InsightsBar.InsightsBar, {
|
|
137
|
+
insights: (0, _insights.computeInsights)(records)
|
|
138
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(CaptureNotice, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.FlatList, {
|
|
139
|
+
data: records,
|
|
140
|
+
keyExtractor: item => String(item.id),
|
|
141
|
+
renderItem: ({
|
|
142
|
+
item
|
|
143
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ImageRow.ImageRow, {
|
|
144
|
+
record: item,
|
|
145
|
+
onPress: setSelectedId
|
|
146
|
+
}),
|
|
147
|
+
ListEmptyComponent: /*#__PURE__*/(0, _jsxRuntime.jsx)(EmptyState, {})
|
|
148
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ImagesListFooter.ImagesListFooter, {})]
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
// The ONLY difference between the phone and the desktop dashboard is which
|
|
152
|
+
// shell the header and body go in. Everything above this is shared.
|
|
153
|
+
if (inline) {
|
|
154
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
155
|
+
style: styles.inlineRoot,
|
|
156
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
157
|
+
style: styles.inlineHeader,
|
|
158
|
+
children: headerContent
|
|
159
|
+
}), body]
|
|
160
|
+
});
|
|
161
|
+
}
|
|
88
162
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.JsModal, {
|
|
89
163
|
visible: visible,
|
|
90
164
|
onClose: onClose,
|
|
@@ -92,50 +166,41 @@ function ImagesModal({
|
|
|
92
166
|
persistenceKey: persistenceKey,
|
|
93
167
|
header: {
|
|
94
168
|
showToggleButton: true,
|
|
95
|
-
customContent:
|
|
96
|
-
stats: stats,
|
|
97
|
-
detailOpen: selected != null,
|
|
98
|
-
detailIndex: selectedIndex,
|
|
99
|
-
detailTotal: records.length,
|
|
100
|
-
onCloseDetail: () => setSelectedId(null),
|
|
101
|
-
onClear: _imageEventStore.clearRecords,
|
|
102
|
-
getReport: getReport,
|
|
103
|
-
onBack: onBack
|
|
104
|
-
})
|
|
169
|
+
customContent: headerContent
|
|
105
170
|
},
|
|
106
171
|
enablePersistence: true,
|
|
107
172
|
initialMode: "bottomSheet",
|
|
108
173
|
disableScrollWrapper: true,
|
|
109
|
-
children:
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(CaptureNotice, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.FlatList, {
|
|
125
|
-
data: records,
|
|
126
|
-
keyExtractor: item => String(item.id),
|
|
127
|
-
renderItem: ({
|
|
128
|
-
item
|
|
129
|
-
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ImageRow.ImageRow, {
|
|
130
|
-
record: item,
|
|
131
|
-
onPress: setSelectedId
|
|
132
|
-
}),
|
|
133
|
-
ListEmptyComponent: /*#__PURE__*/(0, _jsxRuntime.jsx)(EmptyState, {})
|
|
134
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ImagesListFooter.ImagesListFooter, {})]
|
|
135
|
-
})
|
|
174
|
+
children: body
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* The same Images tool as `ImagesModal`, rendered INLINE for hosts that place
|
|
180
|
+
* tools in a panel rather than a modal (the desktop dashboard). Exists so
|
|
181
|
+
* there is exactly one implementation of the tool's header, list and detail.
|
|
182
|
+
*/
|
|
183
|
+
function ImagesToolView(props = {}) {
|
|
184
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ImagesModal, {
|
|
185
|
+
...props,
|
|
186
|
+
inline: true,
|
|
187
|
+
visible: true,
|
|
188
|
+
onClose: () => {}
|
|
136
189
|
});
|
|
137
190
|
}
|
|
138
191
|
const styles = _reactNative.StyleSheet.create({
|
|
192
|
+
inlineRoot: {
|
|
193
|
+
flex: 1,
|
|
194
|
+
minHeight: 0,
|
|
195
|
+
backgroundColor: _sharedUi.macOSColors.background.base
|
|
196
|
+
},
|
|
197
|
+
inlineHeader: {
|
|
198
|
+
paddingHorizontal: 12,
|
|
199
|
+
paddingVertical: 8,
|
|
200
|
+
borderBottomWidth: 1,
|
|
201
|
+
borderBottomColor: _sharedUi.macOSColors.border.default,
|
|
202
|
+
backgroundColor: _sharedUi.macOSColors.background.card
|
|
203
|
+
},
|
|
139
204
|
listContainer: {
|
|
140
205
|
flex: 1
|
|
141
206
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_sharedUi","_install","_overrides","_export","_useImageRecords","_imageEventStore","_ImageDetail","_ImageDetailFooter","_ImageRow","_ImagesHeader","_ImagesListFooter","_InsightsBar","_insights","_jsxRuntime","CaptureNotice","status","getCaptureStatus","notices","rnDecoratorTooLate","push","expoAvailable","rnDecoratorActive","length","jsx","View","style","styles","notice","children","map","n","Text","noticeText","EmptyState","jsxs","empty","emptyTitle","emptyText","ImagesModal","visible","onClose","onBack","onMinimize","persistenceKey","installImageCapture","records","stats","useImageRecords","selectedId","setSelectedId","useState","selected","getRecord","undefined","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_sharedUi","_install","_overrides","_export","_useImageRecords","_remote","_imageEventStore","_ImageDetail","_ImageDetailFooter","_ImageRow","_ImagesHeader","_ImagesListFooter","_InsightsBar","_insights","_jsxRuntime","CaptureNotice","status","getCaptureStatus","notices","rnDecoratorTooLate","push","expoAvailable","rnDecoratorActive","length","jsx","View","style","styles","notice","children","map","n","Text","noticeText","EmptyState","jsxs","empty","emptyTitle","emptyText","ImagesModal","visible","onClose","onBack","onMinimize","persistenceKey","inline","installImageCapture","records","stats","useImageRecords","selectedId","setSelectedId","useState","selected","getRecord","undefined","wantHeadersFor","errorHeaders","id","useEffect","remote","remoteImagesDispatch","cancelled","then","detail","headers","updateRecord","catch","selectedIndex","findIndex","r","stepTo","index","target","getReport","formatRecordMarkdown","formatRegistryMarkdown","computeInsights","getGlobalModes","headerContent","ImagesHeader","detailOpen","detailIndex","detailTotal","onCloseDetail","onClear","clearRecords","body","detailContainer","ImageDetail","record","ImageDetailFooter","hasPrevious","hasNext","onPrevious","onNext","listContainer","InsightsBar","insights","FlatList","data","keyExtractor","item","String","renderItem","ImageRow","onPress","ListEmptyComponent","ImagesListFooter","inlineRoot","inlineHeader","JsModal","header","showToggleButton","customContent","enablePersistence","initialMode","disableScrollWrapper","ImagesToolView","props","StyleSheet","create","flex","minHeight","backgroundColor","macOSColors","background","base","paddingHorizontal","paddingVertical","borderBottomWidth","borderBottomColor","border","default","card","margin","padding","borderRadius","semantic","warningBackground","gap","color","warning","fontSize","alignItems","text","primary","fontWeight","secondary","textAlign","lineHeight"],"sourceRoot":"../../../src","sources":["components/ImagesModal.tsx"],"mappings":";;;;;;;AAOA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,gBAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,gBAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AACA,IAAAU,kBAAA,GAAAV,OAAA;AACA,IAAAW,SAAA,GAAAX,OAAA;AACA,IAAAY,aAAA,GAAAZ,OAAA;AACA,IAAAa,iBAAA,GAAAb,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AACA,IAAAe,SAAA,GAAAf,OAAA;AAAoD,IAAAgB,WAAA,GAAAhB,OAAA;AAvBpD;AACA;AACA;AACA;AACA;AACA;;AA+BA,SAASiB,aAAaA,CAAA,EAAG;EACvB,MAAMC,MAAM,GAAG,IAAAC,yBAAgB,EAAC,CAAC;EACjC,MAAMC,OAAiB,GAAG,EAAE;EAC5B,IAAIF,MAAM,CAACG,kBAAkB,EAAE;IAC7BD,OAAO,CAACE,IAAI,CACV,0IACF,CAAC;EACH;EACA,IAAI,CAACJ,MAAM,CAACK,aAAa,IAAI,CAACL,MAAM,CAACM,iBAAiB,IAAI,CAACN,MAAM,CAACG,kBAAkB,EAAE;IACpFD,OAAO,CAACE,IAAI,CAAC,0EAA0E,CAAC;EAC1F;EACA,IAAIF,OAAO,CAACK,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EACrC,oBACE,IAAAT,WAAA,CAAAU,GAAA,EAACzB,YAAA,CAAA0B,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,MAAO;IAAAC,QAAA,EACxBX,OAAO,CAACY,GAAG,CAAEC,CAAC,iBACb,IAAAjB,WAAA,CAAAU,GAAA,EAACzB,YAAA,CAAAiC,IAAI;MAASN,KAAK,EAAEC,MAAM,CAACM,UAAW;MAAAJ,QAAA,EACpCE;IAAC,GADOA,CAEL,CACP;EAAC,CACE,CAAC;AAEX;AAEA,SAASG,UAAUA,CAAA,EAAG;EACpB,oBACE,IAAApB,WAAA,CAAAqB,IAAA,EAACpC,YAAA,CAAA0B,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACS,KAAM;IAAAP,QAAA,gBACxB,IAAAf,WAAA,CAAAU,GAAA,EAACzB,YAAA,CAAAiC,IAAI;MAACN,KAAK,EAAEC,MAAM,CAACU,UAAW;MAAAR,QAAA,EAAC;IAAsB,CAAM,CAAC,eAC7D,IAAAf,WAAA,CAAAqB,IAAA,EAACpC,YAAA,CAAAiC,IAAI;MAACN,KAAK,EAAEC,MAAM,CAACW,SAAU;MAAAT,QAAA,GAAC,WACpB,EAAC,SAAS,EAAC,0FAEtB;IAAA,CAAM,CAAC;EAAA,CACH,CAAC;AAEX;AAEO,SAASU,WAAWA,CAAC;EAC1BC,OAAO;EACPC,OAAO;EACPC,MAAM;EACNC,UAAU;EACVC,cAAc;EACdC,MAAM,GAAG;AACO,CAAC,EAAE;EACnB;EACA;EACA,IAAAC,4BAAmB,EAAC,CAAC;EAErB,MAAM;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAG,IAAAC,gCAAe,EAAC,CAAC;EAC5C,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAgB,IAAI,CAAC;EACjE,MAAMC,QAAQ,GAAGH,UAAU,IAAI,IAAI,GAAG,IAAAI,0BAAS,EAACJ,UAAU,CAAC,GAAGK,SAAS;;EAEvE;EACA;EACA,MAAMC,cAAc,GAClBH,QAAQ,EAAErC,MAAM,KAAK,OAAO,IAAIqC,QAAQ,CAACI,YAAY,IAAI,IAAI,GACzDJ,QAAQ,CAACK,EAAE,GACX,IAAI;EACV,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,MAAM,GAAG,IAAAC,4BAAoB,EAAC,CAAC;IACrC,IAAIL,cAAc,IAAI,IAAI,IAAI,CAACI,MAAM,EAAE;IACvC,IAAIE,SAAS,GAAG,KAAK;IACrBF,MAAM,CAAC,WAAW,EAAE;MAAEF,EAAE,EAAEF;IAAe,CAAC,CAAC,CACxCO,IAAI,CAAEC,MAAM,IAAK;MAChB,IAAIF,SAAS,EAAE;MACf,MAAMG,OAAO,GAAID,MAAM,EACnBP,YAAY;MAChB;MACA,IAAAS,6BAAY,EAACV,cAAc,EAAE;QAAEC,YAAY,EAAEQ,OAAO,IAAI,CAAC;MAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CACDE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAClB,OAAO,MAAM;MACXL,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACN,cAAc,CAAC,CAAC;;EAEpB;EACA,MAAMY,aAAa,GAAGf,QAAQ,GAC1BN,OAAO,CAACsB,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACZ,EAAE,KAAKL,QAAQ,CAACK,EAAE,CAAC,GAC9C,CAAC,CAAC;EACN,MAAMa,MAAM,GAAIC,KAAa,IAAK;IAChC,MAAMC,MAAM,GAAG1B,OAAO,CAACyB,KAAK,CAAC;IAC7B,IAAIC,MAAM,EAAEtB,aAAa,CAACsB,MAAM,CAACf,EAAE,CAAC;EACtC,CAAC;;EAED;EACA;EACA;EACA,MAAMgB,SAAS,GAAGA,CAAA,KAChBrB,QAAQ,GACJ,IAAAsB,4BAAoB,EAACtB,QAAQ,CAAC,GAC9B,IAAAuB,8BAAsB,EACpB7B,OAAO,EACPC,KAAK,EACL,IAAA6B,yBAAe,EAAC9B,OAAO,CAAC,EACxB,IAAA9B,yBAAgB,EAAC,CAAC,EAClB,IAAA6D,yBAAc,EAAC,CACjB,CAAC;EAEP,MAAMC,aAAa,gBACjB,IAAAjE,WAAA,CAAAU,GAAA,EAACd,aAAA,CAAAsE,YAAY;IACXhC,KAAK,EAAEA,KAAM;IACbiC,UAAU,EAAE5B,QAAQ,IAAI,IAAK;IAC7B6B,WAAW,EAAEd,aAAc;IAC3Be,WAAW,EAAEpC,OAAO,CAACxB,MAAO;IAC5B6D,aAAa,EAAEA,CAAA,KAAMjC,aAAa,CAAC,IAAI,CAAE;IACzCkC,OAAO,EAAEC,6BAAa;IACtBZ,SAAS,EAAEA,SAAU;IACrBhC,MAAM,EAAEA;EAAO,CAChB,CACF;EAED,MAAM6C,IAAI,GAAGlC,QAAQ,gBACnB,IAAAvC,WAAA,CAAAqB,IAAA,EAACpC,YAAA,CAAA0B,IAAI;IAACC,KAAK,EAAEC,MAAM,CAAC6D,eAAgB;IAAA3D,QAAA,gBAClC,IAAAf,WAAA,CAAAU,GAAA,EAACjB,YAAA,CAAAkF,WAAW;MAACC,MAAM,EAAErC;IAAS,CAAE,CAAC,eACjC,IAAAvC,WAAA,CAAAU,GAAA,EAAChB,kBAAA,CAAAmF,iBAAiB;MAEhBD,MAAM,EAAErC,QAAS;MACjBuC,WAAW,EAAExB,aAAa,GAAG,CAAE;MAC/ByB,OAAO,EAAEzB,aAAa,IAAI,CAAC,IAAIA,aAAa,GAAGrB,OAAO,CAACxB,MAAM,GAAG,CAAE;MAClEuE,UAAU,EAAEA,CAAA,KAAMvB,MAAM,CAACH,aAAa,GAAG,CAAC,CAAE;MAC5C2B,MAAM,EAAEA,CAAA,KAAMxB,MAAM,CAACH,aAAa,GAAG,CAAC;IAAE,GALnCf,QAAQ,CAACK,EAMf,CAAC;EAAA,CACE,CAAC,gBAEP,IAAA5C,WAAA,CAAAqB,IAAA,EAACpC,YAAA,CAAA0B,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACqE,aAAc;IAAAnE,QAAA,gBAChC,IAAAf,WAAA,CAAAU,GAAA,EAACZ,YAAA,CAAAqF,WAAW;MAACC,QAAQ,EAAE,IAAArB,yBAAe,EAAC9B,OAAO;IAAE,CAAE,CAAC,eACnD,IAAAjC,WAAA,CAAAU,GAAA,EAACT,aAAa,IAAE,CAAC,eACjB,IAAAD,WAAA,CAAAU,GAAA,EAACzB,YAAA,CAAAoG,QAAQ;MACPC,IAAI,EAAErD,OAAQ;MACdsD,YAAY,EAAGC,IAAiB,IAAKC,MAAM,CAACD,IAAI,CAAC5C,EAAE,CAAE;MACrD8C,UAAU,EAAEA,CAAC;QAAEF;MAAK,CAAC,kBAAK,IAAAxF,WAAA,CAAAU,GAAA,EAACf,SAAA,CAAAgG,QAAQ;QAACf,MAAM,EAAEY,IAAK;QAACI,OAAO,EAAEvD;MAAc,CAAE,CAAE;MAC7EwD,kBAAkB,eAAE,IAAA7F,WAAA,CAAAU,GAAA,EAACU,UAAU,IAAE;IAAE,CACpC,CAAC,eACF,IAAApB,WAAA,CAAAU,GAAA,EAACb,iBAAA,CAAAiG,gBAAgB,IAAE,CAAC;EAAA,CAChB,CACP;;EAED;EACA;EACA,IAAI/D,MAAM,EAAE;IACV,oBACE,IAAA/B,WAAA,CAAAqB,IAAA,EAACpC,YAAA,CAAA0B,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACkF,UAAW;MAAAhF,QAAA,gBAG7B,IAAAf,WAAA,CAAAU,GAAA,EAACzB,YAAA,CAAA0B,IAAI;QAACC,KAAK,EAAEC,MAAM,CAACmF,YAAa;QAAAjF,QAAA,EAAEkD;MAAa,CAAO,CAAC,EACvDQ,IAAI;IAAA,CACD,CAAC;EAEX;EAEA,oBACE,IAAAzE,WAAA,CAAAU,GAAA,EAACxB,SAAA,CAAA+G,OAAO;IACNvE,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBE,UAAU,EAAEA,UAAW;IACvBC,cAAc,EAAEA,cAAe;IAC/BoE,MAAM,EAAE;MACNC,gBAAgB,EAAE,IAAI;MACtBC,aAAa,EAAEnC;IACjB,CAAE;IACFoC,iBAAiB;IACjBC,WAAW,EAAC,aAAa;IACzBC,oBAAoB;IAAAxF,QAAA,EAEnB0D;EAAI,CACE,CAAC;AAEd;;AAEA;AACA;AACA;AACA;AACA;AACO,SAAS+B,cAAcA,CAC5BC,KAA+D,GAAG,CAAC,CAAC,EACpE;EACA,oBAAO,IAAAzG,WAAA,CAAAU,GAAA,EAACe,WAAW;IAAA,GAAKgF,KAAK;IAAE1E,MAAM;IAACL,OAAO;IAACC,OAAO,EAAEA,CAAA,KAAM,CAAC;EAAE,CAAE,CAAC;AACrE;AAEA,MAAMd,MAAM,GAAG6F,uBAAU,CAACC,MAAM,CAAC;EAC/BZ,UAAU,EAAE;IACVa,IAAI,EAAE,CAAC;IACPC,SAAS,EAAE,CAAC;IACZC,eAAe,EAAEC,qBAAW,CAACC,UAAU,CAACC;EAC1C,CAAC;EACDjB,YAAY,EAAE;IACZkB,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,CAAC;IAClBC,iBAAiB,EAAE,CAAC;IACpBC,iBAAiB,EAAEN,qBAAW,CAACO,MAAM,CAACC,OAAO;IAC7CT,eAAe,EAAEC,qBAAW,CAACC,UAAU,CAACQ;EAC1C,CAAC;EACDtC,aAAa,EAAE;IACb0B,IAAI,EAAE;EACR,CAAC;EACDlC,eAAe,EAAE;IACfkC,IAAI,EAAE;EACR,CAAC;EACD9F,MAAM,EAAE;IACN2G,MAAM,EAAE,EAAE;IACVC,OAAO,EAAE,EAAE;IACXC,YAAY,EAAE,CAAC;IACfb,eAAe,EAAEC,qBAAW,CAACa,QAAQ,CAACC,iBAAiB;IACvDC,GAAG,EAAE;EACP,CAAC;EACD3G,UAAU,EAAE;IACV4G,KAAK,EAAEhB,qBAAW,CAACa,QAAQ,CAACI,OAAO;IACnCC,QAAQ,EAAE;EACZ,CAAC;EACD3G,KAAK,EAAE;IACL4G,UAAU,EAAE,QAAQ;IACpBR,OAAO,EAAE,EAAE;IACXI,GAAG,EAAE;EACP,CAAC;EACDvG,UAAU,EAAE;IACVwG,KAAK,EAAEhB,qBAAW,CAACoB,IAAI,CAACC,OAAO;IAC/BH,QAAQ,EAAE,EAAE;IACZI,UAAU,EAAE;EACd,CAAC;EACD7G,SAAS,EAAE;IACTuG,KAAK,EAAEhB,qBAAW,CAACoB,IAAI,CAACG,SAAS;IACjCL,QAAQ,EAAE,EAAE;IACZM,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "ImagesRoot", {
|
|
|
27
27
|
return _ImagesRoot.ImagesRoot;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
+
Object.defineProperty(exports, "ImagesToolView", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _ImagesModal.ImagesToolView;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
30
36
|
Object.defineProperty(exports, "clearAllOverrides", {
|
|
31
37
|
enumerable: true,
|
|
32
38
|
get: function () {
|
|
@@ -63,6 +69,12 @@ Object.defineProperty(exports, "createImagesTool", {
|
|
|
63
69
|
return _preset.createImagesTool;
|
|
64
70
|
}
|
|
65
71
|
});
|
|
72
|
+
Object.defineProperty(exports, "disableImagesCapture", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () {
|
|
75
|
+
return _imageEventStore.disableImagesCapture;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
66
78
|
Object.defineProperty(exports, "estDecodedBytes", {
|
|
67
79
|
enumerable: true,
|
|
68
80
|
get: function () {
|
|
@@ -177,6 +189,12 @@ Object.defineProperty(exports, "proveSavings", {
|
|
|
177
189
|
return _savings.proveSavings;
|
|
178
190
|
}
|
|
179
191
|
});
|
|
192
|
+
Object.defineProperty(exports, "replaceImagesFromSnapshot", {
|
|
193
|
+
enumerable: true,
|
|
194
|
+
get: function () {
|
|
195
|
+
return _imageEventStore.replaceImagesFromSnapshot;
|
|
196
|
+
}
|
|
197
|
+
});
|
|
180
198
|
Object.defineProperty(exports, "retryRecord", {
|
|
181
199
|
enumerable: true,
|
|
182
200
|
get: function () {
|
|
@@ -207,6 +225,12 @@ Object.defineProperty(exports, "setOverrideForAllMounted", {
|
|
|
207
225
|
return _overrides.setOverrideForAllMounted;
|
|
208
226
|
}
|
|
209
227
|
});
|
|
228
|
+
Object.defineProperty(exports, "setRemoteImagesHandler", {
|
|
229
|
+
enumerable: true,
|
|
230
|
+
get: function () {
|
|
231
|
+
return _remote.setRemoteImagesHandler;
|
|
232
|
+
}
|
|
233
|
+
});
|
|
210
234
|
Object.defineProperty(exports, "subscribeImageRecords", {
|
|
211
235
|
enumerable: true,
|
|
212
236
|
get: function () {
|
|
@@ -231,6 +255,7 @@ var _savings = require("./capture/savings");
|
|
|
231
255
|
var _insights = require("./store/insights");
|
|
232
256
|
var _export = require("./export");
|
|
233
257
|
var _imagesSyncAdapter = require("./sync/imagesSyncAdapter");
|
|
234
|
-
var _useImageRecords = require("./hooks/useImageRecords");
|
|
235
258
|
var _imageEventStore = require("./store/imageEventStore");
|
|
259
|
+
var _remote = require("./remote");
|
|
260
|
+
var _useImageRecords = require("./hooks/useImageRecords");
|
|
236
261
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_preset","_ImagesRoot","_ImagesModal","_ImagesIcon","_install","_actions","_overrides","_savings","_insights","_export","_imagesSyncAdapter","
|
|
1
|
+
{"version":3,"names":["require","_preset","_ImagesRoot","_ImagesModal","_ImagesIcon","_install","_actions","_overrides","_savings","_insights","_export","_imagesSyncAdapter","_imageEventStore","_remote","_useImageRecords"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBAA,OAAA;AAKA,IAAAC,OAAA,GAAAD,OAAA;AAKA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAKA,IAAAK,QAAA,GAAAL,OAAA;AAKA,IAAAM,QAAA,GAAAN,OAAA;AAUA,IAAAO,UAAA,GAAAP,OAAA;AAkBA,IAAAQ,QAAA,GAAAR,OAAA;AAEA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAV,OAAA;AAKA,IAAAW,kBAAA,GAAAX,OAAA;AAMA,IAAAY,gBAAA,GAAAZ,OAAA;AAIA,IAAAa,OAAA,GAAAb,OAAA;AAOA,IAAAc,gBAAA,GAAAd,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.remoteActionResult = remoteActionResult;
|
|
7
|
+
exports.remoteImagesDispatch = remoteImagesDispatch;
|
|
8
|
+
exports.setRemoteImagesHandler = setRemoteImagesHandler;
|
|
9
|
+
var _state = require("./state");
|
|
10
|
+
/**
|
|
11
|
+
* Remote-dispatch seam for dashboard mirrors (Buoy Desktop).
|
|
12
|
+
*
|
|
13
|
+
* On device this stays null and every action in capture/ runs locally. A
|
|
14
|
+
* dashboard sets a handler that forwards the action name + params over the
|
|
15
|
+
* external-sync protocol to the SAME adapter actions the MCP uses
|
|
16
|
+
* (sync/imagesSyncAdapter.ts), so one action vocabulary serves phone UI,
|
|
17
|
+
* desktop UI, and LLM automation.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
function setRemoteImagesHandler(handler) {
|
|
21
|
+
(0, _state.imagesState)().remoteDispatch = handler;
|
|
22
|
+
}
|
|
23
|
+
function remoteImagesDispatch() {
|
|
24
|
+
return (0, _state.imagesState)().remoteDispatch;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** Coerce an adapter action's `{ ok, message }` reply into an ActionResult. */
|
|
28
|
+
async function remoteActionResult(call) {
|
|
29
|
+
try {
|
|
30
|
+
const result = await call;
|
|
31
|
+
return {
|
|
32
|
+
ok: !!result?.ok,
|
|
33
|
+
message: String(result?.message ?? "")
|
|
34
|
+
};
|
|
35
|
+
} catch (error) {
|
|
36
|
+
return {
|
|
37
|
+
ok: false,
|
|
38
|
+
message: String(error?.message ?? error)
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=remote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_state","require","setRemoteImagesHandler","handler","imagesState","remoteDispatch","remoteImagesDispatch","remoteActionResult","call","result","ok","message","String","error"],"sourceRoot":"../../src","sources":["remote.ts"],"mappings":";;;;;;;;AAUA,IAAAA,MAAA,GAAAC,OAAA;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUO,SAASC,sBAAsBA,CACpCC,OAAoC,EAC9B;EACN,IAAAC,kBAAW,EAAC,CAAC,CAACC,cAAc,GAAGF,OAAO;AACxC;AAEO,SAASG,oBAAoBA,CAAA,EAAgC;EAClE,OAAO,IAAAF,kBAAW,EAAC,CAAC,CAACC,cAAc;AACrC;;AAEA;AACO,eAAeE,kBAAkBA,CACtCC,IAAsB,EACC;EACvB,IAAI;IACF,MAAMC,MAAM,GAAI,MAAMD,IAAmD;IACzE,OAAO;MACLE,EAAE,EAAE,CAAC,CAACD,MAAM,EAAEC,EAAE;MAChBC,OAAO,EAAEC,MAAM,CAACH,MAAM,EAAEE,OAAO,IAAI,EAAE;IACvC,CAAC;EACH,CAAC,CAAC,OAAOE,KAAK,EAAE;IACd,OAAO;MAAEH,EAAE,EAAE,KAAK;MAAEC,OAAO,EAAEC,MAAM,CAAEC,KAAK,EAAYF,OAAO,IAAIE,KAAK;IAAE,CAAC;EAC3E;AACF","ignoreList":[]}
|
package/lib/commonjs/state.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["KEY","Symbol","for","imagesState","g","globalThis","records","byId","Map","nextId","listeners","Set","snapshot","emitScheduled","captureInstalled","rnInstalled","expoInstalled","decoratorRegistered","decoratorInvoked","attachSeen","expoAvailable","expoPatched","reloadRequests","actionListeners","expoInstances","overrides","flashUntil","recordVersions","globalVersion","versionCounter","globalModes","network","blank"],"sourceRoot":"../../src","sources":["state.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["KEY","Symbol","for","imagesState","g","globalThis","records","byId","Map","nextId","listeners","Set","snapshot","emitScheduled","captureInstalled","rnInstalled","expoInstalled","decoratorRegistered","decoratorInvoked","attachSeen","expoAvailable","expoPatched","reloadRequests","actionListeners","expoInstances","overrides","flashUntil","recordVersions","globalVersion","versionCounter","globalModes","network","blank","captureDisabled","remoteDispatch","mirrorPixelRatio","mirrorCaptureStatus"],"sourceRoot":"../../src","sources":["state.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwDA,MAAMA,GAAG,GAAGC,MAAM,CAACC,GAAG,CAAC,4BAA4B,CAAC;AAE7C,SAASC,WAAWA,CAAA,EAAsB;EAC/C,MAAMC,CAAC,GAAGC,UAA2D;EACrE,IAAI,CAACD,CAAC,CAACJ,GAAG,CAAC,EAAE;IACXI,CAAC,CAACJ,GAAG,CAAC,GAAG;MACPM,OAAO,EAAE,EAAE;MACXC,IAAI,EAAE,IAAIC,GAAG,CAAC,CAAC;MACfC,MAAM,EAAE,CAAC;MACTC,SAAS,EAAE,IAAIC,GAAG,CAAC,CAAC;MACpBC,QAAQ,EAAE,EAAE;MACZC,aAAa,EAAE,KAAK;MACpBC,gBAAgB,EAAE,KAAK;MACvBC,WAAW,EAAE,KAAK;MAClBC,aAAa,EAAE,KAAK;MACpBC,mBAAmB,EAAE,KAAK;MAC1BC,gBAAgB,EAAE,KAAK;MACvBC,UAAU,EAAE,CAAC;MACbC,aAAa,EAAE,KAAK;MACpBC,WAAW,EAAE,KAAK;MAClBC,cAAc,EAAE,IAAId,GAAG,CAAC,CAAC;MACzBe,eAAe,EAAE,IAAIZ,GAAG,CAAC,CAAC;MAC1Ba,aAAa,EAAE,IAAIhB,GAAG,CAAC,CAAC;MACxBiB,SAAS,EAAE,IAAIjB,GAAG,CAAC,CAAC;MACpBkB,UAAU,EAAE,IAAIlB,GAAG,CAAC,CAAC;MACrBmB,cAAc,EAAE,IAAInB,GAAG,CAAC,CAAC;MACzBoB,aAAa,EAAE,CAAC;MAChBC,cAAc,EAAE,CAAC;MACjBC,WAAW,EAAE;QAAEC,OAAO,EAAE,QAAQ;QAAEC,KAAK,EAAE;MAAM,CAAC;MAChDC,eAAe,EAAE,KAAK;MACtBC,cAAc,EAAE,IAAI;MACpBC,gBAAgB,EAAE,IAAI;MACtBC,mBAAmB,EAAE;IACvB,CAAC;EACH;EACA,OAAOhC,CAAC,CAACJ,GAAG,CAAC;AACf","ignoreList":[]}
|
|
@@ -6,15 +6,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.clearRecords = clearRecords;
|
|
7
7
|
exports.computeStats = computeStats;
|
|
8
8
|
exports.createRecord = createRecord;
|
|
9
|
+
exports.disableImagesCapture = disableImagesCapture;
|
|
10
|
+
exports.effectivePixelRatio = effectivePixelRatio;
|
|
9
11
|
exports.estDecodedBytes = estDecodedBytes;
|
|
10
12
|
exports.estWastedBytes = estWastedBytes;
|
|
11
13
|
exports.getRecord = getRecord;
|
|
12
14
|
exports.getSnapshot = getSnapshot;
|
|
13
15
|
exports.neededPixels = neededPixels;
|
|
14
16
|
exports.oversizeFactor = oversizeFactor;
|
|
17
|
+
exports.replaceImagesFromSnapshot = replaceImagesFromSnapshot;
|
|
15
18
|
exports.subscribe = subscribe;
|
|
16
19
|
exports.updateRecord = updateRecord;
|
|
17
20
|
var _reactNative = require("react-native");
|
|
21
|
+
var _remote = require("../remote");
|
|
18
22
|
var _state = require("../state");
|
|
19
23
|
/**
|
|
20
24
|
* imageEventStore
|
|
@@ -86,6 +90,9 @@ function subscribe(listener) {
|
|
|
86
90
|
return () => (0, _state.imagesState)().listeners.delete(listener);
|
|
87
91
|
}
|
|
88
92
|
function clearRecords() {
|
|
93
|
+
// Mirror mode: clear the device's registry too, or the next snapshot would
|
|
94
|
+
// refill this store straight away.
|
|
95
|
+
void (0, _remote.remoteImagesDispatch)()?.("clearRecords");
|
|
89
96
|
const s = (0, _state.imagesState)();
|
|
90
97
|
// Keep records still actively loading so in-flight events don't orphan.
|
|
91
98
|
s.records = s.records.filter(r => r.mounted && r.status !== "loaded" && r.status !== "error");
|
|
@@ -93,14 +100,85 @@ function clearRecords() {
|
|
|
93
100
|
invalidate();
|
|
94
101
|
}
|
|
95
102
|
|
|
103
|
+
// ---------------------------------------------------------------------------
|
|
104
|
+
// Mirror mode (desktop dashboard)
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Dashboards never instrument their own images — the store is purely a mirror
|
|
109
|
+
* of the synced device. Makes installImageCapture() a permanent no-op.
|
|
110
|
+
*/
|
|
111
|
+
function disableImagesCapture() {
|
|
112
|
+
(0, _state.imagesState)().captureDisabled = true;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Replace the whole store from a synced adapter snapshot (wire records are
|
|
117
|
+
* newest-first; the store keeps oldest-first and useImageRecords reverses).
|
|
118
|
+
* Also adopts the device's global modes / capture status and derives the
|
|
119
|
+
* DEVICE's PixelRatio so oversize math doesn't use the dashboard display's.
|
|
120
|
+
*/
|
|
121
|
+
function replaceImagesFromSnapshot(payload) {
|
|
122
|
+
const s = (0, _state.imagesState)();
|
|
123
|
+
const wire = payload.records ?? [];
|
|
124
|
+
|
|
125
|
+
// neededPx was computed on device as round(layout * PixelRatio.get()), so
|
|
126
|
+
// the widest record recovers the device scale with the least rounding error.
|
|
127
|
+
let bestWidth = 0;
|
|
128
|
+
for (const w of wire) {
|
|
129
|
+
if (w.layout && w.neededPx && w.layout.width > bestWidth) {
|
|
130
|
+
bestWidth = w.layout.width;
|
|
131
|
+
s.mirrorPixelRatio = w.neededPx.width / w.layout.width;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const now = Date.now();
|
|
135
|
+
s.records = [...wire].reverse().map(w => ({
|
|
136
|
+
id: w.id,
|
|
137
|
+
lib: w.lib,
|
|
138
|
+
uri: w.uri,
|
|
139
|
+
sourceKind: w.kind,
|
|
140
|
+
status: w.status,
|
|
141
|
+
mounted: w.mounted,
|
|
142
|
+
createdAt: now - w.ageMs,
|
|
143
|
+
durationMs: w.ms ?? undefined,
|
|
144
|
+
intrinsic: w.intrinsic ?? undefined,
|
|
145
|
+
layout: w.layout ?? undefined,
|
|
146
|
+
cacheVerdict: w.cache ?? undefined,
|
|
147
|
+
cacheVerdictSource: w.cacheSource ?? undefined,
|
|
148
|
+
progressSeen: w.progressSeen,
|
|
149
|
+
// The wire carries only the total; a settled download loaded all of it.
|
|
150
|
+
bytesLoaded: w.status === "loaded" ? w.bytesTotal ?? undefined : undefined,
|
|
151
|
+
bytesTotal: w.bytesTotal ?? undefined,
|
|
152
|
+
error: w.error ?? undefined,
|
|
153
|
+
errorCode: w.errorCode ?? undefined,
|
|
154
|
+
loadCount: w.loadCount,
|
|
155
|
+
overrideLabel: w.overrideLabel ?? undefined,
|
|
156
|
+
hasAltText: w.hasAltText ?? undefined,
|
|
157
|
+
layoutShifts: w.layoutShifts
|
|
158
|
+
}));
|
|
159
|
+
s.byId = new Map(s.records.map(r => [r.id, r]));
|
|
160
|
+
if (payload.globalModes) s.globalModes = {
|
|
161
|
+
...payload.globalModes
|
|
162
|
+
};
|
|
163
|
+
if (payload.captureStatus) s.mirrorCaptureStatus = payload.captureStatus;
|
|
164
|
+
invalidate();
|
|
165
|
+
// Mode toggles render through the actions bus, not the record store.
|
|
166
|
+
for (const l of s.actionListeners) l();
|
|
167
|
+
}
|
|
168
|
+
|
|
96
169
|
// ---------------------------------------------------------------------------
|
|
97
170
|
// Derived math (shared by rows, detail view, and stats)
|
|
98
171
|
// ---------------------------------------------------------------------------
|
|
99
172
|
|
|
173
|
+
/** Device PixelRatio on device; the SYNCED device's ratio on a mirror. */
|
|
174
|
+
function effectivePixelRatio() {
|
|
175
|
+
return (0, _state.imagesState)().mirrorPixelRatio ?? _reactNative.PixelRatio.get();
|
|
176
|
+
}
|
|
177
|
+
|
|
100
178
|
/** Physical pixels actually needed to fill the laid-out view 1:1. */
|
|
101
179
|
function neededPixels(record) {
|
|
102
180
|
if (!record.layout || record.layout.width <= 0 || record.layout.height <= 0) return null;
|
|
103
|
-
const scale =
|
|
181
|
+
const scale = effectivePixelRatio();
|
|
104
182
|
return {
|
|
105
183
|
width: Math.round(record.layout.width * scale),
|
|
106
184
|
height: Math.round(record.layout.height * scale)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_state","MAX_RECORDS","emit","s","imagesState","emitScheduled","requestAnimationFrame","listener","listeners","invalidate","snapshot","records","createRecord","partial","record","id","nextId","createdAt","Date","now","status","mounted","loadCount","push","byId","set","length","dropped","splice","d","delete","updateRecord","patch","get","undefined","Object","assign","getRecord","getSnapshot","subscribe","add","clearRecords","filter","r","Map","map","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_remote","_state","MAX_RECORDS","emit","s","imagesState","emitScheduled","requestAnimationFrame","listener","listeners","invalidate","snapshot","records","createRecord","partial","record","id","nextId","createdAt","Date","now","status","mounted","loadCount","push","byId","set","length","dropped","splice","d","delete","updateRecord","patch","get","undefined","Object","assign","getRecord","getSnapshot","subscribe","add","clearRecords","remoteImagesDispatch","filter","r","Map","map","disableImagesCapture","captureDisabled","replaceImagesFromSnapshot","payload","wire","bestWidth","w","layout","neededPx","width","mirrorPixelRatio","reverse","lib","uri","sourceKind","kind","ageMs","durationMs","ms","intrinsic","cacheVerdict","cache","cacheVerdictSource","cacheSource","progressSeen","bytesLoaded","bytesTotal","error","errorCode","overrideLabel","hasAltText","layoutShifts","globalModes","captureStatus","mirrorCaptureStatus","l","actionListeners","effectivePixelRatio","PixelRatio","neededPixels","height","scale","Math","round","oversizeFactor","needed","neededArea","intrinsicArea","sqrt","estDecodedBytes","estWastedBytes","wasted","max","computeStats","list","stats","total","loading","loaded","errors","networkLoads"],"sourceRoot":"../../../src","sources":["store/imageEventStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_actions","require","_install","_overrides","_savings","_insights","_imageEventStore","toWire","record","factor","oversizeFactor","id","lib","uri","kind","sourceKind","status","mounted","cache","cacheVerdict","cacheSource","cacheVerdictSource","ms","durationMs","Math","round","intrinsic","layout","width","height","neededPx","neededPixels","decodedKB","estDecodedBytes","wastedKB","estWastedBytes","progressSeen","bytesTotal","error","errorCode","loadCount","overrideLabel","hasAltText","layoutShifts","ageMs","Date","now","createdAt","requireRecord","params","Error","getRecord","overview","snapshot","getSnapshot","stats","computeStats","captureStatus","getCaptureStatus","globalModes","getGlobalModes","insights","computeInsights","records","reverse","imagesSyncAdapter","exports","version","rest","slice","map","subscribe","onChange","actions","list","p","limit","min","max","filtered","filter","r","total","length","getDetail","errorHeaders","hardReload","hardReloadRecord","proveSavings","retry","retryRecord","evictDisk","evicted","evictExpoDiskEntry","ok","message","flash","flashRecord","setOverride","kinds","source","type","label","hang","blank","entry","undefined","String","clearOverride","massAction","n","setOverrideForAllMounted","hardReloadAllMounted","flashAllMounted","clearAllOverrides","setNetworkMode","mode","modes","setBlankImages","enabled","clearRecords","clearExpoCaches","doMemory","memory","doDisk","disk","expo","results","Image","clearMemoryCache","push","clearDiskCache","join"],"sourceRoot":"../../../src","sources":["sync/imagesSyncAdapter.ts"],"mappings":";;;;;;AAUA,IAAAA,QAAA,GAAAC,OAAA;AAMA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAWA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAEA,IAAAK,gBAAA,GAAAL,OAAA;AA/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoCA;AACA,SAASM,MAAMA,CAACC,MAAmB,
|
|
1
|
+
{"version":3,"names":["_actions","require","_install","_overrides","_savings","_insights","_imageEventStore","toWire","record","factor","oversizeFactor","id","lib","uri","kind","sourceKind","status","mounted","cache","cacheVerdict","cacheSource","cacheVerdictSource","ms","durationMs","Math","round","intrinsic","layout","width","height","neededPx","neededPixels","decodedKB","estDecodedBytes","wastedKB","estWastedBytes","progressSeen","bytesTotal","error","errorCode","loadCount","overrideLabel","hasAltText","layoutShifts","ageMs","Date","now","createdAt","requireRecord","params","Error","getRecord","overview","snapshot","getSnapshot","stats","computeStats","captureStatus","getCaptureStatus","globalModes","getGlobalModes","insights","computeInsights","records","reverse","imagesSyncAdapter","exports","version","rest","slice","map","subscribe","onChange","actions","list","p","limit","min","max","filtered","filter","r","total","length","getDetail","errorHeaders","hardReload","hardReloadRecord","proveSavings","retry","retryRecord","evictDisk","evicted","evictExpoDiskEntry","ok","message","flash","flashRecord","setOverride","kinds","source","type","label","hang","blank","entry","undefined","String","clearOverride","massAction","n","setOverrideForAllMounted","hardReloadAllMounted","flashAllMounted","clearAllOverrides","setNetworkMode","mode","modes","setBlankImages","enabled","clearRecords","clearExpoCaches","doMemory","memory","doDisk","disk","expo","results","Image","clearMemoryCache","push","clearDiskCache","join"],"sourceRoot":"../../../src","sources":["sync/imagesSyncAdapter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* rewrites both cache tiers.
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
+
import { remoteActionResult, remoteImagesDispatch } from "../remote";
|
|
21
22
|
import { imagesState } from "../state";
|
|
22
23
|
import { touchRecord } from "./overrides";
|
|
23
24
|
// ---------------------------------------------------------------------------
|
|
@@ -137,6 +138,10 @@ export async function evictExpoDiskEntry(record) {
|
|
|
137
138
|
|
|
138
139
|
/** Fresh load attempt for a mounted image (no cache bypass). */
|
|
139
140
|
export async function retryRecord(record) {
|
|
141
|
+
const remote = remoteImagesDispatch();
|
|
142
|
+
if (remote) return remoteActionResult(remote("retry", {
|
|
143
|
+
id: record.id
|
|
144
|
+
}));
|
|
140
145
|
if (!record.mounted) {
|
|
141
146
|
return {
|
|
142
147
|
ok: false,
|
|
@@ -166,6 +171,12 @@ export async function retryRecord(record) {
|
|
|
166
171
|
|
|
167
172
|
/** Hard-reload every mounted image (mass cache-bust). Returns count started. */
|
|
168
173
|
export async function hardReloadAllMounted() {
|
|
174
|
+
const remote = remoteImagesDispatch();
|
|
175
|
+
if (remote) {
|
|
176
|
+
return remoteActionResult(remote("massAction", {
|
|
177
|
+
kind: "reload"
|
|
178
|
+
}));
|
|
179
|
+
}
|
|
169
180
|
const {
|
|
170
181
|
getSnapshot
|
|
171
182
|
} = require("../store/imageEventStore");
|
|
@@ -183,6 +194,10 @@ export async function hardReloadAllMounted() {
|
|
|
183
194
|
|
|
184
195
|
/** Bypass-cache reload: refetches from network and rewrites the caches. */
|
|
185
196
|
export async function hardReloadRecord(record) {
|
|
197
|
+
const remote = remoteImagesDispatch();
|
|
198
|
+
if (remote) return remoteActionResult(remote("hardReload", {
|
|
199
|
+
id: record.id
|
|
200
|
+
}));
|
|
186
201
|
if (!record.mounted) {
|
|
187
202
|
return {
|
|
188
203
|
ok: false,
|