@contractkit/plugin-bruno 0.10.0 → 1.1.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 +7 -7
- package/.turbo/turbo-test$colon$ci.log +8 -9
- package/CHANGELOG.md +36 -0
- package/README.md +34 -12
- package/coverage/clover.xml +285 -323
- package/coverage/coverage-final.json +2 -3
- package/coverage/index.html +19 -19
- package/coverage/src/codegen-bruno.ts.html +218 -119
- package/coverage/src/index.html +19 -34
- package/coverage/tests/helpers.ts.html +9 -9
- package/coverage/tests/index.html +1 -1
- package/dist/codegen-bruno.d.ts +11 -0
- package/dist/codegen-bruno.d.ts.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -28
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/codegen-bruno.ts +40 -7
- package/src/index.ts +13 -19
- package/tests/codegen-bruno.test.ts +55 -67
- package/coverage/src/index.ts.html +0 -562
package/coverage/src/index.html
CHANGED
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">87.14% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>278/319</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">76.92% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>200/260</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">91.83% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>45/49</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">88.53% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>247/279</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,32 +80,17 @@
|
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
82
|
<td class="file high" data-value="codegen-bruno.ts"><a href="codegen-bruno.ts.html">codegen-bruno.ts</a></td>
|
|
83
|
-
<td data-value="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
83
|
+
<td data-value="87.14" class="pic high">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 87%"></div><div class="cover-empty" style="width: 13%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="
|
|
88
|
-
<td data-value="76.
|
|
89
|
-
<td data-value="
|
|
90
|
-
<td data-value="91.
|
|
91
|
-
<td data-value="
|
|
92
|
-
<td data-value="88.
|
|
93
|
-
<td data-value="
|
|
94
|
-
</tr>
|
|
95
|
-
|
|
96
|
-
<tr>
|
|
97
|
-
<td class="file low" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
|
|
98
|
-
<td data-value="41.3" class="pic low">
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width: 41%"></div><div class="cover-empty" style="width: 59%"></div></div>
|
|
100
|
-
</td>
|
|
101
|
-
<td data-value="41.3" class="pct low">41.3%</td>
|
|
102
|
-
<td data-value="46" class="abs low">19/46</td>
|
|
103
|
-
<td data-value="44.11" class="pct low">44.11%</td>
|
|
104
|
-
<td data-value="34" class="abs low">15/34</td>
|
|
105
|
-
<td data-value="80" class="pct high">80%</td>
|
|
106
|
-
<td data-value="5" class="abs high">4/5</td>
|
|
107
|
-
<td data-value="37.2" class="pct low">37.2%</td>
|
|
108
|
-
<td data-value="43" class="abs low">16/43</td>
|
|
86
|
+
<td data-value="87.14" class="pct high">87.14%</td>
|
|
87
|
+
<td data-value="319" class="abs high">278/319</td>
|
|
88
|
+
<td data-value="76.92" class="pct medium">76.92%</td>
|
|
89
|
+
<td data-value="260" class="abs medium">200/260</td>
|
|
90
|
+
<td data-value="91.83" class="pct high">91.83%</td>
|
|
91
|
+
<td data-value="49" class="abs high">45/49</td>
|
|
92
|
+
<td data-value="88.53" class="pct high">88.53%</td>
|
|
93
|
+
<td data-value="279" class="abs high">247/279</td>
|
|
109
94
|
</tr>
|
|
110
95
|
|
|
111
96
|
</tbody>
|
|
@@ -116,7 +101,7 @@
|
|
|
116
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
102
|
Code coverage generated by
|
|
118
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2026-05-
|
|
104
|
+
at 2026-05-01T19:41:36.879Z
|
|
120
105
|
</div>
|
|
121
106
|
<script src="../prettify.js"></script>
|
|
122
107
|
<script>
|
|
@@ -266,7 +266,7 @@
|
|
|
266
266
|
<span class="cline-any cline-neutral"> </span>
|
|
267
267
|
<span class="cline-any cline-neutral"> </span>
|
|
268
268
|
<span class="cline-any cline-neutral"> </span>
|
|
269
|
-
<span class="cline-any cline-yes">
|
|
269
|
+
<span class="cline-any cline-yes">246x</span>
|
|
270
270
|
<span class="cline-any cline-neutral"> </span>
|
|
271
271
|
<span class="cline-any cline-neutral"> </span>
|
|
272
272
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -384,10 +384,10 @@
|
|
|
384
384
|
<span class="cline-any cline-neutral"> </span>
|
|
385
385
|
<span class="cline-any cline-neutral"> </span>
|
|
386
386
|
<span class="cline-any cline-neutral"> </span>
|
|
387
|
-
<span class="cline-any cline-yes">
|
|
388
|
-
<span class="cline-any cline-yes">
|
|
389
|
-
<span class="cline-any cline-yes">
|
|
390
|
-
<span class="cline-any cline-yes">
|
|
387
|
+
<span class="cline-any cline-yes">93x</span>
|
|
388
|
+
<span class="cline-any cline-yes">93x</span>
|
|
389
|
+
<span class="cline-any cline-yes">93x</span>
|
|
390
|
+
<span class="cline-any cline-yes">93x</span>
|
|
391
391
|
<span class="cline-any cline-neutral"> </span>
|
|
392
392
|
<span class="cline-any cline-neutral"> </span>
|
|
393
393
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -402,12 +402,12 @@
|
|
|
402
402
|
<span class="cline-any cline-neutral"> </span>
|
|
403
403
|
<span class="cline-any cline-neutral"> </span>
|
|
404
404
|
<span class="cline-any cline-neutral"> </span>
|
|
405
|
-
<span class="cline-any cline-yes">
|
|
406
|
-
<span class="cline-any cline-yes">
|
|
405
|
+
<span class="cline-any cline-yes">89x</span>
|
|
406
|
+
<span class="cline-any cline-yes">89x</span>
|
|
407
407
|
<span class="cline-any cline-neutral"> </span>
|
|
408
408
|
<span class="cline-any cline-neutral"> </span>
|
|
409
409
|
<span class="cline-any cline-neutral"> </span>
|
|
410
|
-
<span class="cline-any cline-yes">
|
|
410
|
+
<span class="cline-any cline-yes">88x</span>
|
|
411
411
|
<span class="cline-any cline-neutral"> </span>
|
|
412
412
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type {
|
|
413
413
|
ContractRootNode,
|
|
@@ -589,7 +589,7 @@ export function opRoot(routes: OpRouteNode[], file = 'users.op', meta: Record<
|
|
|
589
589
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
590
590
|
Code coverage generated by
|
|
591
591
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
592
|
-
at 2026-05-
|
|
592
|
+
at 2026-05-01T19:41:36.879Z
|
|
593
593
|
</div>
|
|
594
594
|
<script src="../prettify.js"></script>
|
|
595
595
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2026-05-
|
|
104
|
+
at 2026-05-01T19:41:36.879Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../prettify.js"></script>
|
|
107
107
|
<script>
|
package/dist/codegen-bruno.d.ts
CHANGED
|
@@ -37,6 +37,17 @@ export interface OpenCollectionOptions {
|
|
|
37
37
|
* benefit from full coverage. Set to `false` to omit internal ops.
|
|
38
38
|
*/
|
|
39
39
|
includeInternal?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Map of environment name → variables. Each entry produces a
|
|
42
|
+
* `environments/<name>.yml` file with the variables in declaration order.
|
|
43
|
+
* Values are coerced to strings.
|
|
44
|
+
*
|
|
45
|
+
* When omitted, a default `environments/local.yml` is emitted with
|
|
46
|
+
* `baseUrl=http://localhost:3000` plus any auth env-var placeholders the
|
|
47
|
+
* default scheme requires. When provided, the default is replaced entirely
|
|
48
|
+
* — auth vars are not auto-injected, so include them explicitly if needed.
|
|
49
|
+
*/
|
|
50
|
+
environments?: Record<string, Record<string, unknown>>;
|
|
40
51
|
}
|
|
41
52
|
/**
|
|
42
53
|
* Generates an OpenCollection (https://spec.opencollection.com/) API collection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen-bruno.d.ts","sourceRoot":"","sources":["../src/codegen-bruno.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EAMV,gBAAgB,EAGnB,MAAM,mBAAmB,CAAC;AAK3B,iGAAiG;AACjG,MAAM,WAAW,kBAAkB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,8JAA8J;AAC9J,eAAO,MAAM,iBAAiB,qCAAqC,CAAC;AAEpE,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAED,kHAAkH;AAClH,MAAM,WAAW,gBAAgB;IAC7B,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACjD;AAED,qEAAqE;AACrE,MAAM,WAAW,qBAAqB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"codegen-bruno.d.ts","sourceRoot":"","sources":["../src/codegen-bruno.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EAMV,gBAAgB,EAGnB,MAAM,mBAAmB,CAAC;AAK3B,iGAAiG;AACjG,MAAM,WAAW,kBAAkB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,8JAA8J;AAC9J,eAAO,MAAM,iBAAiB,qCAAqC,CAAC;AAEpE,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAED,kHAAkH;AAClH,MAAM,WAAW,gBAAgB;IAC7B,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACjD;AAED,qEAAqE;AACrE,MAAM,WAAW,qBAAqB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,qBAAqB,GAAG,kBAAkB,EAAE,CAuDhH;AAED,sLAAsL;AACtL,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAUvD;AAsBD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAOxF;AA2cD,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASjD"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,13 +18,13 @@ export interface BrunoPluginConfig {
|
|
|
18
18
|
*/
|
|
19
19
|
includeInternal?: boolean;
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
21
|
+
* Map of environment name → variables. Each entry produces a
|
|
22
|
+
* `environments/<name>.yml` file. When omitted, a default `local.yml` is
|
|
23
|
+
* emitted with `baseUrl=http://localhost:3000` and any auth env-var
|
|
24
|
+
* placeholders. When provided, the default is replaced entirely; include
|
|
25
|
+
* auth variables (e.g. `token`) explicitly if you need them.
|
|
26
26
|
*/
|
|
27
|
-
|
|
27
|
+
environments?: Record<string, Record<string, unknown>>;
|
|
28
28
|
}
|
|
29
29
|
/** Full plugin options shape read from `ctx.options` — extends {@link BrunoPluginConfig} with the `auth` block. */
|
|
30
30
|
export interface BrunoPluginOptions extends BrunoPluginConfig {
|
|
@@ -41,7 +41,7 @@ export default plugin;
|
|
|
41
41
|
* Prefer the default export when loading via `contractkit.config.json`. Use this
|
|
42
42
|
* factory when constructing the plugin in code (e.g. in tests or custom build scripts).
|
|
43
43
|
*
|
|
44
|
-
* @param config - Plugin configuration (output paths
|
|
44
|
+
* @param config - Plugin configuration (output paths and feature flags).
|
|
45
45
|
* @param rootDir - Absolute path used to resolve relative paths in `config`.
|
|
46
46
|
* @param auth - Optional auth scheme configuration mirroring the `auth` key in plugin options.
|
|
47
47
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,8GAA8G;AAC9G,MAAM,WAAW,iBAAiB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,8GAA8G;AAC9G,MAAM,WAAW,iBAAiB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1D;AAED,mHAAmH;AACnH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IACzD,IAAI,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;KAAE,CAAC;CACnF;AAID,QAAA,MAAM,MAAM,EAAE,iBAuBb,CAAC;AAEF,eAAe,MAAM,CAAC;AAItB;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;CAAE,GAChF,iBAAiB,CAwBnB"}
|
package/dist/index.js
CHANGED
|
@@ -21,10 +21,9 @@ function generateOpenCollection(roots, options) {
|
|
|
21
21
|
relativePath: "opencollection.yml",
|
|
22
22
|
content: generateCollectionRoot(options.collectionName, defaultScheme)
|
|
23
23
|
});
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
24
|
+
for (const envFile of generateEnvFiles(options.environments, defaultScheme)) {
|
|
25
|
+
files.push(envFile);
|
|
26
|
+
}
|
|
28
27
|
for (let rootIdx = 0; rootIdx < roots.length; rootIdx++) {
|
|
29
28
|
const root = roots[rootIdx];
|
|
30
29
|
const folder = root.meta["area"] ? slugifyName(root.meta["area"]) : deriveFolderName(root.file);
|
|
@@ -125,23 +124,45 @@ function generateCollectionRoot(name, scheme) {
|
|
|
125
124
|
return lines.join("\n");
|
|
126
125
|
}
|
|
127
126
|
__name(generateCollectionRoot, "generateCollectionRoot");
|
|
128
|
-
function
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
127
|
+
function generateEnvFiles(environments, scheme) {
|
|
128
|
+
if (environments && Object.keys(environments).length > 0) {
|
|
129
|
+
return Object.entries(environments).map(([name, variables]) => ({
|
|
130
|
+
relativePath: `environments/${name}.yml`,
|
|
131
|
+
content: renderEnvFile(displayNameFor(name), variables)
|
|
132
|
+
}));
|
|
133
|
+
}
|
|
134
|
+
const defaultVars = {
|
|
135
|
+
baseUrl: "http://localhost:3000"
|
|
136
|
+
};
|
|
135
137
|
if (scheme) {
|
|
136
|
-
for (const varName of authEnvVarNames(scheme))
|
|
137
|
-
|
|
138
|
-
|
|
138
|
+
for (const varName of authEnvVarNames(scheme)) defaultVars[varName] = "";
|
|
139
|
+
}
|
|
140
|
+
return [
|
|
141
|
+
{
|
|
142
|
+
relativePath: "environments/local.yml",
|
|
143
|
+
content: renderEnvFile("Local", defaultVars)
|
|
139
144
|
}
|
|
145
|
+
];
|
|
146
|
+
}
|
|
147
|
+
__name(generateEnvFiles, "generateEnvFiles");
|
|
148
|
+
function renderEnvFile(name, variables) {
|
|
149
|
+
const lines = [
|
|
150
|
+
`name: ${name}`,
|
|
151
|
+
`variables:`
|
|
152
|
+
];
|
|
153
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
154
|
+
const escaped = String(value).replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
155
|
+
lines.push(` - name: ${key}`);
|
|
156
|
+
lines.push(` value: "${escaped}"`);
|
|
140
157
|
}
|
|
141
158
|
lines.push(``);
|
|
142
159
|
return lines.join("\n");
|
|
143
160
|
}
|
|
144
|
-
__name(
|
|
161
|
+
__name(renderEnvFile, "renderEnvFile");
|
|
162
|
+
function displayNameFor(envKey) {
|
|
163
|
+
return envKey.charAt(0).toUpperCase() + envKey.slice(1);
|
|
164
|
+
}
|
|
165
|
+
__name(displayNameFor, "displayNameFor");
|
|
145
166
|
function generateFolderFile(name, seq) {
|
|
146
167
|
return [
|
|
147
168
|
`info:`,
|
|
@@ -581,16 +602,16 @@ var plugin = {
|
|
|
581
602
|
const outDir = resolve(base, config.output ?? "bruno-collection");
|
|
582
603
|
const collectionName = config.collectionName ?? basename2(ctx.rootDir);
|
|
583
604
|
cleanupTrackedFiles(outDir);
|
|
584
|
-
const overrideDirAbs = config.overrideDir ? resolve(ctx.rootDir, config.overrideDir) : void 0;
|
|
585
605
|
const files = generateOpenCollection(opRoots, {
|
|
586
606
|
collectionName,
|
|
587
607
|
contractRoots,
|
|
588
608
|
auth,
|
|
589
609
|
randomExamples: config.randomExamples ?? true,
|
|
590
|
-
includeInternal: config.includeInternal
|
|
610
|
+
includeInternal: config.includeInternal,
|
|
611
|
+
environments: config.environments
|
|
591
612
|
});
|
|
592
613
|
for (const { relativePath, content } of files) {
|
|
593
|
-
ctx.emitFile(resolve(outDir, relativePath),
|
|
614
|
+
ctx.emitFile(resolve(outDir, relativePath), content);
|
|
594
615
|
}
|
|
595
616
|
}
|
|
596
617
|
};
|
|
@@ -604,27 +625,21 @@ function createBrunoPlugin(config, rootDir, auth) {
|
|
|
604
625
|
const outDir = resolve(base, config.output ?? "bruno-collection");
|
|
605
626
|
const collectionName = config.collectionName ?? basename2(rootDir);
|
|
606
627
|
cleanupTrackedFiles(outDir);
|
|
607
|
-
const overrideDirAbs = config.overrideDir ? resolve(rootDir, config.overrideDir) : void 0;
|
|
608
628
|
const files = generateOpenCollection(opRoots, {
|
|
609
629
|
collectionName,
|
|
610
630
|
contractRoots,
|
|
611
631
|
auth,
|
|
612
|
-
randomExamples: config.randomExamples ?? true
|
|
632
|
+
randomExamples: config.randomExamples ?? true,
|
|
633
|
+
includeInternal: config.includeInternal,
|
|
634
|
+
environments: config.environments
|
|
613
635
|
});
|
|
614
636
|
for (const { relativePath, content } of files) {
|
|
615
|
-
ctx.emitFile(resolve(outDir, relativePath),
|
|
637
|
+
ctx.emitFile(resolve(outDir, relativePath), content);
|
|
616
638
|
}
|
|
617
639
|
}
|
|
618
640
|
};
|
|
619
641
|
}
|
|
620
642
|
__name(createBrunoPlugin, "createBrunoPlugin");
|
|
621
|
-
function applyDirOverride(relativePath, content, overrideDirAbs) {
|
|
622
|
-
if (!overrideDirAbs || relativePath === MANIFEST_FILENAME) return content;
|
|
623
|
-
const overrideFile = resolve(overrideDirAbs, relativePath);
|
|
624
|
-
if (!existsSync(overrideFile)) return content;
|
|
625
|
-
return mergePluginFile(content, readFileSync(overrideFile, "utf-8"));
|
|
626
|
-
}
|
|
627
|
-
__name(applyDirOverride, "applyDirOverride");
|
|
628
643
|
function cleanupTrackedFiles(outDir) {
|
|
629
644
|
const manifestPath = resolve(outDir, MANIFEST_FILENAME);
|
|
630
645
|
if (!existsSync(manifestPath)) return;
|