@stackwright-pro/scaffold-hooks 0.2.0 → 0.3.0-alpha.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.log +10 -10
- package/.turbo/turbo-test.log +47 -4
- package/CHANGELOG.md +17 -0
- package/coverage/coverage-final.json +2 -1
- package/coverage/index.html +26 -11
- package/coverage/index.ts.html +514 -0
- package/dist/index.d.mts +22 -11
- package/dist/index.d.ts +22 -11
- package/dist/index.js +10 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -4
- package/src/index.ts +25 -14
- package/test/registry-integration.test.ts +211 -0
- package/tsconfig.json +3 -17
- package/tsconfig.tsbuildinfo +1 -0
- package/tsup.config.ts +1 -3
|
@@ -0,0 +1,514 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for index.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="index.html">All files</a> index.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">93.75% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>30/32</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">57.14% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>8/14</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>4/4</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">93.75% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>30/32</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</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>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
211
|
+
<span class="cline-any cline-neutral"> </span>
|
|
212
|
+
<span class="cline-any cline-neutral"> </span>
|
|
213
|
+
<span class="cline-any cline-neutral"> </span>
|
|
214
|
+
<span class="cline-any cline-neutral"> </span>
|
|
215
|
+
<span class="cline-any cline-neutral"> </span>
|
|
216
|
+
<span class="cline-any cline-neutral"> </span>
|
|
217
|
+
<span class="cline-any cline-neutral"> </span>
|
|
218
|
+
<span class="cline-any cline-neutral"> </span>
|
|
219
|
+
<span class="cline-any cline-neutral"> </span>
|
|
220
|
+
<span class="cline-any cline-yes">1x</span>
|
|
221
|
+
<span class="cline-any cline-neutral"> </span>
|
|
222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
223
|
+
<span class="cline-any cline-neutral"> </span>
|
|
224
|
+
<span class="cline-any cline-neutral"> </span>
|
|
225
|
+
<span class="cline-any cline-neutral"> </span>
|
|
226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
227
|
+
<span class="cline-any cline-neutral"> </span>
|
|
228
|
+
<span class="cline-any cline-neutral"> </span>
|
|
229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
230
|
+
<span class="cline-any cline-yes">1x</span>
|
|
231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
234
|
+
<span class="cline-any cline-neutral"> </span>
|
|
235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
237
|
+
<span class="cline-any cline-neutral"> </span>
|
|
238
|
+
<span class="cline-any cline-neutral"> </span>
|
|
239
|
+
<span class="cline-any cline-yes">1x</span>
|
|
240
|
+
<span class="cline-any cline-neutral"> </span>
|
|
241
|
+
<span class="cline-any cline-neutral"> </span>
|
|
242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
246
|
+
<span class="cline-any cline-neutral"> </span>
|
|
247
|
+
<span class="cline-any cline-neutral"> </span>
|
|
248
|
+
<span class="cline-any cline-neutral"> </span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
253
|
+
<span class="cline-any cline-neutral"> </span>
|
|
254
|
+
<span class="cline-any cline-neutral"> </span>
|
|
255
|
+
<span class="cline-any cline-neutral"> </span>
|
|
256
|
+
<span class="cline-any cline-neutral"> </span>
|
|
257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
259
|
+
<span class="cline-any cline-neutral"> </span>
|
|
260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
261
|
+
<span class="cline-any cline-neutral"> </span>
|
|
262
|
+
<span class="cline-any cline-yes">8x</span>
|
|
263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
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">1x</span>
|
|
269
|
+
<span class="cline-any cline-yes">1x</span>
|
|
270
|
+
<span class="cline-any cline-yes">1x</span>
|
|
271
|
+
<span class="cline-any cline-yes">1x</span>
|
|
272
|
+
<span class="cline-any cline-neutral"> </span>
|
|
273
|
+
<span class="cline-any cline-neutral"> </span>
|
|
274
|
+
<span class="cline-any cline-yes">1x</span>
|
|
275
|
+
<span class="cline-any cline-yes">7x</span>
|
|
276
|
+
<span class="cline-any cline-no"> </span>
|
|
277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
278
|
+
<span class="cline-any cline-yes">7x</span>
|
|
279
|
+
<span class="cline-any cline-no"> </span>
|
|
280
|
+
<span class="cline-any cline-neutral"> </span>
|
|
281
|
+
<span class="cline-any cline-neutral"> </span>
|
|
282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
283
|
+
<span class="cline-any cline-neutral"> </span>
|
|
284
|
+
<span class="cline-any cline-yes">1x</span>
|
|
285
|
+
<span class="cline-any cline-yes">1x</span>
|
|
286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
288
|
+
<span class="cline-any cline-yes">1x</span>
|
|
289
|
+
<span class="cline-any cline-yes">1x</span>
|
|
290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
292
|
+
<span class="cline-any cline-yes">1x</span>
|
|
293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
296
|
+
<span class="cline-any cline-neutral"> </span>
|
|
297
|
+
<span class="cline-any cline-neutral"> </span>
|
|
298
|
+
<span class="cline-any cline-neutral"> </span>
|
|
299
|
+
<span class="cline-any cline-neutral"> </span>
|
|
300
|
+
<span class="cline-any cline-yes">1x</span>
|
|
301
|
+
<span class="cline-any cline-yes">1x</span>
|
|
302
|
+
<span class="cline-any cline-yes">1x</span>
|
|
303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
306
|
+
<span class="cline-any cline-yes">8x</span>
|
|
307
|
+
<span class="cline-any cline-neutral"> </span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-neutral"> </span>
|
|
310
|
+
<span class="cline-any cline-neutral"> </span>
|
|
311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
312
|
+
<span class="cline-any cline-yes">1x</span>
|
|
313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
315
|
+
<span class="cline-any cline-yes">1x</span>
|
|
316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
318
|
+
<span class="cline-any cline-yes">1x</span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
325
|
+
<span class="cline-any cline-yes">1x</span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<span class="cline-any cline-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-yes">1x</span>
|
|
331
|
+
<span class="cline-any cline-yes">1x</span>
|
|
332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
334
|
+
<span class="cline-any cline-neutral"> </span>
|
|
335
|
+
<span class="cline-any cline-yes">8x</span>
|
|
336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
338
|
+
<span class="cline-any cline-neutral"> </span>
|
|
339
|
+
<span class="cline-any cline-neutral"> </span>
|
|
340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-yes">1x</span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
343
|
+
<span class="cline-any cline-neutral"> </span>
|
|
344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
345
|
+
<span class="cline-any cline-yes">8x</span>
|
|
346
|
+
<span class="cline-any cline-neutral"> </span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-neutral"> </span>
|
|
349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-yes">1x</span>
|
|
352
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/**
|
|
353
|
+
* @stackwright-pro/scaffold-hooks
|
|
354
|
+
*
|
|
355
|
+
* Auto-registers Pro packages during Stackwright project scaffolding.
|
|
356
|
+
* Uses @stackwright/hooks-registry singleton to survive module boundary crossings.
|
|
357
|
+
*/
|
|
358
|
+
|
|
359
|
+
import chalk from 'chalk';
|
|
360
|
+
import { registerScaffoldHook, type ScaffoldHookContext } from '@stackwright/hooks-registry';
|
|
361
|
+
|
|
362
|
+
// Fixed npm versions for @stackwright/* packages
|
|
363
|
+
const STACKWRIGHT_NPM_VERSIONS: Record<string, string> = {
|
|
364
|
+
'@stackwright/core': '^0.7.0',
|
|
365
|
+
'@stackwright/icons': '^0.3.0',
|
|
366
|
+
'@stackwright/nextjs': '^0.3.1',
|
|
367
|
+
'@stackwright/ui-shadcn': '^0.1.0',
|
|
368
|
+
'@stackwright/build-scripts': '^0.4.0',
|
|
369
|
+
'@stackwright/mcp': '^0.2.0',
|
|
370
|
+
'@stackwright/otters': '^0.2.0',
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
const PRO_DEPENDENCIES: Record<string, string> = {
|
|
374
|
+
'@stackwright-pro/mcp': 'latest',
|
|
375
|
+
'@stackwright-pro/otters': 'latest',
|
|
376
|
+
'@stackwright-pro/openapi': 'latest',
|
|
377
|
+
'@stackwright-pro/auth': 'latest',
|
|
378
|
+
'@stackwright-pro/auth-nextjs': 'latest',
|
|
379
|
+
zod: '^3.23.0',
|
|
380
|
+
};
|
|
381
|
+
|
|
382
|
+
const PRO_DEV_DEPENDENCIES: Record<string, string> = {
|
|
383
|
+
'@stoplight/prism-cli': '^5.14.2',
|
|
384
|
+
};
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* Register all Pro scaffold hooks with the shared registry.
|
|
388
|
+
*
|
|
389
|
+
* Uses @stackwright/hooks-registry's globalThis-based singleton so hooks
|
|
390
|
+
* survive module boundary crossings between Pro packages and the CLI.
|
|
391
|
+
*
|
|
392
|
+
* Call this BEFORE calling scaffold() to ensure hooks run in the correct context.
|
|
393
|
+
*
|
|
394
|
+
* @example
|
|
395
|
+
* ```typescript
|
|
396
|
+
* import { registerProScaffoldHooks } from '@stackwright-pro/scaffold-hooks';
|
|
397
|
+
*
|
|
398
|
+
* // Register hooks (they go to the shared global registry)
|
|
399
|
+
* registerProScaffoldHooks();
|
|
400
|
+
*
|
|
401
|
+
* // Now when CLI calls scaffold(), it will see these hooks
|
|
402
|
+
* ```
|
|
403
|
+
*/
|
|
404
|
+
export function registerProScaffoldHooks(): void {
|
|
405
|
+
registerScaffoldHook({
|
|
406
|
+
type: 'preInstall',
|
|
407
|
+
name: 'pro-dependencies',
|
|
408
|
+
priority: 10,
|
|
409
|
+
critical: false,
|
|
410
|
+
handler: async (ctx: ScaffoldHookContext) => {
|
|
411
|
+
const packageJson = ctx.packageJson as Record<string, unknown>;
|
|
412
|
+
const dependencies = (packageJson.dependencies as Record<string, string>) || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
413
|
+
const devDependencies = (packageJson.devDependencies as Record<string, string>) || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
414
|
+
const scripts = (packageJson.scripts as Record<string, string>) || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
415
|
+
|
|
416
|
+
// Fix workspace:* references from scaffold
|
|
417
|
+
for (const [pkgName, version] of Object.entries(STACKWRIGHT_NPM_VERSIONS)) {
|
|
418
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (dependencies[pkgName] === 'workspace:*') {
|
|
419
|
+
<span class="cstat-no" title="statement not covered" > dependencies[pkgName] = version;</span>
|
|
420
|
+
}
|
|
421
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (devDependencies[pkgName] === 'workspace:*') {
|
|
422
|
+
<span class="cstat-no" title="statement not covered" > devDependencies[pkgName] = version;</span>
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
// Add Pro MCP packages
|
|
427
|
+
dependencies['@stackwright/mcp'] = STACKWRIGHT_NPM_VERSIONS['@stackwright/mcp']!;
|
|
428
|
+
dependencies['@stackwright-pro/mcp'] = 'latest';
|
|
429
|
+
|
|
430
|
+
// Add Pro dependencies
|
|
431
|
+
Object.assign(dependencies, PRO_DEPENDENCIES);
|
|
432
|
+
Object.assign(devDependencies, PRO_DEV_DEPENDENCIES);
|
|
433
|
+
|
|
434
|
+
// Add role-based dev scripts
|
|
435
|
+
Object.assign(scripts, {
|
|
436
|
+
'dev:admin': 'MOCK_USER=admin next dev',
|
|
437
|
+
'dev:analyst': 'MOCK_USER=analyst next dev',
|
|
438
|
+
'dev:viewer': 'MOCK_USER=viewer next dev',
|
|
439
|
+
prebuild: 'node scripts/prebuild.js',
|
|
440
|
+
predev: 'node scripts/prebuild.js',
|
|
441
|
+
});
|
|
442
|
+
|
|
443
|
+
packageJson.dependencies = dependencies;
|
|
444
|
+
packageJson.devDependencies = devDependencies;
|
|
445
|
+
packageJson.scripts = scripts;
|
|
446
|
+
},
|
|
447
|
+
});
|
|
448
|
+
|
|
449
|
+
registerScaffoldHook({
|
|
450
|
+
type: 'preInstall',
|
|
451
|
+
name: 'pro-mcp-config',
|
|
452
|
+
priority: 20,
|
|
453
|
+
critical: false,
|
|
454
|
+
handler: async (ctx) => {
|
|
455
|
+
const codePuppyConfig = (ctx.codePuppyConfig || <span class="branch-1 cbranch-no" title="branch not covered" >{})</span> as Record<string, unknown>;
|
|
456
|
+
|
|
457
|
+
// Ensure structure exists
|
|
458
|
+
codePuppyConfig.mcp_servers = codePuppyConfig.mcp_servers || {};
|
|
459
|
+
|
|
460
|
+
// Add Pro MCP server
|
|
461
|
+
(codePuppyConfig.mcp_servers as Record<string, unknown>)['stackwright-pro'] = {
|
|
462
|
+
command: 'node',
|
|
463
|
+
args: ['node_modules/@stackwright-pro/mcp/dist/server.js'],
|
|
464
|
+
env: { NODE_ENV: 'development' },
|
|
465
|
+
};
|
|
466
|
+
|
|
467
|
+
// Set agents_path to include both OSS and Pro otters
|
|
468
|
+
codePuppyConfig.agents_path = [
|
|
469
|
+
'node_modules/@stackwright/otters',
|
|
470
|
+
'node_modules/@stackwright-pro/otters',
|
|
471
|
+
];
|
|
472
|
+
|
|
473
|
+
ctx.codePuppyConfig = codePuppyConfig;
|
|
474
|
+
console.log(chalk.green('✅ Pro MCP server configured'));
|
|
475
|
+
},
|
|
476
|
+
});
|
|
477
|
+
|
|
478
|
+
registerScaffoldHook({
|
|
479
|
+
type: 'postInstall',
|
|
480
|
+
name: 'verify-pro-installation',
|
|
481
|
+
priority: 50,
|
|
482
|
+
critical: false,
|
|
483
|
+
handler: async () => {
|
|
484
|
+
console.log(chalk.cyan('🦦🦦 Pro packages ready!'));
|
|
485
|
+
},
|
|
486
|
+
});
|
|
487
|
+
|
|
488
|
+
console.log(chalk.bold.cyan('🦦🔗 @stackwright-pro/scaffold-hooks registered'));
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
/**
|
|
492
|
+
* @deprecated Use registerProScaffoldHooks() instead. Kept for backward compatibility.
|
|
493
|
+
*/
|
|
494
|
+
export const createProScaffoldHooks = registerProScaffoldHooks;
|
|
495
|
+
</pre></td></tr></table></pre>
|
|
496
|
+
|
|
497
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
498
|
+
</div><!-- /wrapper -->
|
|
499
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
500
|
+
Code coverage generated by
|
|
501
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
502
|
+
at 2026-04-12T21:04:48.167Z
|
|
503
|
+
</div>
|
|
504
|
+
<script src="prettify.js"></script>
|
|
505
|
+
<script>
|
|
506
|
+
window.onload = function () {
|
|
507
|
+
prettyPrint();
|
|
508
|
+
};
|
|
509
|
+
</script>
|
|
510
|
+
<script src="sorter.js"></script>
|
|
511
|
+
<script src="block-navigation.js"></script>
|
|
512
|
+
</body>
|
|
513
|
+
</html>
|
|
514
|
+
|
package/dist/index.d.mts
CHANGED
|
@@ -1,20 +1,31 @@
|
|
|
1
|
-
import { ScaffoldHook } from '@stackwright/scaffold-core';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* @stackwright-pro/scaffold-hooks
|
|
5
3
|
*
|
|
6
4
|
* Auto-registers Pro packages during Stackwright project scaffolding.
|
|
7
|
-
*
|
|
8
|
-
* with the caller's scaffold-core instance.
|
|
5
|
+
* Uses @stackwright/hooks-registry singleton to survive module boundary crossings.
|
|
9
6
|
*/
|
|
10
|
-
|
|
11
|
-
interface CreateScaffoldHooksOptions {
|
|
12
|
-
registerScaffoldHook: (hook: ScaffoldHook) => void;
|
|
13
|
-
}
|
|
14
7
|
/**
|
|
15
|
-
*
|
|
8
|
+
* Register all Pro scaffold hooks with the shared registry.
|
|
9
|
+
*
|
|
10
|
+
* Uses @stackwright/hooks-registry's globalThis-based singleton so hooks
|
|
11
|
+
* survive module boundary crossings between Pro packages and the CLI.
|
|
12
|
+
*
|
|
16
13
|
* Call this BEFORE calling scaffold() to ensure hooks run in the correct context.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { registerProScaffoldHooks } from '@stackwright-pro/scaffold-hooks';
|
|
18
|
+
*
|
|
19
|
+
* // Register hooks (they go to the shared global registry)
|
|
20
|
+
* registerProScaffoldHooks();
|
|
21
|
+
*
|
|
22
|
+
* // Now when CLI calls scaffold(), it will see these hooks
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
declare function registerProScaffoldHooks(): void;
|
|
26
|
+
/**
|
|
27
|
+
* @deprecated Use registerProScaffoldHooks() instead. Kept for backward compatibility.
|
|
17
28
|
*/
|
|
18
|
-
declare
|
|
29
|
+
declare const createProScaffoldHooks: typeof registerProScaffoldHooks;
|
|
19
30
|
|
|
20
|
-
export { createProScaffoldHooks };
|
|
31
|
+
export { createProScaffoldHooks, registerProScaffoldHooks };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,31 @@
|
|
|
1
|
-
import { ScaffoldHook } from '@stackwright/scaffold-core';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* @stackwright-pro/scaffold-hooks
|
|
5
3
|
*
|
|
6
4
|
* Auto-registers Pro packages during Stackwright project scaffolding.
|
|
7
|
-
*
|
|
8
|
-
* with the caller's scaffold-core instance.
|
|
5
|
+
* Uses @stackwright/hooks-registry singleton to survive module boundary crossings.
|
|
9
6
|
*/
|
|
10
|
-
|
|
11
|
-
interface CreateScaffoldHooksOptions {
|
|
12
|
-
registerScaffoldHook: (hook: ScaffoldHook) => void;
|
|
13
|
-
}
|
|
14
7
|
/**
|
|
15
|
-
*
|
|
8
|
+
* Register all Pro scaffold hooks with the shared registry.
|
|
9
|
+
*
|
|
10
|
+
* Uses @stackwright/hooks-registry's globalThis-based singleton so hooks
|
|
11
|
+
* survive module boundary crossings between Pro packages and the CLI.
|
|
12
|
+
*
|
|
16
13
|
* Call this BEFORE calling scaffold() to ensure hooks run in the correct context.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { registerProScaffoldHooks } from '@stackwright-pro/scaffold-hooks';
|
|
18
|
+
*
|
|
19
|
+
* // Register hooks (they go to the shared global registry)
|
|
20
|
+
* registerProScaffoldHooks();
|
|
21
|
+
*
|
|
22
|
+
* // Now when CLI calls scaffold(), it will see these hooks
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
declare function registerProScaffoldHooks(): void;
|
|
26
|
+
/**
|
|
27
|
+
* @deprecated Use registerProScaffoldHooks() instead. Kept for backward compatibility.
|
|
17
28
|
*/
|
|
18
|
-
declare
|
|
29
|
+
declare const createProScaffoldHooks: typeof registerProScaffoldHooks;
|
|
19
30
|
|
|
20
|
-
export { createProScaffoldHooks };
|
|
31
|
+
export { createProScaffoldHooks, registerProScaffoldHooks };
|