@untangle-code/parser-registry 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/LICENSE +661 -0
  2. package/NOTICE +90 -0
  3. package/README.md +352 -2
  4. package/THIRD_PARTY_LICENSES.md +91 -0
  5. package/dist/boundaries/expression.d.ts +10 -0
  6. package/dist/boundaries/expression.d.ts.map +1 -0
  7. package/dist/boundaries/expression.js +95 -0
  8. package/dist/boundaries/expression.js.map +1 -0
  9. package/dist/boundaries/extract.d.ts +12 -0
  10. package/dist/boundaries/extract.d.ts.map +1 -0
  11. package/dist/boundaries/extract.js +259 -0
  12. package/dist/boundaries/extract.js.map +1 -0
  13. package/dist/boundaries/python.d.ts +6 -0
  14. package/dist/boundaries/python.d.ts.map +1 -0
  15. package/dist/boundaries/python.js +154 -0
  16. package/dist/boundaries/python.js.map +1 -0
  17. package/dist/index.d.ts +26 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +19 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/languages/astgrep-backend/adapter.d.ts +101 -0
  22. package/dist/languages/astgrep-backend/adapter.d.ts.map +1 -0
  23. package/dist/languages/astgrep-backend/adapter.js +130 -0
  24. package/dist/languages/astgrep-backend/adapter.js.map +1 -0
  25. package/dist/languages/astgrep-backend/index.d.ts +29 -0
  26. package/dist/languages/astgrep-backend/index.d.ts.map +1 -0
  27. package/dist/languages/astgrep-backend/index.js +28 -0
  28. package/dist/languages/astgrep-backend/index.js.map +1 -0
  29. package/dist/languages/astgrep-backend/lang/bash.d.ts +38 -0
  30. package/dist/languages/astgrep-backend/lang/bash.d.ts.map +1 -0
  31. package/dist/languages/astgrep-backend/lang/bash.js +42 -0
  32. package/dist/languages/astgrep-backend/lang/bash.js.map +1 -0
  33. package/dist/languages/astgrep-backend/lang/c.d.ts +33 -0
  34. package/dist/languages/astgrep-backend/lang/c.d.ts.map +1 -0
  35. package/dist/languages/astgrep-backend/lang/c.js +85 -0
  36. package/dist/languages/astgrep-backend/lang/c.js.map +1 -0
  37. package/dist/languages/astgrep-backend/lang/cpp.d.ts +27 -0
  38. package/dist/languages/astgrep-backend/lang/cpp.d.ts.map +1 -0
  39. package/dist/languages/astgrep-backend/lang/cpp.js +38 -0
  40. package/dist/languages/astgrep-backend/lang/cpp.js.map +1 -0
  41. package/dist/languages/astgrep-backend/lang/csharp.d.ts +24 -0
  42. package/dist/languages/astgrep-backend/lang/csharp.d.ts.map +1 -0
  43. package/dist/languages/astgrep-backend/lang/csharp.js +102 -0
  44. package/dist/languages/astgrep-backend/lang/csharp.js.map +1 -0
  45. package/dist/languages/astgrep-backend/lang/index.d.ts +29 -0
  46. package/dist/languages/astgrep-backend/lang/index.d.ts.map +1 -0
  47. package/dist/languages/astgrep-backend/lang/index.js +22 -0
  48. package/dist/languages/astgrep-backend/lang/index.js.map +1 -0
  49. package/dist/languages/astgrep-backend/lang/java.d.ts +26 -0
  50. package/dist/languages/astgrep-backend/lang/java.d.ts.map +1 -0
  51. package/dist/languages/astgrep-backend/lang/java.js +89 -0
  52. package/dist/languages/astgrep-backend/lang/java.js.map +1 -0
  53. package/dist/languages/astgrep-backend/lang/kotlin.d.ts +44 -0
  54. package/dist/languages/astgrep-backend/lang/kotlin.d.ts.map +1 -0
  55. package/dist/languages/astgrep-backend/lang/kotlin.js +94 -0
  56. package/dist/languages/astgrep-backend/lang/kotlin.js.map +1 -0
  57. package/dist/languages/astgrep-backend/lang/php.d.ts +23 -0
  58. package/dist/languages/astgrep-backend/lang/php.d.ts.map +1 -0
  59. package/dist/languages/astgrep-backend/lang/php.js +80 -0
  60. package/dist/languages/astgrep-backend/lang/php.js.map +1 -0
  61. package/dist/languages/astgrep-backend/lang/ruby.d.ts +37 -0
  62. package/dist/languages/astgrep-backend/lang/ruby.d.ts.map +1 -0
  63. package/dist/languages/astgrep-backend/lang/ruby.js +70 -0
  64. package/dist/languages/astgrep-backend/lang/ruby.js.map +1 -0
  65. package/dist/languages/astgrep-backend/lang/swift.d.ts +34 -0
  66. package/dist/languages/astgrep-backend/lang/swift.d.ts.map +1 -0
  67. package/dist/languages/astgrep-backend/lang/swift.js +86 -0
  68. package/dist/languages/astgrep-backend/lang/swift.js.map +1 -0
  69. package/dist/languages/astgrep-backend/languages.d.ts +55 -0
  70. package/dist/languages/astgrep-backend/languages.d.ts.map +1 -0
  71. package/dist/languages/astgrep-backend/languages.js +214 -0
  72. package/dist/languages/astgrep-backend/languages.js.map +1 -0
  73. package/dist/languages/astgrep-backend/napi.d.ts +71 -0
  74. package/dist/languages/astgrep-backend/napi.d.ts.map +1 -0
  75. package/dist/languages/astgrep-backend/napi.js +176 -0
  76. package/dist/languages/astgrep-backend/napi.js.map +1 -0
  77. package/dist/languages/astgrep-backend/syntax.d.ts +88 -0
  78. package/dist/languages/astgrep-backend/syntax.d.ts.map +1 -0
  79. package/dist/languages/astgrep-backend/syntax.js +180 -0
  80. package/dist/languages/astgrep-backend/syntax.js.map +1 -0
  81. package/dist/languages/index.d.ts +14 -0
  82. package/dist/languages/index.d.ts.map +1 -0
  83. package/dist/languages/index.js +37 -0
  84. package/dist/languages/index.js.map +1 -0
  85. package/dist/languages/javascript/index.d.ts +4 -0
  86. package/dist/languages/javascript/index.d.ts.map +1 -0
  87. package/dist/languages/javascript/index.js +7 -0
  88. package/dist/languages/javascript/index.js.map +1 -0
  89. package/dist/languages/jsx/index.d.ts +4 -0
  90. package/dist/languages/jsx/index.d.ts.map +1 -0
  91. package/dist/languages/jsx/index.js +7 -0
  92. package/dist/languages/jsx/index.js.map +1 -0
  93. package/dist/languages/prose/index.d.ts +53 -0
  94. package/dist/languages/prose/index.d.ts.map +1 -0
  95. package/dist/languages/prose/index.js +172 -0
  96. package/dist/languages/prose/index.js.map +1 -0
  97. package/dist/languages/prose/line-bytes.d.ts +31 -0
  98. package/dist/languages/prose/line-bytes.d.ts.map +1 -0
  99. package/dist/languages/prose/line-bytes.js +39 -0
  100. package/dist/languages/prose/line-bytes.js.map +1 -0
  101. package/dist/languages/python/create-adapter.d.ts +20 -0
  102. package/dist/languages/python/create-adapter.d.ts.map +1 -0
  103. package/dist/languages/python/create-adapter.js +9 -0
  104. package/dist/languages/python/create-adapter.js.map +1 -0
  105. package/dist/languages/python/index.d.ts +4 -0
  106. package/dist/languages/python/index.d.ts.map +1 -0
  107. package/dist/languages/python/index.js +6 -0
  108. package/dist/languages/python/index.js.map +1 -0
  109. package/dist/languages/python/profile.d.ts +36 -0
  110. package/dist/languages/python/profile.d.ts.map +1 -0
  111. package/dist/languages/python/profile.js +282 -0
  112. package/dist/languages/python/profile.js.map +1 -0
  113. package/dist/languages/python/signature.d.ts +53 -0
  114. package/dist/languages/python/signature.d.ts.map +1 -0
  115. package/dist/languages/python/signature.js +188 -0
  116. package/dist/languages/python/signature.js.map +1 -0
  117. package/dist/languages/python/table.d.ts +46 -0
  118. package/dist/languages/python/table.d.ts.map +1 -0
  119. package/dist/languages/python/table.js +88 -0
  120. package/dist/languages/python/table.js.map +1 -0
  121. package/dist/languages/shared/call-detection.d.ts +17 -0
  122. package/dist/languages/shared/call-detection.d.ts.map +1 -0
  123. package/dist/languages/shared/call-detection.js +86 -0
  124. package/dist/languages/shared/call-detection.js.map +1 -0
  125. package/dist/languages/shared/chunks.d.ts +28 -0
  126. package/dist/languages/shared/chunks.d.ts.map +1 -0
  127. package/dist/languages/shared/chunks.js +181 -0
  128. package/dist/languages/shared/chunks.js.map +1 -0
  129. package/dist/languages/shared/create-adapter.d.ts +11 -0
  130. package/dist/languages/shared/create-adapter.d.ts.map +1 -0
  131. package/dist/languages/shared/create-adapter.js +90 -0
  132. package/dist/languages/shared/create-adapter.js.map +1 -0
  133. package/dist/languages/shared/decisions.d.ts +45 -0
  134. package/dist/languages/shared/decisions.d.ts.map +1 -0
  135. package/dist/languages/shared/decisions.js +141 -0
  136. package/dist/languages/shared/decisions.js.map +1 -0
  137. package/dist/languages/shared/dialect.d.ts +18 -0
  138. package/dist/languages/shared/dialect.d.ts.map +1 -0
  139. package/dist/languages/shared/dialect.js +37 -0
  140. package/dist/languages/shared/dialect.js.map +1 -0
  141. package/dist/languages/shared/doc-binding.d.ts +26 -0
  142. package/dist/languages/shared/doc-binding.d.ts.map +1 -0
  143. package/dist/languages/shared/doc-binding.js +50 -0
  144. package/dist/languages/shared/doc-binding.js.map +1 -0
  145. package/dist/languages/shared/engine.d.ts +49 -0
  146. package/dist/languages/shared/engine.d.ts.map +1 -0
  147. package/dist/languages/shared/engine.js +317 -0
  148. package/dist/languages/shared/engine.js.map +1 -0
  149. package/dist/languages/shared/extract-symbols.d.ts +5 -0
  150. package/dist/languages/shared/extract-symbols.d.ts.map +1 -0
  151. package/dist/languages/shared/extract-symbols.js +31 -0
  152. package/dist/languages/shared/extract-symbols.js.map +1 -0
  153. package/dist/languages/shared/fingerprint.d.ts +7 -0
  154. package/dist/languages/shared/fingerprint.d.ts.map +1 -0
  155. package/dist/languages/shared/fingerprint.js +95 -0
  156. package/dist/languages/shared/fingerprint.js.map +1 -0
  157. package/dist/languages/shared/grammar-loader.d.ts +15 -0
  158. package/dist/languages/shared/grammar-loader.d.ts.map +1 -0
  159. package/dist/languages/shared/grammar-loader.js +48 -0
  160. package/dist/languages/shared/grammar-loader.js.map +1 -0
  161. package/dist/languages/shared/import-detection.d.ts +24 -0
  162. package/dist/languages/shared/import-detection.d.ts.map +1 -0
  163. package/dist/languages/shared/import-detection.js +138 -0
  164. package/dist/languages/shared/import-detection.js.map +1 -0
  165. package/dist/languages/shared/js-family-profile.d.ts +5 -0
  166. package/dist/languages/shared/js-family-profile.d.ts.map +1 -0
  167. package/dist/languages/shared/js-family-profile.js +179 -0
  168. package/dist/languages/shared/js-family-profile.js.map +1 -0
  169. package/dist/languages/shared/node-kinds.d.ts +78 -0
  170. package/dist/languages/shared/node-kinds.d.ts.map +1 -0
  171. package/dist/languages/shared/node-kinds.js +141 -0
  172. package/dist/languages/shared/node-kinds.js.map +1 -0
  173. package/dist/languages/shared/node-utils.d.ts +31 -0
  174. package/dist/languages/shared/node-utils.d.ts.map +1 -0
  175. package/dist/languages/shared/node-utils.js +89 -0
  176. package/dist/languages/shared/node-utils.js.map +1 -0
  177. package/dist/languages/shared/parse-diagnostics.d.ts +44 -0
  178. package/dist/languages/shared/parse-diagnostics.d.ts.map +1 -0
  179. package/dist/languages/shared/parse-diagnostics.js +64 -0
  180. package/dist/languages/shared/parse-diagnostics.js.map +1 -0
  181. package/dist/languages/shared/parse-limits.d.ts +24 -0
  182. package/dist/languages/shared/parse-limits.d.ts.map +1 -0
  183. package/dist/languages/shared/parse-limits.js +134 -0
  184. package/dist/languages/shared/parse-limits.js.map +1 -0
  185. package/dist/languages/shared/profile.d.ts +149 -0
  186. package/dist/languages/shared/profile.d.ts.map +1 -0
  187. package/dist/languages/shared/profile.js +9 -0
  188. package/dist/languages/shared/profile.js.map +1 -0
  189. package/dist/languages/shared/scope-model.d.ts +32 -0
  190. package/dist/languages/shared/scope-model.d.ts.map +1 -0
  191. package/dist/languages/shared/scope-model.js +2 -0
  192. package/dist/languages/shared/scope-model.js.map +1 -0
  193. package/dist/languages/shared/scope-naming.d.ts +20 -0
  194. package/dist/languages/shared/scope-naming.d.ts.map +1 -0
  195. package/dist/languages/shared/scope-naming.js +118 -0
  196. package/dist/languages/shared/scope-naming.js.map +1 -0
  197. package/dist/languages/shared/scope-signature.d.ts +14 -0
  198. package/dist/languages/shared/scope-signature.d.ts.map +1 -0
  199. package/dist/languages/shared/scope-signature.js +82 -0
  200. package/dist/languages/shared/scope-signature.js.map +1 -0
  201. package/dist/languages/shared/signature.d.ts +55 -0
  202. package/dist/languages/shared/signature.d.ts.map +1 -0
  203. package/dist/languages/shared/signature.js +147 -0
  204. package/dist/languages/shared/signature.js.map +1 -0
  205. package/dist/languages/shared/syntax.d.ts +115 -0
  206. package/dist/languages/shared/syntax.d.ts.map +1 -0
  207. package/dist/languages/shared/syntax.js +2 -0
  208. package/dist/languages/shared/syntax.js.map +1 -0
  209. package/dist/languages/shared/table-profile-decisions.d.ts +54 -0
  210. package/dist/languages/shared/table-profile-decisions.d.ts.map +1 -0
  211. package/dist/languages/shared/table-profile-decisions.js +245 -0
  212. package/dist/languages/shared/table-profile-decisions.js.map +1 -0
  213. package/dist/languages/shared/table-profile-module-facts.d.ts +29 -0
  214. package/dist/languages/shared/table-profile-module-facts.d.ts.map +1 -0
  215. package/dist/languages/shared/table-profile-module-facts.js +139 -0
  216. package/dist/languages/shared/table-profile-module-facts.js.map +1 -0
  217. package/dist/languages/shared/table-profile-queries.d.ts +27 -0
  218. package/dist/languages/shared/table-profile-queries.d.ts.map +1 -0
  219. package/dist/languages/shared/table-profile-queries.js +70 -0
  220. package/dist/languages/shared/table-profile-queries.js.map +1 -0
  221. package/dist/languages/shared/table-profile-scopes.d.ts +46 -0
  222. package/dist/languages/shared/table-profile-scopes.d.ts.map +1 -0
  223. package/dist/languages/shared/table-profile-scopes.js +180 -0
  224. package/dist/languages/shared/table-profile-scopes.js.map +1 -0
  225. package/dist/languages/shared/table-profile.d.ts +302 -0
  226. package/dist/languages/shared/table-profile.d.ts.map +1 -0
  227. package/dist/languages/shared/table-profile.js +125 -0
  228. package/dist/languages/shared/table-profile.js.map +1 -0
  229. package/dist/languages/shared/tree-sitter-types.d.ts +44 -0
  230. package/dist/languages/shared/tree-sitter-types.d.ts.map +1 -0
  231. package/dist/languages/shared/tree-sitter-types.js +2 -0
  232. package/dist/languages/shared/tree-sitter-types.js.map +1 -0
  233. package/dist/languages/structured-text/index.d.ts +48 -0
  234. package/dist/languages/structured-text/index.d.ts.map +1 -0
  235. package/dist/languages/structured-text/index.js +120 -0
  236. package/dist/languages/structured-text/index.js.map +1 -0
  237. package/dist/languages/tsx/index.d.ts +4 -0
  238. package/dist/languages/tsx/index.d.ts.map +1 -0
  239. package/dist/languages/tsx/index.js +7 -0
  240. package/dist/languages/tsx/index.js.map +1 -0
  241. package/dist/languages/typescript/index.d.ts +4 -0
  242. package/dist/languages/typescript/index.d.ts.map +1 -0
  243. package/dist/languages/typescript/index.js +7 -0
  244. package/dist/languages/typescript/index.js.map +1 -0
  245. package/dist/languages/vue/index.d.ts +21 -0
  246. package/dist/languages/vue/index.d.ts.map +1 -0
  247. package/dist/languages/vue/index.js +234 -0
  248. package/dist/languages/vue/index.js.map +1 -0
  249. package/dist/languages/vue/mapping.d.ts +11 -0
  250. package/dist/languages/vue/mapping.d.ts.map +1 -0
  251. package/dist/languages/vue/mapping.js +77 -0
  252. package/dist/languages/vue/mapping.js.map +1 -0
  253. package/dist/registry.d.ts +24 -0
  254. package/dist/registry.d.ts.map +1 -0
  255. package/dist/registry.js +42 -0
  256. package/dist/registry.js.map +1 -0
  257. package/dist/text/byte-offset-table.d.ts +27 -0
  258. package/dist/text/byte-offset-table.d.ts.map +1 -0
  259. package/dist/text/byte-offset-table.js +39 -0
  260. package/dist/text/byte-offset-table.js.map +1 -0
  261. package/package.json +125 -3
  262. package/src/boundaries/expression.ts +95 -0
  263. package/src/boundaries/extract.ts +307 -0
  264. package/src/boundaries/python.ts +181 -0
  265. package/src/index.ts +51 -0
  266. package/src/languages/__golden__/javascript-basic.json +32 -0
  267. package/src/languages/__golden__/tsx-basic.json +19 -0
  268. package/src/languages/__golden__/typescript-basic.json +37 -0
  269. package/src/languages/astgrep-backend/GRAMMARS.md +86 -0
  270. package/src/languages/astgrep-backend/README.md +112 -0
  271. package/src/languages/astgrep-backend/__golden__/bash-basic.sh +53 -0
  272. package/src/languages/astgrep-backend/__golden__/c-basic.c +64 -0
  273. package/src/languages/astgrep-backend/__golden__/cpp-basic.cpp +65 -0
  274. package/src/languages/astgrep-backend/__golden__/csharp-basic.cs +73 -0
  275. package/src/languages/astgrep-backend/__golden__/go-basic.go +93 -0
  276. package/src/languages/astgrep-backend/__golden__/java-basic.java +62 -0
  277. package/src/languages/astgrep-backend/__golden__/kotlin-basic.kt +58 -0
  278. package/src/languages/astgrep-backend/__golden__/php-basic.php +72 -0
  279. package/src/languages/astgrep-backend/__golden__/ruby-basic.rb +62 -0
  280. package/src/languages/astgrep-backend/__golden__/rust-basic.rs +82 -0
  281. package/src/languages/astgrep-backend/__golden__/swift-basic.swift +73 -0
  282. package/src/languages/astgrep-backend/adapter.ts +240 -0
  283. package/src/languages/astgrep-backend/index.ts +44 -0
  284. package/src/languages/astgrep-backend/lang/README.md +115 -0
  285. package/src/languages/astgrep-backend/lang/bash.ts +78 -0
  286. package/src/languages/astgrep-backend/lang/c.ts +119 -0
  287. package/src/languages/astgrep-backend/lang/cpp.ts +65 -0
  288. package/src/languages/astgrep-backend/lang/csharp.ts +125 -0
  289. package/src/languages/astgrep-backend/lang/index.ts +61 -0
  290. package/src/languages/astgrep-backend/lang/java.ts +115 -0
  291. package/src/languages/astgrep-backend/lang/kotlin.ts +136 -0
  292. package/src/languages/astgrep-backend/lang/php.ts +105 -0
  293. package/src/languages/astgrep-backend/lang/ruby.ts +105 -0
  294. package/src/languages/astgrep-backend/lang/swift.ts +118 -0
  295. package/src/languages/astgrep-backend/languages.ts +238 -0
  296. package/src/languages/astgrep-backend/napi.ts +261 -0
  297. package/src/languages/astgrep-backend/syntax.ts +242 -0
  298. package/src/languages/index.ts +53 -0
  299. package/src/languages/javascript/index.ts +9 -0
  300. package/src/languages/jsx/index.ts +9 -0
  301. package/src/languages/prose/index.ts +270 -0
  302. package/src/languages/prose/line-bytes.ts +52 -0
  303. package/src/languages/python/README.md +246 -0
  304. package/src/languages/python/__golden__/python-basic.json +44 -0
  305. package/src/languages/python/create-adapter.ts +29 -0
  306. package/src/languages/python/index.ts +8 -0
  307. package/src/languages/python/profile.ts +341 -0
  308. package/src/languages/python/signature.ts +183 -0
  309. package/src/languages/python/table.ts +135 -0
  310. package/src/languages/shared/__fixtures__/large-over-32kib.ts.txt +1207 -0
  311. package/src/languages/shared/call-detection.ts +112 -0
  312. package/src/languages/shared/chunks.ts +255 -0
  313. package/src/languages/shared/create-adapter.ts +136 -0
  314. package/src/languages/shared/decisions.ts +204 -0
  315. package/src/languages/shared/dialect.ts +55 -0
  316. package/src/languages/shared/doc-binding.ts +78 -0
  317. package/src/languages/shared/engine.ts +461 -0
  318. package/src/languages/shared/extract-symbols.ts +35 -0
  319. package/src/languages/shared/fingerprint.ts +99 -0
  320. package/src/languages/shared/grammar-loader.ts +67 -0
  321. package/src/languages/shared/import-detection.ts +154 -0
  322. package/src/languages/shared/js-family-profile.ts +246 -0
  323. package/src/languages/shared/node-kinds.ts +153 -0
  324. package/src/languages/shared/node-utils.ts +120 -0
  325. package/src/languages/shared/parse-diagnostics.ts +125 -0
  326. package/src/languages/shared/parse-limits.ts +147 -0
  327. package/src/languages/shared/profile.ts +184 -0
  328. package/src/languages/shared/scope-model.ts +43 -0
  329. package/src/languages/shared/scope-naming.ts +124 -0
  330. package/src/languages/shared/scope-signature.ts +108 -0
  331. package/src/languages/shared/signature.ts +149 -0
  332. package/src/languages/shared/syntax.ts +116 -0
  333. package/src/languages/shared/table-profile-decisions.ts +251 -0
  334. package/src/languages/shared/table-profile-module-facts.ts +177 -0
  335. package/src/languages/shared/table-profile-queries.ts +85 -0
  336. package/src/languages/shared/table-profile-scopes.ts +198 -0
  337. package/src/languages/shared/table-profile.ts +427 -0
  338. package/src/languages/shared/tree-sitter-types.ts +46 -0
  339. package/src/languages/structured-text/index.ts +192 -0
  340. package/src/languages/tsx/index.ts +9 -0
  341. package/src/languages/typescript/index.ts +9 -0
  342. package/src/languages/vue/index.ts +312 -0
  343. package/src/languages/vue/mapping.ts +93 -0
  344. package/src/registry.ts +61 -0
  345. package/src/text/byte-offset-table.ts +63 -0
@@ -0,0 +1,1207 @@
1
+ /**
2
+ * FIXTURE fuer WP-215 — bewusst UEBER 32 KiB.
3
+ *
4
+ * Die native tree-sitter-Bindung puffert die Eingabe in einem Puffer fester
5
+ * Groesse. Ohne `bufferSize` sind das 32.768 Bytes; alles darueber wird mit
6
+ * `Invalid argument` abgewiesen. Diese Datei liegt DARUEBER und ist damit der
7
+ * Regressionsnachweis: parst sie, ist der Puffer proportional gesetzt.
8
+ *
9
+ * ERZEUGT, NICHT GESCHRIEBEN — deterministisch, ohne Zufall und ohne Zeit.
10
+ * Wer sie kuerzt, macht den Test wertlos: die Groesse IST die Aussage.
11
+ */
12
+
13
+ export interface Reading {
14
+ readonly id: number;
15
+ readonly label: string;
16
+ readonly value: number;
17
+ }
18
+
19
+ /** Deterministic accessor number 0. */
20
+ export function readingOf0(input: readonly Reading[]): Reading | null {
21
+ let best: Reading | null = null;
22
+ for (const item of input) {
23
+ if (item.id % 2 !== 0) continue;
24
+ if (best === null || item.value > best.value) {
25
+ best = item;
26
+ } else if (item.value === best.value && item.label < best.label) {
27
+ best = item;
28
+ }
29
+ }
30
+ return best;
31
+ }
32
+
33
+ /** Deterministic accessor number 1. */
34
+ export function readingOf1(input: readonly Reading[]): Reading | null {
35
+ let best: Reading | null = null;
36
+ for (const item of input) {
37
+ if (item.id % 3 !== 0) continue;
38
+ if (best === null || item.value > best.value) {
39
+ best = item;
40
+ } else if (item.value === best.value && item.label < best.label) {
41
+ best = item;
42
+ }
43
+ }
44
+ return best;
45
+ }
46
+
47
+ /** Deterministic accessor number 2. */
48
+ export function readingOf2(input: readonly Reading[]): Reading | null {
49
+ let best: Reading | null = null;
50
+ for (const item of input) {
51
+ if (item.id % 4 !== 0) continue;
52
+ if (best === null || item.value > best.value) {
53
+ best = item;
54
+ } else if (item.value === best.value && item.label < best.label) {
55
+ best = item;
56
+ }
57
+ }
58
+ return best;
59
+ }
60
+
61
+ /** Deterministic accessor number 3. */
62
+ export function readingOf3(input: readonly Reading[]): Reading | null {
63
+ let best: Reading | null = null;
64
+ for (const item of input) {
65
+ if (item.id % 5 !== 0) continue;
66
+ if (best === null || item.value > best.value) {
67
+ best = item;
68
+ } else if (item.value === best.value && item.label < best.label) {
69
+ best = item;
70
+ }
71
+ }
72
+ return best;
73
+ }
74
+
75
+ /** Deterministic accessor number 4. */
76
+ export function readingOf4(input: readonly Reading[]): Reading | null {
77
+ let best: Reading | null = null;
78
+ for (const item of input) {
79
+ if (item.id % 6 !== 0) continue;
80
+ if (best === null || item.value > best.value) {
81
+ best = item;
82
+ } else if (item.value === best.value && item.label < best.label) {
83
+ best = item;
84
+ }
85
+ }
86
+ return best;
87
+ }
88
+
89
+ /** Deterministic accessor number 5. */
90
+ export function readingOf5(input: readonly Reading[]): Reading | null {
91
+ let best: Reading | null = null;
92
+ for (const item of input) {
93
+ if (item.id % 7 !== 0) continue;
94
+ if (best === null || item.value > best.value) {
95
+ best = item;
96
+ } else if (item.value === best.value && item.label < best.label) {
97
+ best = item;
98
+ }
99
+ }
100
+ return best;
101
+ }
102
+
103
+ /** Deterministic accessor number 6. */
104
+ export function readingOf6(input: readonly Reading[]): Reading | null {
105
+ let best: Reading | null = null;
106
+ for (const item of input) {
107
+ if (item.id % 8 !== 0) continue;
108
+ if (best === null || item.value > best.value) {
109
+ best = item;
110
+ } else if (item.value === best.value && item.label < best.label) {
111
+ best = item;
112
+ }
113
+ }
114
+ return best;
115
+ }
116
+
117
+ /** Deterministic accessor number 7. */
118
+ export function readingOf7(input: readonly Reading[]): Reading | null {
119
+ let best: Reading | null = null;
120
+ for (const item of input) {
121
+ if (item.id % 2 !== 0) continue;
122
+ if (best === null || item.value > best.value) {
123
+ best = item;
124
+ } else if (item.value === best.value && item.label < best.label) {
125
+ best = item;
126
+ }
127
+ }
128
+ return best;
129
+ }
130
+
131
+ /** Deterministic accessor number 8. */
132
+ export function readingOf8(input: readonly Reading[]): Reading | null {
133
+ let best: Reading | null = null;
134
+ for (const item of input) {
135
+ if (item.id % 3 !== 0) continue;
136
+ if (best === null || item.value > best.value) {
137
+ best = item;
138
+ } else if (item.value === best.value && item.label < best.label) {
139
+ best = item;
140
+ }
141
+ }
142
+ return best;
143
+ }
144
+
145
+ /** Deterministic accessor number 9. */
146
+ export function readingOf9(input: readonly Reading[]): Reading | null {
147
+ let best: Reading | null = null;
148
+ for (const item of input) {
149
+ if (item.id % 4 !== 0) continue;
150
+ if (best === null || item.value > best.value) {
151
+ best = item;
152
+ } else if (item.value === best.value && item.label < best.label) {
153
+ best = item;
154
+ }
155
+ }
156
+ return best;
157
+ }
158
+
159
+ /** Deterministic accessor number 10. */
160
+ export function readingOf10(input: readonly Reading[]): Reading | null {
161
+ let best: Reading | null = null;
162
+ for (const item of input) {
163
+ if (item.id % 5 !== 0) continue;
164
+ if (best === null || item.value > best.value) {
165
+ best = item;
166
+ } else if (item.value === best.value && item.label < best.label) {
167
+ best = item;
168
+ }
169
+ }
170
+ return best;
171
+ }
172
+
173
+ /** Deterministic accessor number 11. */
174
+ export function readingOf11(input: readonly Reading[]): Reading | null {
175
+ let best: Reading | null = null;
176
+ for (const item of input) {
177
+ if (item.id % 6 !== 0) continue;
178
+ if (best === null || item.value > best.value) {
179
+ best = item;
180
+ } else if (item.value === best.value && item.label < best.label) {
181
+ best = item;
182
+ }
183
+ }
184
+ return best;
185
+ }
186
+
187
+ /** Deterministic accessor number 12. */
188
+ export function readingOf12(input: readonly Reading[]): Reading | null {
189
+ let best: Reading | null = null;
190
+ for (const item of input) {
191
+ if (item.id % 7 !== 0) continue;
192
+ if (best === null || item.value > best.value) {
193
+ best = item;
194
+ } else if (item.value === best.value && item.label < best.label) {
195
+ best = item;
196
+ }
197
+ }
198
+ return best;
199
+ }
200
+
201
+ /** Deterministic accessor number 13. */
202
+ export function readingOf13(input: readonly Reading[]): Reading | null {
203
+ let best: Reading | null = null;
204
+ for (const item of input) {
205
+ if (item.id % 8 !== 0) continue;
206
+ if (best === null || item.value > best.value) {
207
+ best = item;
208
+ } else if (item.value === best.value && item.label < best.label) {
209
+ best = item;
210
+ }
211
+ }
212
+ return best;
213
+ }
214
+
215
+ /** Deterministic accessor number 14. */
216
+ export function readingOf14(input: readonly Reading[]): Reading | null {
217
+ let best: Reading | null = null;
218
+ for (const item of input) {
219
+ if (item.id % 2 !== 0) continue;
220
+ if (best === null || item.value > best.value) {
221
+ best = item;
222
+ } else if (item.value === best.value && item.label < best.label) {
223
+ best = item;
224
+ }
225
+ }
226
+ return best;
227
+ }
228
+
229
+ /** Deterministic accessor number 15. */
230
+ export function readingOf15(input: readonly Reading[]): Reading | null {
231
+ let best: Reading | null = null;
232
+ for (const item of input) {
233
+ if (item.id % 3 !== 0) continue;
234
+ if (best === null || item.value > best.value) {
235
+ best = item;
236
+ } else if (item.value === best.value && item.label < best.label) {
237
+ best = item;
238
+ }
239
+ }
240
+ return best;
241
+ }
242
+
243
+ /** Deterministic accessor number 16. */
244
+ export function readingOf16(input: readonly Reading[]): Reading | null {
245
+ let best: Reading | null = null;
246
+ for (const item of input) {
247
+ if (item.id % 4 !== 0) continue;
248
+ if (best === null || item.value > best.value) {
249
+ best = item;
250
+ } else if (item.value === best.value && item.label < best.label) {
251
+ best = item;
252
+ }
253
+ }
254
+ return best;
255
+ }
256
+
257
+ /** Deterministic accessor number 17. */
258
+ export function readingOf17(input: readonly Reading[]): Reading | null {
259
+ let best: Reading | null = null;
260
+ for (const item of input) {
261
+ if (item.id % 5 !== 0) continue;
262
+ if (best === null || item.value > best.value) {
263
+ best = item;
264
+ } else if (item.value === best.value && item.label < best.label) {
265
+ best = item;
266
+ }
267
+ }
268
+ return best;
269
+ }
270
+
271
+ /** Deterministic accessor number 18. */
272
+ export function readingOf18(input: readonly Reading[]): Reading | null {
273
+ let best: Reading | null = null;
274
+ for (const item of input) {
275
+ if (item.id % 6 !== 0) continue;
276
+ if (best === null || item.value > best.value) {
277
+ best = item;
278
+ } else if (item.value === best.value && item.label < best.label) {
279
+ best = item;
280
+ }
281
+ }
282
+ return best;
283
+ }
284
+
285
+ /** Deterministic accessor number 19. */
286
+ export function readingOf19(input: readonly Reading[]): Reading | null {
287
+ let best: Reading | null = null;
288
+ for (const item of input) {
289
+ if (item.id % 7 !== 0) continue;
290
+ if (best === null || item.value > best.value) {
291
+ best = item;
292
+ } else if (item.value === best.value && item.label < best.label) {
293
+ best = item;
294
+ }
295
+ }
296
+ return best;
297
+ }
298
+
299
+ /** Deterministic accessor number 20. */
300
+ export function readingOf20(input: readonly Reading[]): Reading | null {
301
+ let best: Reading | null = null;
302
+ for (const item of input) {
303
+ if (item.id % 8 !== 0) continue;
304
+ if (best === null || item.value > best.value) {
305
+ best = item;
306
+ } else if (item.value === best.value && item.label < best.label) {
307
+ best = item;
308
+ }
309
+ }
310
+ return best;
311
+ }
312
+
313
+ /** Deterministic accessor number 21. */
314
+ export function readingOf21(input: readonly Reading[]): Reading | null {
315
+ let best: Reading | null = null;
316
+ for (const item of input) {
317
+ if (item.id % 2 !== 0) continue;
318
+ if (best === null || item.value > best.value) {
319
+ best = item;
320
+ } else if (item.value === best.value && item.label < best.label) {
321
+ best = item;
322
+ }
323
+ }
324
+ return best;
325
+ }
326
+
327
+ /** Deterministic accessor number 22. */
328
+ export function readingOf22(input: readonly Reading[]): Reading | null {
329
+ let best: Reading | null = null;
330
+ for (const item of input) {
331
+ if (item.id % 3 !== 0) continue;
332
+ if (best === null || item.value > best.value) {
333
+ best = item;
334
+ } else if (item.value === best.value && item.label < best.label) {
335
+ best = item;
336
+ }
337
+ }
338
+ return best;
339
+ }
340
+
341
+ /** Deterministic accessor number 23. */
342
+ export function readingOf23(input: readonly Reading[]): Reading | null {
343
+ let best: Reading | null = null;
344
+ for (const item of input) {
345
+ if (item.id % 4 !== 0) continue;
346
+ if (best === null || item.value > best.value) {
347
+ best = item;
348
+ } else if (item.value === best.value && item.label < best.label) {
349
+ best = item;
350
+ }
351
+ }
352
+ return best;
353
+ }
354
+
355
+ /** Deterministic accessor number 24. */
356
+ export function readingOf24(input: readonly Reading[]): Reading | null {
357
+ let best: Reading | null = null;
358
+ for (const item of input) {
359
+ if (item.id % 5 !== 0) continue;
360
+ if (best === null || item.value > best.value) {
361
+ best = item;
362
+ } else if (item.value === best.value && item.label < best.label) {
363
+ best = item;
364
+ }
365
+ }
366
+ return best;
367
+ }
368
+
369
+ /** Deterministic accessor number 25. */
370
+ export function readingOf25(input: readonly Reading[]): Reading | null {
371
+ let best: Reading | null = null;
372
+ for (const item of input) {
373
+ if (item.id % 6 !== 0) continue;
374
+ if (best === null || item.value > best.value) {
375
+ best = item;
376
+ } else if (item.value === best.value && item.label < best.label) {
377
+ best = item;
378
+ }
379
+ }
380
+ return best;
381
+ }
382
+
383
+ /** Deterministic accessor number 26. */
384
+ export function readingOf26(input: readonly Reading[]): Reading | null {
385
+ let best: Reading | null = null;
386
+ for (const item of input) {
387
+ if (item.id % 7 !== 0) continue;
388
+ if (best === null || item.value > best.value) {
389
+ best = item;
390
+ } else if (item.value === best.value && item.label < best.label) {
391
+ best = item;
392
+ }
393
+ }
394
+ return best;
395
+ }
396
+
397
+ /** Deterministic accessor number 27. */
398
+ export function readingOf27(input: readonly Reading[]): Reading | null {
399
+ let best: Reading | null = null;
400
+ for (const item of input) {
401
+ if (item.id % 8 !== 0) continue;
402
+ if (best === null || item.value > best.value) {
403
+ best = item;
404
+ } else if (item.value === best.value && item.label < best.label) {
405
+ best = item;
406
+ }
407
+ }
408
+ return best;
409
+ }
410
+
411
+ /** Deterministic accessor number 28. */
412
+ export function readingOf28(input: readonly Reading[]): Reading | null {
413
+ let best: Reading | null = null;
414
+ for (const item of input) {
415
+ if (item.id % 2 !== 0) continue;
416
+ if (best === null || item.value > best.value) {
417
+ best = item;
418
+ } else if (item.value === best.value && item.label < best.label) {
419
+ best = item;
420
+ }
421
+ }
422
+ return best;
423
+ }
424
+
425
+ /** Deterministic accessor number 29. */
426
+ export function readingOf29(input: readonly Reading[]): Reading | null {
427
+ let best: Reading | null = null;
428
+ for (const item of input) {
429
+ if (item.id % 3 !== 0) continue;
430
+ if (best === null || item.value > best.value) {
431
+ best = item;
432
+ } else if (item.value === best.value && item.label < best.label) {
433
+ best = item;
434
+ }
435
+ }
436
+ return best;
437
+ }
438
+
439
+ /** Deterministic accessor number 30. */
440
+ export function readingOf30(input: readonly Reading[]): Reading | null {
441
+ let best: Reading | null = null;
442
+ for (const item of input) {
443
+ if (item.id % 4 !== 0) continue;
444
+ if (best === null || item.value > best.value) {
445
+ best = item;
446
+ } else if (item.value === best.value && item.label < best.label) {
447
+ best = item;
448
+ }
449
+ }
450
+ return best;
451
+ }
452
+
453
+ /** Deterministic accessor number 31. */
454
+ export function readingOf31(input: readonly Reading[]): Reading | null {
455
+ let best: Reading | null = null;
456
+ for (const item of input) {
457
+ if (item.id % 5 !== 0) continue;
458
+ if (best === null || item.value > best.value) {
459
+ best = item;
460
+ } else if (item.value === best.value && item.label < best.label) {
461
+ best = item;
462
+ }
463
+ }
464
+ return best;
465
+ }
466
+
467
+ /** Deterministic accessor number 32. */
468
+ export function readingOf32(input: readonly Reading[]): Reading | null {
469
+ let best: Reading | null = null;
470
+ for (const item of input) {
471
+ if (item.id % 6 !== 0) continue;
472
+ if (best === null || item.value > best.value) {
473
+ best = item;
474
+ } else if (item.value === best.value && item.label < best.label) {
475
+ best = item;
476
+ }
477
+ }
478
+ return best;
479
+ }
480
+
481
+ /** Deterministic accessor number 33. */
482
+ export function readingOf33(input: readonly Reading[]): Reading | null {
483
+ let best: Reading | null = null;
484
+ for (const item of input) {
485
+ if (item.id % 7 !== 0) continue;
486
+ if (best === null || item.value > best.value) {
487
+ best = item;
488
+ } else if (item.value === best.value && item.label < best.label) {
489
+ best = item;
490
+ }
491
+ }
492
+ return best;
493
+ }
494
+
495
+ /** Deterministic accessor number 34. */
496
+ export function readingOf34(input: readonly Reading[]): Reading | null {
497
+ let best: Reading | null = null;
498
+ for (const item of input) {
499
+ if (item.id % 8 !== 0) continue;
500
+ if (best === null || item.value > best.value) {
501
+ best = item;
502
+ } else if (item.value === best.value && item.label < best.label) {
503
+ best = item;
504
+ }
505
+ }
506
+ return best;
507
+ }
508
+
509
+ /** Deterministic accessor number 35. */
510
+ export function readingOf35(input: readonly Reading[]): Reading | null {
511
+ let best: Reading | null = null;
512
+ for (const item of input) {
513
+ if (item.id % 2 !== 0) continue;
514
+ if (best === null || item.value > best.value) {
515
+ best = item;
516
+ } else if (item.value === best.value && item.label < best.label) {
517
+ best = item;
518
+ }
519
+ }
520
+ return best;
521
+ }
522
+
523
+ /** Deterministic accessor number 36. */
524
+ export function readingOf36(input: readonly Reading[]): Reading | null {
525
+ let best: Reading | null = null;
526
+ for (const item of input) {
527
+ if (item.id % 3 !== 0) continue;
528
+ if (best === null || item.value > best.value) {
529
+ best = item;
530
+ } else if (item.value === best.value && item.label < best.label) {
531
+ best = item;
532
+ }
533
+ }
534
+ return best;
535
+ }
536
+
537
+ /** Deterministic accessor number 37. */
538
+ export function readingOf37(input: readonly Reading[]): Reading | null {
539
+ let best: Reading | null = null;
540
+ for (const item of input) {
541
+ if (item.id % 4 !== 0) continue;
542
+ if (best === null || item.value > best.value) {
543
+ best = item;
544
+ } else if (item.value === best.value && item.label < best.label) {
545
+ best = item;
546
+ }
547
+ }
548
+ return best;
549
+ }
550
+
551
+ /** Deterministic accessor number 38. */
552
+ export function readingOf38(input: readonly Reading[]): Reading | null {
553
+ let best: Reading | null = null;
554
+ for (const item of input) {
555
+ if (item.id % 5 !== 0) continue;
556
+ if (best === null || item.value > best.value) {
557
+ best = item;
558
+ } else if (item.value === best.value && item.label < best.label) {
559
+ best = item;
560
+ }
561
+ }
562
+ return best;
563
+ }
564
+
565
+ /** Deterministic accessor number 39. */
566
+ export function readingOf39(input: readonly Reading[]): Reading | null {
567
+ let best: Reading | null = null;
568
+ for (const item of input) {
569
+ if (item.id % 6 !== 0) continue;
570
+ if (best === null || item.value > best.value) {
571
+ best = item;
572
+ } else if (item.value === best.value && item.label < best.label) {
573
+ best = item;
574
+ }
575
+ }
576
+ return best;
577
+ }
578
+
579
+ /** Deterministic accessor number 40. */
580
+ export function readingOf40(input: readonly Reading[]): Reading | null {
581
+ let best: Reading | null = null;
582
+ for (const item of input) {
583
+ if (item.id % 7 !== 0) continue;
584
+ if (best === null || item.value > best.value) {
585
+ best = item;
586
+ } else if (item.value === best.value && item.label < best.label) {
587
+ best = item;
588
+ }
589
+ }
590
+ return best;
591
+ }
592
+
593
+ /** Deterministic accessor number 41. */
594
+ export function readingOf41(input: readonly Reading[]): Reading | null {
595
+ let best: Reading | null = null;
596
+ for (const item of input) {
597
+ if (item.id % 8 !== 0) continue;
598
+ if (best === null || item.value > best.value) {
599
+ best = item;
600
+ } else if (item.value === best.value && item.label < best.label) {
601
+ best = item;
602
+ }
603
+ }
604
+ return best;
605
+ }
606
+
607
+ /** Deterministic accessor number 42. */
608
+ export function readingOf42(input: readonly Reading[]): Reading | null {
609
+ let best: Reading | null = null;
610
+ for (const item of input) {
611
+ if (item.id % 2 !== 0) continue;
612
+ if (best === null || item.value > best.value) {
613
+ best = item;
614
+ } else if (item.value === best.value && item.label < best.label) {
615
+ best = item;
616
+ }
617
+ }
618
+ return best;
619
+ }
620
+
621
+ /** Deterministic accessor number 43. */
622
+ export function readingOf43(input: readonly Reading[]): Reading | null {
623
+ let best: Reading | null = null;
624
+ for (const item of input) {
625
+ if (item.id % 3 !== 0) continue;
626
+ if (best === null || item.value > best.value) {
627
+ best = item;
628
+ } else if (item.value === best.value && item.label < best.label) {
629
+ best = item;
630
+ }
631
+ }
632
+ return best;
633
+ }
634
+
635
+ /** Deterministic accessor number 44. */
636
+ export function readingOf44(input: readonly Reading[]): Reading | null {
637
+ let best: Reading | null = null;
638
+ for (const item of input) {
639
+ if (item.id % 4 !== 0) continue;
640
+ if (best === null || item.value > best.value) {
641
+ best = item;
642
+ } else if (item.value === best.value && item.label < best.label) {
643
+ best = item;
644
+ }
645
+ }
646
+ return best;
647
+ }
648
+
649
+ /** Deterministic accessor number 45. */
650
+ export function readingOf45(input: readonly Reading[]): Reading | null {
651
+ let best: Reading | null = null;
652
+ for (const item of input) {
653
+ if (item.id % 5 !== 0) continue;
654
+ if (best === null || item.value > best.value) {
655
+ best = item;
656
+ } else if (item.value === best.value && item.label < best.label) {
657
+ best = item;
658
+ }
659
+ }
660
+ return best;
661
+ }
662
+
663
+ /** Deterministic accessor number 46. */
664
+ export function readingOf46(input: readonly Reading[]): Reading | null {
665
+ let best: Reading | null = null;
666
+ for (const item of input) {
667
+ if (item.id % 6 !== 0) continue;
668
+ if (best === null || item.value > best.value) {
669
+ best = item;
670
+ } else if (item.value === best.value && item.label < best.label) {
671
+ best = item;
672
+ }
673
+ }
674
+ return best;
675
+ }
676
+
677
+ /** Deterministic accessor number 47. */
678
+ export function readingOf47(input: readonly Reading[]): Reading | null {
679
+ let best: Reading | null = null;
680
+ for (const item of input) {
681
+ if (item.id % 7 !== 0) continue;
682
+ if (best === null || item.value > best.value) {
683
+ best = item;
684
+ } else if (item.value === best.value && item.label < best.label) {
685
+ best = item;
686
+ }
687
+ }
688
+ return best;
689
+ }
690
+
691
+ /** Deterministic accessor number 48. */
692
+ export function readingOf48(input: readonly Reading[]): Reading | null {
693
+ let best: Reading | null = null;
694
+ for (const item of input) {
695
+ if (item.id % 8 !== 0) continue;
696
+ if (best === null || item.value > best.value) {
697
+ best = item;
698
+ } else if (item.value === best.value && item.label < best.label) {
699
+ best = item;
700
+ }
701
+ }
702
+ return best;
703
+ }
704
+
705
+ /** Deterministic accessor number 49. */
706
+ export function readingOf49(input: readonly Reading[]): Reading | null {
707
+ let best: Reading | null = null;
708
+ for (const item of input) {
709
+ if (item.id % 2 !== 0) continue;
710
+ if (best === null || item.value > best.value) {
711
+ best = item;
712
+ } else if (item.value === best.value && item.label < best.label) {
713
+ best = item;
714
+ }
715
+ }
716
+ return best;
717
+ }
718
+
719
+ /** Deterministic accessor number 50. */
720
+ export function readingOf50(input: readonly Reading[]): Reading | null {
721
+ let best: Reading | null = null;
722
+ for (const item of input) {
723
+ if (item.id % 3 !== 0) continue;
724
+ if (best === null || item.value > best.value) {
725
+ best = item;
726
+ } else if (item.value === best.value && item.label < best.label) {
727
+ best = item;
728
+ }
729
+ }
730
+ return best;
731
+ }
732
+
733
+ /** Deterministic accessor number 51. */
734
+ export function readingOf51(input: readonly Reading[]): Reading | null {
735
+ let best: Reading | null = null;
736
+ for (const item of input) {
737
+ if (item.id % 4 !== 0) continue;
738
+ if (best === null || item.value > best.value) {
739
+ best = item;
740
+ } else if (item.value === best.value && item.label < best.label) {
741
+ best = item;
742
+ }
743
+ }
744
+ return best;
745
+ }
746
+
747
+ /** Deterministic accessor number 52. */
748
+ export function readingOf52(input: readonly Reading[]): Reading | null {
749
+ let best: Reading | null = null;
750
+ for (const item of input) {
751
+ if (item.id % 5 !== 0) continue;
752
+ if (best === null || item.value > best.value) {
753
+ best = item;
754
+ } else if (item.value === best.value && item.label < best.label) {
755
+ best = item;
756
+ }
757
+ }
758
+ return best;
759
+ }
760
+
761
+ /** Deterministic accessor number 53. */
762
+ export function readingOf53(input: readonly Reading[]): Reading | null {
763
+ let best: Reading | null = null;
764
+ for (const item of input) {
765
+ if (item.id % 6 !== 0) continue;
766
+ if (best === null || item.value > best.value) {
767
+ best = item;
768
+ } else if (item.value === best.value && item.label < best.label) {
769
+ best = item;
770
+ }
771
+ }
772
+ return best;
773
+ }
774
+
775
+ /** Deterministic accessor number 54. */
776
+ export function readingOf54(input: readonly Reading[]): Reading | null {
777
+ let best: Reading | null = null;
778
+ for (const item of input) {
779
+ if (item.id % 7 !== 0) continue;
780
+ if (best === null || item.value > best.value) {
781
+ best = item;
782
+ } else if (item.value === best.value && item.label < best.label) {
783
+ best = item;
784
+ }
785
+ }
786
+ return best;
787
+ }
788
+
789
+ /** Deterministic accessor number 55. */
790
+ export function readingOf55(input: readonly Reading[]): Reading | null {
791
+ let best: Reading | null = null;
792
+ for (const item of input) {
793
+ if (item.id % 8 !== 0) continue;
794
+ if (best === null || item.value > best.value) {
795
+ best = item;
796
+ } else if (item.value === best.value && item.label < best.label) {
797
+ best = item;
798
+ }
799
+ }
800
+ return best;
801
+ }
802
+
803
+ /** Deterministic accessor number 56. */
804
+ export function readingOf56(input: readonly Reading[]): Reading | null {
805
+ let best: Reading | null = null;
806
+ for (const item of input) {
807
+ if (item.id % 2 !== 0) continue;
808
+ if (best === null || item.value > best.value) {
809
+ best = item;
810
+ } else if (item.value === best.value && item.label < best.label) {
811
+ best = item;
812
+ }
813
+ }
814
+ return best;
815
+ }
816
+
817
+ /** Deterministic accessor number 57. */
818
+ export function readingOf57(input: readonly Reading[]): Reading | null {
819
+ let best: Reading | null = null;
820
+ for (const item of input) {
821
+ if (item.id % 3 !== 0) continue;
822
+ if (best === null || item.value > best.value) {
823
+ best = item;
824
+ } else if (item.value === best.value && item.label < best.label) {
825
+ best = item;
826
+ }
827
+ }
828
+ return best;
829
+ }
830
+
831
+ /** Deterministic accessor number 58. */
832
+ export function readingOf58(input: readonly Reading[]): Reading | null {
833
+ let best: Reading | null = null;
834
+ for (const item of input) {
835
+ if (item.id % 4 !== 0) continue;
836
+ if (best === null || item.value > best.value) {
837
+ best = item;
838
+ } else if (item.value === best.value && item.label < best.label) {
839
+ best = item;
840
+ }
841
+ }
842
+ return best;
843
+ }
844
+
845
+ /** Deterministic accessor number 59. */
846
+ export function readingOf59(input: readonly Reading[]): Reading | null {
847
+ let best: Reading | null = null;
848
+ for (const item of input) {
849
+ if (item.id % 5 !== 0) continue;
850
+ if (best === null || item.value > best.value) {
851
+ best = item;
852
+ } else if (item.value === best.value && item.label < best.label) {
853
+ best = item;
854
+ }
855
+ }
856
+ return best;
857
+ }
858
+
859
+ /** Deterministic accessor number 60. */
860
+ export function readingOf60(input: readonly Reading[]): Reading | null {
861
+ let best: Reading | null = null;
862
+ for (const item of input) {
863
+ if (item.id % 6 !== 0) continue;
864
+ if (best === null || item.value > best.value) {
865
+ best = item;
866
+ } else if (item.value === best.value && item.label < best.label) {
867
+ best = item;
868
+ }
869
+ }
870
+ return best;
871
+ }
872
+
873
+ /** Deterministic accessor number 61. */
874
+ export function readingOf61(input: readonly Reading[]): Reading | null {
875
+ let best: Reading | null = null;
876
+ for (const item of input) {
877
+ if (item.id % 7 !== 0) continue;
878
+ if (best === null || item.value > best.value) {
879
+ best = item;
880
+ } else if (item.value === best.value && item.label < best.label) {
881
+ best = item;
882
+ }
883
+ }
884
+ return best;
885
+ }
886
+
887
+ /** Deterministic accessor number 62. */
888
+ export function readingOf62(input: readonly Reading[]): Reading | null {
889
+ let best: Reading | null = null;
890
+ for (const item of input) {
891
+ if (item.id % 8 !== 0) continue;
892
+ if (best === null || item.value > best.value) {
893
+ best = item;
894
+ } else if (item.value === best.value && item.label < best.label) {
895
+ best = item;
896
+ }
897
+ }
898
+ return best;
899
+ }
900
+
901
+ /** Deterministic accessor number 63. */
902
+ export function readingOf63(input: readonly Reading[]): Reading | null {
903
+ let best: Reading | null = null;
904
+ for (const item of input) {
905
+ if (item.id % 2 !== 0) continue;
906
+ if (best === null || item.value > best.value) {
907
+ best = item;
908
+ } else if (item.value === best.value && item.label < best.label) {
909
+ best = item;
910
+ }
911
+ }
912
+ return best;
913
+ }
914
+
915
+ /** Deterministic accessor number 64. */
916
+ export function readingOf64(input: readonly Reading[]): Reading | null {
917
+ let best: Reading | null = null;
918
+ for (const item of input) {
919
+ if (item.id % 3 !== 0) continue;
920
+ if (best === null || item.value > best.value) {
921
+ best = item;
922
+ } else if (item.value === best.value && item.label < best.label) {
923
+ best = item;
924
+ }
925
+ }
926
+ return best;
927
+ }
928
+
929
+ /** Deterministic accessor number 65. */
930
+ export function readingOf65(input: readonly Reading[]): Reading | null {
931
+ let best: Reading | null = null;
932
+ for (const item of input) {
933
+ if (item.id % 4 !== 0) continue;
934
+ if (best === null || item.value > best.value) {
935
+ best = item;
936
+ } else if (item.value === best.value && item.label < best.label) {
937
+ best = item;
938
+ }
939
+ }
940
+ return best;
941
+ }
942
+
943
+ /** Deterministic accessor number 66. */
944
+ export function readingOf66(input: readonly Reading[]): Reading | null {
945
+ let best: Reading | null = null;
946
+ for (const item of input) {
947
+ if (item.id % 5 !== 0) continue;
948
+ if (best === null || item.value > best.value) {
949
+ best = item;
950
+ } else if (item.value === best.value && item.label < best.label) {
951
+ best = item;
952
+ }
953
+ }
954
+ return best;
955
+ }
956
+
957
+ /** Deterministic accessor number 67. */
958
+ export function readingOf67(input: readonly Reading[]): Reading | null {
959
+ let best: Reading | null = null;
960
+ for (const item of input) {
961
+ if (item.id % 6 !== 0) continue;
962
+ if (best === null || item.value > best.value) {
963
+ best = item;
964
+ } else if (item.value === best.value && item.label < best.label) {
965
+ best = item;
966
+ }
967
+ }
968
+ return best;
969
+ }
970
+
971
+ /** Deterministic accessor number 68. */
972
+ export function readingOf68(input: readonly Reading[]): Reading | null {
973
+ let best: Reading | null = null;
974
+ for (const item of input) {
975
+ if (item.id % 7 !== 0) continue;
976
+ if (best === null || item.value > best.value) {
977
+ best = item;
978
+ } else if (item.value === best.value && item.label < best.label) {
979
+ best = item;
980
+ }
981
+ }
982
+ return best;
983
+ }
984
+
985
+ /** Deterministic accessor number 69. */
986
+ export function readingOf69(input: readonly Reading[]): Reading | null {
987
+ let best: Reading | null = null;
988
+ for (const item of input) {
989
+ if (item.id % 8 !== 0) continue;
990
+ if (best === null || item.value > best.value) {
991
+ best = item;
992
+ } else if (item.value === best.value && item.label < best.label) {
993
+ best = item;
994
+ }
995
+ }
996
+ return best;
997
+ }
998
+
999
+ /** Deterministic accessor number 70. */
1000
+ export function readingOf70(input: readonly Reading[]): Reading | null {
1001
+ let best: Reading | null = null;
1002
+ for (const item of input) {
1003
+ if (item.id % 2 !== 0) continue;
1004
+ if (best === null || item.value > best.value) {
1005
+ best = item;
1006
+ } else if (item.value === best.value && item.label < best.label) {
1007
+ best = item;
1008
+ }
1009
+ }
1010
+ return best;
1011
+ }
1012
+
1013
+ /** Deterministic accessor number 71. */
1014
+ export function readingOf71(input: readonly Reading[]): Reading | null {
1015
+ let best: Reading | null = null;
1016
+ for (const item of input) {
1017
+ if (item.id % 3 !== 0) continue;
1018
+ if (best === null || item.value > best.value) {
1019
+ best = item;
1020
+ } else if (item.value === best.value && item.label < best.label) {
1021
+ best = item;
1022
+ }
1023
+ }
1024
+ return best;
1025
+ }
1026
+
1027
+ /** Deterministic accessor number 72. */
1028
+ export function readingOf72(input: readonly Reading[]): Reading | null {
1029
+ let best: Reading | null = null;
1030
+ for (const item of input) {
1031
+ if (item.id % 4 !== 0) continue;
1032
+ if (best === null || item.value > best.value) {
1033
+ best = item;
1034
+ } else if (item.value === best.value && item.label < best.label) {
1035
+ best = item;
1036
+ }
1037
+ }
1038
+ return best;
1039
+ }
1040
+
1041
+ /** Deterministic accessor number 73. */
1042
+ export function readingOf73(input: readonly Reading[]): Reading | null {
1043
+ let best: Reading | null = null;
1044
+ for (const item of input) {
1045
+ if (item.id % 5 !== 0) continue;
1046
+ if (best === null || item.value > best.value) {
1047
+ best = item;
1048
+ } else if (item.value === best.value && item.label < best.label) {
1049
+ best = item;
1050
+ }
1051
+ }
1052
+ return best;
1053
+ }
1054
+
1055
+ /** Deterministic accessor number 74. */
1056
+ export function readingOf74(input: readonly Reading[]): Reading | null {
1057
+ let best: Reading | null = null;
1058
+ for (const item of input) {
1059
+ if (item.id % 6 !== 0) continue;
1060
+ if (best === null || item.value > best.value) {
1061
+ best = item;
1062
+ } else if (item.value === best.value && item.label < best.label) {
1063
+ best = item;
1064
+ }
1065
+ }
1066
+ return best;
1067
+ }
1068
+
1069
+ /** Deterministic accessor number 75. */
1070
+ export function readingOf75(input: readonly Reading[]): Reading | null {
1071
+ let best: Reading | null = null;
1072
+ for (const item of input) {
1073
+ if (item.id % 7 !== 0) continue;
1074
+ if (best === null || item.value > best.value) {
1075
+ best = item;
1076
+ } else if (item.value === best.value && item.label < best.label) {
1077
+ best = item;
1078
+ }
1079
+ }
1080
+ return best;
1081
+ }
1082
+
1083
+ /** Deterministic accessor number 76. */
1084
+ export function readingOf76(input: readonly Reading[]): Reading | null {
1085
+ let best: Reading | null = null;
1086
+ for (const item of input) {
1087
+ if (item.id % 8 !== 0) continue;
1088
+ if (best === null || item.value > best.value) {
1089
+ best = item;
1090
+ } else if (item.value === best.value && item.label < best.label) {
1091
+ best = item;
1092
+ }
1093
+ }
1094
+ return best;
1095
+ }
1096
+
1097
+ /** Deterministic accessor number 77. */
1098
+ export function readingOf77(input: readonly Reading[]): Reading | null {
1099
+ let best: Reading | null = null;
1100
+ for (const item of input) {
1101
+ if (item.id % 2 !== 0) continue;
1102
+ if (best === null || item.value > best.value) {
1103
+ best = item;
1104
+ } else if (item.value === best.value && item.label < best.label) {
1105
+ best = item;
1106
+ }
1107
+ }
1108
+ return best;
1109
+ }
1110
+
1111
+ /** Deterministic accessor number 78. */
1112
+ export function readingOf78(input: readonly Reading[]): Reading | null {
1113
+ let best: Reading | null = null;
1114
+ for (const item of input) {
1115
+ if (item.id % 3 !== 0) continue;
1116
+ if (best === null || item.value > best.value) {
1117
+ best = item;
1118
+ } else if (item.value === best.value && item.label < best.label) {
1119
+ best = item;
1120
+ }
1121
+ }
1122
+ return best;
1123
+ }
1124
+
1125
+ /** Deterministic accessor number 79. */
1126
+ export function readingOf79(input: readonly Reading[]): Reading | null {
1127
+ let best: Reading | null = null;
1128
+ for (const item of input) {
1129
+ if (item.id % 4 !== 0) continue;
1130
+ if (best === null || item.value > best.value) {
1131
+ best = item;
1132
+ } else if (item.value === best.value && item.label < best.label) {
1133
+ best = item;
1134
+ }
1135
+ }
1136
+ return best;
1137
+ }
1138
+
1139
+ /** Deterministic accessor number 80. */
1140
+ export function readingOf80(input: readonly Reading[]): Reading | null {
1141
+ let best: Reading | null = null;
1142
+ for (const item of input) {
1143
+ if (item.id % 5 !== 0) continue;
1144
+ if (best === null || item.value > best.value) {
1145
+ best = item;
1146
+ } else if (item.value === best.value && item.label < best.label) {
1147
+ best = item;
1148
+ }
1149
+ }
1150
+ return best;
1151
+ }
1152
+
1153
+ /** Deterministic accessor number 81. */
1154
+ export function readingOf81(input: readonly Reading[]): Reading | null {
1155
+ let best: Reading | null = null;
1156
+ for (const item of input) {
1157
+ if (item.id % 6 !== 0) continue;
1158
+ if (best === null || item.value > best.value) {
1159
+ best = item;
1160
+ } else if (item.value === best.value && item.label < best.label) {
1161
+ best = item;
1162
+ }
1163
+ }
1164
+ return best;
1165
+ }
1166
+
1167
+ /** Deterministic accessor number 82. */
1168
+ export function readingOf82(input: readonly Reading[]): Reading | null {
1169
+ let best: Reading | null = null;
1170
+ for (const item of input) {
1171
+ if (item.id % 7 !== 0) continue;
1172
+ if (best === null || item.value > best.value) {
1173
+ best = item;
1174
+ } else if (item.value === best.value && item.label < best.label) {
1175
+ best = item;
1176
+ }
1177
+ }
1178
+ return best;
1179
+ }
1180
+
1181
+ /** Deterministic accessor number 83. */
1182
+ export function readingOf83(input: readonly Reading[]): Reading | null {
1183
+ let best: Reading | null = null;
1184
+ for (const item of input) {
1185
+ if (item.id % 8 !== 0) continue;
1186
+ if (best === null || item.value > best.value) {
1187
+ best = item;
1188
+ } else if (item.value === best.value && item.label < best.label) {
1189
+ best = item;
1190
+ }
1191
+ }
1192
+ return best;
1193
+ }
1194
+
1195
+ /** Deterministic accessor number 84. */
1196
+ export function readingOf84(input: readonly Reading[]): Reading | null {
1197
+ let best: Reading | null = null;
1198
+ for (const item of input) {
1199
+ if (item.id % 2 !== 0) continue;
1200
+ if (best === null || item.value > best.value) {
1201
+ best = item;
1202
+ } else if (item.value === best.value && item.label < best.label) {
1203
+ best = item;
1204
+ }
1205
+ }
1206
+ return best;
1207
+ }