allyhub 0.2.0 → 0.4.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 (653) hide show
  1. package/dist/cli-version.js +2 -0
  2. package/dist/commands/add.js +5 -5
  3. package/dist/commands/auth.js +4 -4
  4. package/dist/commands/cloud-tools.js +9 -10
  5. package/dist/commands/dev.js +2 -2
  6. package/dist/commands/doctor.js +4 -4
  7. package/dist/commands/frames/piece.js +1 -1
  8. package/dist/commands/frames.js +6 -6
  9. package/dist/commands/index.js +1 -1
  10. package/dist/commands/inspect/contrast.js +1 -1
  11. package/dist/commands/inspect/layout.js +1 -1
  12. package/dist/commands/model.js +1 -1
  13. package/dist/commands/orgs.js +2 -2
  14. package/dist/commands/render.js +2 -2
  15. package/dist/commands/sheet.js +2 -2
  16. package/dist/commands/skills.js +3 -3
  17. package/dist/commands/slides.js +3 -0
  18. package/dist/main.js +7 -7
  19. package/dist/text/facts-text.js +5 -5
  20. package/dist/text/format.js +2 -2
  21. package/dist/works.js +1 -1
  22. package/editor-web/assets/browser-B31cR_c2.js +105 -0
  23. package/editor-web/assets/dist-6TNEuNMX.js +4 -0
  24. package/editor-web/assets/dist-Cm2TIjW5.js +2 -0
  25. package/editor-web/assets/dist-Cpt0p8bX.js +6 -0
  26. package/editor-web/assets/dist-D2GccKEJ.js +1 -0
  27. package/editor-web/assets/dist-Z0zvYXmu.js +233 -0
  28. package/editor-web/assets/dist-fs4ONrUV.js +32 -0
  29. package/editor-web/assets/index-CAcsAZ9u.js +70 -0
  30. package/editor-web/assets/index-DlcJckhO.css +2 -0
  31. package/editor-web/assets/list-D2v7U8K8.js +1 -0
  32. package/editor-web/assets/react-D0RmGe2w.js +101 -0
  33. package/editor-web/assets/rolldown-runtime-XKyaHtl9.js +1 -0
  34. package/editor-web/assets/text-align-start-B3k2cx5f.js +1 -0
  35. package/editor-web/assets/undo-2-Ecr7-Obc.js +1 -0
  36. package/editor-web/index.html +4 -4
  37. package/node_modules/@allyhub-next/audio/package.json +1 -1
  38. package/node_modules/@allyhub-next/browser/package.json +1 -1
  39. package/node_modules/@allyhub-next/build/dist/data.js +1 -1
  40. package/node_modules/@allyhub-next/build/dist/meta-worker.d.ts +10 -0
  41. package/node_modules/@allyhub-next/build/dist/meta-worker.js +2 -2
  42. package/node_modules/@allyhub-next/build/dist/model-info.js +2 -1
  43. package/node_modules/@allyhub-next/build/dist/plugin.d.ts +2 -0
  44. package/node_modules/@allyhub-next/build/dist/plugin.js +9 -8
  45. package/node_modules/@allyhub-next/build/dist/prepare.d.ts +13 -1
  46. package/node_modules/@allyhub-next/build/dist/prepare.js +2 -2
  47. package/node_modules/@allyhub-next/build/dist/scan.d.ts +1 -1
  48. package/node_modules/@allyhub-next/build/dist/scan.js +1 -1
  49. package/node_modules/@allyhub-next/build/dist/types.js +3 -3
  50. package/node_modules/@allyhub-next/build/package.json +1 -1
  51. package/node_modules/@allyhub-next/check/dist/check.js +3 -3
  52. package/node_modules/@allyhub-next/check/dist/generated.d.ts +1 -1
  53. package/node_modules/@allyhub-next/check/package.json +1 -1
  54. package/node_modules/@allyhub-next/cloud/dist/index.js +1 -1
  55. package/node_modules/@allyhub-next/cloud/dist/signin.js +2 -2
  56. package/node_modules/@allyhub-next/cloud/dist/token.js +1 -1
  57. package/node_modules/@allyhub-next/cloud/package.json +1 -1
  58. package/node_modules/@allyhub-next/components/package.json +1 -1
  59. package/node_modules/@allyhub-next/dev-server/dist/card.d.ts +2 -11
  60. package/node_modules/@allyhub-next/dev-server/dist/card.js +1 -1
  61. package/node_modules/@allyhub-next/dev-server/dist/exports.d.ts +2 -2
  62. package/node_modules/@allyhub-next/dev-server/dist/exports.js +1 -1
  63. package/node_modules/@allyhub-next/dev-server/dist/index.d.ts +1 -1
  64. package/node_modules/@allyhub-next/dev-server/dist/index.js +1 -1
  65. package/node_modules/@allyhub-next/dev-server/dist/live.d.ts +3 -0
  66. package/node_modules/@allyhub-next/dev-server/dist/live.js +1 -1
  67. package/node_modules/@allyhub-next/dev-server/dist/project.d.ts +3 -0
  68. package/node_modules/@allyhub-next/dev-server/dist/project.js +1 -1
  69. package/node_modules/@allyhub-next/dev-server/dist/reveal.d.ts +6 -0
  70. package/node_modules/@allyhub-next/dev-server/dist/reveal.js +2 -0
  71. package/node_modules/@allyhub-next/dev-server/dist/server.js +1 -1
  72. package/node_modules/@allyhub-next/dev-server/dist/stage.d.ts +2 -0
  73. package/node_modules/@allyhub-next/dev-server/dist/stage.js +22 -2
  74. package/node_modules/@allyhub-next/dev-server/dist/tools.d.ts +2 -0
  75. package/node_modules/@allyhub-next/dev-server/dist/tools.js +1 -1
  76. package/node_modules/@allyhub-next/dev-server/package.json +1 -1
  77. package/node_modules/@allyhub-next/doc/dist/docx.d.ts +28 -0
  78. package/node_modules/@allyhub-next/doc/dist/docx.js +4 -0
  79. package/node_modules/@allyhub-next/doc/dist/html.d.ts +3 -0
  80. package/node_modules/@allyhub-next/doc/dist/html.js +1 -1
  81. package/node_modules/@allyhub-next/doc/package.json +5 -1
  82. package/node_modules/@allyhub-next/export/dist/deck-fonts.d.ts +24 -0
  83. package/node_modules/@allyhub-next/export/dist/deck-fonts.js +2 -0
  84. package/node_modules/@allyhub-next/export/dist/deck-pptx.d.ts +12 -0
  85. package/node_modules/@allyhub-next/export/dist/deck-pptx.js +2 -0
  86. package/node_modules/@allyhub-next/export/dist/export.d.ts +17 -5
  87. package/node_modules/@allyhub-next/export/dist/export.js +2 -2
  88. package/node_modules/@allyhub-next/export/dist/index.d.ts +1 -0
  89. package/node_modules/@allyhub-next/export/dist/index.js +1 -1
  90. package/node_modules/@allyhub-next/export/dist/names.d.ts +11 -6
  91. package/node_modules/@allyhub-next/export/dist/names.js +1 -1
  92. package/node_modules/@allyhub-next/export/package.json +1 -1
  93. package/node_modules/@allyhub-next/formats/dist/data/script.d.ts +22 -0
  94. package/node_modules/@allyhub-next/formats/dist/data/script.js +1 -1
  95. package/node_modules/@allyhub-next/formats/dist/data/slides.d.ts +1494 -0
  96. package/node_modules/@allyhub-next/formats/dist/data/slides.js +2 -0
  97. package/node_modules/@allyhub-next/formats/dist/index.d.ts +2 -0
  98. package/node_modules/@allyhub-next/formats/dist/index.js +1 -1
  99. package/node_modules/@allyhub-next/formats/dist/items.d.ts +26 -0
  100. package/node_modules/@allyhub-next/formats/dist/items.js +1 -1
  101. package/node_modules/@allyhub-next/formats/dist/layout.d.ts +2 -0
  102. package/node_modules/@allyhub-next/formats/dist/layout.js +1 -1
  103. package/node_modules/@allyhub-next/formats/dist/note-shape.d.ts +39 -0
  104. package/node_modules/@allyhub-next/formats/dist/note-shape.js +2 -0
  105. package/node_modules/@allyhub-next/formats/dist/schemas.d.ts +418 -0
  106. package/node_modules/@allyhub-next/formats/dist/schemas.js +1 -1
  107. package/node_modules/@allyhub-next/formats/package.json +1 -1
  108. package/node_modules/@allyhub-next/measure/dist/index.d.ts +1 -1
  109. package/node_modules/@allyhub-next/measure/dist/index.js +1 -1
  110. package/node_modules/@allyhub-next/measure/dist/overlay.d.ts +14 -1
  111. package/node_modules/@allyhub-next/measure/dist/overlay.js +1 -1
  112. package/node_modules/@allyhub-next/measure/package.json +1 -1
  113. package/node_modules/@allyhub-next/media/dist/asr/parakeet.d.ts +1 -4
  114. package/node_modules/@allyhub-next/media/dist/asr/parakeet.js +4 -4
  115. package/node_modules/@allyhub-next/media/dist/asr/transcribe.d.ts +1 -1
  116. package/node_modules/@allyhub-next/media/dist/asr/transcribe.js +1 -1
  117. package/node_modules/@allyhub-next/media/dist/grid.d.ts +3 -3
  118. package/node_modules/@allyhub-next/media/dist/grid.js +5 -5
  119. package/node_modules/@allyhub-next/media/dist/local.d.ts +3 -0
  120. package/node_modules/@allyhub-next/media/dist/local.js +1 -1
  121. package/node_modules/@allyhub-next/media/dist/ocr/tesseract.d.ts +8 -2
  122. package/node_modules/@allyhub-next/media/dist/ocr/tesseract.js +1 -1
  123. package/node_modules/@allyhub-next/media/dist/ocr/text.js +3 -3
  124. package/node_modules/@allyhub-next/media/dist/ocr/worker.js +1 -1
  125. package/node_modules/@allyhub-next/media/dist/sheet.js +3 -3
  126. package/node_modules/@allyhub-next/media/dist/tools.d.ts +11 -1
  127. package/node_modules/@allyhub-next/media/dist/tools.js +1 -1
  128. package/node_modules/@allyhub-next/media/dist/vision/faces.js +1 -1
  129. package/node_modules/@allyhub-next/media/dist/vision/matte.js +1 -1
  130. package/node_modules/@allyhub-next/media/dist/vision/runtime.d.ts +1 -1
  131. package/node_modules/@allyhub-next/media/dist/vision/runtime.js +2 -2
  132. package/node_modules/@allyhub-next/media/dist/worker-process.d.ts +1 -1
  133. package/node_modules/@allyhub-next/media/dist/worker-process.js +1 -1
  134. package/node_modules/@allyhub-next/media/package.json +1 -1
  135. package/node_modules/@allyhub-next/model/dist/build-job.d.ts +2 -0
  136. package/node_modules/@allyhub-next/model/dist/build-worker.js +1 -1
  137. package/node_modules/@allyhub-next/model/dist/build.d.ts +10 -0
  138. package/node_modules/@allyhub-next/model/dist/build.js +2 -1
  139. package/node_modules/@allyhub-next/model/dist/report.d.ts +1 -1
  140. package/node_modules/@allyhub-next/model/package.json +1 -1
  141. package/node_modules/@allyhub-next/project/dist/digest.d.ts +1 -3
  142. package/node_modules/@allyhub-next/project/dist/digest.js +1 -1
  143. package/node_modules/@allyhub-next/project/dist/page.d.ts +0 -5
  144. package/node_modules/@allyhub-next/project/dist/page.js +2 -2
  145. package/node_modules/@allyhub-next/project/dist/session.js +1 -1
  146. package/node_modules/@allyhub-next/project/package.json +1 -1
  147. package/node_modules/@allyhub-next/protocol/dist/app.d.ts +1 -62
  148. package/node_modules/@allyhub-next/protocol/dist/app.js +1 -1
  149. package/node_modules/@allyhub-next/protocol/dist/auth.d.ts +17 -17
  150. package/node_modules/@allyhub-next/protocol/dist/auth.js +1 -1
  151. package/node_modules/@allyhub-next/protocol/dist/cli.d.ts +1 -5
  152. package/node_modules/@allyhub-next/protocol/dist/cli.js +1 -1
  153. package/node_modules/@allyhub-next/protocol/dist/editor.d.ts +13 -26
  154. package/node_modules/@allyhub-next/protocol/dist/editor.js +1 -1
  155. package/node_modules/@allyhub-next/protocol/dist/index.d.ts +1 -0
  156. package/node_modules/@allyhub-next/protocol/dist/index.js +1 -1
  157. package/node_modules/@allyhub-next/protocol/dist/notes.d.ts +163 -0
  158. package/node_modules/@allyhub-next/protocol/dist/notes.js +2 -0
  159. package/node_modules/@allyhub-next/protocol/dist/registry.d.ts +4 -2
  160. package/node_modules/@allyhub-next/protocol/dist/registry.js +1 -1
  161. package/node_modules/@allyhub-next/protocol/dist/routes.js +1 -1
  162. package/node_modules/@allyhub-next/protocol/dist/runtimes.d.ts +3 -0
  163. package/node_modules/@allyhub-next/protocol/dist/runtimes.js +1 -1
  164. package/node_modules/@allyhub-next/protocol/dist/tools.d.ts +38 -0
  165. package/node_modules/@allyhub-next/protocol/dist/tools.js +1 -1
  166. package/node_modules/@allyhub-next/protocol/package.json +1 -1
  167. package/node_modules/@allyhub-next/registry/dist/registry.js +1 -1
  168. package/node_modules/@allyhub-next/registry/package.json +1 -1
  169. package/node_modules/@allyhub-next/render/dist/doc/index.d.ts +1 -1
  170. package/node_modules/@allyhub-next/render/dist/doc/index.js +1 -1
  171. package/node_modules/@allyhub-next/render/dist/doc/print.d.ts +11 -0
  172. package/node_modules/@allyhub-next/render/dist/doc/print.js +17 -1
  173. package/node_modules/@allyhub-next/render/dist/exports.d.ts +29 -4
  174. package/node_modules/@allyhub-next/render/dist/exports.js +2 -2
  175. package/node_modules/@allyhub-next/render/dist/page.d.ts +11 -1
  176. package/node_modules/@allyhub-next/render/dist/render.d.ts +2 -0
  177. package/node_modules/@allyhub-next/render/dist/render.js +2 -2
  178. package/node_modules/@allyhub-next/render/package.json +1 -1
  179. package/node_modules/@allyhub-next/runtime/LICENSE +241 -0
  180. package/node_modules/@allyhub-next/runtime/dist/bridge.d.ts +13 -3
  181. package/node_modules/@allyhub-next/runtime/dist/clock.js +1 -1
  182. package/node_modules/@allyhub-next/runtime/dist/env.js +1 -1
  183. package/node_modules/@allyhub-next/runtime/dist/facade.js +1 -1
  184. package/node_modules/@allyhub-next/runtime/dist/footage.js +1 -1
  185. package/node_modules/@allyhub-next/runtime/dist/frame.js +1 -1
  186. package/node_modules/@allyhub-next/runtime/dist/index.d.ts +2 -0
  187. package/node_modules/@allyhub-next/runtime/dist/index.js +1 -1
  188. package/node_modules/@allyhub-next/runtime/dist/locate.d.ts +11 -0
  189. package/node_modules/@allyhub-next/runtime/dist/locate.js +2 -0
  190. package/node_modules/@allyhub-next/runtime/dist/measure.d.ts +2 -1
  191. package/node_modules/@allyhub-next/runtime/dist/measure.js +1 -1
  192. package/node_modules/@allyhub-next/runtime/dist/music.js +1 -1
  193. package/node_modules/@allyhub-next/runtime/dist/output.js +1 -1
  194. package/node_modules/@allyhub-next/runtime/dist/piece.d.ts +5 -9
  195. package/node_modules/@allyhub-next/runtime/dist/piece.js +2 -2
  196. package/node_modules/@allyhub-next/runtime/dist/player/player.js +1 -1
  197. package/node_modules/@allyhub-next/runtime/dist/reads.d.ts +2 -0
  198. package/node_modules/@allyhub-next/runtime/dist/reads.js +1 -1
  199. package/node_modules/@allyhub-next/runtime/dist/sound.js +1 -1
  200. package/node_modules/@allyhub-next/runtime/dist/stage-kit.d.ts +12 -0
  201. package/node_modules/@allyhub-next/runtime/dist/stage-kit.js +2 -0
  202. package/node_modules/@allyhub-next/runtime/package.json +5 -6
  203. package/node_modules/@allyhub-next/runtimes/dist/errors.d.ts +5 -1
  204. package/node_modules/@allyhub-next/runtimes/dist/index.d.ts +1 -0
  205. package/node_modules/@allyhub-next/runtimes/dist/index.js +1 -1
  206. package/node_modules/@allyhub-next/runtimes/dist/node-program.d.ts +3 -0
  207. package/node_modules/@allyhub-next/runtimes/dist/node-program.js +2 -0
  208. package/node_modules/@allyhub-next/runtimes/dist/packages.d.ts +65 -0
  209. package/node_modules/@allyhub-next/runtimes/dist/packages.js +4 -0
  210. package/node_modules/@allyhub-next/runtimes/dist/runtimes.js +2 -2
  211. package/node_modules/@allyhub-next/runtimes/dist/unpack.d.ts +7 -0
  212. package/node_modules/@allyhub-next/runtimes/dist/unpack.js +1 -1
  213. package/node_modules/@allyhub-next/runtimes/package.json +5 -1
  214. package/node_modules/@allyhub-next/runtimes/pins/docx/package-lock.json +67 -0
  215. package/node_modules/@allyhub-next/runtimes/pins/docx/package.json +9 -0
  216. package/node_modules/@allyhub-next/runtimes/pins/exceljs/package-lock.json +2533 -0
  217. package/node_modules/@allyhub-next/runtimes/pins/exceljs/package.json +8 -0
  218. package/node_modules/@allyhub-next/runtimes/pins/gltf-tools/package-lock.json +753 -0
  219. package/node_modules/@allyhub-next/runtimes/pins/gltf-tools/package.json +14 -0
  220. package/node_modules/@allyhub-next/runtimes/pins/manifold-3d/package-lock.json +950 -0
  221. package/node_modules/@allyhub-next/runtimes/pins/manifold-3d/package.json +8 -0
  222. package/node_modules/@allyhub-next/runtimes/pins/onnxruntime-node/package-lock.json +227 -0
  223. package/node_modules/@allyhub-next/runtimes/pins/onnxruntime-node/package.json +8 -0
  224. package/node_modules/@allyhub-next/runtimes/pins/sherpa-onnx-node/package-lock.json +105 -0
  225. package/node_modules/@allyhub-next/runtimes/pins/sherpa-onnx-node/package.json +8 -0
  226. package/node_modules/@allyhub-next/runtimes/pins/tesseract.js/package-lock.json +128 -0
  227. package/node_modules/@allyhub-next/runtimes/pins/tesseract.js/package.json +9 -0
  228. package/node_modules/@allyhub-next/runtimes/schemas/runtimes.schema.json +5 -24
  229. package/node_modules/@allyhub-next/scaffold/dist/index.js +5 -5
  230. package/node_modules/@allyhub-next/scaffold/package.json +1 -1
  231. package/node_modules/@allyhub-next/scenery/package.json +1 -1
  232. package/node_modules/@allyhub-next/scenery-host/dist/bundle.d.ts +3 -2
  233. package/node_modules/@allyhub-next/scenery-host/dist/bundle.js +3 -3
  234. package/node_modules/@allyhub-next/scenery-host/dist/model-stage.d.ts +32 -0
  235. package/node_modules/@allyhub-next/scenery-host/dist/model-stage.js +3 -0
  236. package/node_modules/@allyhub-next/scenery-host/dist/viewer.d.ts +11 -0
  237. package/node_modules/@allyhub-next/scenery-host/dist/viewer.js +1 -1
  238. package/node_modules/@allyhub-next/scenery-host/package.json +1 -1
  239. package/node_modules/@allyhub-next/sheet/package.json +1 -1
  240. package/node_modules/@allyhub-next/site/dist/media.js +2 -2
  241. package/node_modules/@allyhub-next/site/package.json +1 -1
  242. package/node_modules/@allyhub-next/slides-core/LICENSE +241 -0
  243. package/node_modules/@allyhub-next/slides-core/dist/animation.d.ts +129 -0
  244. package/node_modules/@allyhub-next/slides-core/dist/animation.js +2 -0
  245. package/node_modules/@allyhub-next/slides-core/dist/api.d.ts +649 -0
  246. package/node_modules/@allyhub-next/slides-core/dist/api.js +4 -0
  247. package/node_modules/@allyhub-next/slides-core/dist/capabilities.d.ts +18 -0
  248. package/node_modules/@allyhub-next/slides-core/dist/capabilities.js +2 -0
  249. package/node_modules/@allyhub-next/slides-core/dist/chart-api.d.ts +165 -0
  250. package/node_modules/@allyhub-next/slides-core/dist/chart-api.js +2 -0
  251. package/node_modules/@allyhub-next/slides-core/dist/chart-file.d.ts +11 -0
  252. package/node_modules/@allyhub-next/slides-core/dist/chart-file.js +2 -0
  253. package/node_modules/@allyhub-next/slides-core/dist/chart.d.ts +184 -0
  254. package/node_modules/@allyhub-next/slides-core/dist/chart.js +2 -0
  255. package/node_modules/@allyhub-next/slides-core/dist/check.d.ts +7 -0
  256. package/node_modules/@allyhub-next/slides-core/dist/check.js +2 -0
  257. package/node_modules/@allyhub-next/slides-core/dist/enums.d.ts +146 -0
  258. package/node_modules/@allyhub-next/slides-core/dist/enums.js +2 -0
  259. package/node_modules/@allyhub-next/slides-core/dist/file.d.ts +109 -0
  260. package/node_modules/@allyhub-next/slides-core/dist/file.js +4 -0
  261. package/node_modules/@allyhub-next/slides-core/dist/index.d.ts +21 -0
  262. package/node_modules/@allyhub-next/slides-core/dist/index.js +2 -0
  263. package/node_modules/@allyhub-next/slides-core/dist/measure.d.ts +34 -0
  264. package/node_modules/@allyhub-next/slides-core/dist/measure.js +2 -0
  265. package/node_modules/@allyhub-next/slides-core/dist/model.d.ts +278 -0
  266. package/node_modules/@allyhub-next/slides-core/dist/model.js +2 -0
  267. package/node_modules/@allyhub-next/slides-core/dist/office.d.ts +58 -0
  268. package/node_modules/@allyhub-next/slides-core/dist/office.js +2 -0
  269. package/node_modules/@allyhub-next/slides-core/dist/path.d.ts +6 -0
  270. package/node_modules/@allyhub-next/slides-core/dist/path.js +2 -0
  271. package/node_modules/@allyhub-next/slides-core/dist/placeholders.d.ts +7 -0
  272. package/node_modules/@allyhub-next/slides-core/dist/placeholders.js +2 -0
  273. package/node_modules/@allyhub-next/slides-core/dist/resolve.d.ts +181 -0
  274. package/node_modules/@allyhub-next/slides-core/dist/resolve.js +2 -0
  275. package/node_modules/@allyhub-next/slides-core/dist/script.d.ts +43 -0
  276. package/node_modules/@allyhub-next/slides-core/dist/script.js +3 -0
  277. package/node_modules/@allyhub-next/slides-core/dist/stage.d.ts +63 -0
  278. package/node_modules/@allyhub-next/slides-core/dist/stage.js +2 -0
  279. package/node_modules/@allyhub-next/slides-core/dist/strict.d.ts +23 -0
  280. package/node_modules/@allyhub-next/slides-core/dist/strict.js +2 -0
  281. package/node_modules/@allyhub-next/slides-core/dist/theme.d.ts +72 -0
  282. package/node_modules/@allyhub-next/slides-core/dist/theme.js +2 -0
  283. package/node_modules/@allyhub-next/slides-core/dist/units.d.ts +35 -0
  284. package/node_modules/@allyhub-next/slides-core/dist/units.js +2 -0
  285. package/node_modules/@allyhub-next/slides-core/package.json +14 -0
  286. package/node_modules/@allyhub-next/slides-pptx/LICENSE +241 -0
  287. package/node_modules/@allyhub-next/slides-pptx/dist/charts.d.ts +6 -0
  288. package/node_modules/@allyhub-next/slides-pptx/dist/charts.js +2 -0
  289. package/node_modules/@allyhub-next/slides-pptx/dist/fonts.d.ts +45 -0
  290. package/node_modules/@allyhub-next/slides-pptx/dist/fonts.js +2 -0
  291. package/node_modules/@allyhub-next/slides-pptx/dist/import.d.ts +18 -0
  292. package/node_modules/@allyhub-next/slides-pptx/dist/import.js +3 -0
  293. package/node_modules/@allyhub-next/slides-pptx/dist/index.d.ts +5 -0
  294. package/node_modules/@allyhub-next/slides-pptx/dist/index.js +2 -0
  295. package/node_modules/@allyhub-next/slides-pptx/dist/read.d.ts +55 -0
  296. package/node_modules/@allyhub-next/slides-pptx/dist/read.js +4 -0
  297. package/node_modules/@allyhub-next/slides-pptx/dist/shapes.d.ts +67 -0
  298. package/node_modules/@allyhub-next/slides-pptx/dist/shapes.js +2 -0
  299. package/node_modules/@allyhub-next/slides-pptx/dist/text.d.ts +21 -0
  300. package/node_modules/@allyhub-next/slides-pptx/dist/text.js +2 -0
  301. package/node_modules/@allyhub-next/slides-pptx/dist/theme.d.ts +4 -0
  302. package/node_modules/@allyhub-next/slides-pptx/dist/theme.js +2 -0
  303. package/node_modules/@allyhub-next/slides-pptx/dist/timing.d.ts +32 -0
  304. package/node_modules/@allyhub-next/slides-pptx/dist/timing.js +2 -0
  305. package/node_modules/@allyhub-next/slides-pptx/dist/write.d.ts +32 -0
  306. package/node_modules/@allyhub-next/slides-pptx/dist/write.js +3 -0
  307. package/node_modules/@allyhub-next/slides-pptx/dist/xml.d.ts +26 -0
  308. package/node_modules/@allyhub-next/slides-pptx/dist/xml.js +3 -0
  309. package/node_modules/@allyhub-next/slides-pptx/package.json +14 -0
  310. package/node_modules/@allyhub-next/slides-runtime/LICENSE +241 -0
  311. package/node_modules/@allyhub-next/slides-runtime/dist/draw.d.ts +40 -0
  312. package/node_modules/@allyhub-next/slides-runtime/dist/draw.js +3 -0
  313. package/node_modules/@allyhub-next/slides-runtime/dist/edit.d.ts +4 -0
  314. package/node_modules/@allyhub-next/slides-runtime/dist/edit.js +2 -0
  315. package/node_modules/@allyhub-next/slides-runtime/dist/index.d.ts +4 -0
  316. package/node_modules/@allyhub-next/slides-runtime/dist/index.js +2 -0
  317. package/node_modules/@allyhub-next/slides-runtime/dist/ink.d.ts +10 -0
  318. package/node_modules/@allyhub-next/slides-runtime/dist/ink.js +2 -0
  319. package/node_modules/@allyhub-next/slides-runtime/dist/load.d.ts +6 -0
  320. package/node_modules/@allyhub-next/slides-runtime/dist/load.js +6 -0
  321. package/node_modules/@allyhub-next/slides-runtime/package.json +14 -0
  322. package/node_modules/@allyhub-next/stage/dist/graphics.js +1 -1
  323. package/node_modules/@allyhub-next/stage/dist/identity.js +1 -1
  324. package/node_modules/@allyhub-next/stage/dist/page.d.ts +9 -0
  325. package/node_modules/@allyhub-next/stage/dist/page.js +12 -2
  326. package/node_modules/@allyhub-next/stage/dist/server.js +1 -1
  327. package/node_modules/@allyhub-next/stage/package.json +1 -1
  328. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/400-italic.css +79 -0
  329. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/400.css +79 -0
  330. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/700-italic.css +79 -0
  331. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/700.css +79 -0
  332. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/LICENSE +93 -0
  333. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/arial.css +316 -0
  334. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-400-italic.woff2 +0 -0
  335. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-400-normal.woff2 +0 -0
  336. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-700-italic.woff2 +0 -0
  337. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-700-normal.woff2 +0 -0
  338. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-ext-400-italic.woff2 +0 -0
  339. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-ext-400-normal.woff2 +0 -0
  340. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-ext-700-italic.woff2 +0 -0
  341. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-ext-700-normal.woff2 +0 -0
  342. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-400-italic.woff2 +0 -0
  343. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-400-normal.woff2 +0 -0
  344. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-700-italic.woff2 +0 -0
  345. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-700-normal.woff2 +0 -0
  346. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-ext-400-italic.woff2 +0 -0
  347. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-ext-400-normal.woff2 +0 -0
  348. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-ext-700-italic.woff2 +0 -0
  349. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-ext-700-normal.woff2 +0 -0
  350. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-hebrew-400-italic.woff2 +0 -0
  351. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-hebrew-400-normal.woff2 +0 -0
  352. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-hebrew-700-italic.woff2 +0 -0
  353. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-hebrew-700-normal.woff2 +0 -0
  354. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-400-italic.woff2 +0 -0
  355. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-400-normal.woff2 +0 -0
  356. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-700-italic.woff2 +0 -0
  357. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-700-normal.woff2 +0 -0
  358. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-ext-400-italic.woff2 +0 -0
  359. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-ext-400-normal.woff2 +0 -0
  360. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-ext-700-italic.woff2 +0 -0
  361. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-ext-700-normal.woff2 +0 -0
  362. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-vietnamese-400-italic.woff2 +0 -0
  363. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-vietnamese-400-normal.woff2 +0 -0
  364. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-vietnamese-700-italic.woff2 +0 -0
  365. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-vietnamese-700-normal.woff2 +0 -0
  366. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/400-italic.css +69 -0
  367. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/400.css +69 -0
  368. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/700-italic.css +69 -0
  369. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/700.css +69 -0
  370. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/LICENSE +93 -0
  371. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/calibri.css +276 -0
  372. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-400-italic.woff2 +0 -0
  373. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-400-normal.woff2 +0 -0
  374. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-700-italic.woff2 +0 -0
  375. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-700-normal.woff2 +0 -0
  376. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-ext-400-italic.woff2 +0 -0
  377. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-ext-400-normal.woff2 +0 -0
  378. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-ext-700-italic.woff2 +0 -0
  379. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-ext-700-normal.woff2 +0 -0
  380. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-400-italic.woff2 +0 -0
  381. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-400-normal.woff2 +0 -0
  382. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-700-italic.woff2 +0 -0
  383. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-700-normal.woff2 +0 -0
  384. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-ext-400-italic.woff2 +0 -0
  385. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-ext-400-normal.woff2 +0 -0
  386. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-ext-700-italic.woff2 +0 -0
  387. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-ext-700-normal.woff2 +0 -0
  388. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-400-italic.woff2 +0 -0
  389. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-400-normal.woff2 +0 -0
  390. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-700-italic.woff2 +0 -0
  391. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-700-normal.woff2 +0 -0
  392. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-ext-400-italic.woff2 +0 -0
  393. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-ext-400-normal.woff2 +0 -0
  394. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-ext-700-italic.woff2 +0 -0
  395. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-ext-700-normal.woff2 +0 -0
  396. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-vietnamese-400-italic.woff2 +0 -0
  397. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-vietnamese-400-normal.woff2 +0 -0
  398. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-vietnamese-700-italic.woff2 +0 -0
  399. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-vietnamese-700-normal.woff2 +0 -0
  400. package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/400.css +1 -1
  401. package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/700.css +1 -1
  402. package/node_modules/@allyhub-next/stage-page/dist/fonts/noto-sans-sc/microsoft-yahei.css +2018 -0
  403. package/node_modules/@allyhub-next/stage-page/dist/host.js +21 -0
  404. package/node_modules/@allyhub-next/stage-page/dist/page.js +79 -0
  405. package/node_modules/@allyhub-next/stage-page/package.json +14 -0
  406. package/node_modules/@allyhub-next/video-core/dist/export.d.ts +6 -5
  407. package/node_modules/@allyhub-next/video-core/dist/export.js +1 -1
  408. package/node_modules/@allyhub-next/video-core/dist/fact.d.ts +173 -4
  409. package/node_modules/@allyhub-next/video-core/dist/fact.js +1 -1
  410. package/node_modules/@allyhub-next/video-core/dist/formats.d.ts +6 -13
  411. package/node_modules/@allyhub-next/video-core/dist/formats.js +1 -1
  412. package/node_modules/@allyhub-next/video-core/dist/index.d.ts +0 -1
  413. package/node_modules/@allyhub-next/video-core/dist/index.js +1 -1
  414. package/node_modules/@allyhub-next/video-core/dist/measure.d.ts +83 -0
  415. package/node_modules/@allyhub-next/video-core/dist/piece.d.ts +8 -9
  416. package/node_modules/@allyhub-next/video-core/dist/piece.js +1 -1
  417. package/node_modules/@allyhub-next/video-core/dist/problem.d.ts +9 -1
  418. package/node_modules/@allyhub-next/video-core/dist/problem.js +1 -1
  419. package/node_modules/@allyhub-next/video-core/dist/schema.d.ts +0 -2
  420. package/node_modules/@allyhub-next/video-core/dist/script-edit.d.ts +4 -0
  421. package/node_modules/@allyhub-next/video-core/dist/script.d.ts +8 -0
  422. package/node_modules/@allyhub-next/video-core/dist/script.js +1 -1
  423. package/node_modules/@allyhub-next/video-core/dist/timeline.d.ts +34 -1
  424. package/node_modules/@allyhub-next/video-core/package.json +1 -1
  425. package/package.json +48 -41
  426. package/dist/commands/mcp-app.js +0 -3
  427. package/dist/commands/mcp-docs.js +0 -2
  428. package/dist/commands/mcp.js +0 -2
  429. package/editor-app/view.html +0 -128
  430. package/editor-web/assets/chevron-left-D1vfOP5S.js +0 -1
  431. package/editor-web/assets/chevron-up-BMNXDEBs.js +0 -1
  432. package/editor-web/assets/dist-B4VKfY-H.js +0 -136
  433. package/editor-web/assets/dist-BIEloJVS.js +0 -8
  434. package/editor-web/assets/dist-BcInw4os.js +0 -232
  435. package/editor-web/assets/dist-Coblfc3T.js +0 -1
  436. package/editor-web/assets/floating-ui.react-dom-DSyn5TRd.js +0 -1
  437. package/editor-web/assets/index-BSFR4plz.css +0 -2
  438. package/editor-web/assets/index-Dc8FX_sp.js +0 -56
  439. package/editor-web/assets/react-Bo429Bov.js +0 -61
  440. package/editor-web/assets/undo-2-CWgOKQ3L.js +0 -1
  441. package/node_modules/@allyhub-next/runtime/dist/host.js +0 -21
  442. package/node_modules/@allyhub-next/runtime/dist/page.js +0 -72
  443. package/node_modules/@allyhub-next/runtime/dist/paged.d.ts +0 -16
  444. package/node_modules/@allyhub-next/runtime/dist/paged.js +0 -2
  445. package/node_modules/@allyhub-next/video-core/dist/slides.d.ts +0 -37
  446. package/node_modules/@allyhub-next/video-core/dist/slides.js +0 -2
  447. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-color-emoji/LICENSE +0 -0
  448. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-color-emoji/emoji.css +0 -0
  449. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-color-emoji/files/noto-color-emoji-emoji-400-normal.woff2 +0 -0
  450. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/LICENSE +0 -0
  451. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-100-400-normal.woff2 +0 -0
  452. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-100-700-normal.woff2 +0 -0
  453. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-101-400-normal.woff2 +0 -0
  454. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-101-700-normal.woff2 +0 -0
  455. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-102-400-normal.woff2 +0 -0
  456. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-102-700-normal.woff2 +0 -0
  457. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-103-400-normal.woff2 +0 -0
  458. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-103-700-normal.woff2 +0 -0
  459. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-104-400-normal.woff2 +0 -0
  460. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-104-700-normal.woff2 +0 -0
  461. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-105-400-normal.woff2 +0 -0
  462. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-105-700-normal.woff2 +0 -0
  463. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-106-400-normal.woff2 +0 -0
  464. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-106-700-normal.woff2 +0 -0
  465. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-107-400-normal.woff2 +0 -0
  466. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-107-700-normal.woff2 +0 -0
  467. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-108-400-normal.woff2 +0 -0
  468. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-108-700-normal.woff2 +0 -0
  469. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-109-400-normal.woff2 +0 -0
  470. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-109-700-normal.woff2 +0 -0
  471. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-110-400-normal.woff2 +0 -0
  472. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-110-700-normal.woff2 +0 -0
  473. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-111-400-normal.woff2 +0 -0
  474. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-111-700-normal.woff2 +0 -0
  475. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-112-400-normal.woff2 +0 -0
  476. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-112-700-normal.woff2 +0 -0
  477. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-113-400-normal.woff2 +0 -0
  478. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-113-700-normal.woff2 +0 -0
  479. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-114-400-normal.woff2 +0 -0
  480. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-114-700-normal.woff2 +0 -0
  481. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-115-400-normal.woff2 +0 -0
  482. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-115-700-normal.woff2 +0 -0
  483. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-116-400-normal.woff2 +0 -0
  484. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-116-700-normal.woff2 +0 -0
  485. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-117-400-normal.woff2 +0 -0
  486. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-117-700-normal.woff2 +0 -0
  487. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-118-400-normal.woff2 +0 -0
  488. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-118-700-normal.woff2 +0 -0
  489. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-119-400-normal.woff2 +0 -0
  490. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-119-700-normal.woff2 +0 -0
  491. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-21-400-normal.woff2 +0 -0
  492. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-21-700-normal.woff2 +0 -0
  493. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-22-400-normal.woff2 +0 -0
  494. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-22-700-normal.woff2 +0 -0
  495. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-23-400-normal.woff2 +0 -0
  496. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-23-700-normal.woff2 +0 -0
  497. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-24-400-normal.woff2 +0 -0
  498. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-24-700-normal.woff2 +0 -0
  499. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-25-400-normal.woff2 +0 -0
  500. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-25-700-normal.woff2 +0 -0
  501. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-26-400-normal.woff2 +0 -0
  502. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-26-700-normal.woff2 +0 -0
  503. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-27-400-normal.woff2 +0 -0
  504. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-27-700-normal.woff2 +0 -0
  505. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-28-400-normal.woff2 +0 -0
  506. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-28-700-normal.woff2 +0 -0
  507. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-29-400-normal.woff2 +0 -0
  508. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-29-700-normal.woff2 +0 -0
  509. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-30-400-normal.woff2 +0 -0
  510. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-30-700-normal.woff2 +0 -0
  511. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-31-400-normal.woff2 +0 -0
  512. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-31-700-normal.woff2 +0 -0
  513. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-32-400-normal.woff2 +0 -0
  514. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-32-700-normal.woff2 +0 -0
  515. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-33-400-normal.woff2 +0 -0
  516. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-33-700-normal.woff2 +0 -0
  517. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-34-400-normal.woff2 +0 -0
  518. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-34-700-normal.woff2 +0 -0
  519. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-35-400-normal.woff2 +0 -0
  520. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-35-700-normal.woff2 +0 -0
  521. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-36-400-normal.woff2 +0 -0
  522. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-36-700-normal.woff2 +0 -0
  523. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-37-400-normal.woff2 +0 -0
  524. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-37-700-normal.woff2 +0 -0
  525. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-38-400-normal.woff2 +0 -0
  526. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-38-700-normal.woff2 +0 -0
  527. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-39-400-normal.woff2 +0 -0
  528. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-39-700-normal.woff2 +0 -0
  529. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-4-400-normal.woff2 +0 -0
  530. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-4-700-normal.woff2 +0 -0
  531. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-40-400-normal.woff2 +0 -0
  532. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-40-700-normal.woff2 +0 -0
  533. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-41-400-normal.woff2 +0 -0
  534. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-41-700-normal.woff2 +0 -0
  535. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-42-400-normal.woff2 +0 -0
  536. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-42-700-normal.woff2 +0 -0
  537. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-43-400-normal.woff2 +0 -0
  538. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-43-700-normal.woff2 +0 -0
  539. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-44-400-normal.woff2 +0 -0
  540. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-44-700-normal.woff2 +0 -0
  541. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-45-400-normal.woff2 +0 -0
  542. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-45-700-normal.woff2 +0 -0
  543. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-46-400-normal.woff2 +0 -0
  544. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-46-700-normal.woff2 +0 -0
  545. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-47-400-normal.woff2 +0 -0
  546. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-47-700-normal.woff2 +0 -0
  547. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-48-400-normal.woff2 +0 -0
  548. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-48-700-normal.woff2 +0 -0
  549. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-49-400-normal.woff2 +0 -0
  550. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-49-700-normal.woff2 +0 -0
  551. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-5-400-normal.woff2 +0 -0
  552. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-5-700-normal.woff2 +0 -0
  553. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-50-400-normal.woff2 +0 -0
  554. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-50-700-normal.woff2 +0 -0
  555. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-51-400-normal.woff2 +0 -0
  556. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-51-700-normal.woff2 +0 -0
  557. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-52-400-normal.woff2 +0 -0
  558. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-52-700-normal.woff2 +0 -0
  559. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-53-400-normal.woff2 +0 -0
  560. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-53-700-normal.woff2 +0 -0
  561. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-54-400-normal.woff2 +0 -0
  562. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-54-700-normal.woff2 +0 -0
  563. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-55-400-normal.woff2 +0 -0
  564. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-55-700-normal.woff2 +0 -0
  565. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-56-400-normal.woff2 +0 -0
  566. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-56-700-normal.woff2 +0 -0
  567. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-57-400-normal.woff2 +0 -0
  568. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-57-700-normal.woff2 +0 -0
  569. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-58-400-normal.woff2 +0 -0
  570. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-58-700-normal.woff2 +0 -0
  571. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-59-400-normal.woff2 +0 -0
  572. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-59-700-normal.woff2 +0 -0
  573. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-6-400-normal.woff2 +0 -0
  574. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-6-700-normal.woff2 +0 -0
  575. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-60-400-normal.woff2 +0 -0
  576. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-60-700-normal.woff2 +0 -0
  577. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-61-400-normal.woff2 +0 -0
  578. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-61-700-normal.woff2 +0 -0
  579. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-62-400-normal.woff2 +0 -0
  580. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-62-700-normal.woff2 +0 -0
  581. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-63-400-normal.woff2 +0 -0
  582. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-63-700-normal.woff2 +0 -0
  583. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-64-400-normal.woff2 +0 -0
  584. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-64-700-normal.woff2 +0 -0
  585. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-65-400-normal.woff2 +0 -0
  586. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-65-700-normal.woff2 +0 -0
  587. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-66-400-normal.woff2 +0 -0
  588. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-66-700-normal.woff2 +0 -0
  589. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-67-400-normal.woff2 +0 -0
  590. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-67-700-normal.woff2 +0 -0
  591. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-68-400-normal.woff2 +0 -0
  592. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-68-700-normal.woff2 +0 -0
  593. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-69-400-normal.woff2 +0 -0
  594. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-69-700-normal.woff2 +0 -0
  595. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-70-400-normal.woff2 +0 -0
  596. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-70-700-normal.woff2 +0 -0
  597. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-71-400-normal.woff2 +0 -0
  598. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-71-700-normal.woff2 +0 -0
  599. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-72-400-normal.woff2 +0 -0
  600. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-72-700-normal.woff2 +0 -0
  601. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-73-400-normal.woff2 +0 -0
  602. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-73-700-normal.woff2 +0 -0
  603. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-74-400-normal.woff2 +0 -0
  604. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-74-700-normal.woff2 +0 -0
  605. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-75-400-normal.woff2 +0 -0
  606. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-75-700-normal.woff2 +0 -0
  607. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-76-400-normal.woff2 +0 -0
  608. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-76-700-normal.woff2 +0 -0
  609. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-77-400-normal.woff2 +0 -0
  610. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-77-700-normal.woff2 +0 -0
  611. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-78-400-normal.woff2 +0 -0
  612. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-78-700-normal.woff2 +0 -0
  613. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-79-400-normal.woff2 +0 -0
  614. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-79-700-normal.woff2 +0 -0
  615. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-80-400-normal.woff2 +0 -0
  616. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-80-700-normal.woff2 +0 -0
  617. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-81-400-normal.woff2 +0 -0
  618. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-81-700-normal.woff2 +0 -0
  619. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-82-400-normal.woff2 +0 -0
  620. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-82-700-normal.woff2 +0 -0
  621. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-83-400-normal.woff2 +0 -0
  622. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-83-700-normal.woff2 +0 -0
  623. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-84-400-normal.woff2 +0 -0
  624. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-84-700-normal.woff2 +0 -0
  625. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-85-400-normal.woff2 +0 -0
  626. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-85-700-normal.woff2 +0 -0
  627. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-86-400-normal.woff2 +0 -0
  628. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-86-700-normal.woff2 +0 -0
  629. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-87-400-normal.woff2 +0 -0
  630. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-87-700-normal.woff2 +0 -0
  631. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-88-400-normal.woff2 +0 -0
  632. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-88-700-normal.woff2 +0 -0
  633. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-89-400-normal.woff2 +0 -0
  634. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-89-700-normal.woff2 +0 -0
  635. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-90-400-normal.woff2 +0 -0
  636. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-90-700-normal.woff2 +0 -0
  637. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-91-400-normal.woff2 +0 -0
  638. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-91-700-normal.woff2 +0 -0
  639. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-97-400-normal.woff2 +0 -0
  640. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-97-700-normal.woff2 +0 -0
  641. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-98-400-normal.woff2 +0 -0
  642. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-98-700-normal.woff2 +0 -0
  643. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-99-400-normal.woff2 +0 -0
  644. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-99-700-normal.woff2 +0 -0
  645. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-cyrillic-400-normal.woff2 +0 -0
  646. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-cyrillic-700-normal.woff2 +0 -0
  647. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-latin-400-normal.woff2 +0 -0
  648. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-latin-700-normal.woff2 +0 -0
  649. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-latin-ext-400-normal.woff2 +0 -0
  650. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-latin-ext-700-normal.woff2 +0 -0
  651. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-vietnamese-400-normal.woff2 +0 -0
  652. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-vietnamese-700-normal.woff2 +0 -0
  653. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/host.d.ts +0 -0
@@ -1,4 +1,4 @@
1
1
  /*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
2
- import{z as r}from"zod";import{EXIT as m}from"@allyhub-next/protocol";import{RegistryError as y}from"@allyhub-next/registry";import{workSkills as b}from"@allyhub-next/scaffold";import{CommandError as d,defineCommand as f}from"../command.js";import{resourcesIndex as p}from"../resources.js";const w="Check the connection and run the same command again.";function k(i){if(i.index===void 0)throw new d("no-registry",`AllyHub's skills could not be read from ${i.source.name}.`,{exit:m.platform,hint:w})}export const skills=f({name:"skills",summary:"Lists AllyHub's work skills, each how to make one kind of work, with what it is for: allyhub skills show <name> prints one, allyhub add <name> puts it in the project",input:r.strictObject({}),output:r.looseObject({}),examples:["allyhub skills","allyhub skills show product-demos"]},async(i,c)=>{const s=await p(c);k(s);const a=b(s.index.items).map(t=>{const l=s.index.items.find(h=>h.name===t.name)?.version;return{...t,...l===void 0?{}:{version:l}}}),e=s.from==="stale",o=Math.max(0,...a.map(t=>t.name.length));return{value:{skills:a,stale:e},text:[`AllyHub's work skills (allyhub skills show <name> prints one; allyhub add <name> puts it in the project, in .agents/skills)${e?", as last read (the registry cannot be read now)":""}:`,...a.length===0?[" none"]:a.map(t=>` ${t.name.padEnd(o)} ${t.description}`)].join(`
3
- `)}}),skillsShow=f({name:"skills show",summary:"Prints one of AllyHub's skills in full, its SKILL.md and the names of its other files, without adding it to the project",input:r.strictObject({name:r.string().min(1).describe("The skill, as allyhub skills lists it (product-demos)")}),positional:["name"],output:r.looseObject({}),examples:["allyhub skills show product-demos"]},async(i,c)=>{const s=await p(c);if(k(s),s.index.items.find(e=>e.name===i.name)?.type!=="allyhub:skill")throw new d("no-item",`AllyHub has no skill ${i.name}.`,{exit:m.notFound,hint:"allyhub skills lists them."});try{const e=await s.source.item(i.name);if(!e)throw new d("no-item",`AllyHub has no skill ${i.name}.`,{exit:m.notFound,hint:"allyhub skills lists them."});const o=`.agents/skills/${e.name}/`,t=n=>n.startsWith(o)?n.slice(o.length):n,l=e.files.find(n=>t(n.target)==="SKILL.md");if(!l)throw new d("bad-registry",`The registry's ${e.name} has no SKILL.md.`);const h=l.content??new TextDecoder().decode(await s.source.file(l.path)),u=e.files.map(n=>t(n.target)).filter(n=>n!=="SKILL.md");return{value:{name:e.name,...e.version===void 0?{}:{version:e.version},skill:h,files:u},text:[h.trimEnd(),"",u.length===0?`It has no other files. allyhub add ${e.name} puts it in ${o}.`:`Its other files, which allyhub add ${e.name} puts beside it in ${o}: ${u.join(", ")}.`].join(`
4
- `)}}catch(e){throw e instanceof y?new d(e.code,e.message,{exit:e.code==="no-registry"?m.platform:m.failed,hint:e.hint??w}):e}});
2
+ import{z as r}from"zod";import{EXIT as m}from"@allyhub-next/protocol";import{RegistryError as y}from"@allyhub-next/registry";import{workSkills as b}from"@allyhub-next/scaffold";import{CommandError as d,defineCommand as f}from"../command.js";import{resourcesIndex as k}from"../resources.js";const p="Check the connection and run the same command again.";function w(i){if(i.index===void 0)throw new d("no-registry",`AllyHub's skills could not be read from ${i.source.name}.`,{exit:m.platform,hint:p})}export const skills=f({name:"skills",summary:"Lists AllyHub's work skills, each how to make one kind of work, with what it is for: allyhub skills show <name> prints one, allyhub add skill/<name> puts it in the project",input:r.strictObject({}),output:r.looseObject({}),examples:["allyhub skills","allyhub skills show product-demos"]},async(i,c)=>{const s=await k(c);w(s);const a=b(s.index.items).map(t=>{const o=s.index.items.find(h=>h.name===t.name)?.version;return{...t,...o===void 0?{}:{version:o}}}),e=s.from==="stale",l=Math.max(0,...a.map(t=>t.name.length));return{value:{skills:a,stale:e},text:[`AllyHub's work skills (allyhub skills show <name> prints one; allyhub add skill/<name> puts it in the project, in .agents/skills)${e?", as last read (the registry cannot be read now)":""}:`,...a.length===0?[" none"]:a.map(t=>` ${t.name.padEnd(l)} ${t.description}`)].join(`
3
+ `)}}),skillsShow=f({name:"skills show",summary:"Prints one of AllyHub's skills in full, its SKILL.md and the names of its other files, without adding it to the project",input:r.strictObject({name:r.string().min(1).describe("The skill, as allyhub skills lists it (product-demos)")}),positional:["name"],output:r.looseObject({}),examples:["allyhub skills show product-demos"]},async(i,c)=>{const s=await k(c);if(w(s),s.index.items.find(e=>e.name===i.name)?.type!=="allyhub:skill")throw new d("no-item",`AllyHub has no skill ${i.name}.`,{exit:m.notFound,hint:"allyhub skills lists them."});try{const e=await s.source.item(i.name);if(!e)throw new d("no-item",`AllyHub has no skill ${i.name}.`,{exit:m.notFound,hint:"allyhub skills lists them."});const l=`.agents/skills/${e.name}/`,t=n=>n.startsWith(l)?n.slice(l.length):n,o=e.files.find(n=>t(n.target)==="SKILL.md");if(!o)throw new d("bad-registry",`The registry's ${e.name} has no SKILL.md.`);const h=o.content??new TextDecoder().decode(await s.source.file(o.path)),u=e.files.map(n=>t(n.target)).filter(n=>n!=="SKILL.md");return{value:{name:e.name,...e.version===void 0?{}:{version:e.version},skill:h,files:u},text:[h.trimEnd(),"",u.length===0?`It has no other files. allyhub add skill/${e.name} puts it in ${l}.`:`Its other files, which allyhub add skill/${e.name} puts beside it in ${l}: ${u.join(", ")}.`].join(`
4
+ `)}}catch(e){throw e instanceof y?new d(e.code,e.message,{exit:e.code==="no-registry"?m.platform:m.failed,hint:e.hint??p}):e}});
@@ -0,0 +1,3 @@
1
+ /*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
2
+ import{mkdir as y,readFile as b,stat as k,writeFile as x}from"node:fs/promises";import{basename as p,dirname as $,join as f,resolve as v}from"node:path";import{z as o}from"zod";import{EXIT as l}from"@allyhub-next/protocol";import{CAPABILITIES as h}from"@allyhub-next/slides-core";import{importDeck as j,nameOf as P,readPptx as O}from"@allyhub-next/slides-pptx";import{CommandError as n,defineCommand as u}from"../command.js";import{dir as I}from"../fields.js";import{projectRoot as T}from"../project.js";export const slidesCapabilities=u({name:"slides capabilities",summary:"What a deck's API holds of python-pptx's (its classes and enums), how it differs and what it adds, as JSON",input:o.strictObject({}),output:o.looseObject({}),examples:["allyhub slides capabilities"]},()=>Promise.resolve({value:{...h},text:JSON.stringify(h,null,2)}));const z=o.string().transform(e=>e.replace(/^\/+|\/+$/gu,"")).refine(e=>e!==""&&!e.split("/").some(a=>a===""||a==="."||a===".."),{message:"a folder from the project's root, such as launch/deck"});export const slidesImport=u({name:"slides import",summary:"Makes a deck of a PowerPoint file: its masters and layouts as slides.ts, its slides as slides.yaml, its words and notes as the script, its pictures and videos in media/; says what it could not hold; never over a place that is taken",input:o.strictObject({file:o.string().describe("The .pptx to make a deck of"),to:z.optional().describe("The deck's folder, from the project's root (default the file's name)"),lang:o.string().regex(/^[a-z]{2,3}(-[a-z0-9]+)*$/u).default("en").describe("The language of its words: the script is script.<lang>.yaml"),dir:I}),positional:["file"],output:o.looseObject({}),examples:["allyhub slides import ~/Downloads/q3-review.pptx --to reviews/q3","allyhub slides import 培训.pptx --to training --lang zh-cn"]},async(e,a)=>{const c=await T(a.cwd,e.dir),r=v(a.cwd,e.file),w=await b(r).catch(()=>{throw new n("not-found",`There is no file ${r}.`,{exit:l.notFound})}),t=e.to??P(p(r).replace(/\.pptx$/iu,""),new Set,"deck");if(await k(f(c,t)).catch(()=>{}))throw new n("place-taken",`${t} is already there.`,{exit:l.conflict,hint:"Name another place with --to."});let i;try{i=j(O(new Uint8Array(w)),{lang:e.lang,source:p(r)})}catch(s){throw new n("bad-file",`${r} is not a PowerPoint file this can read: ${s.message}`,{exit:l.usage})}for(const[s,g]of i.files){const m=f(c,t,s);await y($(m),{recursive:!0}),await x(m,g,{flag:"wx"})}const d=[...i.files.keys()];return{value:{place:t,files:d.map(s=>`${t}/${s}`),lost:i.lost},text:[`Made ${t}/: ${d.join(", ")}`,...i.lost.length>0?["Not carried over:",...i.lost.map(s=>` ${s}`)]:[],`allyhub check, then allyhub frames ${t}, to see it.`].join(`
3
+ `)}});
package/dist/main.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
2
- import{readFileSync as D}from"node:fs";import{EXIT as m,describeCommand as I}from"@allyhub-next/protocol";import{readArgs as R}from"./args.js";import{CommandError as h}from"./command.js";import{COMMAND_SOURCES as M,COMMANDS as x}from"./commands/index.js";import{commandHelp as j,listHelp as T,workHelp as H}from"./help.js";import{sdkDocs as J}from"./sdk-docs.js";import{WORKS as G,cloudNouns as U,workNamed as W,workTitle as E}from"./works.js";const N=JSON.parse(D(new URL("../package.json",import.meta.url),"utf8")).version,F={stdout:t=>process.stdout.write(t),stderr:t=>process.stderr.write(t),cwd:process.cwd(),env:process.env};export function findCommand(t,s=x){let i;for(const c of s){const l=c.spec.name.split(" ");l.every((o,a)=>t[a]===o)&&l.length>(i?.length??0)&&(i={command:c,length:l.length})}return i?{command:i.command,rest:t.slice(i.length)}:{rest:[...t]}}export async function resolveCommand(t,s,i=x,c=M){const l=findCommand(t,i);if(l.command)return l;for(const o of c){const a=await o.resolve(t,s);if(a)return a}return l}const A=t=>({...I(t.spec),...t.about?.value});export async function main(t,s=F,i=x,c=M){const l=t.includes("--json"),o=t.filter(n=>n!=="--json"),a=(n,e)=>{s.stdout(l?`${JSON.stringify(n,null,2)}
3
- `:`${e}
4
- `)},S=i.map(n=>n.spec),b=new AbortController,y={cwd:s.cwd,env:s.env,progress:n=>{s.stderr(`${n}
5
- `)},signal:b.signal};if(o[0]==="--version"||o[0]==="-v")return a({version:N},N),m.ok;if(o.length===0||o[0]==="help"||o[0]==="--help"||o[0]==="-h"){const n=o.slice(1),e=await J(s.cwd).catch(()=>{}),k=async()=>{const r=await Promise.all(c.map(u=>u.nouns(y).catch(()=>{})));return r.some(u=>u===void 0)?void 0:r.flatMap(u=>u??[])};if(n.length===0){const r=await k();return a({version:N,docs:e?.dir,works:G.map(u=>({...u,title:E(u,r)})),commands:S.map(I),made:[...c.flatMap(u=>u.entries),...r??[]]},T(S,c,r,e?.dir)),m.ok}const d=n.length===1?W(n[0]??""):void 0;if(d){const r=d.cloud===void 0?[]:await k();return a({...d,title:E(d,r),...d.cloud===void 0?{}:{cloudWorks:r&&U(d,r)},docsDir:e?.dir},H(d,S,c,e?.dir,r)),m.ok}let p;try{p=await resolveCommand(n,y,i,c)}catch(r){return g(r)}const{command:f,rest:O}=p;return f&&p.list===!0?await C(f,O):!f||O.length>0?g(new h("unknown-command",`allyhub has no command "${n.join(" ")}".`,{exit:m.usage,hint:"allyhub help lists them and the works."})):(a(A(f),j(f.spec,f.about?.lines)),m.ok)}let $;try{$=await resolveCommand(o,y,i,c)}catch(n){return g(n)}const{command:w,rest:v}=$;if(!w)return g(new h("unknown-command",`allyhub has no command "${o[0]??""}".`,{exit:m.usage,hint:"allyhub help lists them."}));if(v.includes("--help")||v.includes("-h"))return a(A(w),j(w.spec,w.about?.lines)),m.ok;return await C(w,v);async function C(n,e){const k=()=>{b.abort(new h("interrupted","Stopped.",{exit:m.interrupted}))};process.once("SIGINT",k);try{const d=R(n.spec,e),p=await n.run(d,y);return a(p.value,p.text),p.exit??m.ok}catch(d){return g(d)}finally{process.off("SIGINT",k)}}function g(n){const e=n instanceof h?n:b.signal.aborted?new h("interrupted","Stopped.",{exit:m.interrupted}):new h("failed",n instanceof Error?n.message:String(n));return l?s.stdout(`${JSON.stringify({error:{code:e.code,message:e.message,...e.hint?{hint:e.hint}:{}}},null,2)}
6
- `):s.stderr(`${e.message}${e.hint?`
7
- ${e.hint}`:""}
8
- `),e.exit}}
2
+ import{EXIT as m,describeCommand as M}from"@allyhub-next/protocol";import{readArgs as T}from"./args.js";import{CLI_VERSION as N}from"./cli-version.js";import{CommandError as w}from"./command.js";import{COMMAND_SOURCES as E,COMMANDS as C}from"./commands/index.js";import{commandHelp as j,listHelp as H,workHelp as R}from"./help.js";import{sdkDocs as W}from"./sdk-docs.js";import{WORKS as G,cloudNouns as J,workNamed as _,workTitle as A}from"./works.js";const K={stdout:e=>process.stdout.write(e),stderr:e=>process.stderr.write(e),cwd:process.cwd(),env:process.env};export function findCommand(e,s=C){let i;for(const c of s){const l=c.spec.name.split(" ");l.every((o,a)=>e[a]===o)&&l.length>(i?.length??0)&&(i={command:c,length:l.length})}return i?{command:i.command,rest:e.slice(i.length)}:{rest:[...e]}}export async function resolveCommand(e,s,i=C,c=E){const l=findCommand(e,i);if(l.command)return l;for(const o of c){const a=await o.resolve(e,s);if(a)return a}return l}const D=e=>({...M(e.spec),...e.about?.value});export async function main(e,s=K,i=C,c=E){const l=e.includes("--json"),o=e.filter(n=>n!=="--json"),a=(n,t)=>{s.stdout(l?`${JSON.stringify(n,null,2)}
3
+ `:`${t}
4
+ `)},b=i.map(n=>n.spec),x=new AbortController,y={cwd:s.cwd,env:s.env,progress:n=>{s.stderr(`${n}
5
+ `)},signal:x.signal};if(o[0]==="--version"||o[0]==="-v")return a({version:N},N),m.ok;if(o.length===0||o[0]==="help"||o[0]==="--help"||o[0]==="-h"){const n=o.slice(1).findIndex(r=>r.startsWith("-")),t=n<0?o.slice(1):o.slice(1,n+1),f=await W(s.cwd).catch(()=>{}),p=async()=>{const r=await Promise.all(c.map(u=>u.nouns(y).catch(()=>{})));return r.some(u=>u===void 0)?void 0:r.flatMap(u=>u??[])};if(t.length===0){const r=await p();return a({version:N,docs:f?.dir,works:G.map(u=>({...u,title:A(u,r)})),commands:b.map(M),made:[...c.flatMap(u=>u.entries),...r??[]]},H(b,c,r,f?.dir)),m.ok}const d=t.length===1?_(t[0]??""):void 0;if(d){const r=d.cloud===void 0?[]:await p();return a({...d,title:A(d,r),...d.cloud===void 0?{}:{cloudWorks:r&&J(d,r)},docsDir:f?.dir},R(d,b,c,f?.dir,r)),m.ok}let S;try{S=await resolveCommand(t,y,i,c)}catch(r){return k(r)}const{command:h,rest:O}=S;return h&&S.list===!0?await $(h,O):!h||O.length>0?k(new w("unknown-command",`allyhub has no command "${t.join(" ")}".`,{exit:m.usage,hint:"allyhub help lists them and the works."})):(a(D(h),j(h.spec,h.about?.lines)),m.ok)}let I;try{I=await resolveCommand(o,y,i,c)}catch(n){return k(n)}const{command:g,rest:v}=I;if(!g)return k(new w("unknown-command",`allyhub has no command "${o[0]??""}".`,{exit:m.usage,hint:"allyhub help lists them."}));if(v.includes("--help")||v.includes("-h"))return a(D(g),j(g.spec,g.about?.lines)),m.ok;return await $(g,v);async function $(n,t){const f=()=>{x.abort(new w("interrupted","Stopped.",{exit:m.interrupted}))};process.once("SIGINT",f);try{const p=T(n.spec,t),d=await n.run(p,y);return a(d.value,d.text),d.exit??m.ok}catch(p){return k(p)}finally{process.off("SIGINT",f)}}function k(n){const t=n instanceof w?n:x.signal.aborted?new w("interrupted","Stopped.",{exit:m.interrupted}):new w("failed",n instanceof Error?n.message:String(n));return l?s.stdout(`${JSON.stringify({error:{code:t.code,message:t.message,...t.hint?{hint:t.hint}:{}}},null,2)}
6
+ `):s.stderr(`${t.message}${t.hint?`
7
+ ${t.hint}`:""}
8
+ `),t.exit}}
@@ -1,6 +1,6 @@
1
1
  /*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
2
- import{FACT_KINDS as z,comboKey as _}from"@allyhub-next/video-core";import{plural as y}from"./plural.js";const L=o=>`"${o.length>40?`${o.slice(0,40)}…`:o}"`,g=o=>`[${o.join(",")}]`,u=o=>`${String(Math.round(o*100))}%`,B=o=>`${(o*100).toFixed(1)}%`,b=o=>`${String(Math.round(o*1e4)/100)}%`,$=o=>o.toFixed(2),x=o=>`${o.layer}${o.z==="behind-person"?" (behind)":o.z==="overlay"?" (overlay)":""} ${L(o.text)} ${g(o.box)}${o.opacity===void 0?"":` at ${u(o.opacity)} opacity`}`,E=o=>x({...o,box:o.ink??o.box});function G(o){return o.output===void 0?o.piece:[o.piece,o.combo?_(o.combo):void 0,o.format].filter(e=>e!==void 0&&e!=="").join(" · ")}function j(o,e,t){const n=k(o,e.start),s=o.t===void 0?0:o.t-e.start;return{line:`${e.layer} ${n(e.start)}–${n(e.end)} s: ${t}`,alike:{what:`${e.layer}: ${t}`,span:[e.start+s,e.end+s]}}}function K(o){switch(o.kind){case"text-speaker":{const e=o.data,t=[e.face?`covers ${u(e.face.ofFace)} of the face ${g(e.face.box)} (${u(e.face.ofText)} of the text's box)`:"",e.person?`${u(e.person.ofText)} of the text's box over the person (${e.person.file})`:""].filter(Boolean);return{key:`${e.text.layer}|${e.text.text}`,value:Math.max(e.face?.ofFace??0,e.person?.ofText??0),line:`${x(e.text)}: ${t.join("; ")}`}}case"text-off-frame":{const e=o.data;return{key:`${e.text.layer}|${e.text.text}`,value:e.share,line:`${x({...e.text,box:e.glyphs})}: ${b(e.share)} of its glyphs outside the ${String(e.frame[0])}×${String(e.frame[1])} frame (${String(e.outside)} px), ${e.edges.map(t=>`${String(t.px)} px past the ${t.side}`).join(", ")}`}}case"text-contrast":{const e=o.data,t=`${String(e.size)} px, weight ${String(e.weight)}${e.shadow?", a shadow":""}${e.stroke?", a stroke":""}`,n=e.footage?`; footage under it, not drawn here: ${e.footage.join(", ")}`:"";if("missing"in e)return{key:`${e.text.layer}|${e.text.text}`,value:0,line:`${x(e.text)}: not measured (${e.missing}: ${e.why}; ${t})${n}`};const s=r=>`${r.toFixed(2)}:1`;return{key:`${e.text.layer}|${e.text.text}`,value:1/Math.max(1,e.ratio.min),line:`${x(e.text)}: ${s(e.ratio.min)} lowest, ${s(e.ratio.low)} at the ${String(e.options.percentile)}th percentile, ${s(e.ratio.median)} median; ${e.fill.join(", ")} over ${e.background.median} (median; ${e.background.atMin} at the lowest), ${t}${e.under?` (its outline counted behind it; under the outline ${s(e.under.ratio.min)} lowest, ${s(e.under.ratio.median)} median, over ${e.under.background.median})`:""}, ${String(e.pixels)} px${e.picture==="final"?", final picture":""}${n}`}}case"text-covered":{const e=o.data,t=e.covered;return{key:`${e.text.layer}|${e.text.text}`,value:Math.max(...e.edges.map(n=>n.px)),line:`${x(e.text)}: ${e.edges.map(n=>`${String(n.px)} px into the ${n.side}`).join(", ")} (${e.profile??"covered"}: top ${String(t.top)}, bottom ${String(t.bottom)}, left ${String(t.left)}, right ${String(t.right)})`}}case"text-overlap":{const e=o.data;return{key:`${e.a.layer}|${e.a.text}|${e.b.layer}|${e.b.text}`,value:e.share,line:`${x(e.a)} × ${x(e.b)}: ${u(e.share)} of the smaller box`}}case"text-overlap-own":{const e=o.data;return{key:`${e.a.layer}|${e.a.text}|${e.b.text}`,value:e.share,line:`${E(e.a)} × ${E(e.b)}: ${u(e.share)} of the smaller glyph box`}}case"text-outside":{const e=o.data;return{key:`${e.text.layer}|${e.text.text}|${g(e.container.box)}`,value:Math.max(...e.edges.map(t=>t.px)),line:`${E(e.text)}: ${e.edges.map(t=>`${String(t.px)} px past the ${t.side}`).join(", ")} of the box ${g(e.container.box)} (${e.container.paint.join(", ")})`}}case"text-time":{const e=o.data,t=e.seconds>0?`${(e.words/e.seconds).toFixed(1)} words/s`:"never whole",n=e.spans.map(([s,r])=>`${$(s)}–${$(r)}`).join(", ");return{key:`${e.text.layer}|${e.text.text}|${g(e.text.box)}`,value:e.seconds>0?e.words/e.seconds:e.words,line:`${x(e.text)}: ${y(e.words,"word")} (${String(e.chars)} characters) whole for ${$(e.seconds)} s${n?` (${n} s)`:""}, ${t}; on screen ${$(e.onScreen)} s${e.size?`; ${String(e.size.px)} px, ${String(e.size.phone)} pt on a ${String(e.options.phone[0])}-point phone${e.size.lowercase?`, lowercase ${String(e.size.lowercase.px)} px, ${String(e.size.lowercase.phone)} pt`:""}`:""}`}}case"words-on-screen":{const e=o.data,t=e.steps.map(n=>`${$(n.t)} s ${String(n.words)}`);return{key:o.part??"",value:e.words,line:`at most ${y(e.words,"word")} (${String(e.chars)} characters) whole at once, in ${y(e.texts,"text")}, ${$(e.from)}–${$(e.until)} s; from each change on: ${t.join(", ")}`}}case"footage-scale":{const e=o.data,t=e.shown[0]===e.source[0]&&e.shown[1]===e.source[1]?"":`, ${String(e.shown[0])}×${String(e.shown[1])} of it shown`,{min:n,max:s}=e,r=n.scale===s.scale?`${String(s.scale)}× throughout (${s.from.join(", ")})`:`${String(n.scale)}×–${String(s.scale)}× (smallest at ${$(n.t)} s: ${n.from.join(", ")}; largest at ${$(s.t)} s: ${s.from.join(", ")})`;return{key:`${e.file}|${o.part??""}`,value:s.scale,line:`${e.file} (${String(e.source[0])}×${String(e.source[1])}${t}): ${r}`}}case"free-bands":{const e=o.data,t=r=>r.length===0?"none":r.map(([i,d])=>`${String(i)}–${String(d)}`).join(", "),n=r=>r.length===0?"none":r.map(i=>`${String(i.y[0])}–${String(i.y[1])} (${String(i.height)} px)`).join(", "),s=(r,i)=>"missing"in i?` ${r}: not measured (no ${i.missing==="face-track"?"face track":"person matte"} for ${i.files.join(", ")} in the media index)`:` ${r}${i.speaker===void 0?"":` (face ${String(i.speaker)})`}, seen at ${String(i.seen)} of ${String(e.moments.length)} moments: rows ${t(i.rows)}; free ${n(i.bands)}`;return{key:"bands",value:e.bands.reduce((r,i)=>r+i.height,0),line:[`inside the covered edges: rows ${String(e.content.y[0])}–${String(e.content.y[1])}, columns ${String(e.content.x[0])}–${String(e.content.x[1])}${e.profile?` (${e.profile})`:""}, ${String(e.moments.length)} moments ${$(e.moments[0]??0)}–${$(e.moments.at(-1)??0)} s; free of everything measured: ${n(e.bands)}`,s("face box",e.face),s("person matte",e.person)].join(`
3
- `)}}case"flat-frames":{const e=o.data;return{key:String(e.start),value:e.frames,line:`${String(e.frames)}${e.longer?" or more":""} frames of flat ${e.shade} (luma ${String(e.luma)}) to ${$(e.end)} s (flat: luminance deviation at most ${String(e.options.maxStd)}; runs of ${String(e.options.minFrames)} frames or more, more than ${String(e.options.sameLuma)} levels from the picture around)`}}case"still-picture":{const e=o.data,t=e.footage?`; footage not compared: ${e.footage.map(n=>`${n.file} ${$(n.start)}–${$(n.end)} s`).join(", ")}`:"";return{key:String(e.start),value:e.seconds,line:`${$(e.seconds)} s still, ${$(e.start)}–${$(e.end)} s${e.toEnd?" (to the last frame)":""}, through ${e.parts.join(", ")}: at most ${b(e.change)} of the picture changed from its start (mean ${String(e.mean)} of 255), ${b(e.drift.change)} at its end${t}`}}case"cut-seam":{const e=o.data,t=r=>`${r.turn===void 0?"":`turns ${String(r.turn)}°, `}${String(r.speed[0])} → ${String(r.speed[1])} px/s`,n=e.transition?`, a ${e.transition.type} ${$(e.transition.start)}–${$(e.transition.end)} s between`:"",s=[`${e.before.part} → ${e.after.part}${n}: the largest moving thing ${t(e.change.lead)}; everything moving ${t(e.change.overall)}${e.change.picture?`; the picture ${t(e.change.picture)}`:""}`,O("before",e.before),O("after",e.after),...e.carriers.map(r=>` named alike: ${r.name} ${g(r.before)} → ${g(r.after)}, ${String(r.distance)} px apart, size ×${String(r.size)}, ${String(r.speed[0])} → ${String(r.speed[1])} px/s`)];return{key:String(e.at),value:Math.abs(e.change.lead.turn??0),line:s.join(`
4
- `)}}case"flash":{const e=o.data,t=n=>`${b(n.share)} (mean ${String(n.mean)})`;return{key:String(e.start),value:e.foreign.share,line:`${y(e.frames,"frame")} ${$(e.start)}–${$(e.end)} s${e.join===void 0?"":` (the join at ${$(e.join)} s)`}${e.transition?` in a ${e.transition.type} from ${e.transition.from} to ${e.transition.to}`:""}: ${t(e.foreign)} of its pixels outside what the frames beside it span; against the frame before ${t(e.before)}, the frame after ${t(e.after)}, those two against each other ${t(e.across)}${e.own?`; on its own side of the cut (${e.own.side} it), against the next frame of its shot ${t(e.own.step)}, while that shot changes ${t(e.own.usual)} a frame`:""}`}}case"music-length":{const e=o.data;return{key:e.file,value:e.without,line:`${e.file}: ${e.music.toFixed(1)} s of music${e.from===void 0?"":` (from ${e.from.toFixed(1)} s in)`}${e.loop?", looped":""}, ${e.video.toFixed(1)} s of video${e.without>0?`, the last ${e.without.toFixed(1)} s without music`:""}${e.estimated?" (put together from its parts)":""}`}}case"join-loudness":{const e=o.data,t=e.estimated?" (put together from its parts)":"";return"missing"in e?{key:`${e.before}|${e.after}`,value:0,line:`${e.before} → ${e.after}: not measured (${e.missing}: ${e.why})${t}`}:{key:`${e.before}|${e.after}`,value:Math.abs(e.difference),line:`${e.before} → ${e.after}: ${e.beforeLufs.toFixed(1)} → ${e.afterLufs.toFixed(1)} LUFS (${e.difference>0?"+":""}${e.difference.toFixed(1)} LU)${t}`}}case"matrix-coverage":{const e=o.data;return{key:"matrix",value:e.candidates.filter(n=>n.combos.length===0).length,line:[`${e.choice==="combos"?"named in matrix.combos":e.pick===void 0?"every combo asked for":`pick ${String(e.pick)}`}; ${e.possible===void 0?"possible not counted":`${String(e.possible)} possible`}, ${String(e.chosen)} chosen`,...e.candidates.map(n=>` ${n.slot}=${n.candidate}: ${n.combos.length>0?n.combos.join(", "):"in no combo"}`)].join(`
5
- `)}}case"generated-media":{const e=o.data,t=n=>n.start===void 0?"":n.end===void 0||n.end===n.start?` at ${$(n.start)} s`:` ${$(n.start)}–${$(n.end)} s`;return{key:"generated",value:e.files.length,line:[`${y(e.files.length,"generated file")}${e.duration===void 0?"":` in ${e.duration.toFixed(1)} s of video`}${e.estimated?" (put together from its parts)":""}`,...e.files.map(n=>` ${n.file} (${[n.kind,n.tool,n.model,n.at].filter(Boolean).join(", ")}${n.mismatch?"; its record is another file's":""})${n.seconds===void 0?"":`, ${n.seconds.toFixed(1)} s`}: ${n.uses.map(s=>`${s.as}${s.part?` in ${s.part}`:""}${t(s)}`).join("; ")}`)].join(`
6
- `)}}case"gen-mismatch":{const e=o.data;return{key:e.file,value:1,line:e.why==="sha256"?`${e.file}: ${e.record} records sha256 ${e.recorded.slice(0,12)}…, the file's is ${e.actual.slice(0,12)}… (the record was moved without its file, or the file changed)`:`${e.file}: ${e.record} cannot be read (${e.error})`}}case"graphics-under-footage":{const e=o.data;return{key:e.layers.map(t=>t.component).join("+"),value:e.covered,line:`${e.layers.map(t=>`${t.component} ${$(t.start)}–${$(t.end)} s`).join(", ")} under ${e.footage.map(t=>`${t.file} ${g(t.box)} (${u(t.frame)} of the frame, ${$(t.start)}–${$(t.end)} s)`).join(", ")}`}}case"fallback":{const e=o.data,t={"face-track":"no face track",face:`no face ${String(e.face??"")} in the face track`,"person-matte":"no person matte","own-footage":"no footage of the part's own take",tempo:"no tempo (no bpm given, none measured)"}[e.missing],n={reframe:"the reframe",speaker:"the layer's speaker","behind-person":"a layer behind the person",background:"the footage's background",snap:"music.snap","music-play":"the music's beats and bars (music.play, music.loop)","music-end":"music.end"}[e.for],s={centred:"drawn centred","in-front":"drawn in front",unprocessed:"the footage shown as it is","not-snapped":"parts without speech keep their own length","played-once":"the file played once","film-end":"the music ends with the film"}[e.fallback];return{key:`${e.file??""}|${e.missing}|${String(e.face??"")}`,value:1,line:`${e.file?`${e.file}: `:""}${t} for ${n}; ${s}`}}case"scenery-contact":{const e=o.data,t=e.missing?[`not measured: ${e.missing}`]:e.crossing?[`crossing along ${m(e.curve??0)}`,e.depth!==void 0?`at least ${m(e.depth)} deep`:"",e.lift!==void 0?P(e.a,e.b,e.lift,"up"):"",e.volume!==void 0?`sharing ${e.volume.toExponential(3)} m³`:e.volumeMissing?`volume not measured: ${e.volumeMissing}`:""]:e.within?[`${e.within==="a in b"?e.a:e.b} inside the other`,e.depth!==void 0?`at least ${m(e.depth)} deep`:""]:[e.area!==void 0?`touching, sharing ${e.area.toFixed(4)} m²`:`${m(e.gap??0)} apart`];return{key:`${e.layer}|${e.a}|${e.b}`,value:e.depth??e.curve??0,...j(o,e,`${e.a} and ${e.b}: ${t.filter(Boolean).join("; ")}`)}}case"scenery-support":{const e=o.data,t=e.gap===null?"nothing below":e.gap<0?`sunk ${m(-e.gap)}`:`${m(e.gap)} above`;return{key:`${e.layer}|${e.object}`,value:Math.abs(e.gap??0),...j(o,e,`${e.object}: ${t}${e.on.length?` ${e.on.join(", ")}`:""}; ${u(e.footprintShare)} of its footprint in contact${e.margin!==void 0?`; centre of mass ${m(Math.abs(e.margin))} ${e.margin>=0?"inside":"outside"} the contact`:""}${e.nothingBelow?`; nothing below in ${String(e.nothingBelow)} columns`:""}`)}}case"scenery-bake":{const e=o.data,t=e.laid?`bake laid (made on ${e.bakedOn??e.renderer})`:`drawn unbaked: no bake for its scene (digest ${e.digest}, on ${e.renderer} or the CPU); ${e.elsewhere?.length?`one was made only on ${e.elsewhere.join(", ")}, which this renderer does not lay`:e.stale?"it was baked before, so the scene changed since":"it was never baked"}; ${e.command??"allyhub scenery bake"} makes it`;return{key:`${e.layer}|${e.digest}`,value:e.laid?0:1,...j(o,e,t)}}case"mesh-health":{const e=o.data,t=[e.closed?"closed":"open",e.openEdges?`${String(e.openEdges)} open edges`:"",e.nonManifoldEdges?`${String(e.nonManifoldEdges)} non-manifold edges`:"",e.degenerate?`${String(e.degenerate)} triangles without area`:"",e.selfIntersections?`${String(e.selfIntersections)} self-intersecting pairs`:""].filter(Boolean);return{key:`${e.layer}|${e.object}`,value:e.openEdges+e.nonManifoldEdges+e.degenerate+(e.selfIntersections??0),...j(o,e,`${e.object}: ${t.join(", ")}`)}}case"camera-clearance":{const e=o.data,t=k(o,e.start),n=[e.nearest?`nearest surface ${e.nearest.object} ${m(e.nearest.distance)} at ${t(e.nearest.t)} s`:"",...e.inside.map(s=>`inside ${s.object}${s.closed?"":" (open: a vote)"} from ${t(s.from)} to ${t(s.to)} s`),...e.nearCut.map(s=>`near plane cuts ${s.object} from ${t(s.from)} to ${t(s.to)} s`)].filter(Boolean);return{key:`${e.layer}|${String(e.start)}`,value:e.inside.length+e.nearCut.length,line:`${e.layer} ${t(e.start)}–${t(e.end)} s: ${n.join("; ")}`}}case"camera-motion":{const e=o.data,t=e.peaks,n=k(o,e.start),s=(r,i)=>`${r.peak.toFixed(2)} ${i} at ${n(r.at)} s`;return{key:`${e.layer}|${String(e.start)}`,value:t.speed.peak,line:`${e.layer} ${n(e.start)}–${n(e.end)} s: ${m(e.length)} travelled; speed ${s(t.speed,"m/s")}, truck ${s(t.truck,"m/s")}, pedestal ${s(t.pedestal,"m/s")}, dolly ${s(t.dolly,"m/s")}, pan ${s(t.pan,"°/s")}, tilt ${s(t.tilt,"°/s")}, roll ${s(t.roll,"°/s")}, zoom ${s(t.zoom,"stops/s")}, view turning ${s(t.turn,"°/s")}, acceleration ${s(t.acceleration,"m/s²")}, jerk ${s(t.jerk,"m/s³")}; smoothness ${e.smoothness===null?"not measured":e.smoothness.toFixed(2)}; largest step ${m(e.step.distance)} and ${e.step.angle.toFixed(2)}° at ${n(e.step.at)} s${e.cuts?.length?`; ${y(e.cuts.length,"cut")} at ${e.cuts.map(r=>`${n(r)} s`).join(", ")} (not measured across)`:""} (${String(e.fps)} samples a second)`}}case"scenery-screen":{const e=o.data,t=k(o,e.start),n=(i,d,l=1)=>i?`${(i.least*l).toFixed(2)}${d} at ${t(i.leastAt)} s to ${(i.most*l).toFixed(2)}${d} at ${t(i.mostAt)} s`:"not shown",s=e.shown.length===0?"never on the frame":`on the frame ${e.shown.map(i=>`${t(i.from)}–${t(i.to)} s`).join(", ")}`,r=e.hidden?.by.map(i=>`${i.object} ${String(Math.round(i.share*100))}%`).join(", ");return{key:`${e.layer} ${e.screen}|${String(e.start)}`,value:e.scale?.least??0,line:`${e.layer} ${e.screen} (${String(e.size[0])}×${String(e.size[1])}) ${t(e.start)}–${t(e.end)} s: ${s}; share of the box ${n(e.share,"%",100)}; scale ${n(e.scale,"×")} frame px per content px; angle ${n(e.angle,"°")}; hidden ${n(e.hidden,"%",100)}${r?` (at the most by ${r})`:""}${e.blur?`; blur ${n(e.blur," px")} (the circle of confusion across it)`:""}${e.moire?`; moiré ${n(e.moire,"%",100)} deep${e.moire.period!==void 0?`, bands ${e.moire.period.toFixed(1)} px apart at the deepest`:""}`:""}${e.drawn?e.drawn.in==="scenery"?`; drawn in the scenery at ${String(e.drawn.scale)} of the frame's pixels each way`:"; drawn over the scenery":""}${e.text?`; smallest text ${String(e.text.size)} px, ${String(e.text.onFrame[0])}–${String(e.text.onFrame[1])} px on the frame as drawn`:""}${e.stretches?.length&&e.shown.length>0?`; between cues (scenery s → its s): ${e.stretches.map(i=>`${i.from.toFixed(2)}–${i.to.toFixed(2)} → ${i.video[0].toFixed(2)}–${i.video[1].toFixed(2)} at ${i.speed.toFixed(2)}×`).join(", ")}`:""}`}}case"scenery-screen-fidelity":{const e=o.data,t=k(o,e.start),n=`${e.layer} ${e.screen} (${String(e.size[0])}×${String(e.size[1])}) at ${t(e.at)} s`,s=`${e.layer} ${e.screen}|${String(e.start)}|${String(e.at)}`;if(e.missing!==void 0||!e.deltaE)return{key:s,value:0,line:`${n}: not compared: ${e.missing??"no numbers"}`};const r=e.elements??[],i=(e.regions??[]).map(a=>{const c=a.elements.flatMap(f=>{const h=r[f];return h?[`${h.kind} ${h.name} ${g(h.box)}`]:[]});return`${g(a.box)} ${B(a.share)} (ΔE ${a.meanDeltaE.toFixed(1)} mean, ${a.maxDeltaE.toFixed(1)} most)${c.length>0?` over ${c.join(", ")}`:""}`}),d=new Map;for(const a of r)d.set(a.kind,(d.get(a.kind)??0)+1);const l=e.texture;return{key:s,value:e.share??0,line:`${n}: ${B(e.share??0)} of its pixels differ from its element drawn flat by more than ΔE ${String(e.tolerance)} (ΔE ${e.deltaE.mean.toFixed(2)} mean, ${e.deltaE.p95.toFixed(2)} at the 95th percentile, ${e.deltaE.max.toFixed(1)} most)${l?`; its texture ${String(l.of[0])}×${String(l.of[1])} px for an element of ${String(l.element[0])}×${String(l.element[1])}, compared at its level ${String(l.level)} (${String(l.size[0])}×${String(l.size[1])})`:""}${i.length>0?`; most in ${i.join("; ")}`:""}${d.size>0?`; in its content, of what the scenery's picture can draw otherwise: ${[...d].map(([a,c])=>`${String(c)} ${a}`).join(", ")}`:""} (boxes in content px)`}}case"cut-in-word":{const e=o.data;return{key:`${e.source}|${e.side}|${String(e.at)}`,value:Math.min(e.at-e.wordStart,e.wordEnd-e.at),line:`${e.source}: the stretch's ${e.side} at ${$(e.at)} s cuts "${e.word}" (${$(e.wordStart)}–${$(e.wordEnd)} s)`}}}}function k(o,e){const t=o.t===void 0?0:o.t-e;return n=>(n+t).toFixed(2)}function P(o,e,t,n){const[s,r]=t.b<t.a?[[e,t.b],[o,t.a]]:[[o,t.a],[e,t.b]];return`moving ${s[0]} ${m(s[1])} ${n} (${r[0]} ${m(r[1])}) clears them`}const m=o=>Math.abs(o)<.1?`${(o*1e3).toFixed(1)} mm`:`${o.toFixed(3)} m`;function O(o,e){const t=s=>`${String(s.speed)} px/s${s.angle===void 0?"":` at ${String(s.angle)}°`}`,n=e.list.map(s=>`${s.layer} ${s.what}${s.name?` (${s.name})`:""} ${g(s.box)} ${t(s)}${s.scale!==0?`, size ${s.scale>0?"+":""}${String(Math.round(s.scale*100))}%/s`:""}`);return` ${o} (${e.part} ${$(e.from)}–${$(e.to)} s): ${String(e.moving)} of ${y(e.things,"thing")} moving${e.overall?`, together ${t(e.overall)}`:""}${e.picture?`; the picture ${t(e.picture)} (difference ${String(e.picture.still)} → ${String(e.picture.match)} after the shift)`:""}${n.length>0?`: ${n.join("; ")}`:""}`}function D(o,e){const t=o.data.text;if(typeof t!="object"||t===null||!("layer"in t))return;const n=t,s=`${x(n)}: `;if(e.startsWith(s))return{layer:n.layer,text:n.text,what:e.slice(s.length)}}const A=3,T=8;function q(o,e=!1){const t=new Map;for(const a of o){const c=K(a),f=`${a.part??""}|${c.key}`,h=t.get(f);if(!h){const w=D(a,c.line);t.set(f,{part:a.part,first:a.t,last:a.t,count:1,worst:c.value,line:c.line,...w?{text:w}:{},...c.alike?{alike:c.alike}:{}});continue}if(h.count++,a.t!==void 0&&(h.first=Math.min(h.first??a.t,a.t),h.last=Math.max(h.last??a.t,a.t)),c.value>h.worst){h.worst=c.value,h.line=c.line,c.alike&&(h.alike=c.alike);const w=D(a,c.line);w?h.text=w:delete h.text}}const n=[...t.values()],s=new Map;if(!e)for(const a of n){if(!a.text)continue;const c=`${a.text.layer}|${a.text.what}`;s.set(c,[...s.get(c)??[],a])}const r=new Map;if(!e)for(const a of n){if(!a.alike||a.count>1)continue;const c=a.alike.what;r.set(c,[...r.get(c)??[],a])}const i=[],d=new Set;for(const a of n){if(d.has(a))continue;const c=a.alike?r.get(a.alike.what):void 0;if(c&&c.length>1&&a.alike){for(const S of c)d.add(S);const p=Math.min(...c.map(S=>S.alike?.span[0]??0)),M=Math.max(...c.map(S=>S.alike?.span[1]??0)),v=c.flatMap(S=>S.part?[S.part]:[]),W=v.length>T?`${v.slice(0,T).join(", ")} and ${String(v.length-T)} more`:v.join(", ");i.push(` ${$(p)}–${$(M)} s, the same in ${String(c.length)} parts (${W}): ${a.alike.what} (--all lists each)`);continue}const f=a.text?s.get(`${a.text.layer}|${a.text.what}`):void 0;if(!f||f.length<2||!a.text){i.push(l(a));continue}for(const p of f)d.add(p);const h=f.flatMap(p=>[p.first,p.last].filter(M=>M!==void 0)),w=[...new Set(f.flatMap(p=>p.part?[p.part]:[]))],F=Math.min(...h),C=Math.max(...h),I=h.length===0?"":F===C?`${$(F)} s `:`${$(F)}–${$(C)} s `,N=f.slice(0,A).map(p=>L(p.text?.text??"")),U=f.length>A?` and ${String(f.length-A)} more`:"";i.push(` ${I}${w.length>0?`${w.length===1?w[0]??"":`${String(w.length)} parts`}: `:""}${a.text.layer}: ${String(f.length)} texts, each ${a.text.what}: ${N.join(", ")}${U} (--all lists each)`)}return i;function l(a){return` ${a.first===void 0?"":a.count===1||a.first===a.last?`${$(a.first)} s `:`${$(a.first)}–${$(a.last??a.first)} s (${String(a.count)} moments, the most shown) `}${a.part?`${a.part}: `:""}${a.line}`}}function R(o){const e=o[0];if(e?.kind==="still-picture"){const n=e.data.options;return`; a frame every ${String(n.every)} s, ${String(n.width)} px wide, still while ${b(n.change)} or less of its pixels moved more than ${String(n.noise)} levels from the stretch's first; ${n.minSeconds>0?`${String(n.minSeconds)} s or longer`:"every stretch"}`}if(e?.kind==="text-contrast"){const n=e.data.options;return`; WCAG 2.1 ratios over the pixels behind each line's glyphs, the ${String(n.percentile)}th percentile, captured at ${String(n.scale)}× the frame's pixels, blocks at ${u(n.opacity)} opacity or more. For reference, WCAG AA asks 4.5:1 (3:1 for large text, 24 px or 18.66 px bold, in CSS pixels), AAA 7:1 (4.5:1)`}if(e?.kind==="cut-seam"){const n=e.data.options;return`; velocities over ${String(n.frames)} frames each side, at rest under ${String(n.rest)} px/s; ${n.top>0?`the ${String(n.top)} largest things listed each side, moving ones first`:"every thing listed"}; 0° is rightward, 90° downward, ±180° leftward`}if(e?.kind==="flash"){const n=e.data.options;return`; each frame against the frames beside it, ${String(n.width)} px wide, a pixel outside their span by more than ${String(n.noise)} levels, from ${b(n.change)} of the pixels; runs of up to ${y(n.frames,"frame")}; beside a cut, only past ${String(n.usual)}× its shot's usual change a frame`}if(e?.kind!=="text-time"&&e?.kind!=="words-on-screen")return"";const t=e.data.options;return`; whole: every text node at ${u(t.opacity)} opacity or more with ${u(t.shown)} or more of its glyphs showing, each part looked at every ${String(t.every)} s`}export function formatFacts(o,e={}){const t=[],n=new Map;for(const s of o){const r=G(s);n.set(r,[...n.get(r)??[],s])}for(const[s,r]of n){const i=Object.keys(z).map(d=>[d,r.filter(l=>l.kind===d).length]).filter(([,d])=>d>0).map(([d,l])=>`${d} ${String(l)}`);t.push(`${s}: ${i.join(", ")}`);for(const d of Object.keys(z)){const l=r.filter(a=>a.kind===d);l.length!==0&&t.push(` ${z[d]} (${d})${R(l)}:`,...q(l,e.all===!0))}}return t}export const textOnScreen=o=>`${x(o)}${o.fonts?` in ${o.fonts.join(", ")}`:""}`;
2
+ import{FACT_KINDS as A,comboKey as _}from"@allyhub-next/video-core";import{plural as g}from"./plural.js";const F=s=>`"${s.length>40?`${s.slice(0,40)}…`:s}"`,p=s=>`[${s.join(",")}]`,f=s=>`${String(Math.round(s*100))}%`,k=s=>`${(s*100).toFixed(1)}%`,b=s=>`${String(Math.round(s*1e4)/100)}%`,$=s=>s.toFixed(2),S=s=>`${s.layer}${s.z==="behind-person"?" (behind)":s.z==="overlay"?" (overlay)":""} ${F(s.text)} ${p(s.box)}${s.opacity===void 0?"":` at ${f(s.opacity)} opacity`}`,T=s=>S({...s,box:s.ink??s.box});function G(s){return s.output===void 0?s.piece:[s.piece,s.combo?_(s.combo):void 0,s.format].filter(e=>e!==void 0&&e!=="").join(" · ")}function M(s,e,t){const n=v(s,e.start),a=s.t===void 0?0:s.t-e.start;return{line:`${e.layer} ${n(e.start)}–${n(e.end)} s: ${t}`,alike:{what:`${e.layer}: ${t}`,span:[e.start+a,e.end+a]}}}function H(s){switch(s.kind){case"text-speaker":{const e=s.data,t=[e.face?`covers ${f(e.face.ofFace)} of the face ${p(e.face.box)} (${f(e.face.ofText)} of the text's box)`:"",e.person?`${f(e.person.ofText)} of the text's box over the person (${e.person.file})`:""].filter(Boolean);return{key:`${e.text.layer}|${e.text.text}`,value:Math.max(e.face?.ofFace??0,e.person?.ofText??0),line:`${S(e.text)}: ${t.join("; ")}`}}case"text-off-frame":{const e=s.data;return{key:`${e.text.layer}|${e.text.text}`,value:e.share,line:`${S({...e.text,box:e.glyphs})}: ${b(e.share)} of its glyphs outside the ${String(e.frame[0])}×${String(e.frame[1])} frame (${String(e.outside)} px), ${e.edges.map(t=>`${String(t.px)} px past the ${t.side}`).join(", ")}`}}case"text-contrast":{const e=s.data,t=`${String(e.size)} px, weight ${String(e.weight)}${e.shadow?", a shadow":""}${e.stroke?", a stroke":""}`,n=e.footage?`; footage under it, not drawn here: ${e.footage.join(", ")}`:"";if("missing"in e)return{key:`${e.text.layer}|${e.text.text}`,value:0,line:`${S(e.text)}: not measured (${e.missing}: ${e.why}; ${t})${n}`};const a=r=>`${r.toFixed(2)}:1`;return{key:`${e.text.layer}|${e.text.text}`,value:1/Math.max(1,e.ratio.min),line:`${S(e.text)}: ${a(e.ratio.min)} lowest, ${a(e.ratio.low)} at the ${String(e.options.percentile)}th percentile, ${a(e.ratio.median)} median; ${e.fill.join(", ")} over ${e.background.median} (median; ${e.background.atMin} at the lowest), ${t}${e.under?` (its outline counted behind it; under the outline ${a(e.under.ratio.min)} lowest, ${a(e.under.ratio.median)} median, over ${e.under.background.median})`:""}, ${String(e.pixels)} px${e.picture==="final"?", final picture":""}${n}`}}case"text-covered":{const e=s.data,t=e.covered;return{key:`${e.text.layer}|${e.text.text}`,value:Math.max(...e.edges.map(n=>n.px)),line:`${S(e.text)}: ${e.edges.map(n=>`${String(n.px)} px into the ${n.side}`).join(", ")} (${e.profile??"covered"}: top ${String(t.top)}, bottom ${String(t.bottom)}, left ${String(t.left)}, right ${String(t.right)})`}}case"text-overlap":{const e=s.data;return{key:`${e.a.layer}|${e.a.text}|${e.b.layer}|${e.b.text}`,value:e.share,line:`${S(e.a)} × ${S(e.b)}: ${f(e.share)} of the smaller box`}}case"text-overlap-own":{const e=s.data;return{key:`${e.a.layer}|${e.a.text}|${e.b.text}`,value:e.share,line:`${T(e.a)} × ${T(e.b)}: ${f(e.share)} of the smaller glyph box`}}case"text-outside":{const e=s.data;return{key:`${e.text.layer}|${e.text.text}|${p(e.container.box)}`,value:Math.max(...e.edges.map(t=>t.px)),line:`${T(e.text)}: ${e.edges.map(t=>`${String(t.px)} px past the ${t.side}`).join(", ")} of the box ${p(e.container.box)} (${e.container.paint.join(", ")})`}}case"text-time":{const e=s.data,t=e.seconds>0?`${(e.words/e.seconds).toFixed(1)} words/s`:"never whole",n=e.spans.map(([a,r])=>`${$(a)}–${$(r)}`).join(", ");return{key:`${e.text.layer}|${e.text.text}|${p(e.text.box)}`,value:e.seconds>0?e.words/e.seconds:e.words,line:`${S(e.text)}: ${g(e.words,"word")} (${String(e.chars)} characters) whole for ${$(e.seconds)} s${n?` (${n} s)`:""}, ${t}; on screen ${$(e.onScreen)} s${e.size?`; ${String(e.size.px)} px, ${String(e.size.phone)} pt on a ${String(e.options.phone[0])}-point phone${e.size.lowercase?`, lowercase ${String(e.size.lowercase.px)} px, ${String(e.size.lowercase.phone)} pt`:""}`:""}`}}case"words-on-screen":{const e=s.data,t=e.steps.map(n=>`${$(n.t)} s ${String(n.words)}`);return{key:s.part??"",value:e.words,line:`at most ${g(e.words,"word")} (${String(e.chars)} characters) whole at once, in ${g(e.texts,"text")}, ${$(e.from)}–${$(e.until)} s; from each change on: ${t.join(", ")}`}}case"footage-scale":{const e=s.data,t=e.shown[0]===e.source[0]&&e.shown[1]===e.source[1]?"":`, ${String(e.shown[0])}×${String(e.shown[1])} of it shown`,{min:n,max:a}=e,r=n.scale===a.scale?`${String(a.scale)}× throughout (${a.from.join(", ")})`:`${String(n.scale)}×–${String(a.scale)}× (smallest at ${$(n.t)} s: ${n.from.join(", ")}; largest at ${$(a.t)} s: ${a.from.join(", ")})`;return{key:`${e.file}|${s.part??""}`,value:a.scale,line:`${e.file} (${String(e.source[0])}×${String(e.source[1])}${t}): ${r}`}}case"free-bands":{const e=s.data,t=r=>r.length===0?"none":r.map(([i,c])=>`${String(i)}–${String(c)}`).join(", "),n=r=>r.length===0?"none":r.map(i=>`${String(i.y[0])}–${String(i.y[1])} (${String(i.height)} px)`).join(", "),a=(r,i)=>"missing"in i?` ${r}: not measured (no ${i.missing==="face-track"?"face track":"person matte"} for ${i.files.join(", ")} in the media index)`:` ${r}${i.speaker===void 0?"":` (face ${String(i.speaker)})`}, seen at ${String(i.seen)} of ${String(e.moments.length)} moments: rows ${t(i.rows)}; free ${n(i.bands)}`;return{key:"bands",value:e.bands.reduce((r,i)=>r+i.height,0),line:[`inside the covered edges: rows ${String(e.content.y[0])}–${String(e.content.y[1])}, columns ${String(e.content.x[0])}–${String(e.content.x[1])}${e.profile?` (${e.profile})`:""}, ${String(e.moments.length)} moments ${$(e.moments[0]??0)}–${$(e.moments.at(-1)??0)} s; free of everything measured: ${n(e.bands)}`,a("face box",e.face),a("person matte",e.person)].join(`
3
+ `)}}case"flat-frames":{const e=s.data;return{key:String(e.start),value:e.frames,line:`${String(e.frames)}${e.longer?" or more":""} frames of flat ${e.shade} (luma ${String(e.luma)}) to ${$(e.end)} s (flat: luminance deviation at most ${String(e.options.maxStd)}; runs of ${String(e.options.minFrames)} frames or more, more than ${String(e.options.sameLuma)} levels from the picture around)`}}case"still-picture":{const e=s.data,t=e.footage?`; footage not compared: ${e.footage.map(n=>`${n.file} ${$(n.start)}–${$(n.end)} s`).join(", ")}`:"";return{key:String(e.start),value:e.seconds,line:`${$(e.seconds)} s still, ${$(e.start)}–${$(e.end)} s${e.toEnd?" (to the last frame)":""}, through ${e.parts.join(", ")}: at most ${b(e.change)} of the picture changed from its start (mean ${String(e.mean)} of 255), ${b(e.drift.change)} at its end${t}`}}case"cut-seam":{const e=s.data,t=r=>`${r.turn===void 0?"":`turns ${String(r.turn)}°, `}${String(r.speed[0])} → ${String(r.speed[1])} px/s`,n=e.transition?`, a ${e.transition.type} ${$(e.transition.start)}–${$(e.transition.end)} s between`:"",a=[`${e.before.part} → ${e.after.part}${n}: the largest moving thing ${t(e.change.lead)}; everything moving ${t(e.change.overall)}${e.change.picture?`; the picture ${t(e.change.picture)}`:""}`,O("before",e.before),O("after",e.after),...e.carriers.map(r=>` named alike: ${r.name} ${p(r.before)} → ${p(r.after)}, ${String(r.distance)} px apart, size ×${String(r.size)}, ${String(r.speed[0])} → ${String(r.speed[1])} px/s`)];return{key:String(e.at),value:Math.abs(e.change.lead.turn??0),line:a.join(`
4
+ `)}}case"flash":{const e=s.data,t=n=>`${b(n.share)} (mean ${String(n.mean)})`;return{key:String(e.start),value:e.foreign.share,line:`${g(e.frames,"frame")} ${$(e.start)}–${$(e.end)} s${e.join===void 0?"":` (the join at ${$(e.join)} s)`}${e.transition?` in a ${e.transition.type} from ${e.transition.from} to ${e.transition.to}`:""}: ${t(e.foreign)} of its pixels outside what the frames beside it span; against the frame before ${t(e.before)}, the frame after ${t(e.after)}, those two against each other ${t(e.across)}${e.own?`; on its own side of the cut (${e.own.side} it), against the next frame of its shot ${t(e.own.step)}, while that shot changes ${t(e.own.usual)} a frame`:""}`}}case"music-length":{const e=s.data;return{key:e.file,value:e.without,line:`${e.file}: ${e.music.toFixed(1)} s of music${e.from===void 0?"":` (from ${e.from.toFixed(1)} s in)`}${e.loop?", looped":""}, ${e.video.toFixed(1)} s of video${e.without>0?`, the last ${e.without.toFixed(1)} s without music`:""}${e.estimated?" (put together from its parts)":""}`}}case"join-loudness":{const e=s.data,t=e.estimated?" (put together from its parts)":"";return"missing"in e?{key:`${e.before}|${e.after}`,value:0,line:`${e.before} → ${e.after}: not measured (${e.missing}: ${e.why})${t}`}:{key:`${e.before}|${e.after}`,value:Math.abs(e.difference),line:`${e.before} → ${e.after}: ${e.beforeLufs.toFixed(1)} → ${e.afterLufs.toFixed(1)} LUFS (${e.difference>0?"+":""}${e.difference.toFixed(1)} LU)${t}`}}case"matrix-coverage":{const e=s.data;return{key:"matrix",value:e.candidates.filter(n=>n.combos.length===0).length,line:[`${e.choice==="combos"?"named in matrix.combos":e.pick===void 0?"every combo asked for":`pick ${String(e.pick)}`}; ${e.possible===void 0?"possible not counted":`${String(e.possible)} possible`}, ${String(e.chosen)} chosen`,...e.candidates.map(n=>` ${n.slot}=${n.candidate}: ${n.combos.length>0?n.combos.join(", "):"in no combo"}`)].join(`
5
+ `)}}case"generated-media":{const e=s.data,t=n=>n.start===void 0?"":n.end===void 0||n.end===n.start?` at ${$(n.start)} s`:` ${$(n.start)}–${$(n.end)} s`;return{key:"generated",value:e.files.length,line:[`${g(e.files.length,"generated file")}${e.duration===void 0?"":` in ${e.duration.toFixed(1)} s of video`}${e.estimated?" (put together from its parts)":""}`,...e.files.map(n=>` ${n.file} (${[n.kind,n.tool,n.model,n.at].filter(Boolean).join(", ")}${n.mismatch?"; its record is another file's":""})${n.seconds===void 0?"":`, ${n.seconds.toFixed(1)} s`}: ${n.uses.map(a=>`${a.as}${a.part?` in ${a.part}`:""}${t(a)}`).join("; ")}`)].join(`
6
+ `)}}case"gen-mismatch":{const e=s.data;return{key:e.file,value:1,line:e.why==="sha256"?`${e.file}: ${e.record} records sha256 ${e.recorded.slice(0,12)}…, the file's is ${e.actual.slice(0,12)}… (the record was moved without its file, or the file changed)`:`${e.file}: ${e.record} cannot be read (${e.error})`}}case"graphics-under-footage":{const e=s.data;return{key:e.layers.map(t=>t.component).join("+"),value:e.covered,line:`${e.layers.map(t=>`${t.component} ${$(t.start)}–${$(t.end)} s`).join(", ")} under ${e.footage.map(t=>`${t.file} ${p(t.box)} (${f(t.frame)} of the frame, ${$(t.start)}–${$(t.end)} s)`).join(", ")}`}}case"fallback":{const e=s.data,t={"face-track":"no face track",face:`no face ${String(e.face??"")} in the face track`,"person-matte":"no person matte","own-footage":"no footage of the part's own take",tempo:"no tempo (no bpm given, none measured)"}[e.missing],n={reframe:"the reframe",speaker:"the layer's speaker","behind-person":"a layer behind the person",background:"the footage's background",snap:"music.snap","music-play":"the music's beats and bars (music.play, music.loop)","music-end":"music.end"}[e.for],a={centred:"drawn centred","in-front":"drawn in front",unprocessed:"the footage shown as it is","not-snapped":"parts without speech keep their own length","played-once":"the file played once","film-end":"the music ends with the film"}[e.fallback];return{key:`${e.file??""}|${e.missing}|${String(e.face??"")}`,value:1,line:`${e.file?`${e.file}: `:""}${t} for ${n}; ${a}`}}case"scenery-contact":{const e=s.data,t=e.missing?[`not measured: ${e.missing}`]:e.crossing?[`crossing along ${m(e.curve??0)}`,e.depth!==void 0?`at least ${m(e.depth)} deep`:"",e.lift!==void 0?K(e.a,e.b,e.lift,"up"):"",e.volume!==void 0?`sharing ${e.volume.toExponential(3)} m³`:e.volumeMissing?`volume not measured: ${e.volumeMissing}`:""]:e.within?[`${e.within==="a in b"?e.a:e.b} inside the other`,e.depth!==void 0?`at least ${m(e.depth)} deep`:""]:[e.area!==void 0?`touching, sharing ${e.area.toFixed(4)} m²`:`${m(e.gap??0)} apart`];return{key:`${e.layer}|${e.a}|${e.b}`,value:e.depth??e.curve??0,...M(s,e,`${e.a} and ${e.b}: ${t.filter(Boolean).join("; ")}`)}}case"scenery-support":{const e=s.data,t=e.gap===null?"nothing below":e.gap<0?`sunk ${m(-e.gap)}`:`${m(e.gap)} above`;return{key:`${e.layer}|${e.object}`,value:Math.abs(e.gap??0),...M(s,e,`${e.object}: ${t}${e.on.length?` ${e.on.join(", ")}`:""}; ${f(e.footprintShare)} of its footprint in contact${e.margin!==void 0?`; centre of mass ${m(Math.abs(e.margin))} ${e.margin>=0?"inside":"outside"} the contact`:""}${e.nothingBelow?`; nothing below in ${String(e.nothingBelow)} columns`:""}`)}}case"scenery-bake":{const e=s.data,t=e.laid?`bake laid (made on ${e.bakedOn??e.renderer})`:`drawn unbaked: no bake for its scene (digest ${e.digest}, on ${e.renderer} or the CPU); ${e.elsewhere?.length?`one was made only on ${e.elsewhere.join(", ")}, which this renderer does not lay`:e.stale?"it was baked before, so the scene changed since":"it was never baked"}; ${e.command??"allyhub scenery bake"} makes it`;return{key:`${e.layer}|${e.digest}`,value:e.laid?0:1,...M(s,e,t)}}case"mesh-health":{const e=s.data,t=[e.closed?"closed":"open",e.openEdges?`${String(e.openEdges)} open edges`:"",e.nonManifoldEdges?`${String(e.nonManifoldEdges)} non-manifold edges`:"",e.degenerate?`${String(e.degenerate)} triangles without area`:"",e.selfIntersections?`${String(e.selfIntersections)} self-intersecting pairs`:""].filter(Boolean);return{key:`${e.layer}|${e.object}`,value:e.openEdges+e.nonManifoldEdges+e.degenerate+(e.selfIntersections??0),...M(s,e,`${e.object}: ${t.join(", ")}`)}}case"camera-clearance":{const e=s.data,t=v(s,e.start),n=[e.nearest?`nearest surface ${e.nearest.object} ${m(e.nearest.distance)} at ${t(e.nearest.t)} s`:"",...e.inside.map(a=>`inside ${a.object}${a.closed?"":" (open: a vote)"} from ${t(a.from)} to ${t(a.to)} s`),...e.nearCut.map(a=>`near plane cuts ${a.object} from ${t(a.from)} to ${t(a.to)} s`)].filter(Boolean);return{key:`${e.layer}|${String(e.start)}`,value:e.inside.length+e.nearCut.length,line:`${e.layer} ${t(e.start)}–${t(e.end)} s: ${n.join("; ")}`}}case"camera-motion":{const e=s.data,t=e.peaks,n=v(s,e.start),a=(r,i)=>`${r.peak.toFixed(2)} ${i} at ${n(r.at)} s`;return{key:`${e.layer}|${String(e.start)}`,value:t.speed.peak,line:`${e.layer} ${n(e.start)}–${n(e.end)} s: ${m(e.length)} travelled; speed ${a(t.speed,"m/s")}, truck ${a(t.truck,"m/s")}, pedestal ${a(t.pedestal,"m/s")}, dolly ${a(t.dolly,"m/s")}, pan ${a(t.pan,"°/s")}, tilt ${a(t.tilt,"°/s")}, roll ${a(t.roll,"°/s")}, zoom ${a(t.zoom,"stops/s")}, view turning ${a(t.turn,"°/s")}, acceleration ${a(t.acceleration,"m/s²")}, jerk ${a(t.jerk,"m/s³")}; smoothness ${e.smoothness===null?"not measured":e.smoothness.toFixed(2)}; largest step ${m(e.step.distance)} and ${e.step.angle.toFixed(2)}° at ${n(e.step.at)} s${e.cuts?.length?`; ${g(e.cuts.length,"cut")} at ${e.cuts.map(r=>`${n(r)} s`).join(", ")} (not measured across)`:""} (${String(e.fps)} samples a second)`}}case"scenery-screen":{const e=s.data,t=v(s,e.start),n=(i,c,l=1)=>i?`${(i.least*l).toFixed(2)}${c} at ${t(i.leastAt)} s to ${(i.most*l).toFixed(2)}${c} at ${t(i.mostAt)} s`:"not shown",a=e.shown.length===0?"never on the frame":`on the frame ${e.shown.map(i=>`${t(i.from)}–${t(i.to)} s`).join(", ")}`,r=e.hidden?.by.map(i=>`${i.object} ${String(Math.round(i.share*100))}%`).join(", ");return{key:`${e.layer} ${e.screen}|${String(e.start)}`,value:e.scale?.least??0,line:`${e.layer} ${e.screen} (${String(e.size[0])}×${String(e.size[1])}) ${t(e.start)}–${t(e.end)} s: ${a}; share of the box ${n(e.share,"%",100)}; scale ${n(e.scale,"×")} frame px per content px; angle ${n(e.angle,"°")}; hidden ${n(e.hidden,"%",100)}${r?` (at the most by ${r})`:""}${e.blur?`; blur ${n(e.blur," px")} (the circle of confusion across it)`:""}${e.moire?`; moiré ${n(e.moire,"%",100)} deep${e.moire.period!==void 0?`, bands ${e.moire.period.toFixed(1)} px apart at the deepest`:""}`:""}${e.drawn?e.drawn.in==="scenery"?`; drawn in the scenery at ${String(e.drawn.scale)} of the frame's pixels each way`:"; drawn over the scenery":""}${e.text?`; smallest text ${String(e.text.size)} px, ${String(e.text.onFrame[0])}–${String(e.text.onFrame[1])} px on the frame as drawn`:""}${e.stretches?.length&&e.shown.length>0?`; between cues (scenery s → its s): ${e.stretches.map(i=>`${i.from.toFixed(2)}–${i.to.toFixed(2)} → ${i.video[0].toFixed(2)}–${i.video[1].toFixed(2)} at ${i.speed.toFixed(2)}×`).join(", ")}`:""}`}}case"scenery-screen-fidelity":{const e=s.data,t=v(s,e.start),n=`${e.layer} ${e.screen} (${String(e.size[0])}×${String(e.size[1])}) at ${t(e.at)} s`,a=`${e.layer} ${e.screen}|${String(e.start)}|${String(e.at)}`;if(e.missing!==void 0||!e.deltaE)return{key:a,value:0,line:`${n}: not compared: ${e.missing??"no numbers"}`};const r=e.elements??[],i=(e.regions??[]).map(o=>{const d=o.elements.flatMap(u=>{const h=r[u];return h?[`${h.kind} ${h.name} ${p(h.box)}`]:[]});return`${p(o.box)} ${k(o.share)} (ΔE ${o.meanDeltaE.toFixed(1)} mean, ${o.maxDeltaE.toFixed(1)} most)${d.length>0?` over ${d.join(", ")}`:""}`}),c=new Map;for(const o of r)c.set(o.kind,(c.get(o.kind)??0)+1);const l=e.texture;return{key:a,value:e.share??0,line:`${n}: ${k(e.share??0)} of its pixels differ from its element drawn flat by more than ΔE ${String(e.tolerance)} (ΔE ${e.deltaE.mean.toFixed(2)} mean, ${e.deltaE.p95.toFixed(2)} at the 95th percentile, ${e.deltaE.max.toFixed(1)} most)${l?`; its texture ${String(l.of[0])}×${String(l.of[1])} px for an element of ${String(l.element[0])}×${String(l.element[1])}, compared at its level ${String(l.level)} (${String(l.size[0])}×${String(l.size[1])})`:""}${i.length>0?`; most in ${i.join("; ")}`:""}${c.size>0?`; in its content, of what the scenery's picture can draw otherwise: ${[...c].map(([o,d])=>`${String(d)} ${o}`).join(", ")}`:""} (boxes in content px)`}}case"text-overflow":{const e=s.data;return{key:`${e.shape}|${e.text}`,value:Math.max(...e.edges.map(t=>t.px)),line:`${e.shape} ${F(e.text)} ${p(e.box)}: its glyphs ${p(e.glyphs)} ${e.edges.map(t=>`${String(t.px)} px past the ${t.side}`).join(", ")}; ${String(e.past)} of ${g(e.lines,"line")} past it${e.scale===void 0?"":`, shrunk to ${f(e.scale)}`}`}}case"shape-off-slide":{const e=s.data;return{key:e.shape,value:e.share,line:`${e.shape} ${p(e.box)}: ${e.edges.map(t=>`${String(t.px)} px past the ${t.side}`).join(", ")}, ${k(e.share)} of it outside the slide`}}case"shape-overlap":{const e=s.data;return{key:`${e.a}|${e.b}`,value:e.share,line:`${e.a} and ${e.b}: ${String(e.area)} px² both cover, ${k(e.share)} of the smaller`}}case"near-alignment":{const e=s.data;return{key:`${e.a}|${e.b}|${e.line}`,value:e.gap,line:`${e.a} and ${e.b==="slide"?"the slide":e.b}: ${e.line==="centre-x"?"horizontal centres":e.line==="centre-y"?"vertical centres":`${e.line} edges`} ${String(e.gap)} pt apart`}}case"placement-drift":{const e=s.data;return{key:`${e.layout}|${e.shape}`,value:e.places.length,line:`${e.shape} on "${e.layout}": ${e.places.map(t=>`${p(t.frame)} pt on ${t.slides.join(", ")}`).join("; ")}`}}case"type-in-use":{const e=s.data;return{key:"type",value:e.type.length,line:`${g(e.type.length,"size")}, the smallest ${String(e.smallest)} pt: ${e.type.map(t=>`${String(t.size)} pt weight ${String(t.weight)} on ${g(t.slides,"slide")} (${g(t.shapes,"shape")})`).join("; ")}`}}case"read-size":{const e=s.data;return{key:`${e.shape}|${e.text}`,value:1/Math.max(.1,e.screen?.arcmin??e.size),line:`${e.shape} ${F(e.text)}: ${String(e.size)} pt${e.xHeight===void 0?"":`, x ${String(e.xHeight)} pt`}${e.screen?`; ${e.screen.by==="x"?"its lowercase x":"its characters"} ${String(e.screen.mm)} mm on the screen, ${String(e.screen.arcmin)} arcmin from the farthest seat`:""}; ${String(e.phone)} pt on the phone`}}case"words-on-slide":{const e=s.data;return{key:"words",value:e.words,line:`${g(e.words,"word")}, ${g(e.lines,"line")}, ${g(e.texts,"text")}`}}case"picture-resolution":{const e=s.data;return{key:e.shape,value:e.scale,line:`${e.shape} ${p(e.box)}: ${String(e.shown[0])}×${String(e.shown[1])} of its ${String(e.source[0])}×${String(e.source[1])} px drawn ${String(e.scale)}× (${String(e.ppi)} ppi on the slide)${Math.abs(e.stretch)>.005?`, stretched ${k(e.stretch)}`:""}`}}case"chart-data":{const e=s.data,t=e.low===void 0||e.high===void 0?"no numbers":`${String(e.low)} to ${String(e.high)}`;return{key:e.shape,value:e.series,line:`${e.shape}: ${e.type}, ${String(e.categories)} categories, ${String(e.series)} series, ${t}; ${e.source===void 0?"its numbers are written in the deck":`from ${e.source}`}`}}case"table-grown":{const e=s.data;return{key:e.shape,value:e.drawn-e.set,line:`${e.shape}: ${String(e.drawn)} pt tall, set ${String(e.set)} pt; ${e.rows.map(t=>`row ${String(t.row+1)} ${String(t.set)} → ${String(t.drawn)} pt`).join(", ")}`}}case"shape-hidden":{const e=s.data;return{key:`${e.shape}|${e.by??""}`,value:1,line:e.by===void 0?`${e.shape}: no step of the slide shows it`:`${e.shape}: covered whole by ${e.by}`}}case"deck-fonts":{const e=s.data,t=e.fonts.filter(n=>!n.standard);return{key:"fonts",value:t.length,line:`${e.fonts.map(n=>`${n.name} (${n.where}${n.standard?"":", not standard"})`).join(", ")}${t.length>0?`: ${t.map(n=>n.name).join(", ")} goes in the file when the project has its font files (render says what could not); an app that does not read a file's fonts replaces it`:""}`}}case"cut-in-word":{const e=s.data;return{key:`${e.source}|${e.side}|${String(e.at)}`,value:Math.min(e.at-e.wordStart,e.wordEnd-e.at),line:`${e.source}: the stretch's ${e.side} at ${$(e.at)} s cuts "${e.word}" (${$(e.wordStart)}–${$(e.wordEnd)} s)`}}}}function v(s,e){const t=s.t===void 0?0:s.t-e;return n=>(n+t).toFixed(2)}function K(s,e,t,n){const[a,r]=t.b<t.a?[[e,t.b],[s,t.a]]:[[s,t.a],[e,t.b]];return`moving ${a[0]} ${m(a[1])} ${n} (${r[0]} ${m(r[1])}) clears them`}const m=s=>Math.abs(s)<.1?`${(s*1e3).toFixed(1)} mm`:`${s.toFixed(3)} m`;function O(s,e){const t=a=>`${String(a.speed)} px/s${a.angle===void 0?"":` at ${String(a.angle)}°`}`,n=e.list.map(a=>`${a.layer} ${a.what}${a.name?` (${a.name})`:""} ${p(a.box)} ${t(a)}${a.scale!==0?`, size ${a.scale>0?"+":""}${String(Math.round(a.scale*100))}%/s`:""}`);return` ${s} (${e.part} ${$(e.from)}–${$(e.to)} s): ${String(e.moving)} of ${g(e.things,"thing")} moving${e.overall?`, together ${t(e.overall)}`:""}${e.picture?`; the picture ${t(e.picture)} (difference ${String(e.picture.still)} → ${String(e.picture.match)} after the shift)`:""}${n.length>0?`: ${n.join("; ")}`:""}`}function D(s,e){const t=s.data.text;if(typeof t!="object"||t===null||!("layer"in t))return;const n=t,a=`${S(n)}: `;if(e.startsWith(a))return{layer:n.layer,text:n.text,what:e.slice(a.length)}}const C=3,L=8;function P(s,e=!1){const t=new Map;for(const o of s){const d=H(o),u=`${o.part??""}|${d.key}`,h=t.get(u);if(!h){const w=D(o,d.line);t.set(u,{part:o.part,...o.output==="slides"?{slide:!0}:{},first:o.t,last:o.t,count:1,worst:d.value,line:d.line,...w?{text:w}:{},...d.alike?{alike:d.alike}:{}});continue}if(h.count++,o.t!==void 0&&(h.first=Math.min(h.first??o.t,o.t),h.last=Math.max(h.last??o.t,o.t)),d.value>h.worst){h.worst=d.value,h.line=d.line,d.alike&&(h.alike=d.alike);const w=D(o,d.line);w?h.text=w:delete h.text}}const n=[...t.values()],a=new Map;if(!e)for(const o of n){if(!o.text)continue;const d=`${o.text.layer}|${o.text.what}`;a.set(d,[...a.get(d)??[],o])}const r=new Map;if(!e)for(const o of n){if(!o.alike||o.count>1)continue;const d=o.alike.what;r.set(d,[...r.get(d)??[],o])}const i=[],c=new Set;for(const o of n){if(c.has(o))continue;const d=o.alike?r.get(o.alike.what):void 0;if(d&&d.length>1&&o.alike){for(const y of d)c.add(y);const x=Math.min(...d.map(y=>y.alike?.span[0]??0)),E=Math.max(...d.map(y=>y.alike?.span[1]??0)),j=d.flatMap(y=>y.part?[y.part]:[]),W=j.length>L?`${j.slice(0,L).join(", ")} and ${String(j.length-L)} more`:j.join(", ");i.push(` ${$(x)}–${$(E)} s, the same in ${String(d.length)} parts (${W}): ${o.alike.what} (--all lists each)`);continue}const u=o.text?a.get(`${o.text.layer}|${o.text.what}`):void 0;if(!u||u.length<2||!o.text){i.push(l(o));continue}for(const x of u)c.add(x);const h=u.flatMap(x=>[x.first,x.last].filter(E=>E!==void 0)),w=[...new Set(u.flatMap(x=>x.part?[x.part]:[]))],z=Math.min(...h),B=Math.max(...h),I=h.length===0?"":z===B?`${$(z)} s `:`${$(z)}–${$(B)} s `,N=u.slice(0,C).map(x=>F(x.text?.text??"")),U=u.length>C?` and ${String(u.length-C)} more`:"";i.push(` ${I}${w.length>0?`${w.length===1?w[0]??"":`${String(w.length)} parts`}: `:""}${o.text.layer}: ${String(u.length)} texts, each ${o.text.what}: ${N.join(", ")}${U} (--all lists each)`)}return i;function l(o){return` ${o.first===void 0||o.slide?"":o.count===1||o.first===o.last?`${$(o.first)} s `:`${$(o.first)}–${$(o.last??o.first)} s (${String(o.count)} moments, the most shown) `}${o.part?`${o.part}: `:""}${o.line}`}}function q(s){const e=s[0];if(e?.kind==="still-picture"){const n=e.data.options;return`; a frame every ${String(n.every)} s, ${String(n.width)} px wide, still while ${b(n.change)} or less of its pixels moved more than ${String(n.noise)} levels from the stretch's first; ${n.minSeconds>0?`${String(n.minSeconds)} s or longer`:"every stretch"}`}if(e?.kind==="text-contrast"){const n=e.data.options;return`; WCAG 2.1 ratios over the pixels behind each line's glyphs, the ${String(n.percentile)}th percentile, captured at ${String(n.scale)}× the frame's pixels, blocks at ${f(n.opacity)} opacity or more. For reference, WCAG AA asks 4.5:1 (3:1 for large text, 24 px or 18.66 px bold, in CSS pixels), AAA 7:1 (4.5:1)`}if(e?.kind==="cut-seam"){const n=e.data.options;return`; velocities over ${String(n.frames)} frames each side, at rest under ${String(n.rest)} px/s; ${n.top>0?`the ${String(n.top)} largest things listed each side, moving ones first`:"every thing listed"}; 0° is rightward, 90° downward, ±180° leftward`}if(e?.kind==="flash"){const n=e.data.options;return`; each frame against the frames beside it, ${String(n.width)} px wide, a pixel outside their span by more than ${String(n.noise)} levels, from ${b(n.change)} of the pixels; runs of up to ${g(n.frames,"frame")}; beside a cut, only past ${String(n.usual)}× its shot's usual change a frame`}if(e?.kind==="near-alignment"){const n=e.data.options;return`; lines more than ${String(n.aligned)} pt and up to ${String(n.within)} pt apart`}if(e?.kind==="placement-drift")return`; places more than ${String(e.data.options.drift)} pt apart`;if(e?.kind==="read-size"){const{room:n,phone:a}=e.data.options;return`${n?`; a screen ${String(n.screen)} m wide, the farthest seat ${String(n.distance)} m away`:""}; a ${String(a[0])}×${String(a[1])} pt phone`}if(e?.kind!=="text-time"&&e?.kind!=="words-on-screen")return"";const t=e.data.options;return`; whole: every text node at ${f(t.opacity)} opacity or more with ${f(t.shown)} or more of its glyphs showing, each part looked at every ${String(t.every)} s`}export function formatFacts(s,e={}){const t=[],n=new Map;for(const a of s){const r=G(a);n.set(r,[...n.get(r)??[],a])}for(const[a,r]of n){const i=Object.keys(A).map(c=>[c,r.filter(l=>l.kind===c).length]).filter(([,c])=>c>0).map(([c,l])=>`${c} ${String(l)}`);t.push(`${a}: ${i.join(", ")}`);for(const c of Object.keys(A)){const l=r.filter(o=>o.kind===c);l.length!==0&&t.push(` ${A[c]} (${c})${q(l)}:`,...P(l,e.all===!0))}}return t}export const textOnScreen=s=>`${S(s)}${s.fonts?` in ${s.fonts.join(", ")}`:""}`;
@@ -1,3 +1,3 @@
1
1
  /*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
2
- import{comboKey as m,factsOf as $}from"@allyhub-next/video-core";import{plural as i}from"./plural.js";import{consoleJson as w}from"@allyhub-next/project";import{formatConsole as g}from"./console-text.js";export function formatStats(t){const{total:a,checked:n,reused:s,covered:r}=t.outputs;return s===0&&r===0?`${i(a,"version")}, all checked this time`:n===0&&r===0?`${i(a,"version")} unchanged, results reused from the last check`:`${i(a,"version")}: ${[n>0?`${String(n)} checked this time`:"",s>0?`${String(s)} unchanged with results reused from the last check`:"",r>0?`${String(r)} made of parts checked in the others`:""].filter(Boolean).join(", ")}`}const x={error:"✖",warn:"⚠"};export function formatProblem(t){const a=[t.piece,t.combo?m(t.combo):void 0,t.format,t.part,t.t===void 0?void 0:`${t.t.toFixed(2)} s`].filter(Boolean).join(" · "),n=t.where?.file?` (${t.where.file}${t.where.line?`:${String(t.where.line)}`:""})`:"";return`${x[t.level]} ${t.code}${a?` [${a}]`:""} ${t.message}${n}`}export function formatReading(t){const a=$(t,"text-time").filter(e=>e.data.words>0);if(a.length===0)return;const n=e=>[e.piece,e.combo?m(e.combo):void 0,e.format,e.part,e.t===void 0?void 0:`${e.t.toFixed(2)} s`].filter(o=>o!==void 0&&o!=="").join(" · "),s=e=>e.length>40?`${e.slice(0,40)}…`:e,r=a.filter(e=>e.data.seconds>0),h=e=>e.data.seconds/e.data.words,d=r.reduce((e,o)=>!e||h(o)<h(e)?o:e,void 0),l=$(t,"words-on-screen").reduce((e,o)=>!e||o.data.words>e.data.words?o:e,void 0),c=r.reduce((e,o)=>o.data.size&&(!e?.data.size||o.data.size.phone<e.data.size.phone)?o:e,void 0),u=r.reduce((e,o)=>o.data.size?.lowercase&&(!e?.data.size?.lowercase||o.data.size.lowercase.phone<e.data.size.lowercase.phone)?o:e,void 0),f=a.length-r.length,p=[d?`least time per word ${h(d).toFixed(2)} s ("${s(d.data.text.text)}", ${i(d.data.words,"word")} whole for ${d.data.seconds.toFixed(2)} s; ${n(d)})`:void 0,c?.data.size?`smallest on a ${String(c.data.options.phone[0])}-point phone ${String(c.data.size.phone)} pt ("${s(c.data.text.text)}", ${String(c.data.size.px)} px; ${n(c)})`:void 0,u?.data.size?.lowercase?`smallest lowercase on a phone ${String(u.data.size.lowercase.phone)} pt ("${s(u.data.text.text)}", ${String(u.data.size.lowercase.px)} px; ${n(u)})`:void 0,f>0?`${i(f,"text")} never whole`:void 0,l?`most words whole at once ${String(l.data.words)} (${l.data.from.toFixed(2)}–${l.data.until.toFixed(2)} s; ${n(l)})`:void 0].filter(e=>e!==void 0);return`Text on screen, ${i(a.length,"text")} timed: ${p.join("; ")}. Each one: allyhub inspect --kind text-time,words-on-screen`}export function formatCheck(t){const a=new Set(t.targets.map(s=>s.piece)).size,n=[`${i(a,"piece")} · ${formatStats(t.stats)}`];n.push(...g(w(t.console)));for(const s of t.problems)n.push(formatProblem(s));if(t.facts.length>0){n.push(`${i(t.facts.length,"measurement")} for you to judge (text over the speaker, covered areas, flat frames, music length…): allyhub inspect`);const s=formatReading(t.facts);s!==void 0&&n.push(s)}return n.push(formatCounts(t.check)),n.join(`
3
- `)}export function formatCounts(t){return`Result: ${String(t.errors)} must-fix, ${i(t.warnings,"suggestion")}`}
2
+ import{comboKey as $,factsOf as m}from"@allyhub-next/video-core";import{plural as r}from"./plural.js";import{consoleJson as w}from"@allyhub-next/project";import{formatConsole as g}from"./console-text.js";export function formatStats(t){const{total:s,checked:o,reused:n,covered:a}=t.outputs;return n===0&&a===0?`${r(s,"version")}, all checked this time`:o===0&&a===0?`${r(s,"version")} unchanged, results reused from the last check`:`${r(s,"version")}: ${[o>0?`${String(o)} checked this time`:"",n>0?`${String(n)} unchanged with results reused from the last check`:"",a>0?`${String(a)} made of parts checked in the others`:""].filter(Boolean).join(", ")}`}const x={error:"✖",warn:"⚠"};export function formatProblem(t){const s=[t.piece,t.combo?$(t.combo):void 0,t.format,t.part,t.t===void 0?void 0:`${t.t.toFixed(2)} s`].filter(Boolean).join(" · "),o=t.where?.file?` (${t.where.file}${t.where.line?`:${String(t.where.line)}`:""})`:"";return`${x[t.level]} ${t.code}${s?` [${s}]`:""} ${t.message}${o}`}export function formatReading(t){const s=m(t,"text-time").filter(e=>e.data.words>0);if(s.length===0)return;const o=e=>[e.piece,e.combo?$(e.combo):void 0,e.format,e.part,e.t===void 0?void 0:`${e.t.toFixed(2)} s`].filter(i=>i!==void 0&&i!=="").join(" · "),n=e=>e.length>40?`${e.slice(0,40)}…`:e,a=s.filter(e=>e.data.seconds>0),h=e=>e.data.seconds/e.data.words,d=a.reduce((e,i)=>!e||h(i)<h(e)?i:e,void 0),l=m(t,"words-on-screen").reduce((e,i)=>!e||i.data.words>e.data.words?i:e,void 0),c=a.reduce((e,i)=>i.data.size&&(!e?.data.size||i.data.size.phone<e.data.size.phone)?i:e,void 0),u=a.reduce((e,i)=>i.data.size?.lowercase&&(!e?.data.size?.lowercase||i.data.size.lowercase.phone<e.data.size.lowercase.phone)?i:e,void 0),f=s.length-a.length,p=[d?`least time per word ${h(d).toFixed(2)} s ("${n(d.data.text.text)}", ${r(d.data.words,"word")} whole for ${d.data.seconds.toFixed(2)} s; ${o(d)})`:void 0,c?.data.size?`smallest on a ${String(c.data.options.phone[0])}-point phone ${String(c.data.size.phone)} pt ("${n(c.data.text.text)}", ${String(c.data.size.px)} px; ${o(c)})`:void 0,u?.data.size?.lowercase?`smallest lowercase on a phone ${String(u.data.size.lowercase.phone)} pt ("${n(u.data.text.text)}", ${String(u.data.size.lowercase.px)} px; ${o(u)})`:void 0,f>0?`${r(f,"text")} never whole`:void 0,l?`most words whole at once ${String(l.data.words)} (${l.data.from.toFixed(2)}–${l.data.until.toFixed(2)} s; ${o(l)})`:void 0].filter(e=>e!==void 0);return`Text on screen, ${r(s.length,"text")} timed: ${p.join("; ")}. Each one: allyhub inspect --kind text-time,words-on-screen`}function z(t){const s=new Map;for(const n of t)s.set(n.kind,(s.get(n.kind)??0)+1);const o=[...s.entries()].sort((n,a)=>a[1]-n[1]).map(([n])=>n);return`${o.slice(0,4).join(", ")}${o.length>4?"…":""}`}export function formatCheck(t){const s=new Set(t.targets.map(n=>n.piece)).size,o=[`${r(s,"piece")} · ${formatStats(t.stats)}`];o.push(...g(w(t.console)));for(const n of t.problems)o.push(formatProblem(n));if(t.facts.length>0){o.push(`${r(t.facts.length,"measurement")} for you to judge (${z(t.facts)}): allyhub inspect`);const n=formatReading(t.facts);n!==void 0&&o.push(n)}return o.push(formatCounts(t.check)),o.join(`
3
+ `)}export function formatCounts(t){return`Result: ${String(t.errors)} must-fix, ${r(t.warnings,"suggestion")}`}
package/dist/works.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
2
- export const WORKS=[{name:"video",title:"Making a video (one piece, or a batch of ads in combos)",commands:["check","frames","inspect","inspect layout","inspect timeline","inspect motion","inspect still","inspect contrast","inspect seams","inspect flash","inspect loop","inspect combos","audio","add","dev","render"],docs:["video.md","layers.md","speech.md","sound.md"]},{name:"footage",title:"Cutting recorded footage: a talking head, an interview",commands:["words","words edits","align","frames cuts","audio recording","render"],docs:["footage.md","speech.md"]},{name:"slides",title:"Making a deck",commands:["check","frames","inspect layout","dev","render"],docs:["slides.md","layers.md"]},{name:"docs",title:"Writing a doc",commands:["check","dev","render"],docs:["docs.md"]},{name:"sheets",title:"Making a sheet",commands:["sheet import","sheet","check","dev","render"],docs:["sheets.md"]},{name:"websites",title:"Showing a project's videos in a website (an Astro project)",commands:["site media","render"],docs:["project.md"]},{name:"generating",title:"Making media with AI models",commands:["<work>","<work> <tool>","upload","voice"],cloud:{works:["ai-media"]}},{name:"researching",title:"Researching a market online",commands:["<work>","<work> <tool>","frames web"],cloud:{}},{name:"references",title:"Studying reference videos, and a piece against them",commands:["reference","reference compare","reference served","reference set","frames","frames compare","words","audio","align"]},{name:"3d",title:"Building a 3D scenery and its cameras",commands:["scenery","scenery view","scenery map","scenery see","scenery measure","scenery motion","scenery solve","scenery bake","inspect fidelity","dev"],docs:["scenery.md"]},{name:"modeling",title:"Modelling a prop in code, or adding one from a library",commands:["add search","add","model","model capabilities"],docs:["modeling.md","scenery.md"]},{name:"setup",title:"This computer, the account and AllyHub's skills",commands:["skills","skills show","auth login","auth status","auth logout","auth token","orgs list","orgs switch","doctor","mcp"]}],workNamed=e=>WORKS.find(n=>n.name===e);export function cloudNouns(e,n){if(e.cloud===void 0)return[];const s=new Set(WORKS.flatMap(o=>o.cloud?.works??[])),t=e.cloud.works;return n.filter(o=>t===void 0?!s.has(o.name):t.includes(o.name))}export function workTitle(e,n){if(e.cloud===void 0)return e.title;if(n===void 0)return`${e.title} (the cloud catalog could not be read)`;const s=cloudNouns(e,n);return s.length===0?`${e.title}: no cloud tools yet`:`${e.title}: ${s.map(t=>t.name).join(", ")}`}
2
+ export const WORKS=[{name:"video",title:"Making a video (one piece, or a batch of ads in combos)",commands:["check","frames","inspect","inspect layout","inspect timeline","inspect motion","inspect still","inspect contrast","inspect seams","inspect flash","inspect loop","inspect combos","audio","add","dev","render"],docs:["video.md","layers.md","speech.md","sound.md"]},{name:"footage",title:"Cutting recorded footage: a talking head, an interview",commands:["words","words edits","align","frames cuts","audio recording","render"],docs:["footage.md","speech.md"]},{name:"decks",title:"Making a deck",commands:["slides capabilities","slides import","check","frames","inspect layout","inspect contrast","dev","render"],docs:["slides.md","layers.md"]},{name:"docs",title:"Writing a doc",commands:["check","dev","render"],docs:["docs.md"]},{name:"sheets",title:"Making a sheet",commands:["sheet import","sheet","check","dev","render"],docs:["sheets.md"]},{name:"websites",title:"Showing a project's videos in a website (an Astro project)",commands:["site media","render"],docs:["project.md"]},{name:"generating",title:"Making media with AI models",commands:["<work>","<work> <tool>","upload","voice"],cloud:{works:["ai-media"]}},{name:"researching",title:"Researching a market online",commands:["<work>","<work> <tool>","frames web"],cloud:{}},{name:"references",title:"Studying reference videos, and a piece against them",commands:["reference","reference compare","reference served","reference set","frames","frames compare","words","audio","align"]},{name:"3d",title:"Building a 3D scenery and its cameras",commands:["scenery","scenery view","scenery map","scenery see","scenery measure","scenery motion","scenery solve","scenery bake","inspect fidelity","dev"],docs:["scenery.md"]},{name:"modeling",title:"Modelling a prop in code, or adding one from a library",commands:["add search","add","3d-model","3d-model capabilities"],docs:["modeling.md","scenery.md"]},{name:"setup",title:"This computer, the account and AllyHub's skills",commands:["skills","skills show","auth login","auth status","orgs list","doctor"]}],workNamed=e=>WORKS.find(n=>n.name===e);export function cloudNouns(e,n){if(e.cloud===void 0)return[];const s=new Set(WORKS.flatMap(o=>o.cloud?.works??[])),t=e.cloud.works;return n.filter(o=>t===void 0?!s.has(o.name):t.includes(o.name))}export function workTitle(e,n){if(e.cloud===void 0)return e.title;if(n===void 0)return`${e.title} (the cloud catalog could not be read)`;const s=cloudNouns(e,n);return s.length===0?`${e.title}: no cloud tools yet`:`${e.title}: ${s.map(t=>t.name).join(", ")}`}
@@ -0,0 +1,105 @@
1
+ import{Ot as e}from"./react-D0RmGe2w.js";var t=e(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),n=e(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),r=e(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),i=e(`type`,[[`path`,{d:`M12 4v16`,key:`1654pz`}],[`path`,{d:`M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2`,key:`e0r10z`}],[`path`,{d:`M9 20h6`,key:`s66wpe`}]]),a=Symbol.for(`yaml.alias`),o=Symbol.for(`yaml.document`),s=Symbol.for(`yaml.map`),c=Symbol.for(`yaml.pair`),l=Symbol.for(`yaml.scalar`),u=Symbol.for(`yaml.seq`),d=Symbol.for(`yaml.node.type`),f=e=>!!e&&typeof e==`object`&&e[d]===a,p=e=>!!e&&typeof e==`object`&&e[d]===o,m=e=>!!e&&typeof e==`object`&&e[d]===s,h=e=>!!e&&typeof e==`object`&&e[d]===c,g=e=>!!e&&typeof e==`object`&&e[d]===l,_=e=>!!e&&typeof e==`object`&&e[d]===u;function v(e){if(e&&typeof e==`object`)switch(e[d]){case s:case u:return!0}return!1}function y(e){if(e&&typeof e==`object`)switch(e[d]){case a:case s:case l:case u:return!0}return!1}var b=e=>(g(e)||v(e))&&!!e.anchor,x=Symbol(`break visit`),S=Symbol(`skip children`),C=Symbol(`remove node`);function w(e,t){let n=E(t);p(e)?T(null,e.contents,n,Object.freeze([e]))===C&&(e.contents=null):T(null,e,n,Object.freeze([]))}w.BREAK=x,w.SKIP=S,w.REMOVE=C;function T(e,t,n,r){let i=ee(e,t,n,r);if(y(i)||h(i))return te(e,r,i),T(e,i,n,r);if(typeof i!=`symbol`){if(v(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=T(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===x)return x;else i===C&&(t.items.splice(e,1),--e)}}else if(h(t)){r=Object.freeze(r.concat(t));let e=T(`key`,t.key,n,r);if(e===x)return x;e===C&&(t.key=null);let i=T(`value`,t.value,n,r);if(i===x)return x;i===C&&(t.value=null)}}return i}function E(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function ee(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(m(t))return n.Map?.(e,t,r);if(_(t))return n.Seq?.(e,t,r);if(h(t))return n.Pair?.(e,t,r);if(g(t))return n.Scalar?.(e,t,r);if(f(t))return n.Alias?.(e,t,r)}function te(e,t,n){let r=t[t.length-1];if(v(r))r.items[e]=n;else if(h(r))e===`key`?r.key=n:r.value=n;else if(p(r))r.contents=n;else{let e=f(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var ne={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},re=e=>e.replace(/[!,[\]{}]/g,e=>ne[e]),D=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags)}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+re(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&y(e.contents)){let t={};w(e.contents,(e,n)=>{y(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)i===`!!`&&a===`tag:yaml.org,2002:`||e&&!r.some(e=>e.startsWith(a))||t.push(`%TAG ${i} ${a}`);return t.join(`
2
+ `)}};D.defaultYaml={explicit:!1,version:`1.2`},D.defaultTags={"!!":`tag:yaml.org,2002:`};function ie(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function ae(e){let t=new Set;return w(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function oe(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function se(e,t){let n=[],r=new Map,i=null;return{onAnchor:r=>{n.push(r),i??=ae(e);let a=oe(t,i);return i.add(a),a},setAnchors:()=>{for(let e of n){let t=r.get(e);if(typeof t==`object`&&t.anchor&&(g(t.node)||v(t.node)))t.node.anchor=t.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:r}}function O(e,t,n,r){if(r&&typeof r==`object`){if(Array.isArray(r))for(let t=0,n=r.length;t<n;++t){let n=r[t],i=O(e,r,String(t),n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}else if(r instanceof Map)for(let t of Array.from(r.keys())){let n=r.get(t),i=O(e,r,t,n);i===void 0?r.delete(t):i!==n&&r.set(t,i)}else if(r instanceof Set)for(let t of Array.from(r)){let n=O(e,r,t,t);n===void 0?r.delete(t):n!==t&&(r.delete(t),r.add(n))}else for(let[t,n]of Object.entries(r)){let i=O(e,r,t,n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}}return e.call(t,n,r)}function k(e,t,n){if(Array.isArray(e))return e.map((e,t)=>k(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!b(e))return e.toJSON(t,n);let r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=e=>{r.res=e,delete n.onCreate};let i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e==`bigint`&&!n?.keep?Number(e):e}var ce=class{constructor(e){Object.defineProperty(this,d,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:r,reviver:i}={}){if(!p(e))throw TypeError(`A document argument is required`);let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n==`number`?n:100},o=k(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?O(i,{"":o},``,o):o}},le=class extends ce{constructor(e){super(a),this.source=e,Object.defineProperty(this,"tag",{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],w(e,{Node:(e,t)=>{(f(t)||b(t))&&n.push(t)}}),t&&(t.aliasResolveCache=n));let r;for(let e of n){if(e===this)break;e.anchor===this.source&&(r=e)}if(r&&t){let{anchors:e,doc:n,maxAliasCount:i}=t,a=e.get(r);if(a||=(k(r,null,t),e.get(r)),a?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=ue(n,r,e)),a.count*a.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`)}return r}toJSON(e,t){if(!t)return{source:this.source};let n=this.resolve(t.doc,t);if(!n){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}return t.anchors.get(n).res}toString(e,t,n){let r=`*${this.source}`;if(e){if(ie(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${r} `}return r}};function ue(e,t,n){if(f(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}if(v(t)){let r=0;for(let i of t.items){let t=ue(e,i,n);t>r&&(r=t)}return r}if(h(t)){let r=ue(e,t.key,n),i=ue(e,t.value,n);return Math.max(r,i)}return 1}var de=e=>!e||typeof e!=`function`&&typeof e!=`object`,A=class extends ce{constructor(e){super(l),this.value=e}toJSON(e,t){return t?.keep?this.value:k(this.value,e,t)}toString(){return String(this.value)}};A.BLOCK_FOLDED=`BLOCK_FOLDED`,A.BLOCK_LITERAL=`BLOCK_LITERAL`,A.PLAIN=`PLAIN`,A.QUOTE_DOUBLE=`QUOTE_DOUBLE`,A.QUOTE_SINGLE=`QUOTE_SINGLE`;var fe=`tag:yaml.org,2002:`;function pe(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function me(e,t,n){if(p(e)&&(e=e.contents),y(e))return e;if(h(e)){let t=n.schema[s].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:a,schema:o,sourceObjects:c}=n,l;if(r&&e&&typeof e==`object`){if(l=c.get(e),l)return l.anchor??(l.anchor=i(e)),new le(l.anchor);l={anchor:null,node:null},c.set(e,l)}t?.startsWith(`!!`)&&(t=fe+t.slice(2));let d=pe(e,t,o.tags);if(!d){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new A(e);return l&&(l.node=t),t}d=e instanceof Map?o[s]:Symbol.iterator in Object(e)?o[u]:o[s]}a&&(a(d),delete n.onTagObj);let f=d?.createNode?d.createNode(n.schema,e,n):typeof d?.nodeClass?.from==`function`?d.nodeClass.from(n.schema,e,n):new A(e);return t?f.tag=t:d.default||(f.tag=d.tag),l&&(l.node=f),f}function he(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){let n=t[e];if(typeof n==`number`&&Number.isInteger(n)&&n>=0){let e=[];e[n]=r,r=e}else r=new Map([[n,r]])}return me(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var j=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,ge=class extends ce{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>y(t)||h(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(j(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(v(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,he(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let r=this.get(t,!0);if(v(r))return r.deleteIn(n);throw Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...r]=e,i=this.get(n,!0);return r.length===0?!t&&g(i)?i.value:i:v(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!h(t))return!1;let n=t.value;return n==null||e&&g(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let r=this.get(t,!0);return v(r)?r.hasIn(n):!1}setIn(e,t){let[n,...r]=e;if(r.length===0)this.set(n,t);else{let e=this.get(n,!0);if(v(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,he(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}},_e=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function M(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var N=(e,t,n)=>e.endsWith(`
3
+ `)?M(n,t):n.includes(`
4
+ `)?`
5
+ `+M(n,t):(e.endsWith(` `)?``:` `)+n,ve=`flow`,ye=`block`,be=`quoted`;function xe(e,t,n=`flow`,{indentAtStart:r,lineWidth:i=80,minContentWidth:a=20,onFold:o,onOverflow:s}={}){if(!i||i<0)return e;i<a&&(a=0);let c=Math.max(1+a,1+i-t.length);if(e.length<=c)return e;let l=[],u={},d=i-t.length;typeof r==`number`&&(r>i-Math.max(2,a)?l.push(0):d=i-r);let f,p,m=!1,h=-1,g=-1,_=-1;n===`block`&&(h=Se(e,h,t.length),h!==-1&&(d=h+c));for(let r;r=e[h+=1];){if(n===`quoted`&&r===`\\`){switch(g=h,e[h+1]){case`x`:h+=3;break;case`u`:h+=5;break;case`U`:h+=9;break;default:h+=1}_=h}if(r===`
6
+ `)n===`block`&&(h=Se(e,h,t.length)),d=h+t.length+c,f=void 0;else{if(r===` `&&p&&p!==` `&&p!==`
7
+ `&&p!==` `){let t=e[h+1];t&&t!==` `&&t!==`
8
+ `&&t!==` `&&(f=h)}if(h>=d){if(f)l.push(f),d=f+c,f=void 0;else if(n===`quoted`){for(;p===` `||p===` `;)p=r,r=e[h+=1],m=!0;let t=h>_+1?h-2:g-1;if(u[t])return e;l.push(t),u[t]=!0,d=t+c,f=void 0}else m=!0}}p=r}if(m&&s&&s(),l.length===0)return e;o&&o();let v=e.slice(0,l[0]);for(let r=0;r<l.length;++r){let i=l[r],a=l[r+1]||e.length;i===0?v=`\n${t}${e.slice(0,a)}`:(n===`quoted`&&u[i]&&(v+=`${e[i]}\\`),v+=`\n${t}${e.slice(i+1,a)}`)}return v}function Se(e,t,n){let r=t,i=t+1,a=e[i];for(;a===` `||a===` `;)if(t<i+n)a=e[++t];else{do a=e[++t];while(a&&a!==`
9
+ `);r=t,i=t+1,a=e[i]}return r}var Ce=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),we=e=>/^(%|---|\.\.\.)/m.test(e);function Te(e,t,n){if(!t||t<0)return!1;let r=t-n,i=e.length;if(i<=r)return!1;for(let t=0,n=0;t<i;++t)if(e[t]===`
10
+ `){if(t-n>r)return!0;if(n=t+1,i-n<=r)return!1}return!0}function P(e,t){let n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;let{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,a=t.indent||(we(e)?` `:``),o=``,s=0;for(let e=0,t=n[e];t;t=n[++e])if(t===` `&&n[e+1]===`\\`&&n[e+2]===`n`&&(o+=n.slice(s,e)+`\\ `,e+=1,s=e,t=`\\`),t===`\\`)switch(n[e+1]){case`u`:{o+=n.slice(s,e);let t=n.substr(e+2,4);switch(t){case`0000`:o+=`\\0`;break;case`0007`:o+=`\\a`;break;case`000b`:o+=`\\v`;break;case`001b`:o+=`\\e`;break;case`0085`:o+=`\\N`;break;case`00a0`:o+=`\\_`;break;case`2028`:o+=`\\L`;break;case`2029`:o+=`\\P`;break;default:t.substr(0,2)===`00`?o+=`\\x`+t.substr(2):o+=n.substr(e,6)}e+=5,s=e+1}break;case`n`:if(r||n[e+2]===`"`||n.length<i)e+=1;else{for(o+=n.slice(s,e)+`
11
+
12
+ `;n[e+2]===`\\`&&n[e+3]===`n`&&n[e+4]!==`"`;)o+=`
13
+ `,e+=2;o+=a,n[e+2]===` `&&(o+=`\\`),e+=1,s=e+1}break;default:e+=1}return o=s?o+n.slice(s):n,r?o:xe(o,a,be,Ce(t,!1))}function Ee(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
14
+ `)||/[ \t]\n|\n[ \t]/.test(e))return P(e,t);let n=t.indent||(we(e)?` `:``),r=`'`+e.replace(/'/g,`''`).replace(/\n+/g,`$&\n${n}`)+`'`;return t.implicitKey?r:xe(r,n,ve,Ce(t,!1))}function F(e,t){let{singleQuote:n}=t.options,r;if(n===!1)r=P;else{let t=e.includes(`"`),i=e.includes(`'`);r=t&&!i?Ee:i&&!t?P:n?Ee:P}return r(e,t)}var De;try{De=RegExp(`(^|(?<!
15
+ ))
16
+ +(?!
17
+ |$)`,`g`)}catch{De=/\n+(?!\n|$)/g}function Oe({comment:e,type:t,value:n},r,i,a){let{blockQuote:o,commentString:s,lineWidth:c}=r.options;if(!o||/\n[\t ]+$/.test(n))return F(n,r);let l=r.indent||(r.forceBlockIndent||we(n)?` `:``),u=o===`literal`?!0:o===`folded`||t===A.BLOCK_FOLDED?!1:t===A.BLOCK_LITERAL||!Te(n,c,l.length);if(!n)return u?`|
18
+ `:`>
19
+ `;let d,f;for(f=n.length;f>0;--f){let e=n[f-1];if(e!==`
20
+ `&&e!==` `&&e!==` `)break}let p=n.substring(f),m=p.indexOf(`
21
+ `);m===-1?d=`-`:n===p||m!==p.length-1?(d=`+`,a&&a()):d=``,p&&=(n=n.slice(0,-p.length),p[p.length-1]===`
22
+ `&&(p=p.slice(0,-1)),p.replace(De,`$&${l}`));let h=!1,g,_=-1;for(g=0;g<n.length;++g){let e=n[g];if(e===` `)h=!0;else if(e===`
23
+ `)_=g;else break}let v=n.substring(0,_<g?_+1:g);v&&=(n=n.substring(v.length),v.replace(/\n+/g,`$&${l}`));let y=(h?l?`2`:`1`:``)+d;if(e&&(y+=` `+s(e.replace(/ ?[\r\n]+/g,` `)),i&&i()),!u){let e=n.replace(/\n+/g,`
24
+ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\n+/g,`$&${l}`),i=!1,a=Ce(r,!0);o!==`folded`&&t!==A.BLOCK_FOLDED&&(a.onOverflow=()=>{i=!0});let s=xe(`${v}${e}${p}`,l,ye,a);if(!i)return`>${y}\n${l}${s}`}return n=n.replace(/\n+/g,`$&${l}`),`|${y}\n${l}${v}${n}${p}`}function ke(e,t,n,r){let{type:i,value:a}=e,{actualString:o,implicitKey:s,indent:c,indentStep:l,inFlow:u}=t;if(s&&a.includes(`
25
+ `)||u&&/[[\]{},]/.test(a))return F(a,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a))return s||u||!a.includes(`
26
+ `)?F(a,t):Oe(e,t,n,r);if(!s&&!u&&i!==A.PLAIN&&a.includes(`
27
+ `))return Oe(e,t,n,r);if(we(a)){if(c===``)return t.forceBlockIndent=!0,Oe(e,t,n,r);if(s&&c===l)return F(a,t)}let d=a.replace(/\n+/g,`$&\n${c}`);if(o){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(d),{compat:n,tags:r}=t.doc.schema;if(r.some(e)||n?.some(e))return F(a,t)}return s?d:xe(d,c,ve,Ce(t,!1))}function Ae(e,t,n,r){let{implicitKey:i,inFlow:a}=t,o=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:s}=e;s!==A.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(s=A.QUOTE_DOUBLE);let c=e=>{switch(e){case A.BLOCK_FOLDED:case A.BLOCK_LITERAL:return i||a?F(o.value,t):Oe(o,t,n,r);case A.QUOTE_DOUBLE:return P(o.value,t);case A.QUOTE_SINGLE:return Ee(o.value,t);case A.PLAIN:return ke(o,t,n,r);default:return null}},l=c(s);if(l===null){let{defaultKeyType:e,defaultStringType:n}=t.options,r=i&&e||n;if(l=c(r),l===null)throw Error(`Unsupported default string type ${r}`)}return l}function je(e,t){let n=Object.assign({blockQuote:!0,commentString:_e,defaultKeyType:null,defaultStringType:`PLAIN`,directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:`false`,flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:`null`,simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:`true`,verifyAliasOrder:!0},e.schema.toStringOptions,t),r;switch(n.collectionStyle){case`block`:r=!1;break;case`flow`:r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?` `:``,indent:``,indentStep:typeof n.indent==`number`?` `.repeat(n.indent):` `,inFlow:r,options:n}}function Me(e,t){if(t.tag){let n=e.filter(e=>e.tag===t.tag);if(n.length>0)return n.find(e=>e.format===t.format)??n[0]}let n,r;if(g(t)){r=t.value;let i=e.filter(e=>e.identify?.(r));if(i.length>1){let e=i.filter(e=>e.test);e.length>0&&(i=e)}n=i.find(e=>e.format===t.format)??i.find(e=>!e.format)}else r=t,n=e.find(e=>e.nodeClass&&r instanceof e.nodeClass);if(!n){let e=r?.constructor?.name??(r===null?`null`:typeof r);throw Error(`Tag not resolved for ${e} value`)}return n}function Ne(e,t,{anchors:n,doc:r}){if(!r.directives)return``;let i=[],a=(g(e)||v(e))&&e.anchor;a&&ie(a)&&(n.add(a),i.push(`&${a}`));let o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(` `)}function I(e,t,n,r){if(h(e))return e.toString(t,n,r);if(f(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw TypeError(`Cannot stringify circular structure without alias nodes`);t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i,a=y(e)?e:t.doc.createNode(e,{onTagObj:e=>i=e});i??=Me(t.doc.schema.tags,a);let o=Ne(a,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let s=typeof i.stringify==`function`?i.stringify(a,t,n,r):g(a)?Ae(a,t,n,r):a.toString(t,n,r);return o?g(a)||s[0]===`{`||s[0]===`[`?`${o} ${s}`:`${o}\n${t.indent}${s}`:s}function Pe({key:e,value:t},n,r,i){let{allNullValues:a,doc:o,indent:s,indentStep:c,options:{commentString:l,indentSeq:u,simpleKeys:d}}=n,f=y(e)&&e.comment||null;if(d){if(f)throw Error(`With simple keys, key nodes cannot have comments`);if(v(e)||!y(e)&&typeof e==`object`)throw Error(`With simple keys, collection cannot be used as a key value`)}let p=!d&&(!e||f&&t==null&&!n.inFlow||v(e)||(g(e)?e.type===A.BLOCK_FOLDED||e.type===A.BLOCK_LITERAL:typeof e==`object`));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(d||!a),indent:s+c});let m=!1,h=!1,b=I(e,n,()=>m=!0,()=>h=!0);if(!p&&!n.inFlow&&b.length>1024){if(d)throw Error(`With simple keys, single line scalar must not span more than 1024 characters`);p=!0}if(n.inFlow){if(a||t==null)return m&&r&&r(),b===``?`?`:p?`? ${b}`:b}else if(a&&!d||t==null&&p)return b=`? ${b}`,f&&!m?b+=N(b,n.indent,l(f)):h&&i&&i(),b;m&&(f=null),p?(f&&(b+=N(b,n.indent,l(f))),b=`? ${b}\n${s}:`):(b=`${b}:`,f&&(b+=N(b,n.indent,l(f))));let x,S,C;y(t)?(x=!!t.spaceBefore,S=t.commentBefore,C=t.comment):(x=!1,S=null,C=null,t&&typeof t==`object`&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!f&&g(t)&&(n.indentAtStart=b.length+1),h=!1,!u&&c.length>=2&&!n.inFlow&&!p&&_(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let w=!1,T=I(t,n,()=>w=!0,()=>h=!0),E=` `;if(f||x||S){if(E=x?`
28
+ `:``,S){let e=l(S);E+=`\n${M(e,n.indent)}`}T===``&&!n.inFlow?E===`
29
+ `&&C&&(E=`
30
+
31
+ `):E+=`\n${n.indent}`}else if(!p&&v(t)){let e=T[0],r=T.indexOf(`
32
+ `),i=r!==-1,a=n.inFlow??t.flow??t.items.length===0;if(i||!a){let t=!1;if(i&&(e===`&`||e===`!`)){let n=T.indexOf(` `);e===`&`&&n!==-1&&n<r&&T[n+1]===`!`&&(n=T.indexOf(` `,n+1)),(n===-1||r<n)&&(t=!0)}t||(E=`\n${n.indent}`)}}else(T===``||T[0]===`
33
+ `)&&(E=``);return b+=E+T,n.inFlow?w&&r&&r():C&&!w?b+=N(b,n.indent,l(C)):h&&i&&i(),b}function Fe(e,t){(e===`debug`||e===`warn`)&&console.warn(t)}var Ie=`<<`,L={identify:e=>e===Ie||typeof e==`symbol`&&e.description===Ie,default:`key`,tag:`tag:yaml.org,2002:merge`,test:/^<<$/,resolve:()=>Object.assign(new A(Symbol(Ie)),{addToJSMap:Re}),stringify:()=>Ie},Le=(e,t)=>(L.identify(t)||g(t)&&(!t.type||t.type===A.PLAIN)&&L.identify(t.value))&&e?.doc.schema.tags.some(e=>e.tag===L.tag&&e.default);function Re(e,t,n){let r=Be(e,n);if(_(r))for(let n of r.items)ze(e,t,n);else if(Array.isArray(r))for(let n of r)ze(e,t,n);else ze(e,t,r)}function ze(e,t,n){let r=Be(e,n);if(!m(r))throw Error(`Merge sources must be maps or map aliases`);let i=r.toJSON(null,e,Map);for(let[e,n]of i)t instanceof Map?t.has(e)||t.set(e,n):t instanceof Set?t.add(e):Object.prototype.hasOwnProperty.call(t,e)||Object.defineProperty(t,e,{value:n,writable:!0,enumerable:!0,configurable:!0});return t}function Be(e,t){return e&&f(t)?t.resolve(e.doc,e):t}function Ve(e,t,{key:n,value:r}){if(y(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(Le(e,n))Re(e,t,r);else{let i=k(n,``,e);if(t instanceof Map)t.set(i,k(r,i,e));else if(t instanceof Set)t.add(i);else{let a=He(n,i,e),o=k(r,a,e);a in t?Object.defineProperty(t,a,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[a]=o}}return t}function He(e,t,n){if(t===null)return``;if(typeof t!=`object`)return String(t);if(y(e)&&n?.doc){let t=je(n.doc,{});t.anchors=new Set;for(let e of n.anchors.keys())t.anchors.add(e.anchor);t.inFlow=!0,t.inStringifyKey=!0;let r=e.toString(t);if(!n.mapKeyWarned){let e=JSON.stringify(r);e.length>40&&(e=e.substring(0,36)+`..."`),Fe(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return r}return JSON.stringify(t)}function Ue(e,t,n){return new R(me(e,void 0,n),me(t,void 0,n))}var R=class e{constructor(e,t=null){Object.defineProperty(this,d,{value:c}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return y(n)&&(n=n.clone(t)),y(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){return Ve(t,t?.mapAsMap?new Map:{},this)}toString(e,t,n){return e?.doc?Pe(this,e,t,n):JSON.stringify(this)}};function We(e,t,n){return(t.inFlow??e.flow?Ke:Ge)(e,t,n)}function Ge({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:a,onChompKeep:o,onComment:s}){let{indent:c,options:{commentString:l}}=n,u=Object.assign({},n,{indent:a,type:null}),d=!1,f=[];for(let e=0;e<t.length;++e){let i=t[e],o=null;if(y(i))!d&&i.spaceBefore&&f.push(``),qe(n,f,i.commentBefore,d),i.comment&&(o=i.comment);else if(h(i)){let e=y(i.key)?i.key:null;e&&(!d&&e.spaceBefore&&f.push(``),qe(n,f,e.commentBefore,d))}d=!1;let s=I(i,u,()=>o=null,()=>d=!0);o&&(s+=N(s,a,l(o))),d&&o&&(d=!1),f.push(r+s)}let p;if(f.length===0)p=i.start+i.end;else{p=f[0];for(let e=1;e<f.length;++e){let t=f[e];p+=t?`\n${c}${t}`:`
34
+ `}}return e?(p+=`
35
+ `+M(l(e),c),s&&s()):d&&o&&o(),p}function Ke({items:e},t,{flowChars:n,itemIndent:r}){let{indent:i,indentStep:a,flowCollectionPadding:o,options:{commentString:s}}=t;r+=a;let c=Object.assign({},t,{indent:r,inFlow:!0,type:null}),l=!1,u=0,d=[];for(let n=0;n<e.length;++n){let i=e[n],a=null;if(y(i))i.spaceBefore&&d.push(``),qe(t,d,i.commentBefore,!1),i.comment&&(a=i.comment);else if(h(i)){let e=y(i.key)?i.key:null;e&&(e.spaceBefore&&d.push(``),qe(t,d,e.commentBefore,!1),e.comment&&(l=!0));let n=y(i.value)?i.value:null;n?(n.comment&&(a=n.comment),n.commentBefore&&(l=!0)):i.value==null&&e?.comment&&(a=e.comment)}a&&(l=!0);let o=I(i,c,()=>a=null);l||=d.length>u||o.includes(`
36
+ `),n<e.length-1?o+=`,`:t.options.trailingComma&&(t.options.lineWidth>0&&(l||=d.reduce((e,t)=>e+t.length+2,2)+(o.length+2)>t.options.lineWidth),l&&(o+=`,`)),a&&(o+=N(o,r,s(a))),d.push(o),u=d.length}let{start:f,end:p}=n;if(d.length===0)return f+p;if(!l){let e=d.reduce((e,t)=>e+t.length+2,2);l=t.options.lineWidth>0&&e>t.options.lineWidth}if(l){let e=f;for(let t of d)e+=t?`\n${a}${i}${t}`:`
37
+ `;return`${e}\n${i}${p}`}return`${f}${o}${d.join(` `)}${o}${p}`}function qe({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,``)),r){let i=M(t(r),e);n.push(i.trimStart())}}function z(e,t){let n=g(t)?t.value:t;for(let r of e)if(h(r)&&(r.key===t||r.key===n||g(r.key)&&r.key.value===n))return r}var B=class extends ge{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(s,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,a=new this(e),o=(e,o)=>{if(typeof i==`function`)o=i.call(t,e,o);else if(Array.isArray(i)&&!i.includes(e))return;(o!==void 0||r)&&a.items.push(Ue(e,o,n))};if(t instanceof Map)for(let[e,n]of t)o(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))o(e,t[e]);return typeof e.sortMapEntries==`function`&&a.items.sort(e.sortMapEntries),a}add(e,t){let n;n=h(e)?e:!e||typeof e!=`object`||!(`key`in e)?new R(e,e?.value):new R(e.key,e.value);let r=z(this.items,n.key),i=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);g(r.value)&&de(n.value)?r.value.value=n.value:r.value=n.value}else if(i){let e=this.items.findIndex(e=>i(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=z(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=z(this.items,e)?.value;return(!t&&g(n)?n.value:n)??void 0}has(e){return!!z(this.items,e)}set(e,t){this.add(new R(e,t),!0)}toJSON(e,t,n){let r=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(r);for(let e of this.items)Ve(t,r,e);return r}toString(e,t,n){if(!e)return JSON.stringify(this);for(let e of this.items)if(!h(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),We(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:n,onComment:t})}},V={collection:`map`,default:!0,nodeClass:B,tag:`tag:yaml.org,2002:map`,resolve(e,t){return m(e)||t(`Expected a mapping for this tag`),e},createNode:(e,t,n)=>B.from(e,t,n)},H=class extends ge{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(u,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Je(e);return typeof t==`number`&&this.items.splice(t,1).length>0}get(e,t){let n=Je(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&g(r)?r.value:r}has(e){let t=Je(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=Je(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];g(r)&&de(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(k(e,String(r++),t));return n}toString(e,t,n){return e?We(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let a of t){if(typeof r==`function`){let n=t instanceof Set?a:String(e++);a=r.call(t,n,a)}i.items.push(me(a,void 0,n))}}return i}};function Je(e){let t=g(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}var U={collection:`seq`,default:!0,nodeClass:H,tag:`tag:yaml.org,2002:seq`,resolve(e,t){return _(e)||t(`Expected a sequence for this tag`),e},createNode:(e,t,n)=>H.from(e,t,n)},Ye={identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),Ae(e,t,n,r)}},Xe={identify:e=>e==null,createNode:()=>new A(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new A(null),stringify:({source:e},t)=>typeof e==`string`&&Xe.test.test(e)?e:t.options.nullStr},Ze={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new A(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},n){return e&&Ze.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?n.options.trueStr:n.options.falseStr}};function W({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r==`bigint`)return String(r);let i=typeof r==`number`?r:Number(r);if(!isFinite(i))return isNaN(i)?`.nan`:i<0?`-.inf`:`.inf`;let a=Object.is(r,-0)?`-0`:JSON.stringify(r);if(!e&&t&&(!n||n===`tag:yaml.org,2002:float`)&&/^-?\d/.test(a)&&!a.includes(`e`)){let e=a.indexOf(`.`);e<0&&(e=a.length,a+=`.`);let n=t-(a.length-e-1);for(;n-->0;)a+=`0`}return a}var Qe={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:W},$e={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():W(e)}},et={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let t=new A(parseFloat(e)),n=e.indexOf(`.`);return n!==-1&&e[e.length-1]===`0`&&(t.minFractionDigits=e.length-n-1),t},stringify:W},tt=e=>typeof e==`bigint`||Number.isInteger(e),nt=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function rt(e,t,n){let{value:r}=e;return tt(r)&&r>=0?n+r.toString(t):W(e)}var it={identify:e=>tt(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>nt(e,2,8,n),stringify:e=>rt(e,8,`0o`)},at={identify:tt,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>nt(e,0,10,n),stringify:W},ot={identify:e=>tt(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>nt(e,2,16,n),stringify:e=>rt(e,16,`0x`)},st=[V,U,Ye,Xe,Ze,it,at,ot,Qe,$e,et];function ct(e){return typeof e==`bigint`||Number.isInteger(e)}var lt=({value:e})=>JSON.stringify(e),ut=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:lt},{identify:e=>e==null,createNode:()=>new A(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:lt},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:lt},{identify:ct,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>ct(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:lt}],dt=[V,U].concat(ut,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}}),ft={identify:e=>e instanceof Uint8Array,default:!1,tag:`tag:yaml.org,2002:binary`,resolve(e,t){if(typeof atob==`function`){let t=atob(e.replace(/[\n\r]/g,``)),n=new Uint8Array(t.length);for(let e=0;e<t.length;++e)n[e]=t.charCodeAt(e);return n}return t(`This environment does not support reading binary tags; either Buffer or atob is required`),e},stringify({comment:e,type:t,value:n},r,i,a){if(!n)return``;let o=n,s;if(typeof btoa==`function`){let e=``;for(let t=0;t<o.length;++t)e+=String.fromCharCode(o[t]);s=btoa(e)}else throw Error(`This environment does not support writing binary tags; either Buffer or btoa is required`);if(t??=A.BLOCK_LITERAL,t!==A.QUOTE_DOUBLE){let e=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),n=Math.ceil(s.length/e),i=Array(n);for(let t=0,r=0;t<n;++t,r+=e)i[t]=s.substr(r,e);s=i.join(t===A.BLOCK_LITERAL?`
38
+ `:` `)}return Ae({comment:e,type:t,value:s},r,i,a)}};function pt(e,t){if(_(e))for(let n=0;n<e.items.length;++n){let r=e.items[n];if(!h(r)){if(m(r)){r.items.length>1&&t(`Each pair must have its own sequence indicator`);let e=r.items[0]||new R(new A(null));if(r.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${r.commentBefore}\n${e.key.commentBefore}`:r.commentBefore),r.comment){let t=e.value??e.key;t.comment=t.comment?`${r.comment}\n${t.comment}`:r.comment}r=e}e.items[n]=h(r)?r:new R(r)}}else t(`Expected a sequence for this tag`);return e}function mt(e,t,n){let{replacer:r}=n,i=new H(e);i.tag=`tag:yaml.org,2002:pairs`;let a=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof r==`function`&&(e=r.call(t,String(a++),e));let o,s;if(Array.isArray(e)){if(e.length===2)o=e[0],s=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`)}else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)o=t[0],s=e[o];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else o=e;i.items.push(Ue(o,s,n))}return i}var ht={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:pt,createNode:mt},gt=class e extends H{constructor(){super(),this.add=B.prototype.add.bind(this),this.delete=B.prototype.delete.bind(this),this.get=B.prototype.get.bind(this),this.has=B.prototype.has.bind(this),this.set=B.prototype.set.bind(this),this.tag=e.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let e of this.items){let r,i;if(h(e)?(r=k(e.key,``,t),i=k(e.value,r,t)):r=k(e,``,t),n.has(r))throw Error(`Ordered maps must not include duplicate keys`);n.set(r,i)}return n}static from(e,t,n){let r=mt(e,t,n),i=new this;return i.items=r.items,i}};gt.tag=`tag:yaml.org,2002:omap`;var _t={collection:`seq`,identify:e=>e instanceof Map,nodeClass:gt,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,t){let n=pt(e,t),r=[];for(let{key:e}of n.items)g(e)&&(r.includes(e.value)?t(`Ordered maps must not include duplicate keys: ${e.value}`):r.push(e.value));return Object.assign(new gt,n)},createNode:(e,t,n)=>gt.from(e,t,n)};function vt({value:e,source:t},n){return t&&(e?yt:bt).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}var yt={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new A(!0),stringify:vt},bt={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new A(!1),stringify:vt},xt={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:W},St={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():W(e)}},Ct={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new A(parseFloat(e.replace(/_/g,``))),n=e.indexOf(`.`);if(n!==-1){let r=e.substring(n+1).replace(/_/g,``);r[r.length-1]===`0`&&(t.minFractionDigits=r.length)}return t},stringify:W},G=e=>typeof e==`bigint`||Number.isInteger(e);function wt(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function Tt(e,t,n){let{value:r}=e;if(G(r)){let e=r.toString(t);return r<0?`-`+n+e.substr(1):n+e}return W(e)}var Et={identify:G,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>wt(e,2,2,n),stringify:e=>Tt(e,2,`0b`)},Dt={identify:G,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>wt(e,1,8,n),stringify:e=>Tt(e,8,`0`)},Ot={identify:G,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>wt(e,0,10,n),stringify:W},kt={identify:G,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>wt(e,2,16,n),stringify:e=>Tt(e,16,`0x`)},At=class e extends B{constructor(t){super(t),this.tag=e.tag}add(e){let t;t=h(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new R(e.key,null):new R(e,null),z(this.items,t.key)||this.items.push(t)}get(e,t){let n=z(this.items,e);return!t&&h(n)?g(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=z(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new R(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof r==`function`&&(e=r.call(t,e,e)),i.items.push(Ue(e,null,n));return i}};At.tag=`tag:yaml.org,2002:set`;var jt={collection:`map`,identify:e=>e instanceof Set,nodeClass:At,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>At.from(e,t,n),resolve(e,t){if(m(e)){if(e.hasAllNullValues(!0))return Object.assign(new At,e);t(`Set items must all have null values`)}else t(`Expected a mapping for this tag`);return e}};function Mt(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function Nt(e){let{value:t}=e,n=e=>e;if(typeof t==`bigint`)n=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return W(e);let r=``;t<0&&(r=`-`,t*=n(-1));let i=n(60),a=[t%i];return t<60?a.unshift(0):(t=(t-a[0])/i,a.unshift(t%i),t>=60&&(t=(t-a[0])/i,a.unshift(t))),r+a.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}var Pt={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>Mt(e,n),stringify:Nt},Ft={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>Mt(e,!1),stringify:Nt},It={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(It.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,n,r,i,a,o,s]=t.map(Number),c=t[7]?Number((t[7]+`00`).substr(1,3)):0,l=Date.UTC(n,r-1,i,a||0,o||0,s||0,c),u=t[8];if(u&&u!==`Z`){let e=Mt(u,!1);Math.abs(e)<30&&(e*=60),l-=6e4*e}return new Date(l)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,``)??``},Lt=[V,U,Ye,Xe,yt,bt,Et,Dt,Ot,kt,xt,St,Ct,ft,L,_t,ht,jt,Pt,Ft,It],Rt=new Map([[`core`,st],[`failsafe`,[V,U,Ye]],[`json`,dt],[`yaml11`,Lt],[`yaml-1.1`,Lt]]),zt={binary:ft,bool:Ze,float:et,floatExp:$e,floatNaN:Qe,floatTime:Ft,int:at,intHex:ot,intOct:it,intTime:Pt,map:V,merge:L,null:Xe,omap:_t,pairs:ht,seq:U,set:jt,timestamp:It},Bt={"tag:yaml.org,2002:binary":ft,"tag:yaml.org,2002:merge":L,"tag:yaml.org,2002:omap":_t,"tag:yaml.org,2002:pairs":ht,"tag:yaml.org,2002:set":jt,"tag:yaml.org,2002:timestamp":It};function Vt(e,t,n){let r=Rt.get(t);if(r&&!e)return n&&!r.includes(L)?r.concat(L):r.slice();let i=r;if(!i){if(Array.isArray(e))i=[];else{let e=Array.from(Rt.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}}if(Array.isArray(e))for(let t of e)i=i.concat(t);else typeof e==`function`&&(i=e(i.slice()));return n&&(i=i.concat(L)),i.reduce((e,t)=>{let n=typeof t==`string`?zt[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys(zt).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag ${e}; use one of ${n}`)}return e.includes(n)||e.push(n),e},[])}var Ht=(e,t)=>e.key<t.key?-1:+(e.key>t.key),Ut=class e{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:r,schema:i,sortMapEntries:a,toStringDefaults:o}){this.compat=Array.isArray(e)?Vt(e,`compat`):e?Vt(null,e):null,this.name=typeof i==`string`&&i||`core`,this.knownTags=r?Bt:{},this.tags=Vt(t,this.name,n),this.toStringOptions=o??null,Object.defineProperty(this,s,{value:V}),Object.defineProperty(this,l,{value:Ye}),Object.defineProperty(this,u,{value:U}),this.sortMapEntries=typeof a==`function`?a:a===!0?Ht:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};function Wt(e,t){let n=[],r=t.directives===!0;if(t.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(n.push(t),r=!0):e.directives.docStart&&(r=!0)}r&&n.push(`---`);let i=je(e,t),{commentString:a}=i.options;if(e.commentBefore){n.length!==1&&n.unshift(``);let t=a(e.commentBefore);n.unshift(M(t,``))}let o=!1,s=null;if(e.contents){if(y(e.contents)){if(e.contents.spaceBefore&&r&&n.push(``),e.contents.commentBefore){let t=a(e.contents.commentBefore);n.push(M(t,``))}i.forceBlockIndent=!!e.comment,s=e.contents.comment}let t=s?void 0:()=>o=!0,c=I(e.contents,i,()=>s=null,t);s&&(c+=N(c,``,a(s))),(c[0]===`|`||c[0]===`>`)&&n[n.length-1]===`---`?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(I(e.contents,i));if(e.directives?.docEnd){if(e.comment){let t=a(e.comment);t.includes(`
39
+ `)?(n.push(`...`),n.push(M(t,``))):n.push(`... ${t}`)}else n.push(`...`)}else{let t=e.comment;t&&o&&(t=t.replace(/^\n+/,``)),t&&((!o||s)&&n[n.length-1]!==``&&n.push(``),n.push(M(a(t),``)))}return n.join(`
40
+ `)+`
41
+ `}var Gt=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,d,{value:o});let r=null;typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:`warn`,prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:`1.2`},n);this.options=i;let{version:a}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(a=this.directives.yaml.version)):this.directives=new D({version:a}),this.setSchema(a,n),this.contents=e===void 0?null:this.createNode(e,r,n)}clone(){let t=Object.create(e.prototype,{[d]:{value:o}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=y(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){K(this.contents)&&this.contents.add(e)}addIn(e,t){K(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=ae(this);e.anchor=!t||n.has(t)?oe(t||`a`,n):t}return new le(e.anchor)}createNode(e,t,n){let r;if(typeof t==`function`)e=t.call({"":e},``,e),r=t;else if(Array.isArray(t)){let e=t.filter(e=>typeof e==`number`||e instanceof String||e instanceof Number).map(String);e.length>0&&(t=t.concat(e)),r=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:a,flow:o,keepUndefined:s,onTagObj:c,tag:l}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:f}=se(this,a||`a`),p={aliasDuplicateObjects:i??!0,keepUndefined:s??!1,onAnchor:u,onTagObj:c,replacer:r,schema:this.schema,sourceObjects:f},m=me(e,l,p);return o&&v(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){return new R(this.createNode(e,null,n),this.createNode(t,null,n))}delete(e){return K(this.contents)?this.contents.delete(e):!1}deleteIn(e){return j(e)?this.contents!=null&&(this.contents=null,!0):K(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return v(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return j(e)?!t&&g(this.contents)?this.contents.value:this.contents:v(this.contents)?this.contents.getIn(e,t):void 0}has(e){return v(this.contents)?this.contents.has(e):!1}hasIn(e){return j(e)?this.contents!==void 0:v(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=he(this.schema,[e],t):K(this.contents)&&this.contents.set(e,t)}setIn(e,t){j(e)?this.contents=t:this.contents==null?this.contents=he(this.schema,Array.from(e),t):K(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e==`number`&&(e=String(e));let n;switch(e){case`1.1`:this.directives?this.directives.yaml.version=`1.1`:this.directives=new D({version:`1.1`}),n={resolveKnownTags:!1,schema:`yaml-1.1`};break;case`1.2`:case`next`:this.directives?this.directives.yaml.version=e:this.directives=new D({version:e}),n={resolveKnownTags:!0,schema:`core`};break;case null:this.directives&&delete this.directives,n=null;break;default:{let t=JSON.stringify(e);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new Ut(Object.assign(n,t));else throw Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:a}={}){let o={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r==`number`?r:100},s=k(this.contents,t??``,o);if(typeof i==`function`)for(let{count:e,res:t}of o.anchors.values())i(t,e);return typeof a==`function`?O(a,{"":s},``,s):s}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw Error(`Document with errors cannot be stringified`);if(`indent`in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw Error(`"indent" option must be a positive integer, not ${t}`)}return Wt(this,e)}};function K(e){if(v(e))return!0;throw Error(`Expected a YAML collection as document contents`)}var Kt=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},q=class extends Kt{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},qt=class extends Kt{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}},Jt=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(e=>t.linePos(e));let{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let a=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,``);if(a>=60&&o.length>80){let e=Math.min(a-39,o.length-79);o=`…`+o.substring(e),a-=e-1}if(o.length>80&&(o=o.substring(0,79)+`…`),r>1&&/^ *$/.test(o.substring(0,a))){let n=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);n.length>80&&(n=n.substring(0,79)+`…
42
+ `),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t?.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}};function J(e,{flow:t,indicator:n,next:r,offset:i,onError:a,parentIndent:o,startOnNewline:s}){let c=!1,l=s,u=s,d=``,f=``,p=!1,m=!1,h=null,g=null,_=null,v=null,y=null,b=null,x=null;for(let i of e)switch(m&&=(i.type!==`space`&&i.type!==`newline`&&i.type!==`comma`&&a(i.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),!1),h&&=(l&&i.type!==`comment`&&i.type!==`newline`&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),null),i.type){case`space`:!t&&(n!==`doc-start`||r?.type!==`flow-collection`)&&i.source.includes(` `)&&(h=i),u=!0;break;case`comment`:{u||a(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let e=i.source.substring(1)||` `;d?d+=f+e:d=e,f=``,l=!1;break}case`newline`:l?d?d+=i.source:b&&n===`seq-item-ind`||(c=!0):f+=i.source,l=!0,p=!0,(g||_)&&(v=i),u=!0;break;case`anchor`:g&&a(i,`MULTIPLE_ANCHORS`,`A node can have at most one anchor`),i.source.endsWith(`:`)&&a(i.offset+i.source.length-1,`BAD_ALIAS`,`Anchor ending in : is ambiguous`,!0),g=i,x??=i.offset,l=!1,u=!1,m=!0;break;case`tag`:_&&a(i,`MULTIPLE_TAGS`,`A node can have at most one tag`),_=i,x??=i.offset,l=!1,u=!1,m=!0;break;case n:(g||_)&&a(i,`BAD_PROP_ORDER`,`Anchors and tags must be after the ${i.source} indicator`),b&&a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.source} in ${t??`collection`}`),b=i,l=n===`seq-item-ind`||n===`explicit-key-ind`,u=!1;break;case`comma`:if(t){y&&a(i,`UNEXPECTED_TOKEN`,`Unexpected , in ${t}`),y=i,l=!1,u=!1;break}default:a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.type} token`),l=!1,u=!1}let S=e[e.length-1],C=S?S.offset+S.source.length:i;return m&&r&&r.type!==`space`&&r.type!==`newline`&&r.type!==`comma`&&(r.type!==`scalar`||r.source!==``)&&a(r.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),h&&(l&&h.indent<=o||r?.type===`block-map`||r?.type===`block-seq`)&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),{comma:y,found:b,spaceBefore:c,comment:d,hasNewline:p,anchor:g,tag:_,newlineAfterProp:v,end:C,start:x??C}}function Y(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(`
43
+ `))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let t of e.items){for(let e of t.start)if(e.type===`newline`)return!0;if(t.sep){for(let e of t.sep)if(e.type===`newline`)return!0}if(Y(t.key)||Y(t.value))return!0}return!1;default:return!0}}function Yt(e,t,n){if(t?.type===`flow-collection`){let r=t.end[0];r.indent===e&&(r.source===`]`||r.source===`}`)&&Y(t)&&n(r,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}function Xt(e,t,n){let{uniqueKeys:r}=e.options;if(r===!1)return!1;let i=typeof r==`function`?r:(e,t)=>e===t||g(e)&&g(t)&&e.value===t.value;return t.some(e=>i(e.key,n))}var Zt=`All mapping items must start at the same column`;function Qt({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new((a?.nodeClass)??B)(n.schema);n.atRoot&&=!1;let s=r.offset,c=null;for(let a of r.items){let{start:l,key:u,sep:d,value:f}=a,p=J(l,{indicator:`explicit-key-ind`,next:u??d?.[0],offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!p.found;if(m){if(u&&(u.type===`block-seq`?i(s,`BLOCK_AS_IMPLICIT_KEY`,`A block sequence may not be used as an implicit map key`):`indent`in u&&u.indent!==r.indent&&i(s,`BAD_INDENT`,Zt)),!p.anchor&&!p.tag&&!d){c=p.end,p.comment&&(o.comment?o.comment+=`
44
+ `+p.comment:o.comment=p.comment);continue}(p.newlineAfterProp||Y(u))&&i(u??l[l.length-1],`MULTILINE_IMPLICIT_KEY`,`Implicit keys need to be on a single line`)}else p.found?.indent!==r.indent&&i(s,`BAD_INDENT`,Zt);n.atKey=!0;let h=p.end,g=u?e(n,u,p,i):t(n,h,l,null,p,i);n.schema.compat&&Yt(r.indent,u,i),n.atKey=!1,Xt(n,o.items,g)&&i(h,`DUPLICATE_KEY`,`Map keys must be unique`);let _=J(d??[],{indicator:`map-value-ind`,next:f,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!u||u.type===`block-scalar`});if(s=_.end,_.found){m&&(f?.type===`block-map`&&!_.hasNewline&&i(s,`BLOCK_AS_IMPLICIT_KEY`,`Nested mappings are not allowed in compact mappings`),n.options.strict&&p.start<_.found.offset-1024&&i(g.range,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit block mapping key`));let c=f?e(n,f,_,i):t(n,s,d,null,_,i);n.schema.compat&&Yt(r.indent,f,i),s=c.range[2];let l=new R(g,c);n.options.keepSourceTokens&&(l.srcToken=a),o.items.push(l)}else{m&&i(g.range,`MISSING_CHAR`,`Implicit map keys need to be followed by map values`),_.comment&&(g.comment?g.comment+=`
45
+ `+_.comment:g.comment=_.comment);let e=new R(g);n.options.keepSourceTokens&&(e.srcToken=a),o.items.push(e)}}return c&&c<s&&i(c,`IMPOSSIBLE`,`Map comment with trailing content`),o.range=[r.offset,s,c??s],o}function $t({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new((a?.nodeClass)??H)(n.schema);n.atRoot&&=!1,n.atKey&&=!1;let s=r.offset,c=null;for(let{start:a,value:l}of r.items){let u=J(a,{indicator:`seq-item-ind`,next:l,offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0});if(!u.found){if(u.anchor||u.tag||l)l?.type===`block-seq`?i(u.end,`BAD_INDENT`,`All sequence items must start at the same column`):i(s,`MISSING_CHAR`,`Sequence item without - indicator`);else{c=u.end,u.comment&&(o.comment=u.comment);continue}}let d=l?e(n,l,u,i):t(n,u.end,a,null,u,i);n.schema.compat&&Yt(r.indent,l,i),s=d.range[2],o.items.push(d)}return o.range=[r.offset,s,c??s],o}function en(e,t,n,r){let i=``;if(e){let a=!1,o=``;for(let s of e){let{source:e,type:c}=s;switch(c){case`space`:a=!0;break;case`comment`:{n&&!a&&r(s,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let t=e.substring(1)||` `;i?i+=o+t:i=t,o=``;break}case`newline`:i&&(o+=e),a=!0;break;default:r(s,`UNEXPECTED_TOKEN`,`Unexpected ${c} at node end`)}t+=e.length}}return{comment:i,offset:t}}var tn=`Block collections are not allowed within flow collections`,nn=e=>e&&(e.type===`block-map`||e.type===`block-seq`);function rn({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=r.start.source===`{`,s=o?`flow map`:`flow sequence`,c=new((a?.nodeClass)??(o?B:H))(n.schema);c.flow=!0;let l=n.atRoot;l&&(n.atRoot=!1),n.atKey&&=!1;let u=r.offset+r.start.source.length;for(let a=0;a<r.items.length;++a){let l=r.items[a],{start:d,key:f,sep:p,value:m}=l,g=J(d,{flow:s,indicator:`explicit-key-ind`,next:f??p?.[0],offset:u,onError:i,parentIndent:r.indent,startOnNewline:!1});if(!g.found){if(!g.anchor&&!g.tag&&!p&&!m){a===0&&g.comma?i(g.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`):a<r.items.length-1&&i(g.start,`UNEXPECTED_TOKEN`,`Unexpected empty item in ${s}`),g.comment&&(c.comment?c.comment+=`
46
+ `+g.comment:c.comment=g.comment),u=g.end;continue}!o&&n.options.strict&&Y(f)&&i(f,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`)}if(a===0)g.comma&&i(g.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`);else if(g.comma||i(g.start,`MISSING_CHAR`,`Missing , between ${s} items`),g.comment){let e=``;loop:for(let t of d)switch(t.type){case`comma`:case`space`:break;case`comment`:e=t.source.substring(1);break loop;default:break loop}if(e){let t=c.items[c.items.length-1];h(t)&&(t=t.value??t.key),t.comment?t.comment+=`
47
+ `+e:t.comment=e,g.comment=g.comment.substring(e.length+1)}}if(!o&&!p&&!g.found){let r=m?e(n,m,g,i):t(n,g.end,p,null,g,i);c.items.push(r),u=r.range[2],nn(m)&&i(r.range,`BLOCK_IN_FLOW`,tn)}else{n.atKey=!0;let a=g.end,h=f?e(n,f,g,i):t(n,a,d,null,g,i);nn(f)&&i(h.range,`BLOCK_IN_FLOW`,tn),n.atKey=!1;let _=J(p??[],{flow:s,indicator:`map-value-ind`,next:m,offset:h.range[2],onError:i,parentIndent:r.indent,startOnNewline:!1});if(_.found){if(!o&&!g.found&&n.options.strict){if(p)for(let e of p){if(e===_.found)break;if(e.type===`newline`){i(e,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`);break}}g.start<_.found.offset-1024&&i(_.found,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit flow sequence key`)}}else m&&(`source`in m&&m.source?.[0]===`:`?i(m,`MISSING_CHAR`,`Missing space after : in ${s}`):i(_.start,`MISSING_CHAR`,`Missing , or : between ${s} items`));let v=m?e(n,m,_,i):_.found?t(n,_.end,p,null,_,i):null;v?nn(m)&&i(v.range,`BLOCK_IN_FLOW`,tn):_.comment&&(h.comment?h.comment+=`
48
+ `+_.comment:h.comment=_.comment);let y=new R(h,v);if(n.options.keepSourceTokens&&(y.srcToken=l),o){let e=c;Xt(n,e.items,h)&&i(a,`DUPLICATE_KEY`,`Map keys must be unique`),e.items.push(y)}else{let e=new B(n.schema);e.flow=!0,e.items.push(y);let t=(v??h).range;e.range=[h.range[0],t[1],t[2]],c.items.push(e)}u=v?v.range[2]:_.end}}let d=o?`}`:`]`,[f,...p]=r.end,m=u;if(f?.source===d)m=f.offset+f.source.length;else{let e=s[0].toUpperCase()+s.substring(1),t=l?`${e} must end with a ${d}`:`${e} in block collection must be sufficiently indented and end with a ${d}`;i(u,l?`MISSING_CHAR`:`BAD_INDENT`,t),f&&f.source.length!==1&&p.unshift(f)}if(p.length>0){let e=en(p,m,n.options.strict,i);e.comment&&(c.comment?c.comment+=`
49
+ `+e.comment:c.comment=e.comment),c.range=[r.offset,m,e.offset]}else c.range=[r.offset,m,m];return c}function an(e,t,n,r,i,a){let o=n.type===`block-map`?Qt(e,t,n,r,a):n.type===`block-seq`?$t(e,t,n,r,a):rn(e,t,n,r,a),s=o.constructor;return i===`!`||i===s.tagName?(o.tag=s.tagName,o):(i&&(o.tag=i),o)}function on(e,t,n,r,i){let a=r.tag,o=a?t.directives.tagName(a.source,e=>i(a,`TAG_RESOLVE_FAILED`,e)):null;if(n.type===`block-seq`){let{anchor:e,newlineAfterProp:t}=r,n=e&&a?e.offset>a.offset?e:a:e??a;n&&(!t||t.offset<n.offset)&&i(n,`MISSING_CHAR`,`Missing newline after block sequence props`)}let s=n.type===`block-map`?`map`:n.type===`block-seq`?`seq`:n.start.source===`{`?`map`:`seq`;if(!a||!o||o===`!`||o===B.tagName&&s===`map`||o===H.tagName&&s===`seq`)return an(e,t,n,i,o);let c=t.schema.tags.find(e=>e.tag===o&&e.collection===s);if(!c){let r=t.schema.knownTags[o];if(r?.collection===s)t.schema.tags.push(Object.assign({},r,{default:!1})),c=r;else return r?i(a,`BAD_COLLECTION_TYPE`,`${r.tag} used for ${s} collection, but expects ${r.collection??`scalar`}`,!0):i(a,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${o}`,!0),an(e,t,n,i,o)}let l=an(e,t,n,i,o,c),u=c.resolve?.(l,e=>i(a,`TAG_RESOLVE_FAILED`,e),t.options)??l,d=y(u)?u:new A(u);return d.range=l.range,d.tag=o,c?.format&&(d.format=c.format),d}function sn(e,t,n){let r=t.offset,i=cn(t,e.options.strict,n);if(!i)return{value:``,type:null,comment:``,range:[r,r,r]};let a=i.mode===`>`?A.BLOCK_FOLDED:A.BLOCK_LITERAL,o=t.source?ln(t.source):[],s=o.length;for(let e=o.length-1;e>=0;--e){let t=o[e][1];if(t===``||t===`\r`)s=e;else break}if(s===0){let e=i.chomp===`+`&&o.length>0?`
50
+ `.repeat(Math.max(1,o.length-1)):``,n=r+i.length;return t.source&&(n+=t.source.length),{value:e,type:a,comment:i.comment,range:[r,n,n]}}let c=t.indent+i.indent,l=t.offset+i.length,u=0;for(let t=0;t<s;++t){let[r,a]=o[t];if(a===``||a===`\r`)i.indent===0&&r.length>c&&(c=r.length);else{r.length<c&&n(l+r.length,`MISSING_CHAR`,`Block scalars with more-indented leading empty lines must use an explicit indentation indicator`),i.indent===0&&(c=r.length),u=t,c===0&&!e.atRoot&&n(l,`BAD_INDENT`,`Block scalar values in collections must be indented`);break}l+=r.length+a.length+1}for(let e=o.length-1;e>=s;--e)o[e][0].length>c&&(s=e+1);let d=``,f=``,p=!1;for(let e=0;e<u;++e)d+=o[e][0].slice(c)+`
51
+ `;for(let e=u;e<s;++e){let[t,r]=o[e];l+=t.length+r.length+1;let s=r[r.length-1]===`\r`;if(s&&(r=r.slice(0,-1)),r&&t.length<c){let e=`Block scalar lines must not be less indented than their ${i.indent?`explicit indentation indicator`:`first line`}`;n(l-r.length-(s?2:1),`BAD_INDENT`,e),t=``}a===A.BLOCK_LITERAL?(d+=f+t.slice(c)+r,f=`
52
+ `):t.length>c||r[0]===` `?(f===` `?f=`
53
+ `:!p&&f===`
54
+ `&&(f=`
55
+
56
+ `),d+=f+t.slice(c)+r,f=`
57
+ `,p=!0):r===``?f===`
58
+ `?d+=`
59
+ `:f=`
60
+ `:(d+=f+r,f=` `,p=!1)}switch(i.chomp){case`-`:break;case`+`:for(let e=s;e<o.length;++e)d+=`
61
+ `+o[e][0].slice(c);d[d.length-1]!==`
62
+ `&&(d+=`
63
+ `);break;default:d+=`
64
+ `}let m=r+i.length+t.source.length;return{value:d,type:a,comment:i.comment,range:[r,m,m]}}function cn({offset:e,props:t},n,r){if(t[0].type!==`block-scalar-header`)return r(t[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source:i}=t[0],a=i[0],o=0,s=``,c=-1;for(let t=1;t<i.length;++t){let n=i[t];if(!s&&(n===`-`||n===`+`))s=n;else{let r=Number(n);!o&&r?o=r:c===-1&&(c=e+t)}}c!==-1&&r(c,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${i}`);let l=!1,u=``,d=i.length;for(let e=1;e<t.length;++e){let i=t[e];switch(i.type){case`space`:l=!0;case`newline`:d+=i.source.length;break;case`comment`:n&&!l&&r(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),d+=i.source.length,u=i.source.substring(1);break;case`error`:r(i,`UNEXPECTED_TOKEN`,i.message),d+=i.source.length;break;default:{r(i,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${i.type}`);let e=i.source;e&&typeof e==`string`&&(d+=e.length)}}}return{mode:a,indent:o,chomp:s,comment:u,length:d}}function ln(e){let t=e.split(/\n( *)/),n=t[0],r=n.match(/^( *)/),i=[r?.[1]?[r[1],n.slice(r[1].length)]:[``,n]];for(let e=1;e<t.length;e+=2)i.push([t[e],t[e+1]]);return i}function un(e,t,n){let{offset:r,type:i,source:a,end:o}=e,s,c,l=(e,t,i)=>n(r+e,t,i);switch(i){case`scalar`:s=A.PLAIN,c=dn(a,l);break;case`single-quoted-scalar`:s=A.QUOTE_SINGLE,c=fn(a,l);break;case`double-quoted-scalar`:s=A.QUOTE_DOUBLE,c=mn(a,l);break;default:return n(e,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${i}`),{value:``,type:null,comment:``,range:[r,r+a.length,r+a.length]}}let u=r+a.length,d=en(o,u,t,n);return{value:c,type:s,comment:d.comment,range:[r,u,d.offset]}}function dn(e,t){let n=``;switch(e[0]){case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;case`%`:n=`directive indicator character %`;break;case`|`:case`>`:n=`block scalar indicator ${e[0]}`;break;case`@`:case"`":n=`reserved character ${e[0]}`}return n&&t(0,`BAD_SCALAR_START`,`Plain value cannot start with ${n}`),pn(e)}function fn(e,t){return(e[e.length-1]!==`'`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing 'quote`),pn(e.slice(1,-1)).replace(/''/g,`'`)}function pn(e){let t=/(.*?)\r?\n/sy,n=t.exec(e);if(!n)return e;let r,i;try{r=RegExp(`(?<![ ])[ ]+$`),i=RegExp(`^[ ]+|(?<![ ])[ ]+$`,`g`)}catch{r=/[ \t]+$/,i=/^[ \t]+|[ \t]+$/g}let a=n[1].replace(r,``),o=` `,s=t.lastIndex;for(;n=t.exec(e);){let e=n[1].replace(i,``);e===``?o===`
65
+ `?a+=o:o=`
66
+ `:(a+=o+e,o=` `),s=t.lastIndex}let c=/[ \t]*(.*)/sy;return c.lastIndex=s,n=c.exec(e),a+o+(n?.[1]??``)}function mn(e,t){let n=``;for(let r=1;r<e.length-1;++r){let i=e[r];if(i!==`\r`||e[r+1]!==`
67
+ `){if(i===`
68
+ `){let{fold:t,offset:i}=hn(e,r);n+=t,r=i}else if(i===`\\`){let i=e[++r],a=gn[i];if(a)n+=a;else if(i===`
69
+ `)for(i=e[r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`\r`&&e[r+1]===`
70
+ `)for(i=e[++r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`x`||i===`u`||i===`U`){let a=i===`x`?2:i===`u`?4:8;n+=_n(e,r+1,a,t),r+=a}else{let i=e.substr(r-1,2);t(r-1,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),n+=i}}else if(i===` `||i===` `){let t=r,a=e[r+1];for(;a===` `||a===` `;)a=e[++r+1];a!==`
71
+ `&&(a!==`\r`||e[r+2]!==`
72
+ `)&&(n+=r>t?e.slice(t,r+1):i)}else n+=i}}return(e[e.length-1]!==`"`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing "quote`),n}function hn(e,t){let n=``,r=e[t+1];for(;(r===` `||r===` `||r===`
73
+ `||r===`\r`)&&(r!==`\r`||e[t+2]===`
74
+ `);)r===`
75
+ `&&(n+=`
76
+ `),t+=1,r=e[t+1];return n||=` `,{fold:n,offset:t}}var gn={0:`\0`,a:`\x07`,b:`\b`,e:`\x1B`,f:`\f`,n:`
77
+ `,r:`\r`,t:` `,v:`\v`,N:`…`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function _n(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(a)}catch{let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}}function vn(e,t,n,r){let{value:i,type:a,comment:o,range:s}=t.type===`block-scalar`?sn(e,t,r):un(t,e.options.strict,r),c=n?e.directives.tagName(n.source,e=>r(n,`TAG_RESOLVE_FAILED`,e)):null,u;u=e.options.stringKeys&&e.atKey?e.schema[l]:c?yn(e.schema,i,c,n,r):t.type===`scalar`?bn(e,i,t,r):e.schema[l];let d;try{let a=u.resolve(i,e=>r(n??t,`TAG_RESOLVE_FAILED`,e),e.options);d=g(a)?a:new A(a)}catch(e){let a=e instanceof Error?e.message:String(e);r(n??t,`TAG_RESOLVE_FAILED`,a),d=new A(i)}return d.range=s,d.source=i,a&&(d.type=a),c&&(d.tag=c),u.format&&(d.format=u.format),o&&(d.comment=o),d}function yn(e,t,n,r,i){if(n===`!`)return e[l];let a=[];for(let t of e.tags)if(!t.collection&&t.tag===n){if(t.default&&t.test)a.push(t);else return t}for(let e of a)if(e.test?.test(t))return e;let o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${n}`,n!==`tag:yaml.org,2002:str`),e[l])}function bn({atKey:e,directives:t,schema:n},r,i,a){let o=n.tags.find(t=>(t.default===!0||e&&t.default===`key`)&&t.test?.test(r))||n[l];if(n.compat){let e=n.compat.find(e=>e.default&&e.test?.test(r))??n[l];o.tag!==e.tag&&a(i,`TAG_RESOLVE_FAILED`,`Value may be parsed as either ${t.tagString(o.tag)} or ${t.tagString(e.tag)}`,!0)}return o}function xn(e,t,n){if(t){n??=t.length;for(let r=n-1;r>=0;--r){let n=t[r];switch(n.type){case`space`:case`comment`:case`newline`:e-=n.source.length;continue}for(n=t[++r];n?.type===`space`;)e+=n.source.length,n=t[++r];break}}return e}var Sn={composeNode:Cn,composeEmptyNode:wn};function Cn(e,t,n,r){let i=e.atKey,{spaceBefore:a,comment:o,anchor:s,tag:c}=n,l,u=!0;switch(t.type){case`alias`:l=Tn(e,t,r),(s||c)&&r(t,`ALIAS_PROPS`,`An alias node must not specify any properties`);break;case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`block-scalar`:l=vn(e,t,c,r),s&&(l.anchor=s.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:try{l=on(Sn,e,t,n,r),s&&(l.anchor=s.source.substring(1))}catch(e){r(t,`RESOURCE_EXHAUSTION`,e instanceof Error?e.message:String(e))}break;default:r(t,`UNEXPECTED_TOKEN`,t.type===`error`?t.message:`Unsupported token (type: ${t.type})`),u=!1}return l??=wn(e,t.offset,void 0,null,n,r),s&&l.anchor===``&&r(s,`BAD_ALIAS`,`Anchor cannot be an empty string`),i&&e.options.stringKeys&&(!g(l)||typeof l.value!=`string`||l.tag&&l.tag!==`tag:yaml.org,2002:str`)&&r(c??t,`NON_STRING_KEY`,`With stringKeys, all keys must be strings`),a&&(l.spaceBefore=!0),o&&(t.type===`scalar`&&t.source===``?l.comment=o:l.commentBefore=o),e.options.keepSourceTokens&&u&&(l.srcToken=t),l}function wn(e,t,n,r,{spaceBefore:i,comment:a,anchor:o,tag:s,end:c},l){let u=vn(e,{type:`scalar`,offset:xn(t,n,r),indent:-1,source:``},s,l);return o&&(u.anchor=o.source.substring(1),u.anchor===``&&l(o,`BAD_ALIAS`,`Anchor cannot be an empty string`)),i&&(u.spaceBefore=!0),a&&(u.comment=a,u.range[2]=c),u}function Tn({options:e},{offset:t,source:n,end:r},i){let a=new le(n.substring(1));a.source===``&&i(t,`BAD_ALIAS`,`Alias cannot be an empty string`),a.source.endsWith(`:`)&&i(t+n.length-1,`BAD_ALIAS`,`Alias ending in : is ambiguous`,!0);let o=t+n.length,s=en(r,o,e.strict,i);return a.range=[t,o,s.offset],s.comment&&(a.comment=s.comment),a}function En(e,t,{offset:n,start:r,value:i,end:a},o){let s=new Gt(void 0,Object.assign({_directives:t},e)),c={atKey:!1,atRoot:!0,directives:s.directives,options:s.options,schema:s.schema},l=J(r,{indicator:`doc-start`,next:i??a?.[0],offset:n,onError:o,parentIndent:0,startOnNewline:!0});l.found&&(s.directives.docStart=!0,i&&(i.type===`block-map`||i.type===`block-seq`)&&!l.hasNewline&&o(l.end,`MISSING_CHAR`,`Block collection cannot start on same line with directives-end marker`)),s.contents=i?Cn(c,i,l,o):wn(c,l.end,r,null,l,o);let u=s.contents.range[2],d=en(a,u,!1,o);return d.comment&&(s.comment=d.comment),s.range=[n,u,d.offset],s}function Dn(e){if(typeof e==`number`)return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:n}=e;return[t,t+(typeof n==`string`?n.length:1)]}function On(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;++i){let a=e[i];switch(a[0]){case`#`:t+=(t===``?``:r?`
78
+
79
+ `:`
80
+ `)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}var kn=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let i=Dn(e);r?this.warnings.push(new qt(i,t,n)):this.errors.push(new q(i,t,n))},this.directives=new D({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=On(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(v(i)&&!i.flow&&i.items.length>0){let e=i.items[0];h(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}if(t){for(let t=0;t<this.errors.length;++t)e.errors.push(this.errors[t]);for(let t=0;t<this.warnings.length;++t)e.warnings.push(this.warnings[t])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:On(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let t of e)yield*this.next(t);yield*this.end(t,n)}*next(e){switch(e.type){case`directive`:this.directives.add(e.source,(t,n,r)=>{let i=Dn(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=En(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new q(Dn(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new q(Dn(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=en(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new q(Dn(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=new Gt(void 0,Object.assign({_directives:this.directives},this.options));this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),e.range=[0,t,t],this.decorate(e,!1),yield e}}},An=Symbol(`break visit`),jn=Symbol(`skip children`),Mn=Symbol(`remove item`);function X(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),Nn(Object.freeze([]),e,t)}X.BREAK=An,X.SKIP=jn,X.REMOVE=Mn,X.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},X.parentCollection=(e,t)=>{let n=X.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],i=n?.[r];if(i&&`items`in i)return i;throw Error(`Parent collection not found`)};function Nn(e,t,n){let r=n(t,e);if(typeof r==`symbol`)return r;for(let i of[`key`,`value`]){let a=t[i];if(a&&`items`in a){for(let t=0;t<a.items.length;++t){let r=Nn(Object.freeze(e.concat([[i,t]])),a.items[t],n);if(typeof r==`number`)t=r-1;else if(r===An)return An;else r===Mn&&(a.items.splice(t,1),--t)}typeof r==`function`&&i===`key`&&(r=r(t,e))}}return typeof r==`function`?r(t,e):r}function Pn(e){switch(e){case``:return`byte-order-mark`;case``:return`doc-mode`;case``:return`flow-error-end`;case``:return`scalar`;case`---`:return`doc-start`;case`...`:return`doc-end`;case``:case`
81
+ `:case`\r
82
+ `:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}function Z(e){switch(e){case void 0:case` `:case`
83
+ `:case`\r`:case` `:return!0;default:return!1}}var Fn=new Set(`0123456789ABCDEFabcdef`),In=new Set(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()`),Ln=new Set(`,[]{}`),Rn=new Set(` ,[]{}
84
+ \r `),zn=e=>!e||Rn.has(e),Bn=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer=``,this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!=`string`)throw TypeError(`source is not a string`);this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??`stream`;for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===` `||t===` `;)t=this.buffer[++e];return!t||t===`#`||t===`
85
+ `||t===`\r`&&this.buffer[e+1]===`
86
+ `}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===` `;)t=this.buffer[++n+e];if(t===`\r`){let t=this.buffer[n+e+1];if(t===`
87
+ `||!t&&!this.atEnd)return e+n+1}return t===`
88
+ `||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t===`-`||t===`.`){let t=this.buffer.substr(e,3);if((t===`---`||t===`...`)&&Z(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!=`number`||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
89
+ `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]===`\r`&&--e,this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case`stream`:return yield*this.parseStream();case`line-start`:return yield*this.parseLineStart();case`block-start`:return yield*this.parseBlockStart();case`doc`:return yield*this.parseDocument();case`flow`:return yield*this.parseFlowCollection();case`quoted-scalar`:return yield*this.parseQuotedScalar();case`block-scalar`:return yield*this.parseBlockScalar();case`plain-scalar`:return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext(`stream`);if(e[0]===``&&(yield*this.pushCount(1),e=e.substring(1)),e[0]===`%`){let t=e.length,n=e.indexOf(`#`);for(;n!==-1;){let r=e[n-1];if(r===` `||r===` `){t=n-1;break}n=e.indexOf(`#`,n+1)}for(;;){let n=e[t-1];if(n===` `||n===` `)--t;else break}let r=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-r),this.pushNewline(),`stream`}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),`stream`}return yield``,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext(`line-start`);if(e===`-`||e===`.`){if(!this.atEnd&&!this.hasChars(4))return this.setNext(`line-start`);let e=this.peek(3);if((e===`---`||e===`...`)&&Z(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,e===`---`?`doc`:`stream`}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!Z(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext(`block-start`);if((e===`-`||e===`?`||e===`:`)&&Z(t)){let e=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=e,`block-start`}return`doc`}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext(`doc`);let t=yield*this.pushIndicators();switch(e[t]){case`#`:yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),`doc`;case`*`:return yield*this.pushUntil(zn),`doc`;case`"`:case`'`:return yield*this.parseQuotedScalar();case`|`:case`>`:return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let r=this.getLine();if(r===null)return this.setNext(`flow`);if((n!==-1&&n<this.indentNext&&r[0]!==`#`||n===0&&(r.startsWith(`---`)||r.startsWith(`...`))&&Z(r[3]))&&(n!==this.indentNext-1||this.flowLevel!==1||r[0]!==`]`&&r[0]!==`}`))return this.flowLevel=0,yield``,yield*this.parseLineStart();let i=0;for(;r[i]===`,`;)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),r[i]){case void 0:return`flow`;case`#`:return yield*this.pushCount(r.length-i),`flow`;case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),this.flowKey=!0,--this.flowLevel,this.flowLevel?`flow`:`doc`;case`*`:return yield*this.pushUntil(zn),`flow`;case`"`:case`'`:return this.flowKey=!0,yield*this.parseQuotedScalar();case`:`:{let e=this.charAt(1);if(this.flowKey||Z(e)||e===`,`)return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),`flow`}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e===`'`)for(;t!==-1&&this.buffer[t+1]===`'`;)t=this.buffer.indexOf(`'`,t+2);else for(;t!==-1;){let e=0;for(;this.buffer[t-1-e]===`\\`;)e+=1;if(e%2==0)break;t=this.buffer.indexOf(`"`,t+1)}let n=this.buffer.substring(0,t),r=n.indexOf(`
90
+ `,this.pos);if(r!==-1){for(;r!==-1;){let e=this.continueScalar(r+1);if(e===-1)break;r=n.indexOf(`
91
+ `,e)}r!==-1&&(t=r-(n[r-1]===`\r`?2:1))}if(t===-1){if(!this.atEnd)return this.setNext(`quoted-scalar`);t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?`flow`:`doc`}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t===`+`)this.blockScalarKeep=!0;else if(t>`0`&&t<=`9`)this.blockScalarIndent=Number(t)-1;else if(t!==`-`)break}return yield*this.pushUntil(e=>Z(e)||e===`#`)}*parseBlockScalar(){let e=this.pos-1,t=0,n;loop:for(let r=this.pos;n=this.buffer[r];++r)switch(n){case` `:t+=1;break;case`
92
+ `:e=r,t=0;break;case`\r`:{let e=this.buffer[r+1];if(!e&&!this.atEnd)return this.setNext(`block-scalar`);if(e===`
93
+ `)break}default:break loop}if(!n&&!this.atEnd)return this.setNext(`block-scalar`);if(t>=this.indentNext){this.indentNext=this.blockScalarIndent===-1?t:this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf(`
94
+ `,t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext(`block-scalar`);e=this.buffer.length}}let r=e+1;for(n=this.buffer[r];n===` `;)n=this.buffer[++r];if(n===` `){for(;n===` `||n===` `||n===`\r`||n===`
95
+ `;)n=this.buffer[++r];e=r-1}else if(!this.blockScalarKeep)do{let n=e-1,r=this.buffer[n];r===`\r`&&(r=this.buffer[--n]);let i=n;for(;r===` `;)r=this.buffer[--n];if(r===`
96
+ `&&n>=this.pos&&n+1+t>i)e=n;else break}while(1);return yield``,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,r;for(;r=this.buffer[++n];)if(r===`:`){let r=this.buffer[n+1];if(Z(r)||e&&Ln.has(r))break;t=n}else if(Z(r)){let i=this.buffer[n+1];if(r===`\r`&&(i===`
97
+ `?(n+=1,r=`
98
+ `,i=this.buffer[n+1]):t=n),i===`#`||e&&Ln.has(i))break;if(r===`
99
+ `){let e=this.continueScalar(n+1);if(e===-1)break;n=Math.max(n,e-2)}}else{if(e&&Ln.has(r))break;t=n}return!r&&!this.atEnd?this.setNext(`plain-scalar`):(yield``,yield*this.pushToIndex(t+1,!0),e?`flow`:`doc`)}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield``),0)}*pushIndicators(){let e=0;loop:for(;;){switch(this.charAt(0)){case`!`:e+=yield*this.pushTag(),e+=yield*this.pushSpaces(!0);continue loop;case`&`:e+=yield*this.pushUntil(zn),e+=yield*this.pushSpaces(!0);continue loop;case`-`:case`?`:case`:`:{let t=this.flowLevel>0,n=this.charAt(1);if(Z(n)||t&&Ln.has(n)){t?this.flowKey&&=!1:this.indentNext=this.indentValue+1,e+=yield*this.pushCount(1),e+=yield*this.pushSpaces(!0);continue loop}}}break loop}return e}*pushTag(){if(this.charAt(1)===`<`){let e=this.pos+2,t=this.buffer[e];for(;!Z(t)&&t!==`>`;)t=this.buffer[++e];return yield*this.pushToIndex(t===`>`?e+1:e,!1)}{let e=this.pos+1,t=this.buffer[e];for(;t;)if(In.has(t))t=this.buffer[++e];else if(t===`%`&&Fn.has(this.buffer[e+1])&&Fn.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
100
+ `?yield*this.pushCount(1):e===`\r`&&this.charAt(1)===`
101
+ `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}},Vn=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let r=t+n>>1;this.lineStarts[r]<e?t=r+1:n=r}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let r=this.lineStarts[t-1];return{line:t,col:e-r+1}}}};function Q(e,t){for(let n=0;n<e.length;++n)if(e[n].type===t)return!0;return!1}function Hn(e){for(let t=0;t<e.length;++t)switch(e[t].type){case`space`:case`comment`:case`newline`:break;default:return t}return-1}function Un(e){switch(e?.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`flow-collection`:return!0;default:return!1}}function Wn(e){switch(e.type){case`document`:return e.start;case`block-map`:{let t=e.items[e.items.length-1];return t.sep??t.start}case`block-seq`:return e.items[e.items.length-1].start;default:return[]}}function $(e){if(e.length===0)return[];let t=e.length;loop:for(;--t>=0;)switch(e[t].type){case`doc-start`:case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:case`newline`:break loop}for(;e[++t]?.type===`space`;);return e.splice(t,e.length)}function Gn(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n<t.length;++n)e.push(t[n])}function Kn(e){if(e.start.type===`flow-seq-start`)for(let t of e.items)t.sep&&!t.value&&!Q(t.start,`explicit-key-ind`)&&!Q(t.sep,`map-value-ind`)&&(t.key&&(t.value=t.key),delete t.key,Un(t.value)?t.value.end?Gn(t.value.end,t.sep):t.value.end=t.sep:Gn(t.start,t.sep),delete t.sep)}var qn=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source=``,this.type=``,this.lexer=new Bn,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Pn(e);if(!t){let t=`Not a YAML token: ${e}`;yield*this.pop({type:`error`,offset:this.offset,message:t,source:e}),this.offset+=e.length}else if(t===`scalar`)this.atNewLine=!1,this.atScalar=!0,this.type=`scalar`;else{switch(this.type=t,yield*this.step(),t){case`newline`:this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case`space`:this.atNewLine&&e[0]===` `&&(this.indent+=e.length);break;case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:this.atNewLine&&(this.indent+=e.length);break;case`doc-mode`:case`flow-error-end`:return;default:this.atNewLine=!1}this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type===`doc-end`&&e?.type!==`doc-end`){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:`doc-end`,offset:this.offset,source:this.source})}else{if(!e)return yield*this.stream();switch(e.type){case`document`:return yield*this.document(e);case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return yield*this.scalar(e);case`block-scalar`:return yield*this.blockScalar(e);case`block-map`:return yield*this.blockMap(e);case`block-seq`:return yield*this.blockSequence(e);case`flow-collection`:return yield*this.flowCollection(e);case`doc-end`:return yield*this.documentEnd(e)}yield*this.pop()}}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:`error`,offset:this.offset,source:``,message:`Tried to pop an empty stack`};else if(this.stack.length===0)yield t;else{let e=this.peek(1);switch(t.type===`block-scalar`?t.indent=`indent`in e?e.indent:0:t.type===`flow-collection`&&e.type===`document`&&(t.indent=0),t.type===`flow-collection`&&Kn(t),e.type){case`document`:e.value=t;break;case`block-scalar`:e.props.push(t);break;case`block-map`:{let n=e.items[e.items.length-1];if(n.value){e.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case`block-seq`:{let n=e.items[e.items.length-1];n.value?e.items.push({start:[],value:t}):n.value=t;break}case`flow-collection`:{let n=e.items[e.items.length-1];!n||n.value?e.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((e.type===`document`||e.type===`block-map`||e.type===`block-seq`)&&(t.type===`block-map`||t.type===`block-seq`)){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&Hn(n.start)===-1&&(t.indent===0||n.start.every(e=>e.type!==`comment`||e.indent<t.indent))&&(e.type===`document`?e.end=n.start:e.items.push({start:n.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case`directive-line`:yield{type:`directive`,offset:this.offset,source:this.source};return;case`byte-order-mark`:case`space`:case`comment`:case`newline`:yield this.sourceToken;return;case`doc-mode`:case`doc-start`:{let e={type:`document`,offset:this.offset,start:[]};this.type===`doc-start`&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case`doc-start`:Hn(e.start)===-1?e.start.push(this.sourceToken):(yield*this.pop(),yield*this.step());return;case`anchor`:case`tag`:case`space`:case`comment`:case`newline`:e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type===`map-value-ind`){let t=$(Wn(this.peek(2))),n;e.end?(n=e.end,n.push(this.sourceToken),delete e.end):n=[this.sourceToken];let r={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:t,key:e,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case`space`:case`comment`:case`newline`:e.props.push(this.sourceToken);return;case`scalar`:if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let e=this.source.indexOf(`
102
+ `)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
103
+ `,e)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(this.onKeyLine=!1,t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Gn(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,i=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;r<t.sep.length;++r){let i=t.sep[r];switch(i.type){case`newline`:n.push(r);break;case`space`:break;case`comment`:i.indent>e.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey){if(!t.sep){if(Q(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=$(t.start);this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}}else if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Q(t.sep,`map-value-ind`))this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(Un(t.key)&&!Q(t.sep,`newline`)){let e=$(t.start),n=t.key,r=t.sep;r.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:r}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken)}else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Q(t.sep,`map-value-ind`)?this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(e);if(r){if(r.type===`block-seq`){if(!t.explicitKey&&t.sep&&!Q(t.sep,`newline`)){yield*this.pop({type:`error`,offset:this.offset,message:`Unexpected block-seq-ind on same line with key`,source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Gn(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case`anchor`:case`tag`:if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case`seq-item-ind`:if(this.indent!==e.indent)break;t.value||Q(t.start,`seq-item-ind`)?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type===`flow-error-end`){let e;do yield*this.pop(),e=this.peek(1);while(e?.type===`flow-collection`)}else if(e.end.length===0){switch(this.type){case`comma`:case`explicit-key-ind`:!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case`map-value-ind`:!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case`space`:case`comment`:case`newline`:case`anchor`:case`tag`:!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case`flow-map-end`:case`flow-seq-end`:e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=$(Wn(t));Kn(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(`
104
+ `)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
105
+ `,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=$(Wn(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=$(Wn(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}};function Jn(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new Vn||null,prettyErrors:t}}function Yn(e,t={}){let{lineCounter:n,prettyErrors:r}=Jn(t),i=new qn(n?.addNewLine),a=new kn(t),o=null;for(let t of a.compose(i.parse(e),!0,e.length))if(!o)o=t;else if(o.options.logLevel!==`silent`){o.errors.push(new q(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(Jt(e,n)),o.warnings.forEach(Jt(e,n))),o}export{g as a,r as c,m as i,n as l,Vn as n,_ as o,Gt as r,i as s,Yn as t,t as u};