@contractkit/prettier-plugin 0.8.1 → 0.9.1
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 +19 -35
- package/.turbo/turbo-test$colon$ci.log +26 -105
- package/CHANGELOG.md +32 -0
- package/README.md +58 -0
- package/coverage/clover.xml +159 -155
- package/coverage/coverage-final.json +5 -5
- package/coverage/indent.ts.html +1 -1
- package/coverage/index.html +27 -27
- package/coverage/print-ck.ts.html +111 -57
- package/coverage/print-contract.ts.html +1 -1
- package/coverage/print-operation.ts.html +58 -37
- package/coverage/print-type.ts.html +1 -1
- package/dist/index.js +13 -4
- package/dist/index.js.map +1 -1
- package/dist/print-ck.d.ts +8 -0
- package/dist/print-ck.d.ts.map +1 -1
- package/dist/print-operation.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/print-ck.ts +22 -4
- package/src/print-operation.ts +7 -0
- package/tests/print-ck.test.ts +109 -0
- package/.turbo/turbo-build.log +0 -15
- package/.turbo/turbo-format.log +0 -29
- package/.turbo/turbo-test.log +0 -14
- package/dist/__tests__/print-ck.test.d.ts +0 -2
- package/dist/__tests__/print-ck.test.d.ts.map +0 -1
- package/dist/__tests__/print-op.test.d.ts +0 -2
- package/dist/__tests__/print-op.test.d.ts.map +0 -1
- package/dist/__tests__/print-op.test.js +0 -359
- package/dist/__tests__/print-op.test.js.map +0 -1
- package/dist/print-dto.d.ts +0 -3
- package/dist/print-dto.d.ts.map +0 -1
- package/dist/print-dto.js +0 -100
- package/dist/print-dto.js.map +0 -1
- package/dist/print-op.d.ts +0 -24
- package/dist/print-op.d.ts.map +0 -1
- package/dist/print-op.js +0 -224
- package/dist/print-op.js.map +0 -1
- package/dist/print-type.js +0 -110
- package/dist/print-type.js.map +0 -1
package/coverage/indent.ts.html
CHANGED
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
74
74
|
Code coverage generated by
|
|
75
75
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
76
|
-
at 2026-
|
|
76
|
+
at 2026-05-01T18:49:13.599Z
|
|
77
77
|
</div>
|
|
78
78
|
<script src="prettify.js"></script>
|
|
79
79
|
<script>
|
package/coverage/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">
|
|
26
|
+
<span class="strong">66.02% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>239/362</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">56.81% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>225/396</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">69.23% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>18/26</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">71.87% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>207/288</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -94,18 +94,18 @@
|
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
97
|
-
<td class="file
|
|
98
|
-
<td data-value="
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
97
|
+
<td class="file high" data-value="print-ck.ts"><a href="print-ck.ts.html">print-ck.ts</a></td>
|
|
98
|
+
<td data-value="89.85" class="pic high">
|
|
99
|
+
<div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
|
|
100
100
|
</td>
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="
|
|
103
|
-
<td data-value="
|
|
104
|
-
<td data-value="
|
|
101
|
+
<td data-value="89.85" class="pct high">89.85%</td>
|
|
102
|
+
<td data-value="69" class="abs high">62/69</td>
|
|
103
|
+
<td data-value="80" class="pct high">80%</td>
|
|
104
|
+
<td data-value="75" class="abs high">60/75</td>
|
|
105
105
|
<td data-value="100" class="pct high">100%</td>
|
|
106
|
-
<td data-value="
|
|
107
|
-
<td data-value="
|
|
108
|
-
<td data-value="
|
|
106
|
+
<td data-value="4" class="abs high">4/4</td>
|
|
107
|
+
<td data-value="98.03" class="pct high">98.03%</td>
|
|
108
|
+
<td data-value="51" class="abs high">50/51</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
<tr>
|
|
@@ -125,17 +125,17 @@
|
|
|
125
125
|
|
|
126
126
|
<tr>
|
|
127
127
|
<td class="file medium" data-value="print-operation.ts"><a href="print-operation.ts.html">print-operation.ts</a></td>
|
|
128
|
-
<td data-value="
|
|
129
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
128
|
+
<td data-value="70.62" class="pic medium">
|
|
129
|
+
<div class="chart"><div class="cover-fill" style="width: 70%"></div><div class="cover-empty" style="width: 30%"></div></div>
|
|
130
130
|
</td>
|
|
131
|
-
<td data-value="
|
|
132
|
-
<td data-value="
|
|
133
|
-
<td data-value="63.
|
|
134
|
-
<td data-value="
|
|
131
|
+
<td data-value="70.62" class="pct medium">70.62%</td>
|
|
132
|
+
<td data-value="177" class="abs medium">125/177</td>
|
|
133
|
+
<td data-value="63.74" class="pct medium">63.74%</td>
|
|
134
|
+
<td data-value="171" class="abs medium">109/171</td>
|
|
135
135
|
<td data-value="90" class="pct high">90%</td>
|
|
136
136
|
<td data-value="10" class="abs high">9/10</td>
|
|
137
|
-
<td data-value="
|
|
138
|
-
<td data-value="
|
|
137
|
+
<td data-value="80.43" class="pct high">80.43%</td>
|
|
138
|
+
<td data-value="138" class="abs high">111/138</td>
|
|
139
139
|
</tr>
|
|
140
140
|
|
|
141
141
|
<tr>
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
162
162
|
Code coverage generated by
|
|
163
163
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
164
|
-
at 2026-
|
|
164
|
+
at 2026-05-01T18:49:13.599Z
|
|
165
165
|
</div>
|
|
166
166
|
<script src="prettify.js"></script>
|
|
167
167
|
<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">89.85% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>62/69</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">80% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>60/75</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/4</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">98.03% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>50/51</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -158,7 +158,25 @@
|
|
|
158
158
|
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
159
|
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
160
|
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
162
180
|
<span class="cline-any cline-neutral"> </span>
|
|
163
181
|
<span class="cline-any cline-neutral"> </span>
|
|
164
182
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -169,48 +187,58 @@
|
|
|
169
187
|
<span class="cline-any cline-neutral"> </span>
|
|
170
188
|
<span class="cline-any cline-neutral"> </span>
|
|
171
189
|
<span class="cline-any cline-neutral"> </span>
|
|
172
|
-
<span class="cline-any cline-yes">45x</span>
|
|
173
|
-
<span class="cline-any cline-yes">45x</span>
|
|
174
|
-
<span class="cline-any cline-yes">45x</span>
|
|
175
|
-
<span class="cline-any cline-yes">45x</span>
|
|
176
|
-
<span class="cline-any cline-yes">45x</span>
|
|
177
190
|
<span class="cline-any cline-neutral"> </span>
|
|
178
|
-
<span class="cline-any cline-yes">45x</span>
|
|
179
191
|
<span class="cline-any cline-neutral"> </span>
|
|
180
|
-
<span class="cline-any cline-yes">2x</span>
|
|
181
192
|
<span class="cline-any cline-neutral"> </span>
|
|
182
|
-
<span class="cline-any cline-yes">2x</span>
|
|
183
|
-
<span class="cline-any cline-no"> </span>
|
|
184
|
-
<span class="cline-any cline-no"> </span>
|
|
185
|
-
<span class="cline-any cline-no"> </span>
|
|
186
|
-
<span class="cline-any cline-no"> </span>
|
|
187
193
|
<span class="cline-any cline-neutral"> </span>
|
|
188
|
-
<span class="cline-any cline-no"> </span>
|
|
189
194
|
<span class="cline-any cline-neutral"> </span>
|
|
190
195
|
<span class="cline-any cline-neutral"> </span>
|
|
191
|
-
<span class="cline-any cline-yes">2x</span>
|
|
192
|
-
<span class="cline-any cline-no"> </span>
|
|
193
|
-
<span class="cline-any cline-no"> </span>
|
|
194
|
-
<span class="cline-any cline-no"> </span>
|
|
195
|
-
<span class="cline-any cline-no"> </span>
|
|
196
196
|
<span class="cline-any cline-neutral"> </span>
|
|
197
|
-
<span class="cline-any cline-no"> </span>
|
|
198
197
|
<span class="cline-any cline-neutral"> </span>
|
|
198
|
+
<span class="cline-any cline-yes">5x</span>
|
|
199
|
+
<span class="cline-any cline-neutral"> </span>
|
|
200
|
+
<span class="cline-any cline-neutral"> </span>
|
|
201
|
+
<span class="cline-any cline-neutral"> </span>
|
|
202
|
+
<span class="cline-any cline-yes">55x</span>
|
|
203
|
+
<span class="cline-any cline-yes">55x</span>
|
|
204
|
+
<span class="cline-any cline-yes">55x</span>
|
|
205
|
+
<span class="cline-any cline-yes">55x</span>
|
|
206
|
+
<span class="cline-any cline-yes">55x</span>
|
|
207
|
+
<span class="cline-any cline-neutral"> </span>
|
|
208
|
+
<span class="cline-any cline-yes">55x</span>
|
|
209
|
+
<span class="cline-any cline-neutral"> </span>
|
|
210
|
+
<span class="cline-any cline-yes">7x</span>
|
|
211
|
+
<span class="cline-any cline-neutral"> </span>
|
|
212
|
+
<span class="cline-any cline-yes">7x</span>
|
|
213
|
+
<span class="cline-any cline-yes">3x</span>
|
|
214
|
+
<span class="cline-any cline-yes">3x</span>
|
|
215
|
+
<span class="cline-any cline-yes">3x</span>
|
|
216
|
+
<span class="cline-any cline-neutral"> </span>
|
|
217
|
+
<span class="cline-any cline-yes">3x</span>
|
|
218
|
+
<span class="cline-any cline-neutral"> </span>
|
|
219
|
+
<span class="cline-any cline-neutral"> </span>
|
|
220
|
+
<span class="cline-any cline-yes">7x</span>
|
|
221
|
+
<span class="cline-any cline-yes">2x</span>
|
|
222
|
+
<span class="cline-any cline-yes">2x</span>
|
|
223
|
+
<span class="cline-any cline-yes">2x</span>
|
|
199
224
|
<span class="cline-any cline-neutral"> </span>
|
|
200
225
|
<span class="cline-any cline-yes">2x</span>
|
|
226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
227
|
+
<span class="cline-any cline-neutral"> </span>
|
|
228
|
+
<span class="cline-any cline-yes">7x</span>
|
|
201
229
|
<span class="cline-any cline-yes">1x</span>
|
|
202
230
|
<span class="cline-any cline-neutral"> </span>
|
|
203
231
|
<span class="cline-any cline-neutral"> </span>
|
|
204
|
-
<span class="cline-any cline-yes">
|
|
232
|
+
<span class="cline-any cline-yes">7x</span>
|
|
205
233
|
<span class="cline-any cline-yes">1x</span>
|
|
206
234
|
<span class="cline-any cline-neutral"> </span>
|
|
207
235
|
<span class="cline-any cline-neutral"> </span>
|
|
208
|
-
<span class="cline-any cline-yes">
|
|
236
|
+
<span class="cline-any cline-yes">7x</span>
|
|
209
237
|
<span class="cline-any cline-no"> </span>
|
|
210
238
|
<span class="cline-any cline-neutral"> </span>
|
|
211
239
|
<span class="cline-any cline-neutral"> </span>
|
|
212
|
-
<span class="cline-any cline-yes">
|
|
213
|
-
<span class="cline-any cline-yes">
|
|
240
|
+
<span class="cline-any cline-yes">7x</span>
|
|
241
|
+
<span class="cline-any cline-yes">7x</span>
|
|
214
242
|
<span class="cline-any cline-neutral"> </span>
|
|
215
243
|
<span class="cline-any cline-neutral"> </span>
|
|
216
244
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -229,29 +257,37 @@
|
|
|
229
257
|
<span class="cline-any cline-neutral"> </span>
|
|
230
258
|
<span class="cline-any cline-neutral"> </span>
|
|
231
259
|
<span class="cline-any cline-neutral"> </span>
|
|
232
|
-
<span class="cline-any cline-yes">45x</span>
|
|
233
|
-
<span class="cline-any cline-yes">45x</span>
|
|
234
260
|
<span class="cline-any cline-neutral"> </span>
|
|
235
261
|
<span class="cline-any cline-neutral"> </span>
|
|
236
|
-
<span class="cline-any cline-yes">45x</span>
|
|
237
|
-
<span class="cline-any cline-yes">45x</span>
|
|
238
262
|
<span class="cline-any cline-neutral"> </span>
|
|
239
263
|
<span class="cline-any cline-neutral"> </span>
|
|
240
|
-
<span class="cline-any cline-
|
|
264
|
+
<span class="cline-any cline-neutral"> </span>
|
|
265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
266
|
+
<span class="cline-any cline-neutral"> </span>
|
|
267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
268
|
+
<span class="cline-any cline-yes">55x</span>
|
|
269
|
+
<span class="cline-any cline-yes">55x</span>
|
|
270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
271
|
+
<span class="cline-any cline-neutral"> </span>
|
|
272
|
+
<span class="cline-any cline-yes">55x</span>
|
|
273
|
+
<span class="cline-any cline-yes">55x</span>
|
|
274
|
+
<span class="cline-any cline-neutral"> </span>
|
|
275
|
+
<span class="cline-any cline-neutral"> </span>
|
|
276
|
+
<span class="cline-any cline-yes">55x</span>
|
|
241
277
|
<span class="cline-any cline-yes">3x</span>
|
|
242
278
|
<span class="cline-any cline-yes">3x</span>
|
|
243
279
|
<span class="cline-any cline-neutral"> </span>
|
|
244
280
|
<span class="cline-any cline-neutral"> </span>
|
|
245
281
|
<span class="cline-any cline-neutral"> </span>
|
|
246
|
-
<span class="cline-any cline-yes">
|
|
247
|
-
<span class="cline-any cline-yes">
|
|
248
|
-
<span class="cline-any cline-yes">
|
|
249
|
-
<span class="cline-any cline-yes">
|
|
250
|
-
<span class="cline-any cline-yes">
|
|
251
|
-
<span class="cline-any cline-yes">
|
|
282
|
+
<span class="cline-any cline-yes">55x</span>
|
|
283
|
+
<span class="cline-any cline-yes">55x</span>
|
|
284
|
+
<span class="cline-any cline-yes">55x</span>
|
|
285
|
+
<span class="cline-any cline-yes">47x</span>
|
|
286
|
+
<span class="cline-any cline-yes">47x</span>
|
|
287
|
+
<span class="cline-any cline-yes">47x</span>
|
|
252
288
|
<span class="cline-any cline-neutral"> </span>
|
|
253
289
|
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-yes">
|
|
290
|
+
<span class="cline-any cline-yes">55x</span>
|
|
255
291
|
<span class="cline-any cline-neutral"> </span>
|
|
256
292
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { CkRootNode, OpResponseHeaderNode } from '@contractkit/core';
|
|
257
293
|
import { printModelDecl } from './print-contract.js';
|
|
@@ -263,6 +299,18 @@ export const DEFAULT_PRINT_WIDTH = 80;
|
|
|
263
299
|
|
|
264
300
|
// ─── Options block ──────────────────────────────────────────────────────────
|
|
265
301
|
|
|
302
|
+
/**
|
|
303
|
+
* Quote an options-block value if it isn't a plain identifier.
|
|
304
|
+
*
|
|
305
|
+
* Plain identifiers (starts with letter/underscore/dollar, rest are
|
|
306
|
+
* alphanumeric/underscore/dollar/hyphen/dot) are left bare. Everything
|
|
307
|
+
* else — paths with slashes, values starting with `#`, values with spaces,
|
|
308
|
+
* etc. — is double-quoted so the round-trip parse is unambiguous.
|
|
309
|
+
*/
|
|
310
|
+
function quoteOptionsValue(value: string): string {
|
|
311
|
+
return /^[a-zA-Z_$][a-zA-Z0-9_$\-.]*$/.test(value) ? value : `"${value}"`;
|
|
312
|
+
}
|
|
313
|
+
|
|
266
314
|
function printOptionsBlock(ast: CkRootNode): string | null {
|
|
267
315
|
const hasMeta = Object.keys(ast.meta).length > 0;
|
|
268
316
|
const hasServices = Object.keys(ast.services).length > 0;
|
|
@@ -274,22 +322,20 @@ function printOptionsBlock(ast: CkRootNode): string | null {
|
|
|
274
322
|
|
|
275
323
|
const lines: string[] = ['options {'];
|
|
276
324
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
<span class="cstat-no" title="statement not covered" > lines.push(`${INDENT}${INDENT}${key}: ${v}`</span>);
|
|
325
|
+
if (hasMeta) {
|
|
326
|
+
lines.push(`${INDENT}keys: {`);
|
|
327
|
+
for (<span class="cstat-no" title="statement not covered" ><span class="branch-1 cbranch-no" title="branch not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>const [k</span></span>ey, value] of Object.entries(ast.meta)) {
|
|
328
|
+
lines.push(`${INDENT}${INDENT}${key}: ${quoteOptionsValue(value)}`);
|
|
282
329
|
}
|
|
283
|
-
|
|
330
|
+
lines.push(`${INDENT}}`);
|
|
284
331
|
}
|
|
285
332
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
<span class="cstat-no" title="statement not covered" > lines.push(`${INDENT}${INDENT}${key}: ${v}`</span>);
|
|
333
|
+
if (hasServices) {
|
|
334
|
+
lines.push(`${INDENT}services: {`);
|
|
335
|
+
for (<span class="cstat-no" title="statement not covered" ><span class="branch-1 cbranch-no" title="branch not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>const [k</span></span>ey, value] of Object.entries(ast.services)) {
|
|
336
|
+
lines.push(`${INDENT}${INDENT}${key}: ${quoteOptionsValue(value)}`);
|
|
291
337
|
}
|
|
292
|
-
|
|
338
|
+
lines.push(`${INDENT}}`);
|
|
293
339
|
}
|
|
294
340
|
|
|
295
341
|
if (hasRequestHeaders) {
|
|
@@ -324,6 +370,14 @@ function printOptionsHeaderScope(keyword: 'request' | 'response', headers: OpRes
|
|
|
324
370
|
|
|
325
371
|
// ─── CK file printer ───────────────────────────────────────────────────────
|
|
326
372
|
|
|
373
|
+
/**
|
|
374
|
+
* Render a parsed `.ck` AST back to source. Output is byte-identical on
|
|
375
|
+
* round-trip when the input is already canonically formatted: options block
|
|
376
|
+
* first, then contracts, then operations, separated by blank lines.
|
|
377
|
+
*
|
|
378
|
+
* `printWidth` is forwarded to per-model printing for line wrapping inside
|
|
379
|
+
* inline-object types.
|
|
380
|
+
*/
|
|
327
381
|
export function printCk(ast: CkRootNode, <span class="branch-1 cbranch-no" title="branch not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >printWidth: number = D</span></span>EFAULT_PRINT_WIDTH): string {
|
|
328
382
|
const parts: string[] = [];
|
|
329
383
|
|
|
@@ -355,7 +409,7 @@ export function printCk(ast: CkRootNode, <span class="branch-1 cbranch-no" title
|
|
|
355
409
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
356
410
|
Code coverage generated by
|
|
357
411
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
358
|
-
at 2026-
|
|
412
|
+
at 2026-05-01T18:49:13.599Z
|
|
359
413
|
</div>
|
|
360
414
|
<script src="prettify.js"></script>
|
|
361
415
|
<script>
|
|
@@ -277,7 +277,7 @@ function <span class="fstat-no" title="function not covered" >printTypeAlias(m</
|
|
|
277
277
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
278
278
|
Code coverage generated by
|
|
279
279
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
280
|
-
at 2026-
|
|
280
|
+
at 2026-05-01T18:49:13.599Z
|
|
281
281
|
</div>
|
|
282
282
|
<script src="prettify.js"></script>
|
|
283
283
|
<script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">70.62% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>125/177</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">63.
|
|
33
|
+
<span class="strong">63.74% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>109/171</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">80.43% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>111/138</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -305,7 +305,14 @@
|
|
|
305
305
|
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
306
|
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
307
|
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
-
<a name='L243'></a><a href='#L243'>243</a
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
309
316
|
<span class="cline-any cline-neutral"> </span>
|
|
310
317
|
<span class="cline-any cline-neutral"> </span>
|
|
311
318
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -349,8 +356,8 @@
|
|
|
349
356
|
<span class="cline-any cline-neutral"> </span>
|
|
350
357
|
<span class="cline-any cline-neutral"> </span>
|
|
351
358
|
<span class="cline-any cline-neutral"> </span>
|
|
352
|
-
<span class="cline-any cline-yes">
|
|
353
|
-
<span class="cline-any cline-yes">
|
|
359
|
+
<span class="cline-any cline-yes">97x</span>
|
|
360
|
+
<span class="cline-any cline-yes">97x</span>
|
|
354
361
|
<span class="cline-any cline-no"> </span>
|
|
355
362
|
<span class="cline-any cline-no"> </span>
|
|
356
363
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -359,29 +366,29 @@
|
|
|
359
366
|
<span class="cline-any cline-neutral"> </span>
|
|
360
367
|
<span class="cline-any cline-neutral"> </span>
|
|
361
368
|
<span class="cline-any cline-neutral"> </span>
|
|
362
|
-
<span class="cline-any cline-yes">
|
|
363
|
-
<span class="cline-any cline-yes">
|
|
364
|
-
<span class="cline-any cline-yes">
|
|
369
|
+
<span class="cline-any cline-yes">47x</span>
|
|
370
|
+
<span class="cline-any cline-yes">47x</span>
|
|
371
|
+
<span class="cline-any cline-yes">47x</span>
|
|
365
372
|
<span class="cline-any cline-neutral"> </span>
|
|
366
|
-
<span class="cline-any cline-yes">
|
|
373
|
+
<span class="cline-any cline-yes">47x</span>
|
|
367
374
|
<span class="cline-any cline-yes">3x</span>
|
|
368
375
|
<span class="cline-any cline-neutral"> </span>
|
|
369
376
|
<span class="cline-any cline-neutral"> </span>
|
|
370
|
-
<span class="cline-any cline-yes">
|
|
377
|
+
<span class="cline-any cline-yes">47x</span>
|
|
371
378
|
<span class="cline-any cline-yes">2x</span>
|
|
372
379
|
<span class="cline-any cline-neutral"> </span>
|
|
373
380
|
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-yes">
|
|
381
|
+
<span class="cline-any cline-yes">47x</span>
|
|
375
382
|
<span class="cline-any cline-neutral"> </span>
|
|
376
|
-
<span class="cline-any cline-yes">
|
|
377
|
-
<span class="cline-any cline-yes">
|
|
383
|
+
<span class="cline-any cline-yes">50x</span>
|
|
384
|
+
<span class="cline-any cline-yes">50x</span>
|
|
378
385
|
<span class="cline-any cline-neutral"> </span>
|
|
379
386
|
<span class="cline-any cline-neutral"> </span>
|
|
380
387
|
<span class="cline-any cline-neutral"> </span>
|
|
381
|
-
<span class="cline-any cline-yes">
|
|
388
|
+
<span class="cline-any cline-yes">47x</span>
|
|
382
389
|
<span class="cline-any cline-neutral"> </span>
|
|
383
|
-
<span class="cline-any cline-yes">
|
|
384
|
-
<span class="cline-any cline-yes">
|
|
390
|
+
<span class="cline-any cline-yes">47x</span>
|
|
391
|
+
<span class="cline-any cline-yes">47x</span>
|
|
385
392
|
<span class="cline-any cline-neutral"> </span>
|
|
386
393
|
<span class="cline-any cline-neutral"> </span>
|
|
387
394
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -412,38 +419,45 @@
|
|
|
412
419
|
<span class="cline-any cline-neutral"> </span>
|
|
413
420
|
<span class="cline-any cline-neutral"> </span>
|
|
414
421
|
<span class="cline-any cline-neutral"> </span>
|
|
415
|
-
<span class="cline-any cline-yes">
|
|
416
|
-
<span class="cline-any cline-yes">
|
|
417
|
-
<span class="cline-any cline-yes">
|
|
418
|
-
<span class="cline-any cline-yes">
|
|
422
|
+
<span class="cline-any cline-yes">50x</span>
|
|
423
|
+
<span class="cline-any cline-yes">50x</span>
|
|
424
|
+
<span class="cline-any cline-yes">50x</span>
|
|
425
|
+
<span class="cline-any cline-yes">50x</span>
|
|
419
426
|
<span class="cline-any cline-neutral"> </span>
|
|
420
|
-
<span class="cline-any cline-yes">
|
|
421
|
-
<span class="cline-any cline-yes">
|
|
422
|
-
<span class="cline-any cline-yes">
|
|
423
|
-
<span class="cline-any cline-yes">
|
|
427
|
+
<span class="cline-any cline-yes">50x</span>
|
|
428
|
+
<span class="cline-any cline-yes">50x</span>
|
|
429
|
+
<span class="cline-any cline-yes">50x</span>
|
|
430
|
+
<span class="cline-any cline-yes">50x</span>
|
|
424
431
|
<span class="cline-any cline-yes">2x</span>
|
|
425
432
|
<span class="cline-any cline-yes">2x</span>
|
|
426
433
|
<span class="cline-any cline-neutral"> </span>
|
|
427
|
-
<span class="cline-any cline-yes">
|
|
428
|
-
<span class="cline-any cline-yes">
|
|
429
|
-
<span class="cline-any cline-yes">
|
|
434
|
+
<span class="cline-any cline-yes">50x</span>
|
|
435
|
+
<span class="cline-any cline-yes">50x</span>
|
|
436
|
+
<span class="cline-any cline-yes">3x</span>
|
|
437
|
+
<span class="cline-any cline-yes">4x</span>
|
|
438
|
+
<span class="cline-any cline-yes">4x</span>
|
|
439
|
+
<span class="cline-any cline-neutral"> </span>
|
|
440
|
+
<span class="cline-any cline-yes">3x</span>
|
|
441
|
+
<span class="cline-any cline-neutral"> </span>
|
|
442
|
+
<span class="cline-any cline-yes">50x</span>
|
|
443
|
+
<span class="cline-any cline-yes">50x</span>
|
|
430
444
|
<span class="cline-any cline-yes">1x</span>
|
|
431
|
-
<span class="cline-any cline-yes">
|
|
445
|
+
<span class="cline-any cline-yes">49x</span>
|
|
432
446
|
<span class="cline-any cline-yes">2x</span>
|
|
433
447
|
<span class="cline-any cline-neutral"> </span>
|
|
434
|
-
<span class="cline-any cline-yes">
|
|
448
|
+
<span class="cline-any cline-yes">50x</span>
|
|
435
449
|
<span class="cline-any cline-yes">3x</span>
|
|
436
450
|
<span class="cline-any cline-yes">3x</span>
|
|
437
451
|
<span class="cline-any cline-yes">4x</span>
|
|
438
452
|
<span class="cline-any cline-neutral"> </span>
|
|
439
453
|
<span class="cline-any cline-yes">3x</span>
|
|
440
454
|
<span class="cline-any cline-neutral"> </span>
|
|
441
|
-
<span class="cline-any cline-yes">
|
|
455
|
+
<span class="cline-any cline-yes">50x</span>
|
|
442
456
|
<span class="cline-any cline-yes">7x</span>
|
|
443
457
|
<span class="cline-any cline-neutral"> </span>
|
|
444
458
|
<span class="cline-any cline-neutral"> </span>
|
|
445
|
-
<span class="cline-any cline-yes">
|
|
446
|
-
<span class="cline-any cline-yes">
|
|
459
|
+
<span class="cline-any cline-yes">50x</span>
|
|
460
|
+
<span class="cline-any cline-yes">50x</span>
|
|
447
461
|
<span class="cline-any cline-neutral"> </span>
|
|
448
462
|
<span class="cline-any cline-neutral"> </span>
|
|
449
463
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -667,6 +681,13 @@ function printOperation(op: OpOperationNode): string[] {
|
|
|
667
681
|
lines.push(`${I2}signature: ${formatSignatureValue(op.signature)}${comment}`);
|
|
668
682
|
}
|
|
669
683
|
if (op.security !== undefined) lines.push(...printSecurity(op.security));
|
|
684
|
+
if (op.plugins && Object.keys(op.plugins).length > 0) {
|
|
685
|
+
lines.push(`${I2}plugins: {`);
|
|
686
|
+
for (<span class="cstat-no" title="statement not covered" ><span class="branch-1 cbranch-no" title="branch not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>const [k</span></span>ey, val] of Object.entries(op.plugins)) {
|
|
687
|
+
lines.push(`${I3}${key}: "${val.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`);
|
|
688
|
+
}
|
|
689
|
+
lines.push(`${I2}}`);
|
|
690
|
+
}
|
|
670
691
|
if (op.query !== undefined) lines.push(...printQueryOrHeaders('query', op.query, op.queryMode));
|
|
671
692
|
if (op.requestHeadersOptOut) {
|
|
672
693
|
lines.push(`${I2}headers: none`);
|
|
@@ -796,7 +817,7 @@ function printResponseBlock(responses: OpResponseNode[]): string[] {
|
|
|
796
817
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
797
818
|
Code coverage generated by
|
|
798
819
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
799
|
-
at 2026-
|
|
820
|
+
at 2026-05-01T18:49:13.599Z
|
|
800
821
|
</div>
|
|
801
822
|
<script src="prettify.js"></script>
|
|
802
823
|
<script>
|
|
@@ -496,7 +496,7 @@ export function extractTrailingInlineObject(type: ContractTypeNode): {
|
|
|
496
496
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
497
497
|
Code coverage generated by
|
|
498
498
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
499
|
-
at 2026-
|
|
499
|
+
at 2026-05-01T18:49:13.599Z
|
|
500
500
|
</div>
|
|
501
501
|
<script src="prettify.js"></script>
|
|
502
502
|
<script>
|