fhirpath-ts 0.0.0-bootstrap.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 (414) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +391 -0
  3. package/THIRD-PARTY-NOTICES.md +296 -0
  4. package/dist/analyzer/analyze-dto.d.ts +45 -0
  5. package/dist/analyzer/analyze-dto.d.ts.map +1 -0
  6. package/dist/analyzer/analyze-dto.js +147 -0
  7. package/dist/analyzer/analyze-dto.js.map +1 -0
  8. package/dist/analyzer/analyze.d.ts +98 -0
  9. package/dist/analyzer/analyze.d.ts.map +1 -0
  10. package/dist/analyzer/analyze.js +925 -0
  11. package/dist/analyzer/analyze.js.map +1 -0
  12. package/dist/analyzer/expression-policy.d.ts +210 -0
  13. package/dist/analyzer/expression-policy.d.ts.map +1 -0
  14. package/dist/analyzer/expression-policy.js +254 -0
  15. package/dist/analyzer/expression-policy.js.map +1 -0
  16. package/dist/analyzer/index.d.ts +3 -0
  17. package/dist/analyzer/index.d.ts.map +1 -0
  18. package/dist/analyzer/index.js +6 -0
  19. package/dist/analyzer/index.js.map +1 -0
  20. package/dist/analyzer/regex-safety.d.ts +10 -0
  21. package/dist/analyzer/regex-safety.d.ts.map +1 -0
  22. package/dist/analyzer/regex-safety.js +84 -0
  23. package/dist/analyzer/regex-safety.js.map +1 -0
  24. package/dist/analyzer/signatures.d.ts +72 -0
  25. package/dist/analyzer/signatures.d.ts.map +1 -0
  26. package/dist/analyzer/signatures.js +195 -0
  27. package/dist/analyzer/signatures.js.map +1 -0
  28. package/dist/api/bundle.d.ts +29 -0
  29. package/dist/api/bundle.d.ts.map +1 -0
  30. package/dist/api/bundle.js +108 -0
  31. package/dist/api/bundle.js.map +1 -0
  32. package/dist/api/cache.d.ts +10 -0
  33. package/dist/api/cache.d.ts.map +1 -0
  34. package/dist/api/cache.js +38 -0
  35. package/dist/api/cache.js.map +1 -0
  36. package/dist/api/column-signature.d.ts +53 -0
  37. package/dist/api/column-signature.d.ts.map +1 -0
  38. package/dist/api/column-signature.js +43 -0
  39. package/dist/api/column-signature.js.map +1 -0
  40. package/dist/api/compile.d.ts +120 -0
  41. package/dist/api/compile.d.ts.map +1 -0
  42. package/dist/api/compile.js +167 -0
  43. package/dist/api/compile.js.map +1 -0
  44. package/dist/api/constraints.d.ts +48 -0
  45. package/dist/api/constraints.d.ts.map +1 -0
  46. package/dist/api/constraints.js +52 -0
  47. package/dist/api/constraints.js.map +1 -0
  48. package/dist/api/dto.d.ts +134 -0
  49. package/dist/api/dto.d.ts.map +1 -0
  50. package/dist/api/dto.js +295 -0
  51. package/dist/api/dto.js.map +1 -0
  52. package/dist/api/engine.d.ts +136 -0
  53. package/dist/api/engine.d.ts.map +1 -0
  54. package/dist/api/engine.js +183 -0
  55. package/dist/api/engine.js.map +1 -0
  56. package/dist/api/evaluate.d.ts +7 -0
  57. package/dist/api/evaluate.d.ts.map +1 -0
  58. package/dist/api/evaluate.js +10 -0
  59. package/dist/api/evaluate.js.map +1 -0
  60. package/dist/api/project.d.ts +89 -0
  61. package/dist/api/project.d.ts.map +1 -0
  62. package/dist/api/project.js +150 -0
  63. package/dist/api/project.js.map +1 -0
  64. package/dist/api/tagged.d.ts +14 -0
  65. package/dist/api/tagged.d.ts.map +1 -0
  66. package/dist/api/tagged.js +13 -0
  67. package/dist/api/tagged.js.map +1 -0
  68. package/dist/cli/dto-check.d.ts +25 -0
  69. package/dist/cli/dto-check.d.ts.map +1 -0
  70. package/dist/cli/dto-check.js +77 -0
  71. package/dist/cli/dto-check.js.map +1 -0
  72. package/dist/cli/fhirpath-check.d.ts +3 -0
  73. package/dist/cli/fhirpath-check.d.ts.map +1 -0
  74. package/dist/cli/fhirpath-check.js +149 -0
  75. package/dist/cli/fhirpath-check.js.map +1 -0
  76. package/dist/cli/ts-loader.d.mts +3 -0
  77. package/dist/cli/ts-loader.d.mts.map +1 -0
  78. package/dist/cli/ts-loader.mjs +48 -0
  79. package/dist/cli/ts-loader.mjs.map +1 -0
  80. package/dist/engine/context.d.ts +173 -0
  81. package/dist/engine/context.d.ts.map +1 -0
  82. package/dist/engine/context.js +118 -0
  83. package/dist/engine/context.js.map +1 -0
  84. package/dist/engine/evaluator.d.ts +7 -0
  85. package/dist/engine/evaluator.d.ts.map +1 -0
  86. package/dist/engine/evaluator.js +196 -0
  87. package/dist/engine/evaluator.js.map +1 -0
  88. package/dist/engine/navigation.d.ts +11 -0
  89. package/dist/engine/navigation.d.ts.map +1 -0
  90. package/dist/engine/navigation.js +102 -0
  91. package/dist/engine/navigation.js.map +1 -0
  92. package/dist/engine/operators/collections.d.ts +12 -0
  93. package/dist/engine/operators/collections.d.ts.map +1 -0
  94. package/dist/engine/operators/collections.js +31 -0
  95. package/dist/engine/operators/collections.js.map +1 -0
  96. package/dist/engine/operators/comparison.d.ts +13 -0
  97. package/dist/engine/operators/comparison.d.ts.map +1 -0
  98. package/dist/engine/operators/comparison.js +77 -0
  99. package/dist/engine/operators/comparison.js.map +1 -0
  100. package/dist/engine/operators/equality.d.ts +19 -0
  101. package/dist/engine/operators/equality.d.ts.map +1 -0
  102. package/dist/engine/operators/equality.js +203 -0
  103. package/dist/engine/operators/equality.js.map +1 -0
  104. package/dist/engine/operators/index.d.ts +18 -0
  105. package/dist/engine/operators/index.d.ts.map +1 -0
  106. package/dist/engine/operators/index.js +30 -0
  107. package/dist/engine/operators/index.js.map +1 -0
  108. package/dist/engine/operators/logic.d.ts +8 -0
  109. package/dist/engine/operators/logic.d.ts.map +1 -0
  110. package/dist/engine/operators/logic.js +38 -0
  111. package/dist/engine/operators/logic.js.map +1 -0
  112. package/dist/engine/operators/math.d.ts +13 -0
  113. package/dist/engine/operators/math.d.ts.map +1 -0
  114. package/dist/engine/operators/math.js +198 -0
  115. package/dist/engine/operators/math.js.map +1 -0
  116. package/dist/engine/operators/strings.d.ts +8 -0
  117. package/dist/engine/operators/strings.d.ts.map +1 -0
  118. package/dist/engine/operators/strings.js +22 -0
  119. package/dist/engine/operators/strings.js.map +1 -0
  120. package/dist/engine/operators/types.d.ts +3 -0
  121. package/dist/engine/operators/types.d.ts.map +1 -0
  122. package/dist/engine/operators/types.js +15 -0
  123. package/dist/engine/operators/types.js.map +1 -0
  124. package/dist/engine/type-matching.d.ts +20 -0
  125. package/dist/engine/type-matching.d.ts.map +1 -0
  126. package/dist/engine/type-matching.js +122 -0
  127. package/dist/engine/type-matching.js.map +1 -0
  128. package/dist/errors.d.ts +25 -0
  129. package/dist/errors.d.ts.map +1 -0
  130. package/dist/errors.js +21 -0
  131. package/dist/errors.js.map +1 -0
  132. package/dist/eslint/index.d.ts +12 -0
  133. package/dist/eslint/index.d.ts.map +1 -0
  134. package/dist/eslint/index.js +316 -0
  135. package/dist/eslint/index.js.map +1 -0
  136. package/dist/fhir/html-checks.d.ts +7 -0
  137. package/dist/fhir/html-checks.d.ts.map +1 -0
  138. package/dist/fhir/html-checks.js +256 -0
  139. package/dist/fhir/html-checks.js.map +1 -0
  140. package/dist/fhir/model-navigation.d.ts +11 -0
  141. package/dist/fhir/model-navigation.d.ts.map +1 -0
  142. package/dist/fhir/model-navigation.js +142 -0
  143. package/dist/fhir/model-navigation.js.map +1 -0
  144. package/dist/functions/aggregate.d.ts +2 -0
  145. package/dist/functions/aggregate.d.ts.map +1 -0
  146. package/dist/functions/aggregate.js +127 -0
  147. package/dist/functions/aggregate.js.map +1 -0
  148. package/dist/functions/boundary.d.ts +2 -0
  149. package/dist/functions/boundary.d.ts.map +1 -0
  150. package/dist/functions/boundary.js +189 -0
  151. package/dist/functions/boundary.js.map +1 -0
  152. package/dist/functions/combining.d.ts +2 -0
  153. package/dist/functions/combining.d.ts.map +1 -0
  154. package/dist/functions/combining.js +13 -0
  155. package/dist/functions/combining.js.map +1 -0
  156. package/dist/functions/control.d.ts +2 -0
  157. package/dist/functions/control.d.ts.map +1 -0
  158. package/dist/functions/control.js +25 -0
  159. package/dist/functions/control.js.map +1 -0
  160. package/dist/functions/conversion.d.ts +3 -0
  161. package/dist/functions/conversion.d.ts.map +1 -0
  162. package/dist/functions/conversion.js +316 -0
  163. package/dist/functions/conversion.js.map +1 -0
  164. package/dist/functions/date-components.d.ts +2 -0
  165. package/dist/functions/date-components.d.ts.map +1 -0
  166. package/dist/functions/date-components.js +81 -0
  167. package/dist/functions/date-components.js.map +1 -0
  168. package/dist/functions/existence.d.ts +4 -0
  169. package/dist/functions/existence.d.ts.map +1 -0
  170. package/dist/functions/existence.js +97 -0
  171. package/dist/functions/existence.js.map +1 -0
  172. package/dist/functions/fhir.d.ts +2 -0
  173. package/dist/functions/fhir.d.ts.map +1 -0
  174. package/dist/functions/fhir.js +222 -0
  175. package/dist/functions/fhir.js.map +1 -0
  176. package/dist/functions/filtering.d.ts +2 -0
  177. package/dist/functions/filtering.d.ts.map +1 -0
  178. package/dist/functions/filtering.js +112 -0
  179. package/dist/functions/filtering.js.map +1 -0
  180. package/dist/functions/install.d.ts +18 -0
  181. package/dist/functions/install.d.ts.map +1 -0
  182. package/dist/functions/install.js +20 -0
  183. package/dist/functions/install.js.map +1 -0
  184. package/dist/functions/iteration.d.ts +7 -0
  185. package/dist/functions/iteration.d.ts.map +1 -0
  186. package/dist/functions/iteration.js +9 -0
  187. package/dist/functions/iteration.js.map +1 -0
  188. package/dist/functions/math.d.ts +2 -0
  189. package/dist/functions/math.d.ts.map +1 -0
  190. package/dist/functions/math.js +152 -0
  191. package/dist/functions/math.js.map +1 -0
  192. package/dist/functions/reflection.d.ts +2 -0
  193. package/dist/functions/reflection.d.ts.map +1 -0
  194. package/dist/functions/reflection.js +23 -0
  195. package/dist/functions/reflection.js.map +1 -0
  196. package/dist/functions/registry.d.ts +28 -0
  197. package/dist/functions/registry.d.ts.map +1 -0
  198. package/dist/functions/registry.js +46 -0
  199. package/dist/functions/registry.js.map +1 -0
  200. package/dist/functions/sort.d.ts +2 -0
  201. package/dist/functions/sort.d.ts.map +1 -0
  202. package/dist/functions/sort.js +48 -0
  203. package/dist/functions/sort.js.map +1 -0
  204. package/dist/functions/string.d.ts +2 -0
  205. package/dist/functions/string.d.ts.map +1 -0
  206. package/dist/functions/string.js +353 -0
  207. package/dist/functions/string.js.map +1 -0
  208. package/dist/functions/subsetting.d.ts +2 -0
  209. package/dist/functions/subsetting.d.ts.map +1 -0
  210. package/dist/functions/subsetting.js +72 -0
  211. package/dist/functions/subsetting.js.map +1 -0
  212. package/dist/functions/tree.d.ts +8 -0
  213. package/dist/functions/tree.d.ts.map +1 -0
  214. package/dist/functions/tree.js +109 -0
  215. package/dist/functions/tree.js.map +1 -0
  216. package/dist/functions/type-specifier.d.ts +8 -0
  217. package/dist/functions/type-specifier.d.ts.map +1 -0
  218. package/dist/functions/type-specifier.js +27 -0
  219. package/dist/functions/type-specifier.js.map +1 -0
  220. package/dist/functions/utility.d.ts +2 -0
  221. package/dist/functions/utility.d.ts.map +1 -0
  222. package/dist/functions/utility.js +76 -0
  223. package/dist/functions/utility.js.map +1 -0
  224. package/dist/functions/variables.d.ts +2 -0
  225. package/dist/functions/variables.d.ts.map +1 -0
  226. package/dist/functions/variables.js +35 -0
  227. package/dist/functions/variables.js.map +1 -0
  228. package/dist/index.d.ts +25 -0
  229. package/dist/index.d.ts.map +1 -0
  230. package/dist/index.js +11 -0
  231. package/dist/index.js.map +1 -0
  232. package/dist/lexer/lexer.d.ts +4 -0
  233. package/dist/lexer/lexer.d.ts.map +1 -0
  234. package/dist/lexer/lexer.js +318 -0
  235. package/dist/lexer/lexer.js.map +1 -0
  236. package/dist/lexer/tokens.d.ts +23 -0
  237. package/dist/lexer/tokens.d.ts.map +1 -0
  238. package/dist/lexer/tokens.js +40 -0
  239. package/dist/lexer/tokens.js.map +1 -0
  240. package/dist/model/provider.d.ts +36 -0
  241. package/dist/model/provider.d.ts.map +1 -0
  242. package/dist/model/provider.js +2 -0
  243. package/dist/model/provider.js.map +1 -0
  244. package/dist/parser/ast.d.ts +104 -0
  245. package/dist/parser/ast.d.ts.map +1 -0
  246. package/dist/parser/ast.js +2 -0
  247. package/dist/parser/ast.js.map +1 -0
  248. package/dist/parser/parser.d.ts +4 -0
  249. package/dist/parser/parser.d.ts.map +1 -0
  250. package/dist/parser/parser.js +299 -0
  251. package/dist/parser/parser.js.map +1 -0
  252. package/dist/parser/precedence.d.ts +24 -0
  253. package/dist/parser/precedence.d.ts.map +1 -0
  254. package/dist/parser/precedence.js +52 -0
  255. package/dist/parser/precedence.js.map +1 -0
  256. package/dist/parser/printer.d.ts +4 -0
  257. package/dist/parser/printer.d.ts.map +1 -0
  258. package/dist/parser/printer.js +112 -0
  259. package/dist/parser/printer.js.map +1 -0
  260. package/dist/r4/generated/resources-data.d.ts +3 -0
  261. package/dist/r4/generated/resources-data.d.ts.map +1 -0
  262. package/dist/r4/generated/resources-data.js +28628 -0
  263. package/dist/r4/generated/resources-data.js.map +1 -0
  264. package/dist/r4/generated/type-maps.d.ts +43153 -0
  265. package/dist/r4/generated/type-maps.d.ts.map +1 -0
  266. package/dist/r4/generated/type-maps.js +4 -0
  267. package/dist/r4/generated/type-maps.js.map +1 -0
  268. package/dist/r4/generated/types-data.d.ts +3 -0
  269. package/dist/r4/generated/types-data.d.ts.map +1 -0
  270. package/dist/r4/generated/types-data.js +2205 -0
  271. package/dist/r4/generated/types-data.js.map +1 -0
  272. package/dist/r4/index.d.ts +9 -0
  273. package/dist/r4/index.d.ts.map +1 -0
  274. package/dist/r4/index.js +94 -0
  275. package/dist/r4/index.js.map +1 -0
  276. package/dist/r4/model-data.d.ts +17 -0
  277. package/dist/r4/model-data.d.ts.map +1 -0
  278. package/dist/r4/model-data.js +2 -0
  279. package/dist/r4/model-data.js.map +1 -0
  280. package/dist/sites/index.d.ts +31 -0
  281. package/dist/sites/index.d.ts.map +1 -0
  282. package/dist/sites/index.js +205 -0
  283. package/dist/sites/index.js.map +1 -0
  284. package/dist/typed/infer.d.ts +234 -0
  285. package/dist/typed/infer.d.ts.map +1 -0
  286. package/dist/typed/infer.js +85 -0
  287. package/dist/typed/infer.js.map +1 -0
  288. package/dist/typed/perf-fixture.types.d.ts +136 -0
  289. package/dist/typed/perf-fixture.types.d.ts.map +1 -0
  290. package/dist/typed/perf-fixture.types.js +2 -0
  291. package/dist/typed/perf-fixture.types.js.map +1 -0
  292. package/dist/values/collection.d.ts +24 -0
  293. package/dist/values/collection.d.ts.map +1 -0
  294. package/dist/values/collection.js +51 -0
  295. package/dist/values/collection.js.map +1 -0
  296. package/dist/values/datetime.d.ts +54 -0
  297. package/dist/values/datetime.d.ts.map +1 -0
  298. package/dist/values/datetime.js +226 -0
  299. package/dist/values/datetime.js.map +1 -0
  300. package/dist/values/decimal.d.ts +48 -0
  301. package/dist/values/decimal.d.ts.map +1 -0
  302. package/dist/values/decimal.js +188 -0
  303. package/dist/values/decimal.js.map +1 -0
  304. package/dist/values/numeric.d.ts +24 -0
  305. package/dist/values/numeric.d.ts.map +1 -0
  306. package/dist/values/numeric.js +53 -0
  307. package/dist/values/numeric.js.map +1 -0
  308. package/dist/values/quantity.d.ts +49 -0
  309. package/dist/values/quantity.d.ts.map +1 -0
  310. package/dist/values/quantity.js +297 -0
  311. package/dist/values/quantity.js.map +1 -0
  312. package/dist/values/temporal-arithmetic.d.ts +17 -0
  313. package/dist/values/temporal-arithmetic.d.ts.map +1 -0
  314. package/dist/values/temporal-arithmetic.js +183 -0
  315. package/dist/values/temporal-arithmetic.js.map +1 -0
  316. package/dist/values/temporal-compare.d.ts +9 -0
  317. package/dist/values/temporal-compare.d.ts.map +1 -0
  318. package/dist/values/temporal-compare.js +59 -0
  319. package/dist/values/temporal-compare.js.map +1 -0
  320. package/dist/values/type-compat.d.ts +47 -0
  321. package/dist/values/type-compat.d.ts.map +1 -0
  322. package/dist/values/type-compat.js +100 -0
  323. package/dist/values/type-compat.js.map +1 -0
  324. package/dist/values/typed-value.d.ts +48 -0
  325. package/dist/values/typed-value.d.ts.map +1 -0
  326. package/dist/values/typed-value.js +117 -0
  327. package/dist/values/typed-value.js.map +1 -0
  328. package/dist/values/ucum.d.ts +14 -0
  329. package/dist/values/ucum.d.ts.map +1 -0
  330. package/dist/values/ucum.js +146 -0
  331. package/dist/values/ucum.js.map +1 -0
  332. package/package.json +137 -0
  333. package/src/analyzer/analyze-dto.ts +195 -0
  334. package/src/analyzer/analyze.ts +1181 -0
  335. package/src/analyzer/expression-policy.ts +434 -0
  336. package/src/analyzer/index.ts +23 -0
  337. package/src/analyzer/regex-safety.ts +85 -0
  338. package/src/analyzer/signatures.ts +260 -0
  339. package/src/api/bundle.ts +132 -0
  340. package/src/api/cache.ts +40 -0
  341. package/src/api/column-signature.ts +71 -0
  342. package/src/api/compile.ts +308 -0
  343. package/src/api/constraints.ts +104 -0
  344. package/src/api/dto.ts +445 -0
  345. package/src/api/engine.ts +328 -0
  346. package/src/api/evaluate.ts +11 -0
  347. package/src/api/project.ts +255 -0
  348. package/src/api/tagged.ts +35 -0
  349. package/src/cli/dto-check.ts +94 -0
  350. package/src/cli/fhirpath-check.ts +168 -0
  351. package/src/cli/ts-loader.mjs +49 -0
  352. package/src/engine/context.ts +282 -0
  353. package/src/engine/evaluator.ts +246 -0
  354. package/src/engine/navigation.ts +106 -0
  355. package/src/engine/operators/collections.ts +34 -0
  356. package/src/engine/operators/comparison.ts +82 -0
  357. package/src/engine/operators/equality.ts +232 -0
  358. package/src/engine/operators/index.ts +65 -0
  359. package/src/engine/operators/logic.ts +53 -0
  360. package/src/engine/operators/math.ts +225 -0
  361. package/src/engine/operators/strings.ts +25 -0
  362. package/src/engine/operators/types.ts +16 -0
  363. package/src/engine/type-matching.ts +148 -0
  364. package/src/errors.ts +33 -0
  365. package/src/eslint/index.ts +388 -0
  366. package/src/fhir/html-checks.ts +266 -0
  367. package/src/fhir/model-navigation.ts +148 -0
  368. package/src/functions/aggregate.ts +136 -0
  369. package/src/functions/boundary.ts +209 -0
  370. package/src/functions/combining.ts +15 -0
  371. package/src/functions/control.ts +25 -0
  372. package/src/functions/conversion.ts +349 -0
  373. package/src/functions/date-components.ts +88 -0
  374. package/src/functions/existence.ts +107 -0
  375. package/src/functions/fhir.ts +247 -0
  376. package/src/functions/filtering.ts +120 -0
  377. package/src/functions/install.ts +19 -0
  378. package/src/functions/iteration.ts +21 -0
  379. package/src/functions/math.ts +167 -0
  380. package/src/functions/reflection.ts +24 -0
  381. package/src/functions/registry.ts +72 -0
  382. package/src/functions/sort.ts +68 -0
  383. package/src/functions/string.ts +413 -0
  384. package/src/functions/subsetting.ts +89 -0
  385. package/src/functions/tree.ts +112 -0
  386. package/src/functions/type-specifier.ts +29 -0
  387. package/src/functions/utility.ts +82 -0
  388. package/src/functions/variables.ts +36 -0
  389. package/src/index.ts +30 -0
  390. package/src/lexer/lexer.ts +341 -0
  391. package/src/lexer/tokens.ts +69 -0
  392. package/src/model/provider.ts +36 -0
  393. package/src/parser/ast.ts +164 -0
  394. package/src/parser/parser.ts +321 -0
  395. package/src/parser/precedence.ts +52 -0
  396. package/src/parser/printer.ts +114 -0
  397. package/src/r4/generated/resources-data.ts +28631 -0
  398. package/src/r4/generated/type-maps.ts +22145 -0
  399. package/src/r4/generated/types-data.ts +2208 -0
  400. package/src/r4/index.ts +107 -0
  401. package/src/r4/model-data.ts +17 -0
  402. package/src/sites/index.ts +285 -0
  403. package/src/typed/infer.ts +433 -0
  404. package/src/typed/perf-fixture.types.ts +143 -0
  405. package/src/values/collection.ts +57 -0
  406. package/src/values/datetime.ts +285 -0
  407. package/src/values/decimal.ts +213 -0
  408. package/src/values/numeric.ts +63 -0
  409. package/src/values/quantity.ts +358 -0
  410. package/src/values/temporal-arithmetic.ts +231 -0
  411. package/src/values/temporal-compare.ts +65 -0
  412. package/src/values/type-compat.ts +133 -0
  413. package/src/values/typed-value.ts +151 -0
  414. package/src/values/ucum.ts +181 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/analyzer/analyze.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Shared expression-site rules for the TypeScript and ESTree walkers. This file
3
+ * owns call names, argument shapes, receiver checks, and site context. Walkers
4
+ * provide AST access only. It must not import TypeScript or ESLint at runtime.
5
+ */
6
+ import { type ColumnFunctionSignature } from '../api/column-signature.ts';
7
+ /** The supported expression argument shapes: one string, columns, constraints, or DTO variables. */
8
+ export type CallSiteShape = 'expression' | 'columns' | 'constraints' | 'dto-vars';
9
+ export interface CallSitePolicy {
10
+ /** Which argument holds the expression(s): 0 for expression-first calls, 1 for subject-first helpers. */
11
+ argIndex: number;
12
+ shape: CallSiteShape;
13
+ /**
14
+ * Required receiver evidence. `any` accepts bare or member calls unless a
15
+ * foreign import owns the name. `engine` requires a package import or local
16
+ * `FhirPathEngine`. `import` requires the called name to come from this package.
17
+ */
18
+ receiver: 'any' | 'engine' | 'import';
19
+ /**
20
+ * The argument that names the type the expression runs against, when the call
21
+ * takes one: `fhirpath('status', 'MedicationRequest')` declares it at index 1,
22
+ * `defineDto('Condition', { vars })` at index 0. A site with a declared root is
23
+ * analyzed against it, which is the only way a walker can check a relative
24
+ * expression — see `analyzeSite`.
25
+ */
26
+ rootArg?: number;
27
+ /**
28
+ * The root comes from the enclosing class's `extends defineDto('Condition')`
29
+ * clause: a `@column`/`@criteria` field. A class extending anything else (a
30
+ * base class, a root-generic factory) has no statically-known fhirType, and
31
+ * the expression is analyzed without an input type.
32
+ */
33
+ rootFromClass?: true;
34
+ /**
35
+ * A DTO member site. Its `%variables` are never judged — they come from the
36
+ * DTO's own `vars`/`env`, from a base class, or from the projecting call, none
37
+ * of which a source walker can see in full — and an unresolved function is
38
+ * reported only when it misspells a column of the same file. `analyzeDto`
39
+ * checks all of it properly.
40
+ */
41
+ dto?: true;
42
+ /** Declares a zero-argument function named after the decorated field. */
43
+ declaresField?: 'column' | 'criteria';
44
+ }
45
+ /** Call names that take FHIRPath expressions, and where/how/on-what they take them. */
46
+ export declare const CALL_SITES: ReadonlyMap<string, CallSitePolicy>;
47
+ /** The `defineDto` call whose first argument fixes a DTO's fhirType. */
48
+ export declare const DTO_BASE_NAME = "defineDto";
49
+ /** The tag name whose no-substitution template holds a FHIRPath expression. */
50
+ export declare const TAG_NAME = "fhirpath";
51
+ /** Imports from this package (any subpath) are the real FHIRPath API, never foreign. */
52
+ export declare const PACKAGE_PREFIX = "fhirpath-ts";
53
+ /** The engine class name: `new FhirPathEngine(...)` locals are trusted bindings. */
54
+ export declare const ENGINE_CLASS_NAME = "FhirPathEngine";
55
+ /**
56
+ * Name bindings a walker collects from a source file before extracting sites.
57
+ * Files without imports (scripts, snippets) have all sets empty: `receiver: 'any'`
58
+ * names are then always checked, `receiver: 'engine'` names only via a
59
+ * `new FhirPathEngine(...)` local.
60
+ */
61
+ export interface SourceBindings {
62
+ /**
63
+ * Local names bound by imports from modules other than this package
64
+ * (`compile` from handlebars is not a FHIRPath entry point).
65
+ */
66
+ foreign: ReadonlySet<string>;
67
+ /** Package imports and locals created with `new FhirPathEngine()`. */
68
+ trusted: ReadonlySet<string>;
69
+ /**
70
+ * Trusted names also declared for another purpose. Trust is file-wide, so a
71
+ * rebound name is skipped to prevent false positives in another scope.
72
+ */
73
+ rebound: ReadonlySet<string>;
74
+ }
75
+ /**
76
+ * Whether a call site should be checked, given its policy and the file's
77
+ * bindings. `receiverRoot` is the leftmost identifier of a member-expression
78
+ * callee (`Handlebars` in `Handlebars.compile(...)`, `db` in
79
+ * `db.clients.first(...)`), or undefined for a bare-identifier callee or a
80
+ * non-identifier root (`this`, a call result).
81
+ */
82
+ export declare function isCheckedCall(policy: CallSitePolicy, calleeName: string, receiverRoot: string | undefined, bindings: SourceBindings): boolean;
83
+ /** Checks a `fhirpath` tag unless its bare name or namespace comes from another package. */
84
+ export declare function isCheckedTag(receiverRoot: string | undefined, bindings: SourceBindings): boolean;
85
+ /**
86
+ * Whether `new className(...)` yields a trusted binding: any class imported from
87
+ * this package counts, and the bare `FhirPathEngine` name also counts in files
88
+ * whose imports don't claim it — so import-less snippets stay checkable.
89
+ */
90
+ export declare function constructsEngine(className: string, bindings: SourceBindings): boolean;
91
+ /** Which import sources count as the real FHIRPath API rather than a foreign module. */
92
+ export interface LocalModuleOptions {
93
+ /** Import-source prefixes that are the FHIRPath API. Defaults to `['fhirpath-ts']`. */
94
+ packages?: readonly string[];
95
+ /**
96
+ * Also treat relative imports (`./`, `../`) as the FHIRPath API. Off by default
97
+ * (a consumer's relative `compile` is not FHIRPath); turn it on so the package
98
+ * can dogfood the rule on its own source, which imports its API relatively.
99
+ */
100
+ localImports?: boolean;
101
+ }
102
+ /**
103
+ * Whether an import specifier's module is foreign (not the FHIRPath API). By
104
+ * default only `fhirpath-ts` (any subpath) is local; `options` widens that to
105
+ * extra package prefixes and/or relative imports.
106
+ */
107
+ export declare function isForeignModule(moduleSpecifier: string, options?: LocalModuleOptions): boolean;
108
+ /** An extracted expression literal: the AST node (for reporting) and its text. */
109
+ export interface ExpressionEntry<N> {
110
+ node: N;
111
+ expression: string;
112
+ }
113
+ /**
114
+ * What a site tells `analyzeSite` about itself, beyond the expression text: the
115
+ * type the expression runs against, and whether it is a DTO member. Both walkers
116
+ * produce this shape so `analyzeSite` cannot be handed two different vocabularies.
117
+ */
118
+ export interface SiteContext {
119
+ /** The type the expression is analyzed against, when the site fixes one. */
120
+ inputType?: string;
121
+ /** A DTO member site, whose findings are weighed differently (see `CallSitePolicy.dto`). */
122
+ dto?: true;
123
+ }
124
+ /** One class of a file, as a walker reads its heritage clause. */
125
+ export interface ClassHeritage {
126
+ /** The class's own name, when it has one. */
127
+ name: string | undefined;
128
+ /** The fhirType its own `extends defineDto('X')` clause fixes, when it has one. */
129
+ ownRoot: string | undefined;
130
+ /** The name of the class it extends, when that clause is a plain identifier. */
131
+ baseName: string | undefined;
132
+ }
133
+ /**
134
+ * Resolves DTO roots through base classes declared in the same file. Duplicate
135
+ * names, cycles, factories, and imported bases remain unresolved because the
136
+ * source cannot prove their root.
137
+ */
138
+ export declare function dtoRootsOf(classes: readonly ClassHeritage[]): ReadonlyMap<string, string>;
139
+ /**
140
+ * The DTO root a class's `@column` fields analyze against: its own
141
+ * `extends defineDto('X')` clause, else whatever its `extends` chain settled on in
142
+ * `dtoRootsOf`. Its own clause wins outright, so a class whose *name* the file
143
+ * declares twice — dropped from the chain, since a wrong root would report valid
144
+ * code — still checks its own columns.
145
+ */
146
+ export declare function rootOf(heritage: ClassHeritage | undefined, dtoRoots: ReadonlyMap<string, string>): string | undefined;
147
+ /**
148
+ * The context a call site's expressions carry, per its policy. The root is named
149
+ * either by one of the call's own arguments (`fhirpath(expr, 'Patient')`,
150
+ * `defineDto('Condition', …)`) or by the enclosing class's `extends defineDto(…)`
151
+ * clause, which the walker resolves and passes as `classRoot`. Mapping a policy
152
+ * to a context is a decision, so it happens here rather than once per walker —
153
+ * the two drifted while each had its own copy.
154
+ */
155
+ export declare function siteContext<N>(policy: CallSitePolicy, argumentAt: (index: number) => N | undefined, classRoot: string | undefined, ast: ExpressionAst<N>): SiteContext;
156
+ /**
157
+ * The AST accessors a walker provides so shape extraction can be written once.
158
+ * Each returns undefined when the node is not of the asked-for kind, which the
159
+ * extractor treats as "dynamic, skip" — so spreads, shorthands, computed values,
160
+ * and variables all fall out of the same rule in both walkers.
161
+ */
162
+ export interface ExpressionAst<N> {
163
+ /** The node as a string literal entry, or undefined when it is not one. */
164
+ string(node: N): ExpressionEntry<N> | undefined;
165
+ /** The node's value as a `true`/`false` literal, or undefined when it is not one. */
166
+ boolean(node: N): boolean | undefined;
167
+ /**
168
+ * The plain (non-spread, non-shorthand) properties of an object literal, or
169
+ * undefined when the node is not an object literal. `name` is the property's
170
+ * statically-known key — undefined for computed keys.
171
+ */
172
+ properties(node: N): {
173
+ name: string | undefined;
174
+ value: N;
175
+ }[] | undefined;
176
+ /** The elements of an array literal, or undefined when the node is not one. */
177
+ elements(node: N): N[] | undefined;
178
+ }
179
+ /**
180
+ * Extract the expression literal(s) an argument holds, per the call site's shape.
181
+ * Column keys are output names, not expressions, so a computed key does not stop
182
+ * its value from being checked; `{ path }` / `{ expression }` lookups match
183
+ * identifier and string-literal keys only.
184
+ */
185
+ export declare function expressionEntries<N>(argument: N, shape: CallSiteShape, ast: ExpressionAst<N>): ExpressionEntry<N>[];
186
+ /**
187
+ * What a DTO column declares as a function: every `@column` field of a
188
+ * registered DTO becomes a zero-argument expression function named by the field
189
+ * (see `withDtos`), so a walker that reads a file's columns can resolve the
190
+ * calls between them. Shaped to be assignable to the analyzer's
191
+ * `DeclaredFunction`.
192
+ */
193
+ export interface DeclaredColumnFunction {
194
+ minArity: 0;
195
+ maxArity: 0;
196
+ signature?: ColumnFunctionSignature;
197
+ }
198
+ /** One field name of a file, with every class that declares it (see `declaredColumnOverloads`). */
199
+ export type FileColumnFunction = DeclaredColumnFunction | {
200
+ overloads: readonly DeclaredColumnFunction[];
201
+ };
202
+ /**
203
+ * Builds a DTO column's function declaration from literal source options and a
204
+ * visible class root. Unknown roots omit the input claim. Dynamic options omit
205
+ * the result claim.
206
+ */
207
+ export declare function columnFunctionDeclaration<N>(kind: 'column' | 'criteria', options: N | undefined, ast: ExpressionAst<N>, hostType: string | undefined): DeclaredColumnFunction;
208
+ /** Keeps every same-name column declaration as an overload for focus-based analysis. */
209
+ export declare function declaredColumnOverloads(seen: FileColumnFunction | undefined, next: DeclaredColumnFunction): FileColumnFunction;
210
+ //# sourceMappingURL=expression-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-policy.d.ts","sourceRoot":"","sources":["../../src/analyzer/expression-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Shared expression-site rules for the TypeScript and ESTree walkers. This file
3
+ * owns call names, argument shapes, receiver checks, and site context. Walkers
4
+ * provide AST access only. It must not import TypeScript or ESLint at runtime.
5
+ */
6
+ import { columnSignature, criteriaSignature, } from "../api/column-signature.js";
7
+ /** Call names that take FHIRPath expressions, and where/how/on-what they take them. */
8
+ export const CALL_SITES = new Map([
9
+ // Expression-first: the low-level API and the evaluate family of FhirPathEngine.
10
+ // `fhirpath`/`compile` take the type the expression runs against as their
11
+ // second argument, which is what makes an expression held in a `const` — and
12
+ // evaluated somewhere else entirely — checkable.
13
+ ['fhirpath', { argIndex: 0, shape: 'expression', receiver: 'any', rootArg: 1 }],
14
+ ['compile', { argIndex: 0, shape: 'expression', receiver: 'any', rootArg: 1 }],
15
+ ['evaluate', { argIndex: 0, shape: 'expression', receiver: 'any' }],
16
+ ['evaluateTyped', { argIndex: 0, shape: 'expression', receiver: 'any' }],
17
+ ['first', { argIndex: 0, shape: 'expression', receiver: 'engine' }],
18
+ ['analyzeExpression', { argIndex: 0, shape: 'expression', receiver: 'any' }],
19
+ // Subject-first FhirPathEngine helpers: the expression(s) come second.
20
+ ['test', { argIndex: 1, shape: 'expression', receiver: 'engine' }],
21
+ ['filter', { argIndex: 1, shape: 'expression', receiver: 'engine' }],
22
+ ['project', { argIndex: 1, shape: 'columns', receiver: 'engine' }],
23
+ ['checkConstraints', { argIndex: 1, shape: 'constraints', receiver: 'any' }],
24
+ // DTO declarations: the column/criteria expressions of a `@column` field, and
25
+ // the `vars` a DTO binds per row.
26
+ [
27
+ 'column',
28
+ { argIndex: 0, shape: 'expression', receiver: 'import', rootFromClass: true, dto: true, declaresField: 'column' },
29
+ ],
30
+ [
31
+ 'criteria',
32
+ { argIndex: 0, shape: 'expression', receiver: 'import', rootFromClass: true, dto: true, declaresField: 'criteria' },
33
+ ],
34
+ ['defineDto', { argIndex: 1, shape: 'dto-vars', receiver: 'import', rootArg: 0, dto: true }],
35
+ ]);
36
+ /** The `defineDto` call whose first argument fixes a DTO's fhirType. */
37
+ export const DTO_BASE_NAME = 'defineDto';
38
+ /** The tag name whose no-substitution template holds a FHIRPath expression. */
39
+ export const TAG_NAME = 'fhirpath';
40
+ /** Imports from this package (any subpath) are the real FHIRPath API, never foreign. */
41
+ export const PACKAGE_PREFIX = 'fhirpath-ts';
42
+ /** The engine class name: `new FhirPathEngine(...)` locals are trusted bindings. */
43
+ export const ENGINE_CLASS_NAME = 'FhirPathEngine';
44
+ /**
45
+ * Whether a call site should be checked, given its policy and the file's
46
+ * bindings. `receiverRoot` is the leftmost identifier of a member-expression
47
+ * callee (`Handlebars` in `Handlebars.compile(...)`, `db` in
48
+ * `db.clients.first(...)`), or undefined for a bare-identifier callee or a
49
+ * non-identifier root (`this`, a call result).
50
+ */
51
+ export function isCheckedCall(policy, calleeName, receiverRoot, bindings) {
52
+ if (policy.receiver === 'engine') {
53
+ return receiverRoot !== undefined && bindings.trusted.has(receiverRoot) && !bindings.rebound.has(receiverRoot);
54
+ }
55
+ if (policy.receiver === 'import') {
56
+ return receiverRoot === undefined && bindings.trusted.has(calleeName) && !bindings.rebound.has(calleeName);
57
+ }
58
+ return !bindings.foreign.has(receiverRoot ?? calleeName);
59
+ }
60
+ /** Checks a `fhirpath` tag unless its bare name or namespace comes from another package. */
61
+ export function isCheckedTag(receiverRoot, bindings) {
62
+ return !bindings.foreign.has(receiverRoot ?? TAG_NAME);
63
+ }
64
+ /**
65
+ * Whether `new className(...)` yields a trusted binding: any class imported from
66
+ * this package counts, and the bare `FhirPathEngine` name also counts in files
67
+ * whose imports don't claim it — so import-less snippets stay checkable.
68
+ */
69
+ export function constructsEngine(className, bindings) {
70
+ return bindings.trusted.has(className) || (className === ENGINE_CLASS_NAME && !bindings.foreign.has(className));
71
+ }
72
+ /**
73
+ * Whether an import specifier's module is foreign (not the FHIRPath API). By
74
+ * default only `fhirpath-ts` (any subpath) is local; `options` widens that to
75
+ * extra package prefixes and/or relative imports.
76
+ */
77
+ export function isForeignModule(moduleSpecifier, options = {}) {
78
+ const packages = options.packages ?? [PACKAGE_PREFIX];
79
+ if (packages.some(prefix => moduleSpecifier.startsWith(prefix))) {
80
+ return false;
81
+ }
82
+ if (options.localImports === true && moduleSpecifier.startsWith('.')) {
83
+ return false;
84
+ }
85
+ return true;
86
+ }
87
+ /**
88
+ * Resolves DTO roots through base classes declared in the same file. Duplicate
89
+ * names, cycles, factories, and imported bases remain unresolved because the
90
+ * source cannot prove their root.
91
+ */
92
+ export function dtoRootsOf(classes) {
93
+ const byName = new Map();
94
+ const ambiguous = new Set();
95
+ for (const cls of classes) {
96
+ if (cls.name === undefined) {
97
+ continue;
98
+ }
99
+ if (byName.has(cls.name)) {
100
+ ambiguous.add(cls.name);
101
+ }
102
+ byName.set(cls.name, cls);
103
+ }
104
+ const rootOf = (cls, seen) => {
105
+ if (cls.ownRoot !== undefined) {
106
+ return cls.ownRoot;
107
+ }
108
+ const base = cls.baseName;
109
+ if (base === undefined || ambiguous.has(base) || seen.has(base)) {
110
+ return undefined;
111
+ }
112
+ const declaration = byName.get(base);
113
+ if (declaration === undefined) {
114
+ return undefined;
115
+ }
116
+ seen.add(base);
117
+ return rootOf(declaration, seen);
118
+ };
119
+ const roots = new Map();
120
+ for (const [name, cls] of byName) {
121
+ if (ambiguous.has(name)) {
122
+ continue;
123
+ }
124
+ const root = rootOf(cls, new Set([name]));
125
+ if (root !== undefined) {
126
+ roots.set(name, root);
127
+ }
128
+ }
129
+ return roots;
130
+ }
131
+ /**
132
+ * The DTO root a class's `@column` fields analyze against: its own
133
+ * `extends defineDto('X')` clause, else whatever its `extends` chain settled on in
134
+ * `dtoRootsOf`. Its own clause wins outright, so a class whose *name* the file
135
+ * declares twice — dropped from the chain, since a wrong root would report valid
136
+ * code — still checks its own columns.
137
+ */
138
+ export function rootOf(heritage, dtoRoots) {
139
+ if (heritage === undefined || heritage.ownRoot !== undefined) {
140
+ return heritage?.ownRoot;
141
+ }
142
+ return heritage.name === undefined ? undefined : dtoRoots.get(heritage.name);
143
+ }
144
+ /**
145
+ * The context a call site's expressions carry, per its policy. The root is named
146
+ * either by one of the call's own arguments (`fhirpath(expr, 'Patient')`,
147
+ * `defineDto('Condition', …)`) or by the enclosing class's `extends defineDto(…)`
148
+ * clause, which the walker resolves and passes as `classRoot`. Mapping a policy
149
+ * to a context is a decision, so it happens here rather than once per walker —
150
+ * the two drifted while each had its own copy.
151
+ */
152
+ export function siteContext(policy, argumentAt, classRoot, ast) {
153
+ const rootArgument = policy.rootArg === undefined ? undefined : argumentAt(policy.rootArg);
154
+ const inputType = rootArgument !== undefined
155
+ ? ast.string(rootArgument)?.expression
156
+ : policy.rootFromClass === true
157
+ ? classRoot
158
+ : undefined;
159
+ return {
160
+ ...(policy.dto === true && { dto: true }),
161
+ ...(inputType !== undefined && { inputType }),
162
+ };
163
+ }
164
+ /**
165
+ * Extract the expression literal(s) an argument holds, per the call site's shape.
166
+ * Column keys are output names, not expressions, so a computed key does not stop
167
+ * its value from being checked; `{ path }` / `{ expression }` lookups match
168
+ * identifier and string-literal keys only.
169
+ */
170
+ export function expressionEntries(argument, shape, ast) {
171
+ if (shape === 'expression') {
172
+ const entry = ast.string(argument);
173
+ return entry ? [entry] : [];
174
+ }
175
+ if (shape === 'columns') {
176
+ // project() columns: { name: 'expr' }, { name: { path: 'expr', ... } }, or
177
+ // the boolean-criteria form { name: { test: 'expr' } }.
178
+ return (ast.properties(argument) ?? []).flatMap(({ value }) => {
179
+ const entry = ast.string(value);
180
+ return entry ? [entry] : [...namedStringEntries(value, 'path', ast), ...namedStringEntries(value, 'test', ast)];
181
+ });
182
+ }
183
+ if (shape === 'dto-vars') {
184
+ // defineDto() options: { vars: { name: 'expr' }, callerEnv: [...] }. Only
185
+ // vars hold expressions.
186
+ const vars = (ast.properties(argument) ?? []).filter(({ name }) => name === 'vars');
187
+ return vars.flatMap(({ value }) => (ast.properties(value) ?? []).flatMap(({ value: expression }) => {
188
+ const entry = ast.string(expression);
189
+ return entry ? [entry] : [];
190
+ }));
191
+ }
192
+ // checkConstraints() constraints: [{ key, expression: 'expr', ... }].
193
+ return (ast.elements(argument) ?? []).flatMap(element => namedStringEntries(element, 'expression', ast));
194
+ }
195
+ /** The string-literal values of an object literal's `name` properties. */
196
+ function namedStringEntries(object, name, ast) {
197
+ return (ast.properties(object) ?? []).flatMap(({ name: key, value }) => {
198
+ if (key !== name) {
199
+ return [];
200
+ }
201
+ const entry = ast.string(value);
202
+ return entry ? [entry] : [];
203
+ });
204
+ }
205
+ /**
206
+ * Builds a DTO column's function declaration from literal source options and a
207
+ * visible class root. Unknown roots omit the input claim. Dynamic options omit
208
+ * the result claim.
209
+ */
210
+ export function columnFunctionDeclaration(kind, options, ast, hostType) {
211
+ const declaration = { minArity: 0, maxArity: 0 };
212
+ if (kind === 'criteria') {
213
+ // A criteria takes no options object. Its result is a single Boolean
214
+ // whatever the expression returns, because the rule lives on the function.
215
+ return { ...declaration, signature: criteriaSignature(hostType) };
216
+ }
217
+ const signature = columnSignature(columnClaim(options, ast), hostType);
218
+ return signature === undefined ? declaration : { ...declaration, signature };
219
+ }
220
+ /** Keeps every same-name column declaration as an overload for focus-based analysis. */
221
+ export function declaredColumnOverloads(seen, next) {
222
+ if (seen === undefined) {
223
+ return next;
224
+ }
225
+ return { overloads: [...('overloads' in seen ? seen.overloads : [seen]), next] };
226
+ }
227
+ /**
228
+ * Reads the type claim a column's options object makes. The answer is an empty
229
+ * claim whenever the source cannot say: no options at all, options that are not
230
+ * an object literal, or a `collection` set from a variable, where a guessed
231
+ * cardinality would be worse than none. All three produce no result claim,
232
+ * which leaves the input type as the only thing the declaration carries.
233
+ */
234
+ function columnClaim(options, ast) {
235
+ const properties = options === undefined ? undefined : ast.properties(options);
236
+ if (properties === undefined) {
237
+ return {};
238
+ }
239
+ const named = (name) => properties.find(property => property.name === name)?.value;
240
+ const collection = named('collection');
241
+ const isCollection = collection === undefined ? false : ast.boolean(collection);
242
+ if (isCollection === undefined) {
243
+ return {};
244
+ }
245
+ const declaredType = named('type');
246
+ return {
247
+ ...(declaredType !== undefined && { type: ast.string(declaredType)?.expression }),
248
+ ...(named('enum') !== undefined && { enum: true }),
249
+ ...(named('as') !== undefined && { as: true }),
250
+ ...(named('choices') !== undefined && { choices: true }),
251
+ collection: isCollection,
252
+ };
253
+ }
254
+ //# sourceMappingURL=expression-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-policy.js","sourceRoot":"","sources":["../../src/analyzer/expression-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { type AnalysisDetails, analyzeExpression, analyzeExpressionDetailed, type AnalyzeOptions, type AnalyzerDiagnostic, analyzeSite, type DeclaredFunction, type DeclaredVariable, type OverloadedDeclaredFunction, type SingleDeclaredFunction, } from './analyze.ts';
2
+ export { type AnalyzedContext, type AnalyzedEngine, analyzeDto, type AnalyzeDtoOptions, analyzeEngineDtos, type DtoDiagnostic, } from './analyze-dto.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,eAAe,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,UAAU,EACV,KAAK,iBAAiB,EACtB,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,6 @@
1
+ // The `fhirpath-ts/analyzer` entry point. Listed name by name rather than
2
+ // Re-export the public analyzer API from one entry point. Its contents should
3
+ // be a decision, not a side effect of adding an export to analyze.ts.
4
+ export { analyzeExpression, analyzeExpressionDetailed, analyzeSite, } from "./analyze.js";
5
+ export { analyzeDto, analyzeEngineDtos, } from "./analyze-dto.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,8EAA8E;AAC9E,sEAAsE;AACtE,OAAO,EAEL,iBAAiB,EACjB,yBAAyB,EAGzB,WAAW,GAKZ,MAAM,cAAc,CAAA;AACrB,OAAO,EAGL,UAAU,EAEV,iBAAiB,GAElB,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Static ReDoS heuristic for literal regex arguments of the matches() family.
3
+ * A synchronous JS engine cannot time out a running RegExp, so catastrophic
4
+ * backtracking is flagged before it runs instead: the classic exponential
5
+ * shape is an unbounded quantifier applied to a group that itself contains an
6
+ * unbounded quantifier — `(a+)+`, `(\d*)*`, `(x|y+)*`. That is what this
7
+ * detects; overlapping-alternation cases like `(a|ab)+` are out of scope.
8
+ */
9
+ export declare function hasNestedUnboundedQuantifier(pattern: string): boolean;
10
+ //# sourceMappingURL=regex-safety.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex-safety.d.ts","sourceRoot":"","sources":["../../src/analyzer/regex-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAmDrE"}