@contractkit/plugin-typescript 0.25.4 → 0.27.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 +5 -5
- package/.turbo/turbo-test$colon$ci.log +15 -15
- package/CHANGELOG.md +22 -0
- package/coverage/clover.xml +1192 -1175
- package/coverage/coverage-final.json +8 -8
- package/coverage/index.html +20 -20
- package/coverage/src/codegen-contract.ts.html +153 -153
- package/coverage/src/codegen-operation.ts.html +193 -184
- package/coverage/src/codegen-plain-types.ts.html +58 -58
- package/coverage/src/codegen-sdk.ts.html +445 -211
- package/coverage/src/index.html +47 -47
- package/coverage/src/index.ts.html +295 -184
- package/coverage/src/path-utils.ts.html +105 -105
- package/coverage/src/ts-render.ts.html +9 -9
- package/coverage/tests/helpers.ts.html +21 -21
- package/coverage/tests/index.html +1 -1
- package/dist/codegen-sdk.d.ts +22 -0
- package/dist/codegen-sdk.d.ts.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +91 -3
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/codegen-operation.ts +4 -1
- package/src/codegen-sdk.ts +78 -0
- package/src/index.ts +40 -3
- package/tests/codegen-operation.test.ts +11 -0
- package/tests/codegen-sdk.test.ts +48 -0
- package/tests/codegen-server.test.ts +107 -0
|
@@ -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">70.05% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>241/344</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">60.38% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>93/154</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">75% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>36/48</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">74.74% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>216/289</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -918,7 +918,56 @@
|
|
|
918
918
|
<a name='L853'></a><a href='#L853'>853</a>
|
|
919
919
|
<a name='L854'></a><a href='#L854'>854</a>
|
|
920
920
|
<a name='L855'></a><a href='#L855'>855</a>
|
|
921
|
-
<a name='L856'></a><a href='#L856'>856</a
|
|
921
|
+
<a name='L856'></a><a href='#L856'>856</a>
|
|
922
|
+
<a name='L857'></a><a href='#L857'>857</a>
|
|
923
|
+
<a name='L858'></a><a href='#L858'>858</a>
|
|
924
|
+
<a name='L859'></a><a href='#L859'>859</a>
|
|
925
|
+
<a name='L860'></a><a href='#L860'>860</a>
|
|
926
|
+
<a name='L861'></a><a href='#L861'>861</a>
|
|
927
|
+
<a name='L862'></a><a href='#L862'>862</a>
|
|
928
|
+
<a name='L863'></a><a href='#L863'>863</a>
|
|
929
|
+
<a name='L864'></a><a href='#L864'>864</a>
|
|
930
|
+
<a name='L865'></a><a href='#L865'>865</a>
|
|
931
|
+
<a name='L866'></a><a href='#L866'>866</a>
|
|
932
|
+
<a name='L867'></a><a href='#L867'>867</a>
|
|
933
|
+
<a name='L868'></a><a href='#L868'>868</a>
|
|
934
|
+
<a name='L869'></a><a href='#L869'>869</a>
|
|
935
|
+
<a name='L870'></a><a href='#L870'>870</a>
|
|
936
|
+
<a name='L871'></a><a href='#L871'>871</a>
|
|
937
|
+
<a name='L872'></a><a href='#L872'>872</a>
|
|
938
|
+
<a name='L873'></a><a href='#L873'>873</a>
|
|
939
|
+
<a name='L874'></a><a href='#L874'>874</a>
|
|
940
|
+
<a name='L875'></a><a href='#L875'>875</a>
|
|
941
|
+
<a name='L876'></a><a href='#L876'>876</a>
|
|
942
|
+
<a name='L877'></a><a href='#L877'>877</a>
|
|
943
|
+
<a name='L878'></a><a href='#L878'>878</a>
|
|
944
|
+
<a name='L879'></a><a href='#L879'>879</a>
|
|
945
|
+
<a name='L880'></a><a href='#L880'>880</a>
|
|
946
|
+
<a name='L881'></a><a href='#L881'>881</a>
|
|
947
|
+
<a name='L882'></a><a href='#L882'>882</a>
|
|
948
|
+
<a name='L883'></a><a href='#L883'>883</a>
|
|
949
|
+
<a name='L884'></a><a href='#L884'>884</a>
|
|
950
|
+
<a name='L885'></a><a href='#L885'>885</a>
|
|
951
|
+
<a name='L886'></a><a href='#L886'>886</a>
|
|
952
|
+
<a name='L887'></a><a href='#L887'>887</a>
|
|
953
|
+
<a name='L888'></a><a href='#L888'>888</a>
|
|
954
|
+
<a name='L889'></a><a href='#L889'>889</a>
|
|
955
|
+
<a name='L890'></a><a href='#L890'>890</a>
|
|
956
|
+
<a name='L891'></a><a href='#L891'>891</a>
|
|
957
|
+
<a name='L892'></a><a href='#L892'>892</a>
|
|
958
|
+
<a name='L893'></a><a href='#L893'>893</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
959
|
+
<span class="cline-any cline-neutral"> </span>
|
|
960
|
+
<span class="cline-any cline-neutral"> </span>
|
|
961
|
+
<span class="cline-any cline-neutral"> </span>
|
|
962
|
+
<span class="cline-any cline-neutral"> </span>
|
|
963
|
+
<span class="cline-any cline-neutral"> </span>
|
|
964
|
+
<span class="cline-any cline-neutral"> </span>
|
|
965
|
+
<span class="cline-any cline-neutral"> </span>
|
|
966
|
+
<span class="cline-any cline-neutral"> </span>
|
|
967
|
+
<span class="cline-any cline-neutral"> </span>
|
|
968
|
+
<span class="cline-any cline-neutral"> </span>
|
|
969
|
+
<span class="cline-any cline-neutral"> </span>
|
|
970
|
+
<span class="cline-any cline-neutral"> </span>
|
|
922
971
|
<span class="cline-any cline-neutral"> </span>
|
|
923
972
|
<span class="cline-any cline-neutral"> </span>
|
|
924
973
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1041,10 +1090,10 @@
|
|
|
1041
1090
|
<span class="cline-any cline-neutral"> </span>
|
|
1042
1091
|
<span class="cline-any cline-neutral"> </span>
|
|
1043
1092
|
<span class="cline-any cline-neutral"> </span>
|
|
1044
|
-
<span class="cline-any cline-yes">
|
|
1093
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1045
1094
|
<span class="cline-any cline-neutral"> </span>
|
|
1046
1095
|
<span class="cline-any cline-neutral"> </span>
|
|
1047
|
-
<span class="cline-any cline-yes">
|
|
1096
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1048
1097
|
<span class="cline-any cline-neutral"> </span>
|
|
1049
1098
|
<span class="cline-any cline-neutral"> </span>
|
|
1050
1099
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1063,18 +1112,18 @@
|
|
|
1063
1112
|
<span class="cline-any cline-neutral"> </span>
|
|
1064
1113
|
<span class="cline-any cline-neutral"> </span>
|
|
1065
1114
|
<span class="cline-any cline-neutral"> </span>
|
|
1066
|
-
<span class="cline-any cline-yes">
|
|
1067
|
-
<span class="cline-any cline-yes">
|
|
1115
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1116
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1068
1117
|
<span class="cline-any cline-neutral"> </span>
|
|
1069
|
-
<span class="cline-any cline-yes">
|
|
1070
|
-
<span class="cline-any cline-yes">
|
|
1118
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1119
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1071
1120
|
<span class="cline-any cline-neutral"> </span>
|
|
1072
|
-
<span class="cline-any cline-yes">
|
|
1073
|
-
<span class="cline-any cline-yes">
|
|
1074
|
-
<span class="cline-any cline-yes">
|
|
1075
|
-
<span class="cline-any cline-yes">
|
|
1121
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1122
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1123
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1124
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1076
1125
|
<span class="cline-any cline-neutral"> </span>
|
|
1077
|
-
<span class="cline-any cline-yes">
|
|
1126
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1078
1127
|
<span class="cline-any cline-neutral"> </span>
|
|
1079
1128
|
<span class="cline-any cline-neutral"> </span>
|
|
1080
1129
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1083,59 +1132,59 @@
|
|
|
1083
1132
|
<span class="cline-any cline-neutral"> </span>
|
|
1084
1133
|
<span class="cline-any cline-neutral"> </span>
|
|
1085
1134
|
<span class="cline-any cline-neutral"> </span>
|
|
1086
|
-
<span class="cline-any cline-yes">
|
|
1135
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1087
1136
|
<span class="cline-any cline-neutral"> </span>
|
|
1088
|
-
<span class="cline-any cline-yes">
|
|
1089
|
-
<span class="cline-any cline-yes">
|
|
1137
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1138
|
+
<span class="cline-any cline-yes">56x</span>
|
|
1090
1139
|
<span class="cline-any cline-neutral"> </span>
|
|
1091
1140
|
<span class="cline-any cline-neutral"> </span>
|
|
1092
|
-
<span class="cline-any cline-yes">
|
|
1141
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1093
1142
|
<span class="cline-any cline-neutral"> </span>
|
|
1094
1143
|
<span class="cline-any cline-neutral"> </span>
|
|
1095
1144
|
<span class="cline-any cline-neutral"> </span>
|
|
1096
1145
|
<span class="cline-any cline-neutral"> </span>
|
|
1097
1146
|
<span class="cline-any cline-neutral"> </span>
|
|
1098
1147
|
<span class="cline-any cline-neutral"> </span>
|
|
1099
|
-
<span class="cline-any cline-yes">
|
|
1100
|
-
<span class="cline-any cline-yes">
|
|
1101
|
-
<span class="cline-any cline-yes">
|
|
1148
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1149
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1150
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1102
1151
|
<span class="cline-any cline-neutral"> </span>
|
|
1103
|
-
<span class="cline-any cline-yes">
|
|
1152
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1104
1153
|
<span class="cline-any cline-neutral"> </span>
|
|
1105
1154
|
<span class="cline-any cline-neutral"> </span>
|
|
1106
1155
|
<span class="cline-any cline-neutral"> </span>
|
|
1107
1156
|
<span class="cline-any cline-neutral"> </span>
|
|
1108
|
-
<span class="cline-any cline-yes">
|
|
1109
|
-
<span class="cline-any cline-yes">
|
|
1110
|
-
<span class="cline-any cline-yes">
|
|
1111
|
-
<span class="cline-any cline-yes">
|
|
1112
|
-
<span class="cline-any cline-yes">
|
|
1157
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1158
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1159
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1160
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1161
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1113
1162
|
<span class="cline-any cline-no"> </span>
|
|
1114
1163
|
<span class="cline-any cline-neutral"> </span>
|
|
1115
1164
|
<span class="cline-any cline-neutral"> </span>
|
|
1116
|
-
<span class="cline-any cline-yes">
|
|
1165
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1117
1166
|
<span class="cline-any cline-neutral"> </span>
|
|
1118
1167
|
<span class="cline-any cline-neutral"> </span>
|
|
1119
1168
|
<span class="cline-any cline-neutral"> </span>
|
|
1120
1169
|
<span class="cline-any cline-neutral"> </span>
|
|
1121
|
-
<span class="cline-any cline-yes">
|
|
1122
|
-
<span class="cline-any cline-yes">
|
|
1123
|
-
<span class="cline-any cline-yes">
|
|
1124
|
-
<span class="cline-any cline-yes">
|
|
1125
|
-
<span class="cline-any cline-yes">
|
|
1126
|
-
<span class="cline-any cline-yes">
|
|
1127
|
-
<span class="cline-any cline-yes">
|
|
1170
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1171
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1172
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1173
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1174
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1175
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1176
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1128
1177
|
<span class="cline-any cline-yes">1x</span>
|
|
1129
1178
|
<span class="cline-any cline-neutral"> </span>
|
|
1130
|
-
<span class="cline-any cline-yes">
|
|
1131
|
-
<span class="cline-any cline-yes">
|
|
1132
|
-
<span class="cline-any cline-yes">
|
|
1179
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1180
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1181
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1133
1182
|
<span class="cline-any cline-no"> </span>
|
|
1134
1183
|
<span class="cline-any cline-neutral"> </span>
|
|
1135
1184
|
<span class="cline-any cline-neutral"> </span>
|
|
1136
1185
|
<span class="cline-any cline-neutral"> </span>
|
|
1137
1186
|
<span class="cline-any cline-neutral"> </span>
|
|
1138
|
-
<span class="cline-any cline-yes">
|
|
1187
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1139
1188
|
<span class="cline-any cline-neutral"> </span>
|
|
1140
1189
|
<span class="cline-any cline-neutral"> </span>
|
|
1141
1190
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1152,29 +1201,29 @@
|
|
|
1152
1201
|
<span class="cline-any cline-neutral"> </span>
|
|
1153
1202
|
<span class="cline-any cline-neutral"> </span>
|
|
1154
1203
|
<span class="cline-any cline-neutral"> </span>
|
|
1155
|
-
<span class="cline-any cline-yes">
|
|
1156
|
-
<span class="cline-any cline-yes">
|
|
1157
|
-
<span class="cline-any cline-yes">
|
|
1158
|
-
<span class="cline-any cline-yes">
|
|
1159
|
-
<span class="cline-any cline-yes">
|
|
1204
|
+
<span class="cline-any cline-yes">28x</span>
|
|
1205
|
+
<span class="cline-any cline-yes">28x</span>
|
|
1206
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1207
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1208
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1160
1209
|
<span class="cline-any cline-no"> </span>
|
|
1161
1210
|
<span class="cline-any cline-no"> </span>
|
|
1162
1211
|
<span class="cline-any cline-neutral"> </span>
|
|
1163
|
-
<span class="cline-any cline-yes">
|
|
1212
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1164
1213
|
<span class="cline-any cline-no"> </span>
|
|
1165
1214
|
<span class="cline-any cline-no"> </span>
|
|
1166
1215
|
<span class="cline-any cline-neutral"> </span>
|
|
1167
1216
|
<span class="cline-any cline-neutral"> </span>
|
|
1168
|
-
<span class="cline-any cline-yes">
|
|
1217
|
+
<span class="cline-any cline-yes">28x</span>
|
|
1169
1218
|
<span class="cline-any cline-neutral"> </span>
|
|
1170
1219
|
<span class="cline-any cline-neutral"> </span>
|
|
1171
1220
|
<span class="cline-any cline-neutral"> </span>
|
|
1172
1221
|
<span class="cline-any cline-neutral"> </span>
|
|
1173
|
-
<span class="cline-any cline-yes">
|
|
1174
|
-
<span class="cline-any cline-yes">
|
|
1222
|
+
<span class="cline-any cline-yes">56x</span>
|
|
1223
|
+
<span class="cline-any cline-yes">56x</span>
|
|
1175
1224
|
<span class="cline-any cline-no"> </span>
|
|
1176
1225
|
<span class="cline-any cline-neutral"> </span>
|
|
1177
|
-
<span class="cline-any cline-yes">
|
|
1226
|
+
<span class="cline-any cline-yes">56x</span>
|
|
1178
1227
|
<span class="cline-any cline-neutral"> </span>
|
|
1179
1228
|
<span class="cline-any cline-neutral"> </span>
|
|
1180
1229
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1286,48 +1335,48 @@
|
|
|
1286
1335
|
<span class="cline-any cline-neutral"> </span>
|
|
1287
1336
|
<span class="cline-any cline-neutral"> </span>
|
|
1288
1337
|
<span class="cline-any cline-neutral"> </span>
|
|
1289
|
-
<span class="cline-any cline-yes">
|
|
1290
|
-
<span class="cline-any cline-yes">
|
|
1291
|
-
<span class="cline-any cline-yes">
|
|
1292
|
-
<span class="cline-any cline-yes">
|
|
1338
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1339
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1340
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1341
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1293
1342
|
<span class="cline-any cline-neutral"> </span>
|
|
1294
1343
|
<span class="cline-any cline-neutral"> </span>
|
|
1295
|
-
<span class="cline-any cline-yes">
|
|
1296
|
-
<span class="cline-any cline-yes">
|
|
1344
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1345
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1297
1346
|
<span class="cline-any cline-neutral"> </span>
|
|
1298
|
-
<span class="cline-any cline-yes">
|
|
1299
|
-
<span class="cline-any cline-yes">
|
|
1300
|
-
<span class="cline-any cline-yes">
|
|
1301
|
-
<span class="cline-any cline-yes">
|
|
1302
|
-
<span class="cline-any cline-yes">
|
|
1347
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1348
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1349
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1350
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1351
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1303
1352
|
<span class="cline-any cline-neutral"> </span>
|
|
1304
|
-
<span class="cline-any cline-yes">
|
|
1305
|
-
<span class="cline-any cline-yes">
|
|
1306
|
-
<span class="cline-any cline-yes">
|
|
1353
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1354
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1355
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1307
1356
|
<span class="cline-any cline-neutral"> </span>
|
|
1308
1357
|
<span class="cline-any cline-neutral"> </span>
|
|
1309
|
-
<span class="cline-any cline-yes">
|
|
1310
|
-
<span class="cline-any cline-yes">
|
|
1311
|
-
<span class="cline-any cline-
|
|
1312
|
-
<span class="cline-any cline-
|
|
1313
|
-
<span class="cline-any cline-
|
|
1314
|
-
<span class="cline-any cline-
|
|
1315
|
-
<span class="cline-any cline-
|
|
1316
|
-
<span class="cline-any cline-
|
|
1317
|
-
<span class="cline-any cline-
|
|
1318
|
-
<span class="cline-any cline-
|
|
1319
|
-
<span class="cline-any cline-
|
|
1320
|
-
<span class="cline-any cline-
|
|
1321
|
-
<span class="cline-any cline-
|
|
1358
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1359
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1360
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1361
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1362
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1363
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1364
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1365
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1366
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1367
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1368
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1369
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1370
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1322
1371
|
<span class="cline-any cline-neutral"> </span>
|
|
1323
1372
|
<span class="cline-any cline-neutral"> </span>
|
|
1324
1373
|
<span class="cline-any cline-neutral"> </span>
|
|
1325
1374
|
<span class="cline-any cline-neutral"> </span>
|
|
1326
1375
|
<span class="cline-any cline-neutral"> </span>
|
|
1327
|
-
<span class="cline-any cline-yes">
|
|
1328
|
-
<span class="cline-any cline-
|
|
1329
|
-
<span class="cline-any cline-
|
|
1330
|
-
<span class="cline-any cline-
|
|
1376
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1377
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1378
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1379
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1331
1380
|
<span class="cline-any cline-neutral"> </span>
|
|
1332
1381
|
<span class="cline-any cline-neutral"> </span>
|
|
1333
1382
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1338,22 +1387,22 @@
|
|
|
1338
1387
|
<span class="cline-any cline-neutral"> </span>
|
|
1339
1388
|
<span class="cline-any cline-neutral"> </span>
|
|
1340
1389
|
<span class="cline-any cline-neutral"> </span>
|
|
1341
|
-
<span class="cline-any cline-
|
|
1390
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1342
1391
|
<span class="cline-any cline-neutral"> </span>
|
|
1343
1392
|
<span class="cline-any cline-neutral"> </span>
|
|
1344
1393
|
<span class="cline-any cline-neutral"> </span>
|
|
1345
1394
|
<span class="cline-any cline-neutral"> </span>
|
|
1346
|
-
<span class="cline-any cline-
|
|
1347
|
-
<span class="cline-any cline-
|
|
1395
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1396
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1348
1397
|
<span class="cline-any cline-neutral"> </span>
|
|
1349
1398
|
<span class="cline-any cline-neutral"> </span>
|
|
1350
1399
|
<span class="cline-any cline-neutral"> </span>
|
|
1351
1400
|
<span class="cline-any cline-neutral"> </span>
|
|
1352
1401
|
<span class="cline-any cline-neutral"> </span>
|
|
1353
1402
|
<span class="cline-any cline-neutral"> </span>
|
|
1354
|
-
<span class="cline-any cline-
|
|
1355
|
-
<span class="cline-any cline-
|
|
1356
|
-
<span class="cline-any cline-
|
|
1403
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1404
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1405
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1357
1406
|
<span class="cline-any cline-neutral"> </span>
|
|
1358
1407
|
<span class="cline-any cline-neutral"> </span>
|
|
1359
1408
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1361,7 +1410,7 @@
|
|
|
1361
1410
|
<span class="cline-any cline-neutral"> </span>
|
|
1362
1411
|
<span class="cline-any cline-neutral"> </span>
|
|
1363
1412
|
<span class="cline-any cline-neutral"> </span>
|
|
1364
|
-
<span class="cline-any cline-
|
|
1413
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1365
1414
|
<span class="cline-any cline-neutral"> </span>
|
|
1366
1415
|
<span class="cline-any cline-neutral"> </span>
|
|
1367
1416
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1371,29 +1420,29 @@
|
|
|
1371
1420
|
<span class="cline-any cline-neutral"> </span>
|
|
1372
1421
|
<span class="cline-any cline-neutral"> </span>
|
|
1373
1422
|
<span class="cline-any cline-neutral"> </span>
|
|
1374
|
-
<span class="cline-any cline-yes">
|
|
1375
|
-
<span class="cline-any cline-yes">
|
|
1423
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1424
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1376
1425
|
<span class="cline-any cline-neutral"> </span>
|
|
1377
|
-
<span class="cline-any cline-yes">
|
|
1378
|
-
<span class="cline-any cline-yes">
|
|
1379
|
-
<span class="cline-any cline-yes">
|
|
1380
|
-
<span class="cline-any cline-yes">
|
|
1381
|
-
<span class="cline-any cline-yes">
|
|
1382
|
-
<span class="cline-any cline-yes">
|
|
1426
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1427
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1428
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1429
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1430
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1431
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1383
1432
|
<span class="cline-any cline-yes">2x</span>
|
|
1384
1433
|
<span class="cline-any cline-yes">2x</span>
|
|
1385
1434
|
<span class="cline-any cline-yes">2x</span>
|
|
1386
|
-
<span class="cline-any cline-yes">
|
|
1435
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1387
1436
|
<span class="cline-any cline-yes">2x</span>
|
|
1388
1437
|
<span class="cline-any cline-yes">2x</span>
|
|
1389
1438
|
<span class="cline-any cline-yes">2x</span>
|
|
1390
1439
|
<span class="cline-any cline-neutral"> </span>
|
|
1391
|
-
<span class="cline-any cline-yes">
|
|
1440
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1392
1441
|
<span class="cline-any cline-neutral"> </span>
|
|
1393
1442
|
<span class="cline-any cline-neutral"> </span>
|
|
1394
1443
|
<span class="cline-any cline-neutral"> </span>
|
|
1395
1444
|
<span class="cline-any cline-neutral"> </span>
|
|
1396
|
-
<span class="cline-any cline-yes">
|
|
1445
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1397
1446
|
<span class="cline-any cline-yes">3x</span>
|
|
1398
1447
|
<span class="cline-any cline-yes">2x</span>
|
|
1399
1448
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -1434,11 +1483,11 @@
|
|
|
1434
1483
|
<span class="cline-any cline-neutral"> </span>
|
|
1435
1484
|
<span class="cline-any cline-neutral"> </span>
|
|
1436
1485
|
<span class="cline-any cline-neutral"> </span>
|
|
1486
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1487
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1488
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1489
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1437
1490
|
<span class="cline-any cline-yes">4x</span>
|
|
1438
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1439
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1440
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1441
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1442
1491
|
<span class="cline-any cline-neutral"> </span>
|
|
1443
1492
|
<span class="cline-any cline-neutral"> </span>
|
|
1444
1493
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1450,10 +1499,10 @@
|
|
|
1450
1499
|
<span class="cline-any cline-neutral"> </span>
|
|
1451
1500
|
<span class="cline-any cline-neutral"> </span>
|
|
1452
1501
|
<span class="cline-any cline-neutral"> </span>
|
|
1453
|
-
<span class="cline-any cline-yes">
|
|
1502
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1454
1503
|
<span class="cline-any cline-neutral"> </span>
|
|
1455
1504
|
<span class="cline-any cline-neutral"> </span>
|
|
1456
|
-
<span class="cline-any cline-yes">
|
|
1505
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1457
1506
|
<span class="cline-any cline-neutral"> </span>
|
|
1458
1507
|
<span class="cline-any cline-neutral"> </span>
|
|
1459
1508
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1475,29 +1524,29 @@
|
|
|
1475
1524
|
<span class="cline-any cline-neutral"> </span>
|
|
1476
1525
|
<span class="cline-any cline-neutral"> </span>
|
|
1477
1526
|
<span class="cline-any cline-neutral"> </span>
|
|
1478
|
-
<span class="cline-any cline-yes">
|
|
1527
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1479
1528
|
<span class="cline-any cline-neutral"> </span>
|
|
1480
|
-
<span class="cline-any cline-yes">
|
|
1481
|
-
<span class="cline-any cline-yes">
|
|
1482
|
-
<span class="cline-any cline-yes">
|
|
1483
|
-
<span class="cline-any cline-yes">
|
|
1484
|
-
<span class="cline-any cline-yes">
|
|
1485
|
-
<span class="cline-any cline-yes">
|
|
1486
|
-
<span class="cline-any cline-yes">
|
|
1529
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1530
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1531
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1532
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1533
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1534
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1535
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1487
1536
|
<span class="cline-any cline-neutral"> </span>
|
|
1488
1537
|
<span class="cline-any cline-neutral"> </span>
|
|
1489
|
-
<span class="cline-any cline-
|
|
1538
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1490
1539
|
<span class="cline-any cline-neutral"> </span>
|
|
1491
1540
|
<span class="cline-any cline-neutral"> </span>
|
|
1492
1541
|
<span class="cline-any cline-neutral"> </span>
|
|
1493
|
-
<span class="cline-any cline-yes">
|
|
1494
|
-
<span class="cline-any cline-yes">
|
|
1495
|
-
<span class="cline-any cline-yes">
|
|
1496
|
-
<span class="cline-any cline-yes">
|
|
1542
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1543
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1544
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1545
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1497
1546
|
<span class="cline-any cline-neutral"> </span>
|
|
1498
1547
|
<span class="cline-any cline-neutral"> </span>
|
|
1548
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1499
1549
|
<span class="cline-any cline-yes">4x</span>
|
|
1500
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1501
1550
|
<span class="cline-any cline-neutral"> </span>
|
|
1502
1551
|
<span class="cline-any cline-neutral"> </span>
|
|
1503
1552
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1505,9 +1554,9 @@
|
|
|
1505
1554
|
<span class="cline-any cline-neutral"> </span>
|
|
1506
1555
|
<span class="cline-any cline-neutral"> </span>
|
|
1507
1556
|
<span class="cline-any cline-neutral"> </span>
|
|
1508
|
-
<span class="cline-any cline-yes">
|
|
1509
|
-
<span class="cline-any cline-yes">
|
|
1510
|
-
<span class="cline-any cline-yes">
|
|
1557
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1558
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1559
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1511
1560
|
<span class="cline-any cline-yes">3x</span>
|
|
1512
1561
|
<span class="cline-any cline-yes">3x</span>
|
|
1513
1562
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -1585,29 +1634,54 @@
|
|
|
1585
1634
|
<span class="cline-any cline-neutral"> </span>
|
|
1586
1635
|
<span class="cline-any cline-neutral"> </span>
|
|
1587
1636
|
<span class="cline-any cline-neutral"> </span>
|
|
1588
|
-
<span class="cline-any cline-yes">
|
|
1637
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1589
1638
|
<span class="cline-any cline-neutral"> </span>
|
|
1590
1639
|
<span class="cline-any cline-neutral"> </span>
|
|
1591
1640
|
<span class="cline-any cline-neutral"> </span>
|
|
1592
1641
|
<span class="cline-any cline-neutral"> </span>
|
|
1593
1642
|
<span class="cline-any cline-neutral"> </span>
|
|
1594
|
-
<span class="cline-any cline-yes">
|
|
1595
|
-
<span class="cline-any cline-yes">
|
|
1596
|
-
<span class="cline-any cline-yes">
|
|
1643
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1644
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1645
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1597
1646
|
<span class="cline-any cline-neutral"> </span>
|
|
1598
|
-
<span class="cline-any cline-yes">
|
|
1599
|
-
<span class="cline-any cline-yes">
|
|
1600
|
-
<span class="cline-any cline-yes">
|
|
1601
|
-
<span class="cline-any cline-yes">
|
|
1602
|
-
<span class="cline-any cline-yes">
|
|
1603
|
-
<span class="cline-any cline-yes">
|
|
1647
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1648
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1649
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1650
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1651
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1652
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1653
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1654
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1655
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1656
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1657
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1658
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1659
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1660
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1661
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1662
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1663
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1664
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1665
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1666
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1667
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1668
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1669
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1670
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1671
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1672
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1673
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1674
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1675
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1676
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1677
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1678
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1679
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1680
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1681
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1682
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1604
1683
|
<span class="cline-any cline-neutral"> </span>
|
|
1605
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1606
|
-
<span class="cline-any cline-no"> </span>
|
|
1607
|
-
<span class="cline-any cline-no"> </span>
|
|
1608
|
-
<span class="cline-any cline-no"> </span>
|
|
1609
1684
|
<span class="cline-any cline-neutral"> </span>
|
|
1610
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1611
1685
|
<span class="cline-any cline-neutral"> </span>
|
|
1612
1686
|
<span class="cline-any cline-neutral"> </span>
|
|
1613
1687
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1724,7 +1798,7 @@
|
|
|
1724
1798
|
<span class="cline-any cline-neutral"> </span>
|
|
1725
1799
|
<span class="cline-any cline-neutral"> </span>
|
|
1726
1800
|
<span class="cline-any cline-neutral"> </span>
|
|
1727
|
-
<span class="cline-any cline-yes">
|
|
1801
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1728
1802
|
<span class="cline-any cline-no"> </span>
|
|
1729
1803
|
<span class="cline-any cline-no"> </span>
|
|
1730
1804
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1734,16 +1808,16 @@
|
|
|
1734
1808
|
<span class="cline-any cline-neutral"> </span>
|
|
1735
1809
|
<span class="cline-any cline-neutral"> </span>
|
|
1736
1810
|
<span class="cline-any cline-neutral"> </span>
|
|
1737
|
-
<span class="cline-any cline-yes">
|
|
1738
|
-
<span class="cline-any cline-yes">
|
|
1739
|
-
<span class="cline-any cline-yes">
|
|
1811
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1812
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1813
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1740
1814
|
<span class="cline-any cline-neutral"> </span>
|
|
1741
1815
|
<span class="cline-any cline-neutral"> </span>
|
|
1742
1816
|
<span class="cline-any cline-neutral"> </span>
|
|
1743
1817
|
<span class="cline-any cline-neutral"> </span>
|
|
1744
1818
|
<span class="cline-any cline-neutral"> </span>
|
|
1745
1819
|
<span class="cline-any cline-neutral"> </span>
|
|
1746
|
-
<span class="cline-any cline-yes">
|
|
1820
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1747
1821
|
<span class="cline-any cline-no"> </span>
|
|
1748
1822
|
<span class="cline-any cline-no"> </span>
|
|
1749
1823
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1771,11 +1845,11 @@
|
|
|
1771
1845
|
<span class="cline-any cline-neutral"> </span>
|
|
1772
1846
|
<span class="cline-any cline-neutral"> </span>
|
|
1773
1847
|
<span class="cline-any cline-neutral"> </span>
|
|
1774
|
-
<span class="cline-any cline-yes">
|
|
1848
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1775
1849
|
<span class="cline-any cline-neutral"> </span>
|
|
1776
1850
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { resolve, join, relative, dirname, basename } from 'node:path';
|
|
1777
1851
|
import { existsSync, readFileSync, writeFileSync, mkdirSync, rmSync, readdirSync, rmdirSync } from 'node:fs';
|
|
1778
|
-
import { generateContract } from './codegen-contract.js';
|
|
1852
|
+
import { generateContract, rootNeedsScalar } from './codegen-contract.js';
|
|
1779
1853
|
import { generateOp } from './codegen-operation.js';
|
|
1780
1854
|
import type {
|
|
1781
1855
|
ContractKitPlugin,
|
|
@@ -1809,8 +1883,11 @@ import {
|
|
|
1809
1883
|
deriveSubareaPropertyName,
|
|
1810
1884
|
getAreaSubarea,
|
|
1811
1885
|
hasPublicOperations,
|
|
1886
|
+
generateSdkPackageJson,
|
|
1887
|
+
generateSdkTsconfig,
|
|
1812
1888
|
type SdkClientInfo,
|
|
1813
1889
|
type SdkAreaInfo,
|
|
1890
|
+
type SdkScaffoldDeps,
|
|
1814
1891
|
} from './codegen-sdk.js';
|
|
1815
1892
|
import { generatePlainTypes } from './codegen-plain-types.js';
|
|
1816
1893
|
import {
|
|
@@ -1855,6 +1932,15 @@ export interface SdkConfig {
|
|
|
1855
1932
|
clients?: string;
|
|
1856
1933
|
};
|
|
1857
1934
|
includeInternal?: boolean;
|
|
1935
|
+
/**
|
|
1936
|
+
* Emit a starter `package.json` and `tsconfig.json` at the SDK `baseDir` so the
|
|
1937
|
+
* generated output is a buildable, publishable package on its own. Opt-in and
|
|
1938
|
+
* write-once: the files are created only when absent and are never overwritten or
|
|
1939
|
+
* cleaned up on later builds, so any edits you make to them are preserved.
|
|
1940
|
+
* Dependency ranges are derived from the contracts (always `zod` when `zod: true`;
|
|
1941
|
+
* `luxon` when any covered model uses a date/time/datetime/interval scalar).
|
|
1942
|
+
*/
|
|
1943
|
+
scaffold?: boolean;
|
|
1858
1944
|
}
|
|
1859
1945
|
|
|
1860
1946
|
export interface ZodConfig {
|
|
@@ -1940,8 +2026,8 @@ async function runTypescriptCodegen(
|
|
|
1940
2026
|
|
|
1941
2027
|
deleteStalePaths(result.deletedPaths);
|
|
1942
2028
|
|
|
1943
|
-
for (const { relativePath, content } of result.filesToWrite) {
|
|
1944
|
-
ctx.emitFile(relativePath, content);
|
|
2029
|
+
for (const { relativePath, content, ifAbsent } of result.filesToWrite) {
|
|
2030
|
+
ctx.emitFile(relativePath, content, ifAbsent ? { ifAbsent: true } : undefined);
|
|
1945
2031
|
}
|
|
1946
2032
|
|
|
1947
2033
|
writeManifest(manifestPath, result.manifest);
|
|
@@ -2010,7 +2096,7 @@ function sliceOutPathMap(refs: Set<string>, modelOutPaths: Map<string,
|
|
|
2010
2096
|
const slice: Record<string, string> = {};
|
|
2011
2097
|
for (const ref of [...refs].sort()) {
|
|
2012
2098
|
const p = modelOutPaths.get(ref);
|
|
2013
|
-
|
|
2099
|
+
if (p) slice[ref] = p;
|
|
2014
2100
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (modelsWithInput.has(ref)) {
|
|
2015
2101
|
const ip = <span class="cstat-no" title="statement not covered" >modelOutPaths.get(`${ref}Input`);</span>
|
|
2016
2102
|
<span class="cstat-no" title="statement not covered" > if (ip) <span class="cstat-no" title="statement not covered" >slice[`${ref}Input`] = ip;</span></span>
|
|
@@ -2141,7 +2227,7 @@ function collectSdkOutput(
|
|
|
2141
2227
|
units: IncrementalUnit[],
|
|
2142
2228
|
globalFiles: IncrementalOutputFile[],
|
|
2143
2229
|
): void {
|
|
2144
|
-
const sdkBase = config.baseDir
|
|
2230
|
+
const sdkBase = config.baseDir ? resolve(rootDir, config.baseDir) : rootDir;
|
|
2145
2231
|
const sdkName = config.name;
|
|
2146
2232
|
const sdkOutput = config.output?.sdk;
|
|
2147
2233
|
const sdkEntryPath = sdkOutput
|
|
@@ -2153,7 +2239,7 @@ function collectSdkOutput(
|
|
|
2153
2239
|
const modelsWithInput = inputs.modelsWithInput as Set<string>;
|
|
2154
2240
|
const modelsWithOutput = inputs.modelsWithOutput as Set<string>;
|
|
2155
2241
|
const modelMap = buildModelMap(inputs.contractRoots);
|
|
2156
|
-
const allFiles = [...inputs.contractRoots.map(
|
|
2242
|
+
const allFiles = [...inputs.contractRoots.map(r => r.file), ...inputs.opRoots.map(r => r.file)];
|
|
2157
2243
|
const ckCommonRoot = commonDir(allFiles, rootDir);
|
|
2158
2244
|
|
|
2159
2245
|
const sdkModelOutPaths = new Map<string, string>();
|
|
@@ -2162,27 +2248,27 @@ function collectSdkOutput(
|
|
|
2162
2248
|
|
|
2163
2249
|
// ── Pre-pass: SDK type files ──
|
|
2164
2250
|
const sdkContractEntries: { ast: ContractRootNode; typeOutPath: string }[] = [];
|
|
2165
|
-
|
|
2166
|
-
const
|
|
2167
|
-
|
|
2168
|
-
const
|
|
2169
|
-
<span class="
|
|
2170
|
-
<span class="
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
<span class="
|
|
2176
|
-
<span class="
|
|
2251
|
+
if (config.output?.types) {
|
|
2252
|
+
const publicTypes = computePubliclyReachableTypes(inputs.opRoots, inputs.contractRoots, modelsWithInput, modelsWithOutput);
|
|
2253
|
+
for (const ast of inputs.contractRoots) {
|
|
2254
|
+
const typeOutPath = computeSdkTypeOutPath(ast.file, sdkBase, config.output.types, ckCommonRoot, ast.meta);
|
|
2255
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!typeOutPath) <span class="cstat-no" title="statement not covered" >continue;</span>
|
|
2256
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (publicTypes !== null && !ast.models.some(m => publicTypes.has(m.name))) <span class="cstat-no" title="statement not covered" >continue;</span>
|
|
2257
|
+
sdkTypePaths.push(typeOutPath);
|
|
2258
|
+
sdkContractEntries.push({ ast, typeOutPath });
|
|
2259
|
+
for (const model of ast.models) {
|
|
2260
|
+
sdkModelOutPaths.set(model.name, typeOutPath);
|
|
2261
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (modelsWithInput.has(model.name)) <span class="cstat-no" title="statement not covered" >sdkModelOutPaths.set(`${model.name}Input`, typeOutPath);</span>
|
|
2262
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (modelsWithOutput.has(model.name)) <span class="cstat-no" title="statement not covered" >sdkModelOutPaths.set(`${model.name}Output`, typeOutPath);</span>
|
|
2177
2263
|
}
|
|
2178
2264
|
}
|
|
2179
2265
|
}
|
|
2180
2266
|
|
|
2181
2267
|
// ── SDK type units ──
|
|
2182
2268
|
for (const { ast, typeOutPath } of sdkContractEntries) {
|
|
2183
|
-
const refs =
|
|
2184
|
-
const ownNames =
|
|
2185
|
-
const
|
|
2269
|
+
const refs = collectContractRootRefs(ast, modelMap);
|
|
2270
|
+
const ownNames = new Set(ast.models.map(m => m.name));
|
|
2271
|
+
const fingerprint = hashFingerprint({
|
|
2186
2272
|
kind: 'sdk-types',
|
|
2187
2273
|
v: TYPESCRIPT_CODEGEN_VERSION,
|
|
2188
2274
|
outPath: typeOutPath,
|
|
@@ -2193,22 +2279,22 @@ function collectSdkOutput(
|
|
|
2193
2279
|
sdkOptionsPath,
|
|
2194
2280
|
sub: subConfigKey,
|
|
2195
2281
|
});
|
|
2196
|
-
|
|
2282
|
+
units.push({
|
|
2197
2283
|
key: `sdk-types::${typeOutPath}`,
|
|
2198
2284
|
fingerprint,
|
|
2199
|
-
render:
|
|
2285
|
+
render: () => {
|
|
2200
2286
|
let content: string;
|
|
2201
|
-
|
|
2202
|
-
|
|
2287
|
+
if (config.zod) {
|
|
2288
|
+
content = generateContract(ast, {
|
|
2203
2289
|
modelOutPaths: sdkModelOutPaths,
|
|
2204
2290
|
currentOutPath: typeOutPath,
|
|
2205
2291
|
modelsWithInput,
|
|
2206
2292
|
modelsWithOutput,
|
|
2207
2293
|
});
|
|
2208
2294
|
} else {
|
|
2209
|
-
let
|
|
2210
|
-
<span class="
|
|
2211
|
-
|
|
2295
|
+
let rel = relative(dirname(typeOutPath), sdkOptionsPath).replace(/\.ts$/, '.js');
|
|
2296
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!rel.startsWith('.')) <span class="cstat-no" title="statement not covered" >rel = './' + rel;</span>
|
|
2297
|
+
content = generatePlainTypes(ast, {
|
|
2212
2298
|
modelOutPaths: sdkModelOutPaths,
|
|
2213
2299
|
currentOutPath: typeOutPath,
|
|
2214
2300
|
modelsWithInput,
|
|
@@ -2216,7 +2302,7 @@ function collectSdkOutput(
|
|
|
2216
2302
|
jsonValueImportPath: rel,
|
|
2217
2303
|
});
|
|
2218
2304
|
}
|
|
2219
|
-
|
|
2305
|
+
return [{ relativePath: typeOutPath, content }];
|
|
2220
2306
|
},
|
|
2221
2307
|
});
|
|
2222
2308
|
}
|
|
@@ -2339,9 +2425,9 @@ function collectSdkOutput(
|
|
|
2339
2425
|
const sdkOptionsRel = relative(sdkEntryDir, sdkOptionsPath).replace(/\.ts$/, '.js');
|
|
2340
2426
|
const sdkOptionsImportPath = sdkOptionsRel.startsWith('.') ? <span class="branch-0 cbranch-no" title="branch not covered" >sdkOptionsRel : '</span>./' + sdkOptionsRel;
|
|
2341
2427
|
const sdkClassName = sdkName
|
|
2342
|
-
?
|
|
2428
|
+
? sdkName
|
|
2343
2429
|
.split(/[-._\s]+/)
|
|
2344
|
-
.map(
|
|
2430
|
+
.map(s => s.charAt(0).toUpperCase() + s.slice(1))
|
|
2345
2431
|
.join('') + 'Sdk'
|
|
2346
2432
|
: 'Sdk';
|
|
2347
2433
|
|
|
@@ -2448,7 +2534,7 @@ function collectSdkOutput(
|
|
|
2448
2534
|
|
|
2449
2535
|
const sdkSrcDir = dirname(sdkEntryPath);
|
|
2450
2536
|
const sdkTypeBarrels = generateBarrelFiles(sdkTypePaths);
|
|
2451
|
-
for (const barrel of sdkTypeBarrels)
|
|
2537
|
+
for (const barrel of sdkTypeBarrels) globalFiles.push({ relativePath: barrel.outPath, content: barrel.content });
|
|
2452
2538
|
|
|
2453
2539
|
const rootExports: string[] = [`export * from './${basename(sdkOptionsPath).replace(/\.ts$/, '.js')}';`];
|
|
2454
2540
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (hasAnything) rootExports.push(`export * from './${basename(sdkEntryPath).replace(/\.ts$/, '.js')}';`);
|
|
@@ -2458,14 +2544,39 @@ function collectSdkOutput(
|
|
|
2458
2544
|
rootExports.push(`export * from '${rel}';`);
|
|
2459
2545
|
}
|
|
2460
2546
|
for (const barrel of sdkTypeBarrels) {
|
|
2461
|
-
let
|
|
2462
|
-
<span class="
|
|
2463
|
-
|
|
2547
|
+
let rel = relative(sdkSrcDir, barrel.outPath).replace(/\.ts$/, '.js');
|
|
2548
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (!rel.startsWith('.')) rel = './' + rel;
|
|
2549
|
+
rootExports.push(`export * from '${rel}';`);
|
|
2464
2550
|
}
|
|
2465
2551
|
globalFiles.push({
|
|
2466
2552
|
relativePath: join(sdkSrcDir, 'index.ts'),
|
|
2467
2553
|
content: `// Auto-generated barrel file\n${rootExports.sort().join('\n')}\n`,
|
|
2468
2554
|
});
|
|
2555
|
+
|
|
2556
|
+
// ── Scaffold files (opt-in, write-once) ──
|
|
2557
|
+
// Emitted at the SDK package root with `ifAbsent` so they're created once and
|
|
2558
|
+
// then owned by the user. Deps are derived from the contracts actually surfaced
|
|
2559
|
+
// into the SDK: zod when schema output is on, luxon when any covered model uses a
|
|
2560
|
+
// date/time/datetime/interval scalar.
|
|
2561
|
+
if (config.scaffold) {
|
|
2562
|
+
const coveredRoots = sdkContractEntries.map(e => e.ast);
|
|
2563
|
+
const deps: SdkScaffoldDeps = {
|
|
2564
|
+
zod: !!config.zod,
|
|
2565
|
+
luxon: coveredRoots.some(
|
|
2566
|
+
r => rootNeedsScalar(r, 'datetime') || rootNeedsScalar(r, 'date') || rootNeedsScalar(r, 'time') || rootNeedsScalar(r, 'interval'),
|
|
2567
|
+
),
|
|
2568
|
+
};
|
|
2569
|
+
globalFiles.push({
|
|
2570
|
+
relativePath: join(sdkBase, 'package.json'),
|
|
2571
|
+
content: generateSdkPackageJson({ name: sdkName ?? 'sdk', deps }),
|
|
2572
|
+
ifAbsent: true,
|
|
2573
|
+
});
|
|
2574
|
+
globalFiles.push({
|
|
2575
|
+
relativePath: join(sdkBase, 'tsconfig.json'),
|
|
2576
|
+
content: generateSdkTsconfig(),
|
|
2577
|
+
ifAbsent: true,
|
|
2578
|
+
});
|
|
2579
|
+
}
|
|
2469
2580
|
}
|
|
2470
2581
|
|
|
2471
2582
|
// ─── Zod sub-generator ─────────────────────────────────────────────────────
|
|
@@ -2635,7 +2746,7 @@ function stableSubConfig(config: unknown): string {
|
|
|
2635
2746
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2636
2747
|
Code coverage generated by
|
|
2637
2748
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2638
|
-
at 2026-06-
|
|
2749
|
+
at 2026-06-16T15:55:46.002Z
|
|
2639
2750
|
</div>
|
|
2640
2751
|
<script src="../prettify.js"></script>
|
|
2641
2752
|
<script>
|