@grnsft/if 0.3.2 → 0.3.3-beta.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/.commitlintrc.js +3 -0
- package/.release-it.json +18 -0
- package/CONTRIBUTING.md +77 -4
- package/README.md +34 -26
- package/build/builtins/export-csv-raw.js +4 -4
- package/build/builtins/export-csv.js +5 -5
- package/build/builtins/export-log.js +26 -2
- package/build/builtins/export-yaml.js +3 -3
- package/build/config/config.d.ts +3 -3
- package/build/config/config.js +23 -27
- package/build/config/strings.d.ts +1 -0
- package/build/config/strings.js +8 -3
- package/build/index.js +23 -14
- package/build/lib/environment.d.ts +5 -0
- package/build/lib/environment.js +69 -0
- package/build/lib/exhaust.d.ts +2 -1
- package/build/lib/exhaust.js +11 -9
- package/build/lib/initialize.d.ts +2 -2
- package/build/lib/initialize.js +5 -5
- package/build/lib/load.d.ts +1 -29
- package/build/lib/load.js +2 -5
- package/build/types/environment.d.ts +18 -0
- package/build/types/environment.js +3 -0
- package/build/types/manifest.d.ts +1 -0
- package/build/types/manifest.js +1 -1
- package/build/types/process-args.d.ts +13 -1
- package/build/types/process-args.js +1 -1
- package/build/util/args.d.ts +3 -5
- package/build/util/args.js +14 -10
- package/build/util/errors.d.ts +1 -1
- package/build/util/errors.js +2 -3
- package/build/util/helpers.d.ts +6 -0
- package/build/util/helpers.js +9 -3
- package/build/util/os-checker.d.ts +7 -0
- package/build/util/os-checker.js +97 -0
- package/build/util/validations.d.ts +90 -4
- package/build/util/validations.js +14 -2
- package/github-processes.md +10 -0
- package/{examples/manifests/pipeline-demo-2.yml → manifests/bugs/aggregation-error-wrong-metric.yml} +8 -34
- package/manifests/bugs/azure-importer-ignoring-defaults.yml +61 -0
- package/manifests/bugs/azure-importer-incorrect-calculation.yml +56 -0
- package/manifests/bugs/initialize-error-no-config.yml +27 -0
- package/manifests/bugs/initialize-error-no-path.yml +28 -0
- package/manifests/bugs/initialize-error-no-plugins.yml +23 -0
- package/manifests/bugs/input-error-missing-duration.yml +21 -0
- package/manifests/bugs/pipeline-error-naming-mismatch.yml +28 -0
- package/manifests/bugs/pipeline-error-uninitialized-plugin.yml +29 -0
- package/{examples/manifests/boavizta-pipeline.yml → manifests/bugs/pipeline-ordering-error.yml} +7 -10
- package/{examples/manifests → manifests/examples}/basic.yml +3 -2
- package/{examples/manifests → manifests/examples}/generics.yml +2 -2
- package/{examples/manifests/asim-demo.yml → manifests/examples/mock-cpu-util-to-carbon.yml} +3 -7
- package/{examples/manifests → manifests/examples}/nesting.yml +3 -2
- package/{examples/manifests → manifests/examples}/pipeline-teads-sci.yml +1 -1
- package/{examples/manifests/pipeline-demo.yml → manifests/examples/pipeline-with-aggregate.yml} +2 -2
- package/{examples/manifests → manifests/examples}/pipeline-with-mocks.yml +3 -2
- package/manifests/features/aggregate-horizontal.yml +44 -0
- package/manifests/features/aggregate-vertical.yml +44 -0
- package/manifests/features/aggregate.yml +44 -0
- package/manifests/integrations/mock-obs-groupby.yml +39 -0
- package/manifests/integrations/mock-obs-time-sync.yml +65 -0
- package/manifests/plugins/cloud-metadata/failure-invalid-vendor.yaml +21 -0
- package/{examples/manifests/cloud-metadata.yml → manifests/plugins/cloud-metadata/success.yml} +2 -1
- package/manifests/plugins/coefficient/failure-invalid-config-input-param.yml +24 -0
- package/{examples/manifests/coefficient.yml → manifests/plugins/coefficient/success.yml} +2 -1
- package/manifests/plugins/divide/failure-invalid-config-denominator.yml +39 -0
- package/manifests/plugins/divide/success.yml +39 -0
- package/manifests/plugins/groupby/failure-invalid-config-group.yml +47 -0
- package/{examples/manifests/group-by.yml → manifests/plugins/groupby/success.yml} +3 -2
- package/manifests/plugins/mock-observations/failure-invalid-config-cpu-range.yml +34 -0
- package/{examples/manifests/mock-observation.yml → manifests/plugins/mock-observations/success.yml} +2 -1
- package/manifests/plugins/multiply/failure-input-parameter-is-missing.yml +24 -0
- package/{examples/manifests/multiply.yml → manifests/plugins/multiply/success.yml} +3 -2
- package/manifests/plugins/regex/failure-missing-input-param.yml +24 -0
- package/{examples/manifests/regex.yml → manifests/plugins/regex/success.yml} +3 -2
- package/manifests/plugins/sci/failure-invalid-config-value.yml +28 -0
- package/{examples/manifests/sci.yml → manifests/plugins/sci/success.yml} +3 -2
- package/manifests/plugins/sci-m/failure-invalid-default-emission-value.yml +24 -0
- package/{examples/manifests/sci-m.yml → manifests/plugins/sci-m/success.yml} +2 -1
- package/manifests/plugins/shell/failure-invalid-command.yml +21 -0
- package/{examples/manifests/shell.yml → manifests/plugins/shell/success.yml} +3 -2
- package/manifests/plugins/sum/failure-missing-input-param.yml +24 -0
- package/{examples/manifests/sum.yml → manifests/plugins/sum/success.yml} +3 -2
- package/manifests/plugins/tdp-finder/failure-missing-input-param.yml +18 -0
- package/{examples/manifests/tdp-finder.yml → manifests/plugins/tdp-finder/success.yml} +2 -1
- package/manifests/plugins/time-sync/failure-config-start-later-end.yml +34 -0
- package/{examples/manifests/time-sync.yml → manifests/plugins/time-sync/success.yml} +4 -2
- package/package.json +4 -2
- package/examples/manifests/azure-importer.yml +0 -24
- package/examples/manifests/basic-demo.yml +0 -70
- package/examples/manifests/boavizta-cloud.yml +0 -20
- package/examples/manifests/boavizta.yml +0 -26
- package/examples/manifests/ccf.yml +0 -20
- package/examples/manifests/cloud-metadata-teads.yml +0 -41
- package/examples/manifests/co2js.yml +0 -30
- package/examples/manifests/csv-export.yml +0 -34
- package/examples/manifests/e-mem.yml +0 -21
- package/examples/manifests/e-net.yml +0 -22
- package/examples/manifests/nesting-demo.yml +0 -89
- package/examples/manifests/pipeline-demo-1.yml +0 -85
- package/examples/manifests/pipeline-with-generics.yml +0 -152
- package/examples/manifests/sci-e.yml +0 -19
- package/examples/manifests/sci-o.yml +0 -26
- package/examples/manifests/teads-curve.yml +0 -20
- package/examples/manifests/watt-time.yml +0 -35
- /package/{examples/manifests/divide.yml → manifests/integrations/cloud-metadata-divide-boavizta.yml} +0 -0
package/.commitlintrc.js
CHANGED
package/.release-it.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"git": {
|
|
3
|
+
"requireBranch": false,
|
|
4
|
+
"requireUpstream": true,
|
|
5
|
+
"commit": true,
|
|
6
|
+
"commitMessage": "chore(release): ${version} ✨",
|
|
7
|
+
"push": true,
|
|
8
|
+
"pushArgs": ["--follow-tags"],
|
|
9
|
+
"tag": false
|
|
10
|
+
},
|
|
11
|
+
"github": {
|
|
12
|
+
"tokenRef": "GITHUB_TOKEN",
|
|
13
|
+
"preRelease": true
|
|
14
|
+
},
|
|
15
|
+
"npm": {
|
|
16
|
+
"publish": false
|
|
17
|
+
}
|
|
18
|
+
}
|
package/CONTRIBUTING.md
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
## Contribution Guidelines <!-- omit from toc -->
|
|
2
2
|
|
|
3
|
-
> **HACKATHON PARTICIPANTS**: please note that these contribution guidelines are intended for community contributions to IF, and NOT hackathon submissions. If you are building plugins, tooling or other add-ons to IF, please maintain them in your own repositories and submit links to the hackathon judges.**
|
|
4
|
-
|
|
5
|
-
|
|
6
3
|
First off, thanks for taking the time to contribute! 🎉
|
|
7
4
|
|
|
8
5
|
The following document is a rule set of guidelines for contributing.
|
|
@@ -10,6 +7,7 @@ The following document is a rule set of guidelines for contributing.
|
|
|
10
7
|
## Table of Contents <!-- omit from toc -->
|
|
11
8
|
|
|
12
9
|
- [What and when to contribute](#what-and-when-to-contribute)
|
|
10
|
+
- [Reporting bugs](#reporting-bugs)
|
|
13
11
|
- [Code Contributions](#code-contributions)
|
|
14
12
|
- [Step 1: Fork](#step-1-fork)
|
|
15
13
|
- [Step 2: Branch](#step-2-branch)
|
|
@@ -25,7 +23,60 @@ The following document is a rule set of guidelines for contributing.
|
|
|
25
23
|
|
|
26
24
|
## What and when to contribute
|
|
27
25
|
|
|
28
|
-
You can contribute anything to the IF, but we are likely to close out unsolicited PRs without merging them. Our issue board is completely open and we have tags (`help-wanted`, `good-first-issue`) to help contributors to choose tasks to work on. We recommend speaking to the core team on Github before starting working on an issue. You can do this by raising an issue or commenting on an existing issue. This helps us to direct your energy
|
|
26
|
+
You can contribute anything to the IF, but we are likely to close out unsolicited PRs without merging them. Our issue board is completely open and we have tags (`help-wanted`, `good-first-issue`) to help contributors to choose tasks to work on. We recommend speaking to the core team on Github before starting working on an issue. You can do this by raising an issue or commenting on an existing issue. This helps us to direct your energy in directions that are aligned with our roadmap, prevent multiple people working on the same task, and better manage our board. This all makes it much more likely that your work will get merged.
|
|
27
|
+
|
|
28
|
+
## Reporting bugs
|
|
29
|
+
|
|
30
|
+
We appreciate bug reports! If you experience an issue with IF or one of our plugins, you can report it using our bug reporting template. To do this:
|
|
31
|
+
|
|
32
|
+
1. Go to the [IF repository](https://github.com/Green-Software-Foundation/if) (or [plugin repository](https://github.com/Green-Software-Foundation/if-plugins) if you bug relates to a specific plugin)
|
|
33
|
+
2. Click on the `Issues` tab
|
|
34
|
+
3. Click on `Create New Issue` and select the `Bug Report` template.
|
|
35
|
+
4. Fill out the requested information.
|
|
36
|
+
|
|
37
|
+
The more detailed information you provide in the bug report, the easier it will be for us to diagnose, triage and resolve your issue. We ask for some simple information about your issue, including a description of the error, the expected behaviour, the actual behaviour and the stepos we can take to reproduce the error in our local environments. We also then prompt you to provide a link to [Stackblitz](https://stackblitz.com/) or a similar online environment where we can run your manifest and observe the error. If you prefer *not* to send a link, we would appreciate a copy of the manifest file that you ran to produce the error, information about your runtime environment and any additional code that's required to reproduce the error. This is all designed to enable us to reproduce the same error and debug it for you as quickly as possible.
|
|
38
|
+
|
|
39
|
+
Once a suitably detailed bug report exists, we will triage it. We hold weekly triage calls on Tuesdays. In most cases, the triage call will be the core team's first interaction with the bug, although in some cases we may engage asynchronously in advance of the call. Triage means that the core team will examine the issue and assign an urgency label - either Low, Medium or High.
|
|
40
|
+
|
|
41
|
+
The assessment rubric is as follows:
|
|
42
|
+
|
|
43
|
+
| | Consequence | Severity |
|
|
44
|
+
| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -------- |
|
|
45
|
+
| Bugs in IF core leading to incorrect calculations | unusable framework | 5 |
|
|
46
|
+
| Bugs in if-plugins leading to incorrect calculations | core pathways fail, IF very limited in functionality | 5 |
|
|
47
|
+
| Bugs in if-unofficial-pluginsd leading to incorrect calculations | Third party plugins harder to use, limits IF to standard lib | 3 |
|
|
48
|
+
| Bugs in template | Harder to build plugins, ecosystem growth is impacted | 2 |
|
|
49
|
+
| Bugs in docs | product does not match expectation, hard to debug, frustration, loss of adoption | 2 |
|
|
50
|
+
| Security flaw: privacy related | leak user data, unlikely to achieve adoption in serious orgs | 5 |
|
|
51
|
+
| Security flaw: permissions escalation | expose user to malware | 5 |
|
|
52
|
+
| Code not addressing user needs | no product market fit, loss of adoption | 5 |
|
|
53
|
+
| Communication failures within team | Conflicting or duplicating work, frustration, morale damage | 4 |
|
|
54
|
+
| Communication failures with community | we lose product market fit, we do not have good community retention, reputational damage | 3 |
|
|
55
|
+
| Communication failures with leadership | product does not meet business goals | 3 |
|
|
56
|
+
| License compliance failures, including in supply chain (e.g. exposing privileged api responses for free via a plugin) | 4 |
|
|
57
|
+
| Bugs affecting releases | users stuck on old versions | 4 |
|
|
58
|
+
| Strategy failures | no product market fit | 2 |
|
|
59
|
+
|
|
60
|
+
The mapping of severity to label is as follows:
|
|
61
|
+
|
|
62
|
+
| Severity | Label |
|
|
63
|
+
| -------- | ----- |
|
|
64
|
+
| 1 | L |
|
|
65
|
+
| 2 | M |
|
|
66
|
+
| 3 | M |
|
|
67
|
+
| 4 | H |
|
|
68
|
+
| 5 | H |
|
|
69
|
+
|
|
70
|
+
During the bug triage we will also discuss a remediation plan for the bug. This will be communicated in the comments on the bug report. For high urgency bugs, the fix will be implemented as soon as possible, maybe reorganizing our current work to accommodate it. For medium priority bugs, we will schedule the fix in the next available sprint. Low priority bugs will be backlogged and addressed when there is developer time available. Low priority bugs will also be tagged `help-wanted` so that they can be addressed by community members.
|
|
71
|
+
|
|
72
|
+
Not every bug will be fixed. We may decide *not* to fix a bug in cases such as:
|
|
73
|
+
|
|
74
|
+
- fixing the bug has some detrimental side effect elsewhere in the product
|
|
75
|
+
- the bug has a fix coming soon as part of another upgrade
|
|
76
|
+
- the bug is only problematic for a single specific use case and fixing it would break features relied upon by other users
|
|
77
|
+
- the bug is contentious for some reason and there is reputational or community risks associated with the fix
|
|
78
|
+
|
|
79
|
+
The bug will be labelled `fix-now`, `fix-later` or `wont-fix` to reflect our remediation plan and details will be provided in issue comments.
|
|
29
80
|
|
|
30
81
|
|
|
31
82
|
## Code Contributions
|
|
@@ -168,4 +219,26 @@ describe('util/args: ', () => {
|
|
|
168
219
|
})
|
|
169
220
|
```
|
|
170
221
|
|
|
222
|
+
### How to report issues (bugs)
|
|
223
|
+
|
|
224
|
+
Bug report should contain all the information required to reproduce a bug and to make it as easy as possible to fix. This includes providing the following information
|
|
225
|
+
|
|
226
|
+
- a description of the error,
|
|
227
|
+
- a description of the expected behaviour,
|
|
228
|
+
- a description of the actual behaviour,
|
|
229
|
+
- steps to reproduce
|
|
230
|
+
|
|
231
|
+
To help us to diagnose and debug your issue, please provide either a [Stackblitz](https://stackblitz.com/) link that captures your local environment and failing manifest file, OR:
|
|
232
|
+
|
|
233
|
+
- the manifest file that generated the error,
|
|
234
|
+
- links to any code (e.g. your own plugin code), it must be available online,
|
|
235
|
+
- runtime information such as OS, node version, package.json, IF version
|
|
236
|
+
|
|
237
|
+
Reported bugs will be discussed among the team in a weekly bug triage and be assigned a severity (low, medium or high).
|
|
238
|
+
|
|
239
|
+
High severity bugs will be fixed as soon as possible, whereas medium and low severity bug fixes will likely be backlogged for attention in the next available sprint.
|
|
240
|
+
|
|
241
|
+
In some cases, we might decide not to fix certain bugs if they are low severity, either because we anticipate fixes coming soon as part of already-scheduled upgrades or because we think the fixes make "good first issues" for community contributors.
|
|
242
|
+
Community members are welcome to report any issue they face and also work on fixing the low priority bugs.
|
|
243
|
+
|
|
171
244
|
*[⬅️ back to the root](/README.md#ief)*
|
package/README.md
CHANGED
|
@@ -1,34 +1,10 @@
|
|
|
1
|
-
<div id="header" align="center">
|
|
2
|
-
<img style=”margin: 0px” src=hack-banner.png alt=”banner” height=”500" />
|
|
3
|
-
</div>
|
|
4
|
-
|
|
5
|
-
----------------------------
|
|
6
|
-
|
|
7
|
-
**Welcome to [CarbonHack 24](https://grnsft.org/hack/github) from the Green Software Foundation.**
|
|
8
|
-
|
|
9
|
-
> From Monday, 18th March - Monday, 8th April 2024, participants will compete to showcase their best application of IF in measuring the environmental impacts of software.
|
|
10
|
-
>
|
|
11
|
-
> Carbon Hack is a dynamic competition that combines healthy rivalry with collaborative innovation. Hackers will push the limits of the framework, uncover potential weaknesses, and create innovations to enhance the tool.
|
|
12
|
-
>
|
|
13
|
-
> CarbonHack is open to all, including software practitioners and those with a passion for Green Software.
|
|
14
|
-
>
|
|
15
|
-
> Find out more about CarbonHack 2024 on the [CarbonHack website](https://grnsft.org/hack/github). Check out the [FAQ on GitHub](https://grnsft.org/hack/faq).
|
|
16
|
-
>
|
|
17
|
-
> Registration opens 15th January!
|
|
18
|
-
>
|
|
19
|
-
> **PLEASE NOTE** hackathon projects are not supposed to be raised as pull requests to this rpeository! Please keep your hackathon plugins in your own repositories and submit links instead of raising PRs!
|
|
20
|
-
----------------------------
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
1
|
# Impact Framework
|
|
25
2
|
|
|
26
3
|
|
|
27
4
|
> [!IMPORTANT]
|
|
28
5
|
> Incubation Project: This project is an incubation project being run inside the Green Software Foundation; as such, we DON’T recommend using it in any critical use case. Incubation projects are experimental, offer no support guarantee, have minimal governance and process, and may be retired at any moment. This project may one day Graduate, in which case this disclaimer will be removed.
|
|
29
6
|
|
|
30
|
-
**Note** We have recently refactored the IF codebase and introduced some changes affecting both users and developers. You can read our migration guide [HERE](./Refactor-migration-guide.md) to help you update to the latest version!
|
|
31
|
-
|
|
7
|
+
**Note** We have recently (March 2024) refactored the IF codebase and introduced some changes affecting both users and developers. You can read our migration guide [HERE](./Refactor-migration-guide.md) to help you update to the latest version!
|
|
32
8
|
|
|
33
9
|
|
|
34
10
|
[Impact Framework](https://greensoftwarefoundation.atlassian.net/wiki/spaces/~612dd45e45cd76006a84071a/pages/17072136/Opensource+Impact+Engine+Framework) (IF) is an [Incubation](https://oc.greensoftware.foundation/project-lifecycle.html#incubation) project from the [Open Source Working Group](https://greensoftwarefoundation.atlassian.net/wiki/spaces/~612dd45e45cd76006a84071a/pages/852049/Open+Source+Working+Group) in the [Green Software Foundation](https://greensoftware.foundation/).
|
|
@@ -69,16 +45,42 @@ Then, run `if` using the following command:
|
|
|
69
45
|
|
|
70
46
|
```sh
|
|
71
47
|
ie --manifest <path-to-your-manifest-file>
|
|
48
|
+
## or you can use aliases
|
|
49
|
+
ie -m <path-to-your-manifest-file>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Note that above command will not print the final output. In order to print the final output to the console, run `if` using the optional stdout argument:
|
|
53
|
+
```sh
|
|
54
|
+
ie --manifest <path-to-your-manifest-file> --stdout
|
|
55
|
+
## or using aliases
|
|
56
|
+
ie -m <path-to-your-manifest-file> -s
|
|
72
57
|
```
|
|
73
58
|
|
|
74
|
-
You can also add
|
|
59
|
+
You can also add a savepath for your output yaml in order to have the output stored in a file. Note that you also have to add configuration to your manifest to enable this, as follows:
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
initialize:
|
|
63
|
+
output:
|
|
64
|
+
- yaml
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
On the command line:
|
|
75
68
|
|
|
76
69
|
```sh
|
|
77
70
|
ie --manifest <path-to-your-manifest-file> --output <your-savepath>
|
|
71
|
+
## or using aliases
|
|
72
|
+
ie -m <path-to-your-manifest-file> -o <your-savepath>
|
|
78
73
|
```
|
|
79
74
|
|
|
80
75
|
The `ie` CLI tool will configure and run the plugins defined in your input `yaml` (`manifest`) and return the results as an output `yaml` (`output`).
|
|
81
76
|
|
|
77
|
+
Use the `help` command if you need guidance about the available commands
|
|
78
|
+
|
|
79
|
+
```sh
|
|
80
|
+
ie --help
|
|
81
|
+
## or using alias
|
|
82
|
+
ie -h
|
|
83
|
+
```
|
|
82
84
|
|
|
83
85
|
## Documentation
|
|
84
86
|
|
|
@@ -100,3 +102,9 @@ You can check our issue board for issues tagged `help-wanted`. These are issues
|
|
|
100
102
|
Please read the full contribution guidelines at [if.greensoftware.foundation](https://if.greensoftware.foundation/Contributing)
|
|
101
103
|
|
|
102
104
|
The same guidelines also apply to `if-docs`, `if-plugins` and `if-unofficial-plugins`.
|
|
105
|
+
|
|
106
|
+
## Bug reports
|
|
107
|
+
|
|
108
|
+
To report bugs please use our bug report template. You can do this by opening a new issue and selecting `Bug Report` when you are prompted to pick a template. The more information you provide,.the quicker we will be able to reproduce, diagnose and triage your issue.
|
|
109
|
+
|
|
110
|
+
To read about our bug reporting and triage process, please see [our contribution guidelines](contributing.md#reporting-bugs).
|
|
@@ -26,7 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.ExportCSVRaw = void 0;
|
|
27
27
|
const fs = __importStar(require("fs/promises"));
|
|
28
28
|
const errors_1 = require("../util/errors");
|
|
29
|
-
const {
|
|
29
|
+
const { ExhaustError } = errors_1.ERRORS;
|
|
30
30
|
const ExportCSVRaw = () => {
|
|
31
31
|
/**
|
|
32
32
|
* handle a tree leaf, where there are no child nodes, by adding it as key->value pair to the flat map
|
|
@@ -108,7 +108,7 @@ const ExportCSVRaw = () => {
|
|
|
108
108
|
await fs.writeFile(`${outputPath}.csv`, content);
|
|
109
109
|
}
|
|
110
110
|
catch (error) {
|
|
111
|
-
throw new
|
|
111
|
+
throw new ExhaustError(`Failed to write CSV to ${outputPath}: ${error}`);
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
114
|
/**
|
|
@@ -116,7 +116,7 @@ const ExportCSVRaw = () => {
|
|
|
116
116
|
*/
|
|
117
117
|
const execute = async (tree, _context, outputPath) => {
|
|
118
118
|
if (!outputPath) {
|
|
119
|
-
throw new
|
|
119
|
+
throw new ExhaustError('Output path is required.');
|
|
120
120
|
}
|
|
121
121
|
const [extractredFlatMap, extractedHeaders] = extractFlatMapAndHeaders(tree);
|
|
122
122
|
const ids = new Set(Object.keys(extractredFlatMap).map(key => extractIdHelper(key)));
|
|
@@ -126,4 +126,4 @@ const ExportCSVRaw = () => {
|
|
|
126
126
|
return { execute };
|
|
127
127
|
};
|
|
128
128
|
exports.ExportCSVRaw = ExportCSVRaw;
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWNzdi1yYXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbHRpbnMvZXhwb3J0LWNzdi1yYXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBa0M7QUFFbEMsMkNBQXNDO0FBS3RDLE1BQU0sRUFBQyxjQUFjLEVBQUUsYUFBYSxFQUFDLEdBQUcsZUFBTSxDQUFDO0FBRXhDLE1BQU0sWUFBWSxHQUFHLEdBQTJCLEVBQUU7SUFDdkQ7OztPQUdHO0lBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsS0FBVSxFQUNWLFFBQWdCLEVBQ2hCLEdBQVEsRUFDUixPQUE2QixFQUM3QixPQUFvQixFQUNwQixFQUFFO1FBQ0YsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsS0FBVSxFQUNWLFFBQWdCLEVBQ2hCLE9BQTRCLEVBQzVCLE9BQW9CLEVBQ3BCLEVBQUU7UUFDRixNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLHdCQUF3QixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUzRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN0QyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JELE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7WUFF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QUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNsRDtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsTUFBTSxJQUFJLGNBQWMsQ0FDdEIsMEJBQTBCLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FDakQsQ0FBQztTQUNIO0lBQ0gsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsSUFBUyxFQUFFLFFBQWlCLEVBQUUsVUFBa0IsRUFBRSxFQUFFO1FBQ3pFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUksYUFBYSxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDckQ7UUFFRCxNQUFNLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsR0FDekMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDaEUsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV6RSxNQUFNLGVBQWUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDO0lBRUYsT0FBTyxFQUFDLE9BQU8sRUFBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQWpKVyxRQUFBLFlBQVksZ0JBaUp2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcblxuaW1wb3J0IHtFUlJPUlN9IGZyb20gJy4uL3V0aWwvZXJyb3JzJztcblxuaW1wb3J0IHtFeGhhdXN0UGx1Z2luSW50ZXJmYWNlfSBmcm9tICcuLi90eXBlcy9leGhhdXN0LXBsdWdpbi1pbnRlcmZhY2UnO1xuaW1wb3J0IHtDb250ZXh0fSBmcm9tICcuLi90eXBlcy9tYW5pZmVzdCc7XG5cbmNvbnN0IHtXcml0ZUZpbGVFcnJvciwgQ2xpSW5wdXRFcnJvcn0gPSBFUlJPUlM7XG5cbmV4cG9ydCBjb25zdCBFeHBvcnRDU1ZSYXcgPSAoKTogRXhoYXVzdFBsdWdpbkludGVyZmFjZSA9PiB7XG4gIC8qKlxuICAgKiBoYW5kbGUgYSB0cmVlIGxlYWYsIHdoZXJlIHRoZXJlIGFyZSBubyBjaGlsZCBub2RlcywgYnkgYWRkaW5nIGl0IGFzIGtleS0+dmFsdWUgcGFpciB0byB0aGUgZmxhdCBtYXBcbiAgICogYW5kIGNhcHR1cmluZyBrZXkgYXMgYSBoZWFkZXJcbiAgICovXG4gIGNvbnN0IGhhbmRsZUxlYWZWYWx1ZSA9IChcbiAgICB2YWx1ZTogYW55LFxuICAgIGZ1bGxQYXRoOiBzdHJpbmcsXG4gICAga2V5OiBhbnksXG4gICAgZmxhdE1hcDoge1trZXk6IHN0cmluZ106IGFueX0sXG4gICAgaGVhZGVyczogU2V0PHN0cmluZz5cbiAgKSA9PiB7XG4gICAgaWYgKGZ1bGxQYXRoLmluY2x1ZGVzKCdvdXRwdXRzJykpIHtcbiAgICAgIGhlYWRlcnMuYWRkKGtleSk7XG4gICAgICBmbGF0TWFwW2Z1bGxQYXRoXSA9IHZhbHVlO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogaGFuZGxlIGEgdHJlZSBub2RlLCByZWN1cnNpdmVseSB0cmF2ZXJzZSB0aGUgY2hpbGRyZW4gYW5kIGFwcGVuZCB0aGVpciByZXN1bHRzIHRvIHRoZSBmbGF0IG1hcCBhbmQgY2FwdHVyZWQgaGVhZGVyc1xuICAgKi9cbiAgY29uc3QgaGFuZGxlTm9kZVZhbHVlID0gKFxuICAgIHZhbHVlOiBhbnksXG4gICAgZnVsbFBhdGg6IHN0cmluZyxcbiAgICBmbGF0TWFwOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGhlYWRlcnM6IFNldDxzdHJpbmc+XG4gICkgPT4ge1xuICAgIGNvbnN0IFtzdWJGbGF0TWFwLCBzdWJIZWFkZXJzXSA9IGV4dHJhY3RGbGF0TWFwQW5kSGVhZGVycyh2YWx1ZSwgZnVsbFBhdGgpO1xuXG4gICAgaWYgKE9iamVjdC5rZXlzKHN1YkZsYXRNYXApLmxlbmd0aCA+IDApIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHN1YkZsYXRNYXApLmZvckVhY2goKFtzdWJLZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBmbGF0TWFwW3N1YktleV0gPSB2YWx1ZTtcbiAgICAgIH0pO1xuXG4gICAgICBzdWJIZWFkZXJzLmZvckVhY2goc3ViSGVhZGVyID0+IHtcbiAgICAgICAgaGVhZGVycy5hZGQoc3ViSGVhZGVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogSGFuZGxlcyBhIGtleSBhdCB0aGUgdG9wIGxldmVsIG9mIHRoZSB0cmVlXG4gICAqL1xuICBjb25zdCBoYW5kbGVLZXkgPSAoXG4gICAgdmFsdWU6IGFueSxcbiAgICBrZXk6IGFueSxcbiAgICBwcmVmaXg6IHN0cmluZyxcbiAgICBmbGF0TWFwOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGhlYWRlcnM6IFNldDxzdHJpbmc+XG4gICkgPT4ge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gcHJlZml4ID8gYCR7cHJlZml4fS4ke2tleX1gIDoga2V5O1xuXG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBoYW5kbGVOb2RlVmFsdWUodmFsdWUsIGZ1bGxQYXRoLCBmbGF0TWFwLCBoZWFkZXJzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFuZGxlTGVhZlZhbHVlKHZhbHVlLCBmdWxsUGF0aCwga2V5LCBmbGF0TWFwLCBoZWFkZXJzKTtcbiAgfTtcblxuICAvKipcbiAgICogUmVjdXJzaXZlbHkgZXh0cmFjdCBhIGZsYXQgbWFwIGFuZCBoZWFkZXJzIGZyb20gdGhlIGhpZXJhcmNpYWwgdHJlZS5cbiAgICovXG4gIGNvbnN0IGV4dHJhY3RGbGF0TWFwQW5kSGVhZGVycyA9IChcbiAgICB0cmVlOiBhbnksXG4gICAgcHJlZml4ID0gJydcbiAgKTogW1JlY29yZDxzdHJpbmcsIGFueT4sIFNldDxzdHJpbmc+XSA9PiB7XG4gICAgY29uc3QgaGVhZGVyczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gICAgY29uc3QgZmxhdE1hcDogUmVjb3JkPHN0cmluZywgYW55PiA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdHJlZSkge1xuICAgICAgaWYgKGtleSBpbiB0cmVlKSB7XG4gICAgICAgIGhhbmRsZUtleSh0cmVlW2tleV0sIGtleSwgcHJlZml4LCBmbGF0TWFwLCBoZWFkZXJzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gW2ZsYXRNYXAsIGhlYWRlcnNdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0IHRoZSBpZCBvZiB0aGUga2V5LCB0aGF0IGlzIHJlbW92aW5nIHRoZSBsYXN0IHRva2VuICh3aGljaCBpcyB0aGUgaW5kZXgpLlxuICAgKiBpbiB0aGlzIG1hbm5lciwgbXVsdGlwbGUga2V5cyB0aGF0IGlkZW50aWNhbCBiZXNpZGVzIHRoZWlyIGluZGV4IHNoYXJlIHRoZSBzYW1lIGlkLlxuICAgKi9cbiAgY29uc3QgZXh0cmFjdElkSGVscGVyID0gKGtleTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICBjb25zdCBwYXJ0cyA9IGtleS5zcGxpdCgnLicpO1xuICAgIHBhcnRzLnBvcCgpO1xuXG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJy4nKTtcbiAgfTtcblxuICAvKipcbiAgICogZ2VuZXJhdGUgYSBDU1YgZm9ybWF0dGVkIHN0cmluZyBiYXNlZCBvbiBhIGZsYXQga2V5LT52YWx1ZSBtYXAsIGhlYWRlcnMgYW5kIGlkc1xuICAgKi9cbiAgY29uc3QgZ2V0Q3N2U3RyaW5nID0gKFxuICAgIG1hcDoge1trZXk6IHN0cmluZ106IGFueX0sXG4gICAgaGVhZGVyczogU2V0PHN0cmluZz4sXG4gICAgaWRzOiBTZXQ8c3RyaW5nPlxuICApOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IGNzdlJvd3M6IHN0cmluZ1tdID0gW107XG4gICAgY3N2Um93cy5wdXNoKFsnaWQnLCAuLi5oZWFkZXJzXS5qb2luKCcsJykpO1xuXG4gICAgaWRzLmZvckVhY2goaWQgPT4ge1xuICAgICAgY29uc3Qgcm93RGF0YSA9IFtpZF07XG5cbiAgICAgIGhlYWRlcnMuZm9yRWFjaChoZWFkZXIgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG1hcFtgJHtpZH0uJHtoZWFkZXJ9YF0gPz8gJyc7XG4gICAgICAgIHJvd0RhdGEucHVzaCh2YWx1ZS50b1N0cmluZygpKTtcbiAgICAgIH0pO1xuICAgICAgY3N2Um93cy5wdXNoKHJvd0RhdGEuam9pbignLCcpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBjc3ZSb3dzLmpvaW4oJ1xcbicpO1xuICB9O1xuXG4gIC8qKlxuICAgKiB3cml0ZSB0aGUgZ2l2ZW4gc3RyaW5nIGNvbnRlbnQgdG8gYSBmaWxlIGF0IHRoZSBwcm92aWRlZCBwYXRoXG4gICAqL1xuICBjb25zdCB3cml0ZU91dHB1dEZpbGUgPSBhc3luYyAoY29udGVudDogc3RyaW5nLCBvdXRwdXRQYXRoOiBzdHJpbmcpID0+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKGAke291dHB1dFBhdGh9LmNzdmAsIGNvbnRlbnQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgV3JpdGVGaWxlRXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gd3JpdGUgQ1NWIHRvICR7b3V0cHV0UGF0aH06ICR7ZXJyb3J9YFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4cG9ydCB0aGUgcHJvdmlkZWQgdHJlZSBjb250ZW50IHRvIGEgQ1NWIGZpbGUsIHJlcHJlc2VudGVkIGluIGEgZmxhdCBzdHJ1Y3R1cmVcbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSBhc3luYyAodHJlZTogYW55LCBfY29udGV4dDogQ29udGV4dCwgb3V0cHV0UGF0aDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFvdXRwdXRQYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xpSW5wdXRFcnJvcignT3V0cHV0IHBhdGggaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgW2V4dHJhY3RyZWRGbGF0TWFwLCBleHRyYWN0ZWRIZWFkZXJzXSA9XG4gICAgICBleHRyYWN0RmxhdE1hcEFuZEhlYWRlcnModHJlZSk7XG4gICAgY29uc3QgaWRzID0gbmV3IFNldChcbiAgICAgIE9iamVjdC5rZXlzKGV4dHJhY3RyZWRGbGF0TWFwKS5tYXAoa2V5ID0+IGV4dHJhY3RJZEhlbHBlcihrZXkpKVxuICAgICk7XG4gICAgY29uc3QgY3N2U3RyaW5nID0gZ2V0Q3N2U3RyaW5nKGV4dHJhY3RyZWRGbGF0TWFwLCBleHRyYWN0ZWRIZWFkZXJzLCBpZHMpO1xuXG4gICAgYXdhaXQgd3JpdGVPdXRwdXRGaWxlKGNzdlN0cmluZywgb3V0cHV0UGF0aCk7XG4gIH07XG5cbiAgcmV0dXJuIHtleGVjdXRlfTtcbn07XG4iXX0=
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWNzdi1yYXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbHRpbnMvZXhwb3J0LWNzdi1yYXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBa0M7QUFFbEMsMkNBQXNDO0FBS3RDLE1BQU0sRUFBQyxZQUFZLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFFdkIsTUFBTSxZQUFZLEdBQUcsR0FBMkIsRUFBRTtJQUN2RDs7O09BR0c7SUFDSCxNQUFNLGVBQWUsR0FBRyxDQUN0QixLQUFVLEVBQ1YsUUFBZ0IsRUFDaEIsR0FBUSxFQUNSLE9BQTZCLEVBQzdCLE9BQW9CLEVBQ3BCLEVBQUU7UUFDRixJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQixPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLGVBQWUsR0FBRyxDQUN0QixLQUFVLEVBQ1YsUUFBZ0IsRUFDaEIsT0FBNEIsRUFDNUIsT0FBb0IsRUFDcEIsRUFBRTtRQUNGLE1BQU0sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRTNFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtnQkFDckQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztZQUVILFVBQVUsQ0FB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QUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2xEO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxNQUFNLElBQUksWUFBWSxDQUFDLDBCQUEwQixVQUFVLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQztTQUMxRTtJQUNILENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQVMsRUFBRSxRQUFpQixFQUFFLFVBQWtCLEVBQUUsRUFBRTtRQUN6RSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsTUFBTSxJQUFJLFlBQVksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsTUFBTSxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLEdBQ3pDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ2hFLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFekUsTUFBTSxlQUFlLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQztJQUVGLE9BQU8sRUFBQyxPQUFPLEVBQUMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUEvSVcsUUFBQSxZQUFZLGdCQStJdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5cbmltcG9ydCB7RVJST1JTfSBmcm9tICcuLi91dGlsL2Vycm9ycyc7XG5cbmltcG9ydCB7RXhoYXVzdFBsdWdpbkludGVyZmFjZX0gZnJvbSAnLi4vdHlwZXMvZXhoYXVzdC1wbHVnaW4taW50ZXJmYWNlJztcbmltcG9ydCB7Q29udGV4dH0gZnJvbSAnLi4vdHlwZXMvbWFuaWZlc3QnO1xuXG5jb25zdCB7RXhoYXVzdEVycm9yfSA9IEVSUk9SUztcblxuZXhwb3J0IGNvbnN0IEV4cG9ydENTVlJhdyA9ICgpOiBFeGhhdXN0UGx1Z2luSW50ZXJmYWNlID0+IHtcbiAgLyoqXG4gICAqIGhhbmRsZSBhIHRyZWUgbGVhZiwgd2hlcmUgdGhlcmUgYXJlIG5vIGNoaWxkIG5vZGVzLCBieSBhZGRpbmcgaXQgYXMga2V5LT52YWx1ZSBwYWlyIHRvIHRoZSBmbGF0IG1hcFxuICAgKiBhbmQgY2FwdHVyaW5nIGtleSBhcyBhIGhlYWRlclxuICAgKi9cbiAgY29uc3QgaGFuZGxlTGVhZlZhbHVlID0gKFxuICAgIHZhbHVlOiBhbnksXG4gICAgZnVsbFBhdGg6IHN0cmluZyxcbiAgICBrZXk6IGFueSxcbiAgICBmbGF0TWFwOiB7W2tleTogc3RyaW5nXTogYW55fSxcbiAgICBoZWFkZXJzOiBTZXQ8c3RyaW5nPlxuICApID0+IHtcbiAgICBpZiAoZnVsbFBhdGguaW5jbHVkZXMoJ291dHB1dHMnKSkge1xuICAgICAgaGVhZGVycy5hZGQoa2V5KTtcbiAgICAgIGZsYXRNYXBbZnVsbFBhdGhdID0gdmFsdWU7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBoYW5kbGUgYSB0cmVlIG5vZGUsIHJlY3Vyc2l2ZWx5IHRyYXZlcnNlIHRoZSBjaGlsZHJlbiBhbmQgYXBwZW5kIHRoZWlyIHJlc3VsdHMgdG8gdGhlIGZsYXQgbWFwIGFuZCBjYXB0dXJlZCBoZWFkZXJzXG4gICAqL1xuICBjb25zdCBoYW5kbGVOb2RlVmFsdWUgPSAoXG4gICAgdmFsdWU6IGFueSxcbiAgICBmdWxsUGF0aDogc3RyaW5nLFxuICAgIGZsYXRNYXA6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgaGVhZGVyczogU2V0PHN0cmluZz5cbiAgKSA9PiB7XG4gICAgY29uc3QgW3N1YkZsYXRNYXAsIHN1YkhlYWRlcnNdID0gZXh0cmFjdEZsYXRNYXBBbmRIZWFkZXJzKHZhbHVlLCBmdWxsUGF0aCk7XG5cbiAgICBpZiAoT2JqZWN0LmtleXMoc3ViRmxhdE1hcCkubGVuZ3RoID4gMCkge1xuICAgICAgT2JqZWN0LmVudHJpZXMoc3ViRmxhdE1hcCkuZm9yRWFjaCgoW3N1YktleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGZsYXRNYXBbc3ViS2V5XSA9IHZhbHVlO1xuICAgICAgfSk7XG5cbiAgICAgIHN1YkhlYWRlcnMuZm9yRWFjaChzdWJIZWFkZXIgPT4ge1xuICAgICAgICBoZWFkZXJzLmFkZChzdWJIZWFkZXIpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGEga2V5IGF0IHRoZSB0b3AgbGV2ZWwgb2YgdGhlIHRyZWVcbiAgICovXG4gIGNvbnN0IGhhbmRsZUtleSA9IChcbiAgICB2YWx1ZTogYW55LFxuICAgIGtleTogYW55LFxuICAgIHByZWZpeDogc3RyaW5nLFxuICAgIGZsYXRNYXA6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgaGVhZGVyczogU2V0PHN0cmluZz5cbiAgKSA9PiB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBwcmVmaXggPyBgJHtwcmVmaXh9LiR7a2V5fWAgOiBrZXk7XG5cbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIGhhbmRsZU5vZGVWYWx1ZSh2YWx1ZSwgZnVsbFBhdGgsIGZsYXRNYXAsIGhlYWRlcnMpO1xuICAgIH1cblxuICAgIHJldHVybiBoYW5kbGVMZWFmVmFsdWUodmFsdWUsIGZ1bGxQYXRoLCBrZXksIGZsYXRNYXAsIGhlYWRlcnMpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZWN1cnNpdmVseSBleHRyYWN0IGEgZmxhdCBtYXAgYW5kIGhlYWRlcnMgZnJvbSB0aGUgaGllcmFyY2lhbCB0cmVlLlxuICAgKi9cbiAgY29uc3QgZXh0cmFjdEZsYXRNYXBBbmRIZWFkZXJzID0gKFxuICAgIHRyZWU6IGFueSxcbiAgICBwcmVmaXggPSAnJ1xuICApOiBbUmVjb3JkPHN0cmluZywgYW55PiwgU2V0PHN0cmluZz5dID0+IHtcbiAgICBjb25zdCBoZWFkZXJzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCBmbGF0TWFwOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0cmVlKSB7XG4gICAgICBpZiAoa2V5IGluIHRyZWUpIHtcbiAgICAgICAgaGFuZGxlS2V5KHRyZWVba2V5XSwga2V5LCBwcmVmaXgsIGZsYXRNYXAsIGhlYWRlcnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbZmxhdE1hcCwgaGVhZGVyc107XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3QgdGhlIGlkIG9mIHRoZSBrZXksIHRoYXQgaXMgcmVtb3ZpbmcgdGhlIGxhc3QgdG9rZW4gKHdoaWNoIGlzIHRoZSBpbmRleCkuXG4gICAqIGluIHRoaXMgbWFubmVyLCBtdWx0aXBsZSBrZXlzIHRoYXQgaWRlbnRpY2FsIGJlc2lkZXMgdGhlaXIgaW5kZXggc2hhcmUgdGhlIHNhbWUgaWQuXG4gICAqL1xuICBjb25zdCBleHRyYWN0SWRIZWxwZXIgPSAoa2V5OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IHBhcnRzID0ga2V5LnNwbGl0KCcuJyk7XG4gICAgcGFydHMucG9wKCk7XG5cbiAgICByZXR1cm4gcGFydHMuam9pbignLicpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBnZW5lcmF0ZSBhIENTViBmb3JtYXR0ZWQgc3RyaW5nIGJhc2VkIG9uIGEgZmxhdCBrZXktPnZhbHVlIG1hcCwgaGVhZGVycyBhbmQgaWRzXG4gICAqL1xuICBjb25zdCBnZXRDc3ZTdHJpbmcgPSAoXG4gICAgbWFwOiB7W2tleTogc3RyaW5nXTogYW55fSxcbiAgICBoZWFkZXJzOiBTZXQ8c3RyaW5nPixcbiAgICBpZHM6IFNldDxzdHJpbmc+XG4gICk6IHN0cmluZyA9PiB7XG4gICAgY29uc3QgY3N2Um93czogc3RyaW5nW10gPSBbXTtcbiAgICBjc3ZSb3dzLnB1c2goWydpZCcsIC4uLmhlYWRlcnNdLmpvaW4oJywnKSk7XG5cbiAgICBpZHMuZm9yRWFjaChpZCA9PiB7XG4gICAgICBjb25zdCByb3dEYXRhID0gW2lkXTtcblxuICAgICAgaGVhZGVycy5mb3JFYWNoKGhlYWRlciA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbWFwW2Ake2lkfS4ke2hlYWRlcn1gXSA/PyAnJztcbiAgICAgICAgcm93RGF0YS5wdXNoKHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgfSk7XG4gICAgICBjc3ZSb3dzLnB1c2gocm93RGF0YS5qb2luKCcsJykpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNzdlJvd3Muam9pbignXFxuJyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHdyaXRlIHRoZSBnaXZlbiBzdHJpbmcgY29udGVudCB0byBhIGZpbGUgYXQgdGhlIHByb3ZpZGVkIHBhdGhcbiAgICovXG4gIGNvbnN0IHdyaXRlT3V0cHV0RmlsZSA9IGFzeW5jIChjb250ZW50OiBzdHJpbmcsIG91dHB1dFBhdGg6IHN0cmluZykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUoYCR7b3V0cHV0UGF0aH0uY3N2YCwgY29udGVudCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFeGhhdXN0RXJyb3IoYEZhaWxlZCB0byB3cml0ZSBDU1YgdG8gJHtvdXRwdXRQYXRofTogJHtlcnJvcn1gKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4cG9ydCB0aGUgcHJvdmlkZWQgdHJlZSBjb250ZW50IHRvIGEgQ1NWIGZpbGUsIHJlcHJlc2VudGVkIGluIGEgZmxhdCBzdHJ1Y3R1cmVcbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSBhc3luYyAodHJlZTogYW55LCBfY29udGV4dDogQ29udGV4dCwgb3V0cHV0UGF0aDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFvdXRwdXRQYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXhoYXVzdEVycm9yKCdPdXRwdXQgcGF0aCBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBbZXh0cmFjdHJlZEZsYXRNYXAsIGV4dHJhY3RlZEhlYWRlcnNdID1cbiAgICAgIGV4dHJhY3RGbGF0TWFwQW5kSGVhZGVycyh0cmVlKTtcbiAgICBjb25zdCBpZHMgPSBuZXcgU2V0KFxuICAgICAgT2JqZWN0LmtleXMoZXh0cmFjdHJlZEZsYXRNYXApLm1hcChrZXkgPT4gZXh0cmFjdElkSGVscGVyKGtleSkpXG4gICAgKTtcbiAgICBjb25zdCBjc3ZTdHJpbmcgPSBnZXRDc3ZTdHJpbmcoZXh0cmFjdHJlZEZsYXRNYXAsIGV4dHJhY3RlZEhlYWRlcnMsIGlkcyk7XG5cbiAgICBhd2FpdCB3cml0ZU91dHB1dEZpbGUoY3N2U3RyaW5nLCBvdXRwdXRQYXRoKTtcbiAgfTtcblxuICByZXR1cm4ge2V4ZWN1dGV9O1xufTtcbiJdfQ==
|
|
@@ -4,7 +4,7 @@ exports.ExportCSV = void 0;
|
|
|
4
4
|
const promises_1 = require("fs/promises");
|
|
5
5
|
const sync_1 = require("csv-stringify/sync");
|
|
6
6
|
const errors_1 = require("../util/errors");
|
|
7
|
-
const {
|
|
7
|
+
const { ExhaustError } = errors_1.ERRORS;
|
|
8
8
|
/**
|
|
9
9
|
* Extension to IF that outputs the tree in a CSV format.
|
|
10
10
|
*/
|
|
@@ -15,7 +15,7 @@ const ExportCSV = () => {
|
|
|
15
15
|
const output = paths.slice(0, paths.length - 1).join('');
|
|
16
16
|
const criteria = paths[paths.length - 1];
|
|
17
17
|
if (paths.length <= 1 || !criteria) {
|
|
18
|
-
throw new
|
|
18
|
+
throw new ExhaustError('CSV export criteria is not found in output path. Please append it after --output <path>#.');
|
|
19
19
|
}
|
|
20
20
|
return {
|
|
21
21
|
output,
|
|
@@ -27,10 +27,10 @@ const ExportCSV = () => {
|
|
|
27
27
|
*/
|
|
28
28
|
const validateOutputPath = (outputPath) => {
|
|
29
29
|
if (!outputPath) {
|
|
30
|
-
throw new
|
|
30
|
+
throw new ExhaustError('Output path is required.');
|
|
31
31
|
}
|
|
32
32
|
if (!outputPath.includes('#')) {
|
|
33
|
-
throw new
|
|
33
|
+
throw new ExhaustError('Output path should contain `#`.');
|
|
34
34
|
}
|
|
35
35
|
return outputPath;
|
|
36
36
|
};
|
|
@@ -93,4 +93,4 @@ const ExportCSV = () => {
|
|
|
93
93
|
};
|
|
94
94
|
};
|
|
95
95
|
exports.ExportCSV = ExportCSV;
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWNzdi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsdGlucy9leHBvcnQtY3N2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBDQUFzQztBQUN0Qyw2Q0FBNkM7QUFFN0MsMkNBQXNDO0FBS3RDLE1BQU0sRUFBQyxZQUFZLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFFOUI7O0dBRUc7QUFDSSxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7SUFDNUIsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFVBQWtCLEVBQUUsRUFBRTtRQUNqRCxNQUFNLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVyRCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXpDLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEMsTUFBTSxJQUFJLFlBQVksQ0FDcEIsMkZBQTJGLENBQzVGLENBQUM7U0FDSDtRQUVELE9BQU87WUFDTCxNQUFNO1lBQ04sUUFBUTtTQUNULENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxVQUFrQixFQUFFLEVBQUU7UUFDaEQsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE1BQU0sSUFBSSxZQUFZLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUNwRDtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcs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QUFPO1FBQ1AsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFNBQVM7U0FDaEI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBeEdXLFFBQUEsU0FBUyxhQXdHcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3dyaXRlRmlsZX0gZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHtzdHJpbmdpZnl9IGZyb20gJ2Nzdi1zdHJpbmdpZnkvc3luYyc7XG5cbmltcG9ydCB7RVJST1JTfSBmcm9tICcuLi91dGlsL2Vycm9ycyc7XG5cbmltcG9ydCB7Q29udGV4dH0gZnJvbSAnLi4vdHlwZXMvbWFuaWZlc3QnO1xuaW1wb3J0IHtQbHVnaW5QYXJhbXN9IGZyb20gJy4uL3R5cGVzL2ludGVyZmFjZSc7XG5cbmNvbnN0IHtFeGhhdXN0RXJyb3J9ID0gRVJST1JTO1xuXG4vKipcbiAqIEV4dGVuc2lvbiB0byBJRiB0aGF0IG91dHB1dHMgdGhlIHRyZWUgaW4gYSBDU1YgZm9ybWF0LlxuICovXG5leHBvcnQgY29uc3QgRXhwb3J0Q1NWID0gKCkgPT4ge1xuICBjb25zdCBwYXJzZU91dHB1dEFuZEZpZWxkID0gKG91dHB1dFBhdGg6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHZhbGlkYXRlZFBhdGggPSB2YWxpZGF0ZU91dHB1dFBhdGgob3V0cHV0UGF0aCk7XG5cbiAgICBjb25zdCBwYXRocyA9IHZhbGlkYXRlZFBhdGguc3BsaXQoJyMnKTtcbiAgICBjb25zdCBvdXRwdXQgPSBwYXRocy5zbGljZSgwLCBwYXRocy5sZW5ndGggLSAxKS5qb2luKCcnKTtcbiAgICBjb25zdCBjcml0ZXJpYSA9IHBhdGhzW3BhdGhzLmxlbmd0aCAtIDFdO1xuXG4gICAgaWYgKHBhdGhzLmxlbmd0aCA8PSAxIHx8ICFjcml0ZXJpYSkge1xuICAgICAgdGhyb3cgbmV3IEV4aGF1c3RFcnJvcihcbiAgICAgICAgJ0NTViBleHBvcnQgY3JpdGVyaWEgaXMgbm90IGZvdW5kIGluIG91dHB1dCBwYXRoLiBQbGVhc2UgYXBwZW5kIGl0IGFmdGVyIC0tb3V0cHV0IDxwYXRoPiMuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3V0cHV0LFxuICAgICAgY3JpdGVyaWEsXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIG91dHB1dCBwYXRoLlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVPdXRwdXRQYXRoID0gKG91dHB1dFBhdGg6IHN0cmluZykgPT4ge1xuICAgIGlmICghb3V0cHV0UGF0aCkge1xuICAgICAgdGhyb3cgbmV3IEV4aGF1c3RFcnJvcignT3V0cHV0IHBhdGggaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuXG4gICAgaWYgKCFvdXRwdXRQYXRoLmluY2x1ZGVzKCcjJykpIHtcbiAgICAgIHRocm93IG5ldyBFeGhhdXN0RXJyb3IoJ091dHB1dCBwYXRoIHNob3VsZCBjb250YWluIGAjYC4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0cHV0UGF0aDtcbiAgfTtcblxuICAvKipcbiAgICogR3JhYnMgb3V0cHV0IGFuZCBjcml0ZXJpYSBmcm9tIGNsaSBhcmdzLCB0aGVuIGNhbGwgdHJlZSB3YWxrZXIgdG8gY29sbGVjdCBjc3YgZGF0YS5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSBhc3luYyAodHJlZTogYW55LCBjb250ZXh0OiBDb250ZXh0LCBvdXRwdXRQYXRoOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBjb2x1bW5zID0gWydQYXRoJ107XG4gICAgY29uc3QgbWF0cml4ID0gW2NvbHVtbnNdO1xuICAgIGNvbnN0IHtvdXRwdXQsIGNyaXRlcmlhfSA9IHBhcnNlT3V0cHV0QW5kRmllbGQob3V0cHV0UGF0aCk7XG4gICAgY29uc3QgYWdncmVnYXRpb25Jc0VuYWJsZWQgPSAhIWNvbnRleHQuYWdncmVnYXRpb247XG5cbiAgICAvKipcbiAgICAgKiBXYWxrcyB0aHJvdWdoIGFsbCB0cmVlIGJyYW5jaGVzIGFuZCBsZWF2ZXMsIGNvbGxlY3RpbmcgdGhlIGRhdGFcbiAgICAgKi9cbiAgICBjb25zdCB0cmVlV2Fsa2VyID0gKG5vZGU6IGFueSwgY3JpdGVyaWE6IHN0cmluZywgcGF0aCA9ICd0cmVlJykgPT4ge1xuICAgICAgLyoqIEhtbSBhZ2dyZWdhdGVkLCB0aGVuIGNoZWNrcyBpZiBpdCdzIHRoZSBmaXJzdCBvbmUuIElmIHNvIGFkZHMgY29sdW1uLCBwdXNoZXMgdGhlIHZhbHVlLiAqL1xuICAgICAgaWYgKG5vZGUuYWdncmVnYXRlZCkge1xuICAgICAgICBpZiAocGF0aCA9PT0gJ3RyZWUnKSB7XG4gICAgICAgICAgY29sdW1ucy5wdXNoKCdBZ2dyZWdhdGVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBtYXRyaXgucHVzaChbYCR7cGF0aH0uJHtjcml0ZXJpYX1gLCBub2RlLmFnZ3JlZ2F0ZWRbY3JpdGVyaWFdXSk7XG4gICAgICB9XG5cbiAgICAgIC8qKiBTbyBpdCBoYXMgb3V0cHV0cywgd2hhdHMgdGhlbj8gY2hlY2tzIGlmIHRpbWVzdGFtcCBpcyBub3QgdGhlcmUsIGFkZHMgb25lLiBUaGVuIGFwcGVuZHMgdmFsdWVzIHRvIGl0LiAqL1xuICAgICAgaWYgKG5vZGUub3V0cHV0cykge1xuICAgICAgICBub2RlLm91dHB1dHMuZm9yRWFjaCgob3V0cHV0OiBQbHVnaW5QYXJhbXMpID0+IHtcbiAgICAgICAgICBjb25zdCB7dGltZXN0YW1wfSA9IG91dHB1dDtcblxuICAgICAgICAgIGlmICghY29sdW1ucy5pbmNsdWRlcyh0aW1lc3RhbXApKSB7XG4gICAgICAgICAgICBjb2x1bW5zLnB1c2gob3V0cHV0LnRpbWVzdGFtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbGFzdFJvdyA9IG1hdHJpeFttYXRyaXgubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICBpZiAoYWdncmVnYXRpb25Jc0VuYWJsZWQpIHtcbiAgICAgICAgICAgIGxhc3RSb3cucHVzaChvdXRwdXRbY3JpdGVyaWFdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLyoqIEhhbmRsZSB3aXRob3V0IGFnZ3JlZ2F0aW9uIGV4cG9ydCBzdHJhdGVneS4gKi9cbiAgICAgICAgICAgIGlmIChtYXRyaXgubGVuZ3RoID09PSAxIHx8IGxhc3RSb3cubGVuZ3RoID09PSBjb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgICBtYXRyaXgucHVzaChbYCR7cGF0aH0uJHtjcml0ZXJpYX1gLCBvdXRwdXRbY3JpdGVyaWFdXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsYXN0Um93LnB1c2gob3V0cHV0W2NyaXRlcmlhXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLyoqIE9oaCBjaGlsZHJlbj8gdGhlbiBjYWxsIGV2ZXJ5IG9uZSBhbmQgZXhlY3V0ZS4gKi9cbiAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgIHRyZWVXYWxrZXIoXG4gICAgICAgICAgICBub2RlLmNoaWxkcmVuW2NoaWxkXSxcbiAgICAgICAgICAgIGNyaXRlcmlhLFxuICAgICAgICAgICAgYCR7cGF0aH0uY2hpbGRyZW4uJHtjaGlsZH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICB0cmVlV2Fsa2VyKHRyZWUsIGNyaXRlcmlhKTtcblxuICAgIGF3YWl0IHdyaXRlRmlsZShgJHtvdXRwdXR9LmNzdmAsIHN0cmluZ2lmeShtYXRyaXgsIHtjb2x1bW5zfSkpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgZXhlY3V0ZSxcbiAgICBtZXRhZGF0YToge1xuICAgICAga2luZDogJ2V4aGF1c3QnLFxuICAgIH0sXG4gIH07XG59O1xuIl19
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.ExportLog = void 0;
|
|
27
|
+
const YAML = __importStar(require("js-yaml"));
|
|
4
28
|
const ExportLog = () => {
|
|
5
29
|
/**
|
|
6
30
|
* Logs output manifest in console.
|
|
@@ -10,9 +34,9 @@ const ExportLog = () => {
|
|
|
10
34
|
...context,
|
|
11
35
|
tree,
|
|
12
36
|
};
|
|
13
|
-
console.log(
|
|
37
|
+
console.log(YAML.dump(outputFile, { noRefs: true }));
|
|
14
38
|
};
|
|
15
39
|
return { execute };
|
|
16
40
|
};
|
|
17
41
|
exports.ExportLog = ExportLog;
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsdGlucy9leHBvcnQtbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQWdDO0FBR3pCLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRTtJQUM1Qjs7T0FFRztJQUNILE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxJQUFTLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO1FBQ3BELE1BQU0sVUFBVSxHQUFHO1lBQ2pCLEdBQUcsT0FBTztZQUNWLElBQUk7U0FDTCxDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDO0lBRUYsT0FBTyxFQUFDLE9BQU8sRUFBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQWJXLFFBQUEsU0FBUyxhQWFwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFlBTUwgZnJvbSAnanMteWFtbCc7XG5pbXBvcnQge0NvbnRleHR9IGZyb20gJy4uL3R5cGVzL21hbmlmZXN0JztcblxuZXhwb3J0IGNvbnN0IEV4cG9ydExvZyA9ICgpID0+IHtcbiAgLyoqXG4gICAqIExvZ3Mgb3V0cHV0IG1hbmlmZXN0IGluIGNvbnNvbGUuXG4gICAqL1xuICBjb25zdCBleGVjdXRlID0gYXN5bmMgKHRyZWU6IGFueSwgY29udGV4dDogQ29udGV4dCkgPT4ge1xuICAgIGNvbnN0IG91dHB1dEZpbGUgPSB7XG4gICAgICAuLi5jb250ZXh0LFxuICAgICAgdHJlZSxcbiAgICB9O1xuICAgIGNvbnNvbGUubG9nKFlBTUwuZHVtcChvdXRwdXRGaWxlLCB7bm9SZWZzOiB0cnVlfSkpO1xuICB9O1xuXG4gIHJldHVybiB7ZXhlY3V0ZX07XG59O1xuIl19
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ExportYaml = void 0;
|
|
4
4
|
const yaml_1 = require("../util/yaml");
|
|
5
5
|
const errors_1 = require("../util/errors");
|
|
6
|
-
const {
|
|
6
|
+
const { ExhaustError } = errors_1.ERRORS;
|
|
7
7
|
const ExportYaml = () => {
|
|
8
8
|
/** Takes string before hashtag. */
|
|
9
9
|
const stripHashtag = (path) => path.split('#')[0];
|
|
@@ -12,7 +12,7 @@ const ExportYaml = () => {
|
|
|
12
12
|
*/
|
|
13
13
|
const execute = async (tree, context, outputPath) => {
|
|
14
14
|
if (!outputPath) {
|
|
15
|
-
throw new
|
|
15
|
+
throw new ExhaustError('Output path is required.');
|
|
16
16
|
}
|
|
17
17
|
const outputFile = {
|
|
18
18
|
...context,
|
|
@@ -24,4 +24,4 @@ const ExportYaml = () => {
|
|
|
24
24
|
return { execute };
|
|
25
25
|
};
|
|
26
26
|
exports.ExportYaml = ExportYaml;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXlhbWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbHRpbnMvZXhwb3J0LXlhbWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQTRDO0FBQzVDLDJDQUFzQztBQUl0QyxNQUFNLEVBQUMsWUFBWSxFQUFDLEdBQUcsZUFBTSxDQUFDO0FBRXZCLE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRTtJQUM3QixtQ0FBbUM7SUFDbkMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFMUQ7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsSUFBUyxFQUFFLE9BQWdCLEVBQUUsVUFBa0IsRUFBRSxFQUFFO1FBQ3hFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUksWUFBWSxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDcEQ7UUFFRCxNQUFNLFVBQVUsR0FBRztZQUNqQixHQUFHLE9BQU87WUFDVixJQUFJO1NBQ0wsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV0QyxNQUFNLElBQUEscUJBQWMsRUFBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELENBQUMsQ0FBQztJQUVGLE9BQU8sRUFBQyxPQUFPLEVBQUMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUF0QlcsUUFBQSxVQUFVLGNBc0JyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7c2F2ZVlhbWxGaWxlQXN9IGZyb20gJy4uL3V0aWwveWFtbCc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnLi4vdXRpbC9lcnJvcnMnO1xuXG5pbXBvcnQge0NvbnRleHR9IGZyb20gJy4uL3R5cGVzL21hbmlmZXN0JztcblxuY29uc3Qge0V4aGF1c3RFcnJvcn0gPSBFUlJPUlM7XG5cbmV4cG9ydCBjb25zdCBFeHBvcnRZYW1sID0gKCkgPT4ge1xuICAvKiogVGFrZXMgc3RyaW5nIGJlZm9yZSBoYXNodGFnLiAqL1xuICBjb25zdCBzdHJpcEhhc2h0YWcgPSAocGF0aDogc3RyaW5nKSA9PiBwYXRoLnNwbGl0KCcjJylbMF07XG5cbiAgLyoqXG4gICAqIFNhdmVzIG91dHB1dCBmaWxlIGluIFlBTUwgZm9ybWF0LlxuICAgKi9cbiAgY29uc3QgZXhlY3V0ZSA9IGFzeW5jICh0cmVlOiBhbnksIGNvbnRleHQ6IENvbnRleHQsIG91dHB1dFBhdGg6IHN0cmluZykgPT4ge1xuICAgIGlmICghb3V0cHV0UGF0aCkge1xuICAgICAgdGhyb3cgbmV3IEV4aGF1c3RFcnJvcignT3V0cHV0IHBhdGggaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0cHV0RmlsZSA9IHtcbiAgICAgIC4uLmNvbnRleHQsXG4gICAgICB0cmVlLFxuICAgIH07XG4gICAgY29uc3QgcGF0aCA9IHN0cmlwSGFzaHRhZyhvdXRwdXRQYXRoKTtcblxuICAgIGF3YWl0IHNhdmVZYW1sRmlsZUFzKG91dHB1dEZpbGUsIGAke3BhdGh9LnlhbWxgKTtcbiAgfTtcblxuICByZXR1cm4ge2V4ZWN1dGV9O1xufTtcbiJdfQ==
|
package/build/config/config.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ArgumentConfig } from 'ts-command-line-args';
|
|
1
|
+
import { ArgumentConfig, ParseOptions } from 'ts-command-line-args';
|
|
2
2
|
import { ManifestProcessArgs } from '../types/process-args';
|
|
3
3
|
export declare const CONFIG: {
|
|
4
|
-
|
|
4
|
+
IE: {
|
|
5
5
|
ARGS: ArgumentConfig<ManifestProcessArgs>;
|
|
6
|
-
HELP:
|
|
6
|
+
HELP: ParseOptions<any>;
|
|
7
7
|
};
|
|
8
8
|
GITHUB_PATH: string;
|
|
9
9
|
NATIVE_PLUGIN: string;
|
package/build/config/config.js
CHANGED
|
@@ -1,58 +1,54 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CONFIG = void 0;
|
|
4
|
+
const strings_1 = require("./strings");
|
|
5
|
+
const { DISCLAIMER_MESSAGE } = strings_1.STRINGS;
|
|
4
6
|
exports.CONFIG = {
|
|
5
|
-
|
|
7
|
+
IE: {
|
|
6
8
|
ARGS: {
|
|
7
9
|
manifest: {
|
|
8
10
|
type: String,
|
|
9
11
|
optional: true,
|
|
10
|
-
alias: '
|
|
11
|
-
description: '
|
|
12
|
+
alias: 'm',
|
|
13
|
+
description: '[path to the input file]',
|
|
12
14
|
},
|
|
13
15
|
output: {
|
|
14
16
|
type: String,
|
|
15
17
|
optional: true,
|
|
16
|
-
|
|
18
|
+
alias: 'o',
|
|
19
|
+
description: '[path to the output file]',
|
|
17
20
|
},
|
|
18
21
|
'override-params': {
|
|
19
22
|
type: String,
|
|
20
23
|
optional: true,
|
|
21
|
-
|
|
24
|
+
alias: 'p',
|
|
25
|
+
description: '[path to a parameter file that overrides our defaults]',
|
|
22
26
|
},
|
|
23
|
-
|
|
24
|
-
type: String,
|
|
25
|
-
optional: true,
|
|
26
|
-
description: 'The output file format. default to yaml but if csv is specified then it formats the outputs as a csv file for loading into another program.',
|
|
27
|
-
defaultValue: 'yaml',
|
|
28
|
-
},
|
|
29
|
-
verbose: {
|
|
27
|
+
stdout: {
|
|
30
28
|
type: Boolean,
|
|
31
29
|
optional: true,
|
|
32
|
-
|
|
30
|
+
alias: 's',
|
|
31
|
+
description: '[prints out to the console]',
|
|
33
32
|
},
|
|
34
33
|
help: {
|
|
35
34
|
type: Boolean,
|
|
36
35
|
optional: true,
|
|
37
36
|
alias: 'h',
|
|
38
|
-
description: '
|
|
37
|
+
description: '[prints out the above help instruction]',
|
|
39
38
|
},
|
|
40
39
|
},
|
|
41
|
-
HELP:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
verbose: how much information to output about the calculation to aid investigation and debugging.
|
|
51
|
-
help: prints out the above help instruction.
|
|
52
|
-
`,
|
|
40
|
+
HELP: {
|
|
41
|
+
helpArg: 'help',
|
|
42
|
+
headerContentSections: [
|
|
43
|
+
{ header: 'Impact Framework', content: 'Helpful keywords:' },
|
|
44
|
+
],
|
|
45
|
+
footerContentSections: [
|
|
46
|
+
{ header: 'Green Software Foundation', content: DISCLAIMER_MESSAGE },
|
|
47
|
+
],
|
|
48
|
+
},
|
|
53
49
|
},
|
|
54
50
|
GITHUB_PATH: 'https://github.com',
|
|
55
51
|
NATIVE_PLUGIN: 'if-plugins',
|
|
56
52
|
AGGREGATION_ADDITIONAL_PARAMS: ['timestamp', 'duration'],
|
|
57
53
|
};
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsdUNBQWtDO0FBSWxDLE1BQU0sRUFBQyxrQkFBa0IsRUFBQyxHQUFHLGlCQUFPLENBQUM7QUFFeEIsUUFBQSxNQUFNLEdBQUc7SUFDcEIsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0osUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxNQUFNO2dCQUNaLFFBQVEsRUFBRSxJQUFJO2dCQUNkLEtBQUssRUFBRSxHQUFHO2dCQUNWLFdBQVcsRUFBRSwwQkFBMEI7YUFDeEM7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLE1BQU07Z0JBQ1osUUFBUSxFQUFFLElBQUk7Z0JBQ2QsS0FBSyxFQUFFLEdBQUc7Z0JBQ1YsV0FBVyxFQUFFLDJCQUEyQjthQUN6QztZQUNELGlCQUFpQixFQUFFO2dCQUNqQixJQUFJLEVBQUUsTUFBTTtnQkFDWixRQUFRLEVBQUUsSUFBSTtnQkFDZCxLQUFLLEVBQUUsR0FBRztnQkFDVixXQUFXLEVBQUUsd0RBQXdEO2FBQ3RFO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxPQUFPO2dCQUNiLFFBQVEsRUFBRSxJQUFJO2dCQUNkLEtBQUssRUFBRSxHQUFHO2dCQUNWLFdBQVcsRUFBRSw2QkFBNkI7YUFDM0M7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLE9BQU87Z0JBQ2IsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsS0FBSyxFQUFFLEdBQUc7Z0JBQ1YsV0FBVyxFQUFFLHlDQUF5QzthQUN2RDtTQUNxQztRQUN4QyxJQUFJLEVBQUU7WUFDSixPQUFPLEVBQUUsTUFBTTtZQUNmLHFCQUFxQixFQUFFO2dCQUNyQixFQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUM7YUFDM0Q7WUFDRCxxQkFBcUIsRUFBRTtnQkFDckIsRUFBQyxNQUFNLEVBQUUsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFDO2FBQ25FO1NBQ21CO0tBQ3ZCO0lBQ0QsV0FBVyxFQUFFLG9CQUFvQjtJQUNqQyxhQUFhLEVBQUUsWUFBWTtJQUMzQiw2QkFBNkIsRUFBRSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7Q0FDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXJndW1lbnRDb25maWcsIFBhcnNlT3B0aW9uc30gZnJvbSAndHMtY29tbWFuZC1saW5lLWFyZ3MnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4vc3RyaW5ncyc7XG5cbmltcG9ydCB7TWFuaWZlc3RQcm9jZXNzQXJnc30gZnJvbSAnLi4vdHlwZXMvcHJvY2Vzcy1hcmdzJztcblxuY29uc3Qge0RJU0NMQUlNRVJfTUVTU0FHRX0gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgQ09ORklHID0ge1xuICBJRToge1xuICAgIEFSR1M6IHtcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgIGFsaWFzOiAnbScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnW3BhdGggdG8gdGhlIGlucHV0IGZpbGVdJyxcbiAgICAgIH0sXG4gICAgICBvdXRwdXQ6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgYWxpYXM6ICdvJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdbcGF0aCB0byB0aGUgb3V0cHV0IGZpbGVdJyxcbiAgICAgIH0sXG4gICAgICAnb3ZlcnJpZGUtcGFyYW1zJzoge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBhbGlhczogJ3AnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1twYXRoIHRvIGEgcGFyYW1ldGVyIGZpbGUgdGhhdCBvdmVycmlkZXMgb3VyIGRlZmF1bHRzXScsXG4gICAgICB9LFxuICAgICAgc3Rkb3V0OiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBhbGlhczogJ3MnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1twcmludHMgb3V0IHRvIHRoZSBjb25zb2xlXScsXG4gICAgICB9LFxuICAgICAgaGVscDoge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgYWxpYXM6ICdoJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdbcHJpbnRzIG91dCB0aGUgYWJvdmUgaGVscCBpbnN0cnVjdGlvbl0nLFxuICAgICAgfSxcbiAgICB9IGFzIEFyZ3VtZW50Q29uZmlnPE1hbmlmZXN0UHJvY2Vzc0FyZ3M+LFxuICAgIEhFTFA6IHtcbiAgICAgIGhlbHBBcmc6ICdoZWxwJyxcbiAgICAgIGhlYWRlckNvbnRlbnRTZWN0aW9uczogW1xuICAgICAgICB7aGVhZGVyOiAnSW1wYWN0IEZyYW1ld29yaycsIGNvbnRlbnQ6ICdIZWxwZnVsIGtleXdvcmRzOid9LFxuICAgICAgXSxcbiAgICAgIGZvb3RlckNvbnRlbnRTZWN0aW9uczogW1xuICAgICAgICB7aGVhZGVyOiAnR3JlZW4gU29mdHdhcmUgRm91bmRhdGlvbicsIGNvbnRlbnQ6IERJU0NMQUlNRVJfTUVTU0FHRX0sXG4gICAgICBdLFxuICAgIH0gYXMgUGFyc2VPcHRpb25zPGFueT4sXG4gIH0sXG4gIEdJVEhVQl9QQVRIOiAnaHR0cHM6Ly9naXRodWIuY29tJyxcbiAgTkFUSVZFX1BMVUdJTjogJ2lmLXBsdWdpbnMnLFxuICBBR0dSRUdBVElPTl9BRERJVElPTkFMX1BBUkFNUzogWyd0aW1lc3RhbXAnLCAnZHVyYXRpb24nXSxcbn07XG4iXX0=
|