@photivra/engine 0.5.1 → 1.0.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 (753) hide show
  1. package/AGENTS.md +674 -0
  2. package/CHANGELOG.md +218 -0
  3. package/CITATION.cff +1 -1
  4. package/CONTRIBUTING.md +76 -0
  5. package/DCO +33 -0
  6. package/NODE_SUPPORT.md +37 -0
  7. package/NOTICE +2 -0
  8. package/README.md +157 -56
  9. package/SECURITY.md +55 -0
  10. package/THIRD_PARTY.md +63 -0
  11. package/dist/camera/equivalent-focal-length.d.ts +9 -0
  12. package/dist/camera/equivalent-focal-length.d.ts.map +1 -1
  13. package/dist/camera/equivalent-focal-length.js +9 -0
  14. package/dist/camera/equivalent-focal-length.js.map +1 -1
  15. package/dist/camera/field-of-view.d.ts +13 -0
  16. package/dist/camera/field-of-view.d.ts.map +1 -1
  17. package/dist/camera/field-of-view.js +13 -0
  18. package/dist/camera/field-of-view.js.map +1 -1
  19. package/dist/camera/projected-object-size.d.ts +8 -0
  20. package/dist/camera/projected-object-size.d.ts.map +1 -1
  21. package/dist/camera/projected-object-size.js +8 -0
  22. package/dist/camera/projected-object-size.js.map +1 -1
  23. package/dist/capture/capture-export-metadata.d.ts +60 -0
  24. package/dist/capture/capture-export-metadata.d.ts.map +1 -0
  25. package/dist/capture/capture-export-metadata.js +62 -0
  26. package/dist/capture/capture-export-metadata.js.map +1 -0
  27. package/dist/capture/environment-raw-producer.d.ts +55 -0
  28. package/dist/capture/environment-raw-producer.d.ts.map +1 -0
  29. package/dist/capture/environment-raw-producer.js +88 -0
  30. package/dist/capture/environment-raw-producer.js.map +1 -0
  31. package/dist/capture/export-jpeg.d.ts +12 -0
  32. package/dist/capture/export-jpeg.d.ts.map +1 -0
  33. package/dist/capture/export-jpeg.js +126 -0
  34. package/dist/capture/export-jpeg.js.map +1 -0
  35. package/dist/capture/export-tiff.d.ts +45 -0
  36. package/dist/capture/export-tiff.d.ts.map +1 -0
  37. package/dist/capture/export-tiff.js +129 -0
  38. package/dist/capture/export-tiff.js.map +1 -0
  39. package/dist/capture/focus-control.d.ts +210 -0
  40. package/dist/capture/focus-control.d.ts.map +1 -0
  41. package/dist/capture/focus-control.js +664 -0
  42. package/dist/capture/focus-control.js.map +1 -0
  43. package/dist/capture/linear-encoding.d.ts +59 -0
  44. package/dist/capture/linear-encoding.d.ts.map +1 -0
  45. package/dist/capture/linear-encoding.js +98 -0
  46. package/dist/capture/linear-encoding.js.map +1 -0
  47. package/dist/capture/photographic-export.d.ts +135 -0
  48. package/dist/capture/photographic-export.d.ts.map +1 -0
  49. package/dist/capture/photographic-export.js +273 -0
  50. package/dist/capture/photographic-export.js.map +1 -0
  51. package/dist/capture/raw-frame-limits.d.ts +12 -0
  52. package/dist/capture/raw-frame-limits.d.ts.map +1 -0
  53. package/dist/capture/raw-frame-limits.js +13 -0
  54. package/dist/capture/raw-frame-limits.js.map +1 -0
  55. package/dist/capture/raw-frame-reconstruction.d.ts +48 -0
  56. package/dist/capture/raw-frame-reconstruction.d.ts.map +1 -0
  57. package/dist/capture/raw-frame-reconstruction.js +146 -0
  58. package/dist/capture/raw-frame-reconstruction.js.map +1 -0
  59. package/dist/capture/release-sequence.d.ts +120 -0
  60. package/dist/capture/release-sequence.d.ts.map +1 -0
  61. package/dist/capture/release-sequence.js +446 -0
  62. package/dist/capture/release-sequence.js.map +1 -0
  63. package/dist/capture/sensor-raw-frame.d.ts +34 -0
  64. package/dist/capture/sensor-raw-frame.d.ts.map +1 -0
  65. package/dist/capture/sensor-raw-frame.js +106 -0
  66. package/dist/capture/sensor-raw-frame.js.map +1 -0
  67. package/dist/capture/sensor-raw-producer.d.ts +51 -0
  68. package/dist/capture/sensor-raw-producer.d.ts.map +1 -0
  69. package/dist/capture/sensor-raw-producer.js +235 -0
  70. package/dist/capture/sensor-raw-producer.js.map +1 -0
  71. package/dist/capture/simulated-capture.d.ts +125 -0
  72. package/dist/capture/simulated-capture.d.ts.map +1 -0
  73. package/dist/capture/simulated-capture.js +248 -0
  74. package/dist/capture/simulated-capture.js.map +1 -0
  75. package/dist/color/capture-color.d.ts +73 -0
  76. package/dist/color/capture-color.d.ts.map +1 -0
  77. package/dist/color/capture-color.js +145 -0
  78. package/dist/color/capture-color.js.map +1 -0
  79. package/dist/color/sensor-color-development.d.ts +23 -0
  80. package/dist/color/sensor-color-development.d.ts.map +1 -0
  81. package/dist/color/sensor-color-development.js +56 -0
  82. package/dist/color/sensor-color-development.js.map +1 -0
  83. package/dist/color/white-balance.d.ts +175 -0
  84. package/dist/color/white-balance.d.ts.map +1 -0
  85. package/dist/color/white-balance.js +606 -0
  86. package/dist/color/white-balance.js.map +1 -0
  87. package/dist/composition/image-formation-plan.d.ts +481 -0
  88. package/dist/composition/image-formation-plan.d.ts.map +1 -0
  89. package/dist/composition/image-formation-plan.js +2499 -0
  90. package/dist/composition/image-formation-plan.js.map +1 -0
  91. package/dist/composition/plan-consumer.d.ts +53 -0
  92. package/dist/composition/plan-consumer.d.ts.map +1 -0
  93. package/dist/composition/plan-consumer.js +119 -0
  94. package/dist/composition/plan-consumer.js.map +1 -0
  95. package/dist/core/calculation-result.d.ts.map +1 -1
  96. package/dist/core/calculation-result.js +6 -0
  97. package/dist/core/calculation-result.js.map +1 -1
  98. package/dist/core/canonical-json.d.ts +18 -0
  99. package/dist/core/canonical-json.d.ts.map +1 -0
  100. package/dist/core/canonical-json.js +44 -0
  101. package/dist/core/canonical-json.js.map +1 -0
  102. package/dist/core/configuration-error.d.ts +6 -0
  103. package/dist/core/configuration-error.d.ts.map +1 -1
  104. package/dist/core/configuration-error.js +6 -0
  105. package/dist/core/configuration-error.js.map +1 -1
  106. package/dist/core/evidence-provenance.d.ts +6 -0
  107. package/dist/core/evidence-provenance.d.ts.map +1 -1
  108. package/dist/core/evidence-provenance.js +7 -0
  109. package/dist/core/evidence-provenance.js.map +1 -1
  110. package/dist/core/image-formation.d.ts +9 -3
  111. package/dist/core/image-formation.d.ts.map +1 -1
  112. package/dist/core/image-formation.js +29 -5
  113. package/dist/core/image-formation.js.map +1 -1
  114. package/dist/core/owned-data.d.ts +25 -0
  115. package/dist/core/owned-data.d.ts.map +1 -0
  116. package/dist/core/owned-data.js +34 -0
  117. package/dist/core/owned-data.js.map +1 -0
  118. package/dist/core/record-validation.d.ts +17 -0
  119. package/dist/core/record-validation.d.ts.map +1 -0
  120. package/dist/core/record-validation.js +44 -0
  121. package/dist/core/record-validation.js.map +1 -0
  122. package/dist/core/scientific-assurance.d.ts +101 -0
  123. package/dist/core/scientific-assurance.d.ts.map +1 -0
  124. package/dist/core/scientific-assurance.js +301 -0
  125. package/dist/core/scientific-assurance.js.map +1 -0
  126. package/dist/core/spectral-composition.d.ts +106 -0
  127. package/dist/core/spectral-composition.d.ts.map +1 -0
  128. package/dist/core/spectral-composition.js +334 -0
  129. package/dist/core/spectral-composition.js.map +1 -0
  130. package/dist/core/spectral.d.ts +34 -0
  131. package/dist/core/spectral.d.ts.map +1 -0
  132. package/dist/core/spectral.js +57 -0
  133. package/dist/core/spectral.js.map +1 -0
  134. package/dist/core/validation.d.ts +6 -0
  135. package/dist/core/validation.d.ts.map +1 -1
  136. package/dist/core/validation.js +6 -0
  137. package/dist/core/validation.js.map +1 -1
  138. package/dist/core/version.d.ts +14 -0
  139. package/dist/core/version.d.ts.map +1 -0
  140. package/dist/core/version.js +15 -0
  141. package/dist/core/version.js.map +1 -0
  142. package/dist/equipment/exposure-capabilities.d.ts +125 -0
  143. package/dist/equipment/exposure-capabilities.d.ts.map +1 -0
  144. package/dist/equipment/exposure-capabilities.js +391 -0
  145. package/dist/equipment/exposure-capabilities.js.map +1 -0
  146. package/dist/equipment/generic-tier-assets.d.ts +82 -0
  147. package/dist/equipment/generic-tier-assets.d.ts.map +1 -0
  148. package/dist/equipment/generic-tier-assets.js +119 -0
  149. package/dist/equipment/generic-tier-assets.js.map +1 -0
  150. package/dist/equipment/generic-tier-presets.d.ts +57 -0
  151. package/dist/equipment/generic-tier-presets.d.ts.map +1 -0
  152. package/dist/equipment/generic-tier-presets.js +122 -0
  153. package/dist/equipment/generic-tier-presets.js.map +1 -0
  154. package/dist/equipment/iso-capabilities.d.ts +143 -0
  155. package/dist/equipment/iso-capabilities.d.ts.map +1 -0
  156. package/dist/equipment/iso-capabilities.js +578 -0
  157. package/dist/equipment/iso-capabilities.js.map +1 -0
  158. package/dist/equipment/metering-capabilities.d.ts +58 -0
  159. package/dist/equipment/metering-capabilities.d.ts.map +1 -0
  160. package/dist/equipment/metering-capabilities.js +151 -0
  161. package/dist/equipment/metering-capabilities.js.map +1 -0
  162. package/dist/equipment/release-capabilities.d.ts +33 -0
  163. package/dist/equipment/release-capabilities.d.ts.map +1 -0
  164. package/dist/equipment/release-capabilities.js +176 -0
  165. package/dist/equipment/release-capabilities.js.map +1 -0
  166. package/dist/exposure/exposure-duration-control.d.ts +72 -0
  167. package/dist/exposure/exposure-duration-control.d.ts.map +1 -0
  168. package/dist/exposure/exposure-duration-control.js +161 -0
  169. package/dist/exposure/exposure-duration-control.js.map +1 -0
  170. package/dist/exposure/exposure-mode-resolver.d.ts +637 -0
  171. package/dist/exposure/exposure-mode-resolver.d.ts.map +1 -0
  172. package/dist/exposure/exposure-mode-resolver.js +1905 -0
  173. package/dist/exposure/exposure-mode-resolver.js.map +1 -0
  174. package/dist/exposure/exposure.d.ts +8 -0
  175. package/dist/exposure/exposure.d.ts.map +1 -1
  176. package/dist/exposure/exposure.js +8 -0
  177. package/dist/exposure/exposure.js.map +1 -1
  178. package/dist/exposure/flash.d.ts +179 -0
  179. package/dist/exposure/flash.d.ts.map +1 -0
  180. package/dist/exposure/flash.js +644 -0
  181. package/dist/exposure/flash.js.map +1 -0
  182. package/dist/exposure/metering-scene-radiance.d.ts +72 -0
  183. package/dist/exposure/metering-scene-radiance.d.ts.map +1 -0
  184. package/dist/exposure/metering-scene-radiance.js +222 -0
  185. package/dist/exposure/metering-scene-radiance.js.map +1 -0
  186. package/dist/exposure/metering-target.d.ts +67 -0
  187. package/dist/exposure/metering-target.d.ts.map +1 -0
  188. package/dist/exposure/metering-target.js +265 -0
  189. package/dist/exposure/metering-target.js.map +1 -0
  190. package/dist/exposure/metering-temporal.d.ts +76 -0
  191. package/dist/exposure/metering-temporal.d.ts.map +1 -0
  192. package/dist/exposure/metering-temporal.js +210 -0
  193. package/dist/exposure/metering-temporal.js.map +1 -0
  194. package/dist/exposure/metering.d.ts +124 -0
  195. package/dist/exposure/metering.d.ts.map +1 -0
  196. package/dist/exposure/metering.js +422 -0
  197. package/dist/exposure/metering.js.map +1 -0
  198. package/dist/exposure/program-line.d.ts +29 -0
  199. package/dist/exposure/program-line.d.ts.map +1 -0
  200. package/dist/exposure/program-line.js +126 -0
  201. package/dist/exposure/program-line.js.map +1 -0
  202. package/dist/index.d.ts +101 -7
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/index.js +99 -7
  205. package/dist/index.js.map +1 -1
  206. package/dist/motion/camera-rotation.d.ts +76 -0
  207. package/dist/motion/camera-rotation.d.ts.map +1 -1
  208. package/dist/motion/camera-rotation.js +111 -0
  209. package/dist/motion/camera-rotation.js.map +1 -1
  210. package/dist/motion/capture-rotation-inverse-mapping.d.ts +113 -0
  211. package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -0
  212. package/dist/motion/capture-rotation-inverse-mapping.js +184 -0
  213. package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -0
  214. package/dist/motion/capture-rotation-temporal-quadrature.d.ts +104 -0
  215. package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -0
  216. package/dist/motion/capture-rotation-temporal-quadrature.js +131 -0
  217. package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -0
  218. package/dist/motion/capture-rotation-trajectory.d.ts +113 -0
  219. package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -0
  220. package/dist/motion/capture-rotation-trajectory.js +168 -0
  221. package/dist/motion/capture-rotation-trajectory.js.map +1 -0
  222. package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +119 -0
  223. package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +1 -0
  224. package/dist/motion/capture-translation-parallax-temporal-quadrature.js +263 -0
  225. package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -0
  226. package/dist/motion/extended-object-projection.d.ts +175 -0
  227. package/dist/motion/extended-object-projection.d.ts.map +1 -0
  228. package/dist/motion/extended-object-projection.js +402 -0
  229. package/dist/motion/extended-object-projection.js.map +1 -0
  230. package/dist/motion/projected-motion.d.ts +11 -0
  231. package/dist/motion/projected-motion.d.ts.map +1 -1
  232. package/dist/motion/projected-motion.js +11 -0
  233. package/dist/motion/projected-motion.js.map +1 -1
  234. package/dist/optics/aperture.d.ts +9 -0
  235. package/dist/optics/aperture.d.ts.map +1 -1
  236. package/dist/optics/aperture.js +9 -0
  237. package/dist/optics/aperture.js.map +1 -1
  238. package/dist/optics/circle-of-confusion.d.ts +8 -0
  239. package/dist/optics/circle-of-confusion.d.ts.map +1 -1
  240. package/dist/optics/circle-of-confusion.js +8 -0
  241. package/dist/optics/circle-of-confusion.js.map +1 -1
  242. package/dist/optics/complex-pupil-psf.d.ts +128 -0
  243. package/dist/optics/complex-pupil-psf.d.ts.map +1 -0
  244. package/dist/optics/complex-pupil-psf.js +462 -0
  245. package/dist/optics/complex-pupil-psf.js.map +1 -0
  246. package/dist/optics/depth-of-field.d.ts +18 -0
  247. package/dist/optics/depth-of-field.d.ts.map +1 -1
  248. package/dist/optics/depth-of-field.js +29 -4
  249. package/dist/optics/depth-of-field.js.map +1 -1
  250. package/dist/optics/diffraction.d.ts +8 -0
  251. package/dist/optics/diffraction.d.ts.map +1 -1
  252. package/dist/optics/diffraction.js +8 -0
  253. package/dist/optics/diffraction.js.map +1 -1
  254. package/dist/optics/focus-breathing.d.ts +13 -0
  255. package/dist/optics/focus-breathing.d.ts.map +1 -1
  256. package/dist/optics/focus-breathing.js +13 -0
  257. package/dist/optics/focus-breathing.js.map +1 -1
  258. package/dist/optics/focus-state.d.ts +47 -0
  259. package/dist/optics/focus-state.d.ts.map +1 -0
  260. package/dist/optics/focus-state.js +78 -0
  261. package/dist/optics/focus-state.js.map +1 -0
  262. package/dist/optics/front-of-lens-filter.d.ts +114 -0
  263. package/dist/optics/front-of-lens-filter.d.ts.map +1 -0
  264. package/dist/optics/front-of-lens-filter.js +468 -0
  265. package/dist/optics/front-of-lens-filter.js.map +1 -0
  266. package/dist/optics/illumination-vignetting.d.ts +9 -0
  267. package/dist/optics/illumination-vignetting.d.ts.map +1 -1
  268. package/dist/optics/illumination-vignetting.js +9 -0
  269. package/dist/optics/illumination-vignetting.js.map +1 -1
  270. package/dist/optics/lateral-chromatic-aberration.d.ts +11 -0
  271. package/dist/optics/lateral-chromatic-aberration.d.ts.map +1 -1
  272. package/dist/optics/lateral-chromatic-aberration.js +23 -4
  273. package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
  274. package/dist/optics/lens-psf-profile.d.ts +217 -0
  275. package/dist/optics/lens-psf-profile.d.ts.map +1 -0
  276. package/dist/optics/lens-psf-profile.js +823 -0
  277. package/dist/optics/lens-psf-profile.js.map +1 -0
  278. package/dist/optics/polygon-diffraction.d.ts +67 -0
  279. package/dist/optics/polygon-diffraction.d.ts.map +1 -0
  280. package/dist/optics/polygon-diffraction.js +145 -0
  281. package/dist/optics/polygon-diffraction.js.map +1 -0
  282. package/dist/optics/profile-contract.d.ts +42 -0
  283. package/dist/optics/profile-contract.d.ts.map +1 -0
  284. package/dist/optics/profile-contract.js +92 -0
  285. package/dist/optics/profile-contract.js.map +1 -0
  286. package/dist/optics/psf-foundation.d.ts +16 -3
  287. package/dist/optics/psf-foundation.d.ts.map +1 -1
  288. package/dist/optics/psf-foundation.js +28 -15
  289. package/dist/optics/psf-foundation.js.map +1 -1
  290. package/dist/optics/radial-distortion.d.ts +22 -2
  291. package/dist/optics/radial-distortion.d.ts.map +1 -1
  292. package/dist/optics/radial-distortion.js +101 -23
  293. package/dist/optics/radial-distortion.js.map +1 -1
  294. package/dist/optics/scene-to-sensor-irradiance.d.ts +213 -0
  295. package/dist/optics/scene-to-sensor-irradiance.d.ts.map +1 -0
  296. package/dist/optics/scene-to-sensor-irradiance.js +662 -0
  297. package/dist/optics/scene-to-sensor-irradiance.js.map +1 -0
  298. package/dist/optics/scene-to-sensor-quadrature.d.ts +63 -0
  299. package/dist/optics/scene-to-sensor-quadrature.d.ts.map +1 -0
  300. package/dist/optics/scene-to-sensor-quadrature.js +82 -0
  301. package/dist/optics/scene-to-sensor-quadrature.js.map +1 -0
  302. package/dist/optics/sensor-environment-query.d.ts +60 -0
  303. package/dist/optics/sensor-environment-query.d.ts.map +1 -0
  304. package/dist/optics/sensor-environment-query.js +50 -0
  305. package/dist/optics/sensor-environment-query.js.map +1 -0
  306. package/dist/optics/sensor-psf-quadrature.d.ts +70 -0
  307. package/dist/optics/sensor-psf-quadrature.d.ts.map +1 -0
  308. package/dist/optics/sensor-psf-quadrature.js +101 -0
  309. package/dist/optics/sensor-psf-quadrature.js.map +1 -0
  310. package/dist/optics/sensor-psf-support.d.ts +20 -0
  311. package/dist/optics/sensor-psf-support.d.ts.map +1 -0
  312. package/dist/optics/sensor-psf-support.js +13 -0
  313. package/dist/optics/sensor-psf-support.js.map +1 -0
  314. package/dist/optics/stray-light.d.ts +91 -0
  315. package/dist/optics/stray-light.d.ts.map +1 -0
  316. package/dist/optics/stray-light.js +110 -0
  317. package/dist/optics/stray-light.js.map +1 -0
  318. package/dist/optics/thin-lens.d.ts +8 -0
  319. package/dist/optics/thin-lens.d.ts.map +1 -1
  320. package/dist/optics/thin-lens.js +8 -0
  321. package/dist/optics/thin-lens.js.map +1 -1
  322. package/dist/output/capture-corrected-sdr.d.ts +49 -0
  323. package/dist/output/capture-corrected-sdr.d.ts.map +1 -0
  324. package/dist/output/capture-corrected-sdr.js +149 -0
  325. package/dist/output/capture-corrected-sdr.js.map +1 -0
  326. package/dist/output/capture-geometry.d.ts.map +1 -1
  327. package/dist/output/capture-geometry.js +32 -11
  328. package/dist/output/capture-geometry.js.map +1 -1
  329. package/dist/output/capture-sdr.d.ts +49 -0
  330. package/dist/output/capture-sdr.d.ts.map +1 -0
  331. package/dist/output/capture-sdr.js +90 -0
  332. package/dist/output/capture-sdr.js.map +1 -0
  333. package/dist/output/crop.d.ts +6 -0
  334. package/dist/output/crop.d.ts.map +1 -1
  335. package/dist/output/crop.js +6 -0
  336. package/dist/output/crop.js.map +1 -1
  337. package/dist/output/geometric-transforms.d.ts +137 -0
  338. package/dist/output/geometric-transforms.d.ts.map +1 -0
  339. package/dist/output/geometric-transforms.js +225 -0
  340. package/dist/output/geometric-transforms.js.map +1 -0
  341. package/dist/output/lens-corrections.d.ts +121 -0
  342. package/dist/output/lens-corrections.d.ts.map +1 -0
  343. package/dist/output/lens-corrections.js +210 -0
  344. package/dist/output/lens-corrections.js.map +1 -0
  345. package/dist/output/sdr-rendering.d.ts +81 -0
  346. package/dist/output/sdr-rendering.d.ts.map +1 -0
  347. package/dist/output/sdr-rendering.js +106 -0
  348. package/dist/output/sdr-rendering.js.map +1 -0
  349. package/dist/output/subject-framing-crop.d.ts +8 -0
  350. package/dist/output/subject-framing-crop.d.ts.map +1 -1
  351. package/dist/output/subject-framing-crop.js +8 -0
  352. package/dist/output/subject-framing-crop.js.map +1 -1
  353. package/dist/schema/camera.d.ts +6 -0
  354. package/dist/schema/camera.d.ts.map +1 -1
  355. package/dist/schema/illumination-spectral.d.ts +51 -0
  356. package/dist/schema/illumination-spectral.d.ts.map +1 -0
  357. package/dist/schema/illumination-spectral.js +132 -0
  358. package/dist/schema/illumination-spectral.js.map +1 -0
  359. package/dist/schema/illumination-temporal.d.ts +156 -0
  360. package/dist/schema/illumination-temporal.d.ts.map +1 -0
  361. package/dist/schema/illumination-temporal.js +554 -0
  362. package/dist/schema/illumination-temporal.js.map +1 -0
  363. package/dist/schema/illumination.d.ts +138 -0
  364. package/dist/schema/illumination.d.ts.map +1 -0
  365. package/dist/schema/illumination.js +483 -0
  366. package/dist/schema/illumination.js.map +1 -0
  367. package/dist/schema/scene-radiance-temporal.d.ts +107 -0
  368. package/dist/schema/scene-radiance-temporal.d.ts.map +1 -0
  369. package/dist/schema/scene-radiance-temporal.js +259 -0
  370. package/dist/schema/scene-radiance-temporal.js.map +1 -0
  371. package/dist/schema/scene-radiance.d.ts +185 -0
  372. package/dist/schema/scene-radiance.d.ts.map +1 -0
  373. package/dist/schema/scene-radiance.js +535 -0
  374. package/dist/schema/scene-radiance.js.map +1 -0
  375. package/dist/schema/scene.d.ts +7 -0
  376. package/dist/schema/scene.d.ts.map +1 -1
  377. package/dist/schema/validation.d.ts.map +1 -1
  378. package/dist/schema/validation.js +7 -0
  379. package/dist/schema/validation.js.map +1 -1
  380. package/dist/sensor/accumulated-charge.d.ts +199 -0
  381. package/dist/sensor/accumulated-charge.d.ts.map +1 -0
  382. package/dist/sensor/accumulated-charge.js +450 -0
  383. package/dist/sensor/accumulated-charge.js.map +1 -0
  384. package/dist/sensor/architecture.d.ts +48 -13
  385. package/dist/sensor/architecture.d.ts.map +1 -1
  386. package/dist/sensor/architecture.js +58 -16
  387. package/dist/sensor/architecture.js.map +1 -1
  388. package/dist/sensor/camera-saturation-capacity.d.ts +138 -0
  389. package/dist/sensor/camera-saturation-capacity.d.ts.map +1 -0
  390. package/dist/sensor/camera-saturation-capacity.js +356 -0
  391. package/dist/sensor/camera-saturation-capacity.js.map +1 -0
  392. package/dist/sensor/capture-color-sampling-binding.d.ts +212 -0
  393. package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -0
  394. package/dist/sensor/capture-color-sampling-binding.js +437 -0
  395. package/dist/sensor/capture-color-sampling-binding.js.map +1 -0
  396. package/dist/sensor/capture-mode-timing.d.ts +63 -0
  397. package/dist/sensor/capture-mode-timing.d.ts.map +1 -0
  398. package/dist/sensor/capture-mode-timing.js +270 -0
  399. package/dist/sensor/capture-mode-timing.js.map +1 -0
  400. package/dist/sensor/capture-mode.d.ts +157 -0
  401. package/dist/sensor/capture-mode.d.ts.map +1 -0
  402. package/dist/sensor/capture-mode.js +447 -0
  403. package/dist/sensor/capture-mode.js.map +1 -0
  404. package/dist/sensor/color-sampling.d.ts +133 -0
  405. package/dist/sensor/color-sampling.d.ts.map +1 -0
  406. package/dist/sensor/color-sampling.js +245 -0
  407. package/dist/sensor/color-sampling.js.map +1 -0
  408. package/dist/sensor/constant-rate-temporal-integration.d.ts +126 -0
  409. package/dist/sensor/constant-rate-temporal-integration.d.ts.map +1 -0
  410. package/dist/sensor/constant-rate-temporal-integration.js +382 -0
  411. package/dist/sensor/constant-rate-temporal-integration.js.map +1 -0
  412. package/dist/sensor/dark-current.d.ts +169 -0
  413. package/dist/sensor/dark-current.d.ts.map +1 -0
  414. package/dist/sensor/dark-current.js +427 -0
  415. package/dist/sensor/dark-current.js.map +1 -0
  416. package/dist/sensor/environment-photo-signal.d.ts +123 -0
  417. package/dist/sensor/environment-photo-signal.d.ts.map +1 -0
  418. package/dist/sensor/environment-photo-signal.js +186 -0
  419. package/dist/sensor/environment-photo-signal.js.map +1 -0
  420. package/dist/sensor/eqe-electron-rate.d.ts +107 -0
  421. package/dist/sensor/eqe-electron-rate.d.ts.map +1 -0
  422. package/dist/sensor/eqe-electron-rate.js +561 -0
  423. package/dist/sensor/eqe-electron-rate.js.map +1 -0
  424. package/dist/sensor/eqe-local-exposure.d.ts +65 -0
  425. package/dist/sensor/eqe-local-exposure.d.ts.map +1 -0
  426. package/dist/sensor/eqe-local-exposure.js +84 -0
  427. package/dist/sensor/eqe-local-exposure.js.map +1 -0
  428. package/dist/sensor/eqe-temporal-exposure.d.ts +55 -0
  429. package/dist/sensor/eqe-temporal-exposure.d.ts.map +1 -0
  430. package/dist/sensor/eqe-temporal-exposure.js +62 -0
  431. package/dist/sensor/eqe-temporal-exposure.js.map +1 -0
  432. package/dist/sensor/exposure-window.d.ts +117 -0
  433. package/dist/sensor/exposure-window.d.ts.map +1 -0
  434. package/dist/sensor/exposure-window.js +305 -0
  435. package/dist/sensor/exposure-window.js.map +1 -0
  436. package/dist/sensor/iso-signal-chain.d.ts +148 -0
  437. package/dist/sensor/iso-signal-chain.d.ts.map +1 -0
  438. package/dist/sensor/iso-signal-chain.js +411 -0
  439. package/dist/sensor/iso-signal-chain.js.map +1 -0
  440. package/dist/sensor/local-exposure-binding.d.ts +87 -0
  441. package/dist/sensor/local-exposure-binding.d.ts.map +1 -0
  442. package/dist/sensor/local-exposure-binding.js +214 -0
  443. package/dist/sensor/local-exposure-binding.js.map +1 -0
  444. package/dist/sensor/optical-stack.d.ts +132 -0
  445. package/dist/sensor/optical-stack.d.ts.map +1 -0
  446. package/dist/sensor/optical-stack.js +303 -0
  447. package/dist/sensor/optical-stack.js.map +1 -0
  448. package/dist/sensor/photon-energy.d.ts +97 -0
  449. package/dist/sensor/photon-energy.d.ts.map +1 -0
  450. package/dist/sensor/photon-energy.js +390 -0
  451. package/dist/sensor/photon-energy.js.map +1 -0
  452. package/dist/sensor/physical-charge-capacity.d.ts +130 -0
  453. package/dist/sensor/physical-charge-capacity.d.ts.map +1 -0
  454. package/dist/sensor/physical-charge-capacity.js +345 -0
  455. package/dist/sensor/physical-charge-capacity.js.map +1 -0
  456. package/dist/sensor/pixel-pitch.d.ts +6 -0
  457. package/dist/sensor/pixel-pitch.d.ts.map +1 -1
  458. package/dist/sensor/pixel-pitch.js +6 -0
  459. package/dist/sensor/pixel-pitch.js.map +1 -1
  460. package/dist/sensor/radiometry-readiness.d.ts +10 -0
  461. package/dist/sensor/radiometry-readiness.d.ts.map +1 -1
  462. package/dist/sensor/radiometry-readiness.js +10 -0
  463. package/dist/sensor/radiometry-readiness.js.map +1 -1
  464. package/dist/sensor/raw-readout.d.ts +314 -0
  465. package/dist/sensor/raw-readout.d.ts.map +1 -0
  466. package/dist/sensor/raw-readout.js +914 -0
  467. package/dist/sensor/raw-readout.js.map +1 -0
  468. package/dist/sensor/raw-reconstruction.d.ts +170 -0
  469. package/dist/sensor/raw-reconstruction.d.ts.map +1 -0
  470. package/dist/sensor/raw-reconstruction.js +424 -0
  471. package/dist/sensor/raw-reconstruction.js.map +1 -0
  472. package/dist/sensor/readout-exposure-linkage.d.ts +123 -0
  473. package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -0
  474. package/dist/sensor/readout-exposure-linkage.js +222 -0
  475. package/dist/sensor/readout-exposure-linkage.js.map +1 -0
  476. package/dist/sensor/readout-timing.d.ts +137 -0
  477. package/dist/sensor/readout-timing.d.ts.map +1 -0
  478. package/dist/sensor/readout-timing.js +243 -0
  479. package/dist/sensor/readout-timing.js.map +1 -0
  480. package/dist/sensor/response-application-compatibility.d.ts +136 -0
  481. package/dist/sensor/response-application-compatibility.d.ts.map +1 -0
  482. package/dist/sensor/response-application-compatibility.js +408 -0
  483. package/dist/sensor/response-application-compatibility.js.map +1 -0
  484. package/dist/sensor/response-operating-range.d.ts +173 -0
  485. package/dist/sensor/response-operating-range.d.ts.map +1 -0
  486. package/dist/sensor/response-operating-range.js +672 -0
  487. package/dist/sensor/response-operating-range.js.map +1 -0
  488. package/dist/sensor/responsivity-photocurrent.d.ts +158 -0
  489. package/dist/sensor/responsivity-photocurrent.d.ts.map +1 -0
  490. package/dist/sensor/responsivity-photocurrent.js +644 -0
  491. package/dist/sensor/responsivity-photocurrent.js.map +1 -0
  492. package/dist/sensor/sampling-aperture.d.ts +154 -0
  493. package/dist/sensor/sampling-aperture.d.ts.map +1 -0
  494. package/dist/sensor/sampling-aperture.js +388 -0
  495. package/dist/sensor/sampling-aperture.js.map +1 -0
  496. package/dist/sensor/scene-eqe-temporal-exposure.d.ts +45 -0
  497. package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +1 -0
  498. package/dist/sensor/scene-eqe-temporal-exposure.js +64 -0
  499. package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -0
  500. package/dist/sensor/sensor-geometry.d.ts +12 -0
  501. package/dist/sensor/sensor-geometry.d.ts.map +1 -1
  502. package/dist/sensor/sensor-geometry.js +12 -0
  503. package/dist/sensor/sensor-geometry.js.map +1 -1
  504. package/dist/sensor/signal-noise.d.ts +10 -0
  505. package/dist/sensor/signal-noise.d.ts.map +1 -1
  506. package/dist/sensor/signal-noise.js +10 -0
  507. package/dist/sensor/signal-noise.js.map +1 -1
  508. package/dist/sensor/spatial-sample-reduction.d.ts +171 -0
  509. package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -0
  510. package/dist/sensor/spatial-sample-reduction.js +345 -0
  511. package/dist/sensor/spatial-sample-reduction.js.map +1 -0
  512. package/dist/sensor/spatial-sampling-quadrature.d.ts +179 -0
  513. package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -0
  514. package/dist/sensor/spatial-sampling-quadrature.js +224 -0
  515. package/dist/sensor/spatial-sampling-quadrature.js.map +1 -0
  516. package/dist/sensor/spatio-spectral-reduction.d.ts +187 -0
  517. package/dist/sensor/spatio-spectral-reduction.d.ts.map +1 -0
  518. package/dist/sensor/spatio-spectral-reduction.js +373 -0
  519. package/dist/sensor/spatio-spectral-reduction.js.map +1 -0
  520. package/dist/sensor/spectral-coverage.d.ts +24 -0
  521. package/dist/sensor/spectral-coverage.d.ts.map +1 -0
  522. package/dist/sensor/spectral-coverage.js +86 -0
  523. package/dist/sensor/spectral-coverage.js.map +1 -0
  524. package/dist/sensor/spectral-quadrature.d.ts +169 -0
  525. package/dist/sensor/spectral-quadrature.d.ts.map +1 -0
  526. package/dist/sensor/spectral-quadrature.js +542 -0
  527. package/dist/sensor/spectral-quadrature.js.map +1 -0
  528. package/dist/sensor/spectral-response.d.ts +192 -0
  529. package/dist/sensor/spectral-response.d.ts.map +1 -0
  530. package/dist/sensor/spectral-response.js +664 -0
  531. package/dist/sensor/spectral-response.js.map +1 -0
  532. package/dist/sensor/temporal-eqe-sum.d.ts +15 -0
  533. package/dist/sensor/temporal-eqe-sum.d.ts.map +1 -0
  534. package/dist/sensor/temporal-eqe-sum.js +30 -0
  535. package/dist/sensor/temporal-eqe-sum.js.map +1 -0
  536. package/dist/sensor/temporal-photo-signal.d.ts +38 -0
  537. package/dist/sensor/temporal-photo-signal.d.ts.map +1 -0
  538. package/dist/sensor/temporal-photo-signal.js +110 -0
  539. package/dist/sensor/temporal-photo-signal.js.map +1 -0
  540. package/dist/sensor/temporal-sample-binding.d.ts +6 -0
  541. package/dist/sensor/temporal-sample-binding.d.ts.map +1 -0
  542. package/dist/sensor/temporal-sample-binding.js +32 -0
  543. package/dist/sensor/temporal-sample-binding.js.map +1 -0
  544. package/dist/simulation/poc-simulation.d.ts.map +1 -1
  545. package/dist/simulation/poc-simulation.js +34 -11
  546. package/dist/simulation/poc-simulation.js.map +1 -1
  547. package/dist/stabilization/camera-shake.d.ts +11 -0
  548. package/dist/stabilization/camera-shake.d.ts.map +1 -1
  549. package/dist/stabilization/camera-shake.js +11 -0
  550. package/dist/stabilization/camera-shake.js.map +1 -1
  551. package/dist/stabilization/system.d.ts +218 -0
  552. package/dist/stabilization/system.d.ts.map +1 -0
  553. package/dist/stabilization/system.js +695 -0
  554. package/dist/stabilization/system.js.map +1 -0
  555. package/docs/API_REFERENCE.md +2017 -0
  556. package/docs/API_STYLE.md +132 -0
  557. package/docs/ARCHITECTURE.md +150 -23
  558. package/docs/AUTOMATION_COORDINATION.md +190 -0
  559. package/docs/CAPTURE_COLOR.md +25 -0
  560. package/docs/CAPTURE_CORRECTED_SDR.md +25 -0
  561. package/docs/CAPTURE_EXPORT_METADATA.md +27 -0
  562. package/docs/CAPTURE_SDR.md +20 -0
  563. package/docs/DEVELOPERS.md +60 -0
  564. package/docs/DIGITAL_OPTICS_FOUNDATION.md +69 -0
  565. package/docs/ENVIRONMENT_RAW_CAPTURE.md +187 -0
  566. package/docs/EXPORT_ACCEPTANCE.md +133 -0
  567. package/docs/GENERIC_TIER_PRESETS.md +269 -0
  568. package/docs/GEOMETRIC_PREPARATION_REUSE.md +141 -0
  569. package/docs/IMAGE_FORMATION.md +105 -9
  570. package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
  571. package/docs/MOTION_AND_SIGNAL.md +145 -1
  572. package/docs/NUMERICAL_CORRECTNESS.md +191 -0
  573. package/docs/PERFORMANCE_BASELINE.md +56 -0
  574. package/docs/PHOTOGRAPHIC_EXPORT.md +206 -0
  575. package/docs/PHYSICS_FOUNDATION.md +152 -5
  576. package/docs/POC_API.md +2 -0
  577. package/docs/POC_PROJECTION_REUSE.md +124 -0
  578. package/docs/PROCESSED_OUTPUT.md +157 -0
  579. package/docs/PRODUCTION_COMPOSITION.md +373 -0
  580. package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +131 -0
  581. package/docs/PROVENANCE.md +4 -0
  582. package/docs/PSF_FOUNDATION.md +110 -88
  583. package/docs/RAW_FRAME_ENVELOPE.md +56 -0
  584. package/docs/RAW_FRAME_RECONSTRUCTION.md +30 -0
  585. package/docs/RELEASE_1_0.md +65 -0
  586. package/docs/RELEASE_AUDIT.md +38 -0
  587. package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +298 -0
  588. package/docs/SCENE_SENSOR_QUADRATURE.md +98 -0
  589. package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +86 -0
  590. package/docs/SCIENTIFIC_ASSURANCE.md +280 -0
  591. package/docs/SCIENTIFIC_CONFORMANCE.md +83 -0
  592. package/docs/SDR_RENDERING.md +33 -0
  593. package/docs/SENSOR_ENVIRONMENT_QUERY.md +86 -0
  594. package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +104 -0
  595. package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +74 -0
  596. package/docs/SENSOR_PSF_QUADRATURE.md +90 -0
  597. package/docs/SENSOR_RAW_FRAME.md +20 -0
  598. package/docs/SENSOR_RAW_PRODUCER.md +77 -0
  599. package/docs/SIGNAL_CONFORMANCE.md +23 -0
  600. package/docs/SIMULATED_CAPTURE.md +65 -0
  601. package/docs/STABILIZATION.md +160 -17
  602. package/docs/TEMPORAL_PHOTO_RAW.md +83 -0
  603. package/docs/TIER_ACCEPTANCE.md +129 -0
  604. package/docs/TIER_PRESET_ACCEPTANCE.md +59 -0
  605. package/docs/USAGE.md +5604 -331
  606. package/docs/V1_COMPOSITION_MAP.md +123 -0
  607. package/docs/V1_HELPER_REUSE_REVIEW.md +60 -0
  608. package/docs/V1_PERFORMANCE_DISPOSITION.md +88 -0
  609. package/docs/api/camera-equivalent-focal-length.md +53 -0
  610. package/docs/api/camera-field-of-view.md +119 -0
  611. package/docs/api/camera-projected-object-size.md +54 -0
  612. package/docs/api/capture-capture-export-metadata.md +107 -0
  613. package/docs/api/capture-environment-raw-producer.md +56 -0
  614. package/docs/api/capture-focus-control.md +419 -0
  615. package/docs/api/capture-linear-encoding.md +99 -0
  616. package/docs/api/capture-photographic-export.md +172 -0
  617. package/docs/api/capture-raw-frame-reconstruction.md +87 -0
  618. package/docs/api/capture-release-sequence.md +252 -0
  619. package/docs/api/capture-sensor-raw-frame.md +66 -0
  620. package/docs/api/capture-sensor-raw-producer.md +98 -0
  621. package/docs/api/capture-simulated-capture.md +179 -0
  622. package/docs/api/color-capture-color.md +122 -0
  623. package/docs/api/color-white-balance.md +386 -0
  624. package/docs/api/composition-image-formation-plan.md +825 -0
  625. package/docs/api/composition-plan-consumer.md +98 -0
  626. package/docs/api/core-calculation-result.md +220 -0
  627. package/docs/api/core-configuration-error.md +19 -0
  628. package/docs/api/core-image-formation.md +204 -0
  629. package/docs/api/core-scientific-assurance.md +214 -0
  630. package/docs/api/core-spectral-composition.md +268 -0
  631. package/docs/api/core-spectral.md +78 -0
  632. package/docs/api/core-validation.md +34 -0
  633. package/docs/api/core-version.md +14 -0
  634. package/docs/api/equipment-exposure-capabilities.md +270 -0
  635. package/docs/api/equipment-generic-tier-assets.md +82 -0
  636. package/docs/api/equipment-generic-tier-presets.md +103 -0
  637. package/docs/api/equipment-iso-capabilities.md +295 -0
  638. package/docs/api/equipment-metering-capabilities.md +126 -0
  639. package/docs/api/equipment-release-capabilities.md +91 -0
  640. package/docs/api/exports.json +5656 -0
  641. package/docs/api/exposure-exposure-duration-control.md +115 -0
  642. package/docs/api/exposure-exposure-mode-resolver.md +966 -0
  643. package/docs/api/exposure-exposure.md +150 -0
  644. package/docs/api/exposure-flash.md +327 -0
  645. package/docs/api/exposure-metering-scene-radiance.md +154 -0
  646. package/docs/api/exposure-metering-target.md +134 -0
  647. package/docs/api/exposure-metering-temporal.md +77 -0
  648. package/docs/api/exposure-metering.md +172 -0
  649. package/docs/api/exposure-program-line.md +64 -0
  650. package/docs/api/motion-camera-rotation.md +215 -0
  651. package/docs/api/motion-capture-rotation-inverse-mapping.md +128 -0
  652. package/docs/api/motion-capture-rotation-temporal-quadrature.md +127 -0
  653. package/docs/api/motion-capture-rotation-trajectory.md +132 -0
  654. package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +171 -0
  655. package/docs/api/motion-extended-object-projection.md +312 -0
  656. package/docs/api/motion-projected-motion.md +60 -0
  657. package/docs/api/optics-aperture.md +69 -0
  658. package/docs/api/optics-circle-of-confusion.md +46 -0
  659. package/docs/api/optics-complex-pupil-psf.md +193 -0
  660. package/docs/api/optics-depth-of-field.md +92 -0
  661. package/docs/api/optics-diffraction.md +46 -0
  662. package/docs/api/optics-focus-breathing.md +119 -0
  663. package/docs/api/optics-focus-state.md +64 -0
  664. package/docs/api/optics-front-of-lens-filter.md +263 -0
  665. package/docs/api/optics-illumination-vignetting.md +95 -0
  666. package/docs/api/optics-lateral-chromatic-aberration.md +225 -0
  667. package/docs/api/optics-lens-psf-profile.md +380 -0
  668. package/docs/api/optics-polygon-diffraction.md +68 -0
  669. package/docs/api/optics-profile-contract.md +47 -0
  670. package/docs/api/optics-psf-foundation.md +181 -0
  671. package/docs/api/optics-radial-distortion.md +194 -0
  672. package/docs/api/optics-scene-to-sensor-irradiance.md +371 -0
  673. package/docs/api/optics-scene-to-sensor-quadrature.md +78 -0
  674. package/docs/api/optics-sensor-environment-query.md +58 -0
  675. package/docs/api/optics-sensor-psf-quadrature.md +81 -0
  676. package/docs/api/optics-stray-light.md +109 -0
  677. package/docs/api/optics-thin-lens.md +53 -0
  678. package/docs/api/output-capture-corrected-sdr.md +71 -0
  679. package/docs/api/output-capture-geometry.md +500 -0
  680. package/docs/api/output-capture-sdr.md +69 -0
  681. package/docs/api/output-crop.md +47 -0
  682. package/docs/api/output-geometric-transforms.md +199 -0
  683. package/docs/api/output-lens-corrections.md +162 -0
  684. package/docs/api/output-sdr-rendering.md +122 -0
  685. package/docs/api/output-subject-framing-crop.md +59 -0
  686. package/docs/api/schema-camera.md +84 -0
  687. package/docs/api/schema-illumination-spectral.md +77 -0
  688. package/docs/api/schema-illumination-temporal.md +289 -0
  689. package/docs/api/schema-illumination.md +246 -0
  690. package/docs/api/schema-scene-radiance-temporal.md +215 -0
  691. package/docs/api/schema-scene-radiance.md +415 -0
  692. package/docs/api/schema-scene.md +105 -0
  693. package/docs/api/schema-validation.md +25 -0
  694. package/docs/api/sensor-accumulated-charge.md +273 -0
  695. package/docs/api/sensor-architecture.md +155 -0
  696. package/docs/api/sensor-camera-saturation-capacity.md +215 -0
  697. package/docs/api/sensor-capture-color-sampling-binding.md +323 -0
  698. package/docs/api/sensor-capture-mode-timing.md +123 -0
  699. package/docs/api/sensor-capture-mode.md +321 -0
  700. package/docs/api/sensor-color-sampling.md +228 -0
  701. package/docs/api/sensor-constant-rate-temporal-integration.md +152 -0
  702. package/docs/api/sensor-dark-current.md +227 -0
  703. package/docs/api/sensor-environment-photo-signal.md +77 -0
  704. package/docs/api/sensor-eqe-electron-rate.md +166 -0
  705. package/docs/api/sensor-eqe-local-exposure.md +68 -0
  706. package/docs/api/sensor-eqe-temporal-exposure.md +73 -0
  707. package/docs/api/sensor-exposure-window.md +183 -0
  708. package/docs/api/sensor-iso-signal-chain.md +264 -0
  709. package/docs/api/sensor-local-exposure-binding.md +126 -0
  710. package/docs/api/sensor-optical-stack.md +211 -0
  711. package/docs/api/sensor-photon-energy.md +149 -0
  712. package/docs/api/sensor-physical-charge-capacity.md +196 -0
  713. package/docs/api/sensor-pixel-pitch.md +41 -0
  714. package/docs/api/sensor-radiometry-readiness.md +240 -0
  715. package/docs/api/sensor-raw-readout.md +499 -0
  716. package/docs/api/sensor-raw-reconstruction.md +260 -0
  717. package/docs/api/sensor-readout-exposure-linkage.md +172 -0
  718. package/docs/api/sensor-readout-timing.md +209 -0
  719. package/docs/api/sensor-response-application-compatibility.md +256 -0
  720. package/docs/api/sensor-response-operating-range.md +293 -0
  721. package/docs/api/sensor-responsivity-photocurrent.md +245 -0
  722. package/docs/api/sensor-sampling-aperture.md +221 -0
  723. package/docs/api/sensor-scene-eqe-temporal-exposure.md +56 -0
  724. package/docs/api/sensor-sensor-geometry.md +143 -0
  725. package/docs/api/sensor-signal-noise.md +75 -0
  726. package/docs/api/sensor-spatial-sample-reduction.md +186 -0
  727. package/docs/api/sensor-spatial-sampling-quadrature.md +188 -0
  728. package/docs/api/sensor-spatio-spectral-reduction.md +217 -0
  729. package/docs/api/sensor-spectral-coverage.md +33 -0
  730. package/docs/api/sensor-spectral-quadrature.md +183 -0
  731. package/docs/api/sensor-spectral-response.md +291 -0
  732. package/docs/api/sensor-temporal-photo-signal.md +62 -0
  733. package/docs/api/simulation-poc-simulation.md +364 -0
  734. package/docs/api/stabilization-camera-shake.md +71 -0
  735. package/docs/api/stabilization-system.md +442 -0
  736. package/docs/benchmarks/2026-10-01-main-baseline.json +694 -0
  737. package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +2190 -0
  738. package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +2423 -0
  739. package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +210 -0
  740. package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +187 -0
  741. package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +756 -0
  742. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +711 -0
  743. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +711 -0
  744. package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +885 -0
  745. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +868 -0
  746. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +868 -0
  747. package/docs/examples/production-capture.mjs +34 -0
  748. package/docs/examples/production-request.json +4613 -0
  749. package/docs/examples/quick-start.mjs +12 -0
  750. package/docs/validation/documentation-fragments.json +212 -0
  751. package/docs/validation/release-audit-inventory.json +1306 -0
  752. package/docs/validation/tier-acceptance-report-v1.json +2538 -0
  753. package/package.json +18 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-readout.js","sourceRoot":"","sources":["../../src/sensor/raw-readout.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,mBAAmB,EAEpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EACL,iBAAiB,EAGlB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAapE,MAAM,CAAC,MAAM,6CAA6C,GACxD,OAAgB,CAAC;AACnB,MAAM,CAAC,MAAM,gDAAgD,GAC3D,OAAgB,CAAC;AAyRnB,SAAS,aAAa,CACpB,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACpB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,qBAAqB,CAC7B,CAAC;IACJ,CAAC;IACD,OAAO,KAAsB,CAAC;AAChC,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACzB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,8BAA8B,CACtC,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,aAAa,CACpB,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EACvB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,kBAAkB,CAC1B,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,yCAAyC,CAC5C,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,6BAA6B,CAChC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CACpB,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAC5B,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,WAAW,EACnB,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,IAAI;YACF,sCAAsC,CACzC,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAC5B,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,0BAA0B,CAClC,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAc,EACd,IAAY;IAEZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,oBAAoB,CAC5B,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GACV,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACzB,qBAAqB,CACnB,KAAK,EACL,IAAI;QACF,GAAG;QACH,KAAK;QACL,GAAG,CACN,CACF,CAAC;IACJ,IACE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI;QACpB,MAAM,CAAC,MAAM,EACb,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,+BAA+B,CAClC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO;QACL,KAAK,EACH,qBAAqB,CACnB,MAAM,CAAC,KAAK,EACZ,IAAI,GAAG,QAAQ,CAChB;QACH,QAAQ,EACN,iBAAiB,CACf,MAAM,CAAC,QAAQ,EACf,IAAI,GAAG,WAAW,CACnB;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO;QACL,KAAK,EACH,wBAAwB,CACtB,MAAM,CAAC,KAAK,EACZ,IAAI,GAAG,QAAQ,CAChB;QACH,QAAQ,EACN,iBAAiB,CACf,MAAM,CAAC,QAAQ,EACf,IAAI,GAAG,WAAW,CACnB;KACJ,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gCAAgC,CAC9C,KAAc;IAEd,MAAM,MAAM,GACV,aAAa,CACX,KAAK,EACL,6BAA6B,CAC9B,CAAC;IAEJ,IACE,MAAM,CAAC,aAAa;QACpB,6CAA6C,EAC7C,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,qDAAqD;YACnD,6CAA6C;YAC7C,IAAI,CACP,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,gBAAgB;QACvB,eAAe,EACf,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,mBAAmB;QACxB,SAAS;QACX,MAAM,CAAC,kBAAkB;YACvB,SAAS,EACX,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IACD,IACE,CAAC,KAAK,CAAC,OAAO,CACZ,MAAM,CAAC,2BAA2B,CACnC,EACD,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,2BAA2B,GAC/B,MAAM,CAAC,2BAA2B,CAAC,GAAG,CACpC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACf,MAAM,IAAI,GACR,0DAA0D;YAC1D,KAAK;YACL,GAAG,CAAC;QACN,MAAM,MAAM,GACV,aAAa,CACX,KAAK,EACL,IAAI,CACL,CAAC;QACJ,IACE,MAAM,CAAC,KAAK;YACV,SAAS;YACX,MAAM,CAAC,KAAK;gBACV,4CAA4C,EAC9C,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;gBACF,oBAAoB,CACvB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,WAAW,EACT,qBAAqB,CACnB,MAAM,CAAC,WAAW,EAClB,IAAI;gBACF,cAAc,CACjB;YACH,KAAK,EACH,MAAM,CAAC,KAAK;SACyB,CAAC;IAC5C,CAAC,CACF,CAAC;IAEJ,MAAM,GAAG,GACP,2BAA2B,CAAC,GAAG,CAC7B,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,WAAW,CACrB,CAAC;IACJ,IACE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI;QACjB,GAAG,CAAC,MAAM,EACV,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,wGAAwG,CACzG,CAAC;IACJ,CAAC;IAED,OAAO;QACL,aAAa,EACX,6CAA6C;QAC/C,SAAS,EACP,qBAAqB,CACnB,MAAM,CAAC,SAAS,EAChB,uCAAuC,CACxC;QACH,qBAAqB,EACnB,qBAAqB,CACnB,MAAM,CAAC,qBAAqB,EAC5B,mDAAmD,CACpD;QACH,gBAAgB,EACd,eAAe;QACjB,mBAAmB,EACjB,SAAS;QACX,kBAAkB,EAChB,SAAS;QACX,2BAA2B;QAC3B,QAAQ,EACN,iBAAiB,CACf,MAAM,CAAC,QAAQ,EACf,sCAAsC,CACvC;QACH,WAAW,EACT,gBAAgB,CACd,MAAM,CAAC,WAAW,EAClB,yCAAyC,CAC1C;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,KAAc,EACd,IAAY;IAEZ,IACE,KAAK,KAAK,YAAY;QACtB,KAAK,KAAK,eAAe,EACzB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,cAAc,CACtB,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO;QACL,WAAW,EACT,qBAAqB,CACnB,MAAM,CAAC,WAAW,EAClB,IAAI,GAAG,cAAc,CACtB;QACH,YAAY,EACV,oBAAoB,CAClB,MAAM,CAAC,YAAY,EACnB,IAAI,GAAG,eAAe,CACvB;QACH,QAAQ,EACN,iBAAiB,CACf,MAAM,CAAC,QAAQ,EACf,IAAI,GAAG,WAAW,CACnB;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,MAAM,GAAG,GACP,aAAa,CACX,MAAM,CAAC,GAAG,EACV,IAAI,GAAG,MAAM,CACd,CAAC;IACJ,MAAM,QAAQ,GACZ,kBAAkB,CAChB,GAAG,CAAC,QAAQ,EACZ,IAAI,GAAG,eAAe,CACvB,CAAC;IACJ,IACE,QAAQ,GAAG,CAAC;QACZ,QAAQ,GAAG,EAAE,EACb,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,0CAA0C,CAC7C,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAClB,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACpB,MAAM,cAAc,GAClB,kBAAkB,CAChB,GAAG,CAAC,cAAc,EAClB,IAAI,GAAG,qBAAqB,CAC7B,CAAC;IACJ,MAAM,qBAAqB,GACzB,kBAAkB,CAChB,GAAG,CAAC,qBAAqB,EACzB,IAAI;QACF,4BAA4B,CAC/B,CAAC;IAEJ,IACE,cAAc,GAAG,CAAC;QAClB,cAAc;YACZ,cAAc,EAChB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,kEAAkE,CACrE,CAAC;IACJ,CAAC;IACD,IACE,qBAAqB;QACnB,cAAc;QAChB,qBAAqB;YACnB,cAAc,EAChB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,kGAAkG,CACrG,CAAC;IACJ,CAAC;IACD,IACE,GAAG,CAAC,QAAQ;QACZ,uBAAuB,EACvB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,gDAAgD,CACnD,CAAC;IACJ,CAAC;IACD,IACE,CAAC,KAAK,CAAC,OAAO,CACZ,MAAM,CAAC,mBAAmB,CAC3B,EACD,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,wCAAwC,CAC3C,CAAC;IACJ,CAAC;IACD,MAAM,mBAAmB,GACvB,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAC5B,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACf,uBAAuB,CACrB,KAAK,EACL,IAAI;QACF,uBAAuB;QACvB,KAAK;QACL,GAAG,CACN,CACJ,CAAC;IACJ,MAAM,YAAY,GAChB,mBAAmB,CAAC,GAAG,CACrB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,WAAW,CACpB,CAAC;IACJ,IACE,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI;QAC1B,YAAY,CAAC,MAAM,EACnB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,qEAAqE,CACxE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EACN,qBAAqB,CACnB,MAAM,CAAC,QAAQ,EACf,IAAI,GAAG,WAAW,CACnB;QACH,gBAAgB,EACd,WAAW,CACT,MAAM,CAAC,gBAAgB,EACvB,IAAI;YACF,mBAAmB,CACtB;QACH,oCAAoC,EAClC,iBAAiB,CACf,MAAM;aACH,oCAAoC,EACvC,IAAI;YACF,uCAAuC,CAC1C;QACH,kCAAkC,EAChC,iBAAiB,CACf,MAAM;aACH,kCAAkC,EACrC,IAAI;YACF,qCAAqC,CACxC;QACH,mBAAmB;QACnB,GAAG,EAAE;YACH,QAAQ;YACR,cAAc;YACd,qBAAqB;YACrB,QAAQ,EACN,uBAAuB;SAC1B;QACD,QAAQ,EACN,iBAAiB,CACf,MAAM,CAAC,QAAQ,EACf,IAAI,GAAG,WAAW,CACnB;QACH,WAAW,EACT,gBAAgB,CACd,MAAM,CAAC,WAAW,EAClB,IAAI,GAAG,cAAc,CACtB;KACJ,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mCAAmC,CACjD,KAAc;IAEd,MAAM,MAAM,GACV,aAAa,CACX,KAAK,EACL,gCAAgC,CACjC,CAAC;IACJ,IACE,MAAM,CAAC,aAAa;QACpB,gDAAgD,EAChD,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,wDAAwD;YACtD,gDAAgD;YAChD,IAAI,CACP,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,sBAAsB;QAC7B,sDAAsD,EACtD,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,uHAAuH,CACxH,CAAC;IACJ,CAAC;IACD,IACE,CAAC,KAAK,CAAC,OAAO,CACZ,MAAM,CAAC,OAAO,CACf;QACD,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAC3B,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GACX,MAAM,CAAC,OAAO,CAAC,GAAG,CAChB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACf,WAAW,CACT,KAAK,EACL,yCAAyC;QACvC,KAAK;QACL,GAAG,CACN,CACJ,CAAC;IACJ,MAAM,GAAG,GACP,OAAO,CAAC,GAAG,CACT,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,QAAQ,CAClB,CAAC;IACJ,IACE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI;QACjB,GAAG,CAAC,MAAM,EACV,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,oFAAoF,CACrF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,aAAa,EACX,gDAAgD;QAClD,SAAS,EACP,qBAAqB,CACnB,MAAM,CAAC,SAAS,EAChB,0CAA0C,CAC3C;QACH,sBAAsB,EACpB,qBAAqB,CACnB,MAAM,CAAC,sBAAsB,EAC7B,uDAAuD,CACxD;QACH,SAAS,EACP,qBAAqB,CACnB,MAAM,CAAC,SAAS,EAChB,0CAA0C,CAC3C;QACH,OAAO;QACP,sBAAsB,EACpB,sDAAsD;QACxD,QAAQ,EACN,iBAAiB,CACf,MAAM,CAAC,QAAQ,EACf,yCAAyC,CAC1C;KACJ,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CACxC,KACiC;IAEjC,MAAM,OAAO,GACX,mCAAmC,CACjC,KAAK,CAAC,OAAO,CACd,CAAC;IACJ,IACE,OAAO,KAAK,CAAC,QAAQ;QACnB,QAAQ;QACV,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM;YAC1B,CAAC,EACH,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,sCAAsC,CACvC,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GACZ,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACxB,MAAM,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,IAAI,CAClB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAC9B,CAAC;IACJ,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,2BAA2B,CACnC,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,MAAM,6BAA6B,GACjC,IAAI,CAAC,IAAI,CACP,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CACjB,GAAG;QACH,SAAS;aACN,YAAY,CAAC,KAAK;YACnB,SAAS;iBACN,YAAY,CAAC,KAAK,EACzB,CAAC,CACF,CACF,CAAC;IAEJ,OAAO;QACL,SAAS,EACP,OAAO,CAAC,SAAS;QACnB,sBAAsB,EACpB,OAAO,CAAC,sBAAsB;QAChC,SAAS,EACP,OAAO,CAAC,SAAS;QACnB,MAAM;QACN,sBAAsB,EACpB,OAAO;aACJ,sBAAsB;QAC3B,cAAc,EACZ,CAAC;YACC,MAAM,CAAC,GAAG,CAAC,QAAQ;YACrB,CAAC;QACH,6BAA6B;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,MACoC,EACpC,QACwC,EACxC,OAC6B;IAE7B,IACE,MAAM,CAAC,qBAAqB;QAC1B,QAAQ;aACL,qBAAqB;QAC1B,MAAM,CAAC,sBAAsB;YAC3B,QAAQ;iBACL,sBAAsB;QAC3B,MAAM,CAAC,SAAS;YACd,QAAQ,CAAC,SAAS;QACpB,MAAM,CAAC,IAAI,CAAC,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,CAAC,SAAS;YACd,QAAQ,CAAC,SAAS,EACpB,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IACD,IACE,OAAO;SACJ,sBAAsB;QACvB,MAAM,CAAC,sBAAsB;QAC/B,OAAO,CAAC,SAAS;YACf,MAAM,CAAC,SAAS,EAClB,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,kFAAkF,CACnF,CAAC;IACJ,CAAC;IACD,IACE,QAAQ;SACL,4BAA4B;QAC/B,gBAAgB,EAChB,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,0KAA0K,CAC3K,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,kBAAkB;QACvB,KAAK;QACP,MAAM,CAAC,sBAAsB;YAC3B,KAAK;QACP,MAAM,CAAC,oBAAoB;YACzB,KAAK,EACP,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,mEAAmE,CACpE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAC6B,EAC7B,MACoC;IAKpC,IACE,OAAO,CAAC,qBAAqB;QAC7B,MAAM,CAAC,qBAAqB,EAC5B,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,kFAAkF,CACnF,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GACb,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAC7B,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,WAAW,CACxB,CAAC,IAAI,EAAE,CAAC;IACX,MAAM,SAAS,GACb,OAAO;SACJ,2BAA2B;SAC3B,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,WAAW,CACrB;SACA,IAAI,EAAE,CAAC;IAEZ,IACE,SAAS,CAAC,MAAM;QACd,SAAS,CAAC,MAAM;QAClB,SAAS,CAAC,IAAI,CACZ,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CACZ,EAAE,KAAK,SAAS,CAAC,KAAK,CAAC,CAC1B,EACD,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,4GAA4G,CAC7G,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,GAAG,CACZ,OAAO,CAAC,2BAA2B,CAAC,GAAG,CACrC,CAAC,MAAM,EAAE,EAAE,CAAC;QACV,MAAM,CAAC,WAAW;QAClB,MAAM;KACE,CACX,CACF,CAAC;AACJ,CAAC;AAMD;;;;;;GAMG;AACH,SAAS,YAAY,CACnB,UAAkB;IAElB,IAAI,KAAK,GACP,CAAC,UAAU;QACT,UAAU,CAAC;QACb,CAAC,CAAC;IACJ,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,KAAK;YACH,UAAU,CAAC;IACf,CAAC;IAED,OAAO;QACL,IAAI;YACF,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC;YACrB,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC;YACtB,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;YACpB,KAAK,MAAM,CAAC,CAAC;YACb,OAAO,CACL,CAAC,KAAK,GAAG,GAAG,CAAC;gBACb,aAAa,CACd,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CACnB,CAAS;IAET,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACZ,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,IAAI,CAAC,EACV,KAAK,IAAI,CAAC,EACV,CAAC;YACD,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,YAAY,GAChB,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC9B,OAAO,CACL,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,GAAG;YACD,IAAI,CAAC,GAAG,CACN,CAAC,GAAG,IAAI,CAAC,EAAE,CACZ;QACH,OAAO,GAAG,EAAE;QACZ,YAAY,GAAG,GAAG,CACnB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CACpB,IAAY,EACZ,MACqB;IAErB,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtB,IAAI,GAAG,CAAC,EACR,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;QACd,MAAM,SAAS,GACb,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,GAAG,CAAC;YACF,KAAK,IAAI,CAAC,CAAC;YACX,OAAO;gBACL,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,CAAC,QACC,OAAO,GAAG,SAAS,EACnB;QACF,OAAO,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,MAAM,CAAC,GACL,KAAK;QACL,IAAI,GAAG,QAAQ,CAAC;IAClB,MAAM,CAAC,GACL,CAAC,KAAK;QACN,OAAO,GAAG,CAAC,CAAC;IACd,MAAM,YAAY,GAChB,MAAM;QACN,MAAM;YACJ,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACd,MAAM,EAAE,GACN,MAAM;QACN,MAAM;YACJ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEZ,SAAS,CAAC;QACR,MAAM,CAAC,GACL,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC;QACtB,MAAM,CAAC,GACL,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,EAAE,GACN,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GACL,IAAI,CAAC,KAAK,CACR,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACd,CAAC;YACD,IAAI;YACJ,IAAI,CACP,CAAC;QAEJ,IACE,EAAE,IAAI,IAAI;YACV,CAAC,IAAI,EAAE;YACP,CAAC,IAAI,CAAC,EACN,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IACE,CAAC,GAAG,CAAC;YACL,CACE,EAAE,GAAG,KAAK;gBACV,CAAC,GAAG,EAAE,CACP,EACD,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GACP,IAAI,CAAC,GAAG,CACN,CAAC;YACC,YAAY;YACZ,CAAC,CAAC;gBACA,CAAC,EAAE,GAAG,EAAE,CAAC;gBACT,CAAC,CAAC,CACP,CAAC;QACJ,MAAM,GAAG,GACP,CAAC,IAAI;YACL,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAClB,YAAY,CAAC,CAAC,CAAC,CAAC;QAElB,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACf,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAC3B,MACqB;IAErB,MAAM,EAAE,GACN,MAAM,CAAC,IAAI,EAAE,CAAC;IAChB,MAAM,EAAE,GACN,MAAM,CAAC,IAAI,EAAE,CAAC;IAChB,OAAO,CACL,IAAI,CAAC,IAAI,CACP,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAClB;QACD,IAAI,CAAC,GAAG,CACN,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CACjB,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,+BAA+B,CAC7C,KACsC;IAEtC,MAAM,OAAO,GACX,gCAAgC,CAC9B,KAAK,CAAC,eAAe,CACtB,CAAC;IACJ,MAAM,IAAI,GACR,aAAa,CACX,KAAK,CAAC,UAAU,EAChB,YAAY,CACb,CAAC;IACJ,MAAM,MAAM,GACV,KAAK,CAAC,iBAAiB,CAAC;IAE1B,IACE,MAAM,CAAC,6BAA6B;QAClC,mDAAmD;QACrD,MAAM,CAAC,kBAAkB;YACvB,KAAK;QACP,MAAM,CAAC,sBAAsB;YAC3B,KAAK;QACP,MAAM,CAAC,oBAAoB;YACzB,KAAK,EACP,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GACZ,mBAAmB,CACjB,OAAO,EACP,MAAM,CACP,CAAC;IACJ,MAAM,MAAM,GACV,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,aAAa,GACjB,aAAa,CACX,MAAM;SACH,0BAA0B,EAC7B,MAAM,CACP,CAAC;IACJ,MAAM,YAAY,GAChB,aAAa,CACX,MAAM;SACH,yBAAyB,EAC5B,MAAM,CACP,CAAC;IAEJ,MAAM,oBAAoB,GACxB,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAC7B,CAAC,SAAS,EAAE,EAAE;QACZ,MAAM,MAAM,GACV,QAAQ,CAAC,GAAG,CACV,SAAS,CAAC,WAAW,CACrB,CAAC;QACL,MAAM,QAAQ,GACZ,MAAM,CAAC,KAAK;YACZ,SAAS;YACP,CAAC,CAAC,aAAa,CACX,SAAS;iBACN,qBAAqB,EACxB,MAAM,CACP;YACH,CAAC,CAAC,SAAS;iBACN,qBAAqB,CAAC;QAC/B,OAAO;YACL,WAAW,EACT,SAAS,CAAC,WAAW;YACvB,qBAAqB,EACnB,SAAS;iBACN,qBAAqB;YAC1B,+BAA+B,EAC7B,QAAQ;YACV,KAAK,EACH,MAAM,CAAC,KAAK;SACf,CAAC;IACJ,CAAC,CACF,CAAC;IAEJ,MAAM,kBAAkB,GACtB,oBAAoB,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CACjB,GAAG;QACH,SAAS;aACN,+BAA+B,EACpC,CAAC,CACF,CAAC;IACJ,MAAM,aAAa,GACjB,aAAa;QACb,YAAY;QACZ,kBAAkB,CAAC;IAErB,IACE,CAAC,MAAM,CAAC,QAAQ,CACd,aAAa,CACd;QACD,aAAa,GAAG,CAAC,EACjB,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,OAAO,mBAAmB,CACxB;QACE,iBAAiB,EACf,OAAO,CAAC,SAAS;QACnB,qBAAqB,EACnB,MAAM;aACH,qBAAqB;QAC1B,sBAAsB,EACpB,MAAM;aACH,sBAAsB;QAC3B,SAAS,EACP,MAAM,CAAC,SAAS;QAClB,IAAI,EAAE;YACJ,GAAG,MAAM,CAAC,IAAI;SACf;QACD,SAAS,EACP,MAAM,CAAC,SAAS;QAClB,UAAU,EACR,IAAI;QACN,0BAA0B,EACxB,MAAM;aACH,0BAA0B;QAC/B,0BAA0B,EACxB,aAAa;QACf,yBAAyB,EACvB,MAAM;aACH,yBAAyB;QAC9B,yBAAyB,EACvB,YAAY;QACd,oBAAoB;QACpB,gCAAgC,EAC9B,MAAM;aACH,gCAAgC;QACrC,0CAA0C,EACxC,aAAa;QACf,qBAAqB,EACnB,IAAI;QACN,oBAAoB,EAClB,IAAI;QACN,0BAA0B,EACxB,KAAK;QACP,yBAAyB,EACvB,KAAK;QACP,eAAe,EAAE,KAAK;QACtB,qBAAqB,EACnB,KAAK;QACP,sBAAsB,EACpB,KAAK;QACP,oBAAoB,EAClB,KAAK;QACP,eAAe,EACb,2DAA2D;QAC7D,8BAA8B,EAC5B,IAAI;KACP,EACD,sCAAsC,EACtC,OAAO,EACP;QACE,+IAA+I;QAC/I,sMAAsM;QACtM,kIAAkI;QAClI,8FAA8F;KAC/F,CACF,CAAC;AACJ,CAAC;AAED,SAAS,kCAAkC,CACzC,MACyB,EACzB,QACwC,EACxC,OAC6B;IAE7B,IACE,MAAM,CAAC,qBAAqB;QAC1B,QAAQ;aACL,qBAAqB;QAC1B,MAAM,CAAC,sBAAsB;YAC3B,QAAQ;iBACL,sBAAsB;QAC3B,MAAM,CAAC,SAAS;YACd,QAAQ,CAAC,SAAS;QACpB,MAAM,CAAC,IAAI,CAAC,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,CAAC,SAAS;YACd,QAAQ,CAAC,SAAS,EACpB,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IACD,IACE,OAAO;SACJ,sBAAsB;QACvB,MAAM,CAAC,sBAAsB;QAC/B,OAAO,CAAC,SAAS;YACf,MAAM,CAAC,SAAS,EAClB,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,kFAAkF,CACnF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KACqC;IAErC,MAAM,OAAO,GACX,0BAA0B,CAAC;QACzB,OAAO,EACL,KAAK,CAAC,cAAc;QACtB,QAAQ,EACN,KAAK,CAAC,QAAQ;KACjB,CAAC,CAAC;IACL,sBAAsB,CACpB,KAAK,CAAC,iBAAiB,EACvB,KAAK;SACF,0BAA0B,EAC7B,OAAO,CACR,CAAC;IAEF,MAAM,QAAQ,GACZ,KAAK,CAAC,iBAAiB;SACpB,gCAAgC,CAAC;IACtC,MAAM,SAAS,GACb,OAAO,CAAC,MAAM;SACX,kCAAkC;SAClC,KAAK,CAAC;IACX,MAAM,WAAW,GACf,IAAI,CAAC,GAAG,CACN,QAAQ,EACR,SAAS,CACV,CAAC;IACJ,MAAM,UAAU,GACd,WAAW;QACX,OAAO,CAAC,MAAM;aACX,oCAAoC;aACpC,KAAK,CAAC;IACX,MAAM,sBAAsB,GAC1B,UAAU;QACV,OAAO,CAAC,MAAM;aACX,GAAG,CAAC,cAAc,CAAC;IAExB,OAAO,mBAAmB,CACxB;QACE,gBAAgB,EACd,OAAO,CAAC,SAAS;QACnB,QAAQ,EACN,OAAO,CAAC,MAAM;aACX,QAAQ;QACb,qBAAqB,EACnB,KAAK,CAAC,iBAAiB;aACpB,qBAAqB;QAC1B,iBAAiB,EACf,KAAK;aACF,0BAA0B;aAC1B,iBAAiB;QACtB,sBAAsB,EACpB,KAAK,CAAC,iBAAiB;aACpB,sBAAsB;QAC3B,SAAS,EACP,KAAK,CAAC,iBAAiB;aACpB,SAAS;QACd,IAAI,EAAE;YACJ,GAAG,KAAK;iBACL,iBAAiB;iBACjB,IAAI;SACR;QACD,SAAS,EACP,KAAK,CAAC,iBAAiB;aACpB,SAAS;QACd,2BAA2B,EACzB,QAAQ;QACV,6CAA6C,EAC3C,IAAI;QACN,+CAA+C,EAC7C,WAAW;QACb,oCAAoC,EAClC,WAAW,GAAG,QAAQ;QACxB,oCAAoC,EAClC,OAAO,CAAC,MAAM;aACX,oCAAoC;aACpC,KAAK;QACV,6BAA6B,EAC3B,UAAU;QACZ,cAAc,EACZ,OAAO,CAAC,MAAM;aACX,GAAG,CAAC,cAAc;QACvB,8BAA8B,EAC5B,sBAAsB;QACxB,WAAW,EACT,OAAO,CAAC,MAAM;aACX,GAAG,CAAC,QAAQ;QACjB,cAAc,EACZ,OAAO,CAAC,cAAc;QACxB,qBAAqB,EACnB,OAAO,CAAC,MAAM;aACX,GAAG;aACH,qBAAqB;QAC1B,yBAAyB,EACvB,sBAAsB;YACtB,OAAO,CAAC,MAAM;iBACX,GAAG;iBACH,qBAAqB;QAC1B,gCAAgC,EAC9B,CAAC;QACH,+BAA+B,EAC7B,OAAO;aACJ,6BAA6B;QAClC,0BAA0B,EACxB,KAAK;QACP,sBAAsB,EACpB,KAAK;QACP,oBAAoB,EAClB,KAAK;QACP,oBAAoB,EAClB,KAAK;KACR,EACD,oCAAoC,EACpC,OAAO,EACP;QACE,qKAAqK;QACrK,mFAAmF;QACnF,uHAAuH;QACvH,0GAA0G;QAC1G,2DAA2D;KAC5D,CACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,KAAa;IAEb,OAAO,IAAI,CAAC,KAAK,CACf,KAAK,GAAG,GAAG,CACZ,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAC4B;IAE5B,MAAM,OAAO,GACX,0BAA0B,CAAC;QACzB,OAAO,EACL,KAAK,CAAC,cAAc;QACtB,QAAQ,EACN,KAAK,CAAC,QAAQ;KACjB,CAAC,CAAC;IACL,kCAAkC,CAChC,KAAK,CAAC,iBAAiB,EACvB,KAAK;SACF,0BAA0B,EAC7B,OAAO,CACR,CAAC;IACF,MAAM,aAAa,GACjB,aAAa,CACX,KAAK,CAAC,mBAAmB,EACzB,qBAAqB,CACtB,CAAC;IACJ,MAAM,MAAM,GACV,YAAY,CACV,aAAa,CACd,CAAC;IAEJ,MAAM,QAAQ,GACZ,KAAK,CAAC,iBAAiB;SACpB,0CAA0C,CAAC;IAChD,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1B,QAAQ,GAAG,CAAC,EACZ,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GACpB,KAAK;SACF,0BAA0B;SAC1B,+BAA+B,CAAC;IACrC,MAAM,aAAa,GACjB,IAAI,CAAC,GAAG,CACN,QAAQ,EACR,gBAAgB,CACjB,CAAC;IACJ,MAAM,kBAAkB,GACtB,aAAa,GAAG,QAAQ,CAAC;IAC3B,MAAM,QAAQ,GACZ,IAAI,CAAC,GAAG,CACN,CAAC,EACD,QAAQ;QACN,gBAAgB,CACnB,CAAC;IAEJ,MAAM,mBAAmB,GACvB,OAAO,CAAC,MAAM;SACX,mBAAmB,CAAC,GAAG,CACtB,CAAC,SAAS,EAAE,EAAE;QACZ,MAAM,OAAO,GACX,SAAS;aACN,YAAY,CAAC,KAAK;YACrB,CAAC;YACC,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,oBAAoB,CAClB,MAAM,CACP;gBACD,SAAS;qBACN,YAAY,CAAC,KAAK,CAAC;QAC5B,OAAO;YACL,WAAW,EACT,SAAS;iBACN,WAAW;YAChB,YAAY,EACV,SAAS;iBACN,YAAY;iBACZ,KAAK;YACV,gBAAgB,EACd,OAAO;SACV,CAAC;IACJ,CAAC,CACF,CAAC;IACN,MAAM,cAAc,GAClB,mBAAmB,CAAC,MAAM,CACxB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CACjB,GAAG;QACH,SAAS;aACN,gBAAgB,EACrB,CAAC,CACF,CAAC;IAEJ,MAAM,cAAc,GAClB,aAAa;QACb,cAAc,CAAC;IACjB,MAAM,eAAe,GACnB,OAAO,CAAC,MAAM;SACX,kCAAkC;SAClC,KAAK,CAAC;IACX,4EAA4E;IAC5E,mFAAmF;IACnF,MAAM,WAAW,GACf,IAAI,CAAC,GAAG,CACN,cAAc,EACd,eAAe,CAChB,CAAC;IACJ,MAAM,gBAAgB,GACpB,cAAc;QACd,eAAe,CAAC;IAElB,MAAM,sBAAsB,GAC1B,WAAW;QACT,OAAO,CAAC,MAAM;aACX,oCAAoC;aACpC,KAAK;QACV,OAAO,CAAC,MAAM;aACX,GAAG,CAAC,cAAc,CAAC;IACxB,MAAM,SAAS,GACb,WAAW,CACT,sBAAsB,CACvB,CAAC;IACJ,MAAM,OAAO,GACX,IAAI,CAAC,GAAG,CACN,CAAC,EACD,IAAI,CAAC,GAAG,CACN,SAAS,EACT,OAAO,CAAC,MAAM;SACX,GAAG;SACH,qBAAqB,CACzB,CACF,CAAC;IAEJ,OAAO,mBAAmB,CACxB;QACE,gBAAgB,EACd,OAAO,CAAC,SAAS;QACnB,QAAQ,EACN,OAAO,CAAC,MAAM;aACX,QAAQ;QACb,iBAAiB,EACf,KAAK,CAAC,iBAAiB;aACpB,iBAAiB;QACtB,qBAAqB,EACnB,KAAK,CAAC,iBAAiB;aACpB,qBAAqB;QAC1B,iBAAiB,EACf,KAAK;aACF,0BAA0B;aAC1B,iBAAiB;QACtB,sBAAsB,EACpB,KAAK,CAAC,iBAAiB;aACpB,sBAAsB;QAC3B,SAAS,EACP,KAAK,CAAC,iBAAiB;aACpB,SAAS;QACd,IAAI,EAAE;YACJ,GAAG,KAAK;iBACL,iBAAiB,CAAC,IAAI;SAC1B;QACD,SAAS,EACP,KAAK,CAAC,iBAAiB;aACpB,SAAS;QACd,gBAAgB,EACd,KAAK,CAAC,iBAAiB;aACpB,UAAU;QACf,mBAAmB,EACjB,aAAa;QACf,2DAA2D,EACzD,QAAQ;QACV,+BAA+B,EAC7B,gBAAgB;QAClB,+CAA+C,EAC7C,aAAa;QACf,+BAA+B,EAC7B,kBAAkB;QACpB,oCAAoC,EAClC,QAAQ;QACV,eAAe,EAAE,KAAK;QACtB,6BAA6B,EAC3B,mBAAmB;QACrB,iCAAiC,EAC/B,cAAc;QAChB,gCAAgC,EAC9B,cAAc;QAChB,kCAAkC,EAChC,eAAe;QACjB,uCAAuC,EACrC,WAAW;QACb,uBAAuB,EACrB,gBAAgB;QAClB,oCAAoC,EAClC,OAAO,CAAC,MAAM;aACX,oCAAoC;aACpC,KAAK;QACV,cAAc,EACZ,OAAO,CAAC,MAAM;aACX,GAAG,CAAC,cAAc;QACvB,sBAAsB;QACtB,+BAA+B,EAC7B,SAAS;QACX,WAAW,EACT,OAAO,CAAC,MAAM;aACX,GAAG,CAAC,QAAQ;QACjB,cAAc,EACZ,OAAO,CAAC,cAAc;QACxB,qBAAqB,EACnB,OAAO,CAAC,MAAM;aACX,GAAG;aACH,qBAAqB;QAC1B,OAAO;QACP,wBAAwB,EACtB,SAAS;YACT,OAAO,CAAC,MAAM;iBACX,GAAG;iBACH,qBAAqB;QAC1B,qBAAqB,EACnB,SAAS,GAAG,CAAC;QACf,WAAW,EACT,uBAAuB;QACzB,yBAAyB,EACvB,kBAAkB;QACpB,0BAA0B,EACxB,mBAAmB;aAChB,IAAI,CACH,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS;aACN,YAAY;YACf,CAAC,CACJ;QACL,qBAAqB,EACnB,IAAI;QACN,sBAAsB,EACpB,IAAI;QACN,oBAAoB,EAClB,IAAI;QACN,oBAAoB,EAClB,KAAK;QACP,8BAA8B,EAC5B,IAAI;KACP,EACD,oCAAoC,EACpC,OAAO,EACP;QACE,2NAA2N;QAC3N,6LAA6L;QAC7L,gJAAgJ;QAChJ,kOAAkO;QAClO,sGAAsG;QACtG,4HAA4H;KAC7H,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Module boundary and integration notes.
3
+ * Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
4
+ * missing required fields and incompatible scientific data fail at this boundary. Reconstruction
5
+ * consumes explicitly bound native post-ADC samples and declared normalized channel kernels. Native
6
+ * CFA phase is absolute and orientation/crop remain downstream. This structural linear reconstruction
7
+ * does not infer spectral sensor primaries, calibrated color or a complete arbitrary demosaic
8
+ * algorithm.
9
+ * Commit one validated native RAW sample with exact site/channel/event identity for declared
10
+ * reconstruction. Reconstruction consumes explicitly bound native post-ADC samples and declared
11
+ * normalized channel kernels. Native CFA phase is absolute and orientation/crop remain downstream.
12
+ * This structural linear reconstruction does not infer spectral sensor primaries, calibrated color or
13
+ * a complete arbitrary demosaic algorithm.
14
+ * @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support
15
+ * limits.
16
+ */
17
+ import { type CalculationResult } from "../core/calculation-result.js";
18
+ import { type EvidenceProvenance } from "../core/evidence-provenance.js";
19
+ import type { ResolvedCaptureModeColorSamplingContributors } from "./capture-color-sampling-binding.js";
20
+ import { type SensorColorSamplingProfile } from "./color-sampling.js";
21
+ import type { SensorRawCodeSample } from "./raw-readout.js";
22
+ import type { SensorSpectralResponseScientificStatus } from "./spectral-response.js";
23
+ export declare const SENSOR_RAW_CAPTURE_SAMPLE_VERSION: "0.1.0";
24
+ export declare const SENSOR_RAW_RECONSTRUCTION_PROFILE_SCHEMA_VERSION: "0.1.0";
25
+ export interface CreateSensorRawCaptureSampleInput {
26
+ rawCode: SensorRawCodeSample;
27
+ contributors: ResolvedCaptureModeColorSamplingContributors;
28
+ }
29
+ export interface SensorRawCaptureSample {
30
+ version: typeof SENSOR_RAW_CAPTURE_SAMPLE_VERSION;
31
+ captureModeId: string;
32
+ modeSampleCoordinateSystem: "capture-mode-full-frame-effective-sample-index";
33
+ modeSampleIndexFullFrame: {
34
+ x: number;
35
+ y: number;
36
+ };
37
+ colorSamplingProfileId: string;
38
+ colorSamplingSite: {
39
+ x: number;
40
+ y: number;
41
+ };
42
+ channelId: string;
43
+ rawCode: number;
44
+ blackLevelCode: number;
45
+ digitalSaturationCode: number;
46
+ blackSubtractedNormalizedCode: number;
47
+ readoutProfileId: string;
48
+ readoutRegimeId: string;
49
+ sourceChargeSeedUint32: number;
50
+ sourceReadNoiseSeedUint32: number;
51
+ physicalScalarSaturationApplied: boolean;
52
+ digitalSaturationApplied: boolean;
53
+ cfaPhasePreservedInNativeCoordinates: true;
54
+ physicalOrientationApplied: false;
55
+ outputRotationApplied: false;
56
+ groupedModeCombinationApplied: false;
57
+ reconstructionApplied: false;
58
+ aliasingModeled: false;
59
+ moireModeled: false;
60
+ }
61
+ export interface SensorRawReconstructionKernelContribution {
62
+ offsetX: number;
63
+ offsetY: number;
64
+ sourceChannelId: string;
65
+ weight: number;
66
+ }
67
+ export interface SensorRawReconstructionChannelKernel {
68
+ outputChannelId: string;
69
+ contributions: readonly SensorRawReconstructionKernelContribution[];
70
+ }
71
+ export interface SensorRawReconstructionProfile {
72
+ schemaVersion: typeof SENSOR_RAW_RECONSTRUCTION_PROFILE_SCHEMA_VERSION;
73
+ profileId: string;
74
+ profileVersion: string;
75
+ captureModeId: string;
76
+ colorSamplingProfileId: string;
77
+ scientificStatus: SensorSpectralResponseScientificStatus;
78
+ method: "explicit-linear-native-neighborhood";
79
+ normalization: "weights-sum-to-one-per-output-channel";
80
+ negativeBlackSubtractedValuesAllowed: true;
81
+ kernels: readonly SensorRawReconstructionChannelKernel[];
82
+ evidence: readonly EvidenceProvenance[];
83
+ limitations: readonly string[];
84
+ }
85
+ export interface ResolveSensorRawReconstructionInput {
86
+ profile: SensorRawReconstructionProfile;
87
+ colorSamplingProfile: SensorColorSamplingProfile;
88
+ centerSite: {
89
+ x: number;
90
+ y: number;
91
+ };
92
+ samples: readonly SensorRawCaptureSample[];
93
+ }
94
+ export interface SensorRawReconstructedPixel {
95
+ reconstructionProfileId: string;
96
+ reconstructionProfileVersion: string;
97
+ captureModeId: string;
98
+ colorSamplingProfileId: string;
99
+ centerSite: {
100
+ x: number;
101
+ y: number;
102
+ };
103
+ outputChannels: readonly {
104
+ channelId: string;
105
+ linearBlackSubtractedNormalizedValue: number;
106
+ sourceContributions: readonly {
107
+ site: {
108
+ x: number;
109
+ y: number;
110
+ };
111
+ sourceChannelId: string;
112
+ weight: number;
113
+ sourceValue: number;
114
+ }[];
115
+ }[];
116
+ method: "explicit-linear-native-neighborhood";
117
+ cfaAware: true;
118
+ captureModeAware: true;
119
+ physicalOrientationApplied: false;
120
+ outputRotationApplied: false;
121
+ sharpeningApplied: false;
122
+ denoisingApplied: false;
123
+ aliasingModeled: false;
124
+ moireModeled: false;
125
+ preSamplingOpticalTransferAdequacyEstablished: false;
126
+ reconstructionDoesNotModifyRawSamples: true;
127
+ }
128
+ /**
129
+ * Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
130
+ * missing required fields and incompatible scientific data fail at this boundary.
131
+ *
132
+ * Reconstruction consumes explicitly bound native post-ADC samples and declared normalized channel
133
+ * kernels. Native CFA phase is absolute and orientation/crop remain downstream. This structural linear
134
+ * reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
135
+ * demosaic algorithm.
136
+ * @param value - unknown. Treated as untrusted data; static typing alone is not validation.
137
+ * @returns SensorRawReconstructionProfile. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
138
+ *
139
+ * @see docs/API_REFERENCE.md for the root export and exact type graph.
140
+ */
141
+ export declare function parseSensorRawReconstructionProfile(value: unknown): SensorRawReconstructionProfile;
142
+ /**
143
+ * Commit one validated native RAW sample with exact site/channel/event identity for declared
144
+ * reconstruction.
145
+ *
146
+ * Reconstruction consumes explicitly bound native post-ADC samples and declared normalized channel
147
+ * kernels. Native CFA phase is absolute and orientation/crop remain downstream. This structural linear
148
+ * reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
149
+ * demosaic algorithm.
150
+ * @param input - CreateSensorRawCaptureSampleInput. See the linked contract for coordinate, unit and profile binding semantics.
151
+ * @returns SensorRawCaptureSample. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
152
+ *
153
+ * @see docs/API_REFERENCE.md for the root export and exact type graph.
154
+ */
155
+ export declare function createSensorRawCaptureSample(input: CreateSensorRawCaptureSampleInput): SensorRawCaptureSample;
156
+ /**
157
+ * Gather exactly supplied native channel contributions through explicit normalized kernels while
158
+ * preserving CFA identity and signed black-subtracted values.
159
+ *
160
+ * Reconstruction consumes explicitly bound native post-ADC samples and declared normalized channel
161
+ * kernels. Native CFA phase is absolute and orientation/crop remain downstream. This structural linear
162
+ * reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
163
+ * demosaic algorithm.
164
+ * @param input - ResolveSensorRawReconstructionInput. See the linked contract for coordinate, unit and profile binding semantics.
165
+ * @returns CalculationResult<SensorRawReconstructedPixel>. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
166
+ *
167
+ * @see docs/API_REFERENCE.md for the root export and exact type graph.
168
+ */
169
+ export declare function resolveSensorRawReconstruction(input: ResolveSensorRawReconstructionInput): CalculationResult<SensorRawReconstructedPixel>;
170
+ //# sourceMappingURL=raw-reconstruction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-reconstruction.d.ts","sourceRoot":"","sources":["../../src/sensor/raw-reconstruction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,424 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ /**
3
+ * Module boundary and integration notes.
4
+ * Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
5
+ * missing required fields and incompatible scientific data fail at this boundary. Reconstruction
6
+ * consumes explicitly bound native post-ADC samples and declared normalized channel kernels. Native
7
+ * CFA phase is absolute and orientation/crop remain downstream. This structural linear reconstruction
8
+ * does not infer spectral sensor primaries, calibrated color or a complete arbitrary demosaic
9
+ * algorithm.
10
+ * Commit one validated native RAW sample with exact site/channel/event identity for declared
11
+ * reconstruction. Reconstruction consumes explicitly bound native post-ADC samples and declared
12
+ * normalized channel kernels. Native CFA phase is absolute and orientation/crop remain downstream.
13
+ * This structural linear reconstruction does not infer spectral sensor primaries, calibrated color or
14
+ * a complete arbitrary demosaic algorithm.
15
+ * @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support
16
+ * limits.
17
+ */
18
+ import { approximationResult } from "../core/calculation-result.js";
19
+ import { InvalidConfigurationError } from "../core/configuration-error.js";
20
+ import { parseEvidenceList } from "../core/evidence-provenance.js";
21
+ import { InvalidScientificInputError } from "../core/validation.js";
22
+ import { parseSensorColorSamplingProfile, resolveColorSamplingSite } from "./color-sampling.js";
23
+ export const SENSOR_RAW_CAPTURE_SAMPLE_VERSION = "0.1.0";
24
+ export const SENSOR_RAW_RECONSTRUCTION_PROFILE_SCHEMA_VERSION = "0.1.0";
25
+ function requireRecord(value, path) {
26
+ if (typeof value !== "object" ||
27
+ value === null ||
28
+ Array.isArray(value)) {
29
+ throw new InvalidConfigurationError(path + " must be an object.");
30
+ }
31
+ return value;
32
+ }
33
+ function requireNonEmptyString(value, path) {
34
+ if (typeof value !== "string" ||
35
+ value.trim().length === 0) {
36
+ throw new InvalidConfigurationError(path +
37
+ " must be a non-empty string.");
38
+ }
39
+ return value.trim();
40
+ }
41
+ function requireFinite(value, path) {
42
+ if (typeof value !== "number" ||
43
+ !Number.isFinite(value)) {
44
+ throw new InvalidConfigurationError(path + " must be finite.");
45
+ }
46
+ return value;
47
+ }
48
+ function requireSafeInteger(value, path) {
49
+ if (typeof value !== "number" ||
50
+ !Number.isSafeInteger(value)) {
51
+ throw new InvalidConfigurationError(path + " must be a safe integer.");
52
+ }
53
+ return value;
54
+ }
55
+ function requireNonNegativeSafeIntegerInput(value, path) {
56
+ if (typeof value !== "number" ||
57
+ !Number.isSafeInteger(value) ||
58
+ value < 0) {
59
+ throw new InvalidScientificInputError(path +
60
+ " must be a non-negative safe integer.");
61
+ }
62
+ return value;
63
+ }
64
+ function parseLimitations(value, path) {
65
+ if (!Array.isArray(value)) {
66
+ throw new InvalidConfigurationError(path + " must be an array.");
67
+ }
68
+ const parsed = value.map((entry, index) => requireNonEmptyString(entry, path +
69
+ "[" +
70
+ index +
71
+ "]"));
72
+ if (new Set(parsed).size !==
73
+ parsed.length) {
74
+ throw new InvalidConfigurationError(path +
75
+ " must not contain duplicates.");
76
+ }
77
+ return parsed;
78
+ }
79
+ function parseStatus(value, path) {
80
+ if (value !== "calibrated" &&
81
+ value !== "approximation") {
82
+ throw new InvalidConfigurationError(path + " is invalid.");
83
+ }
84
+ return value;
85
+ }
86
+ function parseContribution(value, path) {
87
+ const record = requireRecord(value, path);
88
+ return {
89
+ offsetX: requireSafeInteger(record.offsetX, path + ".offsetX"),
90
+ offsetY: requireSafeInteger(record.offsetY, path + ".offsetY"),
91
+ sourceChannelId: requireNonEmptyString(record.sourceChannelId, path + ".sourceChannelId"),
92
+ weight: requireFinite(record.weight, path + ".weight")
93
+ };
94
+ }
95
+ function parseKernel(value, path) {
96
+ const record = requireRecord(value, path);
97
+ if (!Array.isArray(record.contributions) ||
98
+ record.contributions
99
+ .length === 0) {
100
+ throw new InvalidConfigurationError(path +
101
+ ".contributions must be a non-empty array.");
102
+ }
103
+ const contributions = record.contributions.map((entry, index) => parseContribution(entry, path +
104
+ ".contributions[" +
105
+ index +
106
+ "]"));
107
+ const keys = contributions.map((entry) => entry.offsetX +
108
+ ":" +
109
+ entry.offsetY +
110
+ ":" +
111
+ entry.sourceChannelId);
112
+ if (new Set(keys).size !==
113
+ keys.length) {
114
+ throw new InvalidConfigurationError(path +
115
+ ".contributions must not contain duplicate site/channel references.");
116
+ }
117
+ const sum = contributions.reduce((valueSum, entry) => valueSum + entry.weight, 0);
118
+ if (!Number.isFinite(sum) ||
119
+ Math.abs(sum - 1) >
120
+ 1e-12) {
121
+ throw new InvalidConfigurationError(path +
122
+ ".contribution weights must sum to one.");
123
+ }
124
+ return {
125
+ outputChannelId: requireNonEmptyString(record.outputChannelId, path +
126
+ ".outputChannelId"),
127
+ contributions
128
+ };
129
+ }
130
+ /**
131
+ * Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
132
+ * missing required fields and incompatible scientific data fail at this boundary.
133
+ *
134
+ * Reconstruction consumes explicitly bound native post-ADC samples and declared normalized channel
135
+ * kernels. Native CFA phase is absolute and orientation/crop remain downstream. This structural linear
136
+ * reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
137
+ * demosaic algorithm.
138
+ * @param value - unknown. Treated as untrusted data; static typing alone is not validation.
139
+ * @returns SensorRawReconstructionProfile. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
140
+ *
141
+ * @see docs/API_REFERENCE.md for the root export and exact type graph.
142
+ */
143
+ export function parseSensorRawReconstructionProfile(value) {
144
+ const record = requireRecord(value, "sensorRawReconstructionProfile");
145
+ if (record.schemaVersion !==
146
+ SENSOR_RAW_RECONSTRUCTION_PROFILE_SCHEMA_VERSION) {
147
+ throw new InvalidConfigurationError('sensorRawReconstructionProfile.schemaVersion must be "' +
148
+ SENSOR_RAW_RECONSTRUCTION_PROFILE_SCHEMA_VERSION +
149
+ '".');
150
+ }
151
+ if (record.method !==
152
+ "explicit-linear-native-neighborhood") {
153
+ throw new InvalidConfigurationError('sensorRawReconstructionProfile.method must be "explicit-linear-native-neighborhood".');
154
+ }
155
+ if (record.normalization !==
156
+ "weights-sum-to-one-per-output-channel") {
157
+ throw new InvalidConfigurationError("sensorRawReconstructionProfile.normalization is invalid.");
158
+ }
159
+ if (record
160
+ .negativeBlackSubtractedValuesAllowed !==
161
+ true) {
162
+ throw new InvalidConfigurationError("sensorRawReconstructionProfile.negativeBlackSubtractedValuesAllowed must be true.");
163
+ }
164
+ if (!Array.isArray(record.kernels) ||
165
+ record.kernels.length === 0) {
166
+ throw new InvalidConfigurationError("sensorRawReconstructionProfile.kernels must be a non-empty array.");
167
+ }
168
+ const kernels = record.kernels.map((entry, index) => parseKernel(entry, "sensorRawReconstructionProfile.kernels[" +
169
+ index +
170
+ "]"));
171
+ const outputIds = kernels.map((kernel) => kernel.outputChannelId);
172
+ if (new Set(outputIds).size !==
173
+ outputIds.length) {
174
+ throw new InvalidConfigurationError("sensorRawReconstructionProfile.kernels must not contain duplicate outputChannelId values.");
175
+ }
176
+ return {
177
+ schemaVersion: SENSOR_RAW_RECONSTRUCTION_PROFILE_SCHEMA_VERSION,
178
+ profileId: requireNonEmptyString(record.profileId, "sensorRawReconstructionProfile.profileId"),
179
+ profileVersion: requireNonEmptyString(record.profileVersion, "sensorRawReconstructionProfile.profileVersion"),
180
+ captureModeId: requireNonEmptyString(record.captureModeId, "sensorRawReconstructionProfile.captureModeId"),
181
+ colorSamplingProfileId: requireNonEmptyString(record.colorSamplingProfileId, "sensorRawReconstructionProfile.colorSamplingProfileId"),
182
+ scientificStatus: parseStatus(record.scientificStatus, "sensorRawReconstructionProfile.scientificStatus"),
183
+ method: "explicit-linear-native-neighborhood",
184
+ normalization: "weights-sum-to-one-per-output-channel",
185
+ negativeBlackSubtractedValuesAllowed: true,
186
+ kernels,
187
+ evidence: parseEvidenceList(record.evidence, "sensorRawReconstructionProfile.evidence"),
188
+ limitations: parseLimitations(record.limitations, "sensorRawReconstructionProfile.limitations")
189
+ };
190
+ }
191
+ /**
192
+ * Commit one validated native RAW sample with exact site/channel/event identity for declared
193
+ * reconstruction.
194
+ *
195
+ * Reconstruction consumes explicitly bound native post-ADC samples and declared normalized channel
196
+ * kernels. Native CFA phase is absolute and orientation/crop remain downstream. This structural linear
197
+ * reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
198
+ * demosaic algorithm.
199
+ * @param input - CreateSensorRawCaptureSampleInput. See the linked contract for coordinate, unit and profile binding semantics.
200
+ * @returns SensorRawCaptureSample. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
201
+ *
202
+ * @see docs/API_REFERENCE.md for the root export and exact type graph.
203
+ */
204
+ export function createSensorRawCaptureSample(input) {
205
+ const raw = input.rawCode;
206
+ const contributors = input.contributors;
207
+ if (contributors
208
+ .modeSamplingKind !==
209
+ "native-effective-raster" ||
210
+ contributors.grouping !==
211
+ null ||
212
+ contributors
213
+ .totalContributorSites !==
214
+ 1 ||
215
+ contributors
216
+ .colorSamplingSiteRect
217
+ .width !== 1 ||
218
+ contributors
219
+ .colorSamplingSiteRect
220
+ .height !== 1) {
221
+ throw new InvalidScientificInputError("RAW site creation schema 0.1.0 requires one ungrouped native-effective capture-mode sample bound to exactly one color-sampling site; grouped/remosaic modes need explicit signal-combination weights.");
222
+ }
223
+ if (contributors
224
+ .colorSamplingProfileId !==
225
+ raw.colorSamplingProfileId) {
226
+ throw new InvalidScientificInputError("RAW readout color-sampling profile identity must match the capture-mode contributor binding.");
227
+ }
228
+ if (contributors
229
+ .channelComposition.kind !==
230
+ "single-channel" ||
231
+ contributors
232
+ .channelComposition
233
+ .channelId !==
234
+ raw.channelId) {
235
+ throw new InvalidScientificInputError("RAW readout channel must match the capture-mode color-sampling contributor channel.");
236
+ }
237
+ if (raw.site.x !==
238
+ contributors
239
+ .colorSamplingSiteRect.x ||
240
+ raw.site.y !==
241
+ contributors
242
+ .colorSamplingSiteRect.y) {
243
+ throw new InvalidScientificInputError("RAW readout site must match the exact capture-mode color-sampling contributor site.");
244
+ }
245
+ const denominator = raw.digitalSaturationCode -
246
+ raw.blackLevelCode;
247
+ if (denominator <= 0) {
248
+ throw new InvalidScientificInputError("RAW black/white code span must be positive.");
249
+ }
250
+ return {
251
+ version: SENSOR_RAW_CAPTURE_SAMPLE_VERSION,
252
+ captureModeId: contributors.modeId,
253
+ modeSampleCoordinateSystem: "capture-mode-full-frame-effective-sample-index",
254
+ modeSampleIndexFullFrame: {
255
+ ...contributors
256
+ .modeSampleIndexFullFrame
257
+ },
258
+ colorSamplingProfileId: raw.colorSamplingProfileId,
259
+ colorSamplingSite: {
260
+ ...raw.site
261
+ },
262
+ channelId: raw.channelId,
263
+ rawCode: raw.rawCode,
264
+ blackLevelCode: raw.blackLevelCode,
265
+ digitalSaturationCode: raw.digitalSaturationCode,
266
+ blackSubtractedNormalizedCode: (raw.rawCode -
267
+ raw.blackLevelCode) /
268
+ denominator,
269
+ readoutProfileId: raw.readoutProfileId,
270
+ readoutRegimeId: raw.regimeId,
271
+ sourceChargeSeedUint32: raw.chargeSeedUint32,
272
+ sourceReadNoiseSeedUint32: raw.readNoiseSeedUint32,
273
+ physicalScalarSaturationApplied: raw
274
+ .physicalScalarSaturationApplied,
275
+ digitalSaturationApplied: raw
276
+ .digitalSaturationApplied,
277
+ cfaPhasePreservedInNativeCoordinates: true,
278
+ physicalOrientationApplied: false,
279
+ outputRotationApplied: false,
280
+ groupedModeCombinationApplied: false,
281
+ reconstructionApplied: false,
282
+ aliasingModeled: false,
283
+ moireModeled: false
284
+ };
285
+ }
286
+ function requireCenterSite(value) {
287
+ return {
288
+ x: requireNonNegativeSafeIntegerInput(value.x, "centerSite.x"),
289
+ y: requireNonNegativeSafeIntegerInput(value.y, "centerSite.y")
290
+ };
291
+ }
292
+ /**
293
+ * Gather exactly supplied native channel contributions through explicit normalized kernels while
294
+ * preserving CFA identity and signed black-subtracted values.
295
+ *
296
+ * Reconstruction consumes explicitly bound native post-ADC samples and declared normalized channel
297
+ * kernels. Native CFA phase is absolute and orientation/crop remain downstream. This structural linear
298
+ * reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
299
+ * demosaic algorithm.
300
+ * @param input - ResolveSensorRawReconstructionInput. See the linked contract for coordinate, unit and profile binding semantics.
301
+ * @returns CalculationResult<SensorRawReconstructedPixel>. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
302
+ *
303
+ * @see docs/API_REFERENCE.md for the root export and exact type graph.
304
+ */
305
+ export function resolveSensorRawReconstruction(input) {
306
+ const profile = parseSensorRawReconstructionProfile(input.profile);
307
+ const center = requireCenterSite(input.centerSite);
308
+ const colorSamplingProfile = parseSensorColorSamplingProfile(input.colorSamplingProfile);
309
+ if (colorSamplingProfile.profileId !==
310
+ profile.colorSamplingProfileId) {
311
+ throw new InvalidScientificInputError("Reconstruction color-sampling profile identity must match the reconstruction profile.");
312
+ }
313
+ if (!Array.isArray(input.samples) ||
314
+ input.samples.length === 0) {
315
+ throw new InvalidScientificInputError("samples must be a non-empty RAW neighborhood.");
316
+ }
317
+ for (const sample of input.samples) {
318
+ if (sample.captureModeId !==
319
+ profile.captureModeId ||
320
+ sample
321
+ .colorSamplingProfileId !==
322
+ profile
323
+ .colorSamplingProfileId) {
324
+ throw new InvalidScientificInputError("Every RAW neighborhood sample must match the reconstruction profile capture-mode and color-sampling identities.");
325
+ }
326
+ const resolvedSite = resolveColorSamplingSite({
327
+ profile: colorSamplingProfile,
328
+ site: sample
329
+ .colorSamplingSite
330
+ });
331
+ if (resolvedSite.mapping
332
+ .channelId !==
333
+ sample.channelId) {
334
+ throw new InvalidScientificInputError("RAW neighborhood sample channelId must match the declared color-sampling topology at its native site.");
335
+ }
336
+ }
337
+ const sampleMap = new Map(input.samples.map((sample) => [
338
+ sample.colorSamplingSite.x +
339
+ ":" +
340
+ sample.colorSamplingSite.y +
341
+ ":" +
342
+ sample.channelId,
343
+ sample
344
+ ]));
345
+ if (sampleMap.size !==
346
+ input.samples.length) {
347
+ throw new InvalidScientificInputError("RAW neighborhood must not contain duplicate site/channel samples.");
348
+ }
349
+ const outputChannels = profile.kernels.map((kernel) => {
350
+ let value = 0;
351
+ const sourceContributions = kernel.contributions.map((contribution) => {
352
+ const x = center.x +
353
+ contribution.offsetX;
354
+ const y = center.y +
355
+ contribution.offsetY;
356
+ if (x < 0 ||
357
+ y < 0) {
358
+ throw new InvalidScientificInputError("RAW reconstruction kernel references a site outside the non-negative native sensor coordinate domain.");
359
+ }
360
+ const key = x +
361
+ ":" +
362
+ y +
363
+ ":" +
364
+ contribution
365
+ .sourceChannelId;
366
+ const sample = sampleMap.get(key);
367
+ if (sample ===
368
+ undefined) {
369
+ throw new InvalidScientificInputError("RAW reconstruction neighborhood is missing a required site/channel contribution.");
370
+ }
371
+ value +=
372
+ sample
373
+ .blackSubtractedNormalizedCode *
374
+ contribution.weight;
375
+ return {
376
+ site: {
377
+ x,
378
+ y
379
+ },
380
+ sourceChannelId: contribution
381
+ .sourceChannelId,
382
+ weight: contribution.weight,
383
+ sourceValue: sample
384
+ .blackSubtractedNormalizedCode
385
+ };
386
+ });
387
+ if (!Number.isFinite(value)) {
388
+ throw new InvalidScientificInputError("Reconstructed linear channel value must remain finite.");
389
+ }
390
+ return {
391
+ channelId: kernel.outputChannelId,
392
+ linearBlackSubtractedNormalizedValue: value,
393
+ sourceContributions
394
+ };
395
+ });
396
+ return approximationResult({
397
+ reconstructionProfileId: profile.profileId,
398
+ reconstructionProfileVersion: profile.profileVersion,
399
+ captureModeId: profile.captureModeId,
400
+ colorSamplingProfileId: profile
401
+ .colorSamplingProfileId,
402
+ centerSite: center,
403
+ outputChannels,
404
+ method: "explicit-linear-native-neighborhood",
405
+ cfaAware: true,
406
+ captureModeAware: true,
407
+ physicalOrientationApplied: false,
408
+ outputRotationApplied: false,
409
+ sharpeningApplied: false,
410
+ denoisingApplied: false,
411
+ aliasingModeled: false,
412
+ moireModeled: false,
413
+ preSamplingOpticalTransferAdequacyEstablished: false,
414
+ reconstructionDoesNotModifyRawSamples: true
415
+ }, "sensor-raw-explicit-linear-reconstruction", "1.0.0", [
416
+ "Reconstruction uses only explicitly declared linear native-neighborhood weights tied to exact capture-mode and color-sampling identities.",
417
+ "No manufacturer-specific CFA algorithm or branded demosaic behavior is inferred from topology labels.",
418
+ "RAW samples remain in invariant native sensor/CFA coordinates; physical orientation and final output rotation are downstream.",
419
+ "Negative black-subtracted values are preserved through the linear reconstruction instead of being silently clamped.",
420
+ "Sharpening and denoising are not part of RAW reconstruction.",
421
+ "Aliasing and moire are explicitly not modeled because this reconstruction contract does not establish an adequate pre-sampling optical transfer/scene-frequency model."
422
+ ]);
423
+ }
424
+ //# sourceMappingURL=raw-reconstruction.js.map