@buoy-gg/assets 7.0.38 → 7.0.40

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 (161) hide show
  1. package/lib/commonjs/capture/expo.js +46 -1
  2. package/lib/commonjs/capture/expo.js.map +1 -0
  3. package/lib/commonjs/capture/install.js +91 -1
  4. package/lib/commonjs/capture/install.js.map +1 -0
  5. package/lib/commonjs/capture/isBuoyAsset.js +23 -1
  6. package/lib/commonjs/capture/isBuoyAsset.js.map +1 -0
  7. package/lib/commonjs/capture/measure.js +186 -1
  8. package/lib/commonjs/capture/measure.js.map +1 -0
  9. package/lib/commonjs/capture/metroGraph.js +175 -1
  10. package/lib/commonjs/capture/metroGraph.js.map +1 -0
  11. package/lib/commonjs/capture/registry.js +127 -1
  12. package/lib/commonjs/capture/registry.js.map +1 -0
  13. package/lib/commonjs/components/AssetDetail.js +211 -1
  14. package/lib/commonjs/components/AssetDetail.js.map +1 -0
  15. package/lib/commonjs/components/AssetImage.js +66 -1
  16. package/lib/commonjs/components/AssetImage.js.map +1 -0
  17. package/lib/commonjs/components/AssetRow.js +232 -1
  18. package/lib/commonjs/components/AssetRow.js.map +1 -0
  19. package/lib/commonjs/components/AssetsFilterBar.js +105 -1
  20. package/lib/commonjs/components/AssetsFilterBar.js.map +1 -0
  21. package/lib/commonjs/components/AssetsHeader.js +73 -1
  22. package/lib/commonjs/components/AssetsHeader.js.map +1 -0
  23. package/lib/commonjs/components/AssetsIcon.js +19 -1
  24. package/lib/commonjs/components/AssetsIcon.js.map +1 -0
  25. package/lib/commonjs/components/AssetsListControls.js +81 -1
  26. package/lib/commonjs/components/AssetsListControls.js.map +1 -0
  27. package/lib/commonjs/components/AssetsModal.js +378 -1
  28. package/lib/commonjs/components/AssetsModal.js.map +1 -0
  29. package/lib/commonjs/components/ScanNotice.js +85 -1
  30. package/lib/commonjs/components/ScanNotice.js.map +1 -0
  31. package/lib/commonjs/components/optionalExpoImage.js +16 -1
  32. package/lib/commonjs/components/optionalExpoImage.js.map +1 -0
  33. package/lib/commonjs/components/optionalExpoImage.web.js +11 -1
  34. package/lib/commonjs/components/optionalExpoImage.web.js.map +1 -0
  35. package/lib/commonjs/export.js +62 -1
  36. package/lib/commonjs/export.js.map +1 -0
  37. package/lib/commonjs/format.js +59 -1
  38. package/lib/commonjs/format.js.map +1 -0
  39. package/lib/commonjs/hooks/useAssetRecords.js +22 -1
  40. package/lib/commonjs/hooks/useAssetRecords.js.map +1 -0
  41. package/lib/commonjs/hooks/useAssetScanStatus.js +28 -1
  42. package/lib/commonjs/hooks/useAssetScanStatus.js.map +1 -0
  43. package/lib/commonjs/index.js +313 -1
  44. package/lib/commonjs/index.js.map +1 -0
  45. package/lib/commonjs/preset.js +39 -1
  46. package/lib/commonjs/preset.js.map +1 -0
  47. package/lib/commonjs/remote.js +68 -1
  48. package/lib/commonjs/remote.js.map +1 -0
  49. package/lib/commonjs/state.js +51 -1
  50. package/lib/commonjs/state.js.map +1 -0
  51. package/lib/commonjs/store/assetStore.js +256 -1
  52. package/lib/commonjs/store/assetStore.js.map +1 -0
  53. package/lib/commonjs/store/baseline.js +175 -1
  54. package/lib/commonjs/store/baseline.js.map +1 -0
  55. package/lib/commonjs/store/insights.js +120 -1
  56. package/lib/commonjs/store/insights.js.map +1 -0
  57. package/lib/commonjs/sync/assetsSyncAdapter.js +157 -1
  58. package/lib/commonjs/sync/assetsSyncAdapter.js.map +1 -0
  59. package/lib/commonjs/types.js +2 -1
  60. package/lib/commonjs/types.js.map +1 -0
  61. package/lib/commonjs/utils/deviceScale.js +50 -1
  62. package/lib/commonjs/utils/deviceScale.js.map +1 -0
  63. package/lib/commonjs/utils/testIDs.js +110 -1
  64. package/lib/commonjs/utils/testIDs.js.map +1 -0
  65. package/lib/module/capture/expo.js +41 -1
  66. package/lib/module/capture/expo.js.map +1 -0
  67. package/lib/module/capture/install.js +85 -1
  68. package/lib/module/capture/install.js.map +1 -0
  69. package/lib/module/capture/isBuoyAsset.js +18 -1
  70. package/lib/module/capture/isBuoyAsset.js.map +1 -0
  71. package/lib/module/capture/measure.js +179 -1
  72. package/lib/module/capture/measure.js.map +1 -0
  73. package/lib/module/capture/metroGraph.js +168 -1
  74. package/lib/module/capture/metroGraph.js.map +1 -0
  75. package/lib/module/capture/registry.js +120 -1
  76. package/lib/module/capture/registry.js.map +1 -0
  77. package/lib/module/components/AssetDetail.js +207 -1
  78. package/lib/module/components/AssetDetail.js.map +1 -0
  79. package/lib/module/components/AssetImage.js +62 -1
  80. package/lib/module/components/AssetImage.js.map +1 -0
  81. package/lib/module/components/AssetRow.js +228 -1
  82. package/lib/module/components/AssetRow.js.map +1 -0
  83. package/lib/module/components/AssetsFilterBar.js +101 -1
  84. package/lib/module/components/AssetsFilterBar.js.map +1 -0
  85. package/lib/module/components/AssetsHeader.js +69 -1
  86. package/lib/module/components/AssetsHeader.js.map +1 -0
  87. package/lib/module/components/AssetsIcon.js +12 -1
  88. package/lib/module/components/AssetsIcon.js.map +1 -0
  89. package/lib/module/components/AssetsListControls.js +77 -1
  90. package/lib/module/components/AssetsListControls.js.map +1 -0
  91. package/lib/module/components/AssetsModal.js +373 -1
  92. package/lib/module/components/AssetsModal.js.map +1 -0
  93. package/lib/module/components/ScanNotice.js +81 -1
  94. package/lib/module/components/ScanNotice.js.map +1 -0
  95. package/lib/module/components/optionalExpoImage.js +12 -1
  96. package/lib/module/components/optionalExpoImage.js.map +1 -0
  97. package/lib/module/components/optionalExpoImage.web.js +7 -1
  98. package/lib/module/components/optionalExpoImage.web.js.map +1 -0
  99. package/lib/module/export.js +57 -1
  100. package/lib/module/export.js.map +1 -0
  101. package/lib/module/format.js +51 -1
  102. package/lib/module/format.js.map +1 -0
  103. package/lib/module/hooks/useAssetRecords.js +18 -1
  104. package/lib/module/hooks/useAssetRecords.js.map +1 -0
  105. package/lib/module/hooks/useAssetScanStatus.js +23 -1
  106. package/lib/module/hooks/useAssetScanStatus.js.map +1 -0
  107. package/lib/module/index.js +63 -1
  108. package/lib/module/index.js.map +1 -0
  109. package/lib/module/preset.js +35 -1
  110. package/lib/module/preset.js.map +1 -0
  111. package/lib/module/remote.js +61 -1
  112. package/lib/module/remote.js.map +1 -0
  113. package/lib/module/state.js +47 -1
  114. package/lib/module/state.js.map +1 -0
  115. package/lib/module/store/assetStore.js +240 -1
  116. package/lib/module/store/assetStore.js.map +1 -0
  117. package/lib/module/store/baseline.js +167 -1
  118. package/lib/module/store/baseline.js.map +1 -0
  119. package/lib/module/store/insights.js +116 -1
  120. package/lib/module/store/insights.js.map +1 -0
  121. package/lib/module/sync/assetsSyncAdapter.js +153 -1
  122. package/lib/module/sync/assetsSyncAdapter.js.map +1 -0
  123. package/lib/module/types.js +2 -1
  124. package/lib/module/types.js.map +1 -0
  125. package/lib/module/utils/deviceScale.js +46 -1
  126. package/lib/module/utils/deviceScale.js.map +1 -0
  127. package/lib/module/utils/testIDs.js +99 -1
  128. package/lib/module/utils/testIDs.js.map +1 -0
  129. package/lib/typescript/capture/expo.d.ts.map +1 -0
  130. package/lib/typescript/capture/install.d.ts.map +1 -0
  131. package/lib/typescript/capture/isBuoyAsset.d.ts.map +1 -0
  132. package/lib/typescript/capture/measure.d.ts.map +1 -0
  133. package/lib/typescript/capture/metroGraph.d.ts.map +1 -0
  134. package/lib/typescript/capture/registry.d.ts.map +1 -0
  135. package/lib/typescript/components/AssetDetail.d.ts.map +1 -0
  136. package/lib/typescript/components/AssetImage.d.ts.map +1 -0
  137. package/lib/typescript/components/AssetRow.d.ts.map +1 -0
  138. package/lib/typescript/components/AssetsFilterBar.d.ts.map +1 -0
  139. package/lib/typescript/components/AssetsHeader.d.ts.map +1 -0
  140. package/lib/typescript/components/AssetsIcon.d.ts.map +1 -0
  141. package/lib/typescript/components/AssetsListControls.d.ts.map +1 -0
  142. package/lib/typescript/components/AssetsModal.d.ts.map +1 -0
  143. package/lib/typescript/components/ScanNotice.d.ts.map +1 -0
  144. package/lib/typescript/components/optionalExpoImage.d.ts.map +1 -0
  145. package/lib/typescript/components/optionalExpoImage.web.d.ts.map +1 -0
  146. package/lib/typescript/export.d.ts.map +1 -0
  147. package/lib/typescript/format.d.ts.map +1 -0
  148. package/lib/typescript/hooks/useAssetRecords.d.ts.map +1 -0
  149. package/lib/typescript/hooks/useAssetScanStatus.d.ts.map +1 -0
  150. package/lib/typescript/index.d.ts.map +1 -0
  151. package/lib/typescript/preset.d.ts.map +1 -0
  152. package/lib/typescript/remote.d.ts.map +1 -0
  153. package/lib/typescript/state.d.ts.map +1 -0
  154. package/lib/typescript/store/assetStore.d.ts.map +1 -0
  155. package/lib/typescript/store/baseline.d.ts.map +1 -0
  156. package/lib/typescript/store/insights.d.ts.map +1 -0
  157. package/lib/typescript/sync/assetsSyncAdapter.d.ts.map +1 -0
  158. package/lib/typescript/types.d.ts.map +1 -0
  159. package/lib/typescript/utils/deviceScale.d.ts.map +1 -0
  160. package/lib/typescript/utils/testIDs.d.ts.map +1 -0
  161. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_format","require","_assetStore","formatAssetMarkdown","record","lines","name","type","kind","loaded","push","formatDimensions","scales","length","formatScales","sizeBytes","sizeSource","formatBytes","estimate","estDecodedBytes","hash","httpServerLocation","fileSystemLocation","resolvedUri","join","formatInventoryMarkdown","records","stats","insights","scanStatus","diff","total","neverLoaded","totalBytes","measuredCount","fontFamilies","graphSupported","graphError","net","netBytes","Math","abs","Date","baselineSavedAt","toISOString","added","removed","grown","gone","slice","findings","duplicates","webpCandidates","scaleGaps","overDecode","heavyGifs","heavyFonts","scaleAnomalies","r","size"],"sourceRoot":"../../src","sources":["export.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1,59 @@
1
- "use strict";function formatBytes(t){return null==t||t<=0?"—":t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1048576).toFixed(2)} MB`}function formatScales(t){const e=[...new Set(t)].sort((t,e)=>t-e);return e.length?1===e.length?`@${e[0]}x`:e.length<=3?e.map(t=>`@${t}x`).join(" "):`@${e[0]}x–@${e[e.length-1]}x`:"—"}function formatDimensions(t){return null==t.width||null==t.height?"—":`${Math.round(t.width)}×${Math.round(t.height)}`}function formatSize(t,e){return null!=t.sizeBytes&&"measured"===t.sizeSource?formatBytes(t.sizeBytes):e>0?`~${formatBytes(e)}`:"—"}Object.defineProperty(exports,"__esModule",{value:!0}),exports.KIND_LABELS=exports.KIND_COLORS=void 0,exports.formatBytes=formatBytes,exports.formatDimensions=formatDimensions,exports.formatScales=formatScales,exports.formatSize=formatSize;const KIND_LABELS=exports.KIND_LABELS={image:"IMG",font:"FONT",video:"VID",audio:"AUD",data:"DATA",other:"MISC"},KIND_COLORS=exports.KIND_COLORS={image:"#2DD4BF",font:"#C084FC",video:"#FF9F1C",audio:"#FF3366",data:"#00D4FF",other:"#8E8E93"};
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.KIND_LABELS = exports.KIND_COLORS = void 0;
7
+ exports.formatBytes = formatBytes;
8
+ exports.formatDimensions = formatDimensions;
9
+ exports.formatScales = formatScales;
10
+ exports.formatSize = formatSize;
11
+ /**
12
+ * Shared formatting helpers for rows, detail view, and markdown export.
13
+ */
14
+
15
+ function formatBytes(bytes) {
16
+ if (bytes == null || bytes <= 0) return "—";
17
+ if (bytes < 1024) return `${bytes} B`;
18
+ if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
19
+ return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;
20
+ }
21
+ function formatScales(scales) {
22
+ const unique = [...new Set(scales)].sort((a, b) => a - b);
23
+ if (!unique.length) return "—";
24
+ if (unique.length === 1) return `@${unique[0]}x`;
25
+ if (unique.length <= 3) return unique.map(s => `@${s}x`).join(" ");
26
+ return `@${unique[0]}x–@${unique[unique.length - 1]}x`;
27
+ }
28
+ function formatDimensions(record) {
29
+ if (record.width == null || record.height == null) return "—";
30
+ return `${Math.round(record.width)}×${Math.round(record.height)}`;
31
+ }
32
+
33
+ /** Display size: measured bytes, or "~" decoded estimate for unmeasured images. */
34
+ function formatSize(record, estDecoded) {
35
+ if (record.sizeBytes != null && record.sizeSource === "measured") {
36
+ return formatBytes(record.sizeBytes);
37
+ }
38
+ if (estDecoded > 0) return `~${formatBytes(estDecoded)}`;
39
+ return "—";
40
+ }
41
+ const KIND_LABELS = exports.KIND_LABELS = {
42
+ image: "IMG",
43
+ font: "FONT",
44
+ video: "VID",
45
+ audio: "AUD",
46
+ data: "DATA",
47
+ other: "MISC"
48
+ };
49
+
50
+ /** Family accent per kind — the card's left edge, like network's method bar. */
51
+ const KIND_COLORS = exports.KIND_COLORS = {
52
+ image: "#2DD4BF",
53
+ font: "#C084FC",
54
+ video: "#FF9F1C",
55
+ audio: "#FF3366",
56
+ data: "#00D4FF",
57
+ other: "#8E8E93"
58
+ };
59
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["formatBytes","bytes","toFixed","formatScales","scales","unique","Set","sort","a","b","length","map","s","join","formatDimensions","record","width","height","Math","round","formatSize","estDecoded","sizeBytes","sizeSource","KIND_LABELS","exports","image","font","video","audio","data","other","KIND_COLORS"],"sourceRoot":"../../src","sources":["format.ts"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;;AAIO,SAASA,WAAWA,CAACC,KAAgC,EAAU;EACpE,IAAIA,KAAK,IAAI,IAAI,IAAIA,KAAK,IAAI,CAAC,EAAE,OAAO,GAAG;EAC3C,IAAIA,KAAK,GAAG,IAAI,EAAE,OAAO,GAAGA,KAAK,IAAI;EACrC,IAAIA,KAAK,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,GAAG,CAACA,KAAK,GAAG,IAAI,EAAEC,OAAO,CAAC,CAAC,CAAC,KAAK;EACjE,OAAO,GAAG,CAACD,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,EAAEC,OAAO,CAAC,CAAC,CAAC,KAAK;AACnD;AAEO,SAASC,YAAYA,CAACC,MAAgB,EAAU;EACrD,MAAMC,MAAM,GAAG,CAAC,GAAG,IAAIC,GAAG,CAACF,MAAM,CAAC,CAAC,CAACG,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC;EACzD,IAAI,CAACJ,MAAM,CAACK,MAAM,EAAE,OAAO,GAAG;EAC9B,IAAIL,MAAM,CAACK,MAAM,KAAK,CAAC,EAAE,OAAO,IAAIL,MAAM,CAAC,CAAC,CAAC,GAAG;EAChD,IAAIA,MAAM,CAACK,MAAM,IAAI,CAAC,EAAE,OAAOL,MAAM,CAACM,GAAG,CAAEC,CAAC,IAAK,IAAIA,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;EACpE,OAAO,IAAIR,MAAM,CAAC,CAAC,CAAC,MAAMA,MAAM,CAACA,MAAM,CAACK,MAAM,GAAG,CAAC,CAAC,GAAG;AACxD;AAEO,SAASI,gBAAgBA,CAACC,MAAmB,EAAU;EAC5D,IAAIA,MAAM,CAACC,KAAK,IAAI,IAAI,IAAID,MAAM,CAACE,MAAM,IAAI,IAAI,EAAE,OAAO,GAAG;EAC7D,OAAO,GAAGC,IAAI,CAACC,KAAK,CAACJ,MAAM,CAACC,KAAK,CAAC,IAAIE,IAAI,CAACC,KAAK,CAACJ,MAAM,CAACE,MAAM,CAAC,EAAE;AACnE;;AAEA;AACO,SAASG,UAAUA,CAACL,MAAmB,EAAEM,UAAkB,EAAU;EAC1E,IAAIN,MAAM,CAACO,SAAS,IAAI,IAAI,IAAIP,MAAM,CAACQ,UAAU,KAAK,UAAU,EAAE;IAChE,OAAOvB,WAAW,CAACe,MAAM,CAACO,SAAS,CAAC;EACtC;EACA,IAAID,UAAU,GAAG,CAAC,EAAE,OAAO,IAAIrB,WAAW,CAACqB,UAAU,CAAC,EAAE;EACxD,OAAO,GAAG;AACZ;AAEO,MAAMG,WAAsC,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACpDE,KAAK,EAAE,KAAK;EACZC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,KAAK;EACZC,KAAK,EAAE,KAAK;EACZC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE;AACT,CAAC;;AAED;AACO,MAAMC,WAAsC,GAAAP,OAAA,CAAAO,WAAA,GAAG;EACpDN,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE,SAAS;EACfC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE,SAAS;EACfC,KAAK,EAAE;AACT,CAAC","ignoreList":[]}
@@ -1 +1,22 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useAssetRecords=useAssetRecords;var _react=require("react"),_assetStore=require("../store/assetStore"),_insights=require("../store/insights");function useAssetRecords(){const e=(0,_react.useSyncExternalStore)(_assetStore.subscribe,_assetStore.getSnapshot,_assetStore.getSnapshot);return(0,_react.useMemo)(()=>({records:e,stats:(0,_assetStore.computeStats)(e),insights:(0,_insights.computeInsights)(e)}),[e])}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useAssetRecords = useAssetRecords;
7
+ var _react = require("react");
8
+ var _assetStore = require("../store/assetStore");
9
+ var _insights = require("../store/insights");
10
+ /**
11
+ * React bindings for the asset store.
12
+ */
13
+
14
+ function useAssetRecords() {
15
+ const snapshot = (0, _react.useSyncExternalStore)(_assetStore.subscribe, _assetStore.getSnapshot, _assetStore.getSnapshot);
16
+ return (0, _react.useMemo)(() => ({
17
+ records: snapshot,
18
+ stats: (0, _assetStore.computeStats)(snapshot),
19
+ insights: (0, _insights.computeInsights)(snapshot)
20
+ }), [snapshot]);
21
+ }
22
+ //# sourceMappingURL=useAssetRecords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_assetStore","_insights","useAssetRecords","snapshot","useSyncExternalStore","subscribe","getSnapshot","useMemo","records","stats","computeStats","insights","computeInsights"],"sourceRoot":"../../../src","sources":["hooks/useAssetRecords.ts"],"mappings":";;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AANA;AACA;AACA;;AAaO,SAASG,eAAeA,CAAA,EAA0B;EACvD,MAAMC,QAAQ,GAAG,IAAAC,2BAAoB,EAACC,qBAAS,EAAEC,uBAAW,EAAEA,uBAAW,CAAC;EAC1E,OAAO,IAAAC,cAAO,EACZ,OAAO;IACLC,OAAO,EAAEL,QAAQ;IACjBM,KAAK,EAAE,IAAAC,wBAAY,EAACP,QAAQ,CAAC;IAC7BQ,QAAQ,EAAE,IAAAC,yBAAe,EAACT,QAAQ;EACpC,CAAC,CAAC,EACF,CAACA,QAAQ,CACX,CAAC;AACH","ignoreList":[]}
@@ -1 +1,28 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAssetScanSnapshot=getAssetScanSnapshot,exports.useAssetScanStatus=useAssetScanStatus;var _react=require("react"),_install=require("../capture/install"),_assetStore=require("../store/assetStore");let previousRecords,previousStatus;function getAssetScanSnapshot(){const t=(0,_assetStore.getSnapshot)();return t!==previousRecords&&(previousRecords=t,previousStatus=(0,_install.getScanStatus)()),previousStatus}function useAssetScanStatus(){return(0,_react.useSyncExternalStore)(_assetStore.subscribe,getAssetScanSnapshot,getAssetScanSnapshot)}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getAssetScanSnapshot = getAssetScanSnapshot;
7
+ exports.useAssetScanStatus = useAssetScanStatus;
8
+ var _react = require("react");
9
+ var _install = require("../capture/install");
10
+ var _assetStore = require("../store/assetStore");
11
+ let previousRecords;
12
+ let previousStatus;
13
+
14
+ /** Each store notification replaces the records snapshot, including status-only updates. */
15
+ function getAssetScanSnapshot() {
16
+ const records = (0, _assetStore.getSnapshot)();
17
+ if (records !== previousRecords) {
18
+ previousRecords = records;
19
+ previousStatus = (0, _install.getScanStatus)();
20
+ }
21
+ return previousStatus;
22
+ }
23
+
24
+ /** Keep scan status reactive in apps that use React Compiler. */
25
+ function useAssetScanStatus() {
26
+ return (0, _react.useSyncExternalStore)(_assetStore.subscribe, getAssetScanSnapshot, getAssetScanSnapshot);
27
+ }
28
+ //# sourceMappingURL=useAssetScanStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_install","_assetStore","previousRecords","previousStatus","getAssetScanSnapshot","records","getSnapshot","getScanStatus","useAssetScanStatus","useSyncExternalStore","subscribe"],"sourceRoot":"../../../src","sources":["hooks/useAssetScanStatus.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAGA,IAAIG,eAA0C;AAC9C,IAAIC,cAAgC;;AAEpC;AACO,SAASC,oBAAoBA,CAAA,EAAqB;EACvD,MAAMC,OAAO,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAC7B,IAAID,OAAO,KAAKH,eAAe,EAAE;IAC/BA,eAAe,GAAGG,OAAO;IACzBF,cAAc,GAAG,IAAAI,sBAAa,EAAC,CAAC;EAClC;EACA,OAAOJ,cAAc;AACvB;;AAEA;AACO,SAASK,kBAAkBA,CAAA,EAAqB;EACrD,OAAO,IAAAC,2BAAoB,EAACC,qBAAS,EAAEN,oBAAoB,EAAEA,oBAAoB,CAAC;AACpF","ignoreList":[]}
@@ -1 +1,313 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ASSETS_ICON_COLOR",{enumerable:!0,get:function(){return _AssetsIcon.ASSETS_ICON_COLOR}}),Object.defineProperty(exports,"ASSETS_TEST_IDS",{enumerable:!0,get:function(){return _testIDs.ASSETS_TEST_IDS}}),Object.defineProperty(exports,"AssetsIcon",{enumerable:!0,get:function(){return _AssetsIcon.AssetsIcon}}),Object.defineProperty(exports,"AssetsModal",{enumerable:!0,get:function(){return _AssetsModal.AssetsModal}}),Object.defineProperty(exports,"AssetsToolView",{enumerable:!0,get:function(){return _AssetsModal.AssetsToolView}}),Object.defineProperty(exports,"assetBadgeTestID",{enumerable:!0,get:function(){return _testIDs.assetBadgeTestID}}),Object.defineProperty(exports,"assetDetailRowTestID",{enumerable:!0,get:function(){return _testIDs.assetDetailRowTestID}}),Object.defineProperty(exports,"assetFilterTestID",{enumerable:!0,get:function(){return _testIDs.assetFilterTestID}}),Object.defineProperty(exports,"assetFindingTestID",{enumerable:!0,get:function(){return _testIDs.assetFindingTestID}}),Object.defineProperty(exports,"assetFontChipTestID",{enumerable:!0,get:function(){return _testIDs.assetFontChipTestID}}),Object.defineProperty(exports,"assetRowTestID",{enumerable:!0,get:function(){return _testIDs.assetRowTestID}}),Object.defineProperty(exports,"assetSlug",{enumerable:!0,get:function(){return _testIDs.assetSlug}}),Object.defineProperty(exports,"assetsSyncAdapter",{enumerable:!0,get:function(){return _assetsSyncAdapter.assetsSyncAdapter}}),Object.defineProperty(exports,"assetsToolPreset",{enumerable:!0,get:function(){return _preset.assetsToolPreset}}),Object.defineProperty(exports,"clearBaseline",{enumerable:!0,get:function(){return _baseline.clearBaseline}}),Object.defineProperty(exports,"clearRecords",{enumerable:!0,get:function(){return _assetStore.clearRecords}}),Object.defineProperty(exports,"computeDiff",{enumerable:!0,get:function(){return _baseline.computeDiff}}),Object.defineProperty(exports,"computeInsights",{enumerable:!0,get:function(){return _insights.computeInsights}}),Object.defineProperty(exports,"computeStats",{enumerable:!0,get:function(){return _assetStore.computeStats}}),Object.defineProperty(exports,"createAssetsTool",{enumerable:!0,get:function(){return _preset.createAssetsTool}}),Object.defineProperty(exports,"disableAssetsCapture",{enumerable:!0,get:function(){return _remote.disableAssetsCapture}}),Object.defineProperty(exports,"estDecodedBytes",{enumerable:!0,get:function(){return _assetStore.estDecodedBytes}}),Object.defineProperty(exports,"fetchAssetGraph",{enumerable:!0,get:function(){return _metroGraph.fetchAssetGraph}}),Object.defineProperty(exports,"formatAssetMarkdown",{enumerable:!0,get:function(){return _export.formatAssetMarkdown}}),Object.defineProperty(exports,"formatInventoryMarkdown",{enumerable:!0,get:function(){return _export.formatInventoryMarkdown}}),Object.defineProperty(exports,"getDevServerOrigin",{enumerable:!0,get:function(){return _metroGraph.getDevServerOrigin}}),Object.defineProperty(exports,"getDiff",{enumerable:!0,get:function(){return _baseline.getDiff}}),Object.defineProperty(exports,"getLoadedFontFamilies",{enumerable:!0,get:function(){return _expo.getLoadedFontFamilies}}),Object.defineProperty(exports,"getLocalAssets",{enumerable:!0,get:function(){return _expo.getLocalAssets}}),Object.defineProperty(exports,"getRecord",{enumerable:!0,get:function(){return _assetStore.getRecord}}),Object.defineProperty(exports,"getScanStatus",{enumerable:!0,get:function(){return _install.getScanStatus}}),Object.defineProperty(exports,"getSnapshot",{enumerable:!0,get:function(){return _assetStore.getSnapshot}}),Object.defineProperty(exports,"installAssetCapture",{enumerable:!0,get:function(){return _install.installAssetCapture}}),Object.defineProperty(exports,"loadBaseline",{enumerable:!0,get:function(){return _baseline.loadBaseline}}),Object.defineProperty(exports,"measureSizes",{enumerable:!0,get:function(){return _measure.measureSizes}}),Object.defineProperty(exports,"replaceAssetsFromSnapshot",{enumerable:!0,get:function(){return _remote.replaceAssetsFromSnapshot}}),Object.defineProperty(exports,"rescan",{enumerable:!0,get:function(){return _install.rescan}}),Object.defineProperty(exports,"saveBaseline",{enumerable:!0,get:function(){return _baseline.saveBaseline}}),Object.defineProperty(exports,"setRemoteAssetsHandler",{enumerable:!0,get:function(){return _remote.setRemoteAssetsHandler}}),Object.defineProperty(exports,"subscribe",{enumerable:!0,get:function(){return _assetStore.subscribe}}),Object.defineProperty(exports,"useAssetRecords",{enumerable:!0,get:function(){return _useAssetRecords.useAssetRecords}});var _preset=require("./preset"),_AssetsModal=require("./components/AssetsModal"),_AssetsIcon=require("./components/AssetsIcon"),_install=require("./capture/install"),_measure=require("./capture/measure"),_metroGraph=require("./capture/metroGraph"),_expo=require("./capture/expo"),_assetStore=require("./store/assetStore"),_insights=require("./store/insights"),_baseline=require("./store/baseline"),_useAssetRecords=require("./hooks/useAssetRecords"),_export=require("./export"),_assetsSyncAdapter=require("./sync/assetsSyncAdapter"),_remote=require("./remote"),_testIDs=require("./utils/testIDs");(0,_install.installAssetCapture)();
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ASSETS_ICON_COLOR", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _AssetsIcon.ASSETS_ICON_COLOR;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "ASSETS_TEST_IDS", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _testIDs.ASSETS_TEST_IDS;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "AssetsIcon", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _AssetsIcon.AssetsIcon;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "AssetsModal", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _AssetsModal.AssetsModal;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "AssetsToolView", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _AssetsModal.AssetsToolView;
34
+ }
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
+ });
78
+ Object.defineProperty(exports, "assetsSyncAdapter", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _assetsSyncAdapter.assetsSyncAdapter;
82
+ }
83
+ });
84
+ Object.defineProperty(exports, "assetsToolPreset", {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _preset.assetsToolPreset;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "clearBaseline", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _baseline.clearBaseline;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "clearRecords", {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _assetStore.clearRecords;
100
+ }
101
+ });
102
+ Object.defineProperty(exports, "computeDiff", {
103
+ enumerable: true,
104
+ get: function () {
105
+ return _baseline.computeDiff;
106
+ }
107
+ });
108
+ Object.defineProperty(exports, "computeInsights", {
109
+ enumerable: true,
110
+ get: function () {
111
+ return _insights.computeInsights;
112
+ }
113
+ });
114
+ Object.defineProperty(exports, "computeStats", {
115
+ enumerable: true,
116
+ get: function () {
117
+ return _assetStore.computeStats;
118
+ }
119
+ });
120
+ Object.defineProperty(exports, "createAssetsTool", {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _preset.createAssetsTool;
124
+ }
125
+ });
126
+ Object.defineProperty(exports, "disableAssetsCapture", {
127
+ enumerable: true,
128
+ get: function () {
129
+ return _remote.disableAssetsCapture;
130
+ }
131
+ });
132
+ Object.defineProperty(exports, "estDecodedBytes", {
133
+ enumerable: true,
134
+ get: function () {
135
+ return _assetStore.estDecodedBytes;
136
+ }
137
+ });
138
+ Object.defineProperty(exports, "fetchAssetGraph", {
139
+ enumerable: true,
140
+ get: function () {
141
+ return _metroGraph.fetchAssetGraph;
142
+ }
143
+ });
144
+ Object.defineProperty(exports, "formatAssetMarkdown", {
145
+ enumerable: true,
146
+ get: function () {
147
+ return _export.formatAssetMarkdown;
148
+ }
149
+ });
150
+ Object.defineProperty(exports, "formatInventoryMarkdown", {
151
+ enumerable: true,
152
+ get: function () {
153
+ return _export.formatInventoryMarkdown;
154
+ }
155
+ });
156
+ Object.defineProperty(exports, "getDevServerOrigin", {
157
+ enumerable: true,
158
+ get: function () {
159
+ return _metroGraph.getDevServerOrigin;
160
+ }
161
+ });
162
+ Object.defineProperty(exports, "getDiff", {
163
+ enumerable: true,
164
+ get: function () {
165
+ return _baseline.getDiff;
166
+ }
167
+ });
168
+ Object.defineProperty(exports, "getLoadedFontFamilies", {
169
+ enumerable: true,
170
+ get: function () {
171
+ return _expo.getLoadedFontFamilies;
172
+ }
173
+ });
174
+ Object.defineProperty(exports, "getLocalAssets", {
175
+ enumerable: true,
176
+ get: function () {
177
+ return _expo.getLocalAssets;
178
+ }
179
+ });
180
+ Object.defineProperty(exports, "getRecord", {
181
+ enumerable: true,
182
+ get: function () {
183
+ return _assetStore.getRecord;
184
+ }
185
+ });
186
+ Object.defineProperty(exports, "getScanStatus", {
187
+ enumerable: true,
188
+ get: function () {
189
+ return _install.getScanStatus;
190
+ }
191
+ });
192
+ Object.defineProperty(exports, "getSnapshot", {
193
+ enumerable: true,
194
+ get: function () {
195
+ return _assetStore.getSnapshot;
196
+ }
197
+ });
198
+ Object.defineProperty(exports, "installAssetCapture", {
199
+ enumerable: true,
200
+ get: function () {
201
+ return _install.installAssetCapture;
202
+ }
203
+ });
204
+ Object.defineProperty(exports, "loadBaseline", {
205
+ enumerable: true,
206
+ get: function () {
207
+ return _baseline.loadBaseline;
208
+ }
209
+ });
210
+ Object.defineProperty(exports, "measureSizes", {
211
+ enumerable: true,
212
+ get: function () {
213
+ return _measure.measureSizes;
214
+ }
215
+ });
216
+ Object.defineProperty(exports, "replaceAssetsFromSnapshot", {
217
+ enumerable: true,
218
+ get: function () {
219
+ return _remote.replaceAssetsFromSnapshot;
220
+ }
221
+ });
222
+ Object.defineProperty(exports, "rescan", {
223
+ enumerable: true,
224
+ get: function () {
225
+ return _install.rescan;
226
+ }
227
+ });
228
+ Object.defineProperty(exports, "saveBaseline", {
229
+ enumerable: true,
230
+ get: function () {
231
+ return _baseline.saveBaseline;
232
+ }
233
+ });
234
+ Object.defineProperty(exports, "setRemoteAssetsHandler", {
235
+ enumerable: true,
236
+ get: function () {
237
+ return _remote.setRemoteAssetsHandler;
238
+ }
239
+ });
240
+ Object.defineProperty(exports, "subscribe", {
241
+ enumerable: true,
242
+ get: function () {
243
+ return _assetStore.subscribe;
244
+ }
245
+ });
246
+ Object.defineProperty(exports, "useAssetRecords", {
247
+ enumerable: true,
248
+ get: function () {
249
+ return _useAssetRecords.useAssetRecords;
250
+ }
251
+ });
252
+ var _preset = require("./preset");
253
+ var _AssetsModal = require("./components/AssetsModal");
254
+ var _AssetsIcon = require("./components/AssetsIcon");
255
+ var _install = require("./capture/install");
256
+ var _measure = require("./capture/measure");
257
+ var _metroGraph = require("./capture/metroGraph");
258
+ var _expo = require("./capture/expo");
259
+ var _assetStore = require("./store/assetStore");
260
+ var _insights = require("./store/insights");
261
+ var _baseline = require("./store/baseline");
262
+ var _useAssetRecords = require("./hooks/useAssetRecords");
263
+ var _export = require("./export");
264
+ var _assetsSyncAdapter = require("./sync/assetsSyncAdapter");
265
+ var _remote = require("./remote");
266
+ var _testIDs = require("./utils/testIDs");
267
+ /**
268
+ * @buoy-gg/assets — bundled-asset inventory for React Native / Expo.
269
+ *
270
+ * Enumerates every asset in the app (images, fonts, video, audio, …) via the
271
+ * runtime asset registry, enriched in dev with the Metro graph (full-bundle
272
+ * coverage, byte sizes, never-loaded detection) and on Expo with loaded font
273
+ * families + the updates localAssets map. Zero configuration: importing this
274
+ * package installs the (cheap, synchronous) registry capture.
275
+ */
276
+
277
+ // ---------------------------------------------------------------------------
278
+ // Tool preset (FloatingDevTools)
279
+ // ---------------------------------------------------------------------------
280
+
281
+ // ---------------------------------------------------------------------------
282
+ // Components
283
+ // ---------------------------------------------------------------------------
284
+
285
+ // ---------------------------------------------------------------------------
286
+ // Capture / scanning
287
+ // ---------------------------------------------------------------------------
288
+
289
+ // ---------------------------------------------------------------------------
290
+ // Store
291
+ // ---------------------------------------------------------------------------
292
+
293
+ // ---------------------------------------------------------------------------
294
+ // Reports
295
+ // ---------------------------------------------------------------------------
296
+
297
+ // ---------------------------------------------------------------------------
298
+ // External sync (desktop dashboard + MCP)
299
+ // ---------------------------------------------------------------------------
300
+
301
+ // ---------------------------------------------------------------------------
302
+ // Automation handles
303
+ // ---------------------------------------------------------------------------
304
+
305
+ // ---------------------------------------------------------------------------
306
+ // Types
307
+ // ---------------------------------------------------------------------------
308
+
309
+ // Side effect: install the registry capture at import (walk + patch — cheap,
310
+ // synchronous, no network). The Metro graph fetch waits for the modal/action.
311
+
312
+ (0, _install.installAssetCapture)();
313
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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":[]}
@@ -1 +1,39 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createAssetsTool=exports.assetsToolPreset=void 0;var _AssetsIcon=require("./components/AssetsIcon"),_AssetsModal=require("./components/AssetsModal"),_sharedUi=require("@buoy-gg/shared-ui"),_jsxRuntime=require("react/jsx-runtime");const assetsToolPreset=exports.assetsToolPreset=(0,_sharedUi.defineToolPreset)({id:"assets",name:"ASSETS",description:"Every bundled asset — sizes, scale coverage, unused detection",slot:"both",icon:({size:s,color:e})=>(0,_jsxRuntime.jsx)(_AssetsIcon.AssetsIcon,{size:s,color:e||_AssetsIcon.ASSETS_ICON_COLOR}),component:_AssetsModal.AssetsModal}),createAssetsTool=exports.createAssetsTool=(0,_sharedUi.createToolFactory)(assetsToolPreset);
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createAssetsTool = exports.assetsToolPreset = void 0;
7
+ var _AssetsIcon = require("./components/AssetsIcon");
8
+ var _AssetsModal = require("./components/AssetsModal");
9
+ var _sharedUi = require("@buoy-gg/shared-ui");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ /**
12
+ * Pre-configured Assets tool for FloatingDevTools.
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * import { assetsToolPreset } from '@buoy-gg/assets';
17
+ *
18
+ * <FloatingDevTools apps={[assetsToolPreset]} />
19
+ * ```
20
+ */
21
+
22
+ const assetsToolPreset = exports.assetsToolPreset = (0, _sharedUi.defineToolPreset)({
23
+ id: "assets",
24
+ name: "ASSETS",
25
+ description: "Every bundled asset — sizes, scale coverage, unused detection",
26
+ slot: "both",
27
+ icon: ({
28
+ size,
29
+ color
30
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_AssetsIcon.AssetsIcon, {
31
+ size: size,
32
+ color: color || _AssetsIcon.ASSETS_ICON_COLOR
33
+ }),
34
+ component: _AssetsModal.AssetsModal
35
+ });
36
+
37
+ /** Create a custom Assets tool configuration. */
38
+ const createAssetsTool = exports.createAssetsTool = (0, _sharedUi.createToolFactory)(assetsToolPreset);
39
+ //# sourceMappingURL=preset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_AssetsIcon","require","_AssetsModal","_sharedUi","_jsxRuntime","assetsToolPreset","exports","defineToolPreset","id","name","description","slot","icon","size","color","jsx","AssetsIcon","ASSETS_ICON_COLOR","component","AssetsModal","createAssetsTool","createToolFactory"],"sourceRoot":"../../src","sources":["preset.tsx"],"mappings":";;;;;;AAWA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAAyE,IAAAG,WAAA,GAAAH,OAAA;AAbzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,MAAMI,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,IAAAE,0BAAgB,EAAC;EAC/CC,EAAE,EAAE,QAAQ;EACZC,IAAI,EAAE,QAAQ;EACdC,WAAW,EAAE,+DAA+D;EAC5EC,IAAI,EAAE,MAAe;EACrBC,IAAI,EAAEA,CAAC;IAAEC,IAAI;IAAEC;EAAwC,CAAC,kBACtD,IAAAV,WAAA,CAAAW,GAAA,EAACf,WAAA,CAAAgB,UAAU;IAACH,IAAI,EAAEA,IAAK;IAACC,KAAK,EAAEA,KAAK,IAAIG;EAAkB,CAAE,CAC7D;EACDC,SAAS,EAAEC;AACb,CAAC,CAAC;;AAEF;AACO,MAAMC,gBAAgB,GAAAd,OAAA,CAAAc,gBAAA,GAAG,IAAAC,2BAAiB,EAAChB,gBAAgB,CAAC","ignoreList":[]}
@@ -1 +1,68 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.disableAssetsCapture=disableAssetsCapture,exports.remoteAssetsDispatch=remoteAssetsDispatch,exports.replaceAssetsFromSnapshot=replaceAssetsFromSnapshot,exports.setRemoteAssetsHandler=setRemoteAssetsHandler;var _state=require("./state"),_assetStore=require("./store/assetStore");function setRemoteAssetsHandler(e){(0,_state.assetsState)().remoteDispatch=e}function remoteAssetsDispatch(){return(0,_state.assetsState)().remoteDispatch}function disableAssetsCapture(){(0,_state.assetsState)().captureDisabled=!0}function replaceAssetsFromSnapshot(e){const s=(0,_state.assetsState)(),t=e.records??[];s.records=t.map(e=>({id:e.id,key:e.key,registryId:e.registryId??void 0,name:e.name,type:e.type,kind:e.kind,hash:e.hash??void 0,httpServerLocation:e.location??void 0,width:e.width??void 0,height:e.height??void 0,scales:e.scales,resolvedUri:e.uri??void 0,loaded:e.loaded,origin:null!=e.registryId?"registry":"graph",sizeBytes:e.sizeBytes??void 0,sizeSource:e.sizeSource??void 0,firstSeenAt:Date.now()})),s.byKey=new Map(s.records.map(e=>[e.key,e])),s.byId=new Map(s.records.map(e=>[e.id,e])),e.scanStatus&&(s.fontFamilies=[...new Set(e.scanStatus.fontFamilies??[])],s.mirrorScanStatus={...e.scanStatus,fontFamilies:s.fontFamilies}),s.mirrorDiff=e.diff??null,(0,_assetStore.invalidate)()}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.disableAssetsCapture = disableAssetsCapture;
7
+ exports.remoteAssetsDispatch = remoteAssetsDispatch;
8
+ exports.replaceAssetsFromSnapshot = replaceAssetsFromSnapshot;
9
+ exports.setRemoteAssetsHandler = setRemoteAssetsHandler;
10
+ var _state = require("./state");
11
+ var _assetStore = require("./store/assetStore");
12
+ /**
13
+ * Remote-dispatch seam for dashboard mirrors (Buoy Desktop).
14
+ *
15
+ * On device this stays null and every action runs locally. A dashboard sets
16
+ * a handler that forwards action name + params over external-sync to the
17
+ * SAME adapter actions the MCP uses (sync/assetsSyncAdapter.ts), so one
18
+ * action vocabulary serves phone UI, desktop UI, and LLM automation.
19
+ */
20
+
21
+ function setRemoteAssetsHandler(handler) {
22
+ (0, _state.assetsState)().remoteDispatch = handler;
23
+ }
24
+ function remoteAssetsDispatch() {
25
+ return (0, _state.assetsState)().remoteDispatch;
26
+ }
27
+
28
+ /** Dashboards never scan their own bundle — the store is purely a mirror. */
29
+ function disableAssetsCapture() {
30
+ (0, _state.assetsState)().captureDisabled = true;
31
+ }
32
+
33
+ /** Replace the whole store from a synced adapter snapshot. */
34
+ function replaceAssetsFromSnapshot(payload) {
35
+ const s = (0, _state.assetsState)();
36
+ const wire = payload.records ?? [];
37
+ s.records = wire.map(w => ({
38
+ id: w.id,
39
+ key: w.key,
40
+ registryId: w.registryId ?? undefined,
41
+ name: w.name,
42
+ type: w.type,
43
+ kind: w.kind,
44
+ hash: w.hash ?? undefined,
45
+ httpServerLocation: w.location ?? undefined,
46
+ width: w.width ?? undefined,
47
+ height: w.height ?? undefined,
48
+ scales: w.scales,
49
+ resolvedUri: w.uri ?? undefined,
50
+ loaded: w.loaded,
51
+ origin: w.registryId != null ? "registry" : "graph",
52
+ sizeBytes: w.sizeBytes ?? undefined,
53
+ sizeSource: w.sizeSource ?? undefined,
54
+ firstSeenAt: Date.now()
55
+ }));
56
+ s.byKey = new Map(s.records.map(r => [r.key, r]));
57
+ s.byId = new Map(s.records.map(r => [r.id, r]));
58
+ if (payload.scanStatus) {
59
+ s.fontFamilies = [...new Set(payload.scanStatus.fontFamilies ?? [])];
60
+ s.mirrorScanStatus = {
61
+ ...payload.scanStatus,
62
+ fontFamilies: s.fontFamilies
63
+ };
64
+ }
65
+ s.mirrorDiff = payload.diff ?? null;
66
+ (0, _assetStore.invalidate)();
67
+ }
68
+ //# sourceMappingURL=remote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_state","require","_assetStore","setRemoteAssetsHandler","handler","assetsState","remoteDispatch","remoteAssetsDispatch","disableAssetsCapture","captureDisabled","replaceAssetsFromSnapshot","payload","s","wire","records","map","w","id","key","registryId","undefined","name","type","kind","hash","httpServerLocation","location","width","height","scales","resolvedUri","uri","loaded","origin","sizeBytes","sizeSource","firstSeenAt","Date","now","byKey","Map","r","byId","scanStatus","fontFamilies","Set","mirrorScanStatus","mirrorDiff","diff","invalidate"],"sourceRoot":"../../src","sources":["remote.ts"],"mappings":";;;;;;;;;AASA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWO,SAASE,sBAAsBA,CACpCC,OAAoC,EAC9B;EACN,IAAAC,kBAAW,EAAC,CAAC,CAACC,cAAc,GAAGF,OAAO;AACxC;AAEO,SAASG,oBAAoBA,CAAA,EAAgC;EAClE,OAAO,IAAAF,kBAAW,EAAC,CAAC,CAACC,cAAc;AACrC;;AAEA;AACO,SAASE,oBAAoBA,CAAA,EAAS;EAC3C,IAAAH,kBAAW,EAAC,CAAC,CAACI,eAAe,GAAG,IAAI;AACtC;;AAEA;AACO,SAASC,yBAAyBA,CAACC,OAA8B,EAAQ;EAC9E,MAAMC,CAAC,GAAG,IAAAP,kBAAW,EAAC,CAAC;EACvB,MAAMQ,IAAI,GAAGF,OAAO,CAACG,OAAO,IAAI,EAAE;EAClCF,CAAC,CAACE,OAAO,GAAGD,IAAI,CAACE,GAAG,CAAEC,CAAC,KAAM;IAC3BC,EAAE,EAAED,CAAC,CAACC,EAAE;IACRC,GAAG,EAAEF,CAAC,CAACE,GAAG;IACVC,UAAU,EAAEH,CAAC,CAACG,UAAU,IAAIC,SAAS;IACrCC,IAAI,EAAEL,CAAC,CAACK,IAAI;IACZC,IAAI,EAAEN,CAAC,CAACM,IAAI;IACZC,IAAI,EAAEP,CAAC,CAACO,IAAI;IACZC,IAAI,EAAER,CAAC,CAACQ,IAAI,IAAIJ,SAAS;IACzBK,kBAAkB,EAAET,CAAC,CAACU,QAAQ,IAAIN,SAAS;IAC3CO,KAAK,EAAEX,CAAC,CAACW,KAAK,IAAIP,SAAS;IAC3BQ,MAAM,EAAEZ,CAAC,CAACY,MAAM,IAAIR,SAAS;IAC7BS,MAAM,EAAEb,CAAC,CAACa,MAAM;IAChBC,WAAW,EAAEd,CAAC,CAACe,GAAG,IAAIX,SAAS;IAC/BY,MAAM,EAAEhB,CAAC,CAACgB,MAAM;IAChBC,MAAM,EAAEjB,CAAC,CAACG,UAAU,IAAI,IAAI,GAAI,UAAU,GAAc,OAAiB;IACzEe,SAAS,EAAElB,CAAC,CAACkB,SAAS,IAAId,SAAS;IACnCe,UAAU,EAAEnB,CAAC,CAACmB,UAAU,IAAIf,SAAS;IACrCgB,WAAW,EAAEC,IAAI,CAACC,GAAG,CAAC;EACxB,CAAC,CAAC,CAAC;EACH1B,CAAC,CAAC2B,KAAK,GAAG,IAAIC,GAAG,CAAC5B,CAAC,CAACE,OAAO,CAACC,GAAG,CAAE0B,CAAC,IAAK,CAACA,CAAC,CAACvB,GAAG,EAAEuB,CAAC,CAAC,CAAC,CAAC;EACnD7B,CAAC,CAAC8B,IAAI,GAAG,IAAIF,GAAG,CAAC5B,CAAC,CAACE,OAAO,CAACC,GAAG,CAAE0B,CAAC,IAAK,CAACA,CAAC,CAACxB,EAAE,EAAEwB,CAAC,CAAC,CAAC,CAAC;EACjD,IAAI9B,OAAO,CAACgC,UAAU,EAAE;IACtB/B,CAAC,CAACgC,YAAY,GAAG,CAAC,GAAG,IAAIC,GAAG,CAAClC,OAAO,CAACgC,UAAU,CAACC,YAAY,IAAI,EAAE,CAAC,CAAC;IACpEhC,CAAC,CAACkC,gBAAgB,GAAG;MAAE,GAAGnC,OAAO,CAACgC,UAAU;MAAEC,YAAY,EAAEhC,CAAC,CAACgC;IAAa,CAAC;EAC9E;EACAhC,CAAC,CAACmC,UAAU,GAAGpC,OAAO,CAACqC,IAAI,IAAI,IAAI;EACnC,IAAAC,sBAAU,EAAC,CAAC;AACd","ignoreList":[]}
@@ -1 +1,51 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assetsState=assetsState;const KEY=Symbol.for("buoy.assets.globalState.v1");function assetsState(){const e=globalThis;return e[KEY]||(e[KEY]={records:[],byKey:new Map,byId:new Map,nextId:1,listeners:new Set,snapshot:[],emitScheduled:!1,installed:!1,patched:!1,registryAvailable:!1,graphSupported:!1,graphCount:null,graphError:null,graphFetchInFlight:!1,lastScanAt:null,measuring:!1,measuredCount:0,fontFamilies:[],localAssetCount:null,baseline:null,baselineLoaded:!1,captureDisabled:!1,remoteDispatch:null,mirrorScanStatus:null,mirrorPixelRatio:null,mirrorDiff:null}),e[KEY]}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.assetsState = assetsState;
7
+ /**
8
+ * Global singleton state for the Assets tool.
9
+ *
10
+ * Same rationale as the images tool: the package can be evaluated as two
11
+ * module instances (lib vs src resolution), and the registerAsset patch must
12
+ * share one store with whichever copy the UI renders from. All mutable state
13
+ * lives on globalThis under a well-known symbol.
14
+ */
15
+
16
+ const KEY = Symbol.for("buoy.assets.globalState.v1");
17
+ function assetsState() {
18
+ const g = globalThis;
19
+ if (!g[KEY]) {
20
+ g[KEY] = {
21
+ records: [],
22
+ byKey: new Map(),
23
+ byId: new Map(),
24
+ nextId: 1,
25
+ listeners: new Set(),
26
+ snapshot: [],
27
+ emitScheduled: false,
28
+ installed: false,
29
+ patched: false,
30
+ registryAvailable: false,
31
+ graphSupported: false,
32
+ graphCount: null,
33
+ graphError: null,
34
+ graphFetchInFlight: false,
35
+ lastScanAt: null,
36
+ measuring: false,
37
+ measuredCount: 0,
38
+ fontFamilies: [],
39
+ localAssetCount: null,
40
+ baseline: null,
41
+ baselineLoaded: false,
42
+ captureDisabled: false,
43
+ remoteDispatch: null,
44
+ mirrorScanStatus: null,
45
+ mirrorPixelRatio: null,
46
+ mirrorDiff: null
47
+ };
48
+ }
49
+ return g[KEY];
50
+ }
51
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KEY","Symbol","for","assetsState","g","globalThis","records","byKey","Map","byId","nextId","listeners","Set","snapshot","emitScheduled","installed","patched","registryAvailable","graphSupported","graphCount","graphError","graphFetchInFlight","lastScanAt","measuring","measuredCount","fontFamilies","localAssetCount","baseline","baselineLoaded","captureDisabled","remoteDispatch","mirrorScanStatus","mirrorPixelRatio","mirrorDiff"],"sourceRoot":"../../src","sources":["state.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2CA,MAAMA,GAAG,GAAGC,MAAM,CAACC,GAAG,CAAC,4BAA4B,CAAC;AAE7C,SAASC,WAAWA,CAAA,EAAsB;EAC/C,MAAMC,CAAC,GAAGC,UAA2D;EACrE,IAAI,CAACD,CAAC,CAACJ,GAAG,CAAC,EAAE;IACXI,CAAC,CAACJ,GAAG,CAAC,GAAG;MACPM,OAAO,EAAE,EAAE;MACXC,KAAK,EAAE,IAAIC,GAAG,CAAC,CAAC;MAChBC,IAAI,EAAE,IAAID,GAAG,CAAC,CAAC;MACfE,MAAM,EAAE,CAAC;MACTC,SAAS,EAAE,IAAIC,GAAG,CAAC,CAAC;MACpBC,QAAQ,EAAE,EAAE;MACZC,aAAa,EAAE,KAAK;MACpBC,SAAS,EAAE,KAAK;MAChBC,OAAO,EAAE,KAAK;MACdC,iBAAiB,EAAE,KAAK;MACxBC,cAAc,EAAE,KAAK;MACrBC,UAAU,EAAE,IAAI;MAChBC,UAAU,EAAE,IAAI;MAChBC,kBAAkB,EAAE,KAAK;MACzBC,UAAU,EAAE,IAAI;MAChBC,SAAS,EAAE,KAAK;MAChBC,aAAa,EAAE,CAAC;MAChBC,YAAY,EAAE,EAAE;MAChBC,eAAe,EAAE,IAAI;MACrBC,QAAQ,EAAE,IAAI;MACdC,cAAc,EAAE,KAAK;MACrBC,eAAe,EAAE,KAAK;MACtBC,cAAc,EAAE,IAAI;MACpBC,gBAAgB,EAAE,IAAI;MACtBC,gBAAgB,EAAE,IAAI;MACtBC,UAAU,EAAE;IACd,CAAC;EACH;EACA,OAAO7B,CAAC,CAACJ,GAAG,CAAC;AACf","ignoreList":[]}