@contractkit/plugin-typescript 0.20.0 → 0.21.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.
- package/.turbo/turbo-build$colon$ci.log +6 -6
- package/.turbo/turbo-test$colon$ci.log +15 -15
- package/CHANGELOG.md +12 -0
- package/coverage/clover.xml +418 -384
- package/coverage/coverage-final.json +3 -3
- package/coverage/index.html +19 -19
- package/coverage/src/codegen-contract.ts.html +1 -1
- package/coverage/src/codegen-operation.ts.html +1 -1
- package/coverage/src/codegen-plain-types.ts.html +1 -1
- package/coverage/src/codegen-sdk.ts.html +291 -180
- package/coverage/src/index.html +38 -38
- package/coverage/src/index.ts.html +249 -78
- package/coverage/src/path-utils.ts.html +109 -13
- package/coverage/src/ts-render.ts.html +1 -1
- package/coverage/tests/helpers.ts.html +1 -1
- package/coverage/tests/index.html +1 -1
- package/dist/codegen-sdk.d.ts +40 -15
- package/dist/codegen-sdk.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +175 -94
- package/dist/index.js.map +1 -1
- package/dist/path-utils.d.ts +11 -0
- package/dist/path-utils.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/codegen-sdk.ts +133 -96
- package/src/index.ts +97 -40
- package/src/path-utils.ts +32 -0
- package/tests/codegen-sdk.test.ts +73 -78
- package/tests/codegen-server.test.ts +28 -16
package/coverage/src/index.html
CHANGED
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">79.
|
|
26
|
+
<span class="strong">79.75% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>1981/2484</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">74.78% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>1198/1602</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">83.
|
|
40
|
+
<span class="strong">83.1% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>310/373</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">82.
|
|
47
|
+
<span class="strong">82.32% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>1733/2105</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -125,47 +125,47 @@
|
|
|
125
125
|
|
|
126
126
|
<tr>
|
|
127
127
|
<td class="file high" data-value="codegen-sdk.ts"><a href="codegen-sdk.ts.html">codegen-sdk.ts</a></td>
|
|
128
|
-
<td data-value="88.
|
|
128
|
+
<td data-value="88.07" class="pic high">
|
|
129
129
|
<div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
|
|
130
130
|
</td>
|
|
131
|
-
<td data-value="88.
|
|
132
|
-
<td data-value="
|
|
133
|
-
<td data-value="
|
|
134
|
-
<td data-value="
|
|
135
|
-
<td data-value="87.
|
|
136
|
-
<td data-value="
|
|
137
|
-
<td data-value="91.
|
|
138
|
-
<td data-value="
|
|
131
|
+
<td data-value="88.07" class="pct high">88.07%</td>
|
|
132
|
+
<td data-value="629" class="abs high">554/629</td>
|
|
133
|
+
<td data-value="82.56" class="pct high">82.56%</td>
|
|
134
|
+
<td data-value="367" class="abs high">303/367</td>
|
|
135
|
+
<td data-value="87.32" class="pct high">87.32%</td>
|
|
136
|
+
<td data-value="71" class="abs high">62/71</td>
|
|
137
|
+
<td data-value="91.3" class="pct high">91.3%</td>
|
|
138
|
+
<td data-value="552" class="abs high">504/552</td>
|
|
139
139
|
</tr>
|
|
140
140
|
|
|
141
141
|
<tr>
|
|
142
142
|
<td class="file medium" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
|
|
143
|
-
<td data-value="
|
|
144
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
143
|
+
<td data-value="60.23" class="pic medium">
|
|
144
|
+
<div class="chart"><div class="cover-fill" style="width: 60%"></div><div class="cover-empty" style="width: 40%"></div></div>
|
|
145
145
|
</td>
|
|
146
|
-
<td data-value="
|
|
147
|
-
<td data-value="
|
|
148
|
-
<td data-value="47.
|
|
149
|
-
<td data-value="144" class="abs low">
|
|
150
|
-
<td data-value="63.
|
|
151
|
-
<td data-value="
|
|
152
|
-
<td data-value="
|
|
153
|
-
<td data-value="
|
|
146
|
+
<td data-value="60.23" class="pct medium">60.23%</td>
|
|
147
|
+
<td data-value="337" class="abs medium">203/337</td>
|
|
148
|
+
<td data-value="47.91" class="pct low">47.91%</td>
|
|
149
|
+
<td data-value="144" class="abs low">69/144</td>
|
|
150
|
+
<td data-value="63.04" class="pct medium">63.04%</td>
|
|
151
|
+
<td data-value="46" class="abs medium">29/46</td>
|
|
152
|
+
<td data-value="65.37" class="pct medium">65.37%</td>
|
|
153
|
+
<td data-value="283" class="abs medium">185/283</td>
|
|
154
154
|
</tr>
|
|
155
155
|
|
|
156
156
|
<tr>
|
|
157
157
|
<td class="file low" data-value="path-utils.ts"><a href="path-utils.ts.html">path-utils.ts</a></td>
|
|
158
|
-
<td data-value="
|
|
159
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
158
|
+
<td data-value="41.04" class="pic low">
|
|
159
|
+
<div class="chart"><div class="cover-fill" style="width: 41%"></div><div class="cover-empty" style="width: 59%"></div></div>
|
|
160
160
|
</td>
|
|
161
|
-
<td data-value="
|
|
162
|
-
<td data-value="
|
|
163
|
-
<td data-value="
|
|
164
|
-
<td data-value="
|
|
165
|
-
<td data-value="
|
|
166
|
-
<td data-value="
|
|
167
|
-
<td data-value="
|
|
168
|
-
<td data-value="
|
|
161
|
+
<td data-value="41.04" class="pct low">41.04%</td>
|
|
162
|
+
<td data-value="134" class="abs low">55/134</td>
|
|
163
|
+
<td data-value="31.32" class="pct low">31.32%</td>
|
|
164
|
+
<td data-value="83" class="abs low">26/83</td>
|
|
165
|
+
<td data-value="78.57" class="pct medium">78.57%</td>
|
|
166
|
+
<td data-value="14" class="abs medium">11/14</td>
|
|
167
|
+
<td data-value="42.47" class="pct low">42.47%</td>
|
|
168
|
+
<td data-value="113" class="abs low">48/113</td>
|
|
169
169
|
</tr>
|
|
170
170
|
|
|
171
171
|
<tr>
|
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
192
192
|
Code coverage generated by
|
|
193
193
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
194
|
-
at 2026-05-07T11:
|
|
194
|
+
at 2026-05-07T11:53:53.335Z
|
|
195
195
|
</div>
|
|
196
196
|
<script src="../prettify.js"></script>
|
|
197
197
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">60.23% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>203/337</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">47.
|
|
33
|
+
<span class="strong">47.91% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>69/144</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">63.
|
|
40
|
+
<span class="strong">63.04% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>29/46</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">65.37% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>185/283</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -861,7 +861,68 @@
|
|
|
861
861
|
<a name='L796'></a><a href='#L796'>796</a>
|
|
862
862
|
<a name='L797'></a><a href='#L797'>797</a>
|
|
863
863
|
<a name='L798'></a><a href='#L798'>798</a>
|
|
864
|
-
<a name='L799'></a><a href='#L799'>799</a
|
|
864
|
+
<a name='L799'></a><a href='#L799'>799</a>
|
|
865
|
+
<a name='L800'></a><a href='#L800'>800</a>
|
|
866
|
+
<a name='L801'></a><a href='#L801'>801</a>
|
|
867
|
+
<a name='L802'></a><a href='#L802'>802</a>
|
|
868
|
+
<a name='L803'></a><a href='#L803'>803</a>
|
|
869
|
+
<a name='L804'></a><a href='#L804'>804</a>
|
|
870
|
+
<a name='L805'></a><a href='#L805'>805</a>
|
|
871
|
+
<a name='L806'></a><a href='#L806'>806</a>
|
|
872
|
+
<a name='L807'></a><a href='#L807'>807</a>
|
|
873
|
+
<a name='L808'></a><a href='#L808'>808</a>
|
|
874
|
+
<a name='L809'></a><a href='#L809'>809</a>
|
|
875
|
+
<a name='L810'></a><a href='#L810'>810</a>
|
|
876
|
+
<a name='L811'></a><a href='#L811'>811</a>
|
|
877
|
+
<a name='L812'></a><a href='#L812'>812</a>
|
|
878
|
+
<a name='L813'></a><a href='#L813'>813</a>
|
|
879
|
+
<a name='L814'></a><a href='#L814'>814</a>
|
|
880
|
+
<a name='L815'></a><a href='#L815'>815</a>
|
|
881
|
+
<a name='L816'></a><a href='#L816'>816</a>
|
|
882
|
+
<a name='L817'></a><a href='#L817'>817</a>
|
|
883
|
+
<a name='L818'></a><a href='#L818'>818</a>
|
|
884
|
+
<a name='L819'></a><a href='#L819'>819</a>
|
|
885
|
+
<a name='L820'></a><a href='#L820'>820</a>
|
|
886
|
+
<a name='L821'></a><a href='#L821'>821</a>
|
|
887
|
+
<a name='L822'></a><a href='#L822'>822</a>
|
|
888
|
+
<a name='L823'></a><a href='#L823'>823</a>
|
|
889
|
+
<a name='L824'></a><a href='#L824'>824</a>
|
|
890
|
+
<a name='L825'></a><a href='#L825'>825</a>
|
|
891
|
+
<a name='L826'></a><a href='#L826'>826</a>
|
|
892
|
+
<a name='L827'></a><a href='#L827'>827</a>
|
|
893
|
+
<a name='L828'></a><a href='#L828'>828</a>
|
|
894
|
+
<a name='L829'></a><a href='#L829'>829</a>
|
|
895
|
+
<a name='L830'></a><a href='#L830'>830</a>
|
|
896
|
+
<a name='L831'></a><a href='#L831'>831</a>
|
|
897
|
+
<a name='L832'></a><a href='#L832'>832</a>
|
|
898
|
+
<a name='L833'></a><a href='#L833'>833</a>
|
|
899
|
+
<a name='L834'></a><a href='#L834'>834</a>
|
|
900
|
+
<a name='L835'></a><a href='#L835'>835</a>
|
|
901
|
+
<a name='L836'></a><a href='#L836'>836</a>
|
|
902
|
+
<a name='L837'></a><a href='#L837'>837</a>
|
|
903
|
+
<a name='L838'></a><a href='#L838'>838</a>
|
|
904
|
+
<a name='L839'></a><a href='#L839'>839</a>
|
|
905
|
+
<a name='L840'></a><a href='#L840'>840</a>
|
|
906
|
+
<a name='L841'></a><a href='#L841'>841</a>
|
|
907
|
+
<a name='L842'></a><a href='#L842'>842</a>
|
|
908
|
+
<a name='L843'></a><a href='#L843'>843</a>
|
|
909
|
+
<a name='L844'></a><a href='#L844'>844</a>
|
|
910
|
+
<a name='L845'></a><a href='#L845'>845</a>
|
|
911
|
+
<a name='L846'></a><a href='#L846'>846</a>
|
|
912
|
+
<a name='L847'></a><a href='#L847'>847</a>
|
|
913
|
+
<a name='L848'></a><a href='#L848'>848</a>
|
|
914
|
+
<a name='L849'></a><a href='#L849'>849</a>
|
|
915
|
+
<a name='L850'></a><a href='#L850'>850</a>
|
|
916
|
+
<a name='L851'></a><a href='#L851'>851</a>
|
|
917
|
+
<a name='L852'></a><a href='#L852'>852</a>
|
|
918
|
+
<a name='L853'></a><a href='#L853'>853</a>
|
|
919
|
+
<a name='L854'></a><a href='#L854'>854</a>
|
|
920
|
+
<a name='L855'></a><a href='#L855'>855</a>
|
|
921
|
+
<a name='L856'></a><a href='#L856'>856</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
922
|
+
<span class="cline-any cline-neutral"> </span>
|
|
923
|
+
<span class="cline-any cline-neutral"> </span>
|
|
924
|
+
<span class="cline-any cline-neutral"> </span>
|
|
925
|
+
<span class="cline-any cline-neutral"> </span>
|
|
865
926
|
<span class="cline-any cline-neutral"> </span>
|
|
866
927
|
<span class="cline-any cline-neutral"> </span>
|
|
867
928
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1025,7 +1086,7 @@
|
|
|
1025
1086
|
<span class="cline-any cline-yes">18x</span>
|
|
1026
1087
|
<span class="cline-any cline-neutral"> </span>
|
|
1027
1088
|
<span class="cline-any cline-yes">18x</span>
|
|
1028
|
-
<span class="cline-any cline-yes">
|
|
1089
|
+
<span class="cline-any cline-yes">34x</span>
|
|
1029
1090
|
<span class="cline-any cline-neutral"> </span>
|
|
1030
1091
|
<span class="cline-any cline-neutral"> </span>
|
|
1031
1092
|
<span class="cline-any cline-yes">18x</span>
|
|
@@ -1057,24 +1118,24 @@
|
|
|
1057
1118
|
<span class="cline-any cline-neutral"> </span>
|
|
1058
1119
|
<span class="cline-any cline-neutral"> </span>
|
|
1059
1120
|
<span class="cline-any cline-neutral"> </span>
|
|
1060
|
-
<span class="cline-any cline-yes">
|
|
1061
|
-
<span class="cline-any cline-yes">
|
|
1062
|
-
<span class="cline-any cline-yes">
|
|
1063
|
-
<span class="cline-any cline-yes">
|
|
1064
|
-
<span class="cline-any cline-yes">
|
|
1065
|
-
<span class="cline-any cline-yes">
|
|
1066
|
-
<span class="cline-any cline-yes">
|
|
1121
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1122
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1123
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1124
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1125
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1126
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1127
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1067
1128
|
<span class="cline-any cline-yes">1x</span>
|
|
1068
1129
|
<span class="cline-any cline-neutral"> </span>
|
|
1069
|
-
<span class="cline-any cline-yes">
|
|
1070
|
-
<span class="cline-any cline-yes">
|
|
1071
|
-
<span class="cline-any cline-yes">
|
|
1130
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1131
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1132
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1072
1133
|
<span class="cline-any cline-no"> </span>
|
|
1073
1134
|
<span class="cline-any cline-neutral"> </span>
|
|
1074
1135
|
<span class="cline-any cline-neutral"> </span>
|
|
1075
1136
|
<span class="cline-any cline-neutral"> </span>
|
|
1076
1137
|
<span class="cline-any cline-neutral"> </span>
|
|
1077
|
-
<span class="cline-any cline-yes">
|
|
1138
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1078
1139
|
<span class="cline-any cline-neutral"> </span>
|
|
1079
1140
|
<span class="cline-any cline-neutral"> </span>
|
|
1080
1141
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1091,8 +1152,8 @@
|
|
|
1091
1152
|
<span class="cline-any cline-neutral"> </span>
|
|
1092
1153
|
<span class="cline-any cline-neutral"> </span>
|
|
1093
1154
|
<span class="cline-any cline-neutral"> </span>
|
|
1094
|
-
<span class="cline-any cline-yes">
|
|
1095
|
-
<span class="cline-any cline-yes">
|
|
1155
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1156
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1096
1157
|
<span class="cline-any cline-yes">2x</span>
|
|
1097
1158
|
<span class="cline-any cline-yes">2x</span>
|
|
1098
1159
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -1104,16 +1165,16 @@
|
|
|
1104
1165
|
<span class="cline-any cline-no"> </span>
|
|
1105
1166
|
<span class="cline-any cline-neutral"> </span>
|
|
1106
1167
|
<span class="cline-any cline-neutral"> </span>
|
|
1107
|
-
<span class="cline-any cline-yes">
|
|
1168
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1108
1169
|
<span class="cline-any cline-neutral"> </span>
|
|
1109
1170
|
<span class="cline-any cline-neutral"> </span>
|
|
1110
1171
|
<span class="cline-any cline-neutral"> </span>
|
|
1111
1172
|
<span class="cline-any cline-neutral"> </span>
|
|
1112
|
-
<span class="cline-any cline-yes">
|
|
1113
|
-
<span class="cline-any cline-yes">
|
|
1173
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1174
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1114
1175
|
<span class="cline-any cline-no"> </span>
|
|
1115
1176
|
<span class="cline-any cline-neutral"> </span>
|
|
1116
|
-
<span class="cline-any cline-yes">
|
|
1177
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1117
1178
|
<span class="cline-any cline-neutral"> </span>
|
|
1118
1179
|
<span class="cline-any cline-neutral"> </span>
|
|
1119
1180
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1422,6 +1483,7 @@
|
|
|
1422
1483
|
<span class="cline-any cline-yes">4x</span>
|
|
1423
1484
|
<span class="cline-any cline-yes">4x</span>
|
|
1424
1485
|
<span class="cline-any cline-yes">4x</span>
|
|
1486
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1425
1487
|
<span class="cline-any cline-neutral"> </span>
|
|
1426
1488
|
<span class="cline-any cline-neutral"> </span>
|
|
1427
1489
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1429,24 +1491,31 @@
|
|
|
1429
1491
|
<span class="cline-any cline-neutral"> </span>
|
|
1430
1492
|
<span class="cline-any cline-neutral"> </span>
|
|
1431
1493
|
<span class="cline-any cline-yes">4x</span>
|
|
1432
|
-
<span class="cline-any cline-yes">
|
|
1433
|
-
<span class="cline-any cline-yes">
|
|
1434
|
-
<span class="cline-any cline-yes">
|
|
1494
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1495
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1496
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1435
1497
|
<span class="cline-any cline-neutral"> </span>
|
|
1436
1498
|
<span class="cline-any cline-neutral"> </span>
|
|
1437
1499
|
<span class="cline-any cline-yes">4x</span>
|
|
1500
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1501
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1438
1502
|
<span class="cline-any cline-neutral"> </span>
|
|
1439
1503
|
<span class="cline-any cline-neutral"> </span>
|
|
1440
1504
|
<span class="cline-any cline-neutral"> </span>
|
|
1441
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1442
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1443
1505
|
<span class="cline-any cline-neutral"> </span>
|
|
1444
1506
|
<span class="cline-any cline-neutral"> </span>
|
|
1445
1507
|
<span class="cline-any cline-neutral"> </span>
|
|
1446
1508
|
<span class="cline-any cline-yes">4x</span>
|
|
1447
|
-
<span class="cline-any cline-
|
|
1509
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1510
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1511
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1512
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1513
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1514
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1448
1515
|
<span class="cline-any cline-yes">3x</span>
|
|
1449
1516
|
<span class="cline-any cline-neutral"> </span>
|
|
1517
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1518
|
+
<span class="cline-any cline-no"> </span>
|
|
1450
1519
|
<span class="cline-any cline-yes">2x</span>
|
|
1451
1520
|
<span class="cline-any cline-neutral"> </span>
|
|
1452
1521
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1460,15 +1529,60 @@
|
|
|
1460
1529
|
<span class="cline-any cline-neutral"> </span>
|
|
1461
1530
|
<span class="cline-any cline-neutral"> </span>
|
|
1462
1531
|
<span class="cline-any cline-neutral"> </span>
|
|
1463
|
-
<span class="cline-any cline-
|
|
1532
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1533
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1534
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1464
1535
|
<span class="cline-any cline-yes">2x</span>
|
|
1465
1536
|
<span class="cline-any cline-neutral"> </span>
|
|
1537
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1538
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1539
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1540
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1541
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1542
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1543
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1544
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1545
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1546
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1547
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1548
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1549
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1550
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1551
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1552
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1553
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1554
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1555
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1556
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1557
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1558
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1559
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1560
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1561
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1562
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1563
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1564
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1565
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1566
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1567
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1568
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1569
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1570
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1571
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1572
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1573
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1574
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1575
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1466
1576
|
<span class="cline-any cline-neutral"> </span>
|
|
1467
1577
|
<span class="cline-any cline-neutral"> </span>
|
|
1468
1578
|
<span class="cline-any cline-neutral"> </span>
|
|
1469
1579
|
<span class="cline-any cline-neutral"> </span>
|
|
1470
1580
|
<span class="cline-any cline-neutral"> </span>
|
|
1471
1581
|
<span class="cline-any cline-neutral"> </span>
|
|
1582
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1583
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1584
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1585
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1472
1586
|
<span class="cline-any cline-neutral"> </span>
|
|
1473
1587
|
<span class="cline-any cline-neutral"> </span>
|
|
1474
1588
|
<span class="cline-any cline-yes">4x</span>
|
|
@@ -1484,9 +1598,9 @@
|
|
|
1484
1598
|
<span class="cline-any cline-yes">4x</span>
|
|
1485
1599
|
<span class="cline-any cline-yes">4x</span>
|
|
1486
1600
|
<span class="cline-any cline-yes">4x</span>
|
|
1487
|
-
<span class="cline-any cline-yes">
|
|
1488
|
-
<span class="cline-any cline-yes">
|
|
1489
|
-
<span class="cline-any cline-yes">
|
|
1601
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1602
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1603
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1490
1604
|
<span class="cline-any cline-neutral"> </span>
|
|
1491
1605
|
<span class="cline-any cline-yes">4x</span>
|
|
1492
1606
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1686,8 +1800,11 @@ import {
|
|
|
1686
1800
|
generateSdk,
|
|
1687
1801
|
generateSdkOptions,
|
|
1688
1802
|
generateSdkAggregator,
|
|
1803
|
+
generateAreaClient,
|
|
1689
1804
|
deriveClientClassName,
|
|
1690
1805
|
deriveClientPropertyName,
|
|
1806
|
+
deriveAreaClientClassName,
|
|
1807
|
+
deriveAreaPropertyName,
|
|
1691
1808
|
deriveSubareaClientClassName,
|
|
1692
1809
|
deriveSubareaPropertyName,
|
|
1693
1810
|
getAreaSubarea,
|
|
@@ -1703,6 +1820,7 @@ import {
|
|
|
1703
1820
|
computeOpOutPath,
|
|
1704
1821
|
computeContractOutPath,
|
|
1705
1822
|
computeSdkOutPath,
|
|
1823
|
+
computeSdkAreaClientOutPath,
|
|
1706
1824
|
computeSdkTypeOutPath,
|
|
1707
1825
|
generateBarrelFiles,
|
|
1708
1826
|
computePubliclyReachableTypes,
|
|
@@ -2209,12 +2327,13 @@ function collectSdkOutput(
|
|
|
2209
2327
|
}
|
|
2210
2328
|
|
|
2211
2329
|
// ── Global files: sdk-options, aggregator, barrels, root index ──
|
|
2212
|
-
//
|
|
2213
|
-
//
|
|
2214
|
-
//
|
|
2330
|
+
// sdk-options.ts is a constant; the aggregator is small (just imports + a wrapper class)
|
|
2331
|
+
// and depends on the cross-cutting client list, so it's cheap to regenerate every run.
|
|
2332
|
+
// Per-area `<area>.client.ts` files are cached as their own units below.
|
|
2215
2333
|
globalFiles.push({ relativePath: sdkOptionsPath, content: generateSdkOptions() });
|
|
2216
2334
|
|
|
2217
2335
|
const hasAnything = sdkClientInfos.length > 0 || areaBuckets.size > 0;
|
|
2336
|
+
const areaClientOutPaths = new Map<string, string>(); // area → absolute outPath of <area>.client.ts
|
|
2218
2337
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (hasAnything) {
|
|
2219
2338
|
const sdkEntryDir = dirname(sdkEntryPath);
|
|
2220
2339
|
const sdkOptionsRel = relative(sdkEntryDir, sdkOptionsPath).replace(/\.ts$/, '.js');
|
|
@@ -2226,52 +2345,104 @@ function collectSdkOutput(
|
|
|
2226
2345
|
.join('') + 'Sdk'
|
|
2227
2346
|
: 'Sdk';
|
|
2228
2347
|
|
|
2229
|
-
const toClientImport = (info: { outPath: string; className: string; propertyName: string }): SdkClientInfo => {
|
|
2230
|
-
let rel = relative(
|
|
2348
|
+
const toClientImport = (sourceDir: string, info: { outPath: string; className: string; propertyName: string }): SdkClientInfo => {
|
|
2349
|
+
let rel = relative(sourceDir, info.outPath).replace(/\.ts$/, '.js');
|
|
2231
2350
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (!rel.startsWith('.')) rel = './' + rel;
|
|
2232
2351
|
return { className: info.className, propertyName: info.propertyName, importPath: rel };
|
|
2233
2352
|
};
|
|
2234
2353
|
|
|
2235
|
-
const topLevelClients: SdkClientInfo[] = topLevelEntries.map(e =>
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
&
|
|
2244
|
-
const
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
subareaClients: bucket.leaves
|
|
2261
|
-
.sort(<span class="fstat-no" title="function not covered" >(a</span>, b) => <span class="cstat-no" title="statement not covered" >a.subarea.localeCompare(b.subarea))</span>
|
|
2262
|
-
.map(l => ({
|
|
2354
|
+
const topLevelClients: SdkClientInfo[] = topLevelEntries.map(e =>
|
|
2355
|
+
toClientImport(sdkEntryDir, {
|
|
2356
|
+
outPath: e.outPath,
|
|
2357
|
+
className: deriveClientClassName(e.ast.file),
|
|
2358
|
+
propertyName: deriveClientPropertyName(e.ast.file),
|
|
2359
|
+
}),
|
|
2360
|
+
);
|
|
2361
|
+
|
|
2362
|
+
// ── Per-area `<area>.client.ts` units ──
|
|
2363
|
+
const areaInfos: SdkAreaInfo[] = [];
|
|
2364
|
+
const sortedAreas = [...areaBuckets.entries()].sort(<span class="fstat-no" title="function not covered" >([</span>a], [b]) => <span class="cstat-no" title="statement not covered" >a.localeCompare(b));</span>
|
|
2365
|
+
for (const [area, bucket] of sortedAreas) {
|
|
2366
|
+
const areaClientOutPath = computeSdkAreaClientOutPath(area, sdkBase, config.output!.clients);
|
|
2367
|
+
areaClientOutPaths.set(area, areaClientOutPath);
|
|
2368
|
+
const areaClassName = deriveAreaClientClassName(area);
|
|
2369
|
+
const areaPropertyName = deriveAreaPropertyName(area);
|
|
2370
|
+
sdkClientInfos.push({ outPath: areaClientOutPath, className: areaClassName, propertyName: areaPropertyName });
|
|
2371
|
+
|
|
2372
|
+
const subareaClients = bucket.leaves
|
|
2373
|
+
.sort(<span class="fstat-no" title="function not covered" >(a</span>, b) => <span class="cstat-no" title="statement not covered" >a.subarea.localeCompare(b.subarea))</span>
|
|
2374
|
+
.map(l => ({
|
|
2375
|
+
propertyName: deriveSubareaPropertyName(l.subarea),
|
|
2376
|
+
client: toClientImport(dirname(areaClientOutPath), {
|
|
2377
|
+
outPath: l.outPath,
|
|
2378
|
+
className: deriveSubareaClientClassName(area, l.subarea),
|
|
2263
2379
|
propertyName: deriveSubareaPropertyName(l.subarea),
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2380
|
+
}),
|
|
2381
|
+
}));
|
|
2382
|
+
|
|
2383
|
+
// Fingerprint covers every input the area client depends on:
|
|
2384
|
+
// - all inline roots (full AST)
|
|
2385
|
+
// - subarea client metadata (className / propertyName / import path)
|
|
2386
|
+
// - the modelOutPaths slice for refs across all inline roots
|
|
2387
|
+
// - modelsWithInput/Output slices
|
|
2388
|
+
const allInlineRefs = new Set<string>();
|
|
2389
|
+
for (const r of bucket.inlineRoots) {
|
|
2390
|
+
for (const ref of collectOpRootRefs(r, modelMap)) <span class="cstat-no" title="statement not covered" >allInlineRefs.add(ref);</span>
|
|
2391
|
+
}
|
|
2392
|
+
const fingerprint = hashFingerprint({
|
|
2393
|
+
kind: 'sdk-area-client',
|
|
2394
|
+
v: TYPESCRIPT_CODEGEN_VERSION,
|
|
2395
|
+
outPath: areaClientOutPath,
|
|
2396
|
+
area,
|
|
2397
|
+
inlineRoots: bucket.inlineRoots,
|
|
2398
|
+
subareaClients,
|
|
2399
|
+
outPathSlice: sliceOutPathMap(allInlineRefs, sdkModelOutPaths, modelsWithInput, modelsWithOutput),
|
|
2400
|
+
modelsWithInput: sliceModelSet(allInlineRefs, new Set(), modelsWithInput),
|
|
2401
|
+
modelsWithOutput: sliceModelSet(allInlineRefs, new Set(), modelsWithOutput),
|
|
2402
|
+
sdkOptionsPath,
|
|
2403
|
+
includeInternal: config.includeInternal ?? false,
|
|
2404
|
+
sub: subConfigKey,
|
|
2405
|
+
});
|
|
2406
|
+
|
|
2407
|
+
const inlineFilesForGen = bucket.inlineRoots.map(root => ({
|
|
2408
|
+
root,
|
|
2409
|
+
codegenOptions: {
|
|
2410
|
+
typeImportPathTemplate: undefined,
|
|
2411
|
+
outPath: areaClientOutPath,
|
|
2412
|
+
modelOutPaths: sdkModelOutPaths,
|
|
2413
|
+
sdkOptionsPath,
|
|
2414
|
+
modelsWithInput,
|
|
2415
|
+
modelsWithOutput,
|
|
2416
|
+
includeInternal: config.includeInternal,
|
|
2417
|
+
},
|
|
2270
2418
|
}));
|
|
2419
|
+
|
|
2420
|
+
units.push({
|
|
2421
|
+
key: `sdk-area-client::${areaClientOutPath}`,
|
|
2422
|
+
fingerprint,
|
|
2423
|
+
render: () => [
|
|
2424
|
+
{
|
|
2425
|
+
relativePath: areaClientOutPath,
|
|
2426
|
+
content: generateAreaClient({
|
|
2427
|
+
area,
|
|
2428
|
+
outPath: areaClientOutPath,
|
|
2429
|
+
inlineFiles: inlineFilesForGen,
|
|
2430
|
+
subareaClients,
|
|
2431
|
+
sdkOptionsPath,
|
|
2432
|
+
}),
|
|
2433
|
+
},
|
|
2434
|
+
],
|
|
2435
|
+
});
|
|
2436
|
+
|
|
2437
|
+
areaInfos.push({
|
|
2438
|
+
area,
|
|
2439
|
+
client: toClientImport(sdkEntryDir, { outPath: areaClientOutPath, className: areaClassName, propertyName: areaPropertyName }),
|
|
2440
|
+
});
|
|
2441
|
+
}
|
|
2271
2442
|
|
|
2272
2443
|
globalFiles.push({
|
|
2273
2444
|
relativePath: sdkEntryPath,
|
|
2274
|
-
content: generateSdkAggregator({ topLevelClients, areas, sdkOptionsImportPath, sdkClassName }),
|
|
2445
|
+
content: generateSdkAggregator({ topLevelClients, areas: areaInfos, sdkOptionsImportPath, sdkClassName }),
|
|
2275
2446
|
});
|
|
2276
2447
|
}
|
|
2277
2448
|
|
|
@@ -2464,7 +2635,7 @@ function stableSubConfig(config: unknown): string {
|
|
|
2464
2635
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2465
2636
|
Code coverage generated by
|
|
2466
2637
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2467
|
-
at 2026-05-07T11:
|
|
2638
|
+
at 2026-05-07T11:53:53.335Z
|
|
2468
2639
|
</div>
|
|
2469
2640
|
<script src="../prettify.js"></script>
|
|
2470
2641
|
<script>
|