fhirpath-ts 0.0.0-bootstrap.0 → 0.2.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 (120) hide show
  1. package/README.md +50 -18
  2. package/dist/analyzer/analyze-dto.d.ts +4 -0
  3. package/dist/analyzer/analyze-dto.d.ts.map +1 -1
  4. package/dist/analyzer/analyze-dto.js +12 -14
  5. package/dist/analyzer/analyze-dto.js.map +1 -1
  6. package/dist/analyzer/analyze.d.ts +22 -6
  7. package/dist/analyzer/analyze.d.ts.map +1 -1
  8. package/dist/analyzer/analyze.js +242 -98
  9. package/dist/analyzer/analyze.js.map +1 -1
  10. package/dist/analyzer/declarations.d.ts +26 -0
  11. package/dist/analyzer/declarations.d.ts.map +1 -0
  12. package/dist/analyzer/declarations.js +68 -0
  13. package/dist/analyzer/declarations.js.map +1 -0
  14. package/dist/analyzer/operator-rules.d.ts +127 -0
  15. package/dist/analyzer/operator-rules.d.ts.map +1 -0
  16. package/dist/analyzer/operator-rules.js +70 -0
  17. package/dist/analyzer/operator-rules.js.map +1 -0
  18. package/dist/analyzer/signatures.d.ts +1097 -10
  19. package/dist/analyzer/signatures.d.ts.map +1 -1
  20. package/dist/analyzer/signatures.js +70 -29
  21. package/dist/analyzer/signatures.js.map +1 -1
  22. package/dist/api/compile.d.ts +32 -8
  23. package/dist/api/compile.d.ts.map +1 -1
  24. package/dist/api/compile.js +2 -0
  25. package/dist/api/compile.js.map +1 -1
  26. package/dist/api/engine.d.ts +42 -16
  27. package/dist/api/engine.d.ts.map +1 -1
  28. package/dist/api/engine.js +2 -1
  29. package/dist/api/engine.js.map +1 -1
  30. package/dist/api/project.d.ts +8 -8
  31. package/dist/api/project.d.ts.map +1 -1
  32. package/dist/api/project.js +31 -19
  33. package/dist/api/project.js.map +1 -1
  34. package/dist/api/strict.d.ts +6 -0
  35. package/dist/api/strict.d.ts.map +1 -0
  36. package/dist/api/strict.js +71 -0
  37. package/dist/api/strict.js.map +1 -0
  38. package/dist/api/tagged.d.ts +4 -4
  39. package/dist/api/tagged.d.ts.map +1 -1
  40. package/dist/api/tagged.js.map +1 -1
  41. package/dist/cli/dto-check.js +7 -3
  42. package/dist/cli/dto-check.js.map +1 -1
  43. package/dist/engine/context.d.ts +3 -1
  44. package/dist/engine/context.d.ts.map +1 -1
  45. package/dist/engine/context.js +5 -1
  46. package/dist/engine/context.js.map +1 -1
  47. package/dist/engine/navigation.d.ts.map +1 -1
  48. package/dist/engine/navigation.js +7 -48
  49. package/dist/engine/navigation.js.map +1 -1
  50. package/dist/engine/type-matching.d.ts.map +1 -1
  51. package/dist/engine/type-matching.js +6 -16
  52. package/dist/engine/type-matching.js.map +1 -1
  53. package/dist/index.d.ts +4 -3
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/parser/parser.d.ts.map +1 -1
  57. package/dist/parser/parser.js +102 -73
  58. package/dist/parser/parser.js.map +1 -1
  59. package/dist/parser/precedence.d.ts +368 -4
  60. package/dist/parser/precedence.d.ts.map +1 -1
  61. package/dist/parser/precedence.js +146 -32
  62. package/dist/parser/precedence.js.map +1 -1
  63. package/dist/r4/generated/type-maps.d.ts +1367 -0
  64. package/dist/r4/generated/type-maps.d.ts.map +1 -1
  65. package/dist/r4/index.d.ts +3 -1
  66. package/dist/r4/index.d.ts.map +1 -1
  67. package/dist/typed/context-maps.d.ts +23 -0
  68. package/dist/typed/context-maps.d.ts.map +1 -0
  69. package/dist/typed/context-maps.js +2 -0
  70. package/dist/typed/context-maps.js.map +1 -0
  71. package/dist/typed/infer.d.ts +99 -229
  72. package/dist/typed/infer.d.ts.map +1 -1
  73. package/dist/typed/infer.js +1 -84
  74. package/dist/typed/infer.js.map +1 -1
  75. package/dist/typed/inference-limits.d.ts +7 -0
  76. package/dist/typed/inference-limits.d.ts.map +1 -0
  77. package/dist/typed/inference-limits.js +6 -0
  78. package/dist/typed/inference-limits.js.map +1 -0
  79. package/dist/typed/metadata-compact.d.ts +189 -0
  80. package/dist/typed/metadata-compact.d.ts.map +1 -0
  81. package/dist/typed/metadata-compact.js +3 -0
  82. package/dist/typed/metadata-compact.js.map +1 -0
  83. package/dist/typed/parser.d.ts +515 -0
  84. package/dist/typed/parser.d.ts.map +1 -0
  85. package/dist/typed/parser.js +2 -0
  86. package/dist/typed/parser.js.map +1 -0
  87. package/dist/values/type-compat.d.ts +8 -0
  88. package/dist/values/type-compat.d.ts.map +1 -1
  89. package/dist/values/type-compat.js +44 -1
  90. package/dist/values/type-compat.js.map +1 -1
  91. package/package.json +20 -1
  92. package/src/analyzer/analyze-dto.ts +21 -17
  93. package/src/analyzer/analyze.ts +335 -109
  94. package/src/analyzer/declarations.ts +120 -0
  95. package/src/analyzer/operator-rules.ts +88 -0
  96. package/src/analyzer/signatures.ts +99 -41
  97. package/src/api/compile.ts +66 -11
  98. package/src/api/engine.ts +97 -33
  99. package/src/api/project.ts +54 -30
  100. package/src/api/strict.ts +112 -0
  101. package/src/api/tagged.ts +5 -5
  102. package/src/cli/dto-check.ts +7 -3
  103. package/src/engine/context.ts +7 -2
  104. package/src/engine/navigation.ts +7 -52
  105. package/src/engine/type-matching.ts +11 -17
  106. package/src/index.ts +25 -2
  107. package/src/parser/parser.ts +106 -74
  108. package/src/parser/precedence.ts +250 -33
  109. package/src/r4/generated/type-maps.ts +1557 -0
  110. package/src/typed/context-maps.ts +41 -0
  111. package/src/typed/infer.ts +157 -425
  112. package/src/typed/inference-limits.ts +9 -0
  113. package/src/typed/metadata-compact.ts +307 -0
  114. package/src/typed/parser.ts +2277 -0
  115. package/src/values/type-compat.ts +48 -1
  116. package/dist/typed/perf-fixture.types.d.ts +0 -136
  117. package/dist/typed/perf-fixture.types.d.ts.map +0 -1
  118. package/dist/typed/perf-fixture.types.js +0 -2
  119. package/dist/typed/perf-fixture.types.js.map +0 -1
  120. package/src/typed/perf-fixture.types.ts +0 -143
@@ -0,0 +1,307 @@
1
+ // Generated by scripts/generate-type-metadata.ts. Do not edit by hand.
2
+
3
+ export interface CompactFunctionRules {
4
+ abs: readonly ['unknown']
5
+ aggregate: readonly ['union', 0 | 1]
6
+ all: readonly ['fixed', 'System.Boolean']
7
+ allFalse: readonly ['fixed', 'System.Boolean']
8
+ allTrue: readonly ['fixed', 'System.Boolean']
9
+ anyFalse: readonly ['fixed', 'System.Boolean']
10
+ anyTrue: readonly ['fixed', 'System.Boolean']
11
+ as: readonly ['unknown']
12
+ avg: readonly ['fixed', 'System.Decimal']
13
+ ceiling: readonly ['fixed', 'System.Integer']
14
+ children: readonly ['unknown']
15
+ coalesce: readonly ['arguments-union']
16
+ combine: readonly ['union', 'input' | 0]
17
+ comparable: readonly ['fixed', 'System.Boolean']
18
+ conformsTo: readonly ['fixed', 'System.Boolean']
19
+ contains: readonly ['fixed', 'System.Boolean']
20
+ convertsToBoolean: readonly ['fixed', 'System.Boolean']
21
+ convertsToDate: readonly ['fixed', 'System.Boolean']
22
+ convertsToDateTime: readonly ['fixed', 'System.Boolean']
23
+ convertsToDecimal: readonly ['fixed', 'System.Boolean']
24
+ convertsToInteger: readonly ['fixed', 'System.Boolean']
25
+ convertsToLong: readonly ['fixed', 'System.Boolean']
26
+ convertsToQuantity: readonly ['fixed', 'System.Boolean']
27
+ convertsToString: readonly ['fixed', 'System.Boolean']
28
+ convertsToTime: readonly ['fixed', 'System.Boolean']
29
+ count: readonly ['fixed', 'System.Integer']
30
+ dateOf: readonly ['fixed', 'System.Date']
31
+ dayOf: readonly ['fixed', 'System.Integer']
32
+ decode: readonly ['fixed', 'System.String']
33
+ defineVariable: readonly ['input']
34
+ descendants: readonly ['unknown']
35
+ distinct: readonly ['input']
36
+ empty: readonly ['fixed', 'System.Boolean']
37
+ encode: readonly ['fixed', 'System.String']
38
+ endsWith: readonly ['fixed', 'System.Boolean']
39
+ escape: readonly ['fixed', 'System.String']
40
+ exclude: readonly ['input']
41
+ exists: readonly ['fixed', 'System.Boolean']
42
+ exp: readonly ['fixed', 'System.Decimal']
43
+ extension: readonly ['unknown']
44
+ first: readonly ['input']
45
+ floor: readonly ['fixed', 'System.Integer']
46
+ getValue: readonly ['unknown']
47
+ hasValue: readonly ['fixed', 'System.Boolean']
48
+ highBoundary: readonly ['unknown']
49
+ hourOf: readonly ['fixed', 'System.Integer']
50
+ htmlChecks: readonly ['fixed', 'System.Boolean']
51
+ iif: readonly ['union', 1 | 2]
52
+ indexOf: readonly ['fixed', 'System.Integer']
53
+ intersect: readonly ['input']
54
+ is: readonly ['fixed', 'System.Boolean']
55
+ isDistinct: readonly ['fixed', 'System.Boolean']
56
+ join: readonly ['fixed', 'System.String']
57
+ last: readonly ['input']
58
+ lastIndexOf: readonly ['fixed', 'System.Integer']
59
+ length: readonly ['fixed', 'System.Integer']
60
+ ln: readonly ['fixed', 'System.Decimal']
61
+ log: readonly ['fixed', 'System.Decimal']
62
+ lowBoundary: readonly ['unknown']
63
+ lower: readonly ['fixed', 'System.String']
64
+ matches: readonly ['fixed', 'System.Boolean']
65
+ matchesFull: readonly ['fixed', 'System.Boolean']
66
+ max: readonly ['unknown']
67
+ millisecondOf: readonly ['fixed', 'System.Integer']
68
+ min: readonly ['unknown']
69
+ minuteOf: readonly ['fixed', 'System.Integer']
70
+ monthOf: readonly ['fixed', 'System.Integer']
71
+ not: readonly ['fixed', 'System.Boolean']
72
+ now: readonly ['fixed', 'System.DateTime']
73
+ ofType: readonly ['unknown']
74
+ power: readonly ['unknown']
75
+ precision: readonly ['fixed', 'System.Integer']
76
+ repeat: readonly ['unknown']
77
+ replace: readonly ['fixed', 'System.String']
78
+ replaceMatches: readonly ['fixed', 'System.String']
79
+ resolve: readonly ['reference-targets']
80
+ round: readonly ['fixed', 'System.Decimal']
81
+ secondOf: readonly ['fixed', 'System.Integer']
82
+ select: readonly ['argument', 0]
83
+ single: readonly ['input']
84
+ skip: readonly ['input']
85
+ sort: readonly ['input']
86
+ split: readonly ['fixed', 'System.String']
87
+ sqrt: readonly ['fixed', 'System.Decimal']
88
+ startsWith: readonly ['fixed', 'System.Boolean']
89
+ subsetOf: readonly ['fixed', 'System.Boolean']
90
+ substring: readonly ['fixed', 'System.String']
91
+ sum: readonly ['unknown']
92
+ supersetOf: readonly ['fixed', 'System.Boolean']
93
+ tail: readonly ['input']
94
+ take: readonly ['input']
95
+ timeOf: readonly ['fixed', 'System.Time']
96
+ timeOfDay: readonly ['fixed', 'System.Time']
97
+ timezoneOffsetOf: readonly ['fixed', 'System.Decimal']
98
+ toBoolean: readonly ['fixed', 'System.Boolean']
99
+ toChars: readonly ['fixed', 'System.String']
100
+ toDate: readonly ['fixed', 'System.Date']
101
+ toDateTime: readonly ['fixed', 'System.DateTime']
102
+ today: readonly ['fixed', 'System.Date']
103
+ toDecimal: readonly ['fixed', 'System.Decimal']
104
+ toInteger: readonly ['fixed', 'System.Integer']
105
+ toLong: readonly ['fixed', 'System.Long']
106
+ toQuantity: readonly ['fixed', 'System.Quantity']
107
+ toString: readonly ['fixed', 'System.String']
108
+ toTime: readonly ['fixed', 'System.Time']
109
+ trace: readonly ['input']
110
+ trim: readonly ['fixed', 'System.String']
111
+ truncate: readonly ['fixed', 'System.Integer']
112
+ type: readonly ['unknown']
113
+ unescape: readonly ['fixed', 'System.String']
114
+ union: readonly ['union', 'input' | 0]
115
+ upper: readonly ['fixed', 'System.String']
116
+ where: readonly ['input']
117
+ yearOf: readonly ['fixed', 'System.Integer']
118
+ }
119
+
120
+ export type CompactLambdaArgument0Name =
121
+ 'exists' | 'all' | 'where' | 'select' | 'repeat' | 'iif' | 'aggregate' | 'sort' | 'coalesce'
122
+ export type CompactLambdaArgument1Name =
123
+ 'exists' | 'all' | 'where' | 'select' | 'repeat' | 'iif' | 'trace' | 'sort' | 'defineVariable' | 'coalesce'
124
+ export type CompactLambdaArgument2Name =
125
+ 'exists' | 'all' | 'where' | 'select' | 'repeat' | 'iif' | 'trace' | 'sort' | 'defineVariable' | 'coalesce'
126
+
127
+ export type CompactFastFunctionName =
128
+ | 'empty'
129
+ | 'exists'
130
+ | 'all'
131
+ | 'allTrue'
132
+ | 'anyTrue'
133
+ | 'allFalse'
134
+ | 'anyFalse'
135
+ | 'count'
136
+ | 'distinct'
137
+ | 'isDistinct'
138
+ | 'subsetOf'
139
+ | 'supersetOf'
140
+ | 'where'
141
+ | 'is'
142
+ | 'single'
143
+ | 'first'
144
+ | 'last'
145
+ | 'tail'
146
+ | 'skip'
147
+ | 'take'
148
+ | 'intersect'
149
+ | 'exclude'
150
+ | 'not'
151
+ | 'trace'
152
+ | 'hasValue'
153
+ | 'htmlChecks'
154
+ | 'comparable'
155
+ | 'conformsTo'
156
+ | 'length'
157
+ | 'indexOf'
158
+ | 'lastIndexOf'
159
+ | 'substring'
160
+ | 'startsWith'
161
+ | 'endsWith'
162
+ | 'contains'
163
+ | 'upper'
164
+ | 'lower'
165
+ | 'replace'
166
+ | 'matches'
167
+ | 'matchesFull'
168
+ | 'replaceMatches'
169
+ | 'toChars'
170
+ | 'trim'
171
+ | 'split'
172
+ | 'join'
173
+ | 'encode'
174
+ | 'decode'
175
+ | 'escape'
176
+ | 'unescape'
177
+ | 'ceiling'
178
+ | 'floor'
179
+ | 'truncate'
180
+ | 'round'
181
+ | 'exp'
182
+ | 'ln'
183
+ | 'sqrt'
184
+ | 'log'
185
+ | 'avg'
186
+ | 'sort'
187
+ | 'toBoolean'
188
+ | 'toInteger'
189
+ | 'toLong'
190
+ | 'toDecimal'
191
+ | 'toString'
192
+ | 'toDate'
193
+ | 'toDateTime'
194
+ | 'toTime'
195
+ | 'toQuantity'
196
+ | 'convertsToBoolean'
197
+ | 'convertsToInteger'
198
+ | 'convertsToLong'
199
+ | 'convertsToDecimal'
200
+ | 'convertsToString'
201
+ | 'convertsToDate'
202
+ | 'convertsToDateTime'
203
+ | 'convertsToTime'
204
+ | 'convertsToQuantity'
205
+ | 'now'
206
+ | 'today'
207
+ | 'timeOfDay'
208
+ | 'yearOf'
209
+ | 'monthOf'
210
+ | 'dayOf'
211
+ | 'hourOf'
212
+ | 'minuteOf'
213
+ | 'secondOf'
214
+ | 'millisecondOf'
215
+ | 'timezoneOffsetOf'
216
+ | 'dateOf'
217
+ | 'timeOf'
218
+ | 'precision'
219
+
220
+ export interface CompactOperatorRules {
221
+ '*': readonly ['arithmetic']
222
+ '/': readonly ['arithmetic']
223
+ div: readonly ['arithmetic']
224
+ mod: readonly ['arithmetic']
225
+ '+': readonly ['arithmetic']
226
+ '-': readonly ['arithmetic']
227
+ '&': readonly ['fixed', 'System.String']
228
+ '|': readonly ['union']
229
+ '<': readonly ['fixed', 'System.Boolean']
230
+ '>': readonly ['fixed', 'System.Boolean']
231
+ '<=': readonly ['fixed', 'System.Boolean']
232
+ '>=': readonly ['fixed', 'System.Boolean']
233
+ '=': readonly ['fixed', 'System.Boolean']
234
+ '~': readonly ['fixed', 'System.Boolean']
235
+ '!=': readonly ['fixed', 'System.Boolean']
236
+ '!~': readonly ['fixed', 'System.Boolean']
237
+ in: readonly ['fixed', 'System.Boolean']
238
+ contains: readonly ['fixed', 'System.Boolean']
239
+ and: readonly ['fixed', 'System.Boolean']
240
+ or: readonly ['fixed', 'System.Boolean']
241
+ xor: readonly ['fixed', 'System.Boolean']
242
+ implies: readonly ['fixed', 'System.Boolean']
243
+ }
244
+
245
+ export interface CompactTypeOperatorRules {
246
+ is: readonly ['fixed', 'System.Boolean']
247
+ as: readonly ['narrow']
248
+ }
249
+
250
+ export interface CompactPrefixParselets {
251
+ identifier: readonly ['identifier', 'prefix', 0, 'none', 'none', 'identifier']
252
+ literal: readonly ['literal', 'prefix', 0, 'none', 'none', 'literal']
253
+ variable: readonly ['variable', 'prefix', 0, 'none', 'none', 'identifier']
254
+ '+': readonly ['operator', 'prefix', 11, 'right', 'expression', 'unary']
255
+ '-': readonly ['operator', 'prefix', 11, 'right', 'expression', 'unary']
256
+ '(': readonly ['punct', 'prefix', 0, 'none', 'group', 'group']
257
+ '{': readonly ['punct', 'prefix', 0, 'none', 'none', 'empty']
258
+ '%': readonly ['punct', 'prefix', 0, 'none', 'external-name', 'external']
259
+ }
260
+
261
+ export interface CompactInfixParselets {
262
+ implies: readonly ['keyword', 'infix', 1, 'left', 'expression', 'binary']
263
+ or: readonly ['keyword', 'infix', 2, 'left', 'expression', 'binary']
264
+ xor: readonly ['keyword', 'infix', 2, 'left', 'expression', 'binary']
265
+ and: readonly ['keyword', 'infix', 3, 'left', 'expression', 'binary']
266
+ in: readonly ['keyword', 'infix', 4, 'left', 'expression', 'binary']
267
+ contains: readonly ['keyword', 'infix', 4, 'left', 'expression', 'binary']
268
+ '=': readonly ['operator', 'infix', 5, 'left', 'expression', 'binary']
269
+ '~': readonly ['operator', 'infix', 5, 'left', 'expression', 'binary']
270
+ '!=': readonly ['operator', 'infix', 5, 'left', 'expression', 'binary']
271
+ '!~': readonly ['operator', 'infix', 5, 'left', 'expression', 'binary']
272
+ '<': readonly ['operator', 'infix', 6, 'left', 'expression', 'binary']
273
+ '>': readonly ['operator', 'infix', 6, 'left', 'expression', 'binary']
274
+ '<=': readonly ['operator', 'infix', 6, 'left', 'expression', 'binary']
275
+ '>=': readonly ['operator', 'infix', 6, 'left', 'expression', 'binary']
276
+ '|': readonly ['operator', 'infix', 7, 'left', 'expression', 'binary']
277
+ is: readonly ['keyword', 'infix', 8, 'left', 'type-name', 'type']
278
+ as: readonly ['keyword', 'infix', 8, 'left', 'type-name', 'type']
279
+ '+': readonly ['operator', 'infix', 9, 'left', 'expression', 'binary']
280
+ '-': readonly ['operator', 'infix', 9, 'left', 'expression', 'binary']
281
+ '&': readonly ['operator', 'infix', 9, 'left', 'expression', 'binary']
282
+ '*': readonly ['operator', 'infix', 10, 'left', 'expression', 'binary']
283
+ '/': readonly ['operator', 'infix', 10, 'left', 'expression', 'binary']
284
+ div: readonly ['keyword', 'infix', 10, 'left', 'expression', 'binary']
285
+ mod: readonly ['keyword', 'infix', 10, 'left', 'expression', 'binary']
286
+ '[': readonly ['punct', 'postfix', 12, 'left', 'index', 'indexer']
287
+ '.': readonly ['punct', 'infix', 13, 'left', 'path', 'dot']
288
+ '(': readonly ['punct', 'postfix', 14, 'left', 'arguments', 'call']
289
+ }
290
+
291
+ export type CompactCalendarUnit =
292
+ | 'day'
293
+ | 'days'
294
+ | 'hour'
295
+ | 'hours'
296
+ | 'millisecond'
297
+ | 'milliseconds'
298
+ | 'minute'
299
+ | 'minutes'
300
+ | 'month'
301
+ | 'months'
302
+ | 'second'
303
+ | 'seconds'
304
+ | 'week'
305
+ | 'weeks'
306
+ | 'year'
307
+ | 'years'