@kromatv/sdk 0.1.40-canary.0

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 (987) hide show
  1. package/README.md +80 -0
  2. package/dist/cli.js +2523 -0
  3. package/package.json +78 -0
  4. package/rust/Cargo.toml +3 -0
  5. package/rust/kroma-db/Cargo.toml +27 -0
  6. package/rust/kroma-db/src/accounts/access_tokens.rs +197 -0
  7. package/rust/kroma-db/src/accounts/credentials.rs +97 -0
  8. package/rust/kroma-db/src/accounts/invites.rs +136 -0
  9. package/rust/kroma-db/src/accounts/preferences.rs +100 -0
  10. package/rust/kroma-db/src/accounts/resets.rs +202 -0
  11. package/rust/kroma-db/src/accounts/sessions.rs +182 -0
  12. package/rust/kroma-db/src/accounts/test_support.rs +14 -0
  13. package/rust/kroma-db/src/accounts/verifications.rs +185 -0
  14. package/rust/kroma-db/src/accounts.rs +244 -0
  15. package/rust/kroma-db/src/admin/metrics.rs +201 -0
  16. package/rust/kroma-db/src/admin/play_history.rs +361 -0
  17. package/rust/kroma-db/src/admin/play_sort.rs +113 -0
  18. package/rust/kroma-db/src/admin/stats.rs +108 -0
  19. package/rust/kroma-db/src/admin/test_support.rs +83 -0
  20. package/rust/kroma-db/src/admin/watch_stats.rs +458 -0
  21. package/rust/kroma-db/src/admin.rs +226 -0
  22. package/rust/kroma-db/src/audio_analysis.rs +253 -0
  23. package/rust/kroma-db/src/backup/module_stores.rs +204 -0
  24. package/rust/kroma-db/src/backup/rows.rs +155 -0
  25. package/rust/kroma-db/src/backup/test_support.rs +61 -0
  26. package/rust/kroma-db/src/backup.rs +306 -0
  27. package/rust/kroma-db/src/catalog_query/find_titles.rs +316 -0
  28. package/rust/kroma-db/src/catalog_query/test_support.rs +88 -0
  29. package/rust/kroma-db/src/catalog_query.rs +198 -0
  30. package/rust/kroma-db/src/chunked.rs +36 -0
  31. package/rust/kroma-db/src/core_tables.rs +99 -0
  32. package/rust/kroma-db/src/curated.rs +192 -0
  33. package/rust/kroma-db/src/downloaded_subs.rs +136 -0
  34. package/rust/kroma-db/src/downloads.rs +219 -0
  35. package/rust/kroma-db/src/grant/escapes/schema.rs +120 -0
  36. package/rust/kroma-db/src/grant/escapes/statements.rs +170 -0
  37. package/rust/kroma-db/src/grant/escapes.rs +141 -0
  38. package/rust/kroma-db/src/grant/tests.rs +255 -0
  39. package/rust/kroma-db/src/grant.rs +203 -0
  40. package/rust/kroma-db/src/home/genre_guard.rs +249 -0
  41. package/rust/kroma-db/src/home/hydration.rs +126 -0
  42. package/rust/kroma-db/src/home/test_support.rs +60 -0
  43. package/rust/kroma-db/src/home.rs +244 -0
  44. package/rust/kroma-db/src/hydrate.rs +296 -0
  45. package/rust/kroma-db/src/ingest/metadata.rs +648 -0
  46. package/rust/kroma-db/src/ingest/probe.rs +171 -0
  47. package/rust/kroma-db/src/ingest/probe_result.rs +178 -0
  48. package/rust/kroma-db/src/ingest/scanned_files.rs +235 -0
  49. package/rust/kroma-db/src/ingest/sync.rs +291 -0
  50. package/rust/kroma-db/src/ingest/test_support.rs +114 -0
  51. package/rust/kroma-db/src/ingest.rs +20 -0
  52. package/rust/kroma-db/src/jobs.rs +269 -0
  53. package/rust/kroma-db/src/lib.rs +97 -0
  54. package/rust/kroma-db/src/library.rs +66 -0
  55. package/rust/kroma-db/src/localize/items.rs +303 -0
  56. package/rust/kroma-db/src/localize/shows.rs +192 -0
  57. package/rust/kroma-db/src/localize/test_support.rs +91 -0
  58. package/rust/kroma-db/src/localize.rs +105 -0
  59. package/rust/kroma-db/src/markers.rs +203 -0
  60. package/rust/kroma-db/src/media/person.rs +213 -0
  61. package/rust/kroma-db/src/media/show_detail.rs +186 -0
  62. package/rust/kroma-db/src/media/shows.rs +202 -0
  63. package/rust/kroma-db/src/media/splash.rs +199 -0
  64. package/rust/kroma-db/src/media/test_support.rs +31 -0
  65. package/rust/kroma-db/src/media.rs +296 -0
  66. package/rust/kroma-db/src/metadata_core.rs +348 -0
  67. package/rust/kroma-db/src/notifications/digest.rs +143 -0
  68. package/rust/kroma-db/src/notifications/preferences.rs +138 -0
  69. package/rust/kroma-db/src/notifications/read_state.rs +167 -0
  70. package/rust/kroma-db/src/notifications/test_support.rs +50 -0
  71. package/rust/kroma-db/src/notifications.rs +232 -0
  72. package/rust/kroma-db/src/passkeys.rs +163 -0
  73. package/rust/kroma-db/src/pipeline/ops/drain.rs +266 -0
  74. package/rust/kroma-db/src/pipeline/ops/reconcile.rs +274 -0
  75. package/rust/kroma-db/src/pipeline/ops/test_support.rs +48 -0
  76. package/rust/kroma-db/src/pipeline/ops.rs +49 -0
  77. package/rust/kroma-db/src/pipeline/query/elements.rs +200 -0
  78. package/rust/kroma-db/src/pipeline/query/test_support.rs +23 -0
  79. package/rust/kroma-db/src/pipeline/query.rs +255 -0
  80. package/rust/kroma-db/src/pipeline/tests.rs +319 -0
  81. package/rust/kroma-db/src/pipeline.rs +26 -0
  82. package/rust/kroma-db/src/playback/continue_watching.rs +289 -0
  83. package/rust/kroma-db/src/playback/on_deck.rs +53 -0
  84. package/rust/kroma-db/src/playback/show_progress.rs +230 -0
  85. package/rust/kroma-db/src/playback/test_support.rs +55 -0
  86. package/rust/kroma-db/src/playback/up_next.rs +208 -0
  87. package/rust/kroma-db/src/playback/watch_state.rs +129 -0
  88. package/rust/kroma-db/src/playback.rs +196 -0
  89. package/rust/kroma-db/src/pool.rs +117 -0
  90. package/rust/kroma-db/src/push_subs.rs +323 -0
  91. package/rust/kroma-db/src/reports.rs +231 -0
  92. package/rust/kroma-db/src/requests/availability.rs +211 -0
  93. package/rust/kroma-db/src/requests/calendar.rs +221 -0
  94. package/rust/kroma-db/src/requests/gaps.rs +213 -0
  95. package/rust/kroma-db/src/requests/search_queue.rs +352 -0
  96. package/rust/kroma-db/src/requests/tests.rs +289 -0
  97. package/rust/kroma-db/src/requests/wanted.rs +351 -0
  98. package/rust/kroma-db/src/requests.rs +245 -0
  99. package/rust/kroma-db/src/rows.rs +190 -0
  100. package/rust/kroma-db/src/schema/ddl.rs +678 -0
  101. package/rust/kroma-db/src/schema/migrations.rs +261 -0
  102. package/rust/kroma-db/src/schema.rs +273 -0
  103. package/rust/kroma-db/src/suggest.rs +129 -0
  104. package/rust/kroma-db/src/taste.rs +77 -0
  105. package/rust/kroma-db/src/testing.rs +63 -0
  106. package/rust/kroma-db/src/tmdb_pin.rs +133 -0
  107. package/rust/kroma-db/src/translations.rs +569 -0
  108. package/rust/kroma-db/src/vectors/recommendations.rs +164 -0
  109. package/rust/kroma-db/src/vectors/search.rs +213 -0
  110. package/rust/kroma-db/src/vectors/test_support.rs +31 -0
  111. package/rust/kroma-db/src/vectors.rs +161 -0
  112. package/rust/kroma-domain/Cargo.toml +17 -0
  113. package/rust/kroma-domain/src/accounts.rs +181 -0
  114. package/rust/kroma-domain/src/admin.rs +197 -0
  115. package/rust/kroma-domain/src/cast.rs +178 -0
  116. package/rust/kroma-domain/src/crash.rs +48 -0
  117. package/rust/kroma-domain/src/jobs.rs +119 -0
  118. package/rust/kroma-domain/src/lib.rs +44 -0
  119. package/rust/kroma-domain/src/library.rs +21 -0
  120. package/rust/kroma-domain/src/matching/mod.rs +293 -0
  121. package/rust/kroma-domain/src/matching/normalize.rs +193 -0
  122. package/rust/kroma-domain/src/media.rs +297 -0
  123. package/rust/kroma-domain/src/metadata.rs +389 -0
  124. package/rust/kroma-domain/src/naming/marker.rs +215 -0
  125. package/rust/kroma-domain/src/naming/mod.rs +283 -0
  126. package/rust/kroma-domain/src/naming/title.rs +349 -0
  127. package/rust/kroma-domain/src/notifications/action.rs +50 -0
  128. package/rust/kroma-domain/src/notifications/event.rs +225 -0
  129. package/rust/kroma-domain/src/notifications/mod.rs +18 -0
  130. package/rust/kroma-domain/src/notifications/param.rs +90 -0
  131. package/rust/kroma-domain/src/notifications/spec.rs +178 -0
  132. package/rust/kroma-domain/src/notifications/view.rs +55 -0
  133. package/rust/kroma-domain/src/people.rs +286 -0
  134. package/rust/kroma-domain/src/pipeline.rs +114 -0
  135. package/rust/kroma-domain/src/playback.rs +39 -0
  136. package/rust/kroma-domain/src/push.rs +163 -0
  137. package/rust/kroma-domain/src/reports.rs +213 -0
  138. package/rust/kroma-domain/src/requests/discover.rs +102 -0
  139. package/rust/kroma-domain/src/requests/ledger.rs +129 -0
  140. package/rust/kroma-domain/src/requests/mod.rs +238 -0
  141. package/rust/kroma-domain/src/section.rs +44 -0
  142. package/rust/kroma-domain/src/slug.rs +165 -0
  143. package/rust/kroma-http/Cargo.toml +20 -0
  144. package/rust/kroma-http/examples/seam-bench.rs +73 -0
  145. package/rust/kroma-http/src/builder.rs +35 -0
  146. package/rust/kroma-http/src/config.rs +50 -0
  147. package/rust/kroma-http/src/curl.rs +131 -0
  148. package/rust/kroma-http/src/fetch.rs +226 -0
  149. package/rust/kroma-http/src/lib.rs +25 -0
  150. package/rust/kroma-http/src/loopback/mod.rs +220 -0
  151. package/rust/kroma-http/src/loopback/tcp.rs +182 -0
  152. package/rust/kroma-http/src/loopback/transport.rs +42 -0
  153. package/rust/kroma-http/src/response.rs +130 -0
  154. package/rust/kroma-module-host/Cargo.toml +36 -0
  155. package/rust/kroma-module-host/src/auth.rs +221 -0
  156. package/rust/kroma-module-host/src/host_ctx.rs +382 -0
  157. package/rust/kroma-module-host/src/host_token.rs +147 -0
  158. package/rust/kroma-module-host/src/lib.rs +141 -0
  159. package/rust/kroma-module-host/src/module.rs +115 -0
  160. package/rust/kroma-module-host/src/port.rs +163 -0
  161. package/rust/kroma-module-host/src/storage.rs +97 -0
  162. package/rust/kroma-module-host/src/test_serve.rs +33 -0
  163. package/rust/kroma-module-host/src/testing/log.rs +145 -0
  164. package/rust/kroma-module-host/src/testing/mod.rs +72 -0
  165. package/rust/kroma-module-host/src/testing/recording.rs +209 -0
  166. package/rust/kroma-module-host/src/testing/stub.rs +592 -0
  167. package/rust/kroma-module-macros/Cargo.toml +12 -0
  168. package/rust/kroma-module-macros/src/lib.rs +148 -0
  169. package/rust/kroma-module-manifest/Cargo.toml +15 -0
  170. package/rust/kroma-module-manifest/src/compat.rs +157 -0
  171. package/rust/kroma-module-manifest/src/embedded.rs +160 -0
  172. package/rust/kroma-module-manifest/src/event.rs +74 -0
  173. package/rust/kroma-module-manifest/src/lib.rs +57 -0
  174. package/rust/kroma-module-manifest/src/manifest.rs +548 -0
  175. package/rust/kroma-module-manifest/src/registry.rs +626 -0
  176. package/rust/kroma-module-runtime/Cargo.toml +33 -0
  177. package/rust/kroma-module-runtime/src/lib.rs +743 -0
  178. package/rust/kroma-module-sdk/Cargo.toml +49 -0
  179. package/rust/kroma-module-sdk/src/lib.rs +70 -0
  180. package/rust/kroma-primitives/Cargo.toml +12 -0
  181. package/rust/kroma-primitives/src/lib.rs +101 -0
  182. package/rust/kroma-testing/Cargo.toml +10 -0
  183. package/rust/kroma-testing/src/lib.rs +72 -0
  184. package/templates/base/README.md +14 -0
  185. package/templates/base/_gitignore +4 -0
  186. package/templates/base/icon.svg +1 -0
  187. package/templates/base/locales/en.json +7 -0
  188. package/templates/base/locales/fr.json +7 -0
  189. package/templates/server/.cargo/config.toml +2 -0
  190. package/templates/server/rust-toolchain.toml +3 -0
  191. package/templates/server/server/Cargo.toml +37 -0
  192. package/templates/server/server/src/bin/module.rs +6 -0
  193. package/templates/server/server/src/lib.rs +43 -0
  194. package/templates/ui/ui/src/__PAGE__.tsx +22 -0
  195. package/templates/ui/ui/src/module.tsx +17 -0
  196. package/templates/ui/ui/src/schemas.ts +6 -0
  197. package/tsconfig.module.json +110 -0
  198. package/types/client/src/api/accounts/client.d.ts +291 -0
  199. package/types/client/src/api/accounts/ids.d.ts +13 -0
  200. package/types/client/src/api/accounts/index.d.ts +6 -0
  201. package/types/client/src/api/accounts/passkeys.d.ts +79 -0
  202. package/types/client/src/api/accounts/quick-connect.d.ts +23 -0
  203. package/types/client/src/api/accounts/remembered.d.ts +66 -0
  204. package/types/client/src/api/accounts/rules.d.ts +9 -0
  205. package/types/client/src/api/accounts/schemas.d.ts +214 -0
  206. package/types/client/src/api/admin/backup.d.ts +22 -0
  207. package/types/client/src/api/admin/client.d.ts +407 -0
  208. package/types/client/src/api/admin/index.d.ts +7 -0
  209. package/types/client/src/api/admin/logs.d.ts +24 -0
  210. package/types/client/src/api/admin/metrics.d.ts +231 -0
  211. package/types/client/src/api/admin/notifications.d.ts +47 -0
  212. package/types/client/src/api/admin/settings.d.ts +50 -0
  213. package/types/client/src/api/admin/stats.d.ts +257 -0
  214. package/types/client/src/api/admin/users.d.ts +98 -0
  215. package/types/client/src/api/cast/client.d.ts +209 -0
  216. package/types/client/src/api/cast/ids.d.ts +4 -0
  217. package/types/client/src/api/cast/index.d.ts +3 -0
  218. package/types/client/src/api/cast/schemas.d.ts +565 -0
  219. package/types/client/src/api/diagnostics/client.d.ts +13 -0
  220. package/types/client/src/api/diagnostics/index.d.ts +2 -0
  221. package/types/client/src/api/diagnostics/schemas.d.ts +29 -0
  222. package/types/client/src/api/discover.d.ts +5 -0
  223. package/types/client/src/api/discover.web.d.ts +5 -0
  224. package/types/client/src/api/discovery/client.d.ts +115 -0
  225. package/types/client/src/api/discovery/index.d.ts +2 -0
  226. package/types/client/src/api/discovery/schemas.d.ts +175 -0
  227. package/types/client/src/api/events/index.d.ts +2 -0
  228. package/types/client/src/api/events/schemas.d.ts +371 -0
  229. package/types/client/src/api/events/socket.d.ts +42 -0
  230. package/types/client/src/api/handoff/client.d.ts +68 -0
  231. package/types/client/src/api/handoff/ids.d.ts +4 -0
  232. package/types/client/src/api/handoff/index.d.ts +3 -0
  233. package/types/client/src/api/handoff/schemas.d.ts +93 -0
  234. package/types/client/src/api/jobs/client.d.ts +96 -0
  235. package/types/client/src/api/jobs/ids.d.ts +5 -0
  236. package/types/client/src/api/jobs/index.d.ts +3 -0
  237. package/types/client/src/api/jobs/schemas.d.ts +168 -0
  238. package/types/client/src/api/library/client.d.ts +45 -0
  239. package/types/client/src/api/library/index.d.ts +2 -0
  240. package/types/client/src/api/library/schemas.d.ts +28 -0
  241. package/types/client/src/api/llm/client.d.ts +37 -0
  242. package/types/client/src/api/llm/ids.d.ts +3 -0
  243. package/types/client/src/api/llm/index.d.ts +3 -0
  244. package/types/client/src/api/llm/schemas.d.ts +74 -0
  245. package/types/client/src/api/media/artwork-scale.d.ts +18 -0
  246. package/types/client/src/api/media/artwork.d.ts +31 -0
  247. package/types/client/src/api/media/client.d.ts +2160 -0
  248. package/types/client/src/api/media/credits.d.ts +46 -0
  249. package/types/client/src/api/media/ids.d.ts +12 -0
  250. package/types/client/src/api/media/index.d.ts +7 -0
  251. package/types/client/src/api/media/rematch.d.ts +31 -0
  252. package/types/client/src/api/media/schemas.d.ts +1607 -0
  253. package/types/client/src/api/media/search.d.ts +1044 -0
  254. package/types/client/src/api/media/tracks.d.ts +152 -0
  255. package/types/client/src/api/modules/client.d.ts +38 -0
  256. package/types/client/src/api/modules/ids.d.ts +3 -0
  257. package/types/client/src/api/modules/index.d.ts +5 -0
  258. package/types/client/src/api/modules/module-api.d.ts +23 -0
  259. package/types/client/src/api/modules/schemas.d.ts +74 -0
  260. package/types/client/src/api/modules/store.d.ts +226 -0
  261. package/types/client/src/api/notifications/capability.d.ts +36 -0
  262. package/types/client/src/api/notifications/client.d.ts +79 -0
  263. package/types/client/src/api/notifications/ids.d.ts +3 -0
  264. package/types/client/src/api/notifications/index.d.ts +4 -0
  265. package/types/client/src/api/notifications/push.d.ts +18 -0
  266. package/types/client/src/api/notifications/schemas.d.ts +235 -0
  267. package/types/client/src/api/pipeline/client.d.ts +126 -0
  268. package/types/client/src/api/pipeline/index.d.ts +2 -0
  269. package/types/client/src/api/pipeline/schemas.d.ts +139 -0
  270. package/types/client/src/api/playback/client.d.ts +681 -0
  271. package/types/client/src/api/playback/ids.d.ts +3 -0
  272. package/types/client/src/api/playback/index.d.ts +3 -0
  273. package/types/client/src/api/playback/schemas.d.ts +38 -0
  274. package/types/client/src/api/reports/client.d.ts +117 -0
  275. package/types/client/src/api/reports/ids.d.ts +3 -0
  276. package/types/client/src/api/reports/index.d.ts +3 -0
  277. package/types/client/src/api/reports/schemas.d.ts +144 -0
  278. package/types/client/src/api/requests/acquisition.d.ts +240 -0
  279. package/types/client/src/api/requests/client.d.ts +301 -0
  280. package/types/client/src/api/requests/ids.d.ts +7 -0
  281. package/types/client/src/api/requests/index.d.ts +4 -0
  282. package/types/client/src/api/requests/schemas.d.ts +162 -0
  283. package/types/client/src/api/subtitles/client.d.ts +48 -0
  284. package/types/client/src/api/subtitles/ids.d.ts +5 -0
  285. package/types/client/src/api/subtitles/index.d.ts +3 -0
  286. package/types/client/src/api/subtitles/schemas.d.ts +78 -0
  287. package/types/client/src/core/client.d.ts +17 -0
  288. package/types/client/src/core/http/api-error.d.ts +36 -0
  289. package/types/client/src/core/http/body.d.ts +1 -0
  290. package/types/client/src/core/http/concurrency.d.ts +8 -0
  291. package/types/client/src/core/http/index.d.ts +6 -0
  292. package/types/client/src/core/http/path.d.ts +10 -0
  293. package/types/client/src/core/http/preconnect.d.ts +2 -0
  294. package/types/client/src/core/http/query.d.ts +9 -0
  295. package/types/client/src/core/http/request-context.d.ts +94 -0
  296. package/types/client/src/core/http/user-agent.d.ts +7 -0
  297. package/types/client/src/core/ids/ids.d.ts +13 -0
  298. package/types/client/src/core/ids/index.d.ts +1 -0
  299. package/types/client/src/core/index.d.ts +4 -0
  300. package/types/client/src/core/session/index.d.ts +3 -0
  301. package/types/client/src/core/session/locale.d.ts +6 -0
  302. package/types/client/src/core/session/storage.d.ts +32 -0
  303. package/types/client/src/core/session/token.d.ts +19 -0
  304. package/types/client/src/index.d.ts +3 -0
  305. package/types/client/src/kroma-client.d.ts +49 -0
  306. package/types/client/src/query/index.d.ts +35 -0
  307. package/types/core/src/airdate.d.ts +21 -0
  308. package/types/core/src/browse.d.ts +45 -0
  309. package/types/core/src/compat.d.ts +9 -0
  310. package/types/core/src/discover.d.ts +31 -0
  311. package/types/core/src/format.d.ts +63 -0
  312. package/types/core/src/genre-art.d.ts +21 -0
  313. package/types/core/src/genre-table.d.ts +117 -0
  314. package/types/core/src/genre.d.ts +42 -0
  315. package/types/core/src/handoff/beacon.d.ts +39 -0
  316. package/types/core/src/handoff/grant.d.ts +20 -0
  317. package/types/core/src/handoff/index.d.ts +8 -0
  318. package/types/core/src/handoff/nearby.d.ts +17 -0
  319. package/types/core/src/handoff/sources.d.ts +110 -0
  320. package/types/core/src/health-probe.d.ts +19 -0
  321. package/types/core/src/hevc/audio-support.d.ts +47 -0
  322. package/types/core/src/hevc/capabilities.d.ts +63 -0
  323. package/types/core/src/hevc/directplay.d.ts +70 -0
  324. package/types/core/src/hevc/engine.d.ts +29 -0
  325. package/types/core/src/hevc.d.ts +4 -0
  326. package/types/core/src/i18n.d.ts +2381 -0
  327. package/types/core/src/index.d.ts +25 -0
  328. package/types/core/src/intl.d.ts +28 -0
  329. package/types/core/src/lang-table.d.ts +11 -0
  330. package/types/core/src/lang.d.ts +59 -0
  331. package/types/core/src/local-ip.d.ts +2 -0
  332. package/types/core/src/locales/catalogs.d.ts +2 -0
  333. package/types/core/src/locales/catalogs.web.d.ts +3 -0
  334. package/types/core/src/locales/default-locale.d.ts +3 -0
  335. package/types/core/src/match.d.ts +14 -0
  336. package/types/core/src/notification-labels.d.ts +47 -0
  337. package/types/core/src/people.d.ts +33 -0
  338. package/types/core/src/permissions.d.ts +10 -0
  339. package/types/core/src/person-facts.d.ts +23 -0
  340. package/types/core/src/platform.d.ts +7 -0
  341. package/types/core/src/playback-buffer.d.ts +64 -0
  342. package/types/core/src/playback-stall.d.ts +86 -0
  343. package/types/core/src/player.d.ts +22 -0
  344. package/types/core/src/push-labels.d.ts +6 -0
  345. package/types/core/src/react/handoff-picker.d.ts +52 -0
  346. package/types/core/src/react/index.d.ts +6 -0
  347. package/types/core/src/react/lang-prefs.d.ts +35 -0
  348. package/types/core/src/react/nearby-tvs.d.ts +31 -0
  349. package/types/core/src/remote.d.ts +26 -0
  350. package/types/core/src/server-origin.d.ts +12 -0
  351. package/types/core/src/slug.d.ts +4 -0
  352. package/types/core/src/subtitles.d.ts +20 -0
  353. package/types/i18n/src/announce.d.ts +15 -0
  354. package/types/i18n/src/catalog-types.d.ts +7 -0
  355. package/types/i18n/src/chain.d.ts +22 -0
  356. package/types/i18n/src/define.d.ts +39 -0
  357. package/types/i18n/src/dev-overrides.d.ts +39 -0
  358. package/types/i18n/src/i18n.d.ts +61 -0
  359. package/types/i18n/src/index.d.ts +11 -0
  360. package/types/i18n/src/interpolate.d.ts +14 -0
  361. package/types/i18n/src/layout.d.ts +18 -0
  362. package/types/i18n/src/locales.d.ts +12 -0
  363. package/types/i18n/src/namespaces.d.ts +37 -0
  364. package/types/i18n/src/nest.d.ts +17 -0
  365. package/types/i18n/src/plural.d.ts +20 -0
  366. package/types/i18n/src/react/context.d.ts +37 -0
  367. package/types/i18n/src/react/index.d.ts +2 -0
  368. package/types/i18n/src/react/provider.d.ts +14 -0
  369. package/types/i18n/src/registry.d.ts +36 -0
  370. package/types/i18n/src/store.d.ts +46 -0
  371. package/types/i18n/src/types.d.ts +30 -0
  372. package/types/module-sdk/src/admin/context.d.ts +20 -0
  373. package/types/module-sdk/src/admin/denied.d.ts +1 -0
  374. package/types/module-sdk/src/admin/engines.d.ts +35 -0
  375. package/types/module-sdk/src/admin/hooks.d.ts +39 -0
  376. package/types/module-sdk/src/admin/page-states.d.ts +27 -0
  377. package/types/module-sdk/src/admin/settings.d.ts +9 -0
  378. package/types/module-sdk/src/bus.d.ts +8 -0
  379. package/types/module-sdk/src/contracts.d.ts +6 -0
  380. package/types/module-sdk/src/define.d.ts +38 -0
  381. package/types/module-sdk/src/events.d.ts +11 -0
  382. package/types/module-sdk/src/host.d.ts +32 -0
  383. package/types/module-sdk/src/icon.d.ts +1 -0
  384. package/types/module-sdk/src/index.d.ts +35 -0
  385. package/types/module-sdk/src/module.d.ts +83 -0
  386. package/types/module-sdk/src/registry.d.ts +63 -0
  387. package/types/module-sdk/src/scope.d.ts +23 -0
  388. package/types/module-sdk/src/shared.d.ts +21 -0
  389. package/types/module-sdk/src/slot.d.ts +34 -0
  390. package/types/module-sdk/src/types.d.ts +39 -0
  391. package/types/module-sdk/src/ui/table.d.ts +88 -0
  392. package/types/module-sdk/src/use-sorted-table.d.ts +56 -0
  393. package/types/registry/src/build.d.ts +16 -0
  394. package/types/registry/src/client.d.ts +23 -0
  395. package/types/registry/src/documents/index.d.ts +6 -0
  396. package/types/registry/src/documents/v1.d.ts +197 -0
  397. package/types/registry/src/index.d.ts +7 -0
  398. package/types/registry/src/manifest/index.d.ts +9 -0
  399. package/types/registry/src/manifest/v2.d.ts +182 -0
  400. package/types/registry/src/semver.d.ts +24 -0
  401. package/types/registry/src/sort.d.ts +2 -0
  402. package/types/registry/src/spec.d.ts +19 -0
  403. package/types/registry/src/text.d.ts +6 -0
  404. package/types/spatial-nav/src/descent.d.ts +9 -0
  405. package/types/spatial-nav/src/directions.d.ts +16 -0
  406. package/types/spatial-nav/src/fallback-focus.d.ts +5 -0
  407. package/types/spatial-nav/src/focus-owner.d.ts +16 -0
  408. package/types/spatial-nav/src/focus-tree.d.ts +63 -0
  409. package/types/spatial-nav/src/index.d.ts +4 -0
  410. package/types/spatial-nav/src/navigator.bench.d.ts +1 -0
  411. package/types/spatial-nav/src/react/configure-remote.d.ts +16 -0
  412. package/types/spatial-nav/src/react/default-focus.d.ts +15 -0
  413. package/types/spatial-nav/src/react/focus-queue.d.ts +16 -0
  414. package/types/spatial-nav/src/react/navigator-context.d.ts +19 -0
  415. package/types/spatial-nav/src/react/navigator-item.d.ts +28 -0
  416. package/types/spatial-nav/src/react/navigator-node.d.ts +27 -0
  417. package/types/spatial-nav/src/react/navigator-root.d.ts +19 -0
  418. package/types/spatial-nav/src/react/navigator-view.d.ts +18 -0
  419. package/types/spatial-nav/src/react/pointer-device.d.ts +14 -0
  420. package/types/spatial-nav/src/react/spatial-node.d.ts +27 -0
  421. package/types/spatial-nav/src/react/use-lock-navigator.d.ts +11 -0
  422. package/types/spatial-nav/src/react.d.ts +17 -0
  423. package/types/spatial-nav/src/resolve-move.d.ts +6 -0
  424. package/types/spatial-nav/src/spatial-navigator.d.ts +23 -0
  425. package/types/ui/src/assets/fonts.d.ts +4 -0
  426. package/types/ui/src/components/atoms/art-scrim/art-scrim.d.ts +21 -0
  427. package/types/ui/src/components/atoms/art-scrim/index.d.ts +1 -0
  428. package/types/ui/src/components/atoms/avatar/avatar.d.ts +43 -0
  429. package/types/ui/src/components/atoms/avatar/index.d.ts +1 -0
  430. package/types/ui/src/components/atoms/badge/badge.d.ts +116 -0
  431. package/types/ui/src/components/atoms/badge/index.d.ts +1 -0
  432. package/types/ui/src/components/atoms/box/box.d.ts +29 -0
  433. package/types/ui/src/components/atoms/box/index.d.ts +1 -0
  434. package/types/ui/src/components/atoms/button/button-variants.d.ts +216 -0
  435. package/types/ui/src/components/atoms/button/button.d.ts +37 -0
  436. package/types/ui/src/components/atoms/button/index.d.ts +1 -0
  437. package/types/ui/src/components/atoms/checkbox/checkbox.d.ts +62 -0
  438. package/types/ui/src/components/atoms/checkbox/index.d.ts +1 -0
  439. package/types/ui/src/components/atoms/chip/chip.d.ts +172 -0
  440. package/types/ui/src/components/atoms/chip/index.d.ts +1 -0
  441. package/types/ui/src/components/atoms/divider/divider.d.ts +13 -0
  442. package/types/ui/src/components/atoms/divider/index.d.ts +1 -0
  443. package/types/ui/src/components/atoms/expandable-text/expandable-text.d.ts +20 -0
  444. package/types/ui/src/components/atoms/expandable-text/index.d.ts +1 -0
  445. package/types/ui/src/components/atoms/focusable/focusable-a11y.d.ts +12 -0
  446. package/types/ui/src/components/atoms/focusable/focusable-delegate.d.ts +21 -0
  447. package/types/ui/src/components/atoms/focusable/focusable-forms.d.ts +62 -0
  448. package/types/ui/src/components/atoms/focusable/focusable-link.d.ts +7 -0
  449. package/types/ui/src/components/atoms/focusable/focusable-paint.d.ts +47 -0
  450. package/types/ui/src/components/atoms/focusable/focusable-types.d.ts +167 -0
  451. package/types/ui/src/components/atoms/focusable/focusable.d.ts +7 -0
  452. package/types/ui/src/components/atoms/focusable/index.d.ts +1 -0
  453. package/types/ui/src/components/atoms/focusable/touch-pressable.d.ts +35 -0
  454. package/types/ui/src/components/atoms/focusable/use-entry-focus.d.ts +9 -0
  455. package/types/ui/src/components/atoms/focusable/use-web-keys.d.ts +7 -0
  456. package/types/ui/src/components/atoms/frost/frost.d.ts +62 -0
  457. package/types/ui/src/components/atoms/frost/index.d.ts +1 -0
  458. package/types/ui/src/components/atoms/grid/grid.d.ts +28 -0
  459. package/types/ui/src/components/atoms/grid/index.d.ts +1 -0
  460. package/types/ui/src/components/atoms/ground/ground.d.ts +19 -0
  461. package/types/ui/src/components/atoms/ground/index.d.ts +1 -0
  462. package/types/ui/src/components/atoms/icon/icon.d.ts +4 -0
  463. package/types/ui/src/components/atoms/icon/index.d.ts +1 -0
  464. package/types/ui/src/components/atoms/icon-button/icon-button.d.ts +165 -0
  465. package/types/ui/src/components/atoms/icon-button/index.d.ts +1 -0
  466. package/types/ui/src/components/atoms/icon-well/icon-well.d.ts +46 -0
  467. package/types/ui/src/components/atoms/icon-well/index.d.ts +1 -0
  468. package/types/ui/src/components/atoms/img/img.d.ts +45 -0
  469. package/types/ui/src/components/atoms/img/index.d.ts +1 -0
  470. package/types/ui/src/components/atoms/img/native-layers.d.ts +28 -0
  471. package/types/ui/src/components/atoms/img/use-cross-fade.d.ts +9 -0
  472. package/types/ui/src/components/atoms/img/web-layers.d.ts +19 -0
  473. package/types/ui/src/components/atoms/index.d.ts +64 -0
  474. package/types/ui/src/components/atoms/kbd/index.d.ts +2 -0
  475. package/types/ui/src/components/atoms/kbd/kbd.d.ts +18 -0
  476. package/types/ui/src/components/atoms/logo/index.d.ts +1 -0
  477. package/types/ui/src/components/atoms/logo/logo.d.ts +11 -0
  478. package/types/ui/src/components/atoms/number-field/index.d.ts +1 -0
  479. package/types/ui/src/components/atoms/number-field/number-field.d.ts +11 -0
  480. package/types/ui/src/components/atoms/progress/index.d.ts +1 -0
  481. package/types/ui/src/components/atoms/progress/progress.d.ts +28 -0
  482. package/types/ui/src/components/atoms/progress-ring/index.d.ts +1 -0
  483. package/types/ui/src/components/atoms/progress-ring/progress-ring.d.ts +7 -0
  484. package/types/ui/src/components/atoms/radio/index.d.ts +1 -0
  485. package/types/ui/src/components/atoms/radio/radio.d.ts +76 -0
  486. package/types/ui/src/components/atoms/skeleton/card-skeleton.d.ts +6 -0
  487. package/types/ui/src/components/atoms/skeleton/index.d.ts +4 -0
  488. package/types/ui/src/components/atoms/skeleton/poster-skeleton.d.ts +7 -0
  489. package/types/ui/src/components/atoms/skeleton/skeleton.d.ts +20 -0
  490. package/types/ui/src/components/atoms/skeleton/table-skeleton.d.ts +6 -0
  491. package/types/ui/src/components/atoms/spinner/index.d.ts +1 -0
  492. package/types/ui/src/components/atoms/spinner/spinner.d.ts +14 -0
  493. package/types/ui/src/components/atoms/status-dot/index.d.ts +1 -0
  494. package/types/ui/src/components/atoms/status-dot/status-dot.d.ts +9 -0
  495. package/types/ui/src/components/atoms/surface/index.d.ts +1 -0
  496. package/types/ui/src/components/atoms/surface/surface.d.ts +56 -0
  497. package/types/ui/src/components/atoms/switch/index.d.ts +1 -0
  498. package/types/ui/src/components/atoms/switch/switch.d.ts +64 -0
  499. package/types/ui/src/components/atoms/text/index.d.ts +1 -0
  500. package/types/ui/src/components/atoms/text/text.d.ts +21 -0
  501. package/types/ui/src/components/atoms/text-area/index.d.ts +1 -0
  502. package/types/ui/src/components/atoms/text-area/text-area.d.ts +31 -0
  503. package/types/ui/src/components/atoms/text-field/index.d.ts +1 -0
  504. package/types/ui/src/components/atoms/text-field/text-field.d.ts +50 -0
  505. package/types/ui/src/components/atoms/watched-badge/index.d.ts +1 -0
  506. package/types/ui/src/components/atoms/watched-badge/watched-badge.d.ts +19 -0
  507. package/types/ui/src/components/atoms/wheel/index.d.ts +1 -0
  508. package/types/ui/src/components/atoms/wheel/wheel.d.ts +9 -0
  509. package/types/ui/src/components/common/if/if.d.ts +9 -0
  510. package/types/ui/src/components/common/if/index.d.ts +1 -0
  511. package/types/ui/src/components/common/index.d.ts +2 -0
  512. package/types/ui/src/components/molecules/add-tile/add-tile.d.ts +65 -0
  513. package/types/ui/src/components/molecules/add-tile/index.d.ts +2 -0
  514. package/types/ui/src/components/molecules/alphabet-rail/alphabet-rail-context.d.ts +20 -0
  515. package/types/ui/src/components/molecules/alphabet-rail/alphabet-rail-item.d.ts +13 -0
  516. package/types/ui/src/components/molecules/alphabet-rail/alphabet-rail-lens.d.ts +17 -0
  517. package/types/ui/src/components/molecules/alphabet-rail/alphabet-rail.d.ts +46 -0
  518. package/types/ui/src/components/molecules/alphabet-rail/index.d.ts +2 -0
  519. package/types/ui/src/components/molecules/alphabet-rail/use-letter-scrub.d.ts +17 -0
  520. package/types/ui/src/components/molecules/back-button/back-button.d.ts +10 -0
  521. package/types/ui/src/components/molecules/back-button/index.d.ts +1 -0
  522. package/types/ui/src/components/molecules/button-group/button-group.d.ts +37 -0
  523. package/types/ui/src/components/molecules/button-group/index.d.ts +3 -0
  524. package/types/ui/src/components/molecules/callout/callout.d.ts +63 -0
  525. package/types/ui/src/components/molecules/callout/index.d.ts +1 -0
  526. package/types/ui/src/components/molecules/category-tile/category-tile.d.ts +65 -0
  527. package/types/ui/src/components/molecules/category-tile/index.d.ts +1 -0
  528. package/types/ui/src/components/molecules/choice-list/choice-list.d.ts +53 -0
  529. package/types/ui/src/components/molecules/choice-list/index.d.ts +1 -0
  530. package/types/ui/src/components/molecules/copy-button/copy-button.d.ts +19 -0
  531. package/types/ui/src/components/molecules/copy-button/index.d.ts +1 -0
  532. package/types/ui/src/components/molecules/data-field/data-field.d.ts +44 -0
  533. package/types/ui/src/components/molecules/data-field/index.d.ts +1 -0
  534. package/types/ui/src/components/molecules/disclosure/disclosure.d.ts +55 -0
  535. package/types/ui/src/components/molecules/disclosure/index.d.ts +1 -0
  536. package/types/ui/src/components/molecules/dropzone/dropzone-parts.d.ts +46 -0
  537. package/types/ui/src/components/molecules/dropzone/dropzone-sift.d.ts +6 -0
  538. package/types/ui/src/components/molecules/dropzone/dropzone.d.ts +21 -0
  539. package/types/ui/src/components/molecules/dropzone/dropzone.web.d.ts +11 -0
  540. package/types/ui/src/components/molecules/dropzone/index.d.ts +1 -0
  541. package/types/ui/src/components/molecules/empty-state/empty-state.d.ts +60 -0
  542. package/types/ui/src/components/molecules/empty-state/index.d.ts +1 -0
  543. package/types/ui/src/components/molecules/field/field.d.ts +56 -0
  544. package/types/ui/src/components/molecules/field/index.d.ts +1 -0
  545. package/types/ui/src/components/molecules/hint/hint.d.ts +23 -0
  546. package/types/ui/src/components/molecules/hint/index.d.ts +1 -0
  547. package/types/ui/src/components/molecules/index.d.ts +70 -0
  548. package/types/ui/src/components/molecules/input-group/index.d.ts +3 -0
  549. package/types/ui/src/components/molecules/input-group/input-group-context.d.ts +34 -0
  550. package/types/ui/src/components/molecules/input-group/input-group-parts.d.ts +31 -0
  551. package/types/ui/src/components/molecules/input-group/input-group.d.ts +38 -0
  552. package/types/ui/src/components/molecules/keypad/index.d.ts +1 -0
  553. package/types/ui/src/components/molecules/keypad/keypad.d.ts +44 -0
  554. package/types/ui/src/components/molecules/legend/index.d.ts +1 -0
  555. package/types/ui/src/components/molecules/legend/legend.d.ts +32 -0
  556. package/types/ui/src/components/molecules/list/index.d.ts +1 -0
  557. package/types/ui/src/components/molecules/list/list.d.ts +41 -0
  558. package/types/ui/src/components/molecules/list-row/index.d.ts +3 -0
  559. package/types/ui/src/components/molecules/list-row/list-group.d.ts +23 -0
  560. package/types/ui/src/components/molecules/list-row/list-row-context.d.ts +10 -0
  561. package/types/ui/src/components/molecules/list-row/list-row-parts.d.ts +28 -0
  562. package/types/ui/src/components/molecules/list-row/list-row-variants.d.ts +90 -0
  563. package/types/ui/src/components/molecules/list-row/list-row.d.ts +51 -0
  564. package/types/ui/src/components/molecules/media-card/index.d.ts +1 -0
  565. package/types/ui/src/components/molecules/media-card/media-card.d.ts +22 -0
  566. package/types/ui/src/components/molecules/nav-pill/index.d.ts +1 -0
  567. package/types/ui/src/components/molecules/nav-pill/nav-pill-context.d.ts +28 -0
  568. package/types/ui/src/components/molecules/nav-pill/nav-pill-item.d.ts +101 -0
  569. package/types/ui/src/components/molecules/nav-pill/nav-pill-lens.d.ts +8 -0
  570. package/types/ui/src/components/molecules/nav-pill/nav-pill.d.ts +55 -0
  571. package/types/ui/src/components/molecules/otp-field/index.d.ts +1 -0
  572. package/types/ui/src/components/molecules/otp-field/otp-field-context.d.ts +32 -0
  573. package/types/ui/src/components/molecules/otp-field/otp-field-parts.d.ts +18 -0
  574. package/types/ui/src/components/molecules/otp-field/otp-field-variants.d.ts +68 -0
  575. package/types/ui/src/components/molecules/otp-field/otp-field.d.ts +57 -0
  576. package/types/ui/src/components/molecules/page-header/index.d.ts +1 -0
  577. package/types/ui/src/components/molecules/page-header/page-header.d.ts +69 -0
  578. package/types/ui/src/components/molecules/pagination/index.d.ts +3 -0
  579. package/types/ui/src/components/molecules/pagination/pagination.d.ts +102 -0
  580. package/types/ui/src/components/molecules/pagination/paging.d.ts +24 -0
  581. package/types/ui/src/components/molecules/person-card/index.d.ts +1 -0
  582. package/types/ui/src/components/molecules/person-card/person-card.d.ts +58 -0
  583. package/types/ui/src/components/molecules/pin-field/index.d.ts +1 -0
  584. package/types/ui/src/components/molecules/pin-field/pin-field.d.ts +26 -0
  585. package/types/ui/src/components/molecules/poster-card/index.d.ts +1 -0
  586. package/types/ui/src/components/molecules/poster-card/poster-card.d.ts +22 -0
  587. package/types/ui/src/components/molecules/section/index.d.ts +1 -0
  588. package/types/ui/src/components/molecules/section/section.d.ts +54 -0
  589. package/types/ui/src/components/molecules/segment-group/index.d.ts +2 -0
  590. package/types/ui/src/components/molecules/segment-group/segment-group-context.d.ts +17 -0
  591. package/types/ui/src/components/molecules/segment-group/segment-group-item.d.ts +58 -0
  592. package/types/ui/src/components/molecules/segment-group/segment-group.d.ts +29 -0
  593. package/types/ui/src/components/molecules/select/index.d.ts +1 -0
  594. package/types/ui/src/components/molecules/select/select-context.d.ts +54 -0
  595. package/types/ui/src/components/molecules/select/select-item.d.ts +39 -0
  596. package/types/ui/src/components/molecules/select/select-options-dialog.d.ts +3 -0
  597. package/types/ui/src/components/molecules/select/select-options.d.ts +3 -0
  598. package/types/ui/src/components/molecules/select/select-selection.d.ts +24 -0
  599. package/types/ui/src/components/molecules/select/select-surface.d.ts +17 -0
  600. package/types/ui/src/components/molecules/select/select.d.ts +112 -0
  601. package/types/ui/src/components/molecules/stat-card/index.d.ts +1 -0
  602. package/types/ui/src/components/molecules/stat-card/stat-card.d.ts +46 -0
  603. package/types/ui/src/components/molecules/stepper/index.d.ts +1 -0
  604. package/types/ui/src/components/molecules/stepper/stepper-context.d.ts +44 -0
  605. package/types/ui/src/components/molecules/stepper/stepper-item.d.ts +110 -0
  606. package/types/ui/src/components/molecules/stepper/stepper-list.d.ts +12 -0
  607. package/types/ui/src/components/molecules/stepper/stepper.d.ts +97 -0
  608. package/types/ui/src/components/molecules/stepper/use-steps.d.ts +40 -0
  609. package/types/ui/src/components/molecules/theme-switch/index.d.ts +1 -0
  610. package/types/ui/src/components/molecules/theme-switch/theme-switch.d.ts +19 -0
  611. package/types/ui/src/components/molecules/timeline/index.d.ts +1 -0
  612. package/types/ui/src/components/molecules/timeline/timeline.d.ts +55 -0
  613. package/types/ui/src/components/molecules/tooltip/index.d.ts +1 -0
  614. package/types/ui/src/components/molecules/tooltip/tooltip.d.ts +9 -0
  615. package/types/ui/src/components/molecules/tooltip/tooltip.web.d.ts +4 -0
  616. package/types/ui/src/components/organisms/chart/chart-context.d.ts +38 -0
  617. package/types/ui/src/components/organisms/chart/chart-marks.d.ts +32 -0
  618. package/types/ui/src/components/organisms/chart/chart-parts.d.ts +41 -0
  619. package/types/ui/src/components/organisms/chart/chart-path.d.ts +28 -0
  620. package/types/ui/src/components/organisms/chart/chart-scale.d.ts +82 -0
  621. package/types/ui/src/components/organisms/chart/chart.d.ts +63 -0
  622. package/types/ui/src/components/organisms/chart/index.d.ts +5 -0
  623. package/types/ui/src/components/organisms/code-block/code-block.d.ts +23 -0
  624. package/types/ui/src/components/organisms/code-block/code-tokens.d.ts +15 -0
  625. package/types/ui/src/components/organisms/code-block/index.d.ts +1 -0
  626. package/types/ui/src/components/organisms/command/command-context.d.ts +31 -0
  627. package/types/ui/src/components/organisms/command/command-keys-types.d.ts +11 -0
  628. package/types/ui/src/components/organisms/command/command-keys.d.ts +3 -0
  629. package/types/ui/src/components/organisms/command/command-keys.web.d.ts +3 -0
  630. package/types/ui/src/components/organisms/command/command-list.d.ts +46 -0
  631. package/types/ui/src/components/organisms/command/command-parts.d.ts +24 -0
  632. package/types/ui/src/components/organisms/command/command-row.d.ts +15 -0
  633. package/types/ui/src/components/organisms/command/command.d.ts +45 -0
  634. package/types/ui/src/components/organisms/command/index.d.ts +7 -0
  635. package/types/ui/src/components/organisms/dialog/confirm-dialog/confirm-dialog.d.ts +12 -0
  636. package/types/ui/src/components/organisms/dialog/confirm-dialog/confirm.d.ts +16 -0
  637. package/types/ui/src/components/organisms/dialog/confirm-dialog/index.d.ts +2 -0
  638. package/types/ui/src/components/organisms/dialog/dialog-actions.d.ts +29 -0
  639. package/types/ui/src/components/organisms/dialog/dialog-parts.d.ts +20 -0
  640. package/types/ui/src/components/organisms/dialog/dialog.d.ts +55 -0
  641. package/types/ui/src/components/organisms/dialog/index.d.ts +3 -0
  642. package/types/ui/src/components/organisms/drawer/drawer-parts.d.ts +29 -0
  643. package/types/ui/src/components/organisms/drawer/drawer-slide.d.ts +20 -0
  644. package/types/ui/src/components/organisms/drawer/drawer.d.ts +64 -0
  645. package/types/ui/src/components/organisms/drawer/index.d.ts +2 -0
  646. package/types/ui/src/components/organisms/index.d.ts +31 -0
  647. package/types/ui/src/components/organisms/keyboard/index.d.ts +8 -0
  648. package/types/ui/src/components/organisms/keyboard/key.d.ts +57 -0
  649. package/types/ui/src/components/organisms/keyboard/keyboard-layouts.d.ts +27 -0
  650. package/types/ui/src/components/organisms/keyboard/search-keyboard/index.d.ts +1 -0
  651. package/types/ui/src/components/organisms/keyboard/search-keyboard/search-keyboard.d.ts +19 -0
  652. package/types/ui/src/components/organisms/keyboard/url-keyboard/index.d.ts +1 -0
  653. package/types/ui/src/components/organisms/keyboard/url-keyboard/url-keyboard.d.ts +20 -0
  654. package/types/ui/src/components/organisms/keyboard/use-physical-typing.d.ts +2 -0
  655. package/types/ui/src/components/organisms/kroma-intro/animations.d.ts +2 -0
  656. package/types/ui/src/components/organisms/kroma-intro/constants.d.ts +14 -0
  657. package/types/ui/src/components/organisms/kroma-intro/css-intro.d.ts +12 -0
  658. package/types/ui/src/components/organisms/kroma-intro/index.d.ts +3 -0
  659. package/types/ui/src/components/organisms/kroma-intro/intro-scene.d.ts +21 -0
  660. package/types/ui/src/components/organisms/kroma-intro/intro-shell.d.ts +10 -0
  661. package/types/ui/src/components/organisms/kroma-intro/kroma-intro.d.ts +3 -0
  662. package/types/ui/src/components/organisms/kroma-intro/kroma-intro.web.d.ts +33 -0
  663. package/types/ui/src/components/organisms/kroma-intro/use-intro-exit.d.ts +21 -0
  664. package/types/ui/src/components/organisms/kroma-intro/use-intro-keys.d.ts +19 -0
  665. package/types/ui/src/components/organisms/menu/index.d.ts +1 -0
  666. package/types/ui/src/components/organisms/menu/menu-context.d.ts +32 -0
  667. package/types/ui/src/components/organisms/menu/menu-item.d.ts +57 -0
  668. package/types/ui/src/components/organisms/menu/menu-surface-dialog.d.ts +25 -0
  669. package/types/ui/src/components/organisms/menu/menu-surface.d.ts +3 -0
  670. package/types/ui/src/components/organisms/menu/menu.d.ts +49 -0
  671. package/types/ui/src/components/organisms/nearby-tv-list/index.d.ts +2 -0
  672. package/types/ui/src/components/organisms/nearby-tv-list/nearby-tv-list.d.ts +12 -0
  673. package/types/ui/src/components/organisms/perf-hud/index.d.ts +1 -0
  674. package/types/ui/src/components/organisms/perf-hud/perf-chart.d.ts +5 -0
  675. package/types/ui/src/components/organisms/perf-hud/perf-hud.d.ts +4 -0
  676. package/types/ui/src/components/organisms/player/hooks/use-drag-track.d.ts +22 -0
  677. package/types/ui/src/components/organisms/player/hooks/use-grid-focus.d.ts +19 -0
  678. package/types/ui/src/components/organisms/player/hooks/use-idle-cursor.d.ts +7 -0
  679. package/types/ui/src/components/organisms/player/hooks/use-list-focus.d.ts +40 -0
  680. package/types/ui/src/components/organisms/player/hooks/use-player-credits.d.ts +22 -0
  681. package/types/ui/src/components/organisms/player/hooks/use-player-ending.d.ts +37 -0
  682. package/types/ui/src/components/organisms/player/hooks/use-player-keys.d.ts +8 -0
  683. package/types/ui/src/components/organisms/player/hooks/use-player-keys.web.d.ts +5 -0
  684. package/types/ui/src/components/organisms/player/hooks/use-player-nav.d.ts +58 -0
  685. package/types/ui/src/components/organisms/player/hooks/use-player-outro.d.ts +14 -0
  686. package/types/ui/src/components/organisms/player/hooks/use-seek-nudge.d.ts +8 -0
  687. package/types/ui/src/components/organisms/player/index.d.ts +22 -0
  688. package/types/ui/src/components/organisms/player/lib/audio-filter.d.ts +15 -0
  689. package/types/ui/src/components/organisms/player/lib/chapters.d.ts +16 -0
  690. package/types/ui/src/components/organisms/player/lib/chart-geometry.d.ts +46 -0
  691. package/types/ui/src/components/organisms/player/lib/fmt.d.ts +19 -0
  692. package/types/ui/src/components/organisms/player/lib/lean-stats.d.ts +34 -0
  693. package/types/ui/src/components/organisms/player/lib/metrics.d.ts +40 -0
  694. package/types/ui/src/components/organisms/player/lib/nav-keys.d.ts +19 -0
  695. package/types/ui/src/components/organisms/player/lib/nav.d.ts +38 -0
  696. package/types/ui/src/components/organisms/player/lib/panel-header.d.ts +12 -0
  697. package/types/ui/src/components/organisms/player/lib/panel-slide.d.ts +16 -0
  698. package/types/ui/src/components/organisms/player/lib/player-keys.d.ts +44 -0
  699. package/types/ui/src/components/organisms/player/lib/seek-track.d.ts +19 -0
  700. package/types/ui/src/components/organisms/player/lib/stage-card.d.ts +31 -0
  701. package/types/ui/src/components/organisms/player/lib/stage-ratio.d.ts +4 -0
  702. package/types/ui/src/components/organisms/player/lib/stage-ratio.web.d.ts +2 -0
  703. package/types/ui/src/components/organisms/player/lib/style.d.ts +40 -0
  704. package/types/ui/src/components/organisms/player/lib/styles.d.ts +3 -0
  705. package/types/ui/src/components/organisms/player/lib/subtitle-appearance.d.ts +53 -0
  706. package/types/ui/src/components/organisms/player/lib/subtitle-edge.d.ts +3 -0
  707. package/types/ui/src/components/organisms/player/lib/subtitle-edge.web.d.ts +3 -0
  708. package/types/ui/src/components/organisms/player/lib/surface-shrink.d.ts +17 -0
  709. package/types/ui/src/components/organisms/player/lib/virtual-focus.d.ts +2 -0
  710. package/types/ui/src/components/organisms/player/lib/virtual-focus.web.d.ts +3 -0
  711. package/types/ui/src/components/organisms/player/parts/control-cluster/control-cluster.d.ts +32 -0
  712. package/types/ui/src/components/organisms/player/parts/control-cluster/index.d.ts +1 -0
  713. package/types/ui/src/components/organisms/player/parts/credits-card/credits-card.d.ts +25 -0
  714. package/types/ui/src/components/organisms/player/parts/credits-card/index.d.ts +1 -0
  715. package/types/ui/src/components/organisms/player/parts/icons.d.ts +39 -0
  716. package/types/ui/src/components/organisms/player/parts/post-play/index.d.ts +1 -0
  717. package/types/ui/src/components/organisms/player/parts/post-play/post-play.d.ts +41 -0
  718. package/types/ui/src/components/organisms/player/parts/post-play/rise.d.ts +12 -0
  719. package/types/ui/src/components/organisms/player/parts/post-play/rise.web.d.ts +10 -0
  720. package/types/ui/src/components/organisms/player/parts/seek-bar/index.d.ts +1 -0
  721. package/types/ui/src/components/organisms/player/parts/seek-bar/seek-bar.d.ts +22 -0
  722. package/types/ui/src/components/organisms/player/parts/settings-panel/index.d.ts +1 -0
  723. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/audio-filter-panel.d.ts +11 -0
  724. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/audio-panel.d.ts +11 -0
  725. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/entries.d.ts +35 -0
  726. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/gen.d.ts +24 -0
  727. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/generate-wizard.d.ts +18 -0
  728. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/menu-list.d.ts +9 -0
  729. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/menu-row.d.ts +15 -0
  730. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/panel-style.d.ts +99 -0
  731. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/quality-panel.d.ts +16 -0
  732. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/report-panel.d.ts +8 -0
  733. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/select-row.d.ts +21 -0
  734. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/speed-panel.d.ts +10 -0
  735. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/sub-view.d.ts +16 -0
  736. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/subtitle-appearance-panel.d.ts +14 -0
  737. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/subtitle-appearance-parts.d.ts +27 -0
  738. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/subtitles-panel.d.ts +18 -0
  739. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/title-bar.d.ts +9 -0
  740. package/types/ui/src/components/organisms/player/parts/settings-panel/settings/wizard-parts.d.ts +8 -0
  741. package/types/ui/src/components/organisms/player/parts/settings-panel/settings-panel.d.ts +40 -0
  742. package/types/ui/src/components/organisms/player/parts/skip-intro-button/index.d.ts +1 -0
  743. package/types/ui/src/components/organisms/player/parts/skip-intro-button/skip-intro-button.d.ts +22 -0
  744. package/types/ui/src/components/organisms/player/parts/stage/index.d.ts +1 -0
  745. package/types/ui/src/components/organisms/player/parts/stage/stage-overlay.d.ts +13 -0
  746. package/types/ui/src/components/organisms/player/parts/stage/stage.d.ts +30 -0
  747. package/types/ui/src/components/organisms/player/parts/stats-panel/index.d.ts +1 -0
  748. package/types/ui/src/components/organisms/player/parts/stats-panel/stats-chart.d.ts +16 -0
  749. package/types/ui/src/components/organisms/player/parts/stats-panel/stats-panel.d.ts +14 -0
  750. package/types/ui/src/components/organisms/player/parts/storyboard-thumb/index.d.ts +1 -0
  751. package/types/ui/src/components/organisms/player/parts/storyboard-thumb/storyboard-thumb.d.ts +4 -0
  752. package/types/ui/src/components/organisms/player/parts/subtitle-renderer/index.d.ts +1 -0
  753. package/types/ui/src/components/organisms/player/parts/subtitle-renderer/subtitle-renderer.d.ts +32 -0
  754. package/types/ui/src/components/organisms/player/parts/surface-radius.d.ts +9 -0
  755. package/types/ui/src/components/organisms/player/parts/top-bar/index.d.ts +1 -0
  756. package/types/ui/src/components/organisms/player/parts/top-bar/top-bar.d.ts +24 -0
  757. package/types/ui/src/components/organisms/player/parts/transport/index.d.ts +1 -0
  758. package/types/ui/src/components/organisms/player/parts/transport/transport.d.ts +19 -0
  759. package/types/ui/src/components/organisms/player/parts/up-next-card/index.d.ts +1 -0
  760. package/types/ui/src/components/organisms/player/parts/up-next-card/up-next-card.d.ts +37 -0
  761. package/types/ui/src/components/organisms/player/parts/up-next-sheet/index.d.ts +1 -0
  762. package/types/ui/src/components/organisms/player/parts/up-next-sheet/slide.d.ts +5 -0
  763. package/types/ui/src/components/organisms/player/parts/up-next-sheet/slide.web.d.ts +5 -0
  764. package/types/ui/src/components/organisms/player/parts/up-next-sheet/up-next-sheet.d.ts +17 -0
  765. package/types/ui/src/components/organisms/player/player-chrome-state.d.ts +11 -0
  766. package/types/ui/src/components/organisms/player/player-input.d.ts +16 -0
  767. package/types/ui/src/components/organisms/player/player-parts.d.ts +34 -0
  768. package/types/ui/src/components/organisms/player/player.d.ts +63 -0
  769. package/types/ui/src/components/organisms/player/types.d.ts +226 -0
  770. package/types/ui/src/components/organisms/rail/index.d.ts +1 -0
  771. package/types/ui/src/components/organisms/rail/rail-context.d.ts +7 -0
  772. package/types/ui/src/components/organisms/rail/rail-row.d.ts +22 -0
  773. package/types/ui/src/components/organisms/rail/rail.d.ts +63 -0
  774. package/types/ui/src/components/organisms/resizable/index.d.ts +8 -0
  775. package/types/ui/src/components/organisms/resizable/resizable-context.d.ts +39 -0
  776. package/types/ui/src/components/organisms/resizable/resizable-cursor.d.ts +3 -0
  777. package/types/ui/src/components/organisms/resizable/resizable-cursor.web.d.ts +4 -0
  778. package/types/ui/src/components/organisms/resizable/resizable-handle.d.ts +30 -0
  779. package/types/ui/src/components/organisms/resizable/resizable-keys-types.d.ts +11 -0
  780. package/types/ui/src/components/organisms/resizable/resizable-keys.d.ts +3 -0
  781. package/types/ui/src/components/organisms/resizable/resizable-keys.web.d.ts +3 -0
  782. package/types/ui/src/components/organisms/resizable/resizable-layout.d.ts +55 -0
  783. package/types/ui/src/components/organisms/resizable/resizable-panel.d.ts +55 -0
  784. package/types/ui/src/components/organisms/resizable/resizable-store.d.ts +18 -0
  785. package/types/ui/src/components/organisms/resizable/resizable.d.ts +59 -0
  786. package/types/ui/src/components/organisms/splash-backdrop/index.d.ts +2 -0
  787. package/types/ui/src/components/organisms/splash-backdrop/splash-backdrop.d.ts +22 -0
  788. package/types/ui/src/components/organisms/table/index.d.ts +1 -0
  789. package/types/ui/src/components/organisms/table/table-cell.d.ts +9 -0
  790. package/types/ui/src/components/organisms/table/table-columns.d.ts +32 -0
  791. package/types/ui/src/components/organisms/table/table-context.d.ts +17 -0
  792. package/types/ui/src/components/organisms/table/table-frame.d.ts +9 -0
  793. package/types/ui/src/components/organisms/table/table-place.d.ts +8 -0
  794. package/types/ui/src/components/organisms/table/table-row.d.ts +12 -0
  795. package/types/ui/src/components/organisms/table/table-sort-cell.d.ts +14 -0
  796. package/types/ui/src/components/organisms/table/table-sort.d.ts +38 -0
  797. package/types/ui/src/components/organisms/table/table.d.ts +65 -0
  798. package/types/ui/src/components/organisms/toast/index.d.ts +1 -0
  799. package/types/ui/src/components/organisms/toast/toast-card.d.ts +8 -0
  800. package/types/ui/src/components/organisms/toast/toast.d.ts +54 -0
  801. package/types/ui/src/components/organisms/virtual/clip.d.ts +25 -0
  802. package/types/ui/src/components/organisms/virtual/index.d.ts +2 -0
  803. package/types/ui/src/components/organisms/virtual/moving-strip.d.ts +16 -0
  804. package/types/ui/src/components/organisms/virtual/strip-motion.d.ts +4 -0
  805. package/types/ui/src/components/organisms/virtual/virtual-grid/grid-row.d.ts +25 -0
  806. package/types/ui/src/components/organisms/virtual/virtual-grid/grid-rows.d.ts +57 -0
  807. package/types/ui/src/components/organisms/virtual/virtual-grid/index.d.ts +1 -0
  808. package/types/ui/src/components/organisms/virtual/virtual-grid/use-wheel-rows.d.ts +8 -0
  809. package/types/ui/src/components/organisms/virtual/virtual-grid/virtual-grid.d.ts +54 -0
  810. package/types/ui/src/components/organisms/virtual/virtual-rail/edge-scroll.d.ts +38 -0
  811. package/types/ui/src/components/organisms/virtual/virtual-rail/index.d.ts +1 -0
  812. package/types/ui/src/components/organisms/virtual/virtual-rail/rail-edge.d.ts +11 -0
  813. package/types/ui/src/components/organisms/virtual/virtual-rail/use-key-grace.d.ts +6 -0
  814. package/types/ui/src/components/organisms/virtual/virtual-rail/virtual-rail.d.ts +19 -0
  815. package/types/ui/src/components/templates/index.d.ts +2 -0
  816. package/types/ui/src/components/templates/tv-stage/index.d.ts +1 -0
  817. package/types/ui/src/components/templates/tv-stage/tv-stage.d.ts +7 -0
  818. package/types/ui/src/core/atomic/index.d.ts +5 -0
  819. package/types/ui/src/core/atomic/inject.d.ts +3 -0
  820. package/types/ui/src/core/atomic/register.d.ts +13 -0
  821. package/types/ui/src/core/atomic/static-style.d.ts +8 -0
  822. package/types/ui/src/core/breakpoint-cascade.d.ts +45 -0
  823. package/types/ui/src/core/breakpoint.d.ts +21 -0
  824. package/types/ui/src/core/color.d.ts +21 -0
  825. package/types/ui/src/core/index.d.ts +20 -0
  826. package/types/ui/src/core/normalize.d.ts +21 -0
  827. package/types/ui/src/core/recipe.d.ts +21 -0
  828. package/types/ui/src/core/shorthand-resolve.d.ts +54 -0
  829. package/types/ui/src/core/shorthands.d.ts +187 -0
  830. package/types/ui/src/core/stabilise.d.ts +14 -0
  831. package/types/ui/src/core/states.d.ts +16 -0
  832. package/types/ui/src/core/styles.d.ts +59 -0
  833. package/types/ui/src/core/theme-create.d.ts +64 -0
  834. package/types/ui/src/core/theme-mode.d.ts +15 -0
  835. package/types/ui/src/core/theme.d.ts +72 -0
  836. package/types/ui/src/core/tokens/colors.d.ts +109 -0
  837. package/types/ui/src/core/tokens/css-palette.d.ts +19 -0
  838. package/types/ui/src/core/tokens/css-var.d.ts +8 -0
  839. package/types/ui/src/core/tokens/effects.d.ts +103 -0
  840. package/types/ui/src/core/tokens/index.d.ts +10 -0
  841. package/types/ui/src/core/tokens/layout.d.ts +94 -0
  842. package/types/ui/src/core/tokens/mobile.d.ts +91 -0
  843. package/types/ui/src/core/tokens/registry.d.ts +4 -0
  844. package/types/ui/src/core/tokens/typography.d.ts +232 -0
  845. package/types/ui/src/core/types.d.ts +122 -0
  846. package/types/ui/src/core/use-breakpoint.d.ts +16 -0
  847. package/types/ui/src/core/use-theme.d.ts +30 -0
  848. package/types/ui/src/core/web-style.d.ts +91 -0
  849. package/types/ui/src/index.d.ts +20 -0
  850. package/types/ui/src/kit.d.ts +74 -0
  851. package/types/ui/src/lib/a11y-props.d.ts +26 -0
  852. package/types/ui/src/lib/a11y.d.ts +8 -0
  853. package/types/ui/src/lib/anchor.d.ts +32 -0
  854. package/types/ui/src/lib/anchored-keys.d.ts +41 -0
  855. package/types/ui/src/lib/anchored-panel.d.ts +42 -0
  856. package/types/ui/src/lib/anchored-popup.d.ts +17 -0
  857. package/types/ui/src/lib/box-layers.d.ts +10 -0
  858. package/types/ui/src/lib/box-style.d.ts +16 -0
  859. package/types/ui/src/lib/caret.d.ts +8 -0
  860. package/types/ui/src/lib/classed.d.ts +3 -0
  861. package/types/ui/src/lib/cover-rect.d.ts +26 -0
  862. package/types/ui/src/lib/css.d.ts +19 -0
  863. package/types/ui/src/lib/css.web.d.ts +25 -0
  864. package/types/ui/src/lib/cursor.d.ts +17 -0
  865. package/types/ui/src/lib/dismiss-backdrop.d.ts +11 -0
  866. package/types/ui/src/lib/dom.d.ts +12 -0
  867. package/types/ui/src/lib/drag-select.d.ts +1 -0
  868. package/types/ui/src/lib/drag-select.web.d.ts +13 -0
  869. package/types/ui/src/lib/ease.d.ts +13 -0
  870. package/types/ui/src/lib/escape-guard.d.ts +1 -0
  871. package/types/ui/src/lib/expo-image-backend.d.ts +5 -0
  872. package/types/ui/src/lib/field-shell.d.ts +140 -0
  873. package/types/ui/src/lib/focus-entry.d.ts +20 -0
  874. package/types/ui/src/lib/focus-here.d.ts +11 -0
  875. package/types/ui/src/lib/focus-here.web.d.ts +7 -0
  876. package/types/ui/src/lib/focus-lift.d.ts +39 -0
  877. package/types/ui/src/lib/focus-nav.d.ts +3 -0
  878. package/types/ui/src/lib/focus-nav.web.d.ts +2 -0
  879. package/types/ui/src/lib/focus-platform.d.ts +30 -0
  880. package/types/ui/src/lib/focus-presence.d.ts +5 -0
  881. package/types/ui/src/lib/focus-remote.d.ts +39 -0
  882. package/types/ui/src/lib/focus-remote.web.d.ts +16 -0
  883. package/types/ui/src/lib/focus-report.d.ts +18 -0
  884. package/types/ui/src/lib/focus-root.d.ts +22 -0
  885. package/types/ui/src/lib/focus-root.web.d.ts +3 -0
  886. package/types/ui/src/lib/focus-scope.d.ts +59 -0
  887. package/types/ui/src/lib/focus-scroll.d.ts +69 -0
  888. package/types/ui/src/lib/focus-tab.d.ts +12 -0
  889. package/types/ui/src/lib/focus-transition.d.ts +11 -0
  890. package/types/ui/src/lib/focus-transition.web.d.ts +3 -0
  891. package/types/ui/src/lib/focus-types.d.ts +18 -0
  892. package/types/ui/src/lib/focus-visible.d.ts +21 -0
  893. package/types/ui/src/lib/form/index.d.ts +4 -0
  894. package/types/ui/src/lib/form/message.d.ts +10 -0
  895. package/types/ui/src/lib/form/standard-schema.d.ts +27 -0
  896. package/types/ui/src/lib/form/use-form.d.ts +59 -0
  897. package/types/ui/src/lib/fuzzy-search.d.ts +20 -0
  898. package/types/ui/src/lib/genre-icon.d.ts +4 -0
  899. package/types/ui/src/lib/glyph.d.ts +24 -0
  900. package/types/ui/src/lib/group-shape.d.ts +44 -0
  901. package/types/ui/src/lib/hover-passthrough.d.ts +9 -0
  902. package/types/ui/src/lib/icon-catalog.d.ts +19 -0
  903. package/types/ui/src/lib/icon-search.d.ts +18 -0
  904. package/types/ui/src/lib/icons/every-glyph.d.ts +4 -0
  905. package/types/ui/src/lib/icons/every-glyph.web.d.ts +4 -0
  906. package/types/ui/src/lib/icons/glyph-source.d.ts +3 -0
  907. package/types/ui/src/lib/icons/glyphs.d.ts +34 -0
  908. package/types/ui/src/lib/icons/library.d.ts +19 -0
  909. package/types/ui/src/lib/icons/stroke-prop.d.ts +2 -0
  910. package/types/ui/src/lib/icons/stroke-prop.web.d.ts +2 -0
  911. package/types/ui/src/lib/image-backend.d.ts +26 -0
  912. package/types/ui/src/lib/input-gate.d.ts +11 -0
  913. package/types/ui/src/lib/input-source.d.ts +3 -0
  914. package/types/ui/src/lib/landmark.d.ts +4 -0
  915. package/types/ui/src/lib/landmark.web.d.ts +4 -0
  916. package/types/ui/src/lib/lockup-paths.d.ts +10 -0
  917. package/types/ui/src/lib/loop.d.ts +15 -0
  918. package/types/ui/src/lib/loop.web.d.ts +5 -0
  919. package/types/ui/src/lib/modal-portal.d.ts +3 -0
  920. package/types/ui/src/lib/modal-portal.web.d.ts +8 -0
  921. package/types/ui/src/lib/name-of.d.ts +9 -0
  922. package/types/ui/src/lib/nav-style.d.ts +5 -0
  923. package/types/ui/src/lib/overlay-host.d.ts +23 -0
  924. package/types/ui/src/lib/part-context.d.ts +8 -0
  925. package/types/ui/src/lib/perf-memory.d.ts +12 -0
  926. package/types/ui/src/lib/perf-memory.web.d.ts +4 -0
  927. package/types/ui/src/lib/perf.d.ts +35 -0
  928. package/types/ui/src/lib/platform.d.ts +3 -0
  929. package/types/ui/src/lib/platform.web.d.ts +2 -0
  930. package/types/ui/src/lib/portal.d.ts +10 -0
  931. package/types/ui/src/lib/portal.web.d.ts +17 -0
  932. package/types/ui/src/lib/press-dip.d.ts +26 -0
  933. package/types/ui/src/lib/press-guard.d.ts +8 -0
  934. package/types/ui/src/lib/progress-motion.d.ts +11 -0
  935. package/types/ui/src/lib/progress-motion.web.d.ts +11 -0
  936. package/types/ui/src/lib/reduced-motion.d.ts +7 -0
  937. package/types/ui/src/lib/report-categories.d.ts +10 -0
  938. package/types/ui/src/lib/ring-room.d.ts +27 -0
  939. package/types/ui/src/lib/ring-scope.d.ts +6 -0
  940. package/types/ui/src/lib/ring.d.ts +27 -0
  941. package/types/ui/src/lib/sample-art.d.ts +9 -0
  942. package/types/ui/src/lib/scroll-lock.d.ts +1 -0
  943. package/types/ui/src/lib/scroll-lock.web.d.ts +6 -0
  944. package/types/ui/src/lib/shake.d.ts +8 -0
  945. package/types/ui/src/lib/shake.web.d.ts +4 -0
  946. package/types/ui/src/lib/slot.d.ts +36 -0
  947. package/types/ui/src/lib/sort-icon.d.ts +5 -0
  948. package/types/ui/src/lib/splash-motion.d.ts +25 -0
  949. package/types/ui/src/lib/splash-motion.web.d.ts +15 -0
  950. package/types/ui/src/lib/stable-callback.d.ts +9 -0
  951. package/types/ui/src/lib/surface-bands.d.ts +26 -0
  952. package/types/ui/src/lib/surface-presentation.d.ts +17 -0
  953. package/types/ui/src/lib/surface-shell.d.ts +21 -0
  954. package/types/ui/src/lib/svg.d.ts +1 -0
  955. package/types/ui/src/lib/svg.web.d.ts +17 -0
  956. package/types/ui/src/lib/theme-audio.d.ts +7 -0
  957. package/types/ui/src/lib/tv-remote.d.ts +11 -0
  958. package/types/ui/src/lib/use-complete-once.d.ts +12 -0
  959. package/types/ui/src/lib/use-controllable.d.ts +1 -0
  960. package/types/ui/src/lib/use-copy.d.ts +20 -0
  961. package/types/ui/src/lib/use-growing-count.d.ts +12 -0
  962. package/types/ui/src/lib/use-settled-value.d.ts +5 -0
  963. package/types/ui/src/lib/wheel-pan.d.ts +7 -0
  964. package/types/ui/src/lib/wheel-pan.web.d.ts +11 -0
  965. package/types/ui/src/lib/wheel-paths.d.ts +5 -0
  966. package/types/ui/src/services/aiSuggest.d.ts +15 -0
  967. package/types/ui/src/services/auth.d.ts +41 -0
  968. package/types/ui/src/services/cast-context.d.ts +33 -0
  969. package/types/ui/src/services/cast-events.d.ts +23 -0
  970. package/types/ui/src/services/cast-lan.d.ts +21 -0
  971. package/types/ui/src/services/cast-position.d.ts +14 -0
  972. package/types/ui/src/services/cast.d.ts +20 -0
  973. package/types/ui/src/services/format.d.ts +25 -0
  974. package/types/ui/src/services/i18n.d.ts +18 -0
  975. package/types/ui/src/services/locale.d.ts +18 -0
  976. package/types/ui/src/services/playback.d.ts +49 -0
  977. package/types/ui/src/services/storyboard.d.ts +33 -0
  978. package/types/ui/src/services/subtitleGenerations.d.ts +13 -0
  979. package/types/ui/src/services/themeAudio.d.ts +19 -0
  980. package/types/ui/src/services/themeAudio.native.d.ts +8 -0
  981. package/types/ui/src/ssr.d.ts +20 -0
  982. package/types/ui/src/styles/motion.d.ts +2 -0
  983. package/types/ui/src/styles/page.d.ts +2 -0
  984. package/types/ui/src/styles/reset.d.ts +2 -0
  985. package/types/ui/src/styles/sheet.d.ts +18 -0
  986. package/types/ui/src/testing.d.ts +27 -0
  987. package/types/ui/src/workbench-config.d.ts +9 -0
@@ -0,0 +1,548 @@
1
+ //! The wire shape a module publishes about itself.
2
+
3
+ use std::collections::BTreeMap;
4
+
5
+ use serde::{Deserialize, Serialize};
6
+
7
+ /// A module's reported version, unparsed: ranges are checked against it by
8
+ /// [`crate::range_matches`], which treats anything unparseable as no constraint.
9
+ pub type Version = String;
10
+
11
+ /// A point this module DEFINES: somewhere other modules can plug in. `name` is
12
+ /// local, and the point's full name is `<this module's id>/<name>`, so ownership
13
+ /// is legible from the name alone and two authors cannot collide.
14
+ ///
15
+ /// Any module may define one. That is the whole trick: the core resolves a point
16
+ /// by matching a string against the installed manifests, so a module defining a
17
+ /// point is not a special case of the core defining one.
18
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
19
+ #[serde(rename_all = "camelCase")]
20
+ pub struct PointDef {
21
+ pub name: String,
22
+ /// The major this module serves. A consumer declaring another major is not
23
+ /// resolved to it. Within a major, evolution is additive only: the two ends
24
+ /// were built at different times, so a new field must default.
25
+ #[serde(default = "one")]
26
+ pub version: u32,
27
+ /// The methods a contributor is expected to answer, as
28
+ /// `/_port/<point>/<method>`. Introspection today; what lets the Store warn
29
+ /// about a consumer wanting a method the installed provider lacks.
30
+ #[serde(default, skip_serializing_if = "Vec::is_empty")]
31
+ pub methods: Vec<String>,
32
+ }
33
+
34
+ fn one() -> u32 {
35
+ 1
36
+ }
37
+
38
+ impl PointDef {
39
+ pub fn new(name: impl Into<String>) -> Self {
40
+ Self {
41
+ name: name.into(),
42
+ version: 1,
43
+ methods: Vec::new(),
44
+ }
45
+ }
46
+ }
47
+
48
+ /// One thing a module contributes: it answers `point` (a full
49
+ /// `<definer>/<name>`), under `id` when several contributions to that point can
50
+ /// be live at once.
51
+ ///
52
+ /// This is one declaration where there used to be three. `provides` described a
53
+ /// user-configurable capability for the admin picker, `ports` described the RPC
54
+ /// name resolution matched on, and they were the same fact written twice — an
55
+ /// engine advertised `download-client` under both. The UI metadata rides along
56
+ /// because the admin's add-form is data-driven off it.
57
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
58
+ #[serde(rename_all = "camelCase")]
59
+ pub struct Contribution {
60
+ pub point: String,
61
+ /// The major this contribution was built against.
62
+ #[serde(default = "one")]
63
+ pub version: u32,
64
+ /// The instance name, for a point several modules answer at once: a consumer
65
+ /// picks a download client by it. Absent when the point takes one answer.
66
+ #[serde(default, skip_serializing_if = "Option::is_none")]
67
+ pub id: Option<String>,
68
+ #[serde(default, skip_serializing_if = "Option::is_none")]
69
+ pub label: Option<String>,
70
+ #[serde(default, skip_serializing_if = "Vec::is_empty")]
71
+ pub fields: Vec<ConfigField>,
72
+ #[serde(default, skip_serializing_if = "Option::is_none")]
73
+ pub flow: Option<String>,
74
+ }
75
+
76
+ impl Contribution {
77
+ pub fn new(point: impl Into<String>) -> Self {
78
+ Self {
79
+ point: point.into(),
80
+ version: 1,
81
+ id: None,
82
+ label: None,
83
+ fields: Vec::new(),
84
+ flow: None,
85
+ }
86
+ }
87
+
88
+ /// The same, under an instance name.
89
+ pub fn instance(point: impl Into<String>, id: impl Into<String>) -> Self {
90
+ Self {
91
+ id: Some(id.into()),
92
+ ..Self::new(point)
93
+ }
94
+ }
95
+
96
+ /// The point's local name, i.e. without the defining module's id. What the
97
+ /// wire path is built from.
98
+ pub fn local(&self) -> &str {
99
+ self.point
100
+ .rsplit_once('/')
101
+ .map_or(self.point.as_str(), |(_, name)| name)
102
+ }
103
+ }
104
+
105
+ /// One admin-configurable setting a module exposes. The admin console renders a
106
+ /// control per field; the value is interpreted by `kind`.
107
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
108
+ #[serde(rename_all = "camelCase")]
109
+ pub struct ConfigField {
110
+ pub key: String,
111
+ pub label: String,
112
+ #[serde(rename = "type")]
113
+ pub kind: String,
114
+ #[serde(default)]
115
+ pub default: Option<String>,
116
+ #[serde(default)]
117
+ pub options: Vec<String>,
118
+ #[serde(default, skip_serializing_if = "Option::is_none")]
119
+ pub placeholder: Option<String>,
120
+ #[serde(default)]
121
+ pub secret: bool,
122
+ #[serde(default)]
123
+ pub required: bool,
124
+ }
125
+
126
+ /// The frontend half of a module, when it ships a Module Federation remote. The
127
+ /// remote's entry URL is derived by the server (`/modules/<id>/remoteEntry.js`),
128
+ /// so this only names the exposed module the host `loadRemote`s. Absent for
129
+ /// backend-only modules and for compile-time-bundled frontends.
130
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
131
+ #[serde(rename_all = "camelCase")]
132
+ pub struct FeRemote {
133
+ pub module: String,
134
+ }
135
+
136
+ /// A dependency on another module: its `id` and an optional semver range the
137
+ /// depended module's version must satisfy (e.g. `^1.0`). In a manifest the whole
138
+ /// collection is written as a package.json-style `{ id: range }` map (see
139
+ /// [`dep_map`]); a single entry also deserializes leniently from a bare `"id"`
140
+ /// string, an `"id@range"` string, or an object `{ id, version }`, so older
141
+ /// array-form manifests keep working.
142
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize)]
143
+ #[serde(rename_all = "camelCase")]
144
+ pub struct Dependency {
145
+ pub id: String,
146
+ #[serde(default, skip_serializing_if = "Option::is_none")]
147
+ pub version: Option<String>,
148
+ }
149
+
150
+ impl Dependency {
151
+ pub fn new(id: impl Into<String>) -> Self {
152
+ Self {
153
+ id: id.into(),
154
+ version: None,
155
+ }
156
+ }
157
+ }
158
+
159
+ impl<'de> Deserialize<'de> for Dependency {
160
+ fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
161
+ #[derive(Deserialize)]
162
+ #[serde(rename_all = "camelCase", untagged)]
163
+ enum Repr {
164
+ Str(String),
165
+ Obj {
166
+ id: String,
167
+ #[serde(default)]
168
+ version: Option<String>,
169
+ },
170
+ }
171
+ Ok(match Repr::deserialize(deserializer)? {
172
+ Repr::Str(s) => match s.split_once('@') {
173
+ Some((id, range)) => Dependency {
174
+ id: id.into(),
175
+ version: normalize_range(range),
176
+ },
177
+ None => Dependency {
178
+ id: s,
179
+ version: None,
180
+ },
181
+ },
182
+ Repr::Obj { id, version } => Dependency {
183
+ id,
184
+ version: version.as_deref().and_then(normalize_range),
185
+ },
186
+ })
187
+ }
188
+ }
189
+
190
+ // A blank or `"*"` range means "no constraint" (`None`); applied to every
191
+ // input form so they all collapse to the same in-memory shape.
192
+ fn normalize_range(range: &str) -> Option<String> {
193
+ let trimmed = range.trim();
194
+ (!trimmed.is_empty() && trimmed != "*").then(|| trimmed.to_string())
195
+ }
196
+
197
+ // (De)serialize a `dependencies` / `optionalDependencies` collection as a
198
+ // package.json-style map `{ "<id>": "<range>" }`, where a bare `"*"` (or empty)
199
+ // range means "any version".
200
+ mod dep_map {
201
+ use std::fmt;
202
+
203
+ use serde::de::{MapAccess, Visitor};
204
+ use serde::ser::SerializeMap;
205
+ use serde::{Deserializer, Serializer};
206
+
207
+ use super::Dependency;
208
+
209
+ pub fn serialize<S: Serializer>(deps: &[Dependency], serializer: S) -> Result<S::Ok, S::Error> {
210
+ let mut map = serializer.serialize_map(Some(deps.len()))?;
211
+ for dep in deps {
212
+ map.serialize_entry(&dep.id, dep.version.as_deref().unwrap_or("*"))?;
213
+ }
214
+ map.end()
215
+ }
216
+
217
+ pub fn deserialize<'de, D: Deserializer<'de>>(
218
+ deserializer: D,
219
+ ) -> Result<Vec<Dependency>, D::Error> {
220
+ struct DepsVisitor;
221
+
222
+ impl<'de> Visitor<'de> for DepsVisitor {
223
+ type Value = Vec<Dependency>;
224
+
225
+ fn expecting(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
226
+ f.write_str("a { id: range } map")
227
+ }
228
+
229
+ // An explicit `null` (some manifest generators emit it for the empty
230
+ // case) means "no dependencies", not a type error.
231
+ fn visit_unit<E: serde::de::Error>(self) -> Result<Self::Value, E> {
232
+ Ok(Vec::new())
233
+ }
234
+
235
+ // Package.json-style map: each key is a module id, each value a range.
236
+ fn visit_map<M: MapAccess<'de>>(self, mut access: M) -> Result<Self::Value, M::Error> {
237
+ let mut out = Vec::new();
238
+ while let Some((id, range)) = access.next_entry::<String, String>()? {
239
+ out.push(Dependency {
240
+ id,
241
+ version: super::normalize_range(&range),
242
+ });
243
+ }
244
+ Ok(out)
245
+ }
246
+ }
247
+
248
+ deserializer.deserialize_any(DepsVisitor)
249
+ }
250
+ }
251
+
252
+ /// A point this module CALLS, rather than a dependency on a specific module:
253
+ /// satisfied by whichever module contributes `point` (under `id`, when given).
254
+ ///
255
+ /// This is what makes a module's needs legible without naming a peer. A module id
256
+ /// in `dependencies` says "install that one"; this says "something has to answer
257
+ /// this", which is what a marketplace can resolve.
258
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
259
+ #[serde(rename_all = "camelCase")]
260
+ pub struct PointReq {
261
+ pub point: String,
262
+ /// The majors this module can speak, as a semver range over the point's
263
+ /// version (`^1`). Absent takes any.
264
+ #[serde(default, skip_serializing_if = "Option::is_none")]
265
+ pub version: Option<String>,
266
+ #[serde(default, skip_serializing_if = "Option::is_none")]
267
+ pub id: Option<String>,
268
+ /// The module works without it, so an unmet optional need is not reported as
269
+ /// leaving the module inert.
270
+ #[serde(default, skip_serializing_if = "std::ops::Not::not")]
271
+ pub optional: bool,
272
+ }
273
+
274
+ /// The module manifest contract this build speaks.
275
+ ///
276
+ /// A `.kmod` built against a different one is REFUSED rather than read on a
277
+ /// best-effort basis, and the reason is that the shapes which changed between
278
+ /// versions parse as *absent*, never as errors: a v1 bundle still spelling its
279
+ /// dependencies `dependsOn` would install with an empty dependency set and fail
280
+ /// at runtime, somewhere else, with nothing pointing back here.
281
+ pub const MODULE_SCHEMA_VERSION: u32 = 2;
282
+
283
+ /// A module's declared storage, and the capability itself: a manifest with no
284
+ /// `storage` object gets no database at all, and the sidecar built for it does
285
+ /// not link SQLite.
286
+ ///
287
+ /// Additive, so it cost no [`MODULE_SCHEMA_VERSION`] bump: a reader that
288
+ /// predates the field sees a module with no database, which is what such a
289
+ /// module had. What a module needs from its HOST is `engines`, and that is where
290
+ /// the floor for this one is declared.
291
+ ///
292
+ /// Presence alone grants the module its own file
293
+ /// (`<data>/modules/<id>/module.sqlite`), which it owns outright. Reaching the
294
+ /// SHARED core database is separate and narrower: only what [`core`](Self::core)
295
+ /// lists, enforced per connection by SQLite's authorizer.
296
+ #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
297
+ #[serde(rename_all = "camelCase")]
298
+ pub struct Storage {
299
+ #[serde(default, skip_serializing_if = "CoreScope::is_empty")]
300
+ pub core: CoreScope,
301
+ /// Tables this module used to keep in the core database and now owns, moved
302
+ /// into its own file the first time it starts under a host that understands
303
+ /// this field. Table and rows travel together, and the core copy is dropped,
304
+ /// so the move happens exactly once and never runs again.
305
+ #[serde(default, skip_serializing_if = "Vec::is_empty")]
306
+ pub adopt: Vec<String>,
307
+ }
308
+
309
+ /// The slice of the CORE database a module may reach, as `"table"` (the whole
310
+ /// table) or `"table.column"` entries. Empty -- the default -- means none of it.
311
+ ///
312
+ /// Two rules are not visible from the list itself, because they come from
313
+ /// SQLite rather than from us: a column named in a `WHERE` is reached as much as
314
+ /// one that is projected, and a foreign key drags its other table in (a write
315
+ /// into a child reads the parent, a cascading delete writes the child).
316
+ #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
317
+ pub struct CoreScope {
318
+ #[serde(default, skip_serializing_if = "Vec::is_empty")]
319
+ pub read: Vec<String>,
320
+ #[serde(default, skip_serializing_if = "Vec::is_empty")]
321
+ pub write: Vec<String>,
322
+ }
323
+
324
+ impl CoreScope {
325
+ pub fn is_empty(&self) -> bool {
326
+ self.read.is_empty() && self.write.is_empty()
327
+ }
328
+ }
329
+
330
+ /// The public description of a module.
331
+ ///
332
+ /// This is the serde shape served at `GET /api/modules` and mirrored by the
333
+ /// frontend registry, so it holds no runtime handles - only data. The `id` is
334
+ /// the join key across the backend crate and the `@kroma/module-<id>` frontend
335
+ /// package. Serialized camelCase so `dependencies` reaches the frontend (and a
336
+ /// wasm plugin's JSON) as `dependencies`.
337
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
338
+ #[serde(rename_all = "camelCase")]
339
+ pub struct ModuleManifest {
340
+ /// Which manifest contract this module was built against. `0` when absent,
341
+ /// which is every bundle predating the field and therefore every bundle
342
+ /// this build refuses.
343
+ #[serde(default)]
344
+ pub schema_version: u32,
345
+ pub id: String,
346
+ pub name: String,
347
+ pub version: Version,
348
+ #[serde(default)]
349
+ pub description: String,
350
+ /// What this module needs from its host, by engine name (`server`) and
351
+ /// semver range. Named like npm's `engines` because it is that, and an
352
+ /// object because a floor on one thing was never going to be all of it.
353
+ #[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
354
+ pub engines: BTreeMap<String, String>,
355
+ #[serde(default, with = "dep_map", skip_serializing_if = "Vec::is_empty")]
356
+ pub dependencies: Vec<Dependency>,
357
+ #[serde(default, with = "dep_map", skip_serializing_if = "Vec::is_empty")]
358
+ pub optional_dependencies: Vec<Dependency>,
359
+ /// Points this module invents, for other modules to plug into.
360
+ #[serde(default, skip_serializing_if = "Vec::is_empty")]
361
+ pub defines_points: Vec<PointDef>,
362
+ /// Points this module answers, its own included.
363
+ #[serde(default, skip_serializing_if = "Vec::is_empty")]
364
+ pub contributes: Vec<Contribution>,
365
+ /// Points this module calls.
366
+ #[serde(default, skip_serializing_if = "Vec::is_empty")]
367
+ pub consumes: Vec<PointReq>,
368
+ #[serde(default)]
369
+ pub config: Vec<ConfigField>,
370
+ #[serde(default, skip_serializing_if = "Option::is_none")]
371
+ pub fe_remote: Option<FeRemote>,
372
+ /// Absent for a module that touches no database, which is most of them.
373
+ #[serde(default, skip_serializing_if = "Option::is_none")]
374
+ pub storage: Option<Storage>,
375
+ #[serde(default, skip_serializing_if = "std::ops::Not::not")]
376
+ pub library: bool,
377
+ }
378
+
379
+ impl ModuleManifest {
380
+ /// Start a manifest with the required fields; chain the builder methods for
381
+ /// the rest.
382
+ pub fn new(
383
+ id: impl Into<String>,
384
+ name: impl Into<String>,
385
+ version: impl Into<Version>,
386
+ ) -> Self {
387
+ Self {
388
+ schema_version: MODULE_SCHEMA_VERSION,
389
+ id: id.into(),
390
+ name: name.into(),
391
+ version: version.into(),
392
+ description: String::new(),
393
+ engines: BTreeMap::new(),
394
+ dependencies: Vec::new(),
395
+ optional_dependencies: Vec::new(),
396
+ defines_points: Vec::new(),
397
+ contributes: Vec::new(),
398
+ consumes: Vec::new(),
399
+ config: Vec::new(),
400
+ fe_remote: None,
401
+ storage: None,
402
+ library: false,
403
+ }
404
+ }
405
+
406
+ pub fn describe(mut self, description: impl Into<String>) -> Self {
407
+ self.description = description.into();
408
+ self
409
+ }
410
+
411
+ pub fn needs(mut self, module_id: impl Into<String>) -> Self {
412
+ self.dependencies.push(Dependency::new(module_id));
413
+ self
414
+ }
415
+ }
416
+
417
+ #[cfg(test)]
418
+ mod tests {
419
+ use super::*;
420
+
421
+ #[test]
422
+ fn storage_is_absent_unless_declared_and_round_trips_when_it_is() {
423
+ let plain: ModuleManifest =
424
+ serde_json::from_str(r#"{ "id": "a", "name": "A", "version": "1.0.0" }"#).unwrap();
425
+ assert!(
426
+ plain.storage.is_none(),
427
+ "no storage object means no database"
428
+ );
429
+ assert!(serde_json::to_value(&plain)
430
+ .unwrap()
431
+ .get("storage")
432
+ .is_none());
433
+
434
+ // An empty object is NOT the same as an absent one: it is the module's
435
+ // own file, with no reach into the core database.
436
+ let private: ModuleManifest = serde_json::from_str(
437
+ r#"{ "id": "a", "name": "A", "version": "1.0.0", "storage": {} }"#,
438
+ )
439
+ .unwrap();
440
+ assert_eq!(private.storage, Some(Storage::default()));
441
+
442
+ let scoped: ModuleManifest = serde_json::from_str(
443
+ r#"{ "id": "a", "name": "A", "version": "1.0.0",
444
+ "storage": { "core": { "read": ["requests"], "write": ["wanted"] },
445
+ "adopt": ["indexers"] } }"#,
446
+ )
447
+ .unwrap();
448
+ let storage = scoped.storage.as_ref().unwrap();
449
+ assert_eq!(storage.core.read, ["requests"]);
450
+ assert_eq!(storage.core.write, ["wanted"]);
451
+ assert_eq!(storage.adopt, ["indexers"]);
452
+
453
+ let back: ModuleManifest =
454
+ serde_json::from_value(serde_json::to_value(&scoped).unwrap()).unwrap();
455
+ assert_eq!(back.storage, scoped.storage);
456
+ }
457
+
458
+ #[test]
459
+ fn depends_on_reads_the_package_json_style_map() {
460
+ let m: ModuleManifest = serde_json::from_str(
461
+ r#"{ "id": "a", "name": "A", "version": "1.0.0",
462
+ "dependencies": { "tv.kroma.torrents": "^0.1.0", "tv.kroma.lib": "*" } }"#,
463
+ )
464
+ .unwrap();
465
+ assert_eq!(m.dependencies.len(), 2);
466
+ assert_eq!(
467
+ m.dependencies[0],
468
+ Dependency {
469
+ id: "tv.kroma.torrents".into(),
470
+ version: Some("^0.1.0".into())
471
+ }
472
+ );
473
+ assert_eq!(m.dependencies[1], Dependency::new("tv.kroma.lib"));
474
+ }
475
+
476
+ #[test]
477
+ fn the_pre_v2_array_form_is_refused_rather_than_read() {
478
+ let err = serde_json::from_str::<ModuleManifest>(
479
+ r#"{ "schemaVersion": 2, "id": "a", "name": "A", "version": "1.0.0",
480
+ "dependencies": ["bare", "with@^1.2"] }"#,
481
+ )
482
+ .unwrap_err()
483
+ .to_string();
484
+ assert!(err.contains("a { id: range } map"), "{err}");
485
+ }
486
+
487
+ #[test]
488
+ fn serializes_as_a_map_and_omits_empty_collections() {
489
+ let mut m = ModuleManifest::new("a", "A", "1.0.0");
490
+ m.dependencies.push(Dependency {
491
+ id: "lib".into(),
492
+ version: Some("^1".into()),
493
+ });
494
+ m.dependencies.push(Dependency::new("plain"));
495
+ let json = serde_json::to_value(&m).unwrap();
496
+ assert_eq!(json["dependencies"]["lib"], "^1");
497
+ assert_eq!(json["dependencies"]["plain"], "*");
498
+ assert!(json.get("optionalDependencies").is_none());
499
+
500
+ let back: ModuleManifest = serde_json::from_value(json).unwrap();
501
+ assert_eq!(back.dependencies, m.dependencies);
502
+ }
503
+
504
+ #[test]
505
+ fn depends_on_null_means_empty() {
506
+ // Some generators emit `null` for the empty case; it must load as empty,
507
+ // not error the whole manifest.
508
+ let m: ModuleManifest = serde_json::from_str(
509
+ r#"{ "id": "a", "name": "A", "version": "1.0.0", "dependencies": null }"#,
510
+ )
511
+ .unwrap();
512
+ assert!(m.dependencies.is_empty());
513
+ }
514
+
515
+ #[test]
516
+ fn a_depends_on_that_is_neither_a_map_nor_a_list_says_what_was_expected() {
517
+ let err = serde_json::from_str::<ModuleManifest>(
518
+ r#"{ "id": "a", "name": "A", "version": "1.0.0", "dependencies": 7 }"#,
519
+ )
520
+ .unwrap_err()
521
+ .to_string();
522
+ assert!(err.contains("a { id: range } map"), "{err}");
523
+ }
524
+
525
+ #[test]
526
+ fn a_manifest_declares_which_contract_it_was_built_against() {
527
+ let fresh = ModuleManifest::new("a", "A", "1.0.0");
528
+ assert_eq!(fresh.schema_version, MODULE_SCHEMA_VERSION);
529
+ assert_eq!(
530
+ serde_json::to_value(&fresh).unwrap()["schemaVersion"],
531
+ MODULE_SCHEMA_VERSION
532
+ );
533
+
534
+ let old: ModuleManifest =
535
+ serde_json::from_str(r#"{ "id": "a", "name": "A", "version": "1.0.0" }"#).unwrap();
536
+ assert_eq!(old.schema_version, 0);
537
+ }
538
+
539
+ #[test]
540
+ fn describe_sets_the_description_the_admin_lists() {
541
+ let m = ModuleManifest::new("a", "A", "1.0.0").describe("Grabs torrents");
542
+ assert_eq!(m.description, "Grabs torrents");
543
+ assert_eq!(
544
+ serde_json::to_value(&m).unwrap()["description"],
545
+ "Grabs torrents"
546
+ );
547
+ }
548
+ }