@allyhub/sdk 0.1.0-alpha.7 → 0.2.0-next.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 (370) hide show
  1. package/NOTICE +85 -0
  2. package/client.d.ts +45 -1
  3. package/dist/anim.js +2 -75
  4. package/dist/define.d.ts +10 -4
  5. package/dist/define.js +2 -95
  6. package/dist/dom.d.ts +1 -1
  7. package/dist/dom.js +2 -457
  8. package/dist/fit.js +2 -60
  9. package/dist/free.d.ts +18 -0
  10. package/dist/free.js +2 -0
  11. package/dist/index.d.ts +28 -13
  12. package/dist/index.js +2 -11
  13. package/dist/input.d.ts +306 -0
  14. package/dist/input.js +2 -0
  15. package/dist/media.d.ts +3 -6
  16. package/dist/media.js +2 -27
  17. package/dist/messages.d.ts +3 -2
  18. package/dist/messages.js +2 -2
  19. package/dist/module.d.ts +24 -0
  20. package/dist/module.js +2 -0
  21. package/dist/noise.js +2 -233
  22. package/dist/parts.d.ts +97 -21
  23. package/dist/parts.js +2 -414
  24. package/dist/paths.d.ts +1 -1
  25. package/dist/paths.js +2 -720
  26. package/dist/phone.d.ts +26 -0
  27. package/dist/phone.js +2 -0
  28. package/dist/piece.d.ts +106 -35
  29. package/dist/piece.js +2 -38
  30. package/dist/props.d.ts +1 -1
  31. package/dist/props.js +2 -35
  32. package/dist/scenery.d.ts +2 -0
  33. package/dist/scenery.js +2 -0
  34. package/dist/text.js +2 -38
  35. package/dist/written.d.ts +12 -0
  36. package/dist/written.js +2 -0
  37. package/docs/README.md +18 -0
  38. package/docs/batches.md +148 -0
  39. package/docs/contract.md +51 -0
  40. package/docs/defaults.md +703 -0
  41. package/docs/docs.md +148 -0
  42. package/docs/footage.md +249 -0
  43. package/docs/layers.md +317 -0
  44. package/docs/modeling.md +143 -0
  45. package/docs/project.md +265 -0
  46. package/docs/scenery.md +308 -0
  47. package/docs/sheets.md +119 -0
  48. package/docs/slides.md +111 -0
  49. package/docs/sound.md +170 -0
  50. package/docs/speech.md +289 -0
  51. package/docs/video.md +265 -0
  52. package/node_modules/@allyhub-next/audio/dist/at-cut.d.ts +52 -0
  53. package/node_modules/@allyhub-next/audio/dist/at-cut.js +2 -0
  54. package/node_modules/@allyhub-next/audio/dist/decode.d.ts +33 -0
  55. package/node_modules/@allyhub-next/audio/dist/decode.js +2 -0
  56. package/node_modules/@allyhub-next/audio/dist/envelope.d.ts +37 -0
  57. package/node_modules/@allyhub-next/audio/dist/envelope.js +2 -0
  58. package/node_modules/@allyhub-next/audio/dist/index.d.ts +17 -0
  59. package/node_modules/@allyhub-next/audio/dist/index.js +2 -0
  60. package/node_modules/@allyhub-next/audio/dist/levels.d.ts +97 -0
  61. package/node_modules/@allyhub-next/audio/dist/levels.js +2 -0
  62. package/node_modules/@allyhub-next/audio/dist/master.d.ts +29 -0
  63. package/node_modules/@allyhub-next/audio/dist/master.js +2 -0
  64. package/node_modules/@allyhub-next/audio/dist/music.d.ts +11 -0
  65. package/node_modules/@allyhub-next/audio/dist/music.js +2 -0
  66. package/node_modules/@allyhub-next/audio/dist/node/decode.d.ts +39 -0
  67. package/node_modules/@allyhub-next/audio/dist/node/decode.js +2 -0
  68. package/node_modules/@allyhub-next/audio/dist/node/ebur128.d.ts +25 -0
  69. package/node_modules/@allyhub-next/audio/dist/node/ebur128.js +2 -0
  70. package/node_modules/@allyhub-next/audio/dist/node/ffmpeg.d.ts +31 -0
  71. package/node_modules/@allyhub-next/audio/dist/node/ffmpeg.js +2 -0
  72. package/node_modules/@allyhub-next/audio/dist/node/index.d.ts +8 -0
  73. package/node_modules/@allyhub-next/audio/dist/node/index.js +2 -0
  74. package/node_modules/@allyhub-next/audio/dist/node/loudness.d.ts +18 -0
  75. package/node_modules/@allyhub-next/audio/dist/node/loudness.js +2 -0
  76. package/node_modules/@allyhub-next/audio/dist/node/master.d.ts +42 -0
  77. package/node_modules/@allyhub-next/audio/dist/node/master.js +2 -0
  78. package/node_modules/@allyhub-next/audio/dist/node/measure.d.ts +60 -0
  79. package/node_modules/@allyhub-next/audio/dist/node/measure.js +2 -0
  80. package/node_modules/@allyhub-next/audio/dist/node/mix.d.ts +31 -0
  81. package/node_modules/@allyhub-next/audio/dist/node/mix.js +2 -0
  82. package/node_modules/@allyhub-next/audio/dist/plan.d.ts +143 -0
  83. package/node_modules/@allyhub-next/audio/dist/plan.js +2 -0
  84. package/node_modules/@allyhub-next/audio/dist/recorded.d.ts +26 -0
  85. package/node_modules/@allyhub-next/audio/dist/recorded.js +2 -0
  86. package/node_modules/@allyhub-next/audio/dist/recording/bandwidth.d.ts +47 -0
  87. package/node_modules/@allyhub-next/audio/dist/recording/bandwidth.js +2 -0
  88. package/node_modules/@allyhub-next/audio/dist/recording/chain.d.ts +89 -0
  89. package/node_modules/@allyhub-next/audio/dist/recording/chain.js +2 -0
  90. package/node_modules/@allyhub-next/audio/dist/recording/dynamics.d.ts +64 -0
  91. package/node_modules/@allyhub-next/audio/dist/recording/dynamics.js +2 -0
  92. package/node_modules/@allyhub-next/audio/dist/recording/fft.d.ts +26 -0
  93. package/node_modules/@allyhub-next/audio/dist/recording/fft.js +2 -0
  94. package/node_modules/@allyhub-next/audio/dist/recording/filters.d.ts +42 -0
  95. package/node_modules/@allyhub-next/audio/dist/recording/filters.js +2 -0
  96. package/node_modules/@allyhub-next/audio/dist/recording/fit.d.ts +56 -0
  97. package/node_modules/@allyhub-next/audio/dist/recording/fit.js +2 -0
  98. package/node_modules/@allyhub-next/audio/dist/recording/index.d.ts +10 -0
  99. package/node_modules/@allyhub-next/audio/dist/recording/index.js +2 -0
  100. package/node_modules/@allyhub-next/audio/dist/recording/loudness.d.ts +12 -0
  101. package/node_modules/@allyhub-next/audio/dist/recording/loudness.js +2 -0
  102. package/node_modules/@allyhub-next/audio/dist/recording/measure.d.ts +67 -0
  103. package/node_modules/@allyhub-next/audio/dist/recording/measure.js +2 -0
  104. package/node_modules/@allyhub-next/audio/dist/recording/mic.d.ts +32 -0
  105. package/node_modules/@allyhub-next/audio/dist/recording/mic.js +2 -0
  106. package/node_modules/@allyhub-next/audio/dist/recording/noise.d.ts +27 -0
  107. package/node_modules/@allyhub-next/audio/dist/recording/noise.js +2 -0
  108. package/node_modules/@allyhub-next/audio/dist/recording/presets.d.ts +64 -0
  109. package/node_modules/@allyhub-next/audio/dist/recording/presets.js +2 -0
  110. package/node_modules/@allyhub-next/audio/dist/recording/room.d.ts +78 -0
  111. package/node_modules/@allyhub-next/audio/dist/recording/room.js +2 -0
  112. package/node_modules/@allyhub-next/audio/dist/recording/setup.d.ts +111 -0
  113. package/node_modules/@allyhub-next/audio/dist/recording/setup.js +2 -0
  114. package/node_modules/@allyhub-next/audio/dist/recording/vec.d.ts +3 -0
  115. package/node_modules/@allyhub-next/audio/dist/recording/vec.js +2 -0
  116. package/node_modules/@allyhub-next/audio/dist/render.d.ts +26 -0
  117. package/node_modules/@allyhub-next/audio/dist/render.js +2 -0
  118. package/node_modules/@allyhub-next/audio/dist/sfx.d.ts +10 -0
  119. package/node_modules/@allyhub-next/audio/dist/sfx.js +2 -0
  120. package/node_modules/@allyhub-next/audio/dist/shape.d.ts +118 -0
  121. package/node_modules/@allyhub-next/audio/dist/shape.js +2 -0
  122. package/node_modules/@allyhub-next/audio/dist/voice.d.ts +45 -0
  123. package/node_modules/@allyhub-next/audio/dist/voice.js +2 -0
  124. package/node_modules/@allyhub-next/audio/package.json +17 -0
  125. package/node_modules/@allyhub-next/formats/dist/data/comments.d.ts +94 -0
  126. package/node_modules/@allyhub-next/formats/dist/data/comments.js +2 -0
  127. package/node_modules/@allyhub-next/formats/dist/data/config.d.ts +10 -0
  128. package/node_modules/@allyhub-next/formats/dist/data/config.js +2 -0
  129. package/node_modules/@allyhub-next/formats/dist/data/edits.d.ts +28 -0
  130. package/node_modules/@allyhub-next/formats/dist/data/edits.js +2 -0
  131. package/node_modules/@allyhub-next/formats/dist/data/elements.d.ts +6 -0
  132. package/node_modules/@allyhub-next/formats/dist/data/elements.js +2 -0
  133. package/node_modules/@allyhub-next/formats/dist/data/faces.d.ts +38 -0
  134. package/node_modules/@allyhub-next/formats/dist/data/faces.js +2 -0
  135. package/node_modules/@allyhub-next/formats/dist/data/file.d.ts +11 -0
  136. package/node_modules/@allyhub-next/formats/dist/data/file.js +2 -0
  137. package/node_modules/@allyhub-next/formats/dist/data/gen.d.ts +31 -0
  138. package/node_modules/@allyhub-next/formats/dist/data/gen.js +2 -0
  139. package/node_modules/@allyhub-next/formats/dist/data/messages.d.ts +34 -0
  140. package/node_modules/@allyhub-next/formats/dist/data/messages.js +2 -0
  141. package/node_modules/@allyhub-next/formats/dist/data/reference.d.ts +676 -0
  142. package/node_modules/@allyhub-next/formats/dist/data/reference.js +2 -0
  143. package/node_modules/@allyhub-next/formats/dist/data/script.d.ts +37 -0
  144. package/node_modules/@allyhub-next/formats/dist/data/script.js +2 -0
  145. package/node_modules/@allyhub-next/formats/dist/data/sheet.d.ts +214 -0
  146. package/node_modules/@allyhub-next/formats/dist/data/sheet.js +2 -0
  147. package/node_modules/@allyhub-next/formats/dist/data/words.d.ts +25 -0
  148. package/node_modules/@allyhub-next/formats/dist/data/words.js +2 -0
  149. package/node_modules/@allyhub-next/formats/dist/index.d.ts +16 -0
  150. package/node_modules/@allyhub-next/formats/dist/index.js +2 -0
  151. package/node_modules/@allyhub-next/formats/dist/items.d.ts +94 -0
  152. package/node_modules/@allyhub-next/formats/dist/items.js +2 -0
  153. package/node_modules/@allyhub-next/formats/dist/layout.d.ts +50 -0
  154. package/node_modules/@allyhub-next/formats/dist/layout.js +5 -0
  155. package/node_modules/@allyhub-next/formats/dist/schemas.d.ts +301 -0
  156. package/node_modules/@allyhub-next/formats/dist/schemas.js +2 -0
  157. package/node_modules/@allyhub-next/formats/package.json +14 -0
  158. package/node_modules/@allyhub-next/formats/schemas/comments.schema.json +152 -0
  159. package/node_modules/@allyhub-next/formats/schemas/config.schema.json +43 -0
  160. package/node_modules/@allyhub-next/formats/schemas/edits.schema.json +112 -0
  161. package/node_modules/@allyhub-next/formats/schemas/elements.schema.json +33 -0
  162. package/node_modules/@allyhub-next/formats/schemas/gen.schema.json +97 -0
  163. package/node_modules/@allyhub-next/formats/schemas/interpretation.schema.json +125 -0
  164. package/node_modules/@allyhub-next/formats/schemas/items.json +75 -0
  165. package/node_modules/@allyhub-next/formats/schemas/messages.schema.json +11 -0
  166. package/node_modules/@allyhub-next/formats/schemas/script.schema.json +162 -0
  167. package/node_modules/@allyhub-next/formats/schemas/sheet.schema.json +395 -0
  168. package/node_modules/@allyhub-next/formats/schemas/words.schema.json +63 -0
  169. package/node_modules/@allyhub-next/protocol/dist/app.d.ts +98 -0
  170. package/node_modules/@allyhub-next/protocol/dist/app.js +2 -0
  171. package/node_modules/@allyhub-next/protocol/dist/auth.d.ts +116 -0
  172. package/node_modules/@allyhub-next/protocol/dist/auth.js +2 -0
  173. package/node_modules/@allyhub-next/protocol/dist/cli.d.ts +59 -0
  174. package/node_modules/@allyhub-next/protocol/dist/cli.js +2 -0
  175. package/node_modules/@allyhub-next/protocol/dist/cloud.d.ts +272 -0
  176. package/node_modules/@allyhub-next/protocol/dist/cloud.js +2 -0
  177. package/node_modules/@allyhub-next/protocol/dist/editor.d.ts +405 -0
  178. package/node_modules/@allyhub-next/protocol/dist/editor.js +2 -0
  179. package/node_modules/@allyhub-next/protocol/dist/files.d.ts +101 -0
  180. package/node_modules/@allyhub-next/protocol/dist/files.js +2 -0
  181. package/node_modules/@allyhub-next/protocol/dist/index.d.ts +12 -0
  182. package/node_modules/@allyhub-next/protocol/dist/index.js +2 -0
  183. package/node_modules/@allyhub-next/protocol/dist/jsonrpc.d.ts +83 -0
  184. package/node_modules/@allyhub-next/protocol/dist/jsonrpc.js +2 -0
  185. package/node_modules/@allyhub-next/protocol/dist/registry.d.ts +53 -0
  186. package/node_modules/@allyhub-next/protocol/dist/registry.js +2 -0
  187. package/node_modules/@allyhub-next/protocol/dist/runtimes.d.ts +93 -0
  188. package/node_modules/@allyhub-next/protocol/dist/runtimes.js +2 -0
  189. package/node_modules/@allyhub-next/protocol/dist/teams.d.ts +67 -0
  190. package/node_modules/@allyhub-next/protocol/dist/teams.js +2 -0
  191. package/node_modules/@allyhub-next/protocol/dist/tools.d.ts +345 -0
  192. package/node_modules/@allyhub-next/protocol/dist/tools.js +2 -0
  193. package/node_modules/@allyhub-next/protocol/package.json +13 -0
  194. package/node_modules/@allyhub-next/runtimes/dist/bundled.d.ts +10 -0
  195. package/node_modules/@allyhub-next/runtimes/dist/bundled.js +2 -0
  196. package/node_modules/@allyhub-next/runtimes/dist/download.d.ts +15 -0
  197. package/node_modules/@allyhub-next/runtimes/dist/download.js +2 -0
  198. package/node_modules/@allyhub-next/runtimes/dist/errors.d.ts +16 -0
  199. package/node_modules/@allyhub-next/runtimes/dist/errors.js +2 -0
  200. package/node_modules/@allyhub-next/runtimes/dist/home.d.ts +2 -0
  201. package/node_modules/@allyhub-next/runtimes/dist/home.js +2 -0
  202. package/node_modules/@allyhub-next/runtimes/dist/index.d.ts +9 -0
  203. package/node_modules/@allyhub-next/runtimes/dist/index.js +2 -0
  204. package/node_modules/@allyhub-next/runtimes/dist/lock.d.ts +6 -0
  205. package/node_modules/@allyhub-next/runtimes/dist/lock.js +2 -0
  206. package/node_modules/@allyhub-next/runtimes/dist/manifest.d.ts +3 -0
  207. package/node_modules/@allyhub-next/runtimes/dist/manifest.js +2 -0
  208. package/node_modules/@allyhub-next/runtimes/dist/runtimes.d.ts +63 -0
  209. package/node_modules/@allyhub-next/runtimes/dist/runtimes.js +3 -0
  210. package/node_modules/@allyhub-next/runtimes/dist/unpack.d.ts +7 -0
  211. package/node_modules/@allyhub-next/runtimes/dist/unpack.js +2 -0
  212. package/node_modules/@allyhub-next/runtimes/manifest.json +395 -0
  213. package/node_modules/@allyhub-next/runtimes/package.json +14 -0
  214. package/node_modules/@allyhub-next/runtimes/schemas/runtimes.schema.json +153 -0
  215. package/node_modules/@allyhub-next/scenery/NOTICE +42 -0
  216. package/node_modules/@allyhub-next/scenery/dist/aim.d.ts +55 -0
  217. package/node_modules/@allyhub-next/scenery/dist/aim.js +2 -0
  218. package/node_modules/@allyhub-next/scenery/dist/bake.d.ts +203 -0
  219. package/node_modules/@allyhub-next/scenery/dist/bake.js +2 -0
  220. package/node_modules/@allyhub-next/scenery/dist/camera.d.ts +150 -0
  221. package/node_modules/@allyhub-next/scenery/dist/camera.js +2 -0
  222. package/node_modules/@allyhub-next/scenery/dist/curve.d.ts +40 -0
  223. package/node_modules/@allyhub-next/scenery/dist/curve.js +2 -0
  224. package/node_modules/@allyhub-next/scenery/dist/define.d.ts +164 -0
  225. package/node_modules/@allyhub-next/scenery/dist/define.js +2 -0
  226. package/node_modules/@allyhub-next/scenery/dist/fit.d.ts +64 -0
  227. package/node_modules/@allyhub-next/scenery/dist/fit.js +2 -0
  228. package/node_modules/@allyhub-next/scenery/dist/glass.d.ts +34 -0
  229. package/node_modules/@allyhub-next/scenery/dist/glass.js +2 -0
  230. package/node_modules/@allyhub-next/scenery/dist/handheld.d.ts +184 -0
  231. package/node_modules/@allyhub-next/scenery/dist/handheld.js +2 -0
  232. package/node_modules/@allyhub-next/scenery/dist/hull.d.ts +23 -0
  233. package/node_modules/@allyhub-next/scenery/dist/hull.js +2 -0
  234. package/node_modules/@allyhub-next/scenery/dist/index.d.ts +22 -0
  235. package/node_modules/@allyhub-next/scenery/dist/index.js +2 -0
  236. package/node_modules/@allyhub-next/scenery/dist/lens.d.ts +48 -0
  237. package/node_modules/@allyhub-next/scenery/dist/lens.js +2 -0
  238. package/node_modules/@allyhub-next/scenery/dist/moire.d.ts +136 -0
  239. package/node_modules/@allyhub-next/scenery/dist/moire.js +93 -0
  240. package/node_modules/@allyhub-next/scenery/dist/motion.d.ts +48 -0
  241. package/node_modules/@allyhub-next/scenery/dist/motion.js +2 -0
  242. package/node_modules/@allyhub-next/scenery/dist/move.d.ts +260 -0
  243. package/node_modules/@allyhub-next/scenery/dist/move.js +2 -0
  244. package/node_modules/@allyhub-next/scenery/dist/noise.d.ts +41 -0
  245. package/node_modules/@allyhub-next/scenery/dist/noise.js +2 -0
  246. package/node_modules/@allyhub-next/scenery/dist/phone.d.ts +34 -0
  247. package/node_modules/@allyhub-next/scenery/dist/phone.js +2 -0
  248. package/node_modules/@allyhub-next/scenery/dist/report.d.ts +677 -0
  249. package/node_modules/@allyhub-next/scenery/dist/report.js +2 -0
  250. package/node_modules/@allyhub-next/scenery/dist/screen-focus.d.ts +55 -0
  251. package/node_modules/@allyhub-next/scenery/dist/screen-focus.js +2 -0
  252. package/node_modules/@allyhub-next/scenery/dist/screen.d.ts +71 -0
  253. package/node_modules/@allyhub-next/scenery/dist/screen.js +2 -0
  254. package/node_modules/@allyhub-next/scenery/dist/solve.d.ts +82 -0
  255. package/node_modules/@allyhub-next/scenery/dist/solve.js +2 -0
  256. package/node_modules/@allyhub-next/scenery/dist/timing.d.ts +26 -0
  257. package/node_modules/@allyhub-next/scenery/dist/timing.js +2 -0
  258. package/node_modules/@allyhub-next/scenery/dist/vec.d.ts +19 -0
  259. package/node_modules/@allyhub-next/scenery/dist/vec.js +2 -0
  260. package/node_modules/@allyhub-next/scenery/package.json +13 -0
  261. package/node_modules/@allyhub-next/video-core/dist/anchors.d.ts +164 -0
  262. package/node_modules/@allyhub-next/video-core/dist/anchors.js +2 -0
  263. package/node_modules/@allyhub-next/video-core/dist/audio-types.d.ts +148 -0
  264. package/node_modules/@allyhub-next/video-core/dist/audio-types.js +2 -0
  265. package/node_modules/@allyhub-next/video-core/dist/backdrop.d.ts +87 -0
  266. package/node_modules/@allyhub-next/video-core/dist/backdrop.js +2 -0
  267. package/node_modules/@allyhub-next/video-core/dist/captions.d.ts +122 -0
  268. package/node_modules/@allyhub-next/video-core/dist/captions.js +11 -0
  269. package/node_modules/@allyhub-next/video-core/dist/console.d.ts +91 -0
  270. package/node_modules/@allyhub-next/video-core/dist/console.js +2 -0
  271. package/node_modules/@allyhub-next/video-core/dist/contrast.d.ts +98 -0
  272. package/node_modules/@allyhub-next/video-core/dist/contrast.js +2 -0
  273. package/node_modules/@allyhub-next/video-core/dist/cut-report.d.ts +77 -0
  274. package/node_modules/@allyhub-next/video-core/dist/cut-report.js +2 -0
  275. package/node_modules/@allyhub-next/video-core/dist/edit.d.ts +77 -0
  276. package/node_modules/@allyhub-next/video-core/dist/edit.js +13 -0
  277. package/node_modules/@allyhub-next/video-core/dist/edits.d.ts +163 -0
  278. package/node_modules/@allyhub-next/video-core/dist/edits.js +2 -0
  279. package/node_modules/@allyhub-next/video-core/dist/export.d.ts +96 -0
  280. package/node_modules/@allyhub-next/video-core/dist/export.js +2 -0
  281. package/node_modules/@allyhub-next/video-core/dist/fact.d.ts +965 -0
  282. package/node_modules/@allyhub-next/video-core/dist/fact.js +2 -0
  283. package/node_modules/@allyhub-next/video-core/dist/footage-motion.d.ts +168 -0
  284. package/node_modules/@allyhub-next/video-core/dist/footage-motion.js +2 -0
  285. package/node_modules/@allyhub-next/video-core/dist/formats.d.ts +240 -0
  286. package/node_modules/@allyhub-next/video-core/dist/formats.js +2 -0
  287. package/node_modules/@allyhub-next/video-core/dist/gen.d.ts +37 -0
  288. package/node_modules/@allyhub-next/video-core/dist/gen.js +2 -0
  289. package/node_modules/@allyhub-next/video-core/dist/index.d.ts +40 -0
  290. package/node_modules/@allyhub-next/video-core/dist/index.js +2 -0
  291. package/node_modules/@allyhub-next/video-core/dist/look.d.ts +66 -0
  292. package/node_modules/@allyhub-next/video-core/dist/look.js +2 -0
  293. package/node_modules/@allyhub-next/video-core/dist/marks.d.ts +34 -0
  294. package/node_modules/@allyhub-next/video-core/dist/marks.js +2 -0
  295. package/node_modules/@allyhub-next/video-core/dist/matrix.d.ts +289 -0
  296. package/node_modules/@allyhub-next/video-core/dist/matrix.js +2 -0
  297. package/node_modules/@allyhub-next/video-core/dist/measure.d.ts +465 -0
  298. package/node_modules/@allyhub-next/video-core/dist/measure.js +5 -0
  299. package/node_modules/@allyhub-next/video-core/dist/media.d.ts +226 -0
  300. package/node_modules/@allyhub-next/video-core/dist/media.js +2 -0
  301. package/node_modules/@allyhub-next/video-core/dist/messages.d.ts +88 -0
  302. package/node_modules/@allyhub-next/video-core/dist/messages.js +2 -0
  303. package/node_modules/@allyhub-next/video-core/dist/motion.d.ts +56 -0
  304. package/node_modules/@allyhub-next/video-core/dist/motion.js +2 -0
  305. package/node_modules/@allyhub-next/video-core/dist/music.d.ts +110 -0
  306. package/node_modules/@allyhub-next/video-core/dist/music.js +2 -0
  307. package/node_modules/@allyhub-next/video-core/dist/piece.d.ts +1146 -0
  308. package/node_modules/@allyhub-next/video-core/dist/piece.js +2 -0
  309. package/node_modules/@allyhub-next/video-core/dist/placement.d.ts +37 -0
  310. package/node_modules/@allyhub-next/video-core/dist/placement.js +2 -0
  311. package/node_modules/@allyhub-next/video-core/dist/problem.d.ts +262 -0
  312. package/node_modules/@allyhub-next/video-core/dist/problem.js +2 -0
  313. package/node_modules/@allyhub-next/video-core/dist/render-types.d.ts +49 -0
  314. package/node_modules/@allyhub-next/video-core/dist/render-types.js +2 -0
  315. package/node_modules/@allyhub-next/video-core/dist/schema.d.ts +352 -0
  316. package/node_modules/@allyhub-next/video-core/dist/schema.js +2 -0
  317. package/node_modules/@allyhub-next/video-core/dist/script-edit.d.ts +176 -0
  318. package/node_modules/@allyhub-next/video-core/dist/script-edit.js +2 -0
  319. package/node_modules/@allyhub-next/video-core/dist/script.d.ts +67 -0
  320. package/node_modules/@allyhub-next/video-core/dist/script.js +2 -0
  321. package/node_modules/@allyhub-next/video-core/dist/seams.d.ts +214 -0
  322. package/node_modules/@allyhub-next/video-core/dist/seams.js +2 -0
  323. package/node_modules/@allyhub-next/video-core/dist/slides.d.ts +37 -0
  324. package/node_modules/@allyhub-next/video-core/dist/slides.js +2 -0
  325. package/node_modules/@allyhub-next/video-core/dist/sound-under.d.ts +72 -0
  326. package/node_modules/@allyhub-next/video-core/dist/sound-under.js +2 -0
  327. package/node_modules/@allyhub-next/video-core/dist/speech.d.ts +83 -0
  328. package/node_modules/@allyhub-next/video-core/dist/speech.js +5 -0
  329. package/node_modules/@allyhub-next/video-core/dist/timeline.d.ts +616 -0
  330. package/node_modules/@allyhub-next/video-core/dist/timeline.js +2 -0
  331. package/node_modules/@allyhub-next/video-core/dist/timing.d.ts +88 -0
  332. package/node_modules/@allyhub-next/video-core/dist/timing.js +2 -0
  333. package/node_modules/@allyhub-next/video-core/dist/transcript.d.ts +288 -0
  334. package/node_modules/@allyhub-next/video-core/dist/transcript.js +2 -0
  335. package/node_modules/@allyhub-next/video-core/dist/transition.d.ts +289 -0
  336. package/node_modules/@allyhub-next/video-core/dist/transition.js +2 -0
  337. package/node_modules/@allyhub-next/video-core/dist/voice.d.ts +175 -0
  338. package/node_modules/@allyhub-next/video-core/dist/voice.js +2 -0
  339. package/node_modules/@allyhub-next/video-core/dist/words.d.ts +128 -0
  340. package/node_modules/@allyhub-next/video-core/dist/words.js +2 -0
  341. package/node_modules/@allyhub-next/video-core/package.json +14 -0
  342. package/package.json +52 -41
  343. package/README.md +0 -17
  344. package/dist/anim.d.ts.map +0 -1
  345. package/dist/anim.js.map +0 -1
  346. package/dist/define.d.ts.map +0 -1
  347. package/dist/define.js.map +0 -1
  348. package/dist/dom.d.ts.map +0 -1
  349. package/dist/dom.js.map +0 -1
  350. package/dist/fit.d.ts.map +0 -1
  351. package/dist/fit.js.map +0 -1
  352. package/dist/index.d.ts.map +0 -1
  353. package/dist/index.js.map +0 -1
  354. package/dist/media.d.ts.map +0 -1
  355. package/dist/media.js.map +0 -1
  356. package/dist/messages.d.ts.map +0 -1
  357. package/dist/messages.js.map +0 -1
  358. package/dist/noise.d.ts.map +0 -1
  359. package/dist/noise.js.map +0 -1
  360. package/dist/parts.d.ts.map +0 -1
  361. package/dist/parts.js.map +0 -1
  362. package/dist/paths.d.ts.map +0 -1
  363. package/dist/paths.js.map +0 -1
  364. package/dist/piece.d.ts.map +0 -1
  365. package/dist/piece.js.map +0 -1
  366. package/dist/props.d.ts.map +0 -1
  367. package/dist/props.js.map +0 -1
  368. package/dist/text.d.ts.map +0 -1
  369. package/dist/text.js.map +0 -1
  370. /package/{LICENSE → LICENSE.md} +0 -0
@@ -0,0 +1,965 @@
1
+ import type { ContrastOptions } from "./contrast.js";
2
+ import type { SafeZone } from "./formats.js";
3
+ import type { Combo } from "./matrix.js";
4
+ import type { MediaKind } from "./media.js";
5
+ import { type FootageScale, type FreeBand, type LayoutReport, type MeasuredText, type ReadOptions, type RowSpan, type TextContainer, type TextSize, type WordsAtOnce } from "./measure.js";
6
+ import type { Box } from "./problem.js";
7
+ import type { FlashOptions, FrameChange, SeamCarrier, SeamChange, SeamOptions, SeamSide } from "./seams.js";
8
+ /** What makes a run of frames a flat run (the flat-frames fact). */
9
+ export interface FlatFrameOptions {
10
+ /** A frame is flat when its luminance's standard deviation (of 255) is at most this. */
11
+ maxStd: number;
12
+ /** Runs this many frames long or longer are reported (the search probes one frame in this many). */
13
+ minFrames: number;
14
+ /** A run whose luminance is within this many levels of the picture before or after it is that picture's background, not reported. */
15
+ sameLuma: number;
16
+ }
17
+ /** How the still-picture fact looks for stretches where the picture holds. */
18
+ export interface StillOptions {
19
+ /** Seconds between the frames looked at. */
20
+ every: number;
21
+ /** The width of the small copy of each frame compared, in pixels. */
22
+ width: number;
23
+ /** A pixel has changed when one of its channels differs by more than this many levels (of 255). */
24
+ noise: number;
25
+ /** A frame is still while at most this share of its pixels (0–1) has changed from the stretch's first frame. */
26
+ change: number;
27
+ /** Stretches this many seconds long or longer are reported (0: every stretch of two frames looked at or more). */
28
+ minSeconds: number;
29
+ }
30
+ /** One measurement of where the speaker is, over a part (the free-bands fact). */
31
+ export interface FreeBandsFrom {
32
+ /** The footage files it was read from. */
33
+ files: string[];
34
+ /** The face followed (the layer's speaker, else the track's default), for the face track. */
35
+ speaker?: number;
36
+ /** Moments at which it was seen in the content box's columns. */
37
+ seen: number;
38
+ /** The rows it covered at any of those moments, joined. */
39
+ rows: RowSpan[];
40
+ /** The content box's bands free of it. */
41
+ bands: FreeBand[];
42
+ }
43
+ /** A measurement the free-bands fact could not make: the media index lacks it for the part's footage. */
44
+ export interface FreeBandsMissing<M extends string> {
45
+ missing: M;
46
+ /** The part's footage files. */
47
+ files: string[];
48
+ }
49
+ /** Why a join's loudness could not be measured. */
50
+ export type JoinLoudnessMissing = "ffmpeg" | "file" | "silent" | "failed";
51
+ /** How a version uses a generated file. */
52
+ export interface GeneratedUse {
53
+ /** The part that uses it; absent for the output's music, or a read outside any part. */
54
+ part?: string;
55
+ /**
56
+ * `footage`: a footage layer shows it; `speech`: the part says it;
57
+ * `music`: the output's music; `sound`: a sound effect the part places;
58
+ * `read`: the part's layers read its media value (an image a component
59
+ * shows), during the part at most.
60
+ */
61
+ as: "footage" | "speech" | "music" | "sound" | "read";
62
+ /** Film seconds it shows or plays from and until; absent on a paged output, or outside any part. */
63
+ start?: number;
64
+ end?: number;
65
+ }
66
+ /** A generated file a version shows or plays (it has a `.gen.json` record whose `ai` is not false). */
67
+ export interface GeneratedFile {
68
+ file: string;
69
+ kind: MediaKind;
70
+ /** From its record, when the record says. */
71
+ tool?: string;
72
+ model?: string;
73
+ /** When it was made (ISO 8601). */
74
+ at?: string;
75
+ /** Its record's sha256 is not the file's (the gen-mismatch fact). */
76
+ mismatch?: true;
77
+ uses: GeneratedUse[];
78
+ /** Film seconds during which it shows or plays, overlapping uses counted once; absent on a paged output. */
79
+ seconds?: number;
80
+ }
81
+ /** What each kind of fact measures. */
82
+ export interface FactData {
83
+ /** Two text blocks of different layers drawn over each other. */
84
+ "text-overlap": {
85
+ a: MeasuredText;
86
+ b: MeasuredText;
87
+ /** Pixels both cover. */
88
+ area: number;
89
+ /** That area as a share of the smaller box (0–1). */
90
+ share: number;
91
+ };
92
+ /**
93
+ * Two text blocks of the same layer drawn over each other, compared by
94
+ * what shows of their glyphs (each block's `ink`, else its `box`). A
95
+ * layer that fades one line into another at the same place has one while
96
+ * both show: each block's `opacity` says how much.
97
+ */
98
+ "text-overlap-own": {
99
+ a: MeasuredText;
100
+ b: MeasuredText;
101
+ /** Pixels both cover. */
102
+ area: number;
103
+ /** That area as a share of the smaller box (0–1). */
104
+ share: number;
105
+ };
106
+ /**
107
+ * A text block reaching outside a box it is drawn inside: an element
108
+ * between the block and its layer that has a background, a border or a
109
+ * shadow (the block's own element too). The nearest such box it reaches
110
+ * out of; a box that clips its content, or covers the whole frame, is
111
+ * not one.
112
+ */
113
+ "text-outside": {
114
+ text: MeasuredText;
115
+ container: TextContainer;
116
+ /** Per edge of the box it crosses: pixels past the edge. */
117
+ edges: {
118
+ side: "top" | "bottom" | "left" | "right";
119
+ px: number;
120
+ }[];
121
+ };
122
+ /**
123
+ * How long a text block can be read: the seconds its text shows whole
124
+ * (every node at `options.opacity` or more, `options.shown` or more of
125
+ * its glyphs showing), against its words and characters. Its text is the one the block shows longest: what
126
+ * a line that comes in word by word, or a number that counts up, settles
127
+ * on. One per block of each part of a video, looked at every
128
+ * `options.every` seconds.
129
+ */
130
+ "text-time": {
131
+ text: MeasuredText;
132
+ words: number;
133
+ chars: number;
134
+ /** Seconds the text shows whole. */
135
+ seconds: number;
136
+ /** When, in film seconds: [from, until]. */
137
+ spans: [from: number, until: number][];
138
+ /** Seconds the text is on screen at all (over 5 % opacity). */
139
+ onScreen: number;
140
+ /** Its font size, the smallest it is drawn at while whole: in the frame's pixels, and in points on the phone of `options.phone`, with its lowercase x's height the same way (`lowercase`, for text with lowercase Latin letters). Missing when it was not measured. */
141
+ size?: TextSize;
142
+ options: ReadOptions;
143
+ };
144
+ /**
145
+ * How many words are whole on screen at once in a part: the most (with
146
+ * the first stretch that has them), and every change of the count over
147
+ * the part. Counted from the text-time spans, so `options` says what
148
+ * whole means. One per part of a video with a text that is ever whole.
149
+ */
150
+ "words-on-screen": Omit<WordsAtOnce, "part"> & {
151
+ options: ReadOptions;
152
+ };
153
+ /**
154
+ * A text block over the speaker: the face track's box and/or the person
155
+ * matte (the share of the text's box where the matte is opaque).
156
+ */
157
+ "text-speaker": {
158
+ text: MeasuredText;
159
+ face?: {
160
+ box: Box;
161
+ /** Pixels the text's box and the face's both cover. */
162
+ area: number;
163
+ /** Shares of the text's box and of the face's box (0–1). */
164
+ ofText: number;
165
+ ofFace: number;
166
+ };
167
+ person?: {
168
+ /** Share of the text's box over the person matte (0–1). */
169
+ ofText: number;
170
+ /** The footage file whose matte it is. */
171
+ file: string;
172
+ };
173
+ };
174
+ /**
175
+ * A text block the frame's edges cut: what shows of its glyphs (each
176
+ * line's glyph rows and its letters' columns, after the boxes it is drawn
177
+ * inside clip it; the frame's own edges do not) reaching past the frame,
178
+ * whatever its layout box says: a transform, a line wider than its box
179
+ * or a glyph taller than its line counts.
180
+ */
181
+ "text-off-frame": {
182
+ text: MeasuredText;
183
+ /** The frame: the format's pixels. */
184
+ frame: [width: number, height: number];
185
+ /** Per edge of the frame it crosses: pixels past the edge. */
186
+ edges: {
187
+ side: "top" | "bottom" | "left" | "right";
188
+ px: number;
189
+ }[];
190
+ /** Pixels of its glyphs outside the frame. */
191
+ outside: number;
192
+ /** That as a share of its glyphs' pixels (0–1; 1: none of them inside). */
193
+ share: number;
194
+ /** The box round its glyphs in the frame's pixels, the frame not cutting it (its ink box stops at a box that clips at the frame). */
195
+ glyphs: Box;
196
+ };
197
+ /**
198
+ * The contrast between a text block's fill and the pixels drawn behind
199
+ * its glyphs (every text's fill hidden, the picture captured): WCAG 2.1
200
+ * ratios over every pixel of each line's glyph box, the fill drawn at
201
+ * its alpha and opacity over the pixel against the pixel. A shadow or a
202
+ * stroke round the letters is part of what is behind. On the check's
203
+ * picture (`graphics`: the graphic layers over the look's background)
204
+ * footage is not drawn: what shows under the block is listed.
205
+ */
206
+ "text-contrast": {
207
+ text: MeasuredText;
208
+ /** The colours its glyphs are filled with (#rrggbb, #rrggbbaa when translucent). */
209
+ fill: string[];
210
+ /** Its font size in the frame's pixels, and its weight. */
211
+ size: number;
212
+ weight: number;
213
+ shadow?: true;
214
+ stroke?: true;
215
+ /** The picture measured: the check's graphics, or the final picture with footage (allyhub inspect contrast --final). */
216
+ picture: "graphics" | "final";
217
+ /** Footage whose box is under its glyphs then, which `graphics` does not draw. */
218
+ footage?: string[];
219
+ options: ContrastOptions;
220
+ } & ({
221
+ /**
222
+ * WCAG ratios, 1–21, against the picture behind its fill (a
223
+ * stroke or shadow round its letters counts there): the lowest
224
+ * pixel, the `options.percentile`th lowest, the median.
225
+ */
226
+ ratio: {
227
+ min: number;
228
+ low: number;
229
+ median: number;
230
+ };
231
+ /** Pixels measured (of the picture captured, at `options.scale`). */
232
+ pixels: number;
233
+ /** The picture behind, #rrggbb: each channel's median, and the pixel at the minimum. */
234
+ background: {
235
+ median: string;
236
+ atMin: string;
237
+ };
238
+ /**
239
+ * With a stroke or shadow round its letters: the same against the
240
+ * picture under them, the stroke and shadow hidden too.
241
+ */
242
+ under?: {
243
+ ratio: {
244
+ min: number;
245
+ low: number;
246
+ median: number;
247
+ };
248
+ background: {
249
+ median: string;
250
+ atMin: string;
251
+ };
252
+ };
253
+ } | {
254
+ /** Not measured: its fill is not a colour (a background clipped to the text), or none of its glyphs is inside the frame. */
255
+ missing: "fill" | "pixels";
256
+ why: string;
257
+ });
258
+ /** A text block reaching into the area a format's platform interface covers. */
259
+ "text-covered": {
260
+ text: MeasuredText;
261
+ /** The frame, and its covered edges in pixels. */
262
+ frame: [width: number, height: number];
263
+ covered: SafeZone;
264
+ /** The platform profile the format is (its name for people), when it is one. */
265
+ profile?: string;
266
+ /** Per covered edge it reaches into: pixels in from that edge's line. */
267
+ edges: {
268
+ side: "top" | "bottom" | "left" | "right";
269
+ px: number;
270
+ }[];
271
+ };
272
+ /**
273
+ * How much a footage layer is enlarged over its window, at its largest
274
+ * (the fact's `t`) and its smallest, zoom and box keys counted.
275
+ */
276
+ "footage-scale": Omit<FootageScale, "part">;
277
+ /**
278
+ * The bands of a part's content box (the frame inside the format's
279
+ * covered edges) that the speaker covers at none of the part's measured
280
+ * moments: free of the face box, of the person matte, and of both. A
281
+ * part with footage that has a face track or a person matte has one;
282
+ * what was not measured says so.
283
+ */
284
+ "free-bands": {
285
+ frame: [width: number, height: number];
286
+ /** The format's covered edges in pixels, and the content box inside them. */
287
+ covered: SafeZone;
288
+ content: {
289
+ x: [x0: number, x1: number];
290
+ y: [y0: number, y1: number];
291
+ };
292
+ /** The platform profile the format is (its name for people), when it is one. */
293
+ profile?: string;
294
+ /** The part's measured moments, film seconds. */
295
+ moments: number[];
296
+ /** The speaker's face box (the face track's), or why it was not measured. */
297
+ face: FreeBandsFrom | FreeBandsMissing<"face-track">;
298
+ /** The person matte, or why it was not measured. */
299
+ person: FreeBandsFrom | FreeBandsMissing<"person-matte">;
300
+ /** Bands free of everything measured (face and person); the whole content box when neither was. */
301
+ bands: FreeBand[];
302
+ };
303
+ /** A run of nearly flat frames whose colour differs from the picture around it. */
304
+ "flat-frames": {
305
+ /** Film seconds: the first frame, and the end of the last. */
306
+ start: number;
307
+ end: number;
308
+ frames: number;
309
+ /** Mean luminance of the run, 0–255, and a word for it. */
310
+ luma: number;
311
+ shade: "black" | "dark" | "grey" | "white";
312
+ /** The run went on past how far it was followed (two seconds). */
313
+ longer: boolean;
314
+ /** The thresholds the search used. */
315
+ options: FlatFrameOptions;
316
+ /**
317
+ * The run lies in a transition's window (a dip through a colour is
318
+ * flat on purpose): its type and the parts it joins.
319
+ */
320
+ transition?: {
321
+ type: string;
322
+ from: string;
323
+ to: string;
324
+ };
325
+ };
326
+ /**
327
+ * A stretch where the picture holds: from a frame looked at, every frame
328
+ * looked at after it (`options.every` seconds apart) differs from it in
329
+ * at most `options.change` of its pixels. Across parts too: a join that
330
+ * changes nothing on screen does not end one. What is compared is the
331
+ * graphics the check draws over the look's background; footage is not
332
+ * drawn there, so the footage that shows meanwhile is listed, not
333
+ * measured.
334
+ */
335
+ "still-picture": {
336
+ /** Film seconds: the first frame looked at and the last that still held (the picture may hold up to `options.every` longer either side). */
337
+ start: number;
338
+ end: number;
339
+ /** end − start. */
340
+ seconds: number;
341
+ /** Frames looked at in it. */
342
+ frames: number;
343
+ /** The parts it runs through. */
344
+ parts: string[];
345
+ /** The most any frame in it changed from its first: the share of pixels (0–1), and the mean change of a pixel's largest channel (of 255). */
346
+ change: number;
347
+ mean: number;
348
+ /** The picture at its end against its start: share and mean, as `change`. */
349
+ drift: {
350
+ change: number;
351
+ mean: number;
352
+ };
353
+ /** Footage showing during it (film seconds), which the comparison did not see. */
354
+ footage?: {
355
+ file: string;
356
+ part: string;
357
+ start: number;
358
+ end: number;
359
+ }[];
360
+ /** It runs to the video's last frame. */
361
+ toEnd?: true;
362
+ /** How it was looked for. */
363
+ options: StillOptions;
364
+ };
365
+ /**
366
+ * How things move either side of a join between parts (with a
367
+ * transition, either side of its window): each thing's velocity over
368
+ * the last `options.frames` frames before and the first after, each part
369
+ * drawn alone, from the boxes of what shows (text, painted boxes,
370
+ * pictures); the picture's own shift when measured (allyhub inspect
371
+ * --seams); the change across; things named alike on both sides.
372
+ */
373
+ "cut-seam": {
374
+ /** The join: the incoming part's start, film seconds. */
375
+ at: number;
376
+ before: SeamSide;
377
+ after: SeamSide;
378
+ /** The transition into the incoming part: its type and window (film seconds). */
379
+ transition?: {
380
+ type: string;
381
+ start: number;
382
+ end: number;
383
+ };
384
+ /** The change across: of the largest moving thing each side, of the moving things' overall velocity, and of the picture's shift when measured. */
385
+ change: {
386
+ lead: SeamChange;
387
+ overall: SeamChange;
388
+ picture?: SeamChange;
389
+ };
390
+ /** Things on both sides with the same `data-ak` name, or the same text. */
391
+ carriers: SeamCarrier[];
392
+ options: SeamOptions;
393
+ };
394
+ /**
395
+ * A frame (or a run of up to `options.frames` frames) unlike both the
396
+ * frame before and the frame after it: `foreign` is the share of its
397
+ * pixels with a channel outside what those two span, by more than
398
+ * `options.noise`. A one-frame flash, a blank or half-drawn frame, a
399
+ * layer that shows for one frame. Looked for at the frames beside each
400
+ * join; anywhere with allyhub inspect flash. On the check's picture:
401
+ * graphics, no footage.
402
+ */
403
+ flash: {
404
+ /** Film seconds: its first frame, and the end of its last. */
405
+ start: number;
406
+ end: number;
407
+ frames: number;
408
+ parts: string[];
409
+ /** The least foreign of its frames: share of pixels (0–1) and mean (levels of 255). */
410
+ foreign: FrameChange;
411
+ /** Its first frame against the frame before, its last against the frame after, and those two against each other (share past `options.noise`, mean). */
412
+ before: FrameChange;
413
+ after: FrameChange;
414
+ across: FrameChange;
415
+ /**
416
+ * When it touches a cut: it against its own shot alone. `step`, its
417
+ * frame nearest its own side against the next frame of its shot;
418
+ * `usual`, that frame against the one beyond, the shot's own change a
419
+ * frame. A step far past the usual is a frame unlike its own shot; a
420
+ * step near it is a frame in motion beside a cut.
421
+ */
422
+ own?: {
423
+ side: "before" | "after";
424
+ step: FrameChange;
425
+ usual: FrameChange;
426
+ };
427
+ /** The join it is beside, film seconds. */
428
+ join?: number;
429
+ /** It lies in a transition's window. */
430
+ transition?: {
431
+ type: string;
432
+ from: string;
433
+ to: string;
434
+ };
435
+ options: FlashOptions;
436
+ };
437
+ /** A video's music against its length. */
438
+ "music-length": {
439
+ file: string;
440
+ /** Seconds of music the video can play: the file from `from` on. */
441
+ music: number;
442
+ /** Seconds into the file where it starts (music.from), when not 0. */
443
+ from?: number;
444
+ /** It loops (music.loop): never shorter than the video. */
445
+ loop?: true;
446
+ video: number;
447
+ /** Seconds at the end without music (0 when the music is long enough). */
448
+ without: number;
449
+ /** The combo was put together from its parts, not loaded. */
450
+ estimated?: true;
451
+ };
452
+ /** What a piece's matrix chose: requested against possible, and each candidate's combos. */
453
+ "matrix-coverage": {
454
+ /** How the combos were chosen: named in matrix.combos, or sampled. */
455
+ choice: "combos" | "sampling";
456
+ /** Combos sampling was asked for (`pick`; absent: every one). */
457
+ pick?: number;
458
+ /**
459
+ * Slot combinations the rules allow (absent when matrix.combos chose
460
+ * among more than were counted), and how many were chosen.
461
+ */
462
+ possible?: number;
463
+ chosen: number;
464
+ /** Every candidate of every slot, with the ids of the chosen combos that use it. */
465
+ candidates: {
466
+ slot: string;
467
+ candidate: string;
468
+ combos: string[];
469
+ }[];
470
+ };
471
+ /**
472
+ * The speech's loudness either side of a join (pieces with slots,
473
+ * measured with ffmpeg), or why it could not be measured. A join where a
474
+ * side has no speech has no fact.
475
+ */
476
+ "join-loudness": {
477
+ before: string;
478
+ after: string;
479
+ estimated?: true;
480
+ } & ({
481
+ /** LUFS of each side's speech, levelled as the mix levels it. */
482
+ beforeLufs: number;
483
+ afterLufs: number;
484
+ /** after − before, in LU. */
485
+ difference: number;
486
+ } | {
487
+ /**
488
+ * Not measured: ffmpeg is not there, a take's file is not in the
489
+ * media index or not on this computer, a side's speech is silent
490
+ * (below −70 LUFS), or ffmpeg failed.
491
+ */
492
+ missing: JoinLoudnessMissing;
493
+ /** What happened, in words. */
494
+ why: string;
495
+ });
496
+ /**
497
+ * The generated media a version shows or plays, from the `.gen.json`
498
+ * records beside its files, and when: one per output × combo × format
499
+ * that uses any. Whether a platform's AI label is needed is the
500
+ * agent's to decide.
501
+ */
502
+ "generated-media": {
503
+ files: GeneratedFile[];
504
+ /** The video's length, seconds; absent on a paged output. */
505
+ duration?: number;
506
+ /** The combo was put together from its parts, not loaded. */
507
+ estimated?: true;
508
+ };
509
+ /**
510
+ * A `.gen.json` record that does not hold for the file beside it: its
511
+ * sha256 is another file's (the record was moved or copied without its
512
+ * media, or the media was changed), or it cannot be read. One per piece
513
+ * that reads the file.
514
+ */
515
+ "gen-mismatch": {
516
+ file: string;
517
+ record: string;
518
+ } & ({
519
+ why: "sha256";
520
+ /** The sha256 the record has, and the file's. */
521
+ recorded: string;
522
+ actual: string;
523
+ } | {
524
+ why: "unreadable";
525
+ error: string;
526
+ });
527
+ /**
528
+ * Graphic layers drawn under footage. A part's layers are stacked in
529
+ * the order they are listed, so a graphic layer listed before a footage
530
+ * layer is under it: a card behind a video, or a layer the footage
531
+ * hides. One per plane of graphics with footage over it while it shows.
532
+ */
533
+ "graphics-under-footage": {
534
+ /** The graphic layers, back to front: the component and when it shows (film seconds). */
535
+ layers: {
536
+ component: string;
537
+ start: number;
538
+ end: number;
539
+ }[];
540
+ /**
541
+ * The footage layers over them while they show: when each shows, its
542
+ * box in the frame's pixels (its largest when keyframed) and the share
543
+ * of the frame that box covers (1: all of it).
544
+ */
545
+ footage: {
546
+ file: string;
547
+ start: number;
548
+ end: number;
549
+ box: Box;
550
+ frame: number;
551
+ }[];
552
+ /** The largest of those shares: 1 when a footage layer covers the whole frame over them. */
553
+ covered: number;
554
+ };
555
+ /**
556
+ * A layer drawn its fallback way because what it reads is missing: a
557
+ * reframe around the face without a face track (centred), a footage
558
+ * layer's `speaker` that is not a face of its track (its reframe,
559
+ * punch-ins and face centred), a layer behind the person without a
560
+ * person matte, or without footage of the part's own take (drawn in
561
+ * front), a footage layer's `background` without a person matte (the
562
+ * footage shown as it is). check, render and dev index what is missing
563
+ * first unless indexing is off.
564
+ */
565
+ fallback: {
566
+ /** The footage or music file, when the missing thing is its analysis. */
567
+ file?: string;
568
+ missing: "face-track" | "face" | "person-matte" | "own-footage" | "tempo";
569
+ /** The face id asked for (missing "face"). */
570
+ face?: number;
571
+ /** What reads it. */
572
+ for: "reframe" | "speaker" | "behind-person" | "background" | "snap" | "music-play" | "music-end";
573
+ /** What is done instead. */
574
+ fallback: "centred" | "in-front" | "unprocessed" | "not-snapped" | "played-once" | "film-end";
575
+ };
576
+ /**
577
+ * Two named objects of a 3D scenery that touch or cross, at the moment a
578
+ * scenery layer starts (docs/design/3d-worlds.md §6): touching with the
579
+ * area faces in one plane share, or crossing with the curve's length,
580
+ * how deep at least (a lower bound from surface samples), the lift that
581
+ * clears them along +Y moving a and moving b, and the volume they share
582
+ * where both are closed.
583
+ */
584
+ "scenery-contact": SceneryFactPlace & {
585
+ a: string;
586
+ b: string;
587
+ crossing: boolean;
588
+ touching: boolean;
589
+ gap?: number;
590
+ area?: number;
591
+ curve?: number;
592
+ within?: "a in b" | "b in a";
593
+ depth?: number;
594
+ lift?: {
595
+ a: number;
596
+ b: number;
597
+ };
598
+ volume?: number;
599
+ volumeMissing?: string;
600
+ /** The pair could not be measured, and why. */
601
+ missing?: string;
602
+ };
603
+ /**
604
+ * A named object of a 3D scenery and what is below it, by columns down
605
+ * through its footprint: the least gap (negative when sunk), what is
606
+ * below, the share of its footprint in contact, and how far its centre
607
+ * of mass is inside the contact's hull.
608
+ */
609
+ "scenery-support": SceneryFactPlace & {
610
+ object: string;
611
+ gap: number | null;
612
+ sunk: number;
613
+ on: string[];
614
+ footprintShare: number;
615
+ margin?: number;
616
+ nothingBelow: number;
617
+ };
618
+ /**
619
+ * Whether a scenery layer's scenery was drawn with its bake laid
620
+ * (`allyhub scenery bake`): a bake is laid only on the scene it was made
621
+ * for, by the scene's digest, so a scenery that changed since it was baked
622
+ * is drawn unbaked, lit by its own lights alone. Reported for a scenery
623
+ * that says how to bake it (defineScenery's `bake`), has a bake laid, or
624
+ * was baked before.
625
+ */
626
+ "scenery-bake": SceneryFactPlace & {
627
+ laid: boolean;
628
+ /** Whether the scenery says how to bake it (defineScenery's `bake`). */
629
+ asked: boolean;
630
+ /** The scene's digest a bake was looked for by. */
631
+ digest: string;
632
+ /** The renderer it was looked for on (this page's; the CPU's is looked for too). */
633
+ renderer: string;
634
+ /** Laid: the renderer the bake was made on. */
635
+ bakedOn?: string;
636
+ /** The scenery's module, a project path, when known. */
637
+ file?: string;
638
+ /** Not laid: the digest the scenery was last baked to on each renderer (the bake index); empty when it never was. */
639
+ baked?: Record<string, string>;
640
+ /** Not laid: whether the scenery was baked before, for another scene (it changed since), rather than never. */
641
+ stale?: boolean;
642
+ /** Not laid: the renderers (other GPUs) a bake of this very scene was made on, which this one does not lay. */
643
+ elsewhere?: string[];
644
+ /** Not laid: the command that makes its bake. */
645
+ command?: string;
646
+ };
647
+ /** A named object of a 3D scenery whose surface is open, non-manifold, degenerate or crosses itself. */
648
+ "mesh-health": SceneryFactPlace & {
649
+ object: string;
650
+ triangles: number;
651
+ closed: boolean;
652
+ openEdges: number;
653
+ nonManifoldEdges: number;
654
+ degenerate: number;
655
+ selfIntersections: number | null;
656
+ };
657
+ /**
658
+ * A scenery layer's camera near or in the scenery's surfaces over the layer:
659
+ * the least distance to a surface and when, the moments it is inside an
660
+ * object, and those its near plane cuts geometry (sampled ten times a
661
+ * second).
662
+ */
663
+ "camera-clearance": SceneryFactPlace & {
664
+ nearest?: {
665
+ object: string;
666
+ distance: number;
667
+ t: number;
668
+ };
669
+ inside: {
670
+ object: string;
671
+ closed: boolean;
672
+ from: number;
673
+ to: number;
674
+ }[];
675
+ nearCut: {
676
+ object: string;
677
+ from: number;
678
+ to: number;
679
+ }[];
680
+ };
681
+ /**
682
+ * A scenery layer's camera motion over the layer, in its own frame: the
683
+ * peaks of each channel (m/s, °/s, stops/s), speed, turn, acceleration,
684
+ * jerk and when, a dimensionless smoothness, the largest step between
685
+ * frames.
686
+ */
687
+ "camera-motion": SceneryFactPlace & {
688
+ fps: number;
689
+ length: number;
690
+ peaks: Record<"truck" | "pedestal" | "dolly" | "pan" | "tilt" | "roll" | "zoom" | "speed" | "turn" | "acceleration" | "jerk", {
691
+ peak: number;
692
+ at: number;
693
+ }>;
694
+ smoothness: number | null;
695
+ step: {
696
+ distance: number;
697
+ angle: number;
698
+ at: number;
699
+ };
700
+ /** The camera's cuts (shots()), part times: what is measured stops at each. */
701
+ cuts?: number[];
702
+ };
703
+ /**
704
+ * A screen in a scenery layer (scenery({ screens })) over the layer, sampled
705
+ * ten times a second: when it is on the frame facing the camera, its
706
+ * share of the layer's box, frame px per content px (below 1 its content
707
+ * is shrunk), the angle between its face's normal and the line to the
708
+ * camera at the centre of what the frame shows of it (°, 0 square on;
709
+ * the face's own centre when all of it shows), and the share
710
+ * of it hidden by what is in front, by which objects at the most.
711
+ */
712
+ "scenery-screen": SceneryFactPlace & {
713
+ screen: string;
714
+ /** Its content's size, px. */
715
+ size: [number, number];
716
+ /** The layer's box on the frame, px. */
717
+ frame: [number, number];
718
+ shown: {
719
+ from: number;
720
+ to: number;
721
+ }[];
722
+ share?: SceneryRange;
723
+ scale?: SceneryRange;
724
+ angle?: SceneryRange;
725
+ hidden?: SceneryRange & {
726
+ by: {
727
+ object: string;
728
+ share: number;
729
+ }[];
730
+ };
731
+ /**
732
+ * With a camera that has an aperture: the circle of confusion across
733
+ * the screen (a turned screen's near side is blurred more than its far
734
+ * side), its diameter in frame px (0 in focus), the least and the most
735
+ * over the layer.
736
+ */
737
+ blur?: SceneryRange;
738
+ /**
739
+ * With a sensor (scenery({ sensor })): the moiré its grid makes of the
740
+ * screen's pixels, the deepest band over a grid of its points at each
741
+ * sampled moment (how much it darkens at its darkest, 0–1), the least
742
+ * and the most over the layer, and how far apart that band's stripes
743
+ * are at the deepest, frame px.
744
+ */
745
+ moire?: SceneryRange & {
746
+ period?: number;
747
+ };
748
+ /**
749
+ * Each sampled moment it was on the frame: part time, its corners in
750
+ * the frame's px (top left, top right, bottom right, bottom left of its
751
+ * content), its share, its scale (least, most), its angle, and the share
752
+ * hidden when it was measured.
753
+ */
754
+ samples?: {
755
+ t: number;
756
+ corners: [number, number][];
757
+ share: number;
758
+ scale: [number, number];
759
+ angle: number;
760
+ hidden?: number;
761
+ }[];
762
+ /**
763
+ * A video on the screen (screen(video, { cues })): each stretch between
764
+ * two cues, in scenery seconds and the video's, and its speed (the
765
+ * video's seconds per scenery second; 1 is its own pace).
766
+ */
767
+ stretches?: {
768
+ from: number;
769
+ to: number;
770
+ video: [number, number];
771
+ speed: number;
772
+ }[];
773
+ /**
774
+ * Where it is drawn at this check, and at what share of the frame's
775
+ * pixels each way: in the scenery (Chrome's HTML-in-Canvas), at the scenery
776
+ * layer's drawing scale (quality.scale, default 0.5: its picture drawn
777
+ * at that size, then shown at the layer's); over the scenery, at the
778
+ * frame's own, 1.
779
+ */
780
+ drawn?: {
781
+ in: "scenery" | "over";
782
+ scale: number;
783
+ };
784
+ /**
785
+ * Its smallest text: font size in content px (of every text the screen
786
+ * holds, in any of its parts), and on the frame at the least and the
787
+ * most scale it is seen at (px), as drawn: times the drawing scale
788
+ * (`drawn`, at most 1).
789
+ */
790
+ text?: {
791
+ size: number;
792
+ onFrame: [number, number];
793
+ };
794
+ };
795
+ /**
796
+ * A screen drawn in the scenery (Chrome's HTML-in-Canvas) against its own
797
+ * element, at one moment of its scenery layer (its part's still, else the
798
+ * layer's middle): a small level of its texture as uploaded (before the
799
+ * scenery's light, tone curve and a sensor's moiré) and the element drawn
800
+ * flat by the browser's compositor, made the same size in linear light,
801
+ * both over `backdrop`. The colour difference (ΔE*ab, CIE76) over its
802
+ * pixels, the share over `tolerance`, the regions where they differ
803
+ * (content px, largest first) with the elements of the content in each
804
+ * that the texture is known to draw otherwise (canvases, faces with
805
+ * backface-visibility hidden, preserve-3d contexts, elements in the
806
+ * browser's top layer), and every such element. Missing, with why, when
807
+ * it could not be compared (a browser without HTML-in-Canvas draws the
808
+ * screen over the scenery).
809
+ */
810
+ "scenery-screen-fidelity": SceneryFactPlace & {
811
+ screen: string;
812
+ /** Part time of the moment compared, s. */
813
+ at: number;
814
+ /** Its content's size, px. */
815
+ size: [number, number];
816
+ /**
817
+ * The texture's level compared and its pixels each way, the texture's
818
+ * own (`of`), and the element's (`element`: its content's size times
819
+ * its pixels' density). A texture smaller than its element was painted
820
+ * at fewer pixels than it has: HTML-in-Canvas paints it at the scenery's
821
+ * canvas's pixels per CSS pixel, its quality.scale.
822
+ */
823
+ texture?: {
824
+ level: number;
825
+ size: [number, number];
826
+ of: [number, number];
827
+ element: [number, number];
828
+ };
829
+ /** The element as the browser draws it flat, captured at this size, px. */
830
+ flat?: [number, number];
831
+ /** A pixel differs when its ΔE*ab is over this. */
832
+ tolerance: number;
833
+ /** What both are seen over where they are transparent, RGB. */
834
+ backdrop: [number, number, number];
835
+ deltaE?: {
836
+ mean: number;
837
+ p95: number;
838
+ max: number;
839
+ };
840
+ /** Mean absolute difference of each channel, 0–255. */
841
+ channels?: {
842
+ r: number;
843
+ g: number;
844
+ b: number;
845
+ alpha: number;
846
+ };
847
+ /** The share of its pixels whose ΔE*ab is over the tolerance. */
848
+ share?: number;
849
+ regions?: {
850
+ /** Content px: x, y, width, height. */
851
+ box: [number, number, number, number];
852
+ /** Its differing pixels as a share of the screen's. */
853
+ share: number;
854
+ meanDeltaE: number;
855
+ maxDeltaE: number;
856
+ /** The listed elements whose box meets it: their places in `elements`. */
857
+ elements: number[];
858
+ }[];
859
+ /** Elements of the content the texture is known to draw otherwise, with their boxes, content px. */
860
+ elements?: {
861
+ kind: "canvas" | "backface-hidden" | "preserve-3d" | "top-layer";
862
+ name: string;
863
+ box: [number, number, number, number];
864
+ }[];
865
+ /** The comparison could not be made, and why. */
866
+ missing?: string;
867
+ };
868
+ /**
869
+ * A part that plays a stretch of a video item (take(piece).range) whose
870
+ * start or end falls inside a word of it: the word, and how far into it.
871
+ */
872
+ "cut-in-word": {
873
+ /** The video item the stretch is of. */
874
+ source: string;
875
+ side: "start" | "end";
876
+ /** Its seconds where the cut is. */
877
+ at: number;
878
+ word: string;
879
+ /** The word's start and end, its seconds. */
880
+ wordStart: number;
881
+ wordEnd: number;
882
+ };
883
+ }
884
+ /** The least and the most of a value over a scenery layer's samples, and when (part time, s). */
885
+ export interface SceneryRange {
886
+ least: number;
887
+ leastAt: number;
888
+ most: number;
889
+ mostAt: number;
890
+ }
891
+ /** Where a scenery fact is from: the scenery layer (its name), and its window on its part's clock, s. */
892
+ export interface SceneryFactPlace {
893
+ layer: string;
894
+ start: number;
895
+ end: number;
896
+ }
897
+ export type FactKind = keyof FactData;
898
+ /** Where a fact was measured. Piece-level facts (the matrix) have no output, combo or format. */
899
+ export interface FactPlace {
900
+ piece: string;
901
+ output?: string;
902
+ combo?: Combo;
903
+ format?: string;
904
+ part?: string;
905
+ /** Film seconds. */
906
+ t?: number;
907
+ }
908
+ export type Fact = {
909
+ [K in FactKind]: FactPlace & {
910
+ kind: K;
911
+ data: FactData[K];
912
+ };
913
+ }[FactKind];
914
+ /** Every kind, with what it says, in the order `allyhub inspect` prints them. */
915
+ export declare const FACT_KINDS: Record<FactKind, string>;
916
+ export declare function isFactKind(k: string): k is FactKind;
917
+ /** A fact of one kind, typed. */
918
+ export declare function fact<K extends FactKind>(kind: K, place: FactPlace, data: FactData[K]): Fact;
919
+ /** Facts of one kind, typed. */
920
+ export declare function factsOf<K extends FactKind>(facts: readonly Fact[], kind: K): Extract<Fact, {
921
+ kind: K;
922
+ }>[];
923
+ /** How many facts of each kind. */
924
+ export declare function countFacts(facts: readonly Fact[]): Partial<Record<FactKind, number>>;
925
+ /** Which facts to keep: of these kinds, of this part, between these seconds. */
926
+ export interface FactFilter {
927
+ kinds?: readonly FactKind[] | undefined;
928
+ part?: string | undefined;
929
+ from?: number | undefined;
930
+ to?: number | undefined;
931
+ }
932
+ /** The facts a filter keeps; a fact without a time goes when a time is asked. */
933
+ export declare function filterFacts(facts: readonly Fact[], o: FactFilter): Fact[];
934
+ /**
935
+ * The free-bands fact's data for one part: the content box of a frame
936
+ * W × H inside `safe`, and its bands free of the face boxes (one per
937
+ * measured moment, undefined where no face was seen), of the person
938
+ * matte's rows (spans per moment, already limited to the content box's
939
+ * columns) and of both. A measurement that is missing stays missing: it
940
+ * covers nothing, and says so.
941
+ */
942
+ export declare function freeBandsData(o: {
943
+ width: number;
944
+ height: number;
945
+ safe: SafeZone;
946
+ profile?: string;
947
+ moments: number[];
948
+ face: {
949
+ files: string[];
950
+ speaker?: number;
951
+ boxes: (Box | undefined)[];
952
+ } | FreeBandsMissing<"face-track">;
953
+ person: {
954
+ files: string[];
955
+ rows: RowSpan[][];
956
+ } | FreeBandsMissing<"person-matte">;
957
+ }): FactData["free-bands"];
958
+ /**
959
+ * The facts in a layout measurement (LoadedOutput.measure): text over
960
+ * text, over the face and in covered edges at each moment, and each
961
+ * footage layer's enlargement. The person matte is the host's to add
962
+ * (`text-speaker`'s `person`).
963
+ */
964
+ export declare function layoutFacts(report: LayoutReport, place: Omit<FactPlace, "part" | "t">, profile?: string): Fact[];
965
+ //# sourceMappingURL=fact.d.ts.map