@buoy-gg/assets 7.0.29 → 7.0.30

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 (37) hide show
  1. package/lib/commonjs/components/AssetRow.js +13 -4
  2. package/lib/commonjs/components/AssetRow.js.map +1 -1
  3. package/lib/commonjs/utils/testIDs.js +114 -0
  4. package/lib/commonjs/utils/testIDs.js.map +1 -0
  5. package/lib/module/components/AssetRow.js +13 -4
  6. package/lib/module/components/AssetRow.js.map +1 -1
  7. package/lib/module/utils/testIDs.js +103 -0
  8. package/lib/module/utils/testIDs.js.map +1 -0
  9. package/lib/typescript/components/AssetRow.d.ts.map +1 -1
  10. package/lib/typescript/utils/testIDs.d.ts +75 -0
  11. package/lib/typescript/utils/testIDs.d.ts.map +1 -0
  12. package/package.json +5 -6
  13. package/src/capture/expo.ts +0 -45
  14. package/src/capture/install.ts +0 -73
  15. package/src/capture/measure.ts +0 -167
  16. package/src/capture/metroGraph.ts +0 -146
  17. package/src/capture/registry.ts +0 -137
  18. package/src/components/AssetDetail.tsx +0 -207
  19. package/src/components/AssetRow.tsx +0 -243
  20. package/src/components/AssetsFilterBar.tsx +0 -99
  21. package/src/components/AssetsHeader.tsx +0 -75
  22. package/src/components/AssetsIcon.tsx +0 -9
  23. package/src/components/AssetsListControls.tsx +0 -101
  24. package/src/components/AssetsModal.tsx +0 -371
  25. package/src/components/BaselineBar.tsx +0 -98
  26. package/src/export.ts +0 -110
  27. package/src/format.ts +0 -53
  28. package/src/hooks/useAssetRecords.ts +0 -26
  29. package/src/index.tsx +0 -87
  30. package/src/preset.tsx +0 -35
  31. package/src/remote.ts +0 -65
  32. package/src/state.ts +0 -84
  33. package/src/store/assetStore.ts +0 -209
  34. package/src/store/baseline.ts +0 -152
  35. package/src/store/insights.ts +0 -145
  36. package/src/sync/assetsSyncAdapter.ts +0 -151
  37. package/src/types.ts +0 -160
@@ -9,6 +9,7 @@ var _sharedUi = require("@buoy-gg/shared-ui");
9
9
  var _measure = require("../capture/measure");
10
10
  var _format = require("../format");
11
11
  var _assetStore = require("../store/assetStore");
12
+ var _testIDs = require("../utils/testIDs");
12
13
  var _jsxRuntime = require("react/jsx-runtime");
13
14
  /**
14
15
  * AssetRow — one bundled asset as a family-style card (matching the network
@@ -27,12 +28,14 @@ var _jsxRuntime = require("react/jsx-runtime");
27
28
 
28
29
  function Badge({
29
30
  label,
30
- color
31
+ color,
32
+ testID
31
33
  }) {
32
34
  // Quiet chip: legibility from light-gray text on a neutral fill. Only the
33
35
  // serious tiers (red) and WEBP (blue) carry a small dot; the rest are plain.
34
36
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
35
37
  style: styles.badgePill,
38
+ testID: testID,
36
39
  children: [color ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
37
40
  style: [styles.badgeDot, {
38
41
  backgroundColor: color
@@ -77,14 +80,17 @@ function AssetRow({
77
80
  });
78
81
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
79
82
  style: styles.card,
80
- testID: `buoy-asset-row-${record.id}`,
83
+ testID: (0, _testIDs.assetRowTestID)(record.name, record.type),
81
84
  onPress: () => onPress(record.id),
82
85
  activeOpacity: 0.7,
83
86
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
84
87
  style: styles.body,
85
88
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
86
89
  style: styles.thumbBox,
87
- children: thumbSource != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
90
+ children: thumbSource != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image
91
+ // buoy-internal- prefix: the images tool skips its own toolchain's
92
+ // views, so previewing an asset never records a render of itself.
93
+ , {
88
94
  testID: "buoy-internal-assets-thumb",
89
95
  source: thumbSource,
90
96
  style: styles.thumb,
@@ -100,6 +106,7 @@ function AssetRow({
100
106
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
101
107
  style: styles.name,
102
108
  numberOfLines: 1,
109
+ testID: `${(0, _testIDs.assetRowTestID)(record.name, record.type)}-name`,
103
110
  children: [record.name, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
104
111
  style: styles.ext,
105
112
  children: [".", record.type]
@@ -118,12 +125,14 @@ function AssetRow({
118
125
  style: styles.right,
119
126
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
120
127
  style: styles.size,
128
+ testID: `${(0, _testIDs.assetRowTestID)(record.name, record.type)}-size`,
121
129
  children: (0, _format.formatSize)(record, (0, _assetStore.estDecodedBytes)(record))
122
130
  }), badges.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
123
131
  style: styles.badgeRow,
124
132
  children: badges.slice(0, 3).map(b => /*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
125
133
  label: b.label,
126
- color: b.color
134
+ color: b.color,
135
+ testID: (0, _testIDs.assetBadgeTestID)(record.name, record.type, b.label)
127
136
  }, b.label))
128
137
  }) : null]
129
138
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_sharedUi","_measure","_format","_assetStore","_jsxRuntime","Badge","label","color","jsxs","View","style","styles","badgePill","children","jsx","badgeDot","backgroundColor","Text","badgePillText","AssetRow","record","flags","sizeFraction","onPress","accent","KIND_COLORS","kind","thumbSource","displaySource","badges","loaded","push","oversize","macOSColors","semantic","error","duplicate","heavy","scaleAnomaly","scaleGap","webp","info","TouchableOpacity","card","testID","id","activeOpacity","body","thumbBox","Image","source","thumb","resizeMode","thumbFallback","KIND_LABELS","main","name","numberOfLines","ext","type","metaRow","width","meta","formatDimensions","scales","length","formatScales","right","size","formatSize","estDecodedBytes","badgeRow","slice","map","b","sizeTrack","sizeFill","Math","max","round","StyleSheet","create","marginHorizontal","marginTop","borderRadius","night","surface","borderWidth","borderColor","border","overflow","flexDirection","alignItems","paddingVertical","paddingHorizontal","gap","height","justifyContent","fontSize","fontWeight","letterSpacing","flex","text","textTertiary","textSecondary","fontVariant","opacity","borderTopRightRadius"],"sourceRoot":"../../../src","sources":["components/AssetRow.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_sharedUi","_measure","_format","_assetStore","_testIDs","_jsxRuntime","Badge","label","color","testID","jsxs","View","style","styles","badgePill","children","jsx","badgeDot","backgroundColor","Text","badgePillText","AssetRow","record","flags","sizeFraction","onPress","accent","KIND_COLORS","kind","thumbSource","displaySource","badges","loaded","push","oversize","macOSColors","semantic","error","duplicate","heavy","scaleAnomaly","scaleGap","webp","info","TouchableOpacity","card","assetRowTestID","name","type","id","activeOpacity","body","thumbBox","Image","source","thumb","resizeMode","thumbFallback","KIND_LABELS","main","numberOfLines","ext","metaRow","width","meta","formatDimensions","scales","length","formatScales","right","size","formatSize","estDecodedBytes","badgeRow","slice","map","b","assetBadgeTestID","sizeTrack","sizeFill","Math","max","round","StyleSheet","create","marginHorizontal","marginTop","borderRadius","night","surface","borderWidth","borderColor","border","overflow","flexDirection","alignItems","paddingVertical","paddingHorizontal","gap","height","justifyContent","fontSize","fontWeight","letterSpacing","flex","text","textTertiary","textSecondary","fontVariant","opacity","borderTopRightRadius"],"sourceRoot":"../../../src","sources":["components/AssetRow.tsx"],"mappings":"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","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":[]}
@@ -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
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["Image","StyleSheet","Text","TouchableOpacity","View","macOSColors","night","displaySource","formatDimensions","formatScales","formatSize","KIND_COLORS","KIND_LABELS","estDecodedBytes","jsx","_jsx","jsxs","_jsxs","Badge","label","color","style","styles","badgePill","children","badgeDot","backgroundColor","badgePillText","AssetRow","record","flags","sizeFraction","onPress","accent","kind","thumbSource","badges","loaded","push","oversize","semantic","error","duplicate","heavy","scaleAnomaly","scaleGap","webp","info","card","testID","id","activeOpacity","body","thumbBox","source","thumb","resizeMode","thumbFallback","main","name","numberOfLines","ext","type","metaRow","width","meta","scales","length","right","size","badgeRow","slice","map","b","sizeTrack","sizeFill","Math","max","round","create","marginHorizontal","marginTop","borderRadius","surface","borderWidth","borderColor","border","overflow","flexDirection","alignItems","paddingVertical","paddingHorizontal","gap","height","justifyContent","fontSize","fontWeight","letterSpacing","flex","text","textTertiary","textSecondary","fontVariant","opacity","borderTopRightRadius"],"sourceRoot":"../../../src","sources":["components/AssetRow.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Image","StyleSheet","Text","TouchableOpacity","View","macOSColors","night","displaySource","formatDimensions","formatScales","formatSize","KIND_COLORS","KIND_LABELS","estDecodedBytes","assetBadgeTestID","assetRowTestID","jsx","_jsx","jsxs","_jsxs","Badge","label","color","testID","style","styles","badgePill","children","badgeDot","backgroundColor","badgePillText","AssetRow","record","flags","sizeFraction","onPress","accent","kind","thumbSource","badges","loaded","push","oversize","semantic","error","duplicate","heavy","scaleAnomaly","scaleGap","webp","info","card","name","type","id","activeOpacity","body","thumbBox","source","thumb","resizeMode","thumbFallback","main","numberOfLines","ext","metaRow","width","meta","scales","length","right","size","badgeRow","slice","map","b","sizeTrack","sizeFill","Math","max","round","create","marginHorizontal","marginTop","borderRadius","surface","borderWidth","borderColor","border","overflow","flexDirection","alignItems","paddingVertical","paddingHorizontal","gap","height","justifyContent","fontSize","fontWeight","letterSpacing","flex","text","textTertiary","textSecondary","fontVariant","opacity","borderTopRightRadius"],"sourceRoot":"../../../src","sources":["components/AssetRow.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,103 @@
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
@@ -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","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;AACA,OAAO,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;AACA,OAAO,SAASC,cAAcA,CAACC,IAAY,EAAEC,IAAY,EAAU;EACjE,OAAO,mBAAmBP,SAAS,CAAC,GAAGM,IAAI,IAAIC,IAAI,EAAE,CAAC,EAAE;AAC1D;;AAEA;AACA,OAAO,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;AACA,OAAO,SAASC,iBAAiBA,CAACC,MAAc,EAAU;EACxD,OAAO,sBAAsBX,SAAS,CAACW,MAAM,CAAC,EAAE;AAClD;;AAEA;AACA,OAAO,SAASC,oBAAoBA,CAACH,KAAa,EAAU;EAC1D,OAAO,0BAA0BT,SAAS,CAACS,KAAK,CAAC,EAAE;AACrD;;AAEA;AACA,OAAO,SAASI,mBAAmBA,CAACC,MAAc,EAAU;EAC1D,OAAO,oBAAoBd,SAAS,CAACc,MAAM,CAAC,EAAE;AAChD;;AAEA;AACA,OAAO,MAAMC,eAAe,GAAG;EAC7B;EACAC,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;AACA,OAAO,SAASC,kBAAkBA,CAACC,KAAa,EAAU;EACxD,OAAO,8BAA8BA,KAAK,EAAE;AAC9C","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetRow.d.ts","sourceRoot":"","sources":["../../../src/components/AssetRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,aAAa,CAAC;IACrB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAaD,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,aAAa,+BAiF/E"}
1
+ {"version":3,"file":"AssetRow.d.ts","sourceRoot":"","sources":["../../../src/components/AssetRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAcH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,aAAa,CAAC;IACrB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAqBD,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,aAAa,+BA+F/E"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Automation handles for the Assets tool.
3
+ *
4
+ * Every handle the tool renders is built here rather than inlined at the call
5
+ * site, for the same reason the highlight tool does it: the ids for rows,
6
+ * badges, filter chips and detail fields are DERIVED from data, and a suite
7
+ * that reimplements the derivation is a suite that can drift from the tool
8
+ * without either side failing. `detox-e2e/assets/fixture.js` mirrors these
9
+ * rules in CommonJS (the tests can't import TypeScript) and asserts the two
10
+ * still agree before any flow trusts a handle.
11
+ *
12
+ * Naming: `buoy-assets-<area>[-<detail>]`, one prefix for the whole tool.
13
+ */
14
+ /**
15
+ * Lowercase, hyphen-joined, never empty.
16
+ *
17
+ * Shared by rows, badges, filter chips and detail fields so one asset's row
18
+ * handle and its detail handles are slugged the same way — `back-icon.png`
19
+ * becomes `back-icon-png` everywhere it appears.
20
+ */
21
+ export declare function assetSlug(value: string | number): string;
22
+ /**
23
+ * One inventory row, addressed by filename rather than by store id.
24
+ *
25
+ * The store's numeric ids are assigned in first-sighting order and are NOT
26
+ * stable: clearing the inventory and rescanning renumbers everything, and the
27
+ * order the registry walk and the Metro graph merge in depends on what the app
28
+ * has evaluated so far. A handle built from those makes a test that passes
29
+ * only on the run that recorded it.
30
+ *
31
+ * The tradeoff is that two assets with the same filename in different
32
+ * directories collide. That's a real ambiguity rather than a hidden one —
33
+ * Detox reports it as "multiple elements matched", which names the problem —
34
+ * and it's the same tradeoff the row itself makes, since the row shows the
35
+ * filename and not the path.
36
+ */
37
+ export declare function assetRowTestID(name: string, type: string): string;
38
+ /** A finding badge inside a row: `…-badge-low-res`, `…-badge-dup`. */
39
+ export declare function assetBadgeTestID(name: string, type: string, label: string): string;
40
+ /** A kind/status filter chip: `buoy-assets-filter-font`, `…-filter-unused`. */
41
+ export declare function assetFilterTestID(filter: string): string;
42
+ /** One label/value pair in the detail view: `buoy-assets-detail-row-hash`. */
43
+ export declare function assetDetailRowTestID(label: string): string;
44
+ /** A loaded font-family chip: `buoy-assets-font-ionicons`. */
45
+ export declare function assetFontChipTestID(family: string): string;
46
+ /** Fixed handles — everything that isn't derived from a record. */
47
+ export declare const ASSETS_TEST_IDS: {
48
+ readonly title: "buoy-assets-title";
49
+ readonly copy: "buoy-assets-copy";
50
+ readonly clear: "buoy-assets-clear";
51
+ readonly list: "buoy-assets-list";
52
+ readonly search: "buoy-assets-search";
53
+ readonly sort: "buoy-assets-sort";
54
+ readonly saveBaseline: "buoy-assets-save-baseline";
55
+ readonly filterBar: "buoy-assets-filter-bar";
56
+ readonly notice: "buoy-assets-notice";
57
+ readonly noticeText: "buoy-assets-notice-text";
58
+ readonly fonts: "buoy-assets-fonts";
59
+ readonly fontsTitle: "buoy-assets-fonts-title";
60
+ readonly empty: "buoy-assets-empty";
61
+ readonly emptyTitle: "buoy-assets-empty-title";
62
+ 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
+ readonly detail: "buoy-assets-detail";
68
+ readonly detailScroll: "buoy-assets-detail-scroll";
69
+ readonly detailPreview: "buoy-assets-detail-preview";
70
+ readonly detailFontPreview: "buoy-assets-detail-font-preview";
71
+ readonly detailFindings: "buoy-assets-detail-findings";
72
+ };
73
+ /** One finding sentence in the detail view, by position. */
74
+ export declare function assetFindingTestID(index: number): string;
75
+ //# sourceMappingURL=testIDs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testIDs.d.ts","sourceRoot":"","sources":["../../../src/utils/testIDs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAOxD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,MAAM,CAER;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,mEAAmE;AACnE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;CA6BlB,CAAC;AAEX,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD"}
package/package.json CHANGED
@@ -1,21 +1,20 @@
1
1
  {
2
2
  "name": "@buoy-gg/assets",
3
- "version": "7.0.29",
3
+ "version": "7.0.30",
4
4
  "description": "See every asset shipped in your React Native app — bundled images, fonts, video and audio with dimensions, scale variants, byte sizes, duplicate detection and WebP-savings audit. Part of Buoy devtools.",
5
- "main": "lib/commonjs/index",
6
- "module": "lib/module/index",
5
+ "main": "lib/commonjs/index.js",
6
+ "module": "lib/module/index.js",
7
7
  "types": "lib/typescript/index.d.ts",
8
- "react-native": "src/index.tsx",
8
+ "react-native": "lib/module/index.js",
9
9
  "source": "src/index.tsx",
10
10
  "files": [
11
- "src",
12
11
  "lib"
13
12
  ],
14
13
  "sideEffects": [
15
14
  "**/index.*"
16
15
  ],
17
16
  "dependencies": {
18
- "@buoy-gg/shared-ui": "^7.0.29"
17
+ "@buoy-gg/shared-ui": "^7.0.30"
19
18
  },
20
19
  "peerDependencies": {
21
20
  "expo-asset": "*",
@@ -1,45 +0,0 @@
1
- /**
2
- * Expo enrichment — all optional, all read through globalThis.expo guards so
3
- * bare RN apps (no expo-modules) silently get none of it and no imports are
4
- * added for anyone.
5
- */
6
-
7
- interface ExpoGlobal {
8
- modules?: {
9
- ExpoFontLoader?: { getLoadedFonts?: () => string[] };
10
- ExpoUpdates?: { localAssets?: Record<string, string> };
11
- };
12
- }
13
-
14
- function expoModules(): ExpoGlobal["modules"] {
15
- return (globalThis as { expo?: ExpoGlobal }).expo?.modules;
16
- }
17
-
18
- /**
19
- * Every loaded font family — build-time embedded (config plugin / UIAppFonts /
20
- * android assets/fonts) AND runtime Font.loadAsync, straight from the native
21
- * module Expo documents as a stable global. [] when unavailable (bare RN).
22
- */
23
- export function getLoadedFontFamilies(): string[] {
24
- try {
25
- const fonts = expoModules()?.ExpoFontLoader?.getLoadedFonts?.();
26
- return Array.isArray(fonts) ? [...fonts].sort() : [];
27
- } catch {
28
- return [];
29
- }
30
- }
31
-
32
- /**
33
- * expo-updates' per-file-hash → local URI map: the COMPLETE shipped asset set
34
- * in Expo Go / OTA environments, independent of what JS has evaluated.
35
- * null when not running in an updates-managed environment.
36
- */
37
- export function getLocalAssets(): Record<string, string> | null {
38
- try {
39
- const map = expoModules()?.ExpoUpdates?.localAssets;
40
- if (map && typeof map === "object" && Object.keys(map).length > 0) return map;
41
- return null;
42
- } catch {
43
- return null;
44
- }
45
- }