@buoy-gg/assets 7.0.36 → 7.0.38
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 +41 -12
- package/lib/commonjs/capture/expo.js +1 -46
- package/lib/commonjs/capture/install.js +1 -78
- package/lib/commonjs/capture/isBuoyAsset.js +1 -0
- package/lib/commonjs/capture/measure.js +1 -186
- package/lib/commonjs/capture/metroGraph.js +1 -148
- package/lib/commonjs/capture/registry.js +1 -127
- package/lib/commonjs/components/AssetDetail.js +1 -214
- package/lib/commonjs/components/AssetImage.js +1 -0
- package/lib/commonjs/components/AssetRow.js +1 -233
- package/lib/commonjs/components/AssetsFilterBar.js +1 -96
- package/lib/commonjs/components/AssetsHeader.js +1 -72
- package/lib/commonjs/components/AssetsIcon.js +1 -19
- package/lib/commonjs/components/AssetsListControls.js +1 -96
- package/lib/commonjs/components/AssetsModal.js +1 -347
- package/lib/commonjs/components/ScanNotice.js +1 -0
- package/lib/commonjs/components/optionalExpoImage.js +1 -0
- package/lib/commonjs/components/optionalExpoImage.web.js +1 -0
- package/lib/commonjs/export.js +1 -62
- package/lib/commonjs/format.js +1 -59
- package/lib/commonjs/hooks/useAssetRecords.js +1 -22
- package/lib/commonjs/hooks/useAssetScanStatus.js +1 -0
- package/lib/commonjs/index.js +1 -313
- package/lib/commonjs/preset.js +1 -39
- package/lib/commonjs/remote.js +1 -65
- package/lib/commonjs/state.js +1 -51
- package/lib/commonjs/store/assetStore.js +1 -241
- package/lib/commonjs/store/baseline.js +1 -173
- package/lib/commonjs/store/insights.js +1 -120
- package/lib/commonjs/sync/assetsSyncAdapter.js +1 -157
- package/lib/commonjs/types.js +1 -2
- package/lib/commonjs/utils/deviceScale.js +1 -50
- package/lib/commonjs/utils/testIDs.js +1 -114
- package/lib/module/capture/expo.js +1 -41
- package/lib/module/capture/install.js +1 -72
- package/lib/module/capture/isBuoyAsset.js +1 -0
- package/lib/module/capture/measure.js +1 -179
- package/lib/module/capture/metroGraph.js +1 -141
- package/lib/module/capture/registry.js +1 -120
- package/lib/module/components/AssetDetail.js +1 -210
- package/lib/module/components/AssetImage.js +1 -0
- package/lib/module/components/AssetRow.js +1 -229
- package/lib/module/components/AssetsFilterBar.js +1 -92
- package/lib/module/components/AssetsHeader.js +1 -68
- package/lib/module/components/AssetsIcon.js +1 -12
- package/lib/module/components/AssetsListControls.js +1 -92
- package/lib/module/components/AssetsModal.js +1 -342
- package/lib/module/components/ScanNotice.js +1 -0
- package/lib/module/components/optionalExpoImage.js +1 -0
- package/lib/module/components/optionalExpoImage.web.js +1 -0
- package/lib/module/export.js +1 -57
- package/lib/module/format.js +1 -51
- package/lib/module/hooks/useAssetRecords.js +1 -18
- package/lib/module/hooks/useAssetScanStatus.js +1 -0
- package/lib/module/index.js +1 -63
- package/lib/module/preset.js +1 -35
- package/lib/module/remote.js +1 -58
- package/lib/module/state.js +1 -47
- package/lib/module/store/assetStore.js +1 -226
- package/lib/module/store/baseline.js +1 -165
- package/lib/module/store/insights.js +1 -116
- package/lib/module/sync/assetsSyncAdapter.js +1 -153
- package/lib/module/types.js +1 -2
- package/lib/module/utils/deviceScale.js +1 -46
- package/lib/module/utils/testIDs.js +1 -103
- package/lib/typescript/capture/isBuoyAsset.d.ts +9 -0
- package/lib/typescript/capture/registry.d.ts +1 -1
- package/lib/typescript/components/AssetDetail.d.ts +2 -2
- package/lib/typescript/components/AssetImage.d.ts +9 -0
- package/lib/typescript/components/AssetsFilterBar.d.ts +3 -2
- package/lib/typescript/components/AssetsHeader.d.ts +2 -1
- package/lib/typescript/components/AssetsListControls.d.ts +2 -9
- package/lib/typescript/components/ScanNotice.d.ts +7 -0
- package/lib/typescript/components/optionalExpoImage.d.ts +13 -0
- package/lib/typescript/components/optionalExpoImage.web.d.ts +3 -0
- package/lib/typescript/hooks/useAssetScanStatus.d.ts +6 -0
- package/lib/typescript/state.d.ts +2 -0
- package/lib/typescript/store/assetStore.d.ts +3 -1
- package/lib/typescript/types.d.ts +3 -0
- package/lib/typescript/utils/testIDs.d.ts +2 -5
- package/package.json +7 -3
- package/lib/commonjs/capture/expo.js.map +0 -1
- package/lib/commonjs/capture/install.js.map +0 -1
- package/lib/commonjs/capture/measure.js.map +0 -1
- package/lib/commonjs/capture/metroGraph.js.map +0 -1
- package/lib/commonjs/capture/registry.js.map +0 -1
- package/lib/commonjs/components/AssetDetail.js.map +0 -1
- package/lib/commonjs/components/AssetRow.js.map +0 -1
- package/lib/commonjs/components/AssetsFilterBar.js.map +0 -1
- package/lib/commonjs/components/AssetsHeader.js.map +0 -1
- package/lib/commonjs/components/AssetsIcon.js.map +0 -1
- package/lib/commonjs/components/AssetsListControls.js.map +0 -1
- package/lib/commonjs/components/AssetsModal.js.map +0 -1
- package/lib/commonjs/components/BaselineBar.js +0 -115
- package/lib/commonjs/components/BaselineBar.js.map +0 -1
- package/lib/commonjs/export.js.map +0 -1
- package/lib/commonjs/format.js.map +0 -1
- package/lib/commonjs/hooks/useAssetRecords.js.map +0 -1
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/preset.js.map +0 -1
- package/lib/commonjs/remote.js.map +0 -1
- package/lib/commonjs/state.js.map +0 -1
- package/lib/commonjs/store/assetStore.js.map +0 -1
- package/lib/commonjs/store/baseline.js.map +0 -1
- package/lib/commonjs/store/insights.js.map +0 -1
- package/lib/commonjs/sync/assetsSyncAdapter.js.map +0 -1
- package/lib/commonjs/types.js.map +0 -1
- package/lib/commonjs/utils/deviceScale.js.map +0 -1
- package/lib/commonjs/utils/testIDs.js.map +0 -1
- package/lib/module/capture/expo.js.map +0 -1
- package/lib/module/capture/install.js.map +0 -1
- package/lib/module/capture/measure.js.map +0 -1
- package/lib/module/capture/metroGraph.js.map +0 -1
- package/lib/module/capture/registry.js.map +0 -1
- package/lib/module/components/AssetDetail.js.map +0 -1
- package/lib/module/components/AssetRow.js.map +0 -1
- package/lib/module/components/AssetsFilterBar.js.map +0 -1
- package/lib/module/components/AssetsHeader.js.map +0 -1
- package/lib/module/components/AssetsIcon.js.map +0 -1
- package/lib/module/components/AssetsListControls.js.map +0 -1
- package/lib/module/components/AssetsModal.js.map +0 -1
- package/lib/module/components/BaselineBar.js +0 -111
- package/lib/module/components/BaselineBar.js.map +0 -1
- package/lib/module/export.js.map +0 -1
- package/lib/module/format.js.map +0 -1
- package/lib/module/hooks/useAssetRecords.js.map +0 -1
- package/lib/module/index.js.map +0 -1
- package/lib/module/preset.js.map +0 -1
- package/lib/module/remote.js.map +0 -1
- package/lib/module/state.js.map +0 -1
- package/lib/module/store/assetStore.js.map +0 -1
- package/lib/module/store/baseline.js.map +0 -1
- package/lib/module/store/insights.js.map +0 -1
- package/lib/module/sync/assetsSyncAdapter.js.map +0 -1
- package/lib/module/types.js.map +0 -1
- package/lib/module/utils/deviceScale.js.map +0 -1
- package/lib/module/utils/testIDs.js.map +0 -1
- package/lib/typescript/capture/expo.d.ts.map +0 -1
- package/lib/typescript/capture/install.d.ts.map +0 -1
- package/lib/typescript/capture/measure.d.ts.map +0 -1
- package/lib/typescript/capture/metroGraph.d.ts.map +0 -1
- package/lib/typescript/capture/registry.d.ts.map +0 -1
- package/lib/typescript/components/AssetDetail.d.ts.map +0 -1
- package/lib/typescript/components/AssetRow.d.ts.map +0 -1
- package/lib/typescript/components/AssetsFilterBar.d.ts.map +0 -1
- package/lib/typescript/components/AssetsHeader.d.ts.map +0 -1
- package/lib/typescript/components/AssetsIcon.d.ts.map +0 -1
- package/lib/typescript/components/AssetsListControls.d.ts.map +0 -1
- package/lib/typescript/components/AssetsModal.d.ts.map +0 -1
- package/lib/typescript/components/BaselineBar.d.ts +0 -13
- package/lib/typescript/components/BaselineBar.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/useAssetRecords.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/remote.d.ts.map +0 -1
- package/lib/typescript/state.d.ts.map +0 -1
- package/lib/typescript/store/assetStore.d.ts.map +0 -1
- package/lib/typescript/store/baseline.d.ts.map +0 -1
- package/lib/typescript/store/insights.d.ts.map +0 -1
- package/lib/typescript/sync/assetsSyncAdapter.d.ts.map +0 -1
- package/lib/typescript/types.d.ts.map +0 -1
- package/lib/typescript/utils/deviceScale.d.ts.map +0 -1
- package/lib/typescript/utils/testIDs.d.ts.map +0 -1
|
@@ -1,153 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Sync adapter for the Assets tool, consumed by @buoy-gg/external-sync's
|
|
5
|
-
* `useExternalSync` (structurally matches its ToolSyncAdapter interface so
|
|
6
|
-
* this package doesn't need a dependency on it — same pattern as images).
|
|
7
|
-
* Exposes the asset inventory to the desktop dashboard and the MCP server.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { getScanStatus, rescan } from "../capture/install";
|
|
11
|
-
import { measureSizes } from "../capture/measure";
|
|
12
|
-
import { clearRecords, computeStats, estDecodedBytes, getRecord, getSnapshot, subscribe } from "../store/assetStore";
|
|
13
|
-
import { clearBaseline, getDiff, saveBaseline } from "../store/baseline";
|
|
14
|
-
import { computeInsights } from "../store/insights";
|
|
15
|
-
const KINDS = ["image", "font", "video", "audio", "data", "other"];
|
|
16
|
-
function toWire(record) {
|
|
17
|
-
return {
|
|
18
|
-
id: record.id,
|
|
19
|
-
key: record.key,
|
|
20
|
-
registryId: record.registryId ?? null,
|
|
21
|
-
name: record.name,
|
|
22
|
-
type: record.type,
|
|
23
|
-
kind: record.kind,
|
|
24
|
-
hash: record.hash ?? null,
|
|
25
|
-
location: record.httpServerLocation ?? null,
|
|
26
|
-
width: record.width ?? null,
|
|
27
|
-
height: record.height ?? null,
|
|
28
|
-
scales: record.scales,
|
|
29
|
-
uri: record.resolvedUri ?? null,
|
|
30
|
-
loaded: record.loaded,
|
|
31
|
-
sizeBytes: record.sizeSource === "measured" ? record.sizeBytes ?? null : estDecodedBytes(record) || null,
|
|
32
|
-
sizeSource: record.sizeSource ?? null
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
function requireRecord(params) {
|
|
36
|
-
const id = params?.id;
|
|
37
|
-
if (typeof id !== "number") throw new Error("Missing numeric `id` param");
|
|
38
|
-
const record = getRecord(id);
|
|
39
|
-
if (!record) {
|
|
40
|
-
throw new Error(`Asset record ${id} not found — re-run the list action for current ids.`);
|
|
41
|
-
}
|
|
42
|
-
return record;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/** Largest-first is the useful default for an inventory. */
|
|
46
|
-
function bySizeDesc(a, b) {
|
|
47
|
-
return (b.sizeBytes ?? estDecodedBytes(b)) - (a.sizeBytes ?? estDecodedBytes(a));
|
|
48
|
-
}
|
|
49
|
-
function overview() {
|
|
50
|
-
const snapshot = getSnapshot();
|
|
51
|
-
return {
|
|
52
|
-
stats: computeStats(snapshot),
|
|
53
|
-
scanStatus: getScanStatus(),
|
|
54
|
-
insights: computeInsights(snapshot),
|
|
55
|
-
diff: getDiff(),
|
|
56
|
-
records: [...snapshot].sort(bySizeDesc)
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
export const assetsSyncAdapter = {
|
|
60
|
-
version: 1,
|
|
61
|
-
getSnapshot: () => {
|
|
62
|
-
const {
|
|
63
|
-
records,
|
|
64
|
-
...rest
|
|
65
|
-
} = overview();
|
|
66
|
-
return {
|
|
67
|
-
...rest,
|
|
68
|
-
records: records.slice(0, 200).map(toWire)
|
|
69
|
-
};
|
|
70
|
-
},
|
|
71
|
-
subscribe: onChange => subscribe(onChange),
|
|
72
|
-
actions: {
|
|
73
|
-
/** List assets, largest first. Params: { limit?, kind?, loadedOnly? }. */
|
|
74
|
-
list: params => {
|
|
75
|
-
const p = params ?? {};
|
|
76
|
-
const limit = Math.min(Math.max(p.limit ?? 50, 1), 500);
|
|
77
|
-
const {
|
|
78
|
-
records,
|
|
79
|
-
...rest
|
|
80
|
-
} = overview();
|
|
81
|
-
let filtered = records;
|
|
82
|
-
if (p.kind) {
|
|
83
|
-
if (!KINDS.includes(p.kind)) {
|
|
84
|
-
throw new Error(`kind must be one of: ${KINDS.join(", ")}`);
|
|
85
|
-
}
|
|
86
|
-
filtered = filtered.filter(r => r.kind === p.kind);
|
|
87
|
-
}
|
|
88
|
-
if (p.loadedOnly) filtered = filtered.filter(r => r.loaded);
|
|
89
|
-
return {
|
|
90
|
-
...rest,
|
|
91
|
-
total: filtered.length,
|
|
92
|
-
records: filtered.slice(0, limit).map(toWire)
|
|
93
|
-
};
|
|
94
|
-
},
|
|
95
|
-
/** Full detail for one asset. Params: { id }. */
|
|
96
|
-
getDetail: params => {
|
|
97
|
-
const record = requireRecord(params);
|
|
98
|
-
return {
|
|
99
|
-
...toWire(record),
|
|
100
|
-
origin: record.origin,
|
|
101
|
-
fileSystemLocation: record.fileSystemLocation ?? null,
|
|
102
|
-
files: record.files ?? null,
|
|
103
|
-
sizesByScale: record.sizesByScale ?? null,
|
|
104
|
-
estDecodedBytes: estDecodedBytes(record) || null
|
|
105
|
-
};
|
|
106
|
-
},
|
|
107
|
-
/** Re-walk the registry, merge the Metro graph, refresh fonts, measure sizes. */
|
|
108
|
-
rescan: async () => {
|
|
109
|
-
const status = await rescan();
|
|
110
|
-
return {
|
|
111
|
-
ok: true,
|
|
112
|
-
scanStatus: status
|
|
113
|
-
};
|
|
114
|
-
},
|
|
115
|
-
/** (Re-)measure byte sizes from the dev server. */
|
|
116
|
-
measureSizes: async () => {
|
|
117
|
-
const result = await measureSizes();
|
|
118
|
-
return {
|
|
119
|
-
ok: result.measured > 0,
|
|
120
|
-
...result
|
|
121
|
-
};
|
|
122
|
-
},
|
|
123
|
-
/** Persist the current inventory as the comparison baseline. */
|
|
124
|
-
saveBaseline: async () => {
|
|
125
|
-
const baseline = await saveBaseline();
|
|
126
|
-
return {
|
|
127
|
-
ok: true,
|
|
128
|
-
savedAt: baseline.savedAt,
|
|
129
|
-
assets: Object.keys(baseline.entries).length
|
|
130
|
-
};
|
|
131
|
-
},
|
|
132
|
-
/** Drop the saved baseline. */
|
|
133
|
-
clearBaseline: async () => {
|
|
134
|
-
await clearBaseline();
|
|
135
|
-
return {
|
|
136
|
-
ok: true,
|
|
137
|
-
message: "Baseline cleared"
|
|
138
|
-
};
|
|
139
|
-
},
|
|
140
|
-
/** Change vs the saved baseline (null when no baseline exists). */
|
|
141
|
-
getDiff: () => getDiff(),
|
|
142
|
-
/** Wipe the store (next rescan rebuilds it). */
|
|
143
|
-
clearRecords: () => {
|
|
144
|
-
clearRecords();
|
|
145
|
-
return {
|
|
146
|
-
ok: true,
|
|
147
|
-
message: "Inventory cleared — rescan to rebuild"
|
|
148
|
-
};
|
|
149
|
-
},
|
|
150
|
-
getScanStatus: () => getScanStatus()
|
|
151
|
-
}
|
|
152
|
-
};
|
|
153
|
-
//# sourceMappingURL=assetsSyncAdapter.js.map
|
|
1
|
+
"use strict";import{getScanStatus,rescan}from"../capture/install";import{measureSizes}from"../capture/measure";import{clearRecords,computeStats,estDecodedBytes,getRecord,getSnapshot,subscribe}from"../store/assetStore";import{clearBaseline,getDiff,saveBaseline}from"../store/baseline";import{computeInsights}from"../store/insights";const KINDS=["image","font","video","audio","data","other"];function toWire(e){return{id:e.id,key:e.key,registryId:e.registryId??null,name:e.name,type:e.type,kind:e.kind,hash:e.hash??null,location:e.httpServerLocation??null,width:e.width??null,height:e.height??null,scales:e.scales,uri:e.resolvedUri??null,loaded:e.loaded,sizeBytes:"measured"===e.sizeSource?e.sizeBytes??null:estDecodedBytes(e)||null,sizeSource:e.sizeSource??null}}function requireRecord(e){const t=e?.id;if("number"!=typeof t)throw new Error("Missing numeric `id` param");const s=getRecord(t);if(!s)throw new Error(`Asset record ${t} not found — re-run the list action for current ids.`);return s}function bySizeDesc(e,t){return(t.sizeBytes??estDecodedBytes(t))-(e.sizeBytes??estDecodedBytes(e))}function overview(){const e=getSnapshot();return{stats:computeStats(e),scanStatus:getScanStatus(),insights:computeInsights(e),diff:getDiff(),records:[...e].sort(bySizeDesc)}}export const assetsSyncAdapter={version:1,getSnapshot:()=>{const{records:e,...t}=overview();return{...t,records:e.slice(0,200).map(toWire)}},subscribe:e=>subscribe(e),actions:{list:e=>{const t=e??{},s=Math.min(Math.max(t.limit??50,1),500),{records:r,...i}=overview();let n=r;if(t.kind){if(!KINDS.includes(t.kind))throw new Error(`kind must be one of: ${KINDS.join(", ")}`);n=n.filter(e=>e.kind===t.kind)}return t.loadedOnly&&(n=n.filter(e=>e.loaded)),{...i,total:n.length,records:n.slice(0,s).map(toWire)}},getDetail:e=>{const t=requireRecord(e);return{...toWire(t),origin:t.origin,fileSystemLocation:t.fileSystemLocation??null,files:t.files??null,sizesByScale:t.sizesByScale??null,estDecodedBytes:estDecodedBytes(t)||null}},rescan:async()=>({ok:!0,scanStatus:await rescan()}),measureSizes:async()=>{const e=await measureSizes();return{ok:e.measured>0,...e}},saveBaseline:async()=>{const e=await saveBaseline();return{ok:!0,savedAt:e.savedAt,assets:Object.keys(e.entries).length}},clearBaseline:async()=>(await clearBaseline(),{ok:!0,message:"Baseline cleared"}),getDiff:()=>getDiff(),clearRecords:()=>(clearRecords(),{ok:!0,message:"Inventory cleared — rescan to rebuild"}),getScanStatus:()=>getScanStatus()}};
|
package/lib/module/types.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//# sourceMappingURL=types.js.map
|
|
1
|
+
"use strict";
|
|
@@ -1,46 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Which scale variant this device would actually use.
|
|
5
|
-
*
|
|
6
|
-
* Shared by the decoded-memory estimate and the scale-gap insight so the two
|
|
7
|
-
* can't disagree about the same asset — they were written apart and did.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { assetsState } from "../state";
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* PixelRatio, or the DEVICE's when this store is a dashboard mirror.
|
|
14
|
-
*
|
|
15
|
-
* A desktop dashboard renders another machine's inventory, and its own
|
|
16
|
-
* PixelRatio has nothing to do with which variant the phone will pick.
|
|
17
|
-
*/
|
|
18
|
-
export function effectivePixelRatio() {
|
|
19
|
-
const mirror = assetsState().mirrorPixelRatio;
|
|
20
|
-
if (mirror != null) return mirror;
|
|
21
|
-
try {
|
|
22
|
-
return require("react-native").PixelRatio.get();
|
|
23
|
-
} catch {
|
|
24
|
-
return 2;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* The variant React Native would resolve, by AssetSourceResolver's rule: the
|
|
30
|
-
* smallest scale that covers the device, or the largest available when none
|
|
31
|
-
* does.
|
|
32
|
-
*
|
|
33
|
-
* Not simply "the biggest one shipped". An asset with @1x…@4x variants on a
|
|
34
|
-
* @3x phone decodes at 3, and calling it 4 overstates its memory by 78% —
|
|
35
|
-
* on exactly the never-loaded assets this tool exists to point at, since a
|
|
36
|
-
* loaded one carries the scale RN already picked.
|
|
37
|
-
*/
|
|
38
|
-
export function pickScale(scales, deviceScale) {
|
|
39
|
-
if (!scales.length) return 1;
|
|
40
|
-
const ordered = [...scales].sort((a, b) => a - b);
|
|
41
|
-
for (const scale of ordered) {
|
|
42
|
-
if (scale >= deviceScale) return scale;
|
|
43
|
-
}
|
|
44
|
-
return ordered[ordered.length - 1];
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=deviceScale.js.map
|
|
1
|
+
"use strict";import{assetsState}from"../state";export function effectivePixelRatio(){const t=assetsState().mirrorPixelRatio;if(null!=t)return t;try{return require("react-native").PixelRatio.get()}catch{return 2}}export function pickScale(t,e){if(!t.length)return 1;const r=[...t].sort((t,e)=>t-e);for(const t of r)if(t>=e)return t;return r[r.length-1]}
|
|
@@ -1,103 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Automation handles for the Assets tool.
|
|
5
|
-
*
|
|
6
|
-
* Every handle the tool renders is built here rather than inlined at the call
|
|
7
|
-
* site, for the same reason the highlight tool does it: the ids for rows,
|
|
8
|
-
* badges, filter chips and detail fields are DERIVED from data, and a suite
|
|
9
|
-
* that reimplements the derivation is a suite that can drift from the tool
|
|
10
|
-
* without either side failing. `detox-e2e/assets/fixture.js` mirrors these
|
|
11
|
-
* rules in CommonJS (the tests can't import TypeScript) and asserts the two
|
|
12
|
-
* still agree before any flow trusts a handle.
|
|
13
|
-
*
|
|
14
|
-
* Naming: `buoy-assets-<area>[-<detail>]`, one prefix for the whole tool.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Lowercase, hyphen-joined, never empty.
|
|
19
|
-
*
|
|
20
|
-
* Shared by rows, badges, filter chips and detail fields so one asset's row
|
|
21
|
-
* handle and its detail handles are slugged the same way — `back-icon.png`
|
|
22
|
-
* becomes `back-icon-png` everywhere it appears.
|
|
23
|
-
*/
|
|
24
|
-
export function assetSlug(value) {
|
|
25
|
-
return String(value).toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") || "unknown";
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* One inventory row, addressed by filename rather than by store id.
|
|
30
|
-
*
|
|
31
|
-
* The store's numeric ids are assigned in first-sighting order and are NOT
|
|
32
|
-
* stable: clearing the inventory and rescanning renumbers everything, and the
|
|
33
|
-
* order the registry walk and the Metro graph merge in depends on what the app
|
|
34
|
-
* has evaluated so far. A handle built from those makes a test that passes
|
|
35
|
-
* only on the run that recorded it.
|
|
36
|
-
*
|
|
37
|
-
* The tradeoff is that two assets with the same filename in different
|
|
38
|
-
* directories collide. That's a real ambiguity rather than a hidden one —
|
|
39
|
-
* Detox reports it as "multiple elements matched", which names the problem —
|
|
40
|
-
* and it's the same tradeoff the row itself makes, since the row shows the
|
|
41
|
-
* filename and not the path.
|
|
42
|
-
*/
|
|
43
|
-
export function assetRowTestID(name, type) {
|
|
44
|
-
return `buoy-assets-row-${assetSlug(`${name}.${type}`)}`;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/** A finding badge inside a row: `…-badge-low-res`, `…-badge-dup`. */
|
|
48
|
-
export function assetBadgeTestID(name, type, label) {
|
|
49
|
-
return `${assetRowTestID(name, type)}-badge-${assetSlug(label)}`;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/** A kind/status filter chip: `buoy-assets-filter-font`, `…-filter-unused`. */
|
|
53
|
-
export function assetFilterTestID(filter) {
|
|
54
|
-
return `buoy-assets-filter-${assetSlug(filter)}`;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/** One label/value pair in the detail view: `buoy-assets-detail-row-hash`. */
|
|
58
|
-
export function assetDetailRowTestID(label) {
|
|
59
|
-
return `buoy-assets-detail-row-${assetSlug(label)}`;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/** A loaded font-family chip: `buoy-assets-font-ionicons`. */
|
|
63
|
-
export function assetFontChipTestID(family) {
|
|
64
|
-
return `buoy-assets-font-${assetSlug(family)}`;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/** Fixed handles — everything that isn't derived from a record. */
|
|
68
|
-
export const ASSETS_TEST_IDS = {
|
|
69
|
-
// header
|
|
70
|
-
title: "buoy-assets-title",
|
|
71
|
-
copy: "buoy-assets-copy",
|
|
72
|
-
clear: "buoy-assets-clear",
|
|
73
|
-
// list chrome
|
|
74
|
-
list: "buoy-assets-list",
|
|
75
|
-
search: "buoy-assets-search",
|
|
76
|
-
sort: "buoy-assets-sort",
|
|
77
|
-
saveBaseline: "buoy-assets-save-baseline",
|
|
78
|
-
filterBar: "buoy-assets-filter-bar",
|
|
79
|
-
notice: "buoy-assets-notice",
|
|
80
|
-
noticeText: "buoy-assets-notice-text",
|
|
81
|
-
fonts: "buoy-assets-fonts",
|
|
82
|
-
fontsTitle: "buoy-assets-fonts-title",
|
|
83
|
-
empty: "buoy-assets-empty",
|
|
84
|
-
emptyTitle: "buoy-assets-empty-title",
|
|
85
|
-
emptyText: "buoy-assets-empty-text",
|
|
86
|
-
// baseline bar
|
|
87
|
-
baseline: "buoy-assets-baseline",
|
|
88
|
-
baselineSummary: "buoy-assets-baseline-summary",
|
|
89
|
-
baselineUpdate: "buoy-assets-baseline-update",
|
|
90
|
-
baselineClear: "buoy-assets-baseline-clear",
|
|
91
|
-
// detail
|
|
92
|
-
detail: "buoy-assets-detail",
|
|
93
|
-
detailScroll: "buoy-assets-detail-scroll",
|
|
94
|
-
detailPreview: "buoy-assets-detail-preview",
|
|
95
|
-
detailFontPreview: "buoy-assets-detail-font-preview",
|
|
96
|
-
detailFindings: "buoy-assets-detail-findings"
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
/** One finding sentence in the detail view, by position. */
|
|
100
|
-
export function assetFindingTestID(index) {
|
|
101
|
-
return `buoy-assets-detail-finding-${index}`;
|
|
102
|
-
}
|
|
103
|
-
//# sourceMappingURL=testIDs.js.map
|
|
1
|
+
"use strict";export function assetSlug(s){return String(s).toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"unknown"}export function assetRowTestID(s,t){return`buoy-assets-row-${assetSlug(`${s}.${t}`)}`}export function assetBadgeTestID(s,t,e){return`${assetRowTestID(s,t)}-badge-${assetSlug(e)}`}export function assetFilterTestID(s){return`buoy-assets-filter-${assetSlug(s)}`}export function assetDetailRowTestID(s){return`buoy-assets-detail-row-${assetSlug(s)}`}export function assetFontChipTestID(s){return`buoy-assets-font-${assetSlug(s)}`}export const ASSETS_TEST_IDS={title:"buoy-assets-title",copy:"buoy-assets-copy",clear:"buoy-assets-clear",list:"buoy-assets-list",search:"buoy-assets-search",sort:"buoy-assets-sort",filterBar:"buoy-assets-filter-bar",notice:"buoy-assets-notice",noticeText:"buoy-assets-notice-text",discoverySpinner:"buoy-assets-discovery-spinner",retry:"buoy-assets-retry",fonts:"buoy-assets-fonts",fontsTitle:"buoy-assets-fonts-title",empty:"buoy-assets-empty",emptyTitle:"buoy-assets-empty-title",emptyText:"buoy-assets-empty-text",detail:"buoy-assets-detail",detailScroll:"buoy-assets-detail-scroll",detailPreview:"buoy-assets-detail-preview",detailFontPreview:"buoy-assets-detail-font-preview",detailFindings:"buoy-assets-detail-findings"};export function assetFindingTestID(s){return`buoy-assets-detail-finding-${s}`}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Identify Buoy-owned resources by package location, never by asset name. */
|
|
2
|
+
export declare function isBuoyAssetPath(value: string | undefined): boolean;
|
|
3
|
+
export declare function isBuoyAsset(asset: {
|
|
4
|
+
key: string;
|
|
5
|
+
httpServerLocation?: string;
|
|
6
|
+
fileSystemLocation?: string;
|
|
7
|
+
files?: string[];
|
|
8
|
+
}): boolean;
|
|
9
|
+
//# sourceMappingURL=isBuoyAsset.d.ts.map
|
|
@@ -33,7 +33,7 @@ export declare function resolveRegistryAsset(registryId: number): {
|
|
|
33
33
|
uri: string;
|
|
34
34
|
scale: number;
|
|
35
35
|
} | null;
|
|
36
|
-
export declare function upsertFromPackagerAsset(registryId: number, asset: PackagerAsset): AssetRecord;
|
|
36
|
+
export declare function upsertFromPackagerAsset(registryId: number, asset: PackagerAsset): AssetRecord | undefined;
|
|
37
37
|
/** Enumerate every asset registered so far. Returns the highest id seen. */
|
|
38
38
|
export declare function walkRegistry(): number;
|
|
39
39
|
/**
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* AssetDetail — full metadata for one asset: preview, identity, dimensions,
|
|
3
3
|
* per-scale sizes, resolution info, and which audit findings apply.
|
|
4
4
|
*
|
|
5
|
-
* Image previews
|
|
6
|
-
*
|
|
5
|
+
* Image previews use registry ids or asset URLs, with optional expo-image for
|
|
6
|
+
* native SVGs; fonts render a pangram with fontFamily set to the asset name
|
|
7
7
|
* — a best-effort guess (family ≠ filename for many fonts) that falls back
|
|
8
8
|
* to the system font silently when it misses.
|
|
9
9
|
*/
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ImageStyle, StyleProp } from "react-native";
|
|
2
|
+
import type { AssetRecord } from "../types";
|
|
3
|
+
export declare function AssetImage({ record, style, testID, compact }: {
|
|
4
|
+
record: AssetRecord;
|
|
5
|
+
style?: StyleProp<ImageStyle>;
|
|
6
|
+
testID: string;
|
|
7
|
+
compact?: boolean;
|
|
8
|
+
}): import("react").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=AssetImage.d.ts.map
|
|
@@ -5,12 +5,13 @@
|
|
|
5
5
|
* images tool documents).
|
|
6
6
|
*/
|
|
7
7
|
import type { AssetKind, AssetsStats } from "../types";
|
|
8
|
-
export type AssetFilter = "all" | "unused" | AssetKind;
|
|
8
|
+
export type AssetFilter = "all" | "unused" | "duplicates" | AssetKind;
|
|
9
9
|
interface AssetsFilterBarProps {
|
|
10
10
|
stats: AssetsStats;
|
|
11
|
+
duplicateCount: number;
|
|
11
12
|
filter: AssetFilter;
|
|
12
13
|
onChange: (filter: AssetFilter) => void;
|
|
13
14
|
}
|
|
14
|
-
export declare function AssetsFilterBar({ stats, filter, onChange }: AssetsFilterBarProps): import("react").JSX.Element | null;
|
|
15
|
+
export declare function AssetsFilterBar({ stats, duplicateCount, filter, onChange }: AssetsFilterBarProps): import("react").JSX.Element | null;
|
|
15
16
|
export {};
|
|
16
17
|
//# sourceMappingURL=AssetsFilterBar.d.ts.map
|
|
@@ -9,6 +9,7 @@ interface AssetsHeaderProps {
|
|
|
9
9
|
stats: AssetsStats;
|
|
10
10
|
/** Size measurement in progress — suppress the (partial) byte total. */
|
|
11
11
|
measuring: boolean;
|
|
12
|
+
discovering?: boolean;
|
|
12
13
|
detailOpen: boolean;
|
|
13
14
|
detailIndex?: number;
|
|
14
15
|
detailTotal?: number;
|
|
@@ -17,6 +18,6 @@ interface AssetsHeaderProps {
|
|
|
17
18
|
getReport: () => string;
|
|
18
19
|
onBack?: () => void;
|
|
19
20
|
}
|
|
20
|
-
export declare function AssetsHeader({ stats, measuring, detailOpen, detailIndex, detailTotal, onCloseDetail, onClear, getReport, onBack, }: AssetsHeaderProps): import("react").JSX.Element;
|
|
21
|
+
export declare function AssetsHeader({ stats, measuring, discovering, detailOpen, detailIndex, detailTotal, onCloseDetail, onClear, getReport, onBack, }: AssetsHeaderProps): import("react").JSX.Element;
|
|
21
22
|
export {};
|
|
22
23
|
//# sourceMappingURL=AssetsHeader.d.ts.map
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AssetsListControls — one compact row: name search, sort cycle (SIZE →
|
|
3
|
-
* NAME → TYPE), and — when no baseline exists yet — the BASE button that
|
|
4
|
-
* saves one. Once a baseline exists the BaselineBar takes over the diff UI,
|
|
5
|
-
* so this row never wastes space on a hint sentence.
|
|
6
|
-
*/
|
|
1
|
+
/** Asset list search and sort controls. */
|
|
7
2
|
export type AssetSort = "size" | "name" | "type";
|
|
8
3
|
interface AssetsListControlsProps {
|
|
9
4
|
query: string;
|
|
10
5
|
onQueryChange: (query: string) => void;
|
|
11
6
|
sort: AssetSort;
|
|
12
7
|
onSortChange: (sort: AssetSort) => void;
|
|
13
|
-
/** Show the save-baseline button (no baseline saved yet). */
|
|
14
|
-
showBaselineButton: boolean;
|
|
15
8
|
}
|
|
16
|
-
export declare function AssetsListControls({ query, onQueryChange, sort, onSortChange,
|
|
9
|
+
export declare function AssetsListControls({ query, onQueryChange, sort, onSortChange, }: AssetsListControlsProps): import("react").JSX.Element;
|
|
17
10
|
export {};
|
|
18
11
|
//# sourceMappingURL=AssetsListControls.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AssetsScanStatus } from "../types";
|
|
2
|
+
export declare function ScanNotice({ status, total, onRetry }: {
|
|
3
|
+
status: AssetsScanStatus;
|
|
4
|
+
total: number;
|
|
5
|
+
onRetry: () => void;
|
|
6
|
+
}): import("react").JSX.Element | null;
|
|
7
|
+
//# sourceMappingURL=ScanNotice.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ComponentType } from "react";
|
|
2
|
+
import type { ImageStyle, StyleProp } from "react-native";
|
|
3
|
+
export interface ExpoPreviewProps {
|
|
4
|
+
source: number | {
|
|
5
|
+
uri: string;
|
|
6
|
+
};
|
|
7
|
+
style?: StyleProp<ImageStyle>;
|
|
8
|
+
testID: string;
|
|
9
|
+
contentFit: "contain";
|
|
10
|
+
onError: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function getExpoPreviewImage(): ComponentType<ExpoPreviewProps> | null;
|
|
13
|
+
//# sourceMappingURL=optionalExpoImage.d.ts.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AssetsScanStatus } from "../types";
|
|
2
|
+
/** Each store notification replaces the records snapshot, including status-only updates. */
|
|
3
|
+
export declare function getAssetScanSnapshot(): AssetsScanStatus;
|
|
4
|
+
/** Keep scan status reactive in apps that use React Compiler. */
|
|
5
|
+
export declare function useAssetScanStatus(): AssetsScanStatus;
|
|
6
|
+
//# sourceMappingURL=useAssetScanStatus.d.ts.map
|
|
@@ -22,6 +22,8 @@ export interface AssetsGlobalState {
|
|
|
22
22
|
graphCount: number | null;
|
|
23
23
|
graphError: string | null;
|
|
24
24
|
graphFetchInFlight: boolean;
|
|
25
|
+
graphFetchStartedAt?: number | null;
|
|
26
|
+
scanPromise?: Promise<AssetsScanStatus>;
|
|
25
27
|
lastScanAt: number | null;
|
|
26
28
|
measuring: boolean;
|
|
27
29
|
measuredCount: number;
|
|
@@ -34,7 +34,7 @@ export interface AssetUpsert {
|
|
|
34
34
|
fileHashes?: string[];
|
|
35
35
|
}
|
|
36
36
|
/** Merge an asset sighting into the store; creates the record on first sight. */
|
|
37
|
-
export declare function upsertRecord(input: AssetUpsert): AssetRecord;
|
|
37
|
+
export declare function upsertRecord(input: AssetUpsert): AssetRecord | undefined;
|
|
38
38
|
/** Mutate a record in place (records are owned by the store) and notify. */
|
|
39
39
|
export declare function updateRecord(id: number, patch: Partial<AssetRecord>): AssetRecord | undefined;
|
|
40
40
|
export declare function getRecord(id: number): AssetRecord | undefined;
|
|
@@ -42,6 +42,8 @@ export declare function getRecordByKey(key: string): AssetRecord | undefined;
|
|
|
42
42
|
export declare function getSnapshot(): AssetRecord[];
|
|
43
43
|
export declare function subscribe(listener: () => void): () => void;
|
|
44
44
|
export declare function clearRecords(): void;
|
|
45
|
+
/** Remove records captured before the exclusion was installed through Fast Refresh. */
|
|
46
|
+
export declare function removeBuoyRecords(): void;
|
|
45
47
|
/**
|
|
46
48
|
* Estimated decoded-bitmap memory (RGBA8888) at the scale this device would
|
|
47
49
|
* pick — the size fallback when bytes can't be measured (release builds).
|
|
@@ -60,6 +60,9 @@ export interface AssetsScanStatus {
|
|
|
60
60
|
/** Assets in the full Metro graph; null until fetched. */
|
|
61
61
|
graphCount: number | null;
|
|
62
62
|
graphError: string | null;
|
|
63
|
+
/** Optional for snapshots from older devices. */
|
|
64
|
+
graphFetchInFlight?: boolean;
|
|
65
|
+
graphFetchStartedAt?: number | null;
|
|
63
66
|
lastScanAt: number | null;
|
|
64
67
|
measuring: boolean;
|
|
65
68
|
measuredCount: number;
|
|
@@ -51,19 +51,16 @@ export declare const ASSETS_TEST_IDS: {
|
|
|
51
51
|
readonly list: "buoy-assets-list";
|
|
52
52
|
readonly search: "buoy-assets-search";
|
|
53
53
|
readonly sort: "buoy-assets-sort";
|
|
54
|
-
readonly saveBaseline: "buoy-assets-save-baseline";
|
|
55
54
|
readonly filterBar: "buoy-assets-filter-bar";
|
|
56
55
|
readonly notice: "buoy-assets-notice";
|
|
57
56
|
readonly noticeText: "buoy-assets-notice-text";
|
|
57
|
+
readonly discoverySpinner: "buoy-assets-discovery-spinner";
|
|
58
|
+
readonly retry: "buoy-assets-retry";
|
|
58
59
|
readonly fonts: "buoy-assets-fonts";
|
|
59
60
|
readonly fontsTitle: "buoy-assets-fonts-title";
|
|
60
61
|
readonly empty: "buoy-assets-empty";
|
|
61
62
|
readonly emptyTitle: "buoy-assets-empty-title";
|
|
62
63
|
readonly emptyText: "buoy-assets-empty-text";
|
|
63
|
-
readonly baseline: "buoy-assets-baseline";
|
|
64
|
-
readonly baselineSummary: "buoy-assets-baseline-summary";
|
|
65
|
-
readonly baselineUpdate: "buoy-assets-baseline-update";
|
|
66
|
-
readonly baselineClear: "buoy-assets-baseline-clear";
|
|
67
64
|
readonly detail: "buoy-assets-detail";
|
|
68
65
|
readonly detailScroll: "buoy-assets-detail-scroll";
|
|
69
66
|
readonly detailPreview: "buoy-assets-detail-preview";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/assets",
|
|
3
|
-
"version": "7.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "7.0.38",
|
|
4
|
+
"description": "Inspect assets reported by a manifest and runtime hooks, including available sizes, scale variants, duplicates and baseline changes.",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
7
7
|
"types": "lib/typescript/index.d.ts",
|
|
@@ -14,14 +14,18 @@
|
|
|
14
14
|
"**/index.*"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@buoy-gg/shared-ui": "^7.0.
|
|
17
|
+
"@buoy-gg/shared-ui": "^7.0.38"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
20
|
"expo-asset": "*",
|
|
21
|
+
"expo-image": "*",
|
|
21
22
|
"react": "*",
|
|
22
23
|
"react-native": "*"
|
|
23
24
|
},
|
|
24
25
|
"peerDependenciesMeta": {
|
|
26
|
+
"expo-image": {
|
|
27
|
+
"optional": true
|
|
28
|
+
},
|
|
25
29
|
"expo-asset": {
|
|
26
30
|
"optional": true
|
|
27
31
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["expoModules","globalThis","expo","modules","getLoadedFontFamilies","fonts","ExpoFontLoader","getLoadedFonts","Array","isArray","sort","getLocalAssets","map","ExpoUpdates","localAssets","Object","keys","length"],"sourceRoot":"../../../src","sources":["capture/expo.ts"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;;AASA,SAASA,WAAWA,CAAA,EAA0B;EAC5C,OAAQC,UAAU,CAA2BC,IAAI,EAAEC,OAAO;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAAA,EAAa;EAChD,IAAI;IACF,MAAMC,KAAK,GAAGL,WAAW,CAAC,CAAC,EAAEM,cAAc,EAAEC,cAAc,GAAG,CAAC;IAC/D,OAAOC,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,GAAG,CAAC,GAAGA,KAAK,CAAC,CAACK,IAAI,CAAC,CAAC,GAAG,EAAE;EACtD,CAAC,CAAC,MAAM;IACN,OAAO,EAAE;EACX;AACF;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAAA,EAAkC;EAC9D,IAAI;IACF,MAAMC,GAAG,GAAGZ,WAAW,CAAC,CAAC,EAAEa,WAAW,EAAEC,WAAW;IACnD,IAAIF,GAAG,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIG,MAAM,CAACC,IAAI,CAACJ,GAAG,CAAC,CAACK,MAAM,GAAG,CAAC,EAAE,OAAOL,GAAG;IAC7E,OAAO,IAAI;EACb,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_state","require","_assetStore","_expo","_measure","_metroGraph","_registry","installAssetCapture","s","assetsState","captureDisabled","installed","registryAvailable","getRegistryModule","patched","patchRegisterAsset","walkRegistry","refreshEnrichment","lastScanAt","Date","now","invalidate","fontFamilies","getLoadedFontFamilies","localAssets","getLocalAssets","localAssetCount","Object","keys","length","rescan","getScanStatus","fetchAssetGraph","measureSizes","mirrorScanStatus","registryCount","record","records","registryId","graphSupported","getDevServerOrigin","graphCount","graphError","measuring","measuredCount"],"sourceRoot":"../../../src","sources":["capture/install.ts"],"mappings":";;;;;;;;AASA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUO,SAASM,mBAAmBA,CAAA,EAAS;EAC1C,MAAMC,CAAC,GAAG,IAAAC,kBAAW,EAAC,CAAC;EACvB,IAAID,CAAC,CAACE,eAAe,IAAIF,CAAC,CAACG,SAAS,EAAE;EACtCH,CAAC,CAACG,SAAS,GAAG,IAAI;EAClBH,CAAC,CAACI,iBAAiB,GAAG,IAAAC,2BAAiB,EAAC,CAAC,IAAI,IAAI;EACjDL,CAAC,CAACM,OAAO,GAAG,IAAAC,4BAAkB,EAAC,CAAC;EAChC,IAAAC,sBAAY,EAAC,CAAC;EACdC,iBAAiB,CAAC,CAAC;EACnBT,CAAC,CAACU,UAAU,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EACzB,IAAAC,sBAAU,EAAC,CAAC;AACd;AAEA,SAASJ,iBAAiBA,CAAA,EAAS;EACjC,MAAMT,CAAC,GAAG,IAAAC,kBAAW,EAAC,CAAC;EACvBD,CAAC,CAACc,YAAY,GAAG,IAAAC,2BAAqB,EAAC,CAAC;EACxC,MAAMC,WAAW,GAAG,IAAAC,oBAAc,EAAC,CAAC;EACpCjB,CAAC,CAACkB,eAAe,GAAGF,WAAW,GAAGG,MAAM,CAACC,IAAI,CAACJ,WAAW,CAAC,CAACK,MAAM,GAAG,IAAI;AAC1E;;AAEA;AACA;AACA;AACA;AACO,eAAeC,MAAMA,CAAA,EAA8B;EACxD,MAAMtB,CAAC,GAAG,IAAAC,kBAAW,EAAC,CAAC;EACvB,IAAID,CAAC,CAACE,eAAe,EAAE,OAAOqB,aAAa,CAAC,CAAC;EAC7CxB,mBAAmB,CAAC,CAAC;EACrB,IAAAS,sBAAY,EAAC,CAAC;EACdC,iBAAiB,CAAC,CAAC;EACnB,MAAM,IAAAe,2BAAe,EAAC,CAAC;EACvBxB,CAAC,CAACU,UAAU,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EACzB,IAAAC,sBAAU,EAAC,CAAC;EACZ,KAAK,IAAAY,qBAAY,EAAC,CAAC;EACnB,OAAOF,aAAa,CAAC,CAAC;AACxB;AAEO,SAASA,aAAaA,CAAA,EAAqB;EAChD,MAAMvB,CAAC,GAAG,IAAAC,kBAAW,EAAC,CAAC;EACvB;EACA,IAAID,CAAC,CAAC0B,gBAAgB,EAAE,OAAO1B,CAAC,CAAC0B,gBAAgB;EACjD,IAAIC,aAAa,GAAG,CAAC;EACrB,KAAK,MAAMC,MAAM,IAAI5B,CAAC,CAAC6B,OAAO,EAAE,IAAID,MAAM,CAACE,UAAU,IAAI,IAAI,EAAEH,aAAa,EAAE;EAC9E,OAAO;IACLvB,iBAAiB,EAAEJ,CAAC,CAACI,iBAAiB;IACtCE,OAAO,EAAEN,CAAC,CAACM,OAAO;IAClBqB,aAAa;IACbI,cAAc,EAAE/B,CAAC,CAAC+B,cAAc,IAAI,IAAAC,8BAAkB,EAAC,CAAC,IAAI,IAAI;IAChEC,UAAU,EAAEjC,CAAC,CAACiC,UAAU;IACxBC,UAAU,EAAElC,CAAC,CAACkC,UAAU;IACxBxB,UAAU,EAAEV,CAAC,CAACU,UAAU;IACxByB,SAAS,EAAEnC,CAAC,CAACmC,SAAS;IACtBC,aAAa,EAAEpC,CAAC,CAACoC,aAAa;IAC9BtB,YAAY,EAAEd,CAAC,CAACc,YAAY;IAC5BI,eAAe,EAAElB,CAAC,CAACkB;EACrB,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_state","require","_assetStore","_metroGraph","CONCURRENCY","previewURL","record","resolvedUri","variants","variantURLs","length","url","displaySource","mirror","assetsState","captureDisabled","registryId","uri","test","scales","resolved","resolvedScale","pickedSuffix","marker","type","includes","map","scale","suffix","replace","origin","getDevServerOrigin","httpServerLocation","path","name","sep","platformName","hash","Platform","OS","fetchSize","head","fetch","method","ok","Number","headers","get","isFinite","response","blob","size","measureRecord","updateRecord","id","sizeSource","sizesByScale","total","String","sizeBytes","measureSizes","s","measuring","measured","measuredCount","getSnapshot","pending","filter","r","invalidate","index","worker","next","Promise","all","Array","from","Math","min"],"sourceRoot":"../../../src","sources":["capture/measure.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_state","require","_assetStore","getScriptURL","NativeModules","sourceCode","SourceCode","url","getConstants","scriptURL","getDevServerOrigin","match","getGraphURLCandidates","test","origin","queryIndex","indexOf","query","slice","candidates","includes","push","replace","fetchAssetGraph","s","assetsState","length","graphSupported","graphError","invalidate","ok","message","graphFetchInFlight","data","lastError","response","fetch","status","parsed","json","Array","isArray","error","String","Error","graph","asset","name","type","upsertRecord","key","assetKey","httpServerLocation","hash","width","undefined","height","scales","fileSystemLocation","files","fileHashes","graphCount","count"],"sourceRoot":"../../../src","sources":["capture/metroGraph.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_assetStore","require","cachedRegistry","getRegistryModule","undefined","mod","getAssetByID","resolveRegistryAsset","registryId","Image","resolved","resolveAssetSource","uri","scale","upsertFromPackagerAsset","asset","upsertRecord","key","assetKey","httpServerLocation","name","type","origin","hash","width","height","scales","resolvedUri","resolvedScale","loaded","walkRegistry","registry","id","PATCH_MARKER","patchRegisterAsset","original","registerAsset","wrapped","call"],"sourceRoot":"../../../src","sources":["capture/registry.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_sharedUi","_measure","_format","_assetStore","_testIDs","_jsxRuntime","Row","label","value","testID","assetDetailRowTestID","jsxs","View","style","styles","kvRow","children","jsx","Text","kvLabel","kvValue","selectable","Preview","record","kind","source","displaySource","previewBox","ASSETS_TEST_IDS","detailPreview","Image","previewImage","resizeMode","detailFontPreview","fontPreview","fontFamily","name","AssetDetail","insights","findings","neverLoaded","includes","id","push","scaleGaps","webpCandidates","duplicate","duplicates","find","d","ids","length","overDecode","heavyGifs","heavyFonts","scaleAnomalies","estimate","estDecodedBytes","ScrollView","scroll","contentContainerStyle","content","detailScroll","detailFindings","map","finding","index","findingText","assetFindingTestID","type","loaded","formatDimensions","scales","formatScales","sizesByScale","Object","entries","scale","bytes","formatBytes","sizeBytes","sizeSource","registryId","String","hash","httpServerLocation","fileSystemLocation","resolvedUri","StyleSheet","create","flex","padding","gap","borderRadius","backgroundColor","night","color","bg","alignItems","justifyContent","minHeight","width","height","text","fontSize","textAlign","borderWidth","borderColor","border","surface","textSecondary","lineHeight","textTertiary","fontWeight","letterSpacing","textTransform"],"sourceRoot":"../../../src","sources":["components/AssetDetail.tsx"],"mappings":"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","ignoreList":[]}
|