@buoy-gg/images 7.0.40 → 7.0.41
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 +6 -0
- package/lib/commonjs/autoCapture.js +4 -0
- package/lib/commonjs/autoCapture.js.map +1 -0
- package/lib/commonjs/autoCapture.web.js +6 -0
- package/lib/commonjs/autoCapture.web.js.map +1 -0
- package/lib/commonjs/capture/actions.js +4 -3
- package/lib/commonjs/capture/actions.js.map +1 -1
- package/lib/commonjs/capture/install.web.js +250 -0
- package/lib/commonjs/capture/install.web.js.map +1 -0
- package/lib/commonjs/capture/installRnImage.js +5 -1
- package/lib/commonjs/capture/installRnImage.js.map +1 -1
- package/lib/commonjs/capture/nativeImageModules.js +30 -0
- package/lib/commonjs/capture/nativeImageModules.js.map +1 -0
- package/lib/commonjs/capture/nativeImageModules.web.js +18 -0
- package/lib/commonjs/capture/nativeImageModules.web.js.map +1 -0
- package/lib/commonjs/capture/rnDecoratorEarly.js +55 -0
- package/lib/commonjs/capture/rnDecoratorEarly.js.map +1 -0
- package/lib/commonjs/capture/savings.web.js +71 -0
- package/lib/commonjs/capture/savings.web.js.map +1 -0
- package/lib/commonjs/components/ImageDetail.js +3 -2
- package/lib/commonjs/components/ImageDetail.js.map +1 -1
- package/lib/commonjs/components/ImageRow.js +1 -1
- package/lib/commonjs/components/ImageRow.js.map +1 -1
- package/lib/commonjs/components/ImagesModal.js +1 -1
- package/lib/commonjs/components/ImagesModal.js.map +1 -1
- package/lib/commonjs/components/ImagesRoot.web.js +13 -0
- package/lib/commonjs/components/ImagesRoot.web.js.map +1 -0
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/registerEarly.js +14 -0
- package/lib/commonjs/registerEarly.js.map +1 -0
- package/lib/commonjs/sync/imagesSyncAdapter.js +2 -1
- package/lib/commonjs/sync/imagesSyncAdapter.js.map +1 -1
- package/lib/module/autoCapture.js +4 -0
- package/lib/module/autoCapture.js.map +1 -0
- package/lib/module/autoCapture.web.js +5 -0
- package/lib/module/autoCapture.web.js.map +1 -0
- package/lib/module/capture/actions.js +4 -3
- package/lib/module/capture/actions.js.map +1 -1
- package/lib/module/capture/install.web.js +243 -0
- package/lib/module/capture/install.web.js.map +1 -0
- package/lib/module/capture/installRnImage.js +5 -2
- package/lib/module/capture/installRnImage.js.map +1 -1
- package/lib/module/capture/nativeImageModules.js +24 -0
- package/lib/module/capture/nativeImageModules.js.map +1 -0
- package/lib/module/capture/nativeImageModules.web.js +12 -0
- package/lib/module/capture/nativeImageModules.web.js.map +1 -0
- package/lib/module/capture/rnDecoratorEarly.js +50 -0
- package/lib/module/capture/rnDecoratorEarly.js.map +1 -0
- package/lib/module/capture/savings.web.js +67 -0
- package/lib/module/capture/savings.web.js.map +1 -0
- package/lib/module/components/ImageDetail.js +3 -2
- package/lib/module/components/ImageDetail.js.map +1 -1
- package/lib/module/components/ImageRow.js +1 -1
- package/lib/module/components/ImageRow.js.map +1 -1
- package/lib/module/components/ImagesModal.js +1 -1
- package/lib/module/components/ImagesModal.js.map +1 -1
- package/lib/module/components/ImagesRoot.web.js +9 -0
- package/lib/module/components/ImagesRoot.web.js.map +1 -0
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/registerEarly.js +14 -0
- package/lib/module/registerEarly.js.map +1 -0
- package/lib/module/sync/imagesSyncAdapter.js +2 -1
- package/lib/module/sync/imagesSyncAdapter.js.map +1 -1
- package/lib/typescript/autoCapture.d.ts +2 -0
- package/lib/typescript/autoCapture.d.ts.map +1 -0
- package/lib/typescript/autoCapture.web.d.ts +2 -0
- package/lib/typescript/autoCapture.web.d.ts.map +1 -0
- package/lib/typescript/capture/actions.d.ts +0 -17
- package/lib/typescript/capture/actions.d.ts.map +1 -1
- package/lib/typescript/capture/install.web.d.ts +6 -0
- package/lib/typescript/capture/install.web.d.ts.map +1 -0
- package/lib/typescript/capture/installRnImage.d.ts +5 -0
- package/lib/typescript/capture/installRnImage.d.ts.map +1 -1
- package/lib/typescript/capture/nativeImageModules.d.ts +4 -0
- package/lib/typescript/capture/nativeImageModules.d.ts.map +1 -0
- package/lib/typescript/capture/nativeImageModules.web.d.ts +4 -0
- package/lib/typescript/capture/nativeImageModules.web.d.ts.map +1 -0
- package/lib/typescript/capture/rnDecoratorEarly.d.ts +18 -0
- package/lib/typescript/capture/rnDecoratorEarly.d.ts.map +1 -0
- package/lib/typescript/capture/savings.web.d.ts +5 -0
- package/lib/typescript/capture/savings.web.d.ts.map +1 -0
- package/lib/typescript/components/ImageDetail.d.ts +0 -6
- package/lib/typescript/components/ImageDetail.d.ts.map +1 -1
- package/lib/typescript/components/ImagesRoot.web.d.ts +2 -0
- package/lib/typescript/components/ImagesRoot.web.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/registerEarly.d.ts +10 -0
- package/lib/typescript/registerEarly.d.ts.map +1 -0
- package/lib/typescript/sync/imagesSyncAdapter.d.ts +0 -9
- package/lib/typescript/sync/imagesSyncAdapter.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +2 -1
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/web/chunks/chunk-7CWLRQ2L.mjs +2 -0
- package/lib/web/chunks/chunk-B5A6CYSS.mjs +2 -0
- package/lib/web/chunks/chunk-LKTR6X2V.mjs +2 -0
- package/lib/web/chunks/chunk-TTS5EH4R.mjs +2 -0
- package/lib/web/index.mjs +4 -0
- package/lib/web/register.mjs +2 -0
- package/package.json +52 -6
package/README.md
CHANGED
|
@@ -6,6 +6,8 @@ Inspect image loads observed by Buoy’s supported image hooks, including timing
|
|
|
6
6
|
|
|
7
7
|
Part of [Buoy](https://github.com/Buoy-gg/buoy). Install the package, complete account setup, and follow the integration steps below.
|
|
8
8
|
|
|
9
|
+
Buoy's own icons, backgrounds and tool previews are excluded from image capture. App images remain visible, including app views that load the same URL as a tool preview.
|
|
10
|
+
|
|
9
11
|
Native image loading can bypass JavaScript network capture. This package instruments supported React Native `Image` and `expo-image` paths to provide image-specific details.
|
|
10
12
|
|
|
11
13
|
## Install
|
|
@@ -78,3 +80,7 @@ To connect a React Native app to [Buoy Desktop](https://github.com/Buoy-gg/Buoy-
|
|
|
78
80
|
## Account and plan requirements
|
|
79
81
|
|
|
80
82
|
Use a Free or Pro Buoy account. History limits and paid features vary by tool; see [pricing](https://buoy.gg/pricing). Production access requires Pro where supported. Development-only hooks and actions remain unavailable in release builds.
|
|
83
|
+
|
|
84
|
+
## Web support (unreleased)
|
|
85
|
+
|
|
86
|
+
Browser capture observes DOM images and supports shared overrides and size analysis. Savings previews use Canvas; cross-origin reads require permission from the image server. The browser build is available in this checkout and has not been published yet. See the [web setup guide](https://buoy.gg/buoy/latest/docs/web-preview) for registration, dependencies, and browser boundaries.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["require"],"sourceRoot":"../../src","sources":["autoCapture.ts"],"mappings":";;AAAAA,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["autoCapture.web.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -13,6 +13,7 @@ exports.registerExpoInstance = registerExpoInstance;
|
|
|
13
13
|
exports.retryRecord = retryRecord;
|
|
14
14
|
exports.settleReloadRequest = settleReloadRequest;
|
|
15
15
|
exports.subscribeActions = subscribeActions;
|
|
16
|
+
var _nativeImageModules = require("./nativeImageModules");
|
|
16
17
|
var _remote = require("../remote");
|
|
17
18
|
var _state = require("../state");
|
|
18
19
|
var _overrides = require("./overrides");
|
|
@@ -97,7 +98,7 @@ function registerExpoInstance(recordId, instance) {
|
|
|
97
98
|
}
|
|
98
99
|
function expoImageStatics() {
|
|
99
100
|
try {
|
|
100
|
-
return
|
|
101
|
+
return (0, _nativeImageModules.loadExpoImage)().Image ?? null;
|
|
101
102
|
} catch {
|
|
102
103
|
return null;
|
|
103
104
|
}
|
|
@@ -108,14 +109,14 @@ function expoImageStatics() {
|
|
|
108
109
|
*/
|
|
109
110
|
function loadFileSystem() {
|
|
110
111
|
try {
|
|
111
|
-
const mod =
|
|
112
|
+
const mod = (0, _nativeImageModules.loadLegacyFileSystem)();
|
|
112
113
|
const fs = mod?.default || mod;
|
|
113
114
|
if (fs?.deleteAsync) return fs;
|
|
114
115
|
} catch {
|
|
115
116
|
// try main import
|
|
116
117
|
}
|
|
117
118
|
try {
|
|
118
|
-
const mod =
|
|
119
|
+
const mod = (0, _nativeImageModules.loadFileSystemModule)();
|
|
119
120
|
const fs = mod?.default || mod;
|
|
120
121
|
if (fs?.deleteAsync) return fs;
|
|
121
122
|
} catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_nativeImageModules","require","_remote","_state","_overrides","subscribeActions","listener","s","imagesState","actionListeners","add","delete","getReloadRequest","recordId","undefined","reloadRequests","get","getReloadNonce","nonce","requestRnReload","bust","prev","set","touchRecord","settleReloadRequest","req","dropActionState","expoInstances","overrides","flashUntil","recordVersions","registerExpoInstance","instance","expoImageStatics","loadExpoImage","Image","loadFileSystem","mod","loadLegacyFileSystem","fs","default","deleteAsync","loadFileSystemModule","evictExpoDiskEntry","record","statics","fileSystem","getCachePathAsync","uri","path","startsWith","idempotent","retryRecord","remote","remoteImagesDispatch","remoteActionResult","id","mounted","ok","message","lib","reloadAsync","hardReloadAllMounted","kind","getSnapshot","count","result","hardReloadRecord","sourceKind","evicted","clearMemoryCache","catch"],"sourceRoot":"../../../src","sources":["capture/actions.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getCaptureStatus = getCaptureStatus;
|
|
7
|
+
exports.installImageCapture = installImageCapture;
|
|
8
|
+
exports.startBrowserImageCapture = startBrowserImageCapture;
|
|
9
|
+
exports.stopBrowserImageCapture = stopBrowserImageCapture;
|
|
10
|
+
var _state = require("../state");
|
|
11
|
+
var _imageEventStore = require("../store/imageEventStore");
|
|
12
|
+
var _overrides = require("./overrides");
|
|
13
|
+
const tracked = new Map();
|
|
14
|
+
let detach;
|
|
15
|
+
let leases = 0;
|
|
16
|
+
const EMPTY_IMAGE = 'data:image/png;base64,';
|
|
17
|
+
function apply(item) {
|
|
18
|
+
const record = (0, _imageEventStore.getRecord)(item.id);
|
|
19
|
+
if (!record) return;
|
|
20
|
+
const state = (0, _state.imagesState)();
|
|
21
|
+
const override = (0, _overrides.getOverride)(item.id);
|
|
22
|
+
const modes = (0, _overrides.getGlobalModes)();
|
|
23
|
+
let source = item.source;
|
|
24
|
+
if (modes.network === 'offline' && record.sourceKind === 'network') source = EMPTY_IMAGE;
|
|
25
|
+
if (override?.source) {
|
|
26
|
+
const next = override.source;
|
|
27
|
+
if (next.type === 'url') source = next.uri;else if (next.type === 'error') source = EMPTY_IMAGE;else source = null;
|
|
28
|
+
if (next.type === 'hang') (0, _imageEventStore.updateRecord)(item.id, {
|
|
29
|
+
status: 'loading'
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
const request = state.reloadRequests.get(item.id);
|
|
33
|
+
const reload = request && request.nonce !== item.nonce;
|
|
34
|
+
if (reload) {
|
|
35
|
+
item.nonce = request.nonce;
|
|
36
|
+
if (request.bust && source && /^https?:/.test(new URL(source, document.baseURI).href)) {
|
|
37
|
+
const url = new URL(source, document.baseURI);
|
|
38
|
+
url.searchParams.set('__buoy_reload', String(Date.now()));
|
|
39
|
+
source = url.href;
|
|
40
|
+
}
|
|
41
|
+
item.image.removeAttribute('src');
|
|
42
|
+
(0, _imageEventStore.updateRecord)(item.id, {
|
|
43
|
+
status: 'loading',
|
|
44
|
+
startedAt: Date.now(),
|
|
45
|
+
loadCount: record.loadCount + 1
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
if (modes.network === 'cold' && source && /^https?:/.test(new URL(source, document.baseURI).href)) {
|
|
49
|
+
if (item.coldSource !== source || !item.coldURL || reload) {
|
|
50
|
+
item.coldSource = source;
|
|
51
|
+
const url = new URL(source, document.baseURI);
|
|
52
|
+
url.searchParams.set('__buoy_reload', `${Date.now()}-${item.nonce}`);
|
|
53
|
+
item.coldURL = url.href;
|
|
54
|
+
}
|
|
55
|
+
source = item.coldURL;
|
|
56
|
+
} else {
|
|
57
|
+
item.coldSource = undefined;
|
|
58
|
+
item.coldURL = undefined;
|
|
59
|
+
}
|
|
60
|
+
item.appliedSource = source;
|
|
61
|
+
item.appliedSrcset = source !== item.source ? null : item.srcset;
|
|
62
|
+
if (item.appliedSrcset === null) item.image.removeAttribute('srcset');else if (item.image.getAttribute('srcset') !== item.appliedSrcset) item.image.setAttribute('srcset', item.appliedSrcset);
|
|
63
|
+
if (source === null) item.image.removeAttribute('src');else if (item.image.getAttribute('src') !== source) item.image.setAttribute('src', source);
|
|
64
|
+
const style = document.createElement('span').style;
|
|
65
|
+
style.cssText = item.style ?? '';
|
|
66
|
+
const fit = override?.extraProps?.contentFit ?? override?.extraProps?.resizeMode;
|
|
67
|
+
if (typeof fit === 'string') style.objectFit = {
|
|
68
|
+
stretch: 'fill',
|
|
69
|
+
center: 'none'
|
|
70
|
+
}[fit] ?? fit;
|
|
71
|
+
if (modes.blank || override?.source?.type === 'blank') style.opacity = '0';
|
|
72
|
+
for (const [key, value] of Object.entries(override?.style ?? {})) {
|
|
73
|
+
const css = key.replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`);
|
|
74
|
+
style.setProperty(css, typeof value === 'number' && !['opacity', 'zIndex', 'flex', 'flexGrow', 'flexShrink'].includes(key) ? `${value}px` : String(value));
|
|
75
|
+
}
|
|
76
|
+
if ((state.flashUntil.get(item.id) ?? 0) > Date.now()) style.outline = '3px solid #ff453a';
|
|
77
|
+
item.appliedStyle = style.cssText || null;
|
|
78
|
+
if (item.image.getAttribute('style') !== item.appliedStyle) {
|
|
79
|
+
if (item.appliedStyle === null) item.image.removeAttribute('style');else item.image.setAttribute('style', item.appliedStyle);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function track(image) {
|
|
83
|
+
if (tracked.has(image) || image.closest('[data-buoy-root]')) return;
|
|
84
|
+
const uri = image.currentSrc || image.src;
|
|
85
|
+
if (!uri) return;
|
|
86
|
+
const record = (0, _imageEventStore.createRecord)({
|
|
87
|
+
lib: 'web',
|
|
88
|
+
uri,
|
|
89
|
+
sourceKind: uri.startsWith('data:') ? 'data' : uri.startsWith('blob:') ? 'file' : 'network',
|
|
90
|
+
hasAltText: image.hasAttribute('alt') || image.hasAttribute('aria-label')
|
|
91
|
+
});
|
|
92
|
+
const item = {
|
|
93
|
+
id: record.id,
|
|
94
|
+
image,
|
|
95
|
+
source: image.getAttribute('src'),
|
|
96
|
+
srcset: image.getAttribute('srcset'),
|
|
97
|
+
style: image.getAttribute('style'),
|
|
98
|
+
appliedSource: image.getAttribute('src'),
|
|
99
|
+
appliedSrcset: image.getAttribute('srcset'),
|
|
100
|
+
appliedStyle: image.getAttribute('style'),
|
|
101
|
+
nonce: 0,
|
|
102
|
+
dispose() {}
|
|
103
|
+
};
|
|
104
|
+
const layout = () => {
|
|
105
|
+
const rect = image.getBoundingClientRect();
|
|
106
|
+
const previous = record.layout;
|
|
107
|
+
const shifted = record.status === 'loaded' && previous && (previous.width !== rect.width || previous.height !== rect.height);
|
|
108
|
+
(0, _imageEventStore.updateRecord)(record.id, {
|
|
109
|
+
layout: {
|
|
110
|
+
width: rect.width,
|
|
111
|
+
height: rect.height
|
|
112
|
+
},
|
|
113
|
+
layoutShifts: (record.layoutShifts ?? 0) + (shifted ? 1 : 0)
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
const loaded = () => {
|
|
117
|
+
const timings = performance.getEntriesByName(image.currentSrc || image.src);
|
|
118
|
+
const timing = timings[timings.length - 1];
|
|
119
|
+
(0, _imageEventStore.updateRecord)(record.id, {
|
|
120
|
+
status: 'loaded',
|
|
121
|
+
loadedAt: Date.now(),
|
|
122
|
+
intrinsic: {
|
|
123
|
+
width: image.naturalWidth,
|
|
124
|
+
height: image.naturalHeight
|
|
125
|
+
},
|
|
126
|
+
...(!(0, _overrides.getOverride)(record.id)?.source && (0, _overrides.getGlobalModes)().network === 'normal' ? {
|
|
127
|
+
uri: image.currentSrc || image.src
|
|
128
|
+
} : {}),
|
|
129
|
+
durationMs: timing?.duration,
|
|
130
|
+
bytesTotal: timing && timing.encodedBodySize > 0 ? timing.encodedBodySize : undefined,
|
|
131
|
+
cacheVerdict: timing && timing.transferSize > 0 ? 'none' : undefined,
|
|
132
|
+
cacheVerdictSource: timing ? 'event' : undefined
|
|
133
|
+
});
|
|
134
|
+
layout();
|
|
135
|
+
};
|
|
136
|
+
const failed = () => (0, _imageEventStore.updateRecord)(record.id, {
|
|
137
|
+
status: 'error',
|
|
138
|
+
erroredAt: Date.now(),
|
|
139
|
+
error: 'The browser could not load this image.'
|
|
140
|
+
});
|
|
141
|
+
image.addEventListener('load', loaded);
|
|
142
|
+
image.addEventListener('error', failed);
|
|
143
|
+
const observer = typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(layout);
|
|
144
|
+
observer?.observe(image);
|
|
145
|
+
item.dispose = () => {
|
|
146
|
+
observer?.disconnect();
|
|
147
|
+
image.removeEventListener('load', loaded);
|
|
148
|
+
image.removeEventListener('error', failed);
|
|
149
|
+
};
|
|
150
|
+
tracked.set(image, item);
|
|
151
|
+
layout();
|
|
152
|
+
(0, _imageEventStore.updateRecord)(record.id, {
|
|
153
|
+
status: 'loading',
|
|
154
|
+
startedAt: Date.now(),
|
|
155
|
+
loadCount: 1
|
|
156
|
+
});
|
|
157
|
+
if (image.complete) {
|
|
158
|
+
if (image.naturalWidth > 0) loaded();else failed();
|
|
159
|
+
}
|
|
160
|
+
apply(item);
|
|
161
|
+
}
|
|
162
|
+
function installImageCapture() {
|
|
163
|
+
const state = (0, _state.imagesState)();
|
|
164
|
+
if (typeof document === 'undefined' || state.captureDisabled || detach) return;
|
|
165
|
+
state.captureInstalled = true;
|
|
166
|
+
const scan = () => {
|
|
167
|
+
for (const [image, item] of tracked) if (!image.isConnected) {
|
|
168
|
+
item.dispose();
|
|
169
|
+
tracked.delete(image);
|
|
170
|
+
(0, _imageEventStore.updateRecord)(item.id, {
|
|
171
|
+
mounted: false
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
document.querySelectorAll('img').forEach(track);
|
|
175
|
+
};
|
|
176
|
+
const observer = new MutationObserver(changes => {
|
|
177
|
+
if ((0, _state.imagesState)().captureDisabled) {
|
|
178
|
+
stopBrowserImageCapture();
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
for (const change of changes) {
|
|
182
|
+
const image = change.target;
|
|
183
|
+
const item = tracked.get(image);
|
|
184
|
+
if (!item || change.type !== 'attributes') continue;
|
|
185
|
+
if (change.attributeName === 'src' && image.getAttribute('src') !== item.appliedSource || change.attributeName === 'srcset' && image.getAttribute('srcset') !== item.appliedSrcset) {
|
|
186
|
+
item.dispose();
|
|
187
|
+
tracked.delete(image);
|
|
188
|
+
(0, _imageEventStore.updateRecord)(item.id, {
|
|
189
|
+
mounted: false
|
|
190
|
+
});
|
|
191
|
+
} else if (change.attributeName === 'style' && image.getAttribute('style') !== item.appliedStyle) {
|
|
192
|
+
item.style = image.getAttribute('style');
|
|
193
|
+
apply(item);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
scan();
|
|
197
|
+
});
|
|
198
|
+
observer.observe(document.documentElement, {
|
|
199
|
+
childList: true,
|
|
200
|
+
subtree: true,
|
|
201
|
+
attributes: true,
|
|
202
|
+
attributeFilter: ['src', 'srcset', 'style', 'alt']
|
|
203
|
+
});
|
|
204
|
+
const actions = () => {
|
|
205
|
+
for (const item of tracked.values()) apply(item);
|
|
206
|
+
};
|
|
207
|
+
state.actionListeners.add(actions);
|
|
208
|
+
detach = () => {
|
|
209
|
+
observer.disconnect();
|
|
210
|
+
state.actionListeners.delete(actions);
|
|
211
|
+
for (const item of tracked.values()) {
|
|
212
|
+
item.dispose();
|
|
213
|
+
for (const [attribute, value, applied] of [['src', item.source, item.appliedSource], ['srcset', item.srcset, item.appliedSrcset], ['style', item.style, item.appliedStyle]]) {
|
|
214
|
+
if (item.image.getAttribute(attribute) !== applied) continue;
|
|
215
|
+
if (value === null) item.image.removeAttribute(attribute);else item.image.setAttribute(attribute, value);
|
|
216
|
+
}
|
|
217
|
+
(0, _imageEventStore.updateRecord)(item.id, {
|
|
218
|
+
mounted: false
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
tracked.clear();
|
|
222
|
+
state.captureInstalled = false;
|
|
223
|
+
};
|
|
224
|
+
scan();
|
|
225
|
+
}
|
|
226
|
+
function stopBrowserImageCapture() {
|
|
227
|
+
detach?.();
|
|
228
|
+
detach = undefined;
|
|
229
|
+
}
|
|
230
|
+
function startBrowserImageCapture() {
|
|
231
|
+
if (typeof document === 'undefined') return () => {};
|
|
232
|
+
if (leases++ === 0) installImageCapture();
|
|
233
|
+
let released = false;
|
|
234
|
+
return () => {
|
|
235
|
+
if (released) return;
|
|
236
|
+
released = true;
|
|
237
|
+
if (--leases === 0) stopBrowserImageCapture();
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
function getCaptureStatus() {
|
|
241
|
+
return (0, _state.imagesState)().mirrorCaptureStatus ?? {
|
|
242
|
+
installed: !!detach,
|
|
243
|
+
rnDecoratorActive: false,
|
|
244
|
+
rnDecoratorTooLate: false,
|
|
245
|
+
expoPatched: false,
|
|
246
|
+
expoAvailable: false,
|
|
247
|
+
browserObserverActive: !!detach
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=install.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_state","require","_imageEventStore","_overrides","tracked","Map","detach","leases","EMPTY_IMAGE","apply","item","record","getRecord","id","state","imagesState","override","getOverride","modes","getGlobalModes","source","network","sourceKind","next","type","uri","updateRecord","status","request","reloadRequests","get","reload","nonce","bust","test","URL","document","baseURI","href","url","searchParams","set","String","Date","now","image","removeAttribute","startedAt","loadCount","coldSource","coldURL","undefined","appliedSource","appliedSrcset","srcset","getAttribute","setAttribute","style","createElement","cssText","fit","extraProps","contentFit","resizeMode","objectFit","stretch","center","blank","opacity","key","value","Object","entries","css","replace","letter","toLowerCase","setProperty","includes","flashUntil","outline","appliedStyle","track","has","closest","currentSrc","src","createRecord","lib","startsWith","hasAltText","hasAttribute","dispose","layout","rect","getBoundingClientRect","previous","shifted","width","height","layoutShifts","loaded","timings","performance","getEntriesByName","timing","length","loadedAt","intrinsic","naturalWidth","naturalHeight","durationMs","duration","bytesTotal","encodedBodySize","cacheVerdict","transferSize","cacheVerdictSource","failed","erroredAt","error","addEventListener","observer","ResizeObserver","observe","disconnect","removeEventListener","complete","installImageCapture","captureDisabled","captureInstalled","scan","isConnected","delete","mounted","querySelectorAll","forEach","MutationObserver","changes","stopBrowserImageCapture","change","target","attributeName","documentElement","childList","subtree","attributes","attributeFilter","actions","values","actionListeners","add","attribute","applied","clear","startBrowserImageCapture","released","getCaptureStatus","mirrorCaptureStatus","installed","rnDecoratorActive","rnDecoratorTooLate","expoPatched","expoAvailable","browserObserverActive"],"sourceRoot":"../../../src","sources":["capture/install.web.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.installRnImageInterceptor = installRnImageInterceptor;
|
|
7
7
|
exports.rnCaptureStatus = rnCaptureStatus;
|
|
8
|
+
exports.useImageCapture = useImageCapture;
|
|
8
9
|
var React = _interopRequireWildcard(require("react"));
|
|
9
10
|
var _state = require("../state");
|
|
10
11
|
var _actions = require("./actions");
|
|
@@ -84,7 +85,10 @@ function installRnImageInterceptor() {
|
|
|
84
85
|
const injection = require("react-native/Libraries/Image/ImageInjection");
|
|
85
86
|
const setDecorator = injection.unstable_setImageComponentDecorator;
|
|
86
87
|
const registerAttached = injection.unstable_registerImageAttachedCallback;
|
|
87
|
-
|
|
88
|
+
|
|
89
|
+
// `register-early` (a pre-InitializeCore entry) may have registered the
|
|
90
|
+
// decorator already; registering again would replace it with an identical one.
|
|
91
|
+
if (typeof setDecorator === "function" && !s.decoratorRegistered) {
|
|
88
92
|
setDecorator(BaseImage => {
|
|
89
93
|
(0, _state.imagesState)().decoratorInvoked = true;
|
|
90
94
|
const CapturedImage = /*#__PURE__*/React.forwardRef(function BuoyCapturedImage(props, ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_interopRequireWildcard","require","_state","_actions","_overrides","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useImageCapture","props","trackerRef","useRef","current","ImageInstanceTracker","tracker","internal","isInternalImage","testID","syncSource","source","noteA11y","Boolean","alt","accessibilityLabel","useSyncExternalStore","subscribeActions","getRenderVersion","getRecordId","useEffect","undefined","unmount","reloadKey","recordId","wrapped","handlers","out","request","getReloadRequest","bust","patchSourceCache","applyOverrides","getReloadNonce","installRnImageInterceptor","s","imagesState","rnInstalled","injection","setDecorator","unstable_setImageComponentDecorator","registerAttached","unstable_registerImageAttachedCallback","BaseImage","decoratorInvoked","CapturedImage","forwardRef","BuoyCapturedImage","ref","instrumented","jsx","
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_state","_actions","_overrides","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useImageCapture","props","trackerRef","useRef","current","ImageInstanceTracker","tracker","internal","isInternalImage","testID","syncSource","source","noteA11y","Boolean","alt","accessibilityLabel","useSyncExternalStore","subscribeActions","getRenderVersion","getRecordId","useEffect","undefined","unmount","reloadKey","recordId","wrapped","handlers","out","request","getReloadRequest","bust","patchSourceCache","applyOverrides","getReloadNonce","installRnImageInterceptor","s","imagesState","rnInstalled","injection","setDecorator","unstable_setImageComponentDecorator","registerAttached","unstable_registerImageAttachedCallback","decoratorRegistered","BaseImage","decoratorInvoked","CapturedImage","forwardRef","BuoyCapturedImage","ref","instrumented","jsx","attachSeen","rnCaptureStatus","decoratorActive","tooLate"],"sourceRoot":"../../../src","sources":["capture/installRnImage.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.loadExpoImage = loadExpoImage;
|
|
7
|
+
exports.loadFileSystemModule = loadFileSystemModule;
|
|
8
|
+
exports.loadLegacyFileSystem = loadLegacyFileSystem;
|
|
9
|
+
function loadExpoImage() {
|
|
10
|
+
try {
|
|
11
|
+
return require('expo-image');
|
|
12
|
+
} catch {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function loadLegacyFileSystem() {
|
|
17
|
+
try {
|
|
18
|
+
return require('expo-file-system/legacy');
|
|
19
|
+
} catch {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function loadFileSystemModule() {
|
|
24
|
+
try {
|
|
25
|
+
return require('expo-file-system');
|
|
26
|
+
} catch {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=nativeImageModules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["loadExpoImage","require","loadLegacyFileSystem","loadFileSystemModule"],"sourceRoot":"../../../src","sources":["capture/nativeImageModules.ts"],"mappings":";;;;;;;;AAAO,SAASA,aAAaA,CAAA,EAAQ;EAAE,IAAI;IAAE,OAAOC,OAAO,CAAC,YAAY,CAAC;EAAE,CAAC,CAAC,MAAM;IAAE,OAAO,IAAI;EAAE;AAAE;AAC7F,SAASC,oBAAoBA,CAAA,EAAQ;EAAE,IAAI;IAAE,OAAOD,OAAO,CAAC,yBAAyB,CAAC;EAAE,CAAC,CAAC,MAAM;IAAE,OAAO,IAAI;EAAE;AAAE;AACjH,SAASE,oBAAoBA,CAAA,EAAQ;EAAE,IAAI;IAAE,OAAOF,OAAO,CAAC,kBAAkB,CAAC;EAAE,CAAC,CAAC,MAAM;IAAE,OAAO,IAAI;EAAE;AAAE","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.loadExpoImage = loadExpoImage;
|
|
7
|
+
exports.loadFileSystemModule = loadFileSystemModule;
|
|
8
|
+
exports.loadLegacyFileSystem = loadLegacyFileSystem;
|
|
9
|
+
function loadExpoImage() {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
function loadLegacyFileSystem() {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
function loadFileSystemModule() {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=nativeImageModules.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["loadExpoImage","loadLegacyFileSystem","loadFileSystemModule"],"sourceRoot":"../../../src","sources":["capture/nativeImageModules.web.ts"],"mappings":";;;;;;;;AAAO,SAASA,aAAaA,CAAA,EAAS;EAAE,OAAO,IAAI;AAAE;AAC9C,SAASC,oBAAoBA,CAAA,EAAS;EAAE,OAAO,IAAI;AAAE;AACrD,SAASC,oBAAoBA,CAAA,EAAS;EAAE,OAAO,IAAI;AAAE","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.installRnImageDecoratorEarly = installRnImageDecoratorEarly;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _state = require("../state");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
|
+
/**
|
|
12
|
+
* Minimal RN <Image> decorator install, safe to run before React Native's
|
|
13
|
+
* InitializeCore.
|
|
14
|
+
*
|
|
15
|
+
* RN latches the decorator once, when `Image.ios.js` / `Image.android.js` is
|
|
16
|
+
* first evaluated. In development builds that happens during InitializeCore:
|
|
17
|
+
* AppRegistry pulls in the LogBox inspector, which imports Image. So even the
|
|
18
|
+
* first import of the app's entry file (`@buoy-gg/images/register`) is too
|
|
19
|
+
* late there, and the tool reports "missed the module-load race".
|
|
20
|
+
*
|
|
21
|
+
* `register` itself can't run before InitializeCore, because its imports touch
|
|
22
|
+
* globals InitializeCore installs (FormData, for one). This module imports only
|
|
23
|
+
* React, the ImageInjection hook and the globalThis state, and loads the
|
|
24
|
+
* capture hook lazily on the first render, by which time everything exists.
|
|
25
|
+
* Run it as a Metro pre-main module ahead of InitializeCore (see README).
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
function installRnImageDecoratorEarly() {
|
|
29
|
+
const s = (0, _state.imagesState)();
|
|
30
|
+
if (s.decoratorRegistered) return;
|
|
31
|
+
try {
|
|
32
|
+
const injection = require("react-native/Libraries/Image/ImageInjection");
|
|
33
|
+
const setDecorator = injection.unstable_setImageComponentDecorator;
|
|
34
|
+
if (typeof setDecorator !== "function") return;
|
|
35
|
+
setDecorator(BaseImage => {
|
|
36
|
+
(0, _state.imagesState)().decoratorInvoked = true;
|
|
37
|
+
return /*#__PURE__*/React.forwardRef(function BuoyCapturedImage(props, ref) {
|
|
38
|
+
// Same module every render, so the hook order stays stable.
|
|
39
|
+
const useImageCapture = require("./installRnImage").useImageCapture;
|
|
40
|
+
const {
|
|
41
|
+
props: instrumented,
|
|
42
|
+
reloadKey
|
|
43
|
+
} = useImageCapture(props);
|
|
44
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(BaseImage, {
|
|
45
|
+
...instrumented,
|
|
46
|
+
ref: ref
|
|
47
|
+
}, `buoy-r${reloadKey}`);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
s.decoratorRegistered = true;
|
|
51
|
+
} catch {
|
|
52
|
+
// Internal RN path moved: the regular install reports the decorator inactive.
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=rnDecoratorEarly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_state","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","installRnImageDecoratorEarly","s","imagesState","decoratorRegistered","injection","setDecorator","unstable_setImageComponentDecorator","BaseImage","decoratorInvoked","forwardRef","BuoyCapturedImage","props","ref","useImageCapture","instrumented","reloadKey","jsx"],"sourceRoot":"../../../src","sources":["capture/rnDecoratorEarly.tsx"],"mappings":";;;;;;AAiBA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAAuC,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAlBvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUO,SAASkB,4BAA4BA,CAAA,EAAS;EACnD,MAAMC,CAAC,GAAG,IAAAC,kBAAW,EAAC,CAAC;EACvB,IAAID,CAAC,CAACE,mBAAmB,EAAE;EAC3B,IAAI;IACF,MAAMC,SAAS,GAAG1B,OAAO,CAAC,6CAA6C,CAAC;IACxE,MAAM2B,YAAgD,GACpDD,SAAS,CAACE,mCAAmC;IAC/C,IAAI,OAAOD,YAAY,KAAK,UAAU,EAAE;IACxCA,YAAY,CAAEE,SAAuD,IAAK;MACxE,IAAAL,kBAAW,EAAC,CAAC,CAACM,gBAAgB,GAAG,IAAI;MACrC,oBAAOhC,KAAK,CAACiC,UAAU,CACrB,SAASC,iBAAiBA,CAACC,KAAK,EAAEC,GAAG,EAAE;QACrC;QACA,MAAMC,eAAwB,GAAGnC,OAAO,CAAC,kBAAkB,CAAC,CAACmC,eAAe;QAC5E,MAAM;UAAEF,KAAK,EAAEG,YAAY;UAAEC;QAAU,CAAC,GAAGF,eAAe,CAACF,KAAK,CAAC;QACjE,oBAAO,IAAA/B,WAAA,CAAAoC,GAAA,EAACT,SAAS;UAAA,GAAgCO,YAAY;UAAEF,GAAG,EAAEA;QAAI,GAAjD,SAASG,SAAS,EAAiC,CAAC;MAC7E,CACF,CAAC;IACH,CAAC,CAAC;IACFd,CAAC,CAACE,mBAAmB,GAAG,IAAI;EAC9B,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.proveSavings = proveSavings;
|
|
7
|
+
var _remote = require("../remote");
|
|
8
|
+
var _imageEventStore = require("../store/imageEventStore");
|
|
9
|
+
const urls = new Map();
|
|
10
|
+
async function proveSavings(record) {
|
|
11
|
+
const remote = (0, _remote.remoteImagesDispatch)();
|
|
12
|
+
if (remote) return await remote('proveSavings', {
|
|
13
|
+
id: record.id
|
|
14
|
+
});
|
|
15
|
+
const dimensions = (0, _imageEventStore.neededPixels)(record);
|
|
16
|
+
if (!dimensions) return {
|
|
17
|
+
ok: false,
|
|
18
|
+
message: 'Measure the displayed image before optimizing it.'
|
|
19
|
+
};
|
|
20
|
+
try {
|
|
21
|
+
const response = await fetch(record.uri);
|
|
22
|
+
if (!response.ok) throw new Error(`Image download returned HTTP ${response.status}.`);
|
|
23
|
+
const original = await response.blob();
|
|
24
|
+
const bitmap = await createImageBitmap(original);
|
|
25
|
+
const canvas = document.createElement('canvas');
|
|
26
|
+
canvas.width = Math.max(1, Math.min(bitmap.width, Math.round(dimensions.width)));
|
|
27
|
+
canvas.height = Math.max(1, Math.min(bitmap.height, Math.round(dimensions.height)));
|
|
28
|
+
const context = canvas.getContext('2d');
|
|
29
|
+
if (!context) {
|
|
30
|
+
bitmap.close();
|
|
31
|
+
throw new Error('Canvas is unavailable.');
|
|
32
|
+
}
|
|
33
|
+
context.drawImage(bitmap, 0, 0, canvas.width, canvas.height);
|
|
34
|
+
bitmap.close();
|
|
35
|
+
const optimized = await new Promise((resolve, reject) => canvas.toBlob(blob => blob ? resolve(blob) : reject(new Error('Image encoding failed.')), 'image/webp', 0.8));
|
|
36
|
+
if (optimized.type !== 'image/webp') return {
|
|
37
|
+
ok: false,
|
|
38
|
+
message: 'This browser cannot encode WebP images.'
|
|
39
|
+
};
|
|
40
|
+
const previous = urls.get(record.id);
|
|
41
|
+
if (previous) URL.revokeObjectURL(previous);
|
|
42
|
+
const uri = URL.createObjectURL(optimized);
|
|
43
|
+
urls.set(record.id, uri);
|
|
44
|
+
while (urls.size > 30) {
|
|
45
|
+
const [id, value] = urls.entries().next().value;
|
|
46
|
+
URL.revokeObjectURL(value);
|
|
47
|
+
urls.delete(id);
|
|
48
|
+
}
|
|
49
|
+
const savedBytes = original.size - optimized.size;
|
|
50
|
+
return {
|
|
51
|
+
ok: true,
|
|
52
|
+
message: 'WebP preview created.',
|
|
53
|
+
originalBytes: original.size,
|
|
54
|
+
originalBytesSource: 'download',
|
|
55
|
+
optimizedBytes: optimized.size,
|
|
56
|
+
optimizedUri: uri,
|
|
57
|
+
optimizedDims: {
|
|
58
|
+
width: canvas.width,
|
|
59
|
+
height: canvas.height
|
|
60
|
+
},
|
|
61
|
+
savedBytes,
|
|
62
|
+
savedPct: original.size ? savedBytes / original.size * 100 : 0
|
|
63
|
+
};
|
|
64
|
+
} catch (error) {
|
|
65
|
+
return {
|
|
66
|
+
ok: false,
|
|
67
|
+
message: `Image optimization failed: ${error instanceof Error ? error.message : String(error)}`
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=savings.web.js.map
|