@photivra/engine 0.6.0 → 1.0.1

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 (750) hide show
  1. package/AGENTS.md +674 -0
  2. package/CHANGELOG.md +191 -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 +139 -72
  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 +9 -0
  139. package/dist/core/version.d.ts.map +1 -0
  140. package/dist/core/version.js +10 -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 +87 -6
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/index.js +85 -6
  205. package/dist/index.js.map +1 -1
  206. package/dist/motion/camera-rotation.d.ts +16 -0
  207. package/dist/motion/camera-rotation.d.ts.map +1 -1
  208. package/dist/motion/camera-rotation.js +16 -0
  209. package/dist/motion/camera-rotation.js.map +1 -1
  210. package/dist/motion/capture-rotation-inverse-mapping.d.ts +13 -0
  211. package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -1
  212. package/dist/motion/capture-rotation-inverse-mapping.js +13 -0
  213. package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
  214. package/dist/motion/capture-rotation-temporal-quadrature.d.ts +15 -0
  215. package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -1
  216. package/dist/motion/capture-rotation-temporal-quadrature.js +15 -0
  217. package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
  218. package/dist/motion/capture-rotation-trajectory.d.ts +15 -0
  219. package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -1
  220. package/dist/motion/capture-rotation-trajectory.js +15 -0
  221. package/dist/motion/capture-rotation-trajectory.js.map +1 -1
  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 +11 -0
  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 +18 -0
  291. package/dist/optics/radial-distortion.d.ts.map +1 -1
  292. package/dist/optics/radial-distortion.js +18 -0
  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 +8 -0
  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 +1 -0
  393. package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -1
  394. package/dist/sensor/capture-color-sampling-binding.js +14 -0
  395. package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
  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.map +1 -1
  401. package/dist/sensor/capture-mode.js +13 -0
  402. package/dist/sensor/capture-mode.js.map +1 -1
  403. package/dist/sensor/color-sampling.d.ts.map +1 -1
  404. package/dist/sensor/color-sampling.js +19 -0
  405. package/dist/sensor/color-sampling.js.map +1 -1
  406. package/dist/sensor/constant-rate-temporal-integration.d.ts +126 -0
  407. package/dist/sensor/constant-rate-temporal-integration.d.ts.map +1 -0
  408. package/dist/sensor/constant-rate-temporal-integration.js +382 -0
  409. package/dist/sensor/constant-rate-temporal-integration.js.map +1 -0
  410. package/dist/sensor/dark-current.d.ts +169 -0
  411. package/dist/sensor/dark-current.d.ts.map +1 -0
  412. package/dist/sensor/dark-current.js +427 -0
  413. package/dist/sensor/dark-current.js.map +1 -0
  414. package/dist/sensor/environment-photo-signal.d.ts +123 -0
  415. package/dist/sensor/environment-photo-signal.d.ts.map +1 -0
  416. package/dist/sensor/environment-photo-signal.js +186 -0
  417. package/dist/sensor/environment-photo-signal.js.map +1 -0
  418. package/dist/sensor/eqe-electron-rate.d.ts +107 -0
  419. package/dist/sensor/eqe-electron-rate.d.ts.map +1 -0
  420. package/dist/sensor/eqe-electron-rate.js +561 -0
  421. package/dist/sensor/eqe-electron-rate.js.map +1 -0
  422. package/dist/sensor/eqe-local-exposure.d.ts +65 -0
  423. package/dist/sensor/eqe-local-exposure.d.ts.map +1 -0
  424. package/dist/sensor/eqe-local-exposure.js +84 -0
  425. package/dist/sensor/eqe-local-exposure.js.map +1 -0
  426. package/dist/sensor/eqe-temporal-exposure.d.ts +55 -0
  427. package/dist/sensor/eqe-temporal-exposure.d.ts.map +1 -0
  428. package/dist/sensor/eqe-temporal-exposure.js +62 -0
  429. package/dist/sensor/eqe-temporal-exposure.js.map +1 -0
  430. package/dist/sensor/exposure-window.d.ts +14 -0
  431. package/dist/sensor/exposure-window.d.ts.map +1 -1
  432. package/dist/sensor/exposure-window.js +14 -0
  433. package/dist/sensor/exposure-window.js.map +1 -1
  434. package/dist/sensor/iso-signal-chain.d.ts +148 -0
  435. package/dist/sensor/iso-signal-chain.d.ts.map +1 -0
  436. package/dist/sensor/iso-signal-chain.js +411 -0
  437. package/dist/sensor/iso-signal-chain.js.map +1 -0
  438. package/dist/sensor/local-exposure-binding.d.ts +87 -0
  439. package/dist/sensor/local-exposure-binding.d.ts.map +1 -0
  440. package/dist/sensor/local-exposure-binding.js +214 -0
  441. package/dist/sensor/local-exposure-binding.js.map +1 -0
  442. package/dist/sensor/optical-stack.d.ts.map +1 -1
  443. package/dist/sensor/optical-stack.js +17 -0
  444. package/dist/sensor/optical-stack.js.map +1 -1
  445. package/dist/sensor/photon-energy.d.ts +97 -0
  446. package/dist/sensor/photon-energy.d.ts.map +1 -0
  447. package/dist/sensor/photon-energy.js +390 -0
  448. package/dist/sensor/photon-energy.js.map +1 -0
  449. package/dist/sensor/physical-charge-capacity.d.ts +130 -0
  450. package/dist/sensor/physical-charge-capacity.d.ts.map +1 -0
  451. package/dist/sensor/physical-charge-capacity.js +345 -0
  452. package/dist/sensor/physical-charge-capacity.js.map +1 -0
  453. package/dist/sensor/pixel-pitch.d.ts +6 -0
  454. package/dist/sensor/pixel-pitch.d.ts.map +1 -1
  455. package/dist/sensor/pixel-pitch.js +6 -0
  456. package/dist/sensor/pixel-pitch.js.map +1 -1
  457. package/dist/sensor/radiometry-readiness.d.ts +10 -0
  458. package/dist/sensor/radiometry-readiness.d.ts.map +1 -1
  459. package/dist/sensor/radiometry-readiness.js +10 -0
  460. package/dist/sensor/radiometry-readiness.js.map +1 -1
  461. package/dist/sensor/raw-readout.d.ts +314 -0
  462. package/dist/sensor/raw-readout.d.ts.map +1 -0
  463. package/dist/sensor/raw-readout.js +914 -0
  464. package/dist/sensor/raw-readout.js.map +1 -0
  465. package/dist/sensor/raw-reconstruction.d.ts +170 -0
  466. package/dist/sensor/raw-reconstruction.d.ts.map +1 -0
  467. package/dist/sensor/raw-reconstruction.js +424 -0
  468. package/dist/sensor/raw-reconstruction.js.map +1 -0
  469. package/dist/sensor/readout-exposure-linkage.d.ts +12 -0
  470. package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -1
  471. package/dist/sensor/readout-exposure-linkage.js +12 -0
  472. package/dist/sensor/readout-exposure-linkage.js.map +1 -1
  473. package/dist/sensor/readout-timing.d.ts +13 -0
  474. package/dist/sensor/readout-timing.d.ts.map +1 -1
  475. package/dist/sensor/readout-timing.js +13 -0
  476. package/dist/sensor/readout-timing.js.map +1 -1
  477. package/dist/sensor/response-application-compatibility.d.ts +136 -0
  478. package/dist/sensor/response-application-compatibility.d.ts.map +1 -0
  479. package/dist/sensor/response-application-compatibility.js +408 -0
  480. package/dist/sensor/response-application-compatibility.js.map +1 -0
  481. package/dist/sensor/response-operating-range.d.ts +173 -0
  482. package/dist/sensor/response-operating-range.d.ts.map +1 -0
  483. package/dist/sensor/response-operating-range.js +672 -0
  484. package/dist/sensor/response-operating-range.js.map +1 -0
  485. package/dist/sensor/responsivity-photocurrent.d.ts +158 -0
  486. package/dist/sensor/responsivity-photocurrent.d.ts.map +1 -0
  487. package/dist/sensor/responsivity-photocurrent.js +644 -0
  488. package/dist/sensor/responsivity-photocurrent.js.map +1 -0
  489. package/dist/sensor/sampling-aperture.d.ts.map +1 -1
  490. package/dist/sensor/sampling-aperture.js +14 -0
  491. package/dist/sensor/sampling-aperture.js.map +1 -1
  492. package/dist/sensor/scene-eqe-temporal-exposure.d.ts +45 -0
  493. package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +1 -0
  494. package/dist/sensor/scene-eqe-temporal-exposure.js +64 -0
  495. package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -0
  496. package/dist/sensor/sensor-geometry.d.ts +12 -0
  497. package/dist/sensor/sensor-geometry.d.ts.map +1 -1
  498. package/dist/sensor/sensor-geometry.js +12 -0
  499. package/dist/sensor/sensor-geometry.js.map +1 -1
  500. package/dist/sensor/signal-noise.d.ts +10 -0
  501. package/dist/sensor/signal-noise.d.ts.map +1 -1
  502. package/dist/sensor/signal-noise.js +10 -0
  503. package/dist/sensor/signal-noise.js.map +1 -1
  504. package/dist/sensor/spatial-sample-reduction.d.ts +44 -1
  505. package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -1
  506. package/dist/sensor/spatial-sample-reduction.js +51 -5
  507. package/dist/sensor/spatial-sample-reduction.js.map +1 -1
  508. package/dist/sensor/spatial-sampling-quadrature.d.ts +24 -0
  509. package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -1
  510. package/dist/sensor/spatial-sampling-quadrature.js +27 -0
  511. package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
  512. package/dist/sensor/spatio-spectral-reduction.d.ts +187 -0
  513. package/dist/sensor/spatio-spectral-reduction.d.ts.map +1 -0
  514. package/dist/sensor/spatio-spectral-reduction.js +373 -0
  515. package/dist/sensor/spatio-spectral-reduction.js.map +1 -0
  516. package/dist/sensor/spectral-coverage.d.ts +24 -0
  517. package/dist/sensor/spectral-coverage.d.ts.map +1 -0
  518. package/dist/sensor/spectral-coverage.js +86 -0
  519. package/dist/sensor/spectral-coverage.js.map +1 -0
  520. package/dist/sensor/spectral-quadrature.d.ts +169 -0
  521. package/dist/sensor/spectral-quadrature.d.ts.map +1 -0
  522. package/dist/sensor/spectral-quadrature.js +542 -0
  523. package/dist/sensor/spectral-quadrature.js.map +1 -0
  524. package/dist/sensor/spectral-response.d.ts +192 -0
  525. package/dist/sensor/spectral-response.d.ts.map +1 -0
  526. package/dist/sensor/spectral-response.js +664 -0
  527. package/dist/sensor/spectral-response.js.map +1 -0
  528. package/dist/sensor/temporal-eqe-sum.d.ts +15 -0
  529. package/dist/sensor/temporal-eqe-sum.d.ts.map +1 -0
  530. package/dist/sensor/temporal-eqe-sum.js +30 -0
  531. package/dist/sensor/temporal-eqe-sum.js.map +1 -0
  532. package/dist/sensor/temporal-photo-signal.d.ts +38 -0
  533. package/dist/sensor/temporal-photo-signal.d.ts.map +1 -0
  534. package/dist/sensor/temporal-photo-signal.js +110 -0
  535. package/dist/sensor/temporal-photo-signal.js.map +1 -0
  536. package/dist/sensor/temporal-sample-binding.d.ts +6 -0
  537. package/dist/sensor/temporal-sample-binding.d.ts.map +1 -0
  538. package/dist/sensor/temporal-sample-binding.js +32 -0
  539. package/dist/sensor/temporal-sample-binding.js.map +1 -0
  540. package/dist/simulation/poc-simulation.d.ts.map +1 -1
  541. package/dist/simulation/poc-simulation.js +34 -11
  542. package/dist/simulation/poc-simulation.js.map +1 -1
  543. package/dist/stabilization/camera-shake.d.ts +11 -0
  544. package/dist/stabilization/camera-shake.d.ts.map +1 -1
  545. package/dist/stabilization/camera-shake.js +11 -0
  546. package/dist/stabilization/camera-shake.js.map +1 -1
  547. package/dist/stabilization/system.d.ts +218 -0
  548. package/dist/stabilization/system.d.ts.map +1 -0
  549. package/dist/stabilization/system.js +695 -0
  550. package/dist/stabilization/system.js.map +1 -0
  551. package/docs/API_REFERENCE.md +2017 -0
  552. package/docs/API_STYLE.md +139 -3
  553. package/docs/ARCHITECTURE.md +134 -24
  554. package/docs/AUTOMATION_COORDINATION.md +2 -0
  555. package/docs/CAPTURE_COLOR.md +25 -0
  556. package/docs/CAPTURE_CORRECTED_SDR.md +25 -0
  557. package/docs/CAPTURE_EXPORT_METADATA.md +27 -0
  558. package/docs/CAPTURE_SDR.md +20 -0
  559. package/docs/DEVELOPERS.md +60 -0
  560. package/docs/DIGITAL_OPTICS_FOUNDATION.md +69 -0
  561. package/docs/ENVIRONMENT_RAW_CAPTURE.md +187 -0
  562. package/docs/EXPORT_ACCEPTANCE.md +133 -0
  563. package/docs/GENERIC_TIER_PRESETS.md +269 -0
  564. package/docs/GEOMETRIC_PREPARATION_REUSE.md +141 -0
  565. package/docs/IMAGE_FORMATION.md +80 -10
  566. package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
  567. package/docs/MOTION_AND_SIGNAL.md +5 -3
  568. package/docs/NUMERICAL_CORRECTNESS.md +191 -0
  569. package/docs/PERFORMANCE_BASELINE.md +56 -0
  570. package/docs/PHOTOGRAPHIC_EXPORT.md +206 -0
  571. package/docs/PHYSICS_FOUNDATION.md +152 -5
  572. package/docs/POC_API.md +2 -0
  573. package/docs/POC_PROJECTION_REUSE.md +124 -0
  574. package/docs/PROCESSED_OUTPUT.md +157 -0
  575. package/docs/PRODUCTION_COMPOSITION.md +373 -0
  576. package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +131 -0
  577. package/docs/PROVENANCE.md +4 -0
  578. package/docs/PSF_FOUNDATION.md +110 -88
  579. package/docs/RAW_FRAME_ENVELOPE.md +56 -0
  580. package/docs/RAW_FRAME_RECONSTRUCTION.md +30 -0
  581. package/docs/RELEASE_1_0.md +66 -0
  582. package/docs/RELEASE_1_0_1.md +61 -0
  583. package/docs/RELEASE_AUDIT.md +39 -0
  584. package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +298 -0
  585. package/docs/SCENE_SENSOR_QUADRATURE.md +98 -0
  586. package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +86 -0
  587. package/docs/SCIENTIFIC_ASSURANCE.md +280 -0
  588. package/docs/SCIENTIFIC_CONFORMANCE.md +83 -0
  589. package/docs/SDR_RENDERING.md +33 -0
  590. package/docs/SENSOR_ENVIRONMENT_QUERY.md +86 -0
  591. package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +104 -0
  592. package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +74 -0
  593. package/docs/SENSOR_PSF_QUADRATURE.md +90 -0
  594. package/docs/SENSOR_RAW_FRAME.md +20 -0
  595. package/docs/SENSOR_RAW_PRODUCER.md +77 -0
  596. package/docs/SIGNAL_CONFORMANCE.md +23 -0
  597. package/docs/SIMULATED_CAPTURE.md +65 -0
  598. package/docs/STABILIZATION.md +160 -17
  599. package/docs/TEMPORAL_PHOTO_RAW.md +83 -0
  600. package/docs/TIER_ACCEPTANCE.md +129 -0
  601. package/docs/TIER_PRESET_ACCEPTANCE.md +59 -0
  602. package/docs/USAGE.md +5050 -1047
  603. package/docs/V1_COMPOSITION_MAP.md +123 -0
  604. package/docs/V1_HELPER_REUSE_REVIEW.md +60 -0
  605. package/docs/V1_PERFORMANCE_DISPOSITION.md +88 -0
  606. package/docs/api/camera-equivalent-focal-length.md +53 -0
  607. package/docs/api/camera-field-of-view.md +119 -0
  608. package/docs/api/camera-projected-object-size.md +54 -0
  609. package/docs/api/capture-capture-export-metadata.md +107 -0
  610. package/docs/api/capture-environment-raw-producer.md +56 -0
  611. package/docs/api/capture-focus-control.md +419 -0
  612. package/docs/api/capture-linear-encoding.md +99 -0
  613. package/docs/api/capture-photographic-export.md +172 -0
  614. package/docs/api/capture-raw-frame-reconstruction.md +87 -0
  615. package/docs/api/capture-release-sequence.md +252 -0
  616. package/docs/api/capture-sensor-raw-frame.md +66 -0
  617. package/docs/api/capture-sensor-raw-producer.md +98 -0
  618. package/docs/api/capture-simulated-capture.md +179 -0
  619. package/docs/api/color-capture-color.md +122 -0
  620. package/docs/api/color-white-balance.md +386 -0
  621. package/docs/api/composition-image-formation-plan.md +825 -0
  622. package/docs/api/composition-plan-consumer.md +98 -0
  623. package/docs/api/core-calculation-result.md +220 -0
  624. package/docs/api/core-configuration-error.md +19 -0
  625. package/docs/api/core-image-formation.md +204 -0
  626. package/docs/api/core-scientific-assurance.md +214 -0
  627. package/docs/api/core-spectral-composition.md +268 -0
  628. package/docs/api/core-spectral.md +78 -0
  629. package/docs/api/core-validation.md +34 -0
  630. package/docs/api/core-version.md +14 -0
  631. package/docs/api/equipment-exposure-capabilities.md +270 -0
  632. package/docs/api/equipment-generic-tier-assets.md +82 -0
  633. package/docs/api/equipment-generic-tier-presets.md +103 -0
  634. package/docs/api/equipment-iso-capabilities.md +295 -0
  635. package/docs/api/equipment-metering-capabilities.md +126 -0
  636. package/docs/api/equipment-release-capabilities.md +91 -0
  637. package/docs/api/exports.json +5656 -0
  638. package/docs/api/exposure-exposure-duration-control.md +115 -0
  639. package/docs/api/exposure-exposure-mode-resolver.md +966 -0
  640. package/docs/api/exposure-exposure.md +150 -0
  641. package/docs/api/exposure-flash.md +327 -0
  642. package/docs/api/exposure-metering-scene-radiance.md +154 -0
  643. package/docs/api/exposure-metering-target.md +134 -0
  644. package/docs/api/exposure-metering-temporal.md +77 -0
  645. package/docs/api/exposure-metering.md +172 -0
  646. package/docs/api/exposure-program-line.md +64 -0
  647. package/docs/api/motion-camera-rotation.md +215 -0
  648. package/docs/api/motion-capture-rotation-inverse-mapping.md +128 -0
  649. package/docs/api/motion-capture-rotation-temporal-quadrature.md +127 -0
  650. package/docs/api/motion-capture-rotation-trajectory.md +132 -0
  651. package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +171 -0
  652. package/docs/api/motion-extended-object-projection.md +312 -0
  653. package/docs/api/motion-projected-motion.md +60 -0
  654. package/docs/api/optics-aperture.md +69 -0
  655. package/docs/api/optics-circle-of-confusion.md +46 -0
  656. package/docs/api/optics-complex-pupil-psf.md +193 -0
  657. package/docs/api/optics-depth-of-field.md +92 -0
  658. package/docs/api/optics-diffraction.md +46 -0
  659. package/docs/api/optics-focus-breathing.md +119 -0
  660. package/docs/api/optics-focus-state.md +64 -0
  661. package/docs/api/optics-front-of-lens-filter.md +263 -0
  662. package/docs/api/optics-illumination-vignetting.md +95 -0
  663. package/docs/api/optics-lateral-chromatic-aberration.md +225 -0
  664. package/docs/api/optics-lens-psf-profile.md +380 -0
  665. package/docs/api/optics-polygon-diffraction.md +68 -0
  666. package/docs/api/optics-profile-contract.md +47 -0
  667. package/docs/api/optics-psf-foundation.md +181 -0
  668. package/docs/api/optics-radial-distortion.md +194 -0
  669. package/docs/api/optics-scene-to-sensor-irradiance.md +371 -0
  670. package/docs/api/optics-scene-to-sensor-quadrature.md +78 -0
  671. package/docs/api/optics-sensor-environment-query.md +58 -0
  672. package/docs/api/optics-sensor-psf-quadrature.md +81 -0
  673. package/docs/api/optics-stray-light.md +109 -0
  674. package/docs/api/optics-thin-lens.md +53 -0
  675. package/docs/api/output-capture-corrected-sdr.md +71 -0
  676. package/docs/api/output-capture-geometry.md +500 -0
  677. package/docs/api/output-capture-sdr.md +69 -0
  678. package/docs/api/output-crop.md +47 -0
  679. package/docs/api/output-geometric-transforms.md +199 -0
  680. package/docs/api/output-lens-corrections.md +162 -0
  681. package/docs/api/output-sdr-rendering.md +122 -0
  682. package/docs/api/output-subject-framing-crop.md +59 -0
  683. package/docs/api/schema-camera.md +84 -0
  684. package/docs/api/schema-illumination-spectral.md +77 -0
  685. package/docs/api/schema-illumination-temporal.md +289 -0
  686. package/docs/api/schema-illumination.md +246 -0
  687. package/docs/api/schema-scene-radiance-temporal.md +215 -0
  688. package/docs/api/schema-scene-radiance.md +415 -0
  689. package/docs/api/schema-scene.md +105 -0
  690. package/docs/api/schema-validation.md +25 -0
  691. package/docs/api/sensor-accumulated-charge.md +273 -0
  692. package/docs/api/sensor-architecture.md +155 -0
  693. package/docs/api/sensor-camera-saturation-capacity.md +215 -0
  694. package/docs/api/sensor-capture-color-sampling-binding.md +323 -0
  695. package/docs/api/sensor-capture-mode-timing.md +123 -0
  696. package/docs/api/sensor-capture-mode.md +321 -0
  697. package/docs/api/sensor-color-sampling.md +228 -0
  698. package/docs/api/sensor-constant-rate-temporal-integration.md +152 -0
  699. package/docs/api/sensor-dark-current.md +227 -0
  700. package/docs/api/sensor-environment-photo-signal.md +77 -0
  701. package/docs/api/sensor-eqe-electron-rate.md +166 -0
  702. package/docs/api/sensor-eqe-local-exposure.md +68 -0
  703. package/docs/api/sensor-eqe-temporal-exposure.md +73 -0
  704. package/docs/api/sensor-exposure-window.md +183 -0
  705. package/docs/api/sensor-iso-signal-chain.md +264 -0
  706. package/docs/api/sensor-local-exposure-binding.md +126 -0
  707. package/docs/api/sensor-optical-stack.md +211 -0
  708. package/docs/api/sensor-photon-energy.md +149 -0
  709. package/docs/api/sensor-physical-charge-capacity.md +196 -0
  710. package/docs/api/sensor-pixel-pitch.md +41 -0
  711. package/docs/api/sensor-radiometry-readiness.md +240 -0
  712. package/docs/api/sensor-raw-readout.md +499 -0
  713. package/docs/api/sensor-raw-reconstruction.md +260 -0
  714. package/docs/api/sensor-readout-exposure-linkage.md +172 -0
  715. package/docs/api/sensor-readout-timing.md +209 -0
  716. package/docs/api/sensor-response-application-compatibility.md +256 -0
  717. package/docs/api/sensor-response-operating-range.md +293 -0
  718. package/docs/api/sensor-responsivity-photocurrent.md +245 -0
  719. package/docs/api/sensor-sampling-aperture.md +221 -0
  720. package/docs/api/sensor-scene-eqe-temporal-exposure.md +56 -0
  721. package/docs/api/sensor-sensor-geometry.md +143 -0
  722. package/docs/api/sensor-signal-noise.md +75 -0
  723. package/docs/api/sensor-spatial-sample-reduction.md +186 -0
  724. package/docs/api/sensor-spatial-sampling-quadrature.md +188 -0
  725. package/docs/api/sensor-spatio-spectral-reduction.md +217 -0
  726. package/docs/api/sensor-spectral-coverage.md +33 -0
  727. package/docs/api/sensor-spectral-quadrature.md +183 -0
  728. package/docs/api/sensor-spectral-response.md +291 -0
  729. package/docs/api/sensor-temporal-photo-signal.md +62 -0
  730. package/docs/api/simulation-poc-simulation.md +364 -0
  731. package/docs/api/stabilization-camera-shake.md +71 -0
  732. package/docs/api/stabilization-system.md +442 -0
  733. package/docs/benchmarks/2026-10-01-main-baseline.json +694 -0
  734. package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +2190 -0
  735. package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +2423 -0
  736. package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +210 -0
  737. package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +187 -0
  738. package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +756 -0
  739. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +711 -0
  740. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +711 -0
  741. package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +885 -0
  742. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +868 -0
  743. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +868 -0
  744. package/docs/examples/production-capture.mjs +34 -0
  745. package/docs/examples/production-request.json +4613 -0
  746. package/docs/examples/quick-start.mjs +12 -0
  747. package/docs/validation/documentation-fragments.json +212 -0
  748. package/docs/validation/release-audit-inventory.json +1306 -0
  749. package/docs/validation/tier-acceptance-report-v1.json +2538 -0
  750. package/package.json +15 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lens-psf-profile.js","sourceRoot":"","sources":["../../src/optics/lens-psf-profile.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,mBAAmB,EAEpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EACL,iBAAiB,EAElB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACL,eAAe,EAEhB,MAAM,kBAAkB,CAAC;AAI1B,MAAM,CAAC,MAAM,uCAAuC,GAClD,OAAgB,CAAC;AACnB,MAAM,CAAC,MAAM,0CAA0C,GACrD,OAAgB,CAAC;AAoOnB,MAAM,SAAS,GAAG;IAChB,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,cAAc;IACd,oCAAoC;CAC5B,CAAC;AAKX,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;YACF,8BAA8B,CACjC,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,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,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,mBAAmB,CAC1B,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,IACE,MAAM,GAAG,CAAC;QACV,MAAM,GAAG,CAAC,EACV,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,kCAAkC,CACrC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,0BAA0B,CACjC,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAC5B,KAAK,IAAI,CAAC,EACV,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,mCAAmC,CACtC,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,6BAA6B,CACpC,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAC5B,KAAK,GAAG,CAAC,EACT,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,uCAAuC,CAC1C,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,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,gBAAgB,CACvB,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EACN,wBAAwB,CACtB,MAAM,CAAC,QAAQ,EACf,IAAI,GAAG,WAAW,CACnB;YACH,KAAK,EACH,qBAAqB,CACnB,MAAM,CAAC,KAAK,EACZ,IAAI,GAAG,QAAQ,CAChB;SACJ,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,IAAI;QACX,gBAAgB,EAChB,CAAC;QACD,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,UAAU,EACR,qBAAqB,CACnB,MAAM,CAAC,UAAU,EACjB,IAAI;gBACF,aAAa,CAChB;SACJ,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,mBAAmB,CAC3B,CAAC;AACJ,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,CACP,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACf,qBAAqB,CACnB,KAAK,EACL,IAAI;QACF,GAAG;QACH,KAAK;QACL,GAAG,CACN,CACJ,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,SAAS,CAChB,KAAc,EACd,IAAY,EACZ,UAGI,EAAE;IAEN,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,KAAK,CAAC,MAAM,KAAK,CAAC,EAClB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,6BAA6B,CAChC,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GACV,KAAK,CAAC,GAAG,CACP,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACf,MAAM,QAAQ,GACZ,IAAI;YACJ,GAAG;YACH,KAAK;YACL,GAAG,CAAC;QACN,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,qBAAqB,CAC1B,KAAK,EACL,QAAQ,CACT,CAAC;QACJ,CAAC;QACD,IACE,OAAO,CAAC,WAAW,EACnB,CAAC;YACD,OAAO,wBAAwB,CAC7B,KAAK,EACL,QAAQ,CACT,CAAC;QACJ,CAAC;QACD,OAAO,aAAa,CAClB,KAAK,EACL,QAAQ,CACT,CAAC;IACJ,CAAC,CACF,CAAC;IACJ,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,MAAM,CAAC,MAAM,EACrB,KAAK,IAAI,CAAC,EACV,CAAC;QACD,IACE,MAAM,CAAC,KAAK,CAAE;YACd,MAAM,CAAC,KAAK,GAAG,CAAC,CAAE,EAClB,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;gBACF,kDAAkD,CACrD,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAClB,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,MAAM,YAAY,GAChB,0BAA0B,CACxB,MAAM,CAAC,YAAY,EACnB,IAAI,GAAG,eAAe,CACvB,CAAC;IACJ,MAAM,aAAa,GACjB,0BAA0B,CACxB,MAAM,CAAC,aAAa,EACpB,IAAI,GAAG,gBAAgB,CACxB,CAAC;IACJ,MAAM,KAAK,GACT,YAAY;QACZ,aAAa,CAAC;IAChB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,2CAA2C,CAC9C,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GACjB,6BAA6B,CAC3B,MAAM,CAAC,aAAa,EACpB,IAAI,GAAG,gBAAgB,CACxB,CAAC;IACJ,MAAM,aAAa,GACjB,6BAA6B,CAC3B,MAAM,CAAC,aAAa,EACpB,IAAI,GAAG,gBAAgB,CACxB,CAAC;IACJ,IACE,aAAa;QACX,YAAY;QACd,aAAa;YACX,aAAa,EACf,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,iDAAiD,CACpD,CAAC;IACJ,CAAC;IACD,IACE,CAAC,KAAK,CAAC,OAAO,CACZ,MAAM,CAAC,mBAAmB,CAC3B;QACD,MAAM;aACH,mBAAmB;aACnB,MAAM,KAAK,KAAK,EACnB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,sEAAsE,CACzE,CAAC;IACJ,CAAC;IACD,MAAM,mBAAmB,GACvB,MAAM;SACH,mBAAmB;SACnB,GAAG,CACF,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACf,wBAAwB,CACtB,KAAK,EACL,IAAI;QACF,uBAAuB;QACvB,KAAK;QACL,GAAG,CACN,CACJ,CAAC;IACN,MAAM,GAAG,GACP,mBAAmB,CAAC,MAAM,CACxB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACb,GAAG,GAAG,KAAK,EACb,CAAC,CACF,CAAC;IACJ,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;YACf,KAAK,EACP,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,uCAAuC,CAC1C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,YAAY;QACZ,aAAa;QACb,uBAAuB,EACrB,qBAAqB,CACnB,MAAM;aACH,uBAAuB,EAC1B,IAAI;YACF,0BAA0B,CAC7B;QACH,uBAAuB,EACrB,qBAAqB,CACnB,MAAM;aACH,uBAAuB,EAC1B,IAAI;YACF,0BAA0B,CAC7B;QACH,aAAa;QACb,aAAa;QACb,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,KAAc;IAEd,MAAM,MAAM,GACV,aAAa,CACX,KAAK,EACL,qBAAqB,CACtB,CAAC;IACJ,OAAO;QACL,aAAa,EACX,SAAS,CACP,MAAM,CAAC,aAAa,EACpB,mCAAmC,EACnC;YACE,QAAQ,EAAE,IAAI;SACf,CACF;QACH,aAAa,EACX,SAAS,CACP,MAAM,CAAC,aAAa,EACpB,mCAAmC,EACnC;YACE,WAAW,EAAE,IAAI;SAClB,CACF;QACH,eAAe,EACb,SAAS,CACP,MAAM,CAAC,eAAe,EACtB,qCAAqC,EACrC;YACE,QAAQ,EAAE,IAAI;SACf,CACF;QACH,QAAQ,EACN,SAAS,CACP,MAAM,CAAC,QAAQ,EACf,8BAA8B,CAC/B;QACH,QAAQ,EACN,SAAS,CACP,MAAM,CAAC,QAAQ,EACf,8BAA8B,CAC/B;QACH,YAAY,EACV,SAAS,CACP,MAAM,CAAC,YAAY,EACnB,kCAAkC,EAClC;YACE,QAAQ,EAAE,IAAI;SACf,CACF;QACH,kCAAkC,EAChC,SAAS,CACP,MAAM;aACH,kCAAkC,EACrC,wDAAwD,CACzD;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO;QACL,aAAa,EACX,qBAAqB,CACnB,MAAM,CAAC,aAAa,EACpB,IAAI,GAAG,gBAAgB,CACxB;QACH,aAAa,EACX,wBAAwB,CACtB,MAAM,CAAC,aAAa,EACpB,IAAI,GAAG,gBAAgB,CACxB;QACH,eAAe,EACb,qBAAqB,CACnB,MAAM,CAAC,eAAe,EACtB,IAAI;YACF,kBAAkB,CACrB;QACH,QAAQ,EACN,aAAa,CACX,MAAM,CAAC,QAAQ,EACf,IAAI,GAAG,WAAW,CACnB;QACH,QAAQ,EACN,aAAa,CACX,MAAM,CAAC,QAAQ,EACf,IAAI,GAAG,WAAW,CACnB;QACH,YAAY,EACV,qBAAqB,CACnB,MAAM,CAAC,YAAY,EACnB,IAAI,GAAG,eAAe,CACvB;QACH,kCAAkC,EAChC,aAAa,CACX,MAAM;aACH,kCAAkC,EACrC,IAAI;YACF,qCAAqC,CACxC;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,UAC8B;IAE9B,OAAO,SAAS,CAAC,GAAG,CAClB,CAAC,GAAG,EAAE,EAAE,CACN,UAAU,CAAC,GAAG,CAAC;SACZ,QAAQ,EAAE,CAChB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CACnB,MACmB,EACnB,MAAc;IAEd,OAAO,MAAM,CAAC,IAAI,CAChB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,KAAK,MAAM,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAqB,EACrB,UAC8B,EAC9B,IAAY;IAEZ,KACE,MAAM,GAAG,IAAI,SAAS,EACtB,CAAC;QACD,IACE,CAAC,YAAY,CACX,IAAI,CAAC,GAAG,CAAC,EACT,UAAU,CAAC,GAAG,CAAC,CAChB,EACD,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;gBACF,GAAG;gBACH,GAAG;gBACH,mDAAmD,CACtD,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAChB,KAAc,EACd,KAAa,EACb,IAAqB,EACrB,MACyB;IAEzB,MAAM,IAAI,GACR,uBAAuB;QACvB,KAAK;QACL,GAAG,CAAC;IACN,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,MAAM,UAAU,GACd,eAAe,CACb,MAAM,CAAC,UAAU,EACjB,IAAI,GAAG,aAAa,CACrB,CAAC;IACJ,sBAAsB,CACpB,IAAI,EACJ,UAAU,EACV,IAAI,GAAG,aAAa,CACrB,CAAC;IACF,MAAM,WAAW,GACf,gBAAgB,CACd,MAAM,CAAC,WAAW,EAClB,IAAI,GAAG,cAAc,CACtB,CAAC;IACJ,IACE,MAAM,KAAK,YAAY;QACvB,WAAW,CAAC,IAAI;YACd,gBAAgB,EAClB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,oEAAoE,CACvE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EACJ,qBAAqB,CACnB,MAAM,CAAC,MAAM,EACb,IAAI,GAAG,SAAS,CACjB;QACH,UAAU;QACV,MAAM,EACJ,WAAW,CACT,MAAM,CAAC,MAAM,EACb,IAAI,GAAG,SAAS,CACjB;QACH,oCAAoC,EAClC,aAAa,CACX,MAAM;aACH,oCAAoC,EACvC,IAAI;YACF,uCAAuC,CAC1C;QACH,6BAA6B,EAC3B,mBAAmB,CACjB,MAAM;aACH,6BAA6B,EAChC,IAAI;YACF,gCAAgC,CACnC;QACH,QAAQ,EACN,iBAAiB,CACf,MAAM,CAAC,QAAQ,EACf,IAAI,GAAG,WAAW,CACnB;QACH,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAqB;IAErB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KACE,MAAM,GAAG,IAAI,SAAS,EACtB,CAAC;QACD,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QAC1B,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;YAC5B,KAAK,GAAG,OAAO,EACf,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,gEAAgE,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAoB,EACpB,MAAqB;IAErB,OAAO,CACL,KAAK,CAAC,YAAY;QAChB,MAAM,CAAC,YAAY;QACrB,KAAK,CAAC,aAAa;YACjB,MAAM,CAAC,aAAa;QACtB,KAAK;aACF,uBAAuB;YACxB,MAAM;iBACH,uBAAuB;QAC5B,KAAK;aACF,uBAAuB;YACxB,MAAM;iBACH,uBAAuB;QAC5B,KAAK,CAAC,aAAa;YACjB,MAAM,CAAC,aAAa;QACtB,KAAK,CAAC,aAAa;YACjB,MAAM,CAAC,aAAa,CACvB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAc;IAEd,MAAM,MAAM,GACV,aAAa,CACX,KAAK,EACL,gBAAgB,CACjB,CAAC;IACJ,IACE,MAAM,CAAC,aAAa;QACpB,uCAAuC,EACvC,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,wCAAwC;YACtC,uCAAuC;YACvC,IAAI,CACP,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,aAAa;QACpB,gCAAgC,EAChC,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,wEAAwE,CACzE,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,gBAAgB;QACrB,oBAAoB;QACtB,MAAM,CAAC,SAAS;YACd,iBAAiB,EACnB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,yBAAyB;QAC9B,mBAAmB;QACrB,MAAM,CAAC,aAAa;YAClB,kCAAkC;QACpC,MAAM,CAAC,mBAAmB;YACxB,2CAA2C,EAC7C,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,0BAA0B;QAC/B,KAAK;QACP,MAAM,CAAC,sBAAsB;YAC3B,KAAK;QACP,MAAM,CAAC,sBAAsB;YAC3B,KAAK;QACP,MAAM,CAAC,kBAAkB;YACvB,KAAK,EACP,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,wHAAwH,CACzH,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GACV,WAAW,CACT,MAAM,CAAC,gBAAgB,EACvB,iCAAiC,CAClC,CAAC;IACJ,MAAM,QAAQ,GACZ,aAAa,CACX,MAAM,CAAC,gBAAgB,EACvB,iCAAiC,CAClC,CAAC;IACJ,KACE,MAAM,GAAG,IAAI;QACX,aAAa;QACb,YAAY;QACZ,SAAS;QACT,oBAAoB;KACZ,EACV,CAAC;QACD,IACE,OAAO,QAAQ,CAAC,GAAG,CAAC;YACpB,SAAS,EACT,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,kCAAkC;gBAChC,GAAG;gBACH,mBAAmB,CACtB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GACR,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,IACE,CAAC,KAAK,CAAC,OAAO,CACZ,MAAM,CAAC,KAAK,CACb,EACD,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,wCAAwC,CACzC,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,KAAK,CAAC,MAAM;QACnB,iBAAiB,CAAC,IAAI,CAAC,EACvB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,uFAAuF,CACxF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GACT,MAAM,CAAC,KAAK,CAAC,GAAG,CACd,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,SAAS,CACP,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,CACP,CACJ,CAAC;IACJ,MAAM,GAAG,GACP,KAAK,CAAC,GAAG,CACP,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,MAAM,CACd,CAAC;IACJ,IACE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI;QACjB,GAAG,CAAC,MAAM,EACV,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,gEAAgE,CACjE,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAClB,KAAK,CAAC,GAAG,CACP,CAAC,IAAI,EAAE,EAAE,CACP,aAAa,CACX,IAAI,CAAC,UAAU,CAChB,CACJ,CAAC;IACJ,IACE,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI;QAC5B,cAAc,CAAC,MAAM,EACrB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,mEAAmE,CACpE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GACf,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,yBAAyB,CACjC,yCAAyC,CAC1C,CAAC;IACJ,CAAC;IACD,KACE,MAAM,IAAI,IAAI,KAAK,EACnB,CAAC;QACD,IACE,CAAC,kBAAkB,CACjB,WAAW,EACX,IAAI,CAAC,MAAM,CACZ,EACD,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,sGAAsG,CACvG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa,EACX,uCAAuC;QACzC,SAAS,EACP,qBAAqB,CACnB,MAAM,CAAC,SAAS,EAChB,0BAA0B,CAC3B;QACH,cAAc,EACZ,qBAAqB,CACnB,MAAM,CAAC,cAAc,EACrB,+BAA+B,CAChC;QACH,gBAAgB,EACd,MAAM;QACR,aAAa,EACX,gCAAgC;QAClC,gBAAgB,EACd,oBAAoB;QACtB,SAAS,EACP,iBAAiB;QACnB,yBAAyB,EACvB,mBAAmB;QACrB,aAAa,EACX,kCAAkC;QACpC,mBAAmB,EACjB,2CAA2C;QAC7C,gBAAgB,EAAE;YAChB,WAAW,EACT,QAAQ,CAAC,WAAsB;YACjC,UAAU,EACR,QAAQ,CAAC,UAAqB;YAChC,OAAO,EACL,QAAQ,CAAC,OAAkB;YAC7B,kBAAkB,EAChB,QAAQ;iBACL,kBAA6B;SACnC;QACD,0BAA0B,EACxB,KAAK;QACP,sBAAsB,EACpB,KAAK;QACP,sBAAsB,EACpB,KAAK;QACP,kBAAkB,EAChB,KAAK;QACP,IAAI;QACJ,KAAK;QACL,QAAQ,EACN,iBAAiB,CACf,MAAM,CAAC,QAAQ,EACf,yBAAyB,CAC1B;QACH,WAAW,EACT,gBAAgB,CACd,MAAM,CAAC,WAAW,EAClB,4BAA4B,CAC7B;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,KAAiB;IAEjB,MAAM,MAAM,GACV,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC,IAAI;QAChB,UAAU;QACV,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC;YACD,MAAM,CAAC,SAAS,CAAC;AACvB,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAa,EACb,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EACvB,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,IAAI,GAAG,kBAAkB,CAC1B,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,+BAA+B,CACtC,KAAa,EACb,IAAY;IAEZ,MAAM,MAAM,GACV,uBAAuB,CACrB,KAAK,EACL,IAAI,CACL,CAAC;IACJ,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,2BAA2B,CACnC,IAAI;YACF,6BAA6B,CAChC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAClB,MACmB,EACnB,MAAc,EACd,IAAY;IAEZ,MAAM,OAAO,GACX,MAAM,CAAC,CAAC,CAAE,CAAC;IACb,MAAM,OAAO,GACX,MAAM,CACJ,MAAM,CAAC,MAAM,GAAG,CAAC,CACjB,CAAC;IACL,MAAM,KAAK,GACT,IAAI,CAAC,GAAG,CACN,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAChB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EACjB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAClB,CAAC;IACJ,MAAM,SAAS,GACb,MAAM,CAAC,OAAO;QACd,EAAE;QACF,KAAK,CAAC;IACR,IACE,MAAM;QACJ,OAAO,GAAG,SAAS;QACrB,MAAM;YACJ,OAAO,GAAG,SAAS,EACrB,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,IAAI;YACF,8EAA8E,CACjF,CAAC;IACJ,CAAC;IAED,KACE,MAAM,KAAK,IAAI,MAAM,EACrB,CAAC;QACD,IACE,IAAI,CAAC,GAAG,CACN,MAAM,GAAG,KAAK,CACf,IAAI,SAAS,EACd,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK;QACH,MAAM,CAAC,MAAM,GAAG,CAAC,EACnB,KAAK,IAAI,CAAC,EACV,CAAC;QACD,MAAM,KAAK,GACT,MAAM,CAAC,KAAK,CAAE,CAAC;QACjB,MAAM,KAAK,GACT,MAAM,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC;QACrB,IACE,MAAM,GAAG,KAAK;YACd,MAAM,GAAG,KAAK,EACd,CAAC;YACD,OAAO;gBACL,KAAK;gBACL,KAAK;gBACL,QAAQ,EACN,CAAC,MAAM,GAAG,KAAK,CAAC;oBAChB,CAAC,KAAK,GAAG,KAAK,CAAC;gBACjB,KAAK,EAAE,KAAK;aACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,IAAI,2BAA2B,CACnC,IAAI;QACF,+DAA+D,CAClE,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,KAC4B;IAM5B,MAAM,KAAK,GACT,eAAe,CACb,KAAK,CAAC,KAAK,CACZ,CAAC;IACJ,OAAO;QACL,UAAU,EAAE;YACV,aAAa,EACX,+BAA+B,CAC7B,KAAK,CAAC,aAAa,EACnB,eAAe,CAChB;YACH,aAAa,EACX,aAAa,CAAC,KAAK,CAAC;YACtB,eAAe,EACb,+BAA+B,CAC7B,KAAK,CAAC,eAAe,EACrB,iBAAiB,CAClB;YACH,QAAQ,EACN,uBAAuB,CACrB,KAAK,CAAC,YAAY,CAAC,CAAC,EACpB,gBAAgB,CACjB;YACH,QAAQ,EACN,uBAAuB,CACrB,KAAK,CAAC,YAAY,CAAC,CAAC,EACpB,gBAAgB,CACjB;YACH,YAAY,EACV,+BAA+B,CAC7B,KAAK,CAAC,YAAY,EAClB,cAAc,CACf;YACH,kCAAkC,EAChC,uBAAuB,CACrB,KAAK;iBACF,kCAAkC,EACrC,oCAAoC,CACrC;SACJ;QACD,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAqB,EACrB,UAC8B;IAE9B,OAAO;QACL,aAAa,EACX,WAAW,CACT,IAAI,CAAC,aAAa,EAClB,UAAU,CAAC,aAAa,EACxB,eAAe,CAChB;QACH,aAAa,EACX,WAAW,CACT,IAAI,CAAC,aAAa,EAClB,UAAU,CAAC,aAAa,EACxB,OAAO,CACR;QACH,eAAe,EACb,WAAW,CACT,IAAI,CAAC,eAAe,EACpB,UAAU,CAAC,eAAe,EAC1B,iBAAiB,CAClB;QACH,QAAQ,EACN,WAAW,CACT,IAAI,CAAC,QAAQ,EACb,UAAU,CAAC,QAAQ,EACnB,gBAAgB,CACjB;QACH,QAAQ,EACN,WAAW,CACT,IAAI,CAAC,QAAQ,EACb,UAAU,CAAC,QAAQ,EACnB,gBAAgB,CACjB;QACH,YAAY,EACV,WAAW,CACT,IAAI,CAAC,YAAY,EACjB,UAAU,CAAC,YAAY,EACvB,cAAc,CACf;QACH,kCAAkC,EAChC,WAAW,CACT,IAAI;aACD,kCAAkC,EACrC,UAAU;aACP,kCAAkC,EACrC,oCAAoC,CACrC;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,QAIG;IAMH,IAAI,OAAO,GAML,CAAC;YACL,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;IAEH,KACE,MAAM,GAAG,IAAI,SAAS,EACtB,CAAC;QACD,MAAM,OAAO,GACX,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,MAAM,GACV,OAAO,CAAC,KAAK;YACX,CAAC,CAAC,CAAC;oBACC,KAAK,EACH,OAAO,CAAC,KAAK;oBACf,MAAM,EAAE,CAAC;iBACV,CAAC;YACJ,CAAC,CAAC;gBACE;oBACE,KAAK,EACH,OAAO,CAAC,KAAK;oBACf,MAAM,EACJ,CAAC;wBACD,OAAO,CAAC,QAAQ;iBACnB;gBACD;oBACE,KAAK,EACH,OAAO,CAAC,KAAK;oBACf,MAAM,EACJ,OAAO,CAAC,QAAQ;iBACnB;aACF,CAAC;QAER,MAAM,IAAI,GACR,EAAE,CAAC;QACL,KACE,MAAM,MAAM,IAAI,OAAO,EACvB,CAAC;YACD,KACE,MAAM,MAAM,IAAI,MAAM,EACtB,CAAC;gBACD,IACE,MAAM,CAAC,MAAM,KAAK,CAAC,EACnB,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC;oBACR,OAAO,EAAE;wBACP,GAAG,MAAM,CAAC,OAAO;wBACjB,CAAC,GAAG,CAAC,EACH,MAAM,CAAC,KAAK;qBACf;oBACD,MAAM,EACJ,MAAM,CAAC,MAAM;wBACb,MAAM,CAAC,MAAM;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAChB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACX,UAAU,EACR,MAAM,CAAC,OACuB;QAChC,MAAM,EACJ,MAAM,CAAC,MAAM;KAChB,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,OACuB,EACvB,QAIG;IAEH,MAAM,KAAK,GACT,IAAI,GAAG,CACL,OAAO,CAAC,KAAK,CAAC,GAAG,CACf,CAAC,IAAI,EAAE,EAAE,CAAC;QACR,aAAa,CACX,IAAI,CAAC,UAAU,CAChB;QACD,IAAI;KACI,CACX,CACF,CAAC;IACJ,OAAO,iBAAiB,CACtB,QAAQ,CACT,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GACR,KAAK,CAAC,GAAG,CACP,aAAa,CACX,MAAM,CAAC,UAAU,CAClB,CACF,CAAC;QACJ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,2BAA2B,CACnC,8DAA8D,CAC/D,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI;YACJ,MAAM,EACJ,MAAM,CAAC,MAAM;SAChB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CACxB,QACyB;IAEzB,MAAM,KAAK,GACT,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,2BAA2B,CACnC,sDAAsD,CACvD,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GACV,IAAI,KAAK,CACP,KAAK;SACF,mBAAmB;SACnB,MAAM,CACV,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEZ,KACE,MAAM,KAAK,IAAI,QAAQ,EACvB,CAAC;QACD,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,MAAM,CAAC,MAAM,EACrB,KAAK,IAAI,CAAC,EACV,CAAC;YACD,MAAM,CAAC,KAAK,CAAE;gBACZ,KAAK,CAAC,MAAM;oBACZ,KAAK,CAAC,IAAI,CAAC,MAAM;yBACd,mBAAmB,CAAC,KAAK,CAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GACP,MAAM,CAAC,MAAM,CACX,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACb,GAAG,GAAG,KAAK,EACb,CAAC,CACF,CAAC;IACJ,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QACrB,GAAG,IAAI,CAAC,EACR,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GACd,MAAM,CAAC,GAAG,CACR,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,GAAG,GAAG,CACd,CAAC;IAEJ,OAAO;QACL,YAAY,EACV,KAAK,CAAC,YAAY;QACpB,aAAa,EACX,KAAK,CAAC,aAAa;QACrB,uBAAuB,EACrB,KAAK;aACF,uBAAuB;QAC5B,uBAAuB,EACrB,KAAK;aACF,uBAAuB;QAC5B,aAAa,EACX,KAAK,CAAC,aAAa;QACrB,aAAa,EACX,KAAK,CAAC,aAAa;QACrB,mBAAmB,EACjB,UAAU;KACb,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,QACyB,EACzB,MAIa;IAEb,OAAO,QAAQ,CAAC,MAAM,CACpB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACb,GAAG;QACH,KAAK,CAAC,MAAM;YACV,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EACtB,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAC4B;IAE5B,MAAM,OAAO,GACX,0BAA0B,CACxB,KAAK,CAAC,OAAO,CACd,CAAC;IACJ,MAAM,KAAK,GACT,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,QAAQ,GACZ,iBAAiB,CACf,OAAO,CAAC,IAAI,EACZ,KAAK,CAAC,UAAU,CACjB,CAAC;IACJ,MAAM,QAAQ,GACZ,oBAAoB,CAClB,OAAO,EACP,QAAQ,CACT,CAAC;IACJ,MAAM,KAAK,GACT,SAAS,CAAC,KAAK,CACb,CAAC,GAAG,EAAE,EAAE,CACN,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CACtB,CAAC;IACJ,MAAM,MAAM,GACV,iBAAiB,CACf,QAAQ,CACT,CAAC;IACJ,MAAM,SAAS,GACb,cAAc,CACZ,QAAQ,EACR,CAAC,IAAI,EAAE,EAAE,CACP,IAAI;SACD,oCAAoC,CAC1C,CAAC;IACJ,MAAM,UAAU,GACd,cAAc,CACZ,QAAQ,EACR,CAAC,IAAI,EAAE,EAAE,CACP,IAAI;SACD,6BAA6B,CACnC,CAAC;IACJ,IACE,CAAC,MAAM,CAAC,QAAQ,CACd,SAAS,CACV;QACD,CAAC,MAAM,CAAC,QAAQ,CACd,UAAU,CACX;QACD,UAAU,GAAG,CAAC;QACd,UAAU,GAAG,CAAC,EACd,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,sEAAsE,CACvE,CAAC;IACJ,CAAC;IAED,OAAO,mBAAmB,CACxB;QACE,SAAS,EACP,OAAO,CAAC,SAAS;QACnB,cAAc,EACZ,OAAO,CAAC,cAAc;QACxB,gBAAgB,EACd,OAAO,CAAC,gBAAgB;QAC1B,gBAAgB,EACd,KAAK;YACH,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,cAAc;QACpB,UAAU,EACR,KAAK,CAAC,UAAU;QAClB,KAAK,EACH,KAAK,CAAC,KAAK;QACb,MAAM;QACN,oCAAoC,EAClC,SAAS;QACX,6BAA6B,EAC3B,UAAU;QACZ,WAAW,EACT,QAAQ,CAAC,GAAG,CACV,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACV,MAAM,EACJ,KAAK,CAAC,IAAI,CAAC,MAAM;YACnB,MAAM,EACJ,KAAK,CAAC,MAAM;YACd,QAAQ,EACN,KAAK,CAAC,IAAI,CAAC,QAAQ;YACrB,WAAW,EACT,KAAK,CAAC,IAAI;iBACP,WAAW;SACjB,CAAC,CACH;QACH,gBAAgB,EAAE;YAChB,GAAG,OAAO;iBACP,gBAAgB;SACpB;QACD,mBAAmB,EACjB,2CAA2C;QAC7C,+CAA+C,EAC7C,IAAI;QACN,sCAAsC,EACpC,IAAI;QACN,2BAA2B,EACzB,KAAK;QACP,oCAAoC,EAClC,KAAK;QACP,0BAA0B,EACxB,KAAK;QACP,sBAAsB,EACpB,KAAK;QACP,sBAAsB,EACpB,KAAK;QACP,kBAAkB,EAChB,KAAK;QACP,4BAA4B,EAC1B,KAAK;KACR,EACD,wCAAwC,EACxC,OAAO,EACP;QACE,4HAA4H;QAC5H,uJAAuJ;QACvJ,2IAA2I;QAC3I,sNAAsN;QACtN,kIAAkI;QAClI,uEAAuE;KACxE,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAc;IAEd,MAAM,MAAM,GACV,aAAa,CACX,KAAK,EACL,gBAAgB,CACjB,CAAC;IACJ,IACE,MAAM,CAAC,aAAa;QACpB,0CAA0C,EAC1C,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,wCAAwC;YACtC,0CAA0C;YAC1C,IAAI,CACP,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,aAAa;QAClB,gCAAgC;QAClC,MAAM,CAAC,yBAAyB;YAC9B,KAAK;QACP,MAAM,CAAC,gBAAgB;YACrB,oBAAoB,EACtB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,qDAAqD,CACtD,CAAC;IACJ,CAAC;IACD,IACE,CAAC,KAAK,CAAC,OAAO,CACZ,MAAM,CAAC,OAAO,CACf;QACD,MAAM,CAAC,OAAO,CAAC,MAAM;YACnB,CAAC,EACH,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,mDAAmD,CACpD,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,GAChB,CAAC,CAAC,CAAC;IACL,MAAM,OAAO,GACX,MAAM,CAAC,OAAO,CAAC,GAAG,CAChB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACf,MAAM,IAAI,GACR,yBAAyB;YACzB,KAAK;YACL,GAAG,CAAC;QACN,MAAM,MAAM,GACV,aAAa,CACX,KAAK,EACL,IAAI,CACL,CAAC;QACJ,MAAM,SAAS,GACb,wBAAwB,CACtB,MAAM;aACH,2BAA2B,EAC9B,IAAI;YACF,8BAA8B,CACjC,CAAC;QACJ,IACE,SAAS;YACT,cAAc,EACd,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,gEAAgE,CACjE,CAAC;QACJ,CAAC;QACD,cAAc;YACZ,SAAS,CAAC;QACZ,OAAO;YACL,2BAA2B,EACzB,SAAS;YACX,iBAAiB,EACf,mBAAmB,CACjB,MAAM;iBACH,iBAAiB,EACpB,IAAI;gBACF,oBAAoB,CACvB;YACH,mBAAmB,EACjB,mBAAmB,CACjB,MAAM;iBACH,mBAAmB,EACtB,IAAI;gBACF,sBAAsB,CACzB;SACJ,CAAC;IACJ,CAAC,CACF,CAAC;IACJ,MAAM,KAAK,GACT,aAAa,CACX,MAAM,CAAC,YAAY,EACnB,6BAA6B,CAC9B,CAAC;IACJ,MAAM,UAAU,GACd,MAAM,CAAC,YAAY;QACjB,IAAI;QACJ,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,qBAAqB,CACnB,MAAM,CAAC,YAAY,EACnB,6BAA6B,CAC9B,CAAC;IAER,OAAO;QACL,aAAa,EACX,0CAA0C;QAC5C,SAAS,EACP,qBAAqB,CACnB,MAAM,CAAC,SAAS,EAChB,0BAA0B,CAC3B;QACH,cAAc,EACZ,qBAAqB,CACnB,MAAM,CAAC,cAAc,EACrB,+BAA+B,CAChC;QACH,aAAa,EACX,gCAAgC;QAClC,yBAAyB,EACvB,KAAK;QACP,gBAAgB,EACd,oBAAoB;QACtB,YAAY,EAAE;YACZ,CAAC,EACC,aAAa,CACX,KAAK,CAAC,CAAC,EACP,+BAA+B,CAChC;YACH,CAAC,EACC,aAAa,CACX,KAAK,CAAC,CAAC,EACP,+BAA+B,CAChC;SACJ;QACD,aAAa,EACX,qBAAqB,CACnB,MAAM,CAAC,aAAa,EACpB,8BAA8B,CAC/B;QACH,KAAK,EACH,eAAe,CACb,MAAM,CAAC,KAAK,CACb;QACH,eAAe,EACb,qBAAqB,CACnB,MAAM,CAAC,eAAe,EACtB,gCAAgC,CACjC;QACH,YAAY,EACV,UAAU;QACZ,OAAO;QACP,QAAQ,EACN,iBAAiB,CACf,MAAM,CAAC,QAAQ,EACf,yBAAyB,CAC1B;QACH,WAAW,EACT,gBAAgB,CACd,MAAM,CAAC,WAAW,EAClB,4BAA4B,CAC7B;KACJ,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAC0B;IAE1B,MAAM,MAAM,GACV,6BAA6B,CAC3B,OAAO,CACR,CAAC;IACJ,OAAO;QACL,SAAS,EACP,MAAM,CAAC,SAAS;QAClB,2BAA2B,EACzB,KAAK;QACP,MAAM,EACJ,+DAA+D;QACjE,uBAAuB,EACrB,IAAI;KACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Module boundary and integration notes.
3
+ * Calculates continuous monochromatic Fraunhofer PSF density for a uniformly illuminated, zero-phase,
4
+ * on-axis ideal straight-edged regular polygon. Physical area is explicit; f/N may supply the
5
+ * equal-area diameter only under a declared nominal-area convention. No phase aberration, clipping,
6
+ * field dependence, curved blades, defocus or polychromatic behavior is inferred. Density = A |F/A|² /
7
+ * (lambda * propagationDistance)². Parseval normalization is over the infinite plane, NOT over the
8
+ * supplied point list. Downstream quadrature must preserve density × area and report
9
+ * truncation/convergence.
10
+ * @see docs/PHYSICS_FOUNDATION.md for equations, coordinate/unit conventions, blockers and support
11
+ * limits.
12
+ */
13
+ import { type CalculationResult } from "../core/calculation-result.js";
14
+ import { type CalculateIdealApertureInput } from "./aperture.js";
15
+ import type { SpectralWavelengthBasis } from "../core/spectral.js";
16
+ /** On-axis, in-focus scalar diffraction of one ideal regular polygon pupil. */
17
+ export interface CalculateIdealPolygonDiffractionInput extends CalculateIdealApertureInput {
18
+ /** Diameter of a circle with the SAME AREA as the physical polygon opening. */
19
+ equivalentAreaPupilDiameterMm: number;
20
+ /** Paraxial pupil-to-image propagation scale; not silently inferred from focus. */
21
+ pupilToImageDistanceMm: number;
22
+ /** Wavelength in the declared propagation medium; no air/vacuum conversion. */
23
+ wavelengthNm: number;
24
+ wavelengthBasis: Exclude<SpectralWavelengthBasis, "unspecified">;
25
+ /** Displacements from the on-axis PSF center, +X right / +Y up; at most 4096. */
26
+ imagePointsMicrometers: readonly {
27
+ x: number;
28
+ y: number;
29
+ }[];
30
+ }
31
+ /** Continuous unit-energy PSF samples, not a normalized finite convolution kernel. */
32
+ export interface IdealPolygonDiffraction {
33
+ bladeCount: number;
34
+ firstBladeEdgeAngleDegrees: number;
35
+ pupilToImageDistanceMm: number;
36
+ wavelengthNm: number;
37
+ wavelengthBasis: Exclude<SpectralWavelengthBasis, "unspecified">;
38
+ pupilAreaSquareMm: number;
39
+ pupilCircumradiusMm: number;
40
+ pupilNormalization: "equal-area-circle";
41
+ fieldAxes: "+X right, +Y up";
42
+ energyNormalization: "unit-integral-over-infinite-image-plane";
43
+ throughputApplied: false;
44
+ samples: readonly {
45
+ imagePointMicrometers: {
46
+ x: number;
47
+ y: number;
48
+ };
49
+ /** |F/A|²; unity at the origin. Not an energy/probability weight. */
50
+ peakNormalizedIntensity: number;
51
+ /** Density integrating to unity over the full image plane, in 1/µm². */
52
+ intensityDensityPerSquareMicrometer: number;
53
+ }[];
54
+ }
55
+ /**
56
+ * Calculates continuous monochromatic Fraunhofer PSF density for a uniformly
57
+ * illuminated, zero-phase, on-axis ideal straight-edged regular polygon.
58
+ * Physical area is explicit; f/N may supply the equal-area diameter only under
59
+ * a declared nominal-area convention. No phase aberration, clipping, field
60
+ * dependence, curved blades, defocus or polychromatic behavior is inferred.
61
+ *
62
+ * Density = A |F/A|² / (lambda * propagationDistance)². Parseval normalization
63
+ * is over the infinite plane, NOT over the supplied point list. Downstream
64
+ * quadrature must preserve density × area and report truncation/convergence.
65
+ */
66
+ export declare function calculateIdealPolygonDiffractionPsf(input: CalculateIdealPolygonDiffractionInput): CalculationResult<IdealPolygonDiffraction>;
67
+ //# sourceMappingURL=polygon-diffraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygon-diffraction.d.ts","sourceRoot":"","sources":["../../src/optics/polygon-diffraction.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAE5F,OAAO,EAAkC,KAAK,2BAA2B,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,+EAA+E;AAC/E,MAAM,WAAW,qCAAsC,SAAQ,2BAA2B;IACxF,+EAA+E;IAC/E,6BAA6B,EAAE,MAAM,CAAC;IACtC,mFAAmF;IACnF,sBAAsB,EAAE,MAAM,CAAC;IAC/B,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAAC;IACjE,iFAAiF;IACjF,sBAAsB,EAAE,SAAS;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7D;AAED,sFAAsF;AACtF,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B,EAAE,MAAM,CAAC;IACnC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAAC;IACjE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,mBAAmB,CAAC;IACxC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,mBAAmB,EAAE,yCAAyC,CAAC;IAC/D,iBAAiB,EAAE,KAAK,CAAC;IACzB,OAAO,EAAE,SAAS;QAChB,qBAAqB,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAChD,qEAAqE;QACrE,uBAAuB,EAAE,MAAM,CAAC;QAChC,wEAAwE;QACxE,mCAAmC,EAAE,MAAM,CAAC;KAC7C,EAAE,CAAC;CACL;AA8CD;;;;;;;;;;GAUG;AACH,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,qCAAqC,GAC3C,iBAAiB,CAAC,uBAAuB,CAAC,CA8E5C"}
@@ -0,0 +1,145 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ /**
3
+ * Module boundary and integration notes.
4
+ * Calculates continuous monochromatic Fraunhofer PSF density for a uniformly illuminated, zero-phase,
5
+ * on-axis ideal straight-edged regular polygon. Physical area is explicit; f/N may supply the
6
+ * equal-area diameter only under a declared nominal-area convention. No phase aberration, clipping,
7
+ * field dependence, curved blades, defocus or polychromatic behavior is inferred. Density = A |F/A|² /
8
+ * (lambda * propagationDistance)². Parseval normalization is over the infinite plane, NOT over the
9
+ * supplied point list. Downstream quadrature must preserve density × area and report
10
+ * truncation/convergence.
11
+ * @see docs/PHYSICS_FOUNDATION.md for equations, coordinate/unit conventions, blockers and support
12
+ * limits.
13
+ */
14
+ import { approximationResult } from "../core/calculation-result.js";
15
+ import { InvalidScientificInputError, requirePositiveFinite } from "../core/validation.js";
16
+ import { calculateIdealApertureGeometry } from "./aperture.js";
17
+ /** sin(x)/x - 1, evaluated without cancellation near zero. */
18
+ function sincMinusOne(x) {
19
+ if (Math.abs(x) < 0.01) {
20
+ const x2 = x * x;
21
+ return x2 * (-1 / 6 + x2 * (1 / 120 - x2 / 5040));
22
+ }
23
+ return Math.sin(x) / x - 1;
24
+ }
25
+ /**
26
+ * Independently derived polygon Fourier boundary integral via the divergence
27
+ * theorem. Coordinates use unit circumradius so pupil size cannot change the
28
+ * numerical conditioning. Subtracting the zero-frequency edge term (whose
29
+ * closed-contour sum is zero) removes cancellation at/near the origin.
30
+ */
31
+ function peakIntensity(vertices, area, qx, qy) {
32
+ const q = Math.hypot(qx, qy);
33
+ if (q === 0)
34
+ return 1;
35
+ const ux = qx / q;
36
+ const uy = qy / q;
37
+ let real = 0;
38
+ let imaginary = 0;
39
+ for (let index = 0; index < vertices.length; index += 1) {
40
+ const a = vertices[index];
41
+ const b = vertices[(index + 1) % vertices.length];
42
+ const dx = b.x - a.x;
43
+ const dy = b.y - a.y;
44
+ const midpointPhase = qx * (a.x + b.x) / 2 + qy * (a.y + b.y) / 2;
45
+ const edgePhase = (qx * dx + qy * dy) / 2;
46
+ const sm1 = sincMinusOne(edgePhase);
47
+ const sinc = 1 + sm1;
48
+ const coefficient = (ux * dy - uy * dx) / area;
49
+ // i times the edge integral: real = -Im(edge), imaginary = Re(edge).
50
+ real += coefficient * sinc * (Math.sin(midpointPhase) / q);
51
+ imaginary += coefficient * (sm1 - sinc * 2 * Math.sin(midpointPhase / 2) ** 2) / q;
52
+ }
53
+ return real * real + imaginary * imaginary;
54
+ }
55
+ /**
56
+ * Calculates continuous monochromatic Fraunhofer PSF density for a uniformly
57
+ * illuminated, zero-phase, on-axis ideal straight-edged regular polygon.
58
+ * Physical area is explicit; f/N may supply the equal-area diameter only under
59
+ * a declared nominal-area convention. No phase aberration, clipping, field
60
+ * dependence, curved blades, defocus or polychromatic behavior is inferred.
61
+ *
62
+ * Density = A |F/A|² / (lambda * propagationDistance)². Parseval normalization
63
+ * is over the infinite plane, NOT over the supplied point list. Downstream
64
+ * quadrature must preserve density × area and report truncation/convergence.
65
+ */
66
+ export function calculateIdealPolygonDiffractionPsf(input) {
67
+ // Reject unmodeled effects rather than silently accepting and ignoring them.
68
+ const allowed = new Set([
69
+ "bladeCount", "firstBladeEdgeAngleDegrees", "equivalentAreaPupilDiameterMm",
70
+ "pupilToImageDistanceMm", "wavelengthNm", "wavelengthBasis", "imagePointsMicrometers"
71
+ ]);
72
+ if (typeof input !== "object" || input === null || Array.isArray(input) ||
73
+ Object.keys(input).some((key) => !allowed.has(key))) {
74
+ throw new InvalidScientificInputError("Polygon diffraction input contains unsupported fields or is not an object.");
75
+ }
76
+ requirePositiveFinite("equivalentAreaPupilDiameterMm", input.equivalentAreaPupilDiameterMm);
77
+ requirePositiveFinite("pupilToImageDistanceMm", input.pupilToImageDistanceMm);
78
+ requirePositiveFinite("wavelengthNm", input.wavelengthNm);
79
+ if (input.wavelengthBasis !== "air" && input.wavelengthBasis !== "vacuum") {
80
+ throw new InvalidScientificInputError("wavelengthBasis must be air or vacuum.");
81
+ }
82
+ if (input.firstBladeEdgeAngleDegrees !== undefined && !Number.isFinite(input.firstBladeEdgeAngleDegrees)) {
83
+ throw new InvalidScientificInputError("firstBladeEdgeAngleDegrees must be finite when supplied.");
84
+ }
85
+ if (!Array.isArray(input.imagePointsMicrometers) ||
86
+ input.imagePointsMicrometers.length === 0 || input.imagePointsMicrometers.length > 4096) {
87
+ throw new InvalidScientificInputError("imagePointsMicrometers must contain 1 through 4096 points.");
88
+ }
89
+ for (let index = 0; index < input.imagePointsMicrometers.length; index += 1) {
90
+ if (!Object.hasOwn(input.imagePointsMicrometers, index)) {
91
+ throw new InvalidScientificInputError("imagePointsMicrometers must not contain sparse entries.");
92
+ }
93
+ }
94
+ const geometry = calculateIdealApertureGeometry(input).value;
95
+ const unitArea = input.bladeCount * Math.sin(2 * Math.PI / input.bladeCount) / 2;
96
+ const pupilAreaSquareMm = Math.PI * (input.equivalentAreaPupilDiameterMm / 2) ** 2;
97
+ const radius = Math.sqrt(pupilAreaSquareMm / unitArea);
98
+ const propagationScale = input.wavelengthNm / 1_000_000 * input.pupilToImageDistanceMm;
99
+ const densityScale = pupilAreaSquareMm / propagationScale ** 2 / 1_000_000;
100
+ if (![pupilAreaSquareMm, radius, propagationScale, densityScale].every((x) => Number.isFinite(x) && x > 0)) {
101
+ throw new InvalidScientificInputError("Derived polygon diffraction scales must remain finite and positive.");
102
+ }
103
+ const samples = input.imagePointsMicrometers.map((point) => {
104
+ if (typeof point !== "object" || point === null || Array.isArray(point) ||
105
+ !Number.isFinite(point.x) || !Number.isFinite(point.y) ||
106
+ Object.keys(point).some((key) => key !== "x" && key !== "y")) {
107
+ throw new InvalidScientificInputError("Each image point must contain finite x/y coordinates only.");
108
+ }
109
+ const qx = 2 * Math.PI * (point.x / 1000) * radius / propagationScale;
110
+ const qy = 2 * Math.PI * (point.y / 1000) * radius / propagationScale;
111
+ // A numerical envelope, not a real-lens calibration or physical accuracy bound.
112
+ if (!Number.isFinite(Math.hypot(qx, qy)) || Math.hypot(qx, qy) > 1_000_000) {
113
+ throw new InvalidScientificInputError("Dimensionless pupil phase radius must not exceed 1000000.");
114
+ }
115
+ const intensity = peakIntensity(geometry.normalizedVertices, unitArea, qx, qy);
116
+ return {
117
+ imagePointMicrometers: { x: point.x === 0 ? 0 : point.x, y: point.y === 0 ? 0 : point.y },
118
+ peakNormalizedIntensity: intensity,
119
+ intensityDensityPerSquareMicrometer: intensity * densityScale
120
+ };
121
+ });
122
+ return approximationResult({
123
+ bladeCount: geometry.bladeCount,
124
+ firstBladeEdgeAngleDegrees: input.firstBladeEdgeAngleDegrees ?? 0,
125
+ pupilToImageDistanceMm: input.pupilToImageDistanceMm,
126
+ wavelengthNm: input.wavelengthNm,
127
+ wavelengthBasis: input.wavelengthBasis,
128
+ pupilAreaSquareMm,
129
+ pupilCircumradiusMm: radius,
130
+ pupilNormalization: "equal-area-circle",
131
+ fieldAxes: "+X right, +Y up",
132
+ energyNormalization: "unit-integral-over-infinite-image-plane",
133
+ throughputApplied: false,
134
+ samples
135
+ }, "ideal-regular-polygon-fraunhofer-diffraction", "1.0.0", [
136
+ "Uniform unit pupil amplitude, zero phase, ideal regular straight-edged polygon; on-axis in-focus scalar paraxial Fraunhofer propagation only.",
137
+ "Wavelength is supplied in its declared propagation medium; no wavelength-basis conversion is performed.",
138
+ "Equal-area diameter fixes physical pupil area, not circumradius or inradius; no optical throughput loss is applied.",
139
+ "Continuous PSF density has unit integral over the infinite image plane. Point samples are not a finite energy-normalized kernel.",
140
+ "The analytical polygon boundary integral has no FFT/pupil-grid aliasing; downstream image-plane sampling and finite-support truncation still require convergence checks.",
141
+ "No real-lens calibration, aberration, defocus, mechanical clipping, curved blades, field dependence, polarization, sensor response or stray light is modeled.",
142
+ "Circular Airy remains a separate named diagnostic; do not stack this diffraction PSF over an already diffracted complex-pupil result."
143
+ ], { notes: ["No quantified physical-model uncertainty is asserted. Numerical tolerances in tests are validation evidence, not real-lens accuracy bounds."] });
144
+ }
145
+ //# sourceMappingURL=polygon-diffraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygon-diffraction.js","sourceRoot":"","sources":["../../src/optics/polygon-diffraction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { type EvidenceProvenance } from "../core/evidence-provenance.js";
2
+ /** Exact, generic camera/lens and acquisition state; no implicit interpolation. */
3
+ export interface OpticalProfileState {
4
+ bodyId: string;
5
+ bodyVersion: string;
6
+ lensId: string;
7
+ lensVersion: string;
8
+ focalLengthMm: number;
9
+ aperture: number;
10
+ focusDistanceM: number;
11
+ captureMode: "still" | "video";
12
+ outputWidth: number;
13
+ outputHeight: number;
14
+ frameRateHz: number;
15
+ stabilizationMode: string;
16
+ }
17
+ /** Generic approximation evidence; never implies measured calibration. */
18
+ export interface GenericOpticalEvidence {
19
+ kind: "generic-parametric";
20
+ basis: string;
21
+ residualNote: string;
22
+ sources: readonly EvidenceProvenance[];
23
+ }
24
+ /** @internal Strict shared profile parser helpers. */
25
+ export declare function record(value: unknown, keys: readonly string[]): Record<string, unknown>;
26
+ /** @internal */
27
+ export declare function finite(value: unknown, name: string): number;
28
+ /** @internal */
29
+ export declare function positive(value: unknown, name: string): number;
30
+ /** @internal */
31
+ export declare function textValue(value: unknown): string;
32
+ /** @internal */
33
+ export declare function choice<T extends string>(value: unknown, choices: readonly T[]): T;
34
+ /** @internal Reject holes, duplicates (by consumers), and unbounded work. */
35
+ export declare function list(value: unknown, maximum?: number): unknown[];
36
+ /** Parses a complete exact-state binding, including still/video/output settings. */
37
+ export declare function parseOpticalProfileState(value: unknown): OpticalProfileState;
38
+ /** @internal Exact binding; mismatches fail rather than extrapolate. */
39
+ export declare function requireSameState(expected: OpticalProfileState, actual: OpticalProfileState): void;
40
+ /** @internal */
41
+ export declare function parseEvidence(value: unknown): GenericOpticalEvidence;
42
+ //# sourceMappingURL=profile-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-contract.d.ts","sourceRoot":"","sources":["../../src/optics/profile-contract.ts"],"names":[],"mappings":"AAWA,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAE5F,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,0EAA0E;AAC1E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACxC;AAED,sDAAsD;AACtD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASvF;AAED,gBAAgB;AAChB,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED,gBAAgB;AAChB,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED,gBAAgB;AAChB,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKhD;AAED,gBAAgB;AAChB,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAGjF;AAED,6EAA6E;AAC7E,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAAO,GAAG,OAAO,EAAE,CAM9D;AAED,oFAAoF;AACpF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAqB5E;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAIjG;AAED,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAIpE"}
@@ -0,0 +1,92 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ /**
3
+ * Generic optical state binds one body/lens/version/acquisition/output configuration to explicit
4
+ * approximation evidence. These identities do not certify manufacturer calibration.
5
+ * Correction/stray-light consumers validate exact state equality before applying declared
6
+ * coefficients.
7
+ * @see docs/RELEASE_1_0.md and the corresponding domain guide.
8
+ */
9
+ import { InvalidScientificInputError } from "../core/validation.js";
10
+ import { parseEvidenceList } from "../core/evidence-provenance.js";
11
+ /** @internal Strict shared profile parser helpers. */
12
+ export function record(value, keys) {
13
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
14
+ throw new InvalidScientificInputError("Expected a profile object.");
15
+ }
16
+ const result = value;
17
+ if (Object.keys(result).some((key) => !keys.includes(key))) {
18
+ throw new InvalidScientificInputError("Unknown profile field.");
19
+ }
20
+ return result;
21
+ }
22
+ /** @internal */
23
+ export function finite(value, name) {
24
+ if (typeof value !== "number" || !Number.isFinite(value)) {
25
+ throw new InvalidScientificInputError(`${name} must be finite.`);
26
+ }
27
+ return value;
28
+ }
29
+ /** @internal */
30
+ export function positive(value, name) {
31
+ const number = finite(value, name);
32
+ if (number <= 0)
33
+ throw new InvalidScientificInputError(`${name} must be positive.`);
34
+ return number;
35
+ }
36
+ /** @internal */
37
+ export function textValue(value) {
38
+ if (typeof value !== "string" || value.trim() === "") {
39
+ throw new InvalidScientificInputError("Expected a nonempty identity or evidence string.");
40
+ }
41
+ return value;
42
+ }
43
+ /** @internal */
44
+ export function choice(value, choices) {
45
+ if (!choices.includes(value))
46
+ throw new InvalidScientificInputError("Unknown profile enum.");
47
+ return value;
48
+ }
49
+ /** @internal Reject holes, duplicates (by consumers), and unbounded work. */
50
+ export function list(value, maximum = 4096) {
51
+ if (!Array.isArray(value) || value.length > maximum ||
52
+ Array.from({ length: value.length }, (_, index) => index in value).includes(false)) {
53
+ throw new InvalidScientificInputError("Expected a bounded dense array.");
54
+ }
55
+ return value;
56
+ }
57
+ /** Parses a complete exact-state binding, including still/video/output settings. */
58
+ export function parseOpticalProfileState(value) {
59
+ const r = record(value, ["bodyId", "bodyVersion", "lensId", "lensVersion", "focalLengthMm",
60
+ "aperture", "focusDistanceM", "captureMode", "outputWidth", "outputHeight", "frameRateHz", "stabilizationMode"]);
61
+ const width = positive(r.outputWidth, "outputWidth");
62
+ const height = positive(r.outputHeight, "outputHeight");
63
+ if (!Number.isSafeInteger(width) || !Number.isSafeInteger(height)) {
64
+ throw new InvalidScientificInputError("Output dimensions must be safe integers.");
65
+ }
66
+ const mode = choice(r.captureMode, ["still", "video"]);
67
+ const rate = finite(r.frameRateHz, "frameRateHz");
68
+ if (mode === "still" ? rate !== 0 : rate <= 0) {
69
+ throw new InvalidScientificInputError("Still frameRateHz must be zero; video must be positive.");
70
+ }
71
+ return {
72
+ bodyId: textValue(r.bodyId), bodyVersion: textValue(r.bodyVersion),
73
+ lensId: textValue(r.lensId), lensVersion: textValue(r.lensVersion),
74
+ focalLengthMm: positive(r.focalLengthMm, "focalLengthMm"), aperture: positive(r.aperture, "aperture"),
75
+ focusDistanceM: positive(r.focusDistanceM, "focusDistanceM"), captureMode: mode,
76
+ outputWidth: width, outputHeight: height, frameRateHz: rate,
77
+ stabilizationMode: textValue(r.stabilizationMode)
78
+ };
79
+ }
80
+ /** @internal Exact binding; mismatches fail rather than extrapolate. */
81
+ export function requireSameState(expected, actual) {
82
+ if (JSON.stringify(parseOpticalProfileState(expected)) !== JSON.stringify(parseOpticalProfileState(actual))) {
83
+ throw new InvalidScientificInputError("Profile is not applicable to this exact camera/lens state.");
84
+ }
85
+ }
86
+ /** @internal */
87
+ export function parseEvidence(value) {
88
+ const r = record(value, ["kind", "basis", "residualNote", "sources"]);
89
+ const sources = parseEvidenceList(list(r.sources, 32), "evidence.sources");
90
+ return { kind: choice(r.kind, ["generic-parametric"]), basis: textValue(r.basis), residualNote: textValue(r.residualNote), sources };
91
+ }
92
+ //# sourceMappingURL=profile-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-contract.js","sourceRoot":"","sources":["../../src/optics/profile-contract.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,21 @@
1
+ /**
2
+ * Module boundary and integration notes.
3
+ * Returns the public PSF/pupil foundation contract. The contract describes current diagnostics plus
4
+ * reserved future contribution ownership. It does not imply that reserved contributions are
5
+ * implemented.
6
+ * Evaluates the currently implemented PSF-related diagnostics in one explicit
7
+ * field/depth/spectral/pupil context without combining them into a synthetic PSF or blur radius. Field
8
+ * position is recorded even though the current defocus-circle and circular-Airy diagnostics are not
9
+ * field dependent. Future field-dependent contributions can consume the same context without changing
10
+ * these existing primitives.
11
+ * @see docs/PHYSICS_FOUNDATION.md for equations, coordinate/unit conventions, blockers and support
12
+ * limits.
13
+ */
1
14
  import { type CalculationProvenance, type CalculationResult } from "../core/calculation-result.js";
2
15
  import type { LensFieldPointMm } from "./radial-distortion.js";
3
- export declare const PSF_FOUNDATION_VERSION: "0.1.0";
16
+ export declare const PSF_FOUNDATION_VERSION: "0.3.0";
4
17
  export type PsfContributionId = "geometric-defocus-circle" | "circular-diffraction-first-zero" | "non-circular-diffraction" | "mechanical-pupil-clipping" | "field-curvature" | "field-dependent-aberration" | "field-dependent-bokeh";
5
- export type PsfContributionStatus = "implemented-diagnostic" | "reserved-contract";
18
+ export type PsfContributionStatus = "implemented-diagnostic" | "implemented-framework" | "reserved-contract";
6
19
  export interface PsfContributionContract {
7
20
  id: PsfContributionId;
8
21
  status: PsfContributionStatus;
@@ -13,7 +26,7 @@ export interface PsfFoundationContract {
13
26
  version: typeof PSF_FOUNDATION_VERSION;
14
27
  coordinateSpace: "image-plane-metric";
15
28
  fieldAxes: "+X right, +Y up";
16
- compositionPolicy: "separate-contributions-no-combined-psf";
29
+ compositionPolicy: "separate-diagnostics-plus-explicit-profiled-combined-psf";
17
30
  contributions: readonly PsfContributionContract[];
18
31
  previewReferencePolicy: {
19
32
  previewMayApproximate: true;
@@ -1 +1 @@
1
- {"version":3,"file":"psf-foundation.d.ts","sourceRoot":"","sources":["../../src/optics/psf-foundation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"psf-foundation.d.ts","sourceRoot":"","sources":["../../src/optics/psf-foundation.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,22 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
+ /**
3
+ * Module boundary and integration notes.
4
+ * Returns the public PSF/pupil foundation contract. The contract describes current diagnostics plus
5
+ * reserved future contribution ownership. It does not imply that reserved contributions are
6
+ * implemented.
7
+ * Evaluates the currently implemented PSF-related diagnostics in one explicit
8
+ * field/depth/spectral/pupil context without combining them into a synthetic PSF or blur radius. Field
9
+ * position is recorded even though the current defocus-circle and circular-Airy diagnostics are not
10
+ * field dependent. Future field-dependent contributions can consume the same context without changing
11
+ * these existing primitives.
12
+ * @see docs/PHYSICS_FOUNDATION.md for equations, coordinate/unit conventions, blockers and support
13
+ * limits.
14
+ */
2
15
  import { calculatedResult } from "../core/calculation-result.js";
3
16
  import { InvalidScientificInputError, requirePositiveFinite } from "../core/validation.js";
4
17
  import { calculateDefocusCircle } from "./depth-of-field.js";
5
18
  import { calculateAiryDisk } from "./diffraction.js";
6
- export const PSF_FOUNDATION_VERSION = "0.1.0";
19
+ export const PSF_FOUNDATION_VERSION = "0.3.0";
7
20
  const CONTRIBUTIONS = [
8
21
  {
9
22
  id: "geometric-defocus-circle",
@@ -19,39 +32,39 @@ const CONTRIBUTIONS = [
19
32
  },
20
33
  {
21
34
  id: "non-circular-diffraction",
22
- status: "reserved-contract",
23
- dependsOn: ["pupil", "wavelength", "field-position"],
24
- note: "Reserved for a defensible pupil-dependent diffraction model. Polygon aperture geometry alone does not implement this contribution."
35
+ status: "implemented-framework",
36
+ dependsOn: ["pupil", "wavelength"],
37
+ note: "Implemented ideal on-axis regular-polygon Fraunhofer PSF density with explicit equal-area physical pupil scaling. Curved blades, aberration and off-axis/clipped real pupils are not inferred."
25
38
  },
26
39
  {
27
40
  id: "mechanical-pupil-clipping",
28
- status: "reserved-contract",
41
+ status: "implemented-framework",
29
42
  dependsOn: ["pupil", "field-position"],
30
- note: "Reserved for field-dependent pupil clipping/mechanical vignetting that can affect both throughput and PSF/bokeh shape."
43
+ note: "Implemented through explicit sampled-PSF or complex-pupil profile semantics. PSF shape and relative pupil throughput remain separately owned to avoid double counting."
31
44
  },
32
45
  {
33
46
  id: "field-curvature",
34
- status: "reserved-contract",
47
+ status: "implemented-framework",
35
48
  dependsOn: ["field-position", "focus-depth"],
36
- note: "Reserved for field-dependent focus displacement. It must not be represented as geometric distortion."
49
+ note: "Implemented as explicit field-dependent best-focus image-plane offset in the lens-PSF profile framework. It remains separate from geometric distortion."
37
50
  },
38
51
  {
39
52
  id: "field-dependent-aberration",
40
- status: "reserved-contract",
53
+ status: "implemented-framework",
41
54
  dependsOn: ["field-position", "focus-depth", "pupil", "wavelength"],
42
- note: "Reserved for defensible field-dependent aberration/PSF structure. Do not replace this with a generic lens-sharpness score."
55
+ note: "Implemented through full 2D sampled PSF kernels and explicit complex-pupil amplitude/OPD propagation. No scalar lens-sharpness score is produced."
43
56
  },
44
57
  {
45
58
  id: "field-dependent-bokeh",
46
- status: "reserved-contract",
59
+ status: "implemented-framework",
47
60
  dependsOn: ["field-position", "focus-depth", "pupil"],
48
- note: "Reserved for field-dependent out-of-focus PSF/bokeh behavior, including future cat's-eye effects when pupil clipping is modeled."
61
+ note: "Implemented through signed-defocus sampled PSF context and optional pupil-clipping shape. Visibility/depth compositing remains renderer work."
49
62
  }
50
63
  ];
51
64
  const NOTES = [
52
- "This foundation preserves PSF-related contributions separately; it does not calculate a combined PSF, MTF, or one scalar lens-sharpness result.",
65
+ "This foundation preserves the legacy defocus/Airy diagnostics separately while the lens-PSF framework can resolve explicitly profiled combined primary-optical PSFs. It still never emits one scalar lens-sharpness result.",
53
66
  "Existing geometric defocus and circular Airy outputs remain independently named scientific diagnostics with their own provenance.",
54
- "Reserved contributions describe ownership/dependencies only and do not claim implemented visual behavior.",
67
+ "Framework contributions require explicit profile/evaluator APIs; the ideal polygon diffraction evaluator is standalone and is not silently composed into the legacy diagnostics or POC.",
55
68
  "Illumination vignetting is a separate throughput-only model and is not a PSF contribution.",
56
69
  "Real-lens PSF calibration requires defensible provenance, compatible reuse rights, and explicit limitations/uncertainty."
57
70
  ];
@@ -66,7 +79,7 @@ export function getPsfFoundationContract() {
66
79
  version: PSF_FOUNDATION_VERSION,
67
80
  coordinateSpace: "image-plane-metric",
68
81
  fieldAxes: "+X right, +Y up",
69
- compositionPolicy: "separate-contributions-no-combined-psf",
82
+ compositionPolicy: "separate-diagnostics-plus-explicit-profiled-combined-psf",
70
83
  contributions: CONTRIBUTIONS.map((contribution) => ({
71
84
  ...contribution,
72
85
  dependsOn: [...contribution.dependsOn]
@@ -1 +1 @@
1
- {"version":3,"file":"psf-foundation.js","sourceRoot":"","sources":["../../src/optics/psf-foundation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"psf-foundation.js","sourceRoot":"","sources":["../../src/optics/psf-foundation.ts"],"names":[],"mappings":"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"}