@le-space/rootfs 0.6.5 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@le-space/rootfs",
3
- "version": "0.6.5",
3
+ "version": "0.6.6",
4
4
  "description": "Shared rootfs contract parsing, reference profile assets, and build helpers.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -133,11 +133,32 @@ def browser_multiaddr_preference(addr: str) -> int:
133
133
  return 5
134
134
 
135
135
 
136
+ def browser_multiaddr_transport(addr: str) -> str:
137
+ normalized = addr.lower()
138
+ if "/webtransport/" in normalized:
139
+ return "webtransport"
140
+ if "/webrtc-direct/" in normalized:
141
+ return "webrtc"
142
+ if "/ws" in normalized or "/wss" in normalized:
143
+ return "websocket"
144
+ return "other"
145
+
146
+
136
147
  def select_compact_multiaddrs(values: list[str]) -> list[str]:
137
148
  public_browser_addrs = filter_public_multiaddrs(values, browser_only=True)
138
- return sorted(public_browser_addrs, key=browser_multiaddr_preference)[
139
- : max(1, COMPACT_MULTIADDR_LIMIT)
140
- ]
149
+ per_transport_limit = max(1, COMPACT_MULTIADDR_LIMIT)
150
+ selected_by_transport: dict[str, int] = {}
151
+ result: list[str] = []
152
+
153
+ for addr in sorted(public_browser_addrs, key=browser_multiaddr_preference):
154
+ transport = browser_multiaddr_transport(addr)
155
+ selected = selected_by_transport.get(transport, 0)
156
+ if selected >= per_transport_limit:
157
+ continue
158
+ selected_by_transport[transport] = selected + 1
159
+ result.append(addr)
160
+
161
+ return result
141
162
 
142
163
 
143
164
  def json_dumps(payload: object) -> str: