@buoy-gg/assets 7.0.29 → 7.0.31

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.
Files changed (95) hide show
  1. package/lib/commonjs/components/AssetDetail.js +10 -1
  2. package/lib/commonjs/components/AssetDetail.js.map +1 -1
  3. package/lib/commonjs/components/AssetRow.js +13 -4
  4. package/lib/commonjs/components/AssetRow.js.map +1 -1
  5. package/lib/commonjs/components/AssetsFilterBar.js +4 -0
  6. package/lib/commonjs/components/AssetsFilterBar.js.map +1 -1
  7. package/lib/commonjs/components/AssetsHeader.js +11 -5
  8. package/lib/commonjs/components/AssetsHeader.js.map +1 -1
  9. package/lib/commonjs/components/AssetsListControls.js +5 -3
  10. package/lib/commonjs/components/AssetsListControls.js.map +1 -1
  11. package/lib/commonjs/components/AssetsModal.js +10 -0
  12. package/lib/commonjs/components/AssetsModal.js.map +1 -1
  13. package/lib/commonjs/components/BaselineBar.js +5 -0
  14. package/lib/commonjs/components/BaselineBar.js.map +1 -1
  15. package/lib/commonjs/index.js +53 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/store/assetStore.js +8 -1
  18. package/lib/commonjs/store/assetStore.js.map +1 -1
  19. package/lib/commonjs/store/baseline.js +9 -1
  20. package/lib/commonjs/store/baseline.js.map +1 -1
  21. package/lib/commonjs/store/insights.js +2 -11
  22. package/lib/commonjs/store/insights.js.map +1 -1
  23. package/lib/commonjs/utils/deviceScale.js +50 -0
  24. package/lib/commonjs/utils/deviceScale.js.map +1 -0
  25. package/lib/commonjs/utils/testIDs.js +114 -0
  26. package/lib/commonjs/utils/testIDs.js.map +1 -0
  27. package/lib/module/components/AssetDetail.js +10 -1
  28. package/lib/module/components/AssetDetail.js.map +1 -1
  29. package/lib/module/components/AssetRow.js +13 -4
  30. package/lib/module/components/AssetRow.js.map +1 -1
  31. package/lib/module/components/AssetsFilterBar.js +4 -0
  32. package/lib/module/components/AssetsFilterBar.js.map +1 -1
  33. package/lib/module/components/AssetsHeader.js +11 -5
  34. package/lib/module/components/AssetsHeader.js.map +1 -1
  35. package/lib/module/components/AssetsListControls.js +5 -3
  36. package/lib/module/components/AssetsListControls.js.map +1 -1
  37. package/lib/module/components/AssetsModal.js +10 -0
  38. package/lib/module/components/AssetsModal.js.map +1 -1
  39. package/lib/module/components/BaselineBar.js +5 -0
  40. package/lib/module/components/BaselineBar.js.map +1 -1
  41. package/lib/module/index.js +4 -0
  42. package/lib/module/index.js.map +1 -1
  43. package/lib/module/store/assetStore.js +8 -1
  44. package/lib/module/store/assetStore.js.map +1 -1
  45. package/lib/module/store/baseline.js +9 -1
  46. package/lib/module/store/baseline.js.map +1 -1
  47. package/lib/module/store/insights.js +1 -10
  48. package/lib/module/store/insights.js.map +1 -1
  49. package/lib/module/utils/deviceScale.js +46 -0
  50. package/lib/module/utils/deviceScale.js.map +1 -0
  51. package/lib/module/utils/testIDs.js +103 -0
  52. package/lib/module/utils/testIDs.js.map +1 -0
  53. package/lib/typescript/components/AssetDetail.d.ts.map +1 -1
  54. package/lib/typescript/components/AssetRow.d.ts.map +1 -1
  55. package/lib/typescript/components/AssetsFilterBar.d.ts.map +1 -1
  56. package/lib/typescript/components/AssetsHeader.d.ts.map +1 -1
  57. package/lib/typescript/components/AssetsListControls.d.ts.map +1 -1
  58. package/lib/typescript/components/AssetsModal.d.ts.map +1 -1
  59. package/lib/typescript/components/BaselineBar.d.ts.map +1 -1
  60. package/lib/typescript/index.d.ts +1 -0
  61. package/lib/typescript/index.d.ts.map +1 -1
  62. package/lib/typescript/store/assetStore.d.ts +6 -0
  63. package/lib/typescript/store/assetStore.d.ts.map +1 -1
  64. package/lib/typescript/store/baseline.d.ts.map +1 -1
  65. package/lib/typescript/store/insights.d.ts.map +1 -1
  66. package/lib/typescript/utils/deviceScale.d.ts +25 -0
  67. package/lib/typescript/utils/deviceScale.d.ts.map +1 -0
  68. package/lib/typescript/utils/testIDs.d.ts +75 -0
  69. package/lib/typescript/utils/testIDs.d.ts.map +1 -0
  70. package/package.json +5 -6
  71. package/src/capture/expo.ts +0 -45
  72. package/src/capture/install.ts +0 -73
  73. package/src/capture/measure.ts +0 -167
  74. package/src/capture/metroGraph.ts +0 -146
  75. package/src/capture/registry.ts +0 -137
  76. package/src/components/AssetDetail.tsx +0 -207
  77. package/src/components/AssetRow.tsx +0 -243
  78. package/src/components/AssetsFilterBar.tsx +0 -99
  79. package/src/components/AssetsHeader.tsx +0 -75
  80. package/src/components/AssetsIcon.tsx +0 -9
  81. package/src/components/AssetsListControls.tsx +0 -101
  82. package/src/components/AssetsModal.tsx +0 -371
  83. package/src/components/BaselineBar.tsx +0 -98
  84. package/src/export.ts +0 -110
  85. package/src/format.ts +0 -53
  86. package/src/hooks/useAssetRecords.ts +0 -26
  87. package/src/index.tsx +0 -87
  88. package/src/preset.tsx +0 -35
  89. package/src/remote.ts +0 -65
  90. package/src/state.ts +0 -84
  91. package/src/store/assetStore.ts +0 -209
  92. package/src/store/baseline.ts +0 -152
  93. package/src/store/insights.ts +0 -145
  94. package/src/sync/assetsSyncAdapter.ts +0 -151
  95. package/src/types.ts +0 -160
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "ASSETS_ICON_COLOR", {
9
9
  return _AssetsIcon.ASSETS_ICON_COLOR;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "ASSETS_TEST_IDS", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _testIDs.ASSETS_TEST_IDS;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "AssetsIcon", {
13
19
  enumerable: true,
14
20
  get: function () {
@@ -27,6 +33,48 @@ Object.defineProperty(exports, "AssetsToolView", {
27
33
  return _AssetsModal.AssetsToolView;
28
34
  }
29
35
  });
36
+ Object.defineProperty(exports, "assetBadgeTestID", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _testIDs.assetBadgeTestID;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "assetDetailRowTestID", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _testIDs.assetDetailRowTestID;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "assetFilterTestID", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _testIDs.assetFilterTestID;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "assetFindingTestID", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _testIDs.assetFindingTestID;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "assetFontChipTestID", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _testIDs.assetFontChipTestID;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "assetRowTestID", {
67
+ enumerable: true,
68
+ get: function () {
69
+ return _testIDs.assetRowTestID;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "assetSlug", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _testIDs.assetSlug;
76
+ }
77
+ });
30
78
  Object.defineProperty(exports, "assetsSyncAdapter", {
31
79
  enumerable: true,
32
80
  get: function () {
@@ -215,6 +263,7 @@ var _useAssetRecords = require("./hooks/useAssetRecords");
215
263
  var _export = require("./export");
216
264
  var _assetsSyncAdapter = require("./sync/assetsSyncAdapter");
217
265
  var _remote = require("./remote");
266
+ var _testIDs = require("./utils/testIDs");
218
267
  /**
219
268
  * @buoy-gg/assets — bundled-asset inventory for React Native / Expo.
220
269
  *
@@ -249,6 +298,10 @@ var _remote = require("./remote");
249
298
  // External sync (desktop dashboard + MCP)
250
299
  // ---------------------------------------------------------------------------
251
300
 
301
+ // ---------------------------------------------------------------------------
302
+ // Automation handles
303
+ // ---------------------------------------------------------------------------
304
+
252
305
  // ---------------------------------------------------------------------------
253
306
  // Types
254
307
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"names":["_preset","require","_AssetsModal","_AssetsIcon","_install","_measure","_metroGraph","_expo","_assetStore","_insights","_baseline","_useAssetRecords","_export","_assetsSyncAdapter","_remote","installOnImport"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AAKA,IAAAO,WAAA,GAAAP,OAAA;AAQA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AAOA,IAAAU,gBAAA,GAAAV,OAAA;AAKA,IAAAW,OAAA,GAAAX,OAAA;AAKA,IAAAY,kBAAA,GAAAZ,OAAA;AACA,IAAAa,OAAA,GAAAb,OAAA;AA3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AAMA;AACA;AACA;;AAmBA;AACA;AACA;;AAGA;AACA;AACA;;AASA;AACA;AACA;;AAeA;AACA;;AAEA,IAAAc,4BAAe,EAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_preset","require","_AssetsModal","_AssetsIcon","_install","_measure","_metroGraph","_expo","_assetStore","_insights","_baseline","_useAssetRecords","_export","_assetsSyncAdapter","_remote","_testIDs","installOnImport"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AAKA,IAAAO,WAAA,GAAAP,OAAA;AAQA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AAOA,IAAAU,gBAAA,GAAAV,OAAA;AAKA,IAAAW,OAAA,GAAAX,OAAA;AAKA,IAAAY,kBAAA,GAAAZ,OAAA;AACA,IAAAa,OAAA,GAAAb,OAAA;AAUA,IAAAc,QAAA,GAAAd,OAAA;AArEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AAMA;AACA;AACA;;AAmBA;AACA;AACA;;AAGA;AACA;AACA;;AASA;AACA;AACA;;AAYA;AACA;AACA;;AAeA;AACA;;AAEA,IAAAe,4BAAe,EAAC,CAAC","ignoreList":[]}
@@ -16,6 +16,7 @@ exports.subscribe = subscribe;
16
16
  exports.updateRecord = updateRecord;
17
17
  exports.upsertRecord = upsertRecord;
18
18
  var _state = require("../state");
19
+ var _deviceScale = require("../utils/deviceScale");
19
20
  /**
20
21
  * assetStore
21
22
  *
@@ -177,10 +178,16 @@ function clearRecords() {
177
178
  /**
178
179
  * Estimated decoded-bitmap memory (RGBA8888) at the scale this device would
179
180
  * pick — the size fallback when bytes can't be measured (release builds).
181
+ *
182
+ * `resolvedScale` is React Native's own answer and is authoritative, but it
183
+ * only exists once the asset has been REGISTERED. For everything still known
184
+ * only from the Metro graph — the never-loaded set, which is most of what this
185
+ * tool is for — the scale has to be predicted the same way AssetSourceResolver
186
+ * would, not taken as the largest variant shipped.
180
187
  */
181
188
  function estDecodedBytes(record) {
182
189
  if (record.kind !== "image" || !record.width || !record.height) return 0;
183
- const scale = record.resolvedScale ?? (record.scales.length ? record.scales[record.scales.length - 1] : 1);
190
+ const scale = record.resolvedScale ?? (0, _deviceScale.pickScale)(record.scales, (0, _deviceScale.effectivePixelRatio)());
184
191
  return Math.round(record.width * scale * record.height * scale * 4);
185
192
  }
186
193
  function computeStats(list) {
@@ -1 +1 @@
1
- {"version":3,"names":["_state","require","emit","s","assetsState","emitScheduled","requestAnimationFrame","listener","listeners","invalidate","snapshot","records","KIND_BY_EXT","png","jpg","jpeg","gif","webp","bmp","psd","svg","tiff","ktx","heic","heif","avif","ttf","otf","woff","woff2","ttc","mp4","m4v","mov","mpeg","mpg","webm","avi","mp3","wav","aac","aiff","caf","m4a","ogg","json","db","yaml","yml","xml","html","pdf","zip","kindForType","type","toLowerCase","assetKey","httpServerLocation","name","location","decodeURIComponent","upsertRecord","input","record","byKey","get","key","id","nextId","kind","scales","loaded","origin","firstSeenAt","Date","now","push","set","byId","registryId","hash","width","height","length","Set","sort","a","b","resolvedUri","resolvedScale","fileSystemLocation","files","fileHashes","updateRecord","patch","undefined","Object","assign","getRecord","getRecordByKey","getSnapshot","subscribe","add","delete","clearRecords","Map","measuredCount","graphCount","estDecodedBytes","scale","Math","round","computeStats","list","byKind","image","count","bytes","font","video","audio","data","other","stats","total","neverLoaded","totalBytes","fontFamilies","r","sizeBytes","sizeSource"],"sourceRoot":"../../../src","sources":["store/assetStore.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_state","require","_deviceScale","emit","s","assetsState","emitScheduled","requestAnimationFrame","listener","listeners","invalidate","snapshot","records","KIND_BY_EXT","png","jpg","jpeg","gif","webp","bmp","psd","svg","tiff","ktx","heic","heif","avif","ttf","otf","woff","woff2","ttc","mp4","m4v","mov","mpeg","mpg","webm","avi","mp3","wav","aac","aiff","caf","m4a","ogg","json","db","yaml","yml","xml","html","pdf","zip","kindForType","type","toLowerCase","assetKey","httpServerLocation","name","location","decodeURIComponent","upsertRecord","input","record","byKey","get","key","id","nextId","kind","scales","loaded","origin","firstSeenAt","Date","now","push","set","byId","registryId","hash","width","height","length","Set","sort","a","b","resolvedUri","resolvedScale","fileSystemLocation","files","fileHashes","updateRecord","patch","undefined","Object","assign","getRecord","getRecordByKey","getSnapshot","subscribe","add","delete","clearRecords","Map","measuredCount","graphCount","estDecodedBytes","scale","pickScale","effectivePixelRatio","Math","round","computeStats","list","byKind","image","count","bytes","font","video","audio","data","other","stats","total","neverLoaded","totalBytes","fontFamilies","r","sizeBytes","sizeSource"],"sourceRoot":"../../../src","sources":["store/assetStore.ts"],"mappings":"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","ignoreList":[]}
@@ -134,7 +134,15 @@ function computeDiff(records, baseline) {
134
134
  name: entry.name,
135
135
  type: entry.type
136
136
  });
137
- if (entry.sizeBytes != null) baselineBytes += entry.sizeBytes;
137
+ if (entry.sizeBytes != null) {
138
+ // A removal is as comparable as a survivor: its bytes were measured
139
+ // then and are definitionally zero now. Counting them toward the
140
+ // baseline total without marking the diff comparable meant a branch
141
+ // that only DELETED assets reported "12 removed" and no size at all —
142
+ // the one number anyone reads that bar for.
143
+ comparable = true;
144
+ baselineBytes += entry.sizeBytes;
145
+ }
138
146
  }
139
147
  }
140
148
  // Added assets' measured bytes count toward the net even without a
@@ -1 +1 @@
1
- {"version":3,"names":["_sharedUi","require","_remote","_state","_assetStore","STORAGE_KEY","GROWN_THRESHOLD_BYTES","loadBaseline","s","assetsState","baselineLoaded","baseline","raw","persistentStorage","getItem","parsed","JSON","parse","savedAt","entries","invalidate","saveBaseline","remote","remoteAssetsDispatch","Date","now","r","getSnapshot","key","hash","sizeBytes","sizeSource","name","type","setItem","stringify","clearBaseline","removeItem","computeDiff","records","added","grown","seen","Set","currentBytes","baselineBytes","comparable","add","then","push","id","deltaBytes","removed","entry","Object","has","find","rec","baselineSavedAt","sort","a","b","netBytes","getDiff","mirrorDiff"],"sourceRoot":"../../../src","sources":["store/baseline.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_sharedUi","require","_remote","_state","_assetStore","STORAGE_KEY","GROWN_THRESHOLD_BYTES","loadBaseline","s","assetsState","baselineLoaded","baseline","raw","persistentStorage","getItem","parsed","JSON","parse","savedAt","entries","invalidate","saveBaseline","remote","remoteAssetsDispatch","Date","now","r","getSnapshot","key","hash","sizeBytes","sizeSource","name","type","setItem","stringify","clearBaseline","removeItem","computeDiff","records","added","grown","seen","Set","currentBytes","baselineBytes","comparable","add","then","push","id","deltaBytes","removed","entry","Object","has","find","rec","baselineSavedAt","sort","a","b","netBytes","getDiff","mirrorDiff"],"sourceRoot":"../../../src","sources":["store/baseline.ts"],"mappings":"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","ignoreList":[]}
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.computeInsights = computeInsights;
7
- var _state = require("../state");
8
7
  var _assetStore = require("./assetStore");
8
+ var _deviceScale = require("../utils/deviceScale");
9
9
  /**
10
10
  * Derived insights over the asset inventory — the Lighthouse/Emerge-style
11
11
  * audit findings, each pointing at concrete record ids.
@@ -26,15 +26,6 @@ const SCALE_ANOMALY_RATIO = 0.9;
26
26
  * for tiny icons PNG overhead dominates and byte ordering is pure noise.
27
27
  */
28
28
  const SCALE_ANOMALY_MIN_BYTES = 4 * 1024;
29
- function effectivePixelRatio() {
30
- const mirror = (0, _state.assetsState)().mirrorPixelRatio;
31
- if (mirror != null) return mirror;
32
- try {
33
- return require("react-native").PixelRatio.get();
34
- } catch {
35
- return 2;
36
- }
37
- }
38
29
 
39
30
  /** Physical pixels of the entire screen (fallback ≈ a 6.1" phone). */
40
31
  function screenPixels() {
@@ -67,7 +58,7 @@ function hasScaleAnomaly(record) {
67
58
  return false;
68
59
  }
69
60
  function computeInsights(list) {
70
- const deviceScale = effectivePixelRatio();
61
+ const deviceScale = (0, _deviceScale.effectivePixelRatio)();
71
62
  const byHash = new Map();
72
63
  for (const r of list) {
73
64
  if (!r.hash) continue;
@@ -1 +1 @@
1
- {"version":3,"names":["_state","require","_assetStore","WEBP_CANDIDATE_BYTES","HEAVY_GIF_BYTES","HEAVY_FONT_BYTES","OVER_DECODE_SCREENS","SCALE_ANOMALY_RATIO","SCALE_ANOMALY_MIN_BYTES","effectivePixelRatio","mirror","assetsState","mirrorPixelRatio","PixelRatio","get","screenPixels","Dimensions","screen","ratio","width","height","hasScaleAnomaly","record","sizes","sizesByScale","ordered","Object","entries","map","scale","bytes","Number","filter","e","isFinite","sort","a","b","i","length","computeInsights","list","deviceScale","byHash","Map","r","hash","group","push","set","duplicates","measured","find","sizeBytes","ids","id","wastedBytes","screenPx","scaleGaps","webpCandidates","neverLoaded","overDecode","heavyGifs","heavyFonts","scaleAnomalies","loaded","kind","scales","some","s","type","estDecodedBytes"],"sourceRoot":"../../../src","sources":["store/insights.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_assetStore","require","_deviceScale","WEBP_CANDIDATE_BYTES","HEAVY_GIF_BYTES","HEAVY_FONT_BYTES","OVER_DECODE_SCREENS","SCALE_ANOMALY_RATIO","SCALE_ANOMALY_MIN_BYTES","screenPixels","Dimensions","PixelRatio","screen","get","ratio","width","height","hasScaleAnomaly","record","sizes","sizesByScale","ordered","Object","entries","map","scale","bytes","Number","filter","e","isFinite","sort","a","b","i","length","computeInsights","list","deviceScale","effectivePixelRatio","byHash","Map","r","hash","group","push","set","duplicates","measured","find","sizeBytes","ids","id","wastedBytes","screenPx","scaleGaps","webpCandidates","neverLoaded","overDecode","heavyGifs","heavyFonts","scaleAnomalies","loaded","kind","scales","some","s","type","estDecodedBytes"],"sourceRoot":"../../../src","sources":["store/insights.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.effectivePixelRatio = effectivePixelRatio;
7
+ exports.pickScale = pickScale;
8
+ var _state = require("../state");
9
+ /**
10
+ * Which scale variant this device would actually use.
11
+ *
12
+ * Shared by the decoded-memory estimate and the scale-gap insight so the two
13
+ * can't disagree about the same asset — they were written apart and did.
14
+ */
15
+
16
+ /**
17
+ * PixelRatio, or the DEVICE's when this store is a dashboard mirror.
18
+ *
19
+ * A desktop dashboard renders another machine's inventory, and its own
20
+ * PixelRatio has nothing to do with which variant the phone will pick.
21
+ */
22
+ function effectivePixelRatio() {
23
+ const mirror = (0, _state.assetsState)().mirrorPixelRatio;
24
+ if (mirror != null) return mirror;
25
+ try {
26
+ return require("react-native").PixelRatio.get();
27
+ } catch {
28
+ return 2;
29
+ }
30
+ }
31
+
32
+ /**
33
+ * The variant React Native would resolve, by AssetSourceResolver's rule: the
34
+ * smallest scale that covers the device, or the largest available when none
35
+ * does.
36
+ *
37
+ * Not simply "the biggest one shipped". An asset with @1x…@4x variants on a
38
+ * @3x phone decodes at 3, and calling it 4 overstates its memory by 78% —
39
+ * on exactly the never-loaded assets this tool exists to point at, since a
40
+ * loaded one carries the scale RN already picked.
41
+ */
42
+ function pickScale(scales, deviceScale) {
43
+ if (!scales.length) return 1;
44
+ const ordered = [...scales].sort((a, b) => a - b);
45
+ for (const scale of ordered) {
46
+ if (scale >= deviceScale) return scale;
47
+ }
48
+ return ordered[ordered.length - 1];
49
+ }
50
+ //# sourceMappingURL=deviceScale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_state","require","effectivePixelRatio","mirror","assetsState","mirrorPixelRatio","PixelRatio","get","pickScale","scales","deviceScale","length","ordered","sort","a","b","scale"],"sourceRoot":"../../../src","sources":["utils/deviceScale.ts"],"mappings":";;;;;;;AAOA,IAAAA,MAAA,GAAAC,OAAA;AAPA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CAAA,EAAW;EAC5C,MAAMC,MAAM,GAAG,IAAAC,kBAAW,EAAC,CAAC,CAACC,gBAAgB;EAC7C,IAAIF,MAAM,IAAI,IAAI,EAAE,OAAOA,MAAM;EACjC,IAAI;IACF,OAAOF,OAAO,CAAC,cAAc,CAAC,CAACK,UAAU,CAACC,GAAG,CAAC,CAAC;EACjD,CAAC,CAAC,MAAM;IACN,OAAO,CAAC;EACV;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,SAASA,CAACC,MAAgB,EAAEC,WAAmB,EAAU;EACvE,IAAI,CAACD,MAAM,CAACE,MAAM,EAAE,OAAO,CAAC;EAC5B,MAAMC,OAAO,GAAG,CAAC,GAAGH,MAAM,CAAC,CAACI,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC;EACjD,KAAK,MAAMC,KAAK,IAAIJ,OAAO,EAAE;IAC3B,IAAII,KAAK,IAAIN,WAAW,EAAE,OAAOM,KAAK;EACxC;EACA,OAAOJ,OAAO,CAACA,OAAO,CAACD,MAAM,GAAG,CAAC,CAAC;AACpC","ignoreList":[]}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ASSETS_TEST_IDS = void 0;
7
+ exports.assetBadgeTestID = assetBadgeTestID;
8
+ exports.assetDetailRowTestID = assetDetailRowTestID;
9
+ exports.assetFilterTestID = assetFilterTestID;
10
+ exports.assetFindingTestID = assetFindingTestID;
11
+ exports.assetFontChipTestID = assetFontChipTestID;
12
+ exports.assetRowTestID = assetRowTestID;
13
+ exports.assetSlug = assetSlug;
14
+ /**
15
+ * Automation handles for the Assets tool.
16
+ *
17
+ * Every handle the tool renders is built here rather than inlined at the call
18
+ * site, for the same reason the highlight tool does it: the ids for rows,
19
+ * badges, filter chips and detail fields are DERIVED from data, and a suite
20
+ * that reimplements the derivation is a suite that can drift from the tool
21
+ * without either side failing. `detox-e2e/assets/fixture.js` mirrors these
22
+ * rules in CommonJS (the tests can't import TypeScript) and asserts the two
23
+ * still agree before any flow trusts a handle.
24
+ *
25
+ * Naming: `buoy-assets-<area>[-<detail>]`, one prefix for the whole tool.
26
+ */
27
+
28
+ /**
29
+ * Lowercase, hyphen-joined, never empty.
30
+ *
31
+ * Shared by rows, badges, filter chips and detail fields so one asset's row
32
+ * handle and its detail handles are slugged the same way — `back-icon.png`
33
+ * becomes `back-icon-png` everywhere it appears.
34
+ */
35
+ function assetSlug(value) {
36
+ return String(value).toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") || "unknown";
37
+ }
38
+
39
+ /**
40
+ * One inventory row, addressed by filename rather than by store id.
41
+ *
42
+ * The store's numeric ids are assigned in first-sighting order and are NOT
43
+ * stable: clearing the inventory and rescanning renumbers everything, and the
44
+ * order the registry walk and the Metro graph merge in depends on what the app
45
+ * has evaluated so far. A handle built from those makes a test that passes
46
+ * only on the run that recorded it.
47
+ *
48
+ * The tradeoff is that two assets with the same filename in different
49
+ * directories collide. That's a real ambiguity rather than a hidden one —
50
+ * Detox reports it as "multiple elements matched", which names the problem —
51
+ * and it's the same tradeoff the row itself makes, since the row shows the
52
+ * filename and not the path.
53
+ */
54
+ function assetRowTestID(name, type) {
55
+ return `buoy-assets-row-${assetSlug(`${name}.${type}`)}`;
56
+ }
57
+
58
+ /** A finding badge inside a row: `…-badge-low-res`, `…-badge-dup`. */
59
+ function assetBadgeTestID(name, type, label) {
60
+ return `${assetRowTestID(name, type)}-badge-${assetSlug(label)}`;
61
+ }
62
+
63
+ /** A kind/status filter chip: `buoy-assets-filter-font`, `…-filter-unused`. */
64
+ function assetFilterTestID(filter) {
65
+ return `buoy-assets-filter-${assetSlug(filter)}`;
66
+ }
67
+
68
+ /** One label/value pair in the detail view: `buoy-assets-detail-row-hash`. */
69
+ function assetDetailRowTestID(label) {
70
+ return `buoy-assets-detail-row-${assetSlug(label)}`;
71
+ }
72
+
73
+ /** A loaded font-family chip: `buoy-assets-font-ionicons`. */
74
+ function assetFontChipTestID(family) {
75
+ return `buoy-assets-font-${assetSlug(family)}`;
76
+ }
77
+
78
+ /** Fixed handles — everything that isn't derived from a record. */
79
+ const ASSETS_TEST_IDS = exports.ASSETS_TEST_IDS = {
80
+ // header
81
+ title: "buoy-assets-title",
82
+ copy: "buoy-assets-copy",
83
+ clear: "buoy-assets-clear",
84
+ // list chrome
85
+ list: "buoy-assets-list",
86
+ search: "buoy-assets-search",
87
+ sort: "buoy-assets-sort",
88
+ saveBaseline: "buoy-assets-save-baseline",
89
+ filterBar: "buoy-assets-filter-bar",
90
+ notice: "buoy-assets-notice",
91
+ noticeText: "buoy-assets-notice-text",
92
+ fonts: "buoy-assets-fonts",
93
+ fontsTitle: "buoy-assets-fonts-title",
94
+ empty: "buoy-assets-empty",
95
+ emptyTitle: "buoy-assets-empty-title",
96
+ emptyText: "buoy-assets-empty-text",
97
+ // baseline bar
98
+ baseline: "buoy-assets-baseline",
99
+ baselineSummary: "buoy-assets-baseline-summary",
100
+ baselineUpdate: "buoy-assets-baseline-update",
101
+ baselineClear: "buoy-assets-baseline-clear",
102
+ // detail
103
+ detail: "buoy-assets-detail",
104
+ detailScroll: "buoy-assets-detail-scroll",
105
+ detailPreview: "buoy-assets-detail-preview",
106
+ detailFontPreview: "buoy-assets-detail-font-preview",
107
+ detailFindings: "buoy-assets-detail-findings"
108
+ };
109
+
110
+ /** One finding sentence in the detail view, by position. */
111
+ function assetFindingTestID(index) {
112
+ return `buoy-assets-detail-finding-${index}`;
113
+ }
114
+ //# sourceMappingURL=testIDs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["assetSlug","value","String","toLowerCase","replace","assetRowTestID","name","type","assetBadgeTestID","label","assetFilterTestID","filter","assetDetailRowTestID","assetFontChipTestID","family","ASSETS_TEST_IDS","exports","title","copy","clear","list","search","sort","saveBaseline","filterBar","notice","noticeText","fonts","fontsTitle","empty","emptyTitle","emptyText","baseline","baselineSummary","baselineUpdate","baselineClear","detail","detailScroll","detailPreview","detailFontPreview","detailFindings","assetFindingTestID","index"],"sourceRoot":"../../../src","sources":["utils/testIDs.ts"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,SAASA,CAACC,KAAsB,EAAU;EACxD,OACEC,MAAM,CAACD,KAAK,CAAC,CACVE,WAAW,CAAC,CAAC,CACbC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAC3BA,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,SAAS;AAE3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAACC,IAAY,EAAEC,IAAY,EAAU;EACjE,OAAO,mBAAmBP,SAAS,CAAC,GAAGM,IAAI,IAAIC,IAAI,EAAE,CAAC,EAAE;AAC1D;;AAEA;AACO,SAASC,gBAAgBA,CAC9BF,IAAY,EACZC,IAAY,EACZE,KAAa,EACL;EACR,OAAO,GAAGJ,cAAc,CAACC,IAAI,EAAEC,IAAI,CAAC,UAAUP,SAAS,CAACS,KAAK,CAAC,EAAE;AAClE;;AAEA;AACO,SAASC,iBAAiBA,CAACC,MAAc,EAAU;EACxD,OAAO,sBAAsBX,SAAS,CAACW,MAAM,CAAC,EAAE;AAClD;;AAEA;AACO,SAASC,oBAAoBA,CAACH,KAAa,EAAU;EAC1D,OAAO,0BAA0BT,SAAS,CAACS,KAAK,CAAC,EAAE;AACrD;;AAEA;AACO,SAASI,mBAAmBA,CAACC,MAAc,EAAU;EAC1D,OAAO,oBAAoBd,SAAS,CAACc,MAAM,CAAC,EAAE;AAChD;;AAEA;AACO,MAAMC,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC7B;EACAE,KAAK,EAAE,mBAAmB;EAC1BC,IAAI,EAAE,kBAAkB;EACxBC,KAAK,EAAE,mBAAmB;EAC1B;EACAC,IAAI,EAAE,kBAAkB;EACxBC,MAAM,EAAE,oBAAoB;EAC5BC,IAAI,EAAE,kBAAkB;EACxBC,YAAY,EAAE,2BAA2B;EACzCC,SAAS,EAAE,wBAAwB;EACnCC,MAAM,EAAE,oBAAoB;EAC5BC,UAAU,EAAE,yBAAyB;EACrCC,KAAK,EAAE,mBAAmB;EAC1BC,UAAU,EAAE,yBAAyB;EACrCC,KAAK,EAAE,mBAAmB;EAC1BC,UAAU,EAAE,yBAAyB;EACrCC,SAAS,EAAE,wBAAwB;EACnC;EACAC,QAAQ,EAAE,sBAAsB;EAChCC,eAAe,EAAE,8BAA8B;EAC/CC,cAAc,EAAE,6BAA6B;EAC7CC,aAAa,EAAE,4BAA4B;EAC3C;EACAC,MAAM,EAAE,oBAAoB;EAC5BC,YAAY,EAAE,2BAA2B;EACzCC,aAAa,EAAE,4BAA4B;EAC3CC,iBAAiB,EAAE,iCAAiC;EACpDC,cAAc,EAAE;AAClB,CAAU;;AAEV;AACO,SAASC,kBAAkBA,CAACC,KAAa,EAAU;EACxD,OAAO,8BAA8BA,KAAK,EAAE;AAC9C","ignoreList":[]}
@@ -15,19 +15,23 @@ import { night } from "@buoy-gg/shared-ui";
15
15
  import { displaySource } from "../capture/measure";
16
16
  import { formatBytes, formatDimensions, formatScales } from "../format";
17
17
  import { estDecodedBytes } from "../store/assetStore";
18
+ import { ASSETS_TEST_IDS, assetDetailRowTestID, assetFindingTestID } from "../utils/testIDs";
18
19
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
20
  function Row({
20
21
  label,
21
22
  value
22
23
  }) {
24
+ const testID = assetDetailRowTestID(label);
23
25
  return /*#__PURE__*/_jsxs(View, {
24
26
  style: styles.kvRow,
27
+ testID: testID,
25
28
  children: [/*#__PURE__*/_jsx(Text, {
26
29
  style: styles.kvLabel,
27
30
  children: label
28
31
  }), /*#__PURE__*/_jsx(Text, {
29
32
  style: styles.kvValue,
30
33
  selectable: true,
34
+ testID: `${testID}-value`,
31
35
  children: value
32
36
  })]
33
37
  });
@@ -40,6 +44,7 @@ function Preview({
40
44
  if (source == null) return null;
41
45
  return /*#__PURE__*/_jsx(View, {
42
46
  style: styles.previewBox,
47
+ testID: ASSETS_TEST_IDS.detailPreview,
43
48
  children: /*#__PURE__*/_jsx(Image, {
44
49
  testID: "buoy-internal-assets-preview",
45
50
  source: source,
@@ -51,6 +56,7 @@ function Preview({
51
56
  if (record.kind === "font") {
52
57
  return /*#__PURE__*/_jsx(View, {
53
58
  style: styles.previewBox,
59
+ testID: ASSETS_TEST_IDS.detailFontPreview,
54
60
  children: /*#__PURE__*/_jsx(Text, {
55
61
  style: [styles.fontPreview, {
56
62
  fontFamily: record.name
@@ -95,12 +101,15 @@ export function AssetDetail({
95
101
  return /*#__PURE__*/_jsxs(ScrollView, {
96
102
  style: styles.scroll,
97
103
  contentContainerStyle: styles.content,
104
+ testID: ASSETS_TEST_IDS.detailScroll,
98
105
  children: [/*#__PURE__*/_jsx(Preview, {
99
106
  record: record
100
107
  }), findings.length > 0 ? /*#__PURE__*/_jsx(View, {
101
108
  style: styles.findings,
102
- children: findings.map(finding => /*#__PURE__*/_jsx(Text, {
109
+ testID: ASSETS_TEST_IDS.detailFindings,
110
+ children: findings.map((finding, index) => /*#__PURE__*/_jsx(Text, {
103
111
  style: styles.findingText,
112
+ testID: assetFindingTestID(index),
104
113
  children: finding
105
114
  }, finding))
106
115
  }) : null, /*#__PURE__*/_jsx(Row, {
@@ -1 +1 @@
1
- {"version":3,"names":["Image","ScrollView","StyleSheet","Text","View","night","displaySource","formatBytes","formatDimensions","formatScales","estDecodedBytes","jsx","_jsx","jsxs","_jsxs","Row","label","value","style","styles","kvRow","children","kvLabel","kvValue","selectable","Preview","record","kind","source","previewBox","testID","previewImage","resizeMode","fontPreview","fontFamily","name","AssetDetail","insights","findings","neverLoaded","includes","id","push","scaleGaps","webpCandidates","duplicate","duplicates","find","d","ids","length","overDecode","heavyGifs","heavyFonts","scaleAnomalies","estimate","scroll","contentContainerStyle","content","map","finding","findingText","type","loaded","scales","sizesByScale","Object","entries","scale","bytes","sizeBytes","sizeSource","registryId","String","hash","httpServerLocation","fileSystemLocation","resolvedUri","create","flex","padding","gap","borderRadius","backgroundColor","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":[]}
1
+ {"version":3,"names":["Image","ScrollView","StyleSheet","Text","View","night","displaySource","formatBytes","formatDimensions","formatScales","estDecodedBytes","ASSETS_TEST_IDS","assetDetailRowTestID","assetFindingTestID","jsx","_jsx","jsxs","_jsxs","Row","label","value","testID","style","styles","kvRow","children","kvLabel","kvValue","selectable","Preview","record","kind","source","previewBox","detailPreview","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","scroll","contentContainerStyle","content","detailScroll","detailFindings","map","finding","index","findingText","type","loaded","scales","sizesByScale","Object","entries","scale","bytes","sizeBytes","sizeSource","registryId","String","hash","httpServerLocation","fileSystemLocation","resolvedUri","create","flex","padding","gap","borderRadius","backgroundColor","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":[]}
@@ -18,17 +18,20 @@ import { macOSColors, night } from "@buoy-gg/shared-ui";
18
18
  import { displaySource } from "../capture/measure";
19
19
  import { formatDimensions, formatScales, formatSize, KIND_COLORS, KIND_LABELS } from "../format";
20
20
  import { estDecodedBytes } from "../store/assetStore";
21
+ import { assetBadgeTestID, assetRowTestID } from "../utils/testIDs";
21
22
 
22
23
  /** Which audit findings apply to this record (drives the row badges). */
23
24
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
25
  function Badge({
25
26
  label,
26
- color
27
+ color,
28
+ testID
27
29
  }) {
28
30
  // Quiet chip: legibility from light-gray text on a neutral fill. Only the
29
31
  // serious tiers (red) and WEBP (blue) carry a small dot; the rest are plain.
30
32
  return /*#__PURE__*/_jsxs(View, {
31
33
  style: styles.badgePill,
34
+ testID: testID,
32
35
  children: [color ? /*#__PURE__*/_jsx(View, {
33
36
  style: [styles.badgeDot, {
34
37
  backgroundColor: color
@@ -73,14 +76,17 @@ export function AssetRow({
73
76
  });
74
77
  return /*#__PURE__*/_jsxs(TouchableOpacity, {
75
78
  style: styles.card,
76
- testID: `buoy-asset-row-${record.id}`,
79
+ testID: assetRowTestID(record.name, record.type),
77
80
  onPress: () => onPress(record.id),
78
81
  activeOpacity: 0.7,
79
82
  children: [/*#__PURE__*/_jsxs(View, {
80
83
  style: styles.body,
81
84
  children: [/*#__PURE__*/_jsx(View, {
82
85
  style: styles.thumbBox,
83
- children: thumbSource != null ? /*#__PURE__*/_jsx(Image, {
86
+ children: thumbSource != null ? /*#__PURE__*/_jsx(Image
87
+ // buoy-internal- prefix: the images tool skips its own toolchain's
88
+ // views, so previewing an asset never records a render of itself.
89
+ , {
84
90
  testID: "buoy-internal-assets-thumb",
85
91
  source: thumbSource,
86
92
  style: styles.thumb,
@@ -96,6 +102,7 @@ export function AssetRow({
96
102
  children: [/*#__PURE__*/_jsxs(Text, {
97
103
  style: styles.name,
98
104
  numberOfLines: 1,
105
+ testID: `${assetRowTestID(record.name, record.type)}-name`,
99
106
  children: [record.name, /*#__PURE__*/_jsxs(Text, {
100
107
  style: styles.ext,
101
108
  children: [".", record.type]
@@ -114,12 +121,14 @@ export function AssetRow({
114
121
  style: styles.right,
115
122
  children: [/*#__PURE__*/_jsx(Text, {
116
123
  style: styles.size,
124
+ testID: `${assetRowTestID(record.name, record.type)}-size`,
117
125
  children: formatSize(record, estDecodedBytes(record))
118
126
  }), badges.length ? /*#__PURE__*/_jsx(View, {
119
127
  style: styles.badgeRow,
120
128
  children: badges.slice(0, 3).map(b => /*#__PURE__*/_jsx(Badge, {
121
129
  label: b.label,
122
- color: b.color
130
+ color: b.color,
131
+ testID: assetBadgeTestID(record.name, record.type, b.label)
123
132
  }, b.label))
124
133
  }) : null]
125
134
  })]