@grnsft/if 0.7.2 → 1.0.0-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.
Files changed (34) hide show
  1. package/CONTRIBUTING.md +19 -6
  2. package/ENABLEMENT.md +115 -0
  3. package/README.md +0 -6
  4. package/SECURITY.md +100 -0
  5. package/adopters.md +9 -0
  6. package/build/common/util/logger.js +3 -3
  7. package/build/common/util/yaml.js +19 -7
  8. package/build/if-check/util/npm.js +55 -9
  9. package/build/if-run/builtins/divide/index.js +2 -4
  10. package/build/if-run/builtins/exponent/index.js +3 -5
  11. package/build/if-run/builtins/shell/index.js +2 -2
  12. package/manifests/outputs/bugs/package.json +24 -0
  13. package/manifests/outputs/builtins/coefficient/package.json +24 -0
  14. package/manifests/outputs/builtins/csv-lookup/cloud-metadata/package.json +24 -0
  15. package/manifests/outputs/builtins/csv-lookup/region-metadata/package.json +24 -0
  16. package/manifests/outputs/builtins/csv-lookup/tdp-finder/package.json +24 -0
  17. package/manifests/outputs/builtins/divide/package.json +24 -0
  18. package/manifests/outputs/builtins/exponent/package.json +24 -0
  19. package/manifests/outputs/builtins/interpolation/package.json +24 -0
  20. package/manifests/outputs/builtins/mock-observations/package.json +24 -0
  21. package/manifests/outputs/builtins/multiply/package.json +24 -0
  22. package/manifests/outputs/builtins/regex/package.json +24 -0
  23. package/manifests/outputs/builtins/sci/package.json +24 -0
  24. package/manifests/outputs/builtins/sci-embodied/package.json +24 -0
  25. package/manifests/outputs/builtins/shell/package.json +24 -0
  26. package/manifests/outputs/builtins/subtract/package.json +24 -0
  27. package/manifests/outputs/builtins/sum/package.json +24 -0
  28. package/manifests/outputs/builtins/time-converter/package.json +24 -0
  29. package/manifests/outputs/builtins/time-sync/package.json +24 -0
  30. package/manifests/outputs/features/package.json +24 -0
  31. package/manifests/outputs/features/regroup/package.json +24 -0
  32. package/manifests/outputs/pipelines/package.json +24 -0
  33. package/okrs.md +14 -0
  34. package/package.json +1 -1
package/CONTRIBUTING.md CHANGED
@@ -8,6 +8,7 @@ The following document is a rule set of guidelines for contributing.
8
8
 
9
9
  - [What and when to contribute](#what-and-when-to-contribute)
10
10
  - [Reporting bugs](#reporting-bugs)
11
+ - [Disclosing vulnerabilities](#disclosing-vulnerabilities)
11
12
  - [Code Contributions](#code-contributions)
12
13
  - [Step 1: Fork](#step-1-fork)
13
14
  - [Step 2: Branch](#step-2-branch)
@@ -37,16 +38,16 @@ We appreciate bug reports! If you experience an issue with IF, you can report it
37
38
  3. Click on `Create New Issue` and select the `Bug Report` template.
38
39
  4. Fill out the requested information.
39
40
 
40
- 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.
41
+ 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 steps 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.
41
42
 
42
- 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.
43
+ Once a suitably detailed bug report exists, we will triage it. Triage means that the core team will examine the issue and assign an urgency label - either Low, Medium or High.
43
44
 
44
45
  The assessment rubric is as follows:
45
46
 
46
47
  | | Consequence | Severity |
47
48
  | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -------- |
48
49
  | Bugs in IF core leading to incorrect calculations | unusable framework | 5 |
49
- | Bugs in builtins leading to incorrect calculations | core pathways fail, IF very limited in functionality | 5 |
50
+ | Bugs in builtins leading to incorrect calculations | core pathways fail, IF very limited in functionality | 5 |
50
51
  | Bugs in template | Harder to build plugins, ecosystem growth is impacted | 2 |
51
52
  | Bugs in docs | product does not match expectation, hard to debug, frustration, loss of adoption | 2 |
52
53
  | Security flaw: privacy related | leak user data, unlikely to achieve adoption in serious orgs | 5 |
@@ -69,7 +70,7 @@ The mapping of severity to label is as follows:
69
70
  | 4 | H |
70
71
  | 5 | H |
71
72
 
72
- 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.
73
+ The fix will be implemented for high-urgency bugs as soon as possible. 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.
73
74
 
74
75
  Not every bug will be fixed. We may decide *not* to fix a bug in cases such as:
75
76
 
@@ -80,6 +81,18 @@ Not every bug will be fixed. We may decide *not* to fix a bug in cases such as:
80
81
 
81
82
  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.
82
83
 
84
+ ## Disclosing vulnerabilities
85
+
86
+ If you discover a security vulnerability in IF, please report it to if-disclosures@greensoftware.foundation.
87
+
88
+ Include the following information:
89
+
90
+ - description of the issue
91
+ - steps to reproduce
92
+ - steps to fix, if known
93
+
94
+ The IF team will respond as quickly as possible. Post-graduation there will be no full-time development team, but GSF staff will aim to get the vulnerability patched as quickly as possible, aiming for <=14 day response time.
95
+
83
96
 
84
97
  ## Code Contributions
85
98
 
@@ -155,7 +168,7 @@ $ git push origin <topic-branch-name>
155
168
 
156
169
  ### Step 6: Pull Request
157
170
 
158
- Open a Pull Request from your fork of the repository to the `dev` branch of the IF repository with a clear title and description according to [template](.github/PULL_REQUEST_TEMPLATE.md).
171
+ Open a Pull Request from your fork of the repository to the `main` branch of the IF repository with a clear title and description according to [template](.github/PULL_REQUEST_TEMPLATE.md).
159
172
 
160
173
  Pull requests will not be reviewed unless they pass all CI. This includes a lint check and running our unit tests.
161
174
 
@@ -178,7 +191,7 @@ We prefer not to use abbreviations of contractions in parameter names.
178
191
 
179
192
  Using fully descriptive names makes the code more readable, which in turn helps reviewers and anyone else aiming to understand how the plugin works.
180
193
 
181
- It also helps to avoid ambiguity and naming collisions within and across plugins. Your name should describe what an element does as precisely as practically possible.
194
+ It also helps to avoid ambiguity and naming collisions within and across plugins. Ensure that names clearly and precisely describe the purpose of an element to make its functionality immediately apparent.
182
195
 
183
196
  For example, we prefer `functionalUnit` to `funcUnit`, `fUnit`, or any other abbreviation.
184
197
 
package/ENABLEMENT.md ADDED
@@ -0,0 +1,115 @@
1
+ # Enablement Guide for Impact Framework (IF)
2
+
3
+ ## What is the Impact Framework?
4
+
5
+ The **Impact Framework (IF)** empowers you to calculate and understand the environmental impact of your software. It comes with a standard library of built-in plugins, referred to as builtins, and an Explorer for discovering and installing third-party plugins.
6
+
7
+ ## How to Use the Impact Framework?
8
+
9
+ ### Prerequisites
10
+
11
+ Before getting started, ensure you have the following:
12
+
13
+ 1. **Node.js**: Installed and configured.
14
+ 2. **NPM**: Comes with Node.js; ensure it’s updated.
15
+ 3. **Access to Documentation**: Familiarize yourself with the [IF documentation](https://if.greensoftware.foundation/).
16
+ 4. **Basic YAML Knowledge**: For creating and managing manifest files.
17
+
18
+ ## Steps to Enable the Impact Framework
19
+
20
+ ### Step 1: Installation
21
+
22
+ Install the latest version of IF globally using NPM:
23
+
24
+ ```sh
25
+ npm install -g "@grnsft/if"
26
+ ```
27
+
28
+ `IF` provides multiple command-line tools, with the primary tool being `if-run`.
29
+
30
+ ### Step 2: Working with Command-Line Tools
31
+
32
+ 1. `if-run`: Execute Manifest Files
33
+
34
+ - Description: Executes manifest files to calculate impact.
35
+ - Manifest File: A YAML file central to IF functionality. It contains configurations, application architecture, input data, and serves as a portable, shareable, human-readable document for audits.
36
+ - Usage:
37
+
38
+ ```sh
39
+ if-run --manifest <path-to-your-manifest-file>
40
+ ```
41
+
42
+ More about if-run [here](https://if.greensoftware.foundation/reference/cli#if-run).
43
+
44
+ 2. `if-env`: Create Local Development Environments
45
+
46
+ - Description: Sets up a local environment for running manifests.
47
+ - Usage:
48
+
49
+ ```sh
50
+ mkdir my-manifest && cd my-manifest
51
+ if-env
52
+ ```
53
+
54
+ Find details in the [documentation](https://if.greensoftware.foundation/reference/cli#if-env).
55
+
56
+ 3. `if-check`: Verify Manifests
57
+
58
+ - Description: Combines the functionalities of if-env and if-diff to verify manifest files with outputs and execution sections.
59
+ - Usage:
60
+
61
+ ```sh
62
+ # Check a specific manifest file
63
+ if-check -m <path-to-your-manifest-file>
64
+
65
+ # Check all manifests in a directory
66
+ if-check -d /path-to-your-manifests
67
+ ```
68
+
69
+ Explore more in the [documentation](https://if.greensoftware.foundation/reference/cli#if-check).
70
+
71
+ 4. `if-csv`: Save Data to CSV
72
+
73
+ - Description: Saves calculated impact data to a CSV file.
74
+ - Usage:
75
+
76
+ ```sh
77
+ if-csv -m ./my-manifest.yml -p carbon
78
+ ```
79
+
80
+ Read more in the [documentation](https://if.greensoftware.foundation/reference/cli#if-csv).
81
+
82
+ 5. `if-diff`: Compare Manifests or Outputs
83
+
84
+ - Description: Compares two manifest or output files to identify differences.
85
+ - Usage:
86
+
87
+ ```sh
88
+ if-diff <file1> <file2>
89
+ ```
90
+
91
+ Details are available in the [documentation](https://if.greensoftware.foundation/reference/cli#if-diff).
92
+
93
+ ### Step 3: Explore Plugins
94
+
95
+ - Built-In Plugins: Utilize IF’s built-ins for common environmental impact assessments.
96
+ - Third-Party Plugins: Visit the Explorer to discover and install third-party plugins tailored to your needs.
97
+
98
+ ### Step 4: Help and Guidance
99
+
100
+ For assistance with any command, use the --help flag:
101
+
102
+ ```sh
103
+ if-run --help
104
+ ```
105
+
106
+ ## Additional Resources
107
+
108
+ - Documentation: [IF Documentation](https://if.greensoftware.foundation)
109
+ - Third-Party Plugins: [Plugin Explorer](https://explorer.if.greensoftware.foundation)
110
+
111
+ ## Support
112
+
113
+ Join the IF Community for updates and discussions:
114
+
115
+ - Mailing List: [if-community@greensoftware.foundation](https://groups.google.com/u/1/a/greensoftware.foundation/g/if-community)
package/README.md CHANGED
@@ -64,12 +64,6 @@ if-run -h
64
64
 
65
65
  Please read our documentation at [if.greensoftware.foundation](https://if.greensoftware.foundation/)
66
66
 
67
- ## Video walk-through
68
-
69
- Watch this video to learn how to create and run a `manifest`.
70
-
71
- [![Watch the walk-through video](https://i3.ytimg.com/vi/R-6eDM8AsvY/maxresdefault.jpg)](https://youtu.be/GW37Qd4AQbU)
72
-
73
67
  ## Join our mailing list
74
68
 
75
69
  We have a public mailing list at [if-community@greensoftware.foundation](https://groups.google.com/u/1/a/greensoftware.foundation/g/if-community). We send out weekly updates that explain what we've shipped, what we're working on and how you can get involved each week!
package/SECURITY.md ADDED
@@ -0,0 +1,100 @@
1
+ # Security Policy
2
+
3
+ ## Reporting a Vulnerability
4
+
5
+ To report a security issue, please email if-disclosures@greensoftware.foundation with a description of the issue, steps required to reproduce the issue, affected versions and, if known, mitigations for the issue.
6
+
7
+ Our contributors are comprised of volunteers so we cannot guarantee a specific response time, but someone from our team will reply and address the issue as soon as possible.
8
+
9
+ # Security Review
10
+
11
+ We perform regular reviews inline with the information provided below. All releases go through these reviews but multiple people in the project team prior to release as part of our quality and security review.
12
+
13
+ ## Basics
14
+ ### Basic Project Website Content
15
+ - Describe what the project does - ✅ in README and homepage at https://if.greensoftware.foundation
16
+ - Provide info how to obtain/provide feedback and contribute - ✅ https://if.greensoftware.foundation/community
17
+ - Explain contribution process - ✅ https://github.com/Green-Software-Foundation/if/blob/main/CONTRIBUTING.md
18
+
19
+ ### FLOSS license
20
+ - Must be released as FLOSS - ✅ MIT License https://github.com/Green-Software-Foundation/if/blob/main/LICENSE
21
+ - Must post the license - ✅ https://github.com/Green-Software-Foundation/if/blob/main/LICENSE
22
+ - Also approved by OSI - ✅ https://opensource.org/license/MIT/
23
+
24
+ ### Documentation
25
+ - Provides basic documentation - ✅ https://if.greensoftware.foundation
26
+
27
+ ### Other
28
+ - Project site, downloads etc must support HTTPS with TLS - ✅ using GitHub to host which supports this https://github.com/Green-Software-Foundation/if
29
+ - Have mechanism for discussion - ✅ github issues https://github.com/Green-Software-Foundation/if/issues, discussion board https://github.com/Green-Software-Foundation/if/discussions and mailing list at if-community@greensoftware.foundaton
30
+ - Project must be maintained - ✅ actively maintaned by GSF and its members
31
+
32
+ ## Change control
33
+ ### Public VCS repo
34
+ - Readable public VCS repo - ✅ yes, Github https://github.com/Green-Software-Foundation/if
35
+ - Track changes - ✅ yes, Git https://github.com/Green-Software-Foundation/if/commits/main
36
+ - Interim versions between releases available for review - ✅ yes, interim versions actively developed and availble on the `main` branch https://github.com/Green-Software-Foundation/if
37
+
38
+ ### Unique versioning numbering
39
+ - Unique indentifier for each release - ✅ https://github.com/Green-Software-Foundation/if/releases
40
+
41
+ ### Release notes
42
+ - Human readable release notes for each release (not git log) - ✅ https://github.com/Green-Software-Foundation/if/releases
43
+ - Address each publicly known vulnerability - ✅ N/A, no vulnerability reported yet
44
+
45
+ ## Reporting
46
+ ### Bug reporting process
47
+ - Process to submit bugs - ✅ https://github.com/Green-Software-Foundation/if/blob/main/CONTRIBUTING.md#reporting-bugs
48
+ - Must acknowledge bugs (reply) submitted between 2-12 months - ✅ each bug has at least an acknowledgement or was opened by a maintainer (so acknowledged by a maintainer): https://github.com/Green-Software-Foundation/if/issues?q=is%3Aopen+is%3Aissue+label%3Abug
49
+ - Publicly available archive for reports and responses - ✅ github issues: https://github.com/Green-Software-Foundation/if/issues?q=is%3Aopen+is%3Aissue+label%3Abug
50
+
51
+ ## Vulnerability report process
52
+ - Have a vulnerability report process - ✅ Included in CONTRIBUTING.md
53
+ - Private vulnerability if supported must include info how to send - ✅ N/A (allowed) - no private vulnerability reporting set up but proposed
54
+ - Initial response time for vulnerability submitted in last 6 months must be <= 14 days - ✅ N/A (allowed) - no vulnerabilities have yet been reported. Response times for bugs and other issues have been <14 days, post-graduation development will be by volunteers and open source developer community, so we can't guarantee a time to resolution.
55
+
56
+ ## Quality
57
+ ### Working build system
58
+ - Must provide a working build system - ✅ IF is a locally running NodeJS app. We do provide a devcontainer for eays environment setup. Installation is simply achieved using `npm i @grnsft/if`.
59
+
60
+ ### Automated test suite
61
+ - Have at least one automated test suite and documentation how to run it - ✅ We have a comprehensive set of unit tests and a library of becnhmark manifest files that act as integration tests. These can be run locally, and they are executed as part of our CI/CD on any PRs into `main`.
62
+
63
+ ## New functionaility testing
64
+ - Formal/informal policy for adding tests for new features - ✅ Test suite in CI/CD checks for breaking changes in PRs. Any new feature must include unit tests and an example manifest that demonstrates usage.
65
+ - Evidence of policy being adhered to - ✅
66
+
67
+ ### Warning flags
68
+ - Compiler warning flags or linter tools for code quality/errors - ✅ CodeQL analysis in automated CI : https://github.com/Green-Software-Foundation/carbon-aware-sdk/blob/dev/.github/workflows/1-pr.yaml#L82
69
+ - Address warnings from these tools - ✅ blocking PRs on fail
70
+
71
+ ## Security
72
+ ### Secure development knowledge
73
+ - At least one primary developer who knows how to design secure software - ✅ Manushak and Narek are both primary developers and have broad experience.
74
+ - At least one of the project's primary developers MUST know of common kinds of errors that lead to vulnerabilities in this kind of software, as well as at least one method to counter or mitigate each of them - ✅
75
+
76
+ ### Use basic good cryptographic practices
77
+ - https://www.bestpractices.dev/en/criteria/0#0.crypto_published - ✅ n/a
78
+ - https://www.bestpractices.dev/en/criteria/0#0.crypto_floss - ✅ n/a
79
+ - https://www.bestpractices.dev/en/criteria/0#0.crypto_keylength - ✅ n/a
80
+ - https://www.bestpractices.dev/en/criteria/0#0.crypto_working - ✅ n/a
81
+ - https://www.bestpractices.dev/en/criteria/0#0.crypto_password_storage - ✅ n/a
82
+ - https://www.bestpractices.dev/en/criteria/0#0.crypto_random - ✅ n/a
83
+
84
+ ### Secured delivery against man-in-the-middle (MITM) attacks
85
+ - Delivery mechanisms that counters MITM - ✅ n/a
86
+ - Cyrptographic hash NOT retrived over HTTP - ✅ n/a
87
+
88
+ ### Publicly known vulnerabilities fixed
89
+ - No unpatched vulnerabilities of medium or higher severity that have been publicly known for more than 60 day - ✅ no such vulnerabilities
90
+
91
+ ### Other security issues
92
+ - Public repo doesnt leak private credential - ✅ does not do that.
93
+
94
+ ## Analysis
95
+ ### Static code analysis
96
+ - At least one FLOSS static code analysis tool - ✅ CodeQL is integrated into our CI/CD.
97
+ - All medium and higher severity exploitable vulnerabilities discovered with static code analysis MUST be fixed in a timely way after they are confirmed - ✅ We have not yet had any exploitable vulnerabilities reported, but the GSF team will respond promptly to any disclosed issues.
98
+
99
+ ### Dynamic code analysis
100
+ - All medium and higher severity exploitable vulnerabilities discovered with dynamic code analysis MUST be fixed in a timely way after they are confirmed. - ✅ We have not yet had any exploitable vulnerabilities reported, but the GSF team will respond promptly to any disclosed issues.
package/adopters.md ADDED
@@ -0,0 +1,9 @@
1
+ # Adopters
2
+
3
+ Impact Framework is being used by several major organizations to introspect their software systems, as well as having a thriving open source community.
4
+
5
+ One adopter we will highlight in this file is Amadeus. They have used IF at a large scale, processing multi-million line manifests covering thousands of production servers. they have built their own tooling stack on top of IF. They kindly provided the following quote:
6
+
7
+ "At Amadeus, the Impact Framework (IF) has become an essential brick in our software carbon measurement engine. Its scalability provides us with a transparent and robust way to model the energy consumption and carbon emissions of our whole cloud infrastructure. Its open-source nature fosters collaboration and innovation, making it a critical part of our efforts to drive environmental responsibility."
8
+
9
+ *Robin Castellon, Amadeus*
@@ -32,8 +32,8 @@ const { combine, timestamp, printf, colorize, align } = winston.format;
32
32
  exports.logger = winston.createLogger({
33
33
  format: combine(colorize({ all: true }), timestamp({
34
34
  format: 'YYYY-MM-DD hh:mm:ss.SSS A',
35
- }), align(), printf((info) => `[${info.timestamp}] ${info.level}: ${info.message}
36
- ${info.stack || ''}`)),
35
+ }), align(), printf((info) => `[${info.timestamp}] ${info.stack || `${info.level}: ${info.message}`}
36
+ `)),
37
37
  transports: [new winston.transports.Console()],
38
38
  });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi91dGlsL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUFtQztBQUVuQyxNQUFNLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFFckU7O0dBRUc7QUFDVSxRQUFBLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxPQUFPLENBQ2IsUUFBUSxDQUFDLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBQyxDQUFDLEVBQ3JCLFNBQVMsQ0FBQztRQUNSLE1BQU0sRUFBRSwyQkFBMkI7S0FDcEMsQ0FBQyxFQUNGLEtBQUssRUFBRSxFQUNQLE1BQU0sQ0FDSixDQUFDLElBQVMsRUFBRSxFQUFFLENBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLE9BQU87RUFDeEQsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FDZixDQUNGO0lBQ0QsVUFBVSxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0NBQy9DLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHdpbnN0b24gZnJvbSAnd2luc3Rvbic7XG5cbmNvbnN0IHtjb21iaW5lLCB0aW1lc3RhbXAsIHByaW50ZiwgY29sb3JpemUsIGFsaWdufSA9IHdpbnN0b24uZm9ybWF0O1xuXG4vKipcbiAqIFdpbnN0b24gbG9nZ2VyIGluc3RhbmNlLlxuICovXG5leHBvcnQgY29uc3QgbG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICBmb3JtYXQ6IGNvbWJpbmUoXG4gICAgY29sb3JpemUoe2FsbDogdHJ1ZX0pLFxuICAgIHRpbWVzdGFtcCh7XG4gICAgICBmb3JtYXQ6ICdZWVlZLU1NLUREIGhoOm1tOnNzLlNTUyBBJyxcbiAgICB9KSxcbiAgICBhbGlnbigpLFxuICAgIHByaW50ZihcbiAgICAgIChpbmZvOiBhbnkpID0+XG4gICAgICAgIGBbJHtpbmZvLnRpbWVzdGFtcH1dICR7aW5mby5sZXZlbH06ICR7aW5mby5tZXNzYWdlfVxuJHtpbmZvLnN0YWNrIHx8ICcnfWBcbiAgICApXG4gICksXG4gIHRyYW5zcG9ydHM6IFtuZXcgd2luc3Rvbi50cmFuc3BvcnRzLkNvbnNvbGUoKV0sXG59KTtcbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi91dGlsL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUFtQztBQUVuQyxNQUFNLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFFckU7O0dBRUc7QUFDVSxRQUFBLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxPQUFPLENBQ2IsUUFBUSxDQUFDLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBQyxDQUFDLEVBQ3JCLFNBQVMsQ0FBQztRQUNSLE1BQU0sRUFBRSwyQkFBMkI7S0FDcEMsQ0FBQyxFQUNGLEtBQUssRUFBRSxFQUNQLE1BQU0sQ0FDSixDQUFDLElBQVMsRUFBRSxFQUFFLENBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxLQUFLLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7Q0FDNUUsQ0FDSSxDQUNGO0lBQ0QsVUFBVSxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0NBQy9DLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHdpbnN0b24gZnJvbSAnd2luc3Rvbic7XG5cbmNvbnN0IHtjb21iaW5lLCB0aW1lc3RhbXAsIHByaW50ZiwgY29sb3JpemUsIGFsaWdufSA9IHdpbnN0b24uZm9ybWF0O1xuXG4vKipcbiAqIFdpbnN0b24gbG9nZ2VyIGluc3RhbmNlLlxuICovXG5leHBvcnQgY29uc3QgbG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICBmb3JtYXQ6IGNvbWJpbmUoXG4gICAgY29sb3JpemUoe2FsbDogdHJ1ZX0pLFxuICAgIHRpbWVzdGFtcCh7XG4gICAgICBmb3JtYXQ6ICdZWVlZLU1NLUREIGhoOm1tOnNzLlNTUyBBJyxcbiAgICB9KSxcbiAgICBhbGlnbigpLFxuICAgIHByaW50ZihcbiAgICAgIChpbmZvOiBhbnkpID0+XG4gICAgICAgIGBbJHtpbmZvLnRpbWVzdGFtcH1dICR7aW5mby5zdGFjayB8fCBgJHtpbmZvLmxldmVsfTogJHtpbmZvLm1lc3NhZ2V9YH1cbmBcbiAgICApXG4gICksXG4gIHRyYW5zcG9ydHM6IFtuZXcgd2luc3Rvbi50cmFuc3BvcnRzLkNvbnNvbGUoKV0sXG59KTtcbiJdfQ==
@@ -27,22 +27,34 @@ exports.checkIfFileIsYaml = exports.saveYamlFileAs = exports.openYamlFileAsObjec
27
27
  const fs = __importStar(require("fs/promises"));
28
28
  const path = __importStar(require("path"));
29
29
  const YAML = __importStar(require("js-yaml"));
30
+ const utils_1 = require("@grnsft/if-core/utils");
31
+ const { ReadFileError, WriteFileError } = utils_1.ERRORS;
30
32
  /**
31
33
  * Reads and parses `yaml` file to object.
32
34
  */
33
35
  const openYamlFileAsObject = async (filePath) => {
34
- const yamlFileBuffer = await fs.readFile(filePath, 'utf8');
35
- return YAML.load(yamlFileBuffer);
36
+ try {
37
+ const yamlFileBuffer = await fs.readFile(filePath, 'utf8');
38
+ return YAML.load(yamlFileBuffer);
39
+ }
40
+ catch (error) {
41
+ throw new ReadFileError(error.message);
42
+ }
36
43
  };
37
44
  exports.openYamlFileAsObject = openYamlFileAsObject;
38
45
  /**
39
46
  * Saves given `yaml` dump as a file.
40
47
  */
41
48
  const saveYamlFileAs = async (object, pathToFile) => {
42
- const dirPath = path.dirname(pathToFile);
43
- await fs.mkdir(dirPath, { recursive: true });
44
- const yamlString = YAML.dump(object, { noRefs: true });
45
- return fs.writeFile(pathToFile, yamlString);
49
+ try {
50
+ const dirPath = path.dirname(pathToFile);
51
+ await fs.mkdir(dirPath, { recursive: true });
52
+ const yamlString = YAML.dump(object, { noRefs: true });
53
+ return await fs.writeFile(pathToFile, yamlString);
54
+ }
55
+ catch (error) {
56
+ throw new WriteFileError(error.message);
57
+ }
46
58
  };
47
59
  exports.saveYamlFileAs = saveYamlFileAs;
48
60
  /**
@@ -56,4 +68,4 @@ const checkIfFileIsYaml = (fileName) => {
56
68
  return yamlFileTypes.includes(extension);
57
69
  };
58
70
  exports.checkIfFileIsYaml = checkIfFileIsYaml;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vdXRpbC95YW1sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWtDO0FBQ2xDLDJDQUE2QjtBQUU3Qiw4Q0FBZ0M7QUFFaEM7O0dBRUc7QUFDSSxNQUFNLG9CQUFvQixHQUFHLEtBQUssRUFBSyxRQUFnQixFQUFjLEVBQUU7SUFDNUUsTUFBTSxjQUFjLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUUzRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFNLENBQUM7QUFDeEMsQ0FBQyxDQUFDO0FBSlcsUUFBQSxvQkFBb0Isd0JBSS9CO0FBRUY7O0dBRUc7QUFDSSxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsTUFBVyxFQUFFLFVBQWtCLEVBQUUsRUFBRTtJQUN0RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUMzQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBRXJELE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDO0FBTlcsUUFBQSxjQUFjLGtCQU16QjtBQUVGOztHQUVHO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtJQUNwRCxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0QyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUzQyxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBUFcsUUFBQSxpQkFBaUIscUJBTzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0ICogYXMgWUFNTCBmcm9tICdqcy15YW1sJztcblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIGB5YW1sYCBmaWxlIHRvIG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9wZW5ZYW1sRmlsZUFzT2JqZWN0ID0gYXN5bmMgPFQ+KGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgeWFtbEZpbGVCdWZmZXIgPSBhd2FpdCBmcy5yZWFkRmlsZShmaWxlUGF0aCwgJ3V0ZjgnKTtcblxuICByZXR1cm4gWUFNTC5sb2FkKHlhbWxGaWxlQnVmZmVyKSBhcyBUO1xufTtcblxuLyoqXG4gKiBTYXZlcyBnaXZlbiBgeWFtbGAgZHVtcCBhcyBhIGZpbGUuXG4gKi9cbmV4cG9ydCBjb25zdCBzYXZlWWFtbEZpbGVBcyA9IGFzeW5jIChvYmplY3Q6IGFueSwgcGF0aFRvRmlsZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGRpclBhdGggPSBwYXRoLmRpcm5hbWUocGF0aFRvRmlsZSk7XG4gIGF3YWl0IGZzLm1rZGlyKGRpclBhdGgsIHtyZWN1cnNpdmU6IHRydWV9KTtcbiAgY29uc3QgeWFtbFN0cmluZyA9IFlBTUwuZHVtcChvYmplY3QsIHtub1JlZnM6IHRydWV9KTtcblxuICByZXR1cm4gZnMud3JpdGVGaWxlKHBhdGhUb0ZpbGUsIHlhbWxTdHJpbmcpO1xufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgZ2l2ZW4gYGZpbGVOYW1lYCBpcyB5YW1sLlxuICovXG5leHBvcnQgY29uc3QgY2hlY2tJZkZpbGVJc1lhbWwgPSAoZmlsZU5hbWU6IHN0cmluZykgPT4ge1xuICBjb25zdCB5YW1sRmlsZVR5cGVzID0gWyd5YW1sJywgJ3ltbCddO1xuICBjb25zdCBzcGxpdHRlZFBhcnRzID0gZmlsZU5hbWUuc3BsaXQoJy4nKTtcbiAgY29uc3QgbGFzdEluZGV4ID0gc3BsaXR0ZWRQYXJ0cy5sZW5ndGggLSAxO1xuICBjb25zdCBleHRlbnNpb24gPSBzcGxpdHRlZFBhcnRzW2xhc3RJbmRleF07XG5cbiAgcmV0dXJuIHlhbWxGaWxlVHlwZXMuaW5jbHVkZXMoZXh0ZW5zaW9uKTtcbn07XG4iXX0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vdXRpbC95YW1sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWtDO0FBQ2xDLDJDQUE2QjtBQUU3Qiw4Q0FBZ0M7QUFDaEMsaURBQTZDO0FBRTdDLE1BQU0sRUFBQyxhQUFhLEVBQUUsY0FBYyxFQUFDLEdBQUcsY0FBTSxDQUFDO0FBRS9DOztHQUVHO0FBQ0ksTUFBTSxvQkFBb0IsR0FBRyxLQUFLLEVBQUssUUFBZ0IsRUFBYyxFQUFFO0lBQzVFLElBQUk7UUFDRixNQUFNLGNBQWMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQU0sQ0FBQztLQUN2QztJQUFDLE9BQU8sS0FBVSxFQUFFO1FBQ25CLE1BQU0sSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3hDO0FBQ0gsQ0FBQyxDQUFDO0FBUlcsUUFBQSxvQkFBb0Isd0JBUS9CO0FBRUY7O0dBRUc7QUFDSSxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsTUFBVyxFQUFFLFVBQWtCLEVBQUUsRUFBRTtJQUN0RSxJQUFJO1FBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUVyRCxPQUFPLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7S0FDbkQ7SUFBQyxPQUFPLEtBQVUsRUFBRTtRQUNuQixNQUFNLElBQUksY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUN6QztBQUNILENBQUMsQ0FBQztBQVZXLFFBQUEsY0FBYyxrQkFVekI7QUFFRjs7R0FFRztBQUNJLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7SUFDcEQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMzQyxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFM0MsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQztBQVBXLFFBQUEsaUJBQWlCLHFCQU81QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCAqIGFzIFlBTUwgZnJvbSAnanMteWFtbCc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcblxuY29uc3Qge1JlYWRGaWxlRXJyb3IsIFdyaXRlRmlsZUVycm9yfSA9IEVSUk9SUztcblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIGB5YW1sYCBmaWxlIHRvIG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9wZW5ZYW1sRmlsZUFzT2JqZWN0ID0gYXN5bmMgPFQ+KGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPFQ+ID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB5YW1sRmlsZUJ1ZmZlciA9IGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVQYXRoLCAndXRmOCcpO1xuXG4gICAgcmV0dXJuIFlBTUwubG9hZCh5YW1sRmlsZUJ1ZmZlcikgYXMgVDtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIHRocm93IG5ldyBSZWFkRmlsZUVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICB9XG59O1xuXG4vKipcbiAqIFNhdmVzIGdpdmVuIGB5YW1sYCBkdW1wIGFzIGEgZmlsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNhdmVZYW1sRmlsZUFzID0gYXN5bmMgKG9iamVjdDogYW55LCBwYXRoVG9GaWxlOiBzdHJpbmcpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkaXJQYXRoID0gcGF0aC5kaXJuYW1lKHBhdGhUb0ZpbGUpO1xuICAgIGF3YWl0IGZzLm1rZGlyKGRpclBhdGgsIHtyZWN1cnNpdmU6IHRydWV9KTtcbiAgICBjb25zdCB5YW1sU3RyaW5nID0gWUFNTC5kdW1wKG9iamVjdCwge25vUmVmczogdHJ1ZX0pO1xuXG4gICAgcmV0dXJuIGF3YWl0IGZzLndyaXRlRmlsZShwYXRoVG9GaWxlLCB5YW1sU3RyaW5nKTtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIHRocm93IG5ldyBXcml0ZUZpbGVFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgfVxufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgZ2l2ZW4gYGZpbGVOYW1lYCBpcyB5YW1sLlxuICovXG5leHBvcnQgY29uc3QgY2hlY2tJZkZpbGVJc1lhbWwgPSAoZmlsZU5hbWU6IHN0cmluZykgPT4ge1xuICBjb25zdCB5YW1sRmlsZVR5cGVzID0gWyd5YW1sJywgJ3ltbCddO1xuICBjb25zdCBzcGxpdHRlZFBhcnRzID0gZmlsZU5hbWUuc3BsaXQoJy4nKTtcbiAgY29uc3QgbGFzdEluZGV4ID0gc3BsaXR0ZWRQYXJ0cy5sZW5ndGggLSAxO1xuICBjb25zdCBleHRlbnNpb24gPSBzcGxpdHRlZFBhcnRzW2xhc3RJbmRleF07XG5cbiAgcmV0dXJuIHlhbWxGaWxlVHlwZXMuaW5jbHVkZXMoZXh0ZW5zaW9uKTtcbn07XG4iXX0=
@@ -25,15 +25,18 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.executeCommands = void 0;
27
27
  const path = __importStar(require("node:path"));
28
- const helpers_1 = require("../../common/util/helpers");
28
+ const child_process_1 = require("child_process");
29
29
  const fs_1 = require("../../common/util/fs");
30
30
  const config_1 = require("../config");
31
31
  const { IF_CHECK_VERIFIED } = config_1.STRINGS;
32
+ /**
33
+ * Escapes shell characters that could be dangerous in a command.
34
+ */
35
+ const escapeShellArg = (str) => str.replace(/([`$\\&;|*?<>])/g, '\\$1');
32
36
  /**
33
37
  * Executes a series of npm commands based on the provided manifest file.
34
38
  */
35
39
  const executeCommands = async (manifest, cwd) => {
36
- // TODO: After release remove isGlobal and appropriate checks
37
40
  const isGlobal = !!process.env.npm_config_global;
38
41
  const manifestDirPath = path.dirname(manifest);
39
42
  const manifestFileName = (0, fs_1.getFileName)(manifest);
@@ -41,13 +44,56 @@ const executeCommands = async (manifest, cwd) => {
41
44
  const prefixFlag = process.env.CURRENT_DIR && process.env.CURRENT_DIR !== process.cwd()
42
45
  ? `--prefix=${path.relative(process.env.CURRENT_DIR, process.cwd())}`
43
46
  : '';
44
- const ifEnv = `${isGlobal ? `if-env ${prefixFlag}` : `npm run if-env ${prefixFlag} --`} -m ${manifest}`;
45
- const ifEnvCommand = cwd ? `${ifEnv} -c` : ifEnv;
46
- const ifRunCommand = `${isGlobal ? `if-run ${prefixFlag}` : `npm run if-run ${prefixFlag} --`} -m ${manifest} -o ${executedManifest}`;
47
- const ifDiffCommand = `${isGlobal ? `if-diff ${prefixFlag}` : `npm run if-diff ${prefixFlag} --`} -s ${executedManifest}.yaml -t ${manifest}`;
48
- const ttyCommand = " node -p 'Boolean(process.stdout.isTTY)'";
49
- await (0, helpers_1.execPromise)(`${ifEnvCommand} && ${ifRunCommand} && ${ttyCommand} | ${ifDiffCommand}`, {
47
+ const sanitizedManifest = escapeShellArg(manifest);
48
+ const sanitizedExecutedManifest = escapeShellArg(executedManifest);
49
+ const ifEnvCommand = [
50
+ isGlobal ? 'if-env' : 'npm',
51
+ ...(isGlobal ? [] : ['run', 'if-env']),
52
+ '--',
53
+ ...(prefixFlag === '' ? [] : [prefixFlag]),
54
+ '-m',
55
+ sanitizedManifest,
56
+ ];
57
+ const ifRunCommand = [
58
+ isGlobal ? 'if-run' : 'npm',
59
+ ...(isGlobal ? [] : ['run', 'if-run']),
60
+ '--',
61
+ ...(prefixFlag === '' ? [] : [prefixFlag]),
62
+ '-m',
63
+ sanitizedManifest,
64
+ '-o',
65
+ sanitizedExecutedManifest,
66
+ ];
67
+ const ttyCommand = ['node', '-p', 'Boolean(process.stdout.isTTY)'];
68
+ const ifDiffCommand = [
69
+ isGlobal ? 'if-diff' : 'npm',
70
+ ...(isGlobal ? [] : ['run', 'if-diff']),
71
+ '--',
72
+ ...(prefixFlag === '' ? [] : [prefixFlag]),
73
+ '-s',
74
+ `${sanitizedExecutedManifest}.yaml`,
75
+ '-t',
76
+ sanitizedManifest,
77
+ ];
78
+ (0, child_process_1.execFileSync)(ifEnvCommand[0], ifEnvCommand.slice(1), {
79
+ cwd: process.env.CURRENT_DIR || process.cwd(),
80
+ shell: true,
81
+ });
82
+ (0, child_process_1.execFileSync)(ifRunCommand[0], ifRunCommand.slice(1), {
83
+ cwd: process.env.CURRENT_DIR || process.cwd(),
84
+ });
85
+ (0, child_process_1.execFileSync)(ttyCommand[0], ttyCommand.slice(1), {
86
+ cwd: process.env.CURRENT_DIR || process.cwd(),
87
+ });
88
+ const ttyResult = (0, child_process_1.execFileSync)(ttyCommand[0], ttyCommand.slice(1), {
89
+ cwd: process.env.CURRENT_DIR || process.cwd(),
90
+ });
91
+ const tty = ttyResult && ttyResult.toString().trim();
92
+ const fullCommand = `${tty === 'true' ? 'tty |' : ''} ${ifDiffCommand.join(' ')}`;
93
+ (0, child_process_1.execFileSync)(fullCommand, {
50
94
  cwd: process.env.CURRENT_DIR || process.cwd(),
95
+ stdio: 'inherit',
96
+ shell: true,
51
97
  });
52
98
  if (!cwd) {
53
99
  await (0, fs_1.removeFileIfExists)(`${manifestDirPath}/package.json`);
@@ -56,4 +102,4 @@ const executeCommands = async (manifest, cwd) => {
56
102
  console.log(IF_CHECK_VERIFIED(path.basename(manifest)));
57
103
  };
58
104
  exports.executeCommands = executeCommands;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLWNoZWNrL3V0aWwvbnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWtDO0FBRWxDLHVEQUFzRDtBQUN0RCw2Q0FBcUU7QUFFckUsc0NBQWtDO0FBRWxDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFFcEM7O0dBRUc7QUFDSSxNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQUUsUUFBZ0IsRUFBRSxHQUFZLEVBQUUsRUFBRTtJQUN0RSw2REFBNkQ7SUFDN0QsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUM7SUFDakQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxNQUFNLGdCQUFnQixHQUFHLElBQUEsZ0JBQVcsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sVUFBVSxHQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxLQUFLLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDbEUsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVksRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRTtRQUN0RSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1QsTUFBTSxLQUFLLEdBQUcsR0FDWixRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixVQUFVLEtBQ2xFLE9BQU8sUUFBUSxFQUFFLENBQUM7SUFDbEIsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDakQsTUFBTSxZQUFZLEdBQUcsR0FDbkIsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsVUFBVSxLQUNsRSxPQUFPLFFBQVEsT0FBTyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sYUFBYSxHQUFHLEdBQ3BCLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLFVBQVUsS0FDcEUsT0FBTyxnQkFBZ0IsWUFBWSxRQUFRLEVBQUUsQ0FBQztJQUM5QyxNQUFNLFVBQVUsR0FBRywwQ0FBMEMsQ0FBQztJQUU5RCxNQUFNLElBQUEscUJBQVcsRUFDZixHQUFHLFlBQVksT0FBTyxZQUFZLE9BQU8sVUFBVSxNQUFNLGFBQWEsRUFBRSxFQUN4RTtRQUNFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0tBQzlDLENBQ0YsQ0FBQztJQUVGLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixNQUFNLElBQUEsdUJBQWtCLEVBQUMsR0FBRyxlQUFlLGVBQWUsQ0FBQyxDQUFDO0tBQzdEO0lBRUQsTUFBTSxJQUFBLHVCQUFrQixFQUFDLEdBQUcsZ0JBQWdCLE9BQU8sQ0FBQyxDQUFDO0lBRXJELE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQyxDQUFDO0FBcENXLFFBQUEsZUFBZSxtQkFvQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQge2V4ZWNQcm9taXNlfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9oZWxwZXJzJztcbmltcG9ydCB7Z2V0RmlsZU5hbWUsIHJlbW92ZUZpbGVJZkV4aXN0c30gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvZnMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uL2NvbmZpZyc7XG5cbmNvbnN0IHtJRl9DSEVDS19WRVJJRklFRH0gPSBTVFJJTkdTO1xuXG4vKipcbiAqIEV4ZWN1dGVzIGEgc2VyaWVzIG9mIG5wbSBjb21tYW5kcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgbWFuaWZlc3QgZmlsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGV4ZWN1dGVDb21tYW5kcyA9IGFzeW5jIChtYW5pZmVzdDogc3RyaW5nLCBjd2Q6IGJvb2xlYW4pID0+IHtcbiAgLy8gVE9ETzogQWZ0ZXIgcmVsZWFzZSByZW1vdmUgaXNHbG9iYWwgYW5kIGFwcHJvcHJpYXRlIGNoZWNrc1xuICBjb25zdCBpc0dsb2JhbCA9ICEhcHJvY2Vzcy5lbnYubnBtX2NvbmZpZ19nbG9iYWw7XG4gIGNvbnN0IG1hbmlmZXN0RGlyUGF0aCA9IHBhdGguZGlybmFtZShtYW5pZmVzdCk7XG4gIGNvbnN0IG1hbmlmZXN0RmlsZU5hbWUgPSBnZXRGaWxlTmFtZShtYW5pZmVzdCk7XG4gIGNvbnN0IGV4ZWN1dGVkTWFuaWZlc3QgPSBwYXRoLmpvaW4obWFuaWZlc3REaXJQYXRoLCBgcmUtJHttYW5pZmVzdEZpbGVOYW1lfWApO1xuICBjb25zdCBwcmVmaXhGbGFnID1cbiAgICBwcm9jZXNzLmVudi5DVVJSRU5UX0RJUiAmJiBwcm9jZXNzLmVudi5DVVJSRU5UX0RJUiAhPT0gcHJvY2Vzcy5jd2QoKVxuICAgICAgPyBgLS1wcmVmaXg9JHtwYXRoLnJlbGF0aXZlKHByb2Nlc3MuZW52LkNVUlJFTlRfRElSISwgcHJvY2Vzcy5jd2QoKSl9YFxuICAgICAgOiAnJztcbiAgY29uc3QgaWZFbnYgPSBgJHtcbiAgICBpc0dsb2JhbCA/IGBpZi1lbnYgJHtwcmVmaXhGbGFnfWAgOiBgbnBtIHJ1biBpZi1lbnYgJHtwcmVmaXhGbGFnfSAtLWBcbiAgfSAtbSAke21hbmlmZXN0fWA7XG4gIGNvbnN0IGlmRW52Q29tbWFuZCA9IGN3ZCA/IGAke2lmRW52fSAtY2AgOiBpZkVudjtcbiAgY29uc3QgaWZSdW5Db21tYW5kID0gYCR7XG4gICAgaXNHbG9iYWwgPyBgaWYtcnVuICR7cHJlZml4RmxhZ31gIDogYG5wbSBydW4gaWYtcnVuICR7cHJlZml4RmxhZ30gLS1gXG4gIH0gLW0gJHttYW5pZmVzdH0gLW8gJHtleGVjdXRlZE1hbmlmZXN0fWA7XG4gIGNvbnN0IGlmRGlmZkNvbW1hbmQgPSBgJHtcbiAgICBpc0dsb2JhbCA/IGBpZi1kaWZmICR7cHJlZml4RmxhZ31gIDogYG5wbSBydW4gaWYtZGlmZiAke3ByZWZpeEZsYWd9IC0tYFxuICB9IC1zICR7ZXhlY3V0ZWRNYW5pZmVzdH0ueWFtbCAtdCAke21hbmlmZXN0fWA7XG4gIGNvbnN0IHR0eUNvbW1hbmQgPSBcIiBub2RlIC1wICdCb29sZWFuKHByb2Nlc3Muc3Rkb3V0LmlzVFRZKSdcIjtcblxuICBhd2FpdCBleGVjUHJvbWlzZShcbiAgICBgJHtpZkVudkNvbW1hbmR9ICYmICR7aWZSdW5Db21tYW5kfSAmJiAke3R0eUNvbW1hbmR9IHwgJHtpZkRpZmZDb21tYW5kfWAsXG4gICAge1xuICAgICAgY3dkOiBwcm9jZXNzLmVudi5DVVJSRU5UX0RJUiB8fCBwcm9jZXNzLmN3ZCgpLFxuICAgIH1cbiAgKTtcblxuICBpZiAoIWN3ZCkge1xuICAgIGF3YWl0IHJlbW92ZUZpbGVJZkV4aXN0cyhgJHttYW5pZmVzdERpclBhdGh9L3BhY2thZ2UuanNvbmApO1xuICB9XG5cbiAgYXdhaXQgcmVtb3ZlRmlsZUlmRXhpc3RzKGAke2V4ZWN1dGVkTWFuaWZlc3R9LnlhbWxgKTtcblxuICBjb25zb2xlLmxvZyhJRl9DSEVDS19WRVJJRklFRChwYXRoLmJhc2VuYW1lKG1hbmlmZXN0KSkpO1xufTtcbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLWNoZWNrL3V0aWwvbnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWtDO0FBQ2xDLGlEQUEyQztBQUMzQyw2Q0FBcUU7QUFDckUsc0NBQWtDO0FBRWxDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUVoRjs7R0FFRztBQUNJLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxRQUFnQixFQUFFLEdBQVksRUFBRSxFQUFFO0lBQ3RFLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDO0lBQ2pELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLGdCQUFXLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUU5RSxNQUFNLFVBQVUsR0FDZCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsS0FBSyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ2xFLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUU7UUFDdEUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUVULE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELE1BQU0seUJBQXlCLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFbkUsTUFBTSxZQUFZLEdBQUc7UUFDbkIsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUs7UUFDM0IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN0QyxJQUFJO1FBQ0osR0FBRyxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxJQUFJO1FBQ0osaUJBQWlCO0tBQ2xCLENBQUM7SUFFRixNQUFNLFlBQVksR0FBRztRQUNuQixRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSztRQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLElBQUk7UUFDSixHQUFHLENBQUMsVUFBVSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLElBQUk7UUFDSixpQkFBaUI7UUFDakIsSUFBSTtRQUNKLHlCQUF5QjtLQUMxQixDQUFDO0lBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLCtCQUErQixDQUFDLENBQUM7SUFDbkUsTUFBTSxhQUFhLEdBQUc7UUFDcEIsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUs7UUFDNUIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2QyxJQUFJO1FBQ0osR0FBRyxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxJQUFJO1FBQ0osR0FBRyx5QkFBeUIsT0FBTztRQUNuQyxJQUFJO1FBQ0osaUJBQWlCO0tBQ2xCLENBQUM7SUFFRixJQUFBLDRCQUFZLEVBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDbkQsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDN0MsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDLENBQUM7SUFFSCxJQUFBLDRCQUFZLEVBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDbkQsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7S0FDOUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSw0QkFBWSxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQy9DLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0tBQzlDLENBQUMsQ0FBQztJQUVILE1BQU0sU0FBUyxHQUFHLElBQUEsNEJBQVksRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNqRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtLQUM5QyxDQUFDLENBQUM7SUFFSCxNQUFNLEdBQUcsR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JELE1BQU0sV0FBVyxHQUFHLEdBQUcsR0FBRyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksYUFBYSxDQUFDLElBQUksQ0FDeEUsR0FBRyxDQUNKLEVBQUUsQ0FBQztJQUVKLElBQUEsNEJBQVksRUFBQyxXQUFXLEVBQUU7UUFDeEIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDN0MsS0FBSyxFQUFFLFNBQVM7UUFDaEIsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsTUFBTSxJQUFBLHVCQUFrQixFQUFDLEdBQUcsZUFBZSxlQUFlLENBQUMsQ0FBQztLQUM3RDtJQUVELE1BQU0sSUFBQSx1QkFBa0IsRUFBQyxHQUFHLGdCQUFnQixPQUFPLENBQUMsQ0FBQztJQUVyRCxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUMsQ0FBQztBQWpGVyxRQUFBLGVBQWUsbUJBaUYxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7ZXhlY0ZpbGVTeW5jfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7Z2V0RmlsZU5hbWUsIHJlbW92ZUZpbGVJZkV4aXN0c30gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvZnMnO1xuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5jb25zdCB7SUZfQ0hFQ0tfVkVSSUZJRUR9ID0gU1RSSU5HUztcblxuLyoqXG4gKiBFc2NhcGVzIHNoZWxsIGNoYXJhY3RlcnMgdGhhdCBjb3VsZCBiZSBkYW5nZXJvdXMgaW4gYSBjb21tYW5kLlxuICovXG5jb25zdCBlc2NhcGVTaGVsbEFyZyA9IChzdHI6IHN0cmluZykgPT4gc3RyLnJlcGxhY2UoLyhbYCRcXFxcJjt8Kj88Pl0pL2csICdcXFxcJDEnKTtcblxuLyoqXG4gKiBFeGVjdXRlcyBhIHNlcmllcyBvZiBucG0gY29tbWFuZHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIG1hbmlmZXN0IGZpbGUuXG4gKi9cbmV4cG9ydCBjb25zdCBleGVjdXRlQ29tbWFuZHMgPSBhc3luYyAobWFuaWZlc3Q6IHN0cmluZywgY3dkOiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGlzR2xvYmFsID0gISFwcm9jZXNzLmVudi5ucG1fY29uZmlnX2dsb2JhbDtcbiAgY29uc3QgbWFuaWZlc3REaXJQYXRoID0gcGF0aC5kaXJuYW1lKG1hbmlmZXN0KTtcbiAgY29uc3QgbWFuaWZlc3RGaWxlTmFtZSA9IGdldEZpbGVOYW1lKG1hbmlmZXN0KTtcbiAgY29uc3QgZXhlY3V0ZWRNYW5pZmVzdCA9IHBhdGguam9pbihtYW5pZmVzdERpclBhdGgsIGByZS0ke21hbmlmZXN0RmlsZU5hbWV9YCk7XG5cbiAgY29uc3QgcHJlZml4RmxhZyA9XG4gICAgcHJvY2Vzcy5lbnYuQ1VSUkVOVF9ESVIgJiYgcHJvY2Vzcy5lbnYuQ1VSUkVOVF9ESVIgIT09IHByb2Nlc3MuY3dkKClcbiAgICAgID8gYC0tcHJlZml4PSR7cGF0aC5yZWxhdGl2ZShwcm9jZXNzLmVudi5DVVJSRU5UX0RJUiEsIHByb2Nlc3MuY3dkKCkpfWBcbiAgICAgIDogJyc7XG5cbiAgY29uc3Qgc2FuaXRpemVkTWFuaWZlc3QgPSBlc2NhcGVTaGVsbEFyZyhtYW5pZmVzdCk7XG4gIGNvbnN0IHNhbml0aXplZEV4ZWN1dGVkTWFuaWZlc3QgPSBlc2NhcGVTaGVsbEFyZyhleGVjdXRlZE1hbmlmZXN0KTtcblxuICBjb25zdCBpZkVudkNvbW1hbmQgPSBbXG4gICAgaXNHbG9iYWwgPyAnaWYtZW52JyA6ICducG0nLFxuICAgIC4uLihpc0dsb2JhbCA/IFtdIDogWydydW4nLCAnaWYtZW52J10pLFxuICAgICctLScsXG4gICAgLi4uKHByZWZpeEZsYWcgPT09ICcnID8gW10gOiBbcHJlZml4RmxhZ10pLFxuICAgICctbScsXG4gICAgc2FuaXRpemVkTWFuaWZlc3QsXG4gIF07XG5cbiAgY29uc3QgaWZSdW5Db21tYW5kID0gW1xuICAgIGlzR2xvYmFsID8gJ2lmLXJ1bicgOiAnbnBtJyxcbiAgICAuLi4oaXNHbG9iYWwgPyBbXSA6IFsncnVuJywgJ2lmLXJ1biddKSxcbiAgICAnLS0nLFxuICAgIC4uLihwcmVmaXhGbGFnID09PSAnJyA/IFtdIDogW3ByZWZpeEZsYWddKSxcbiAgICAnLW0nLFxuICAgIHNhbml0aXplZE1hbmlmZXN0LFxuICAgICctbycsXG4gICAgc2FuaXRpemVkRXhlY3V0ZWRNYW5pZmVzdCxcbiAgXTtcblxuICBjb25zdCB0dHlDb21tYW5kID0gWydub2RlJywgJy1wJywgJ0Jvb2xlYW4ocHJvY2Vzcy5zdGRvdXQuaXNUVFkpJ107XG4gIGNvbnN0IGlmRGlmZkNvbW1hbmQgPSBbXG4gICAgaXNHbG9iYWwgPyAnaWYtZGlmZicgOiAnbnBtJyxcbiAgICAuLi4oaXNHbG9iYWwgPyBbXSA6IFsncnVuJywgJ2lmLWRpZmYnXSksXG4gICAgJy0tJyxcbiAgICAuLi4ocHJlZml4RmxhZyA9PT0gJycgPyBbXSA6IFtwcmVmaXhGbGFnXSksXG4gICAgJy1zJyxcbiAgICBgJHtzYW5pdGl6ZWRFeGVjdXRlZE1hbmlmZXN0fS55YW1sYCxcbiAgICAnLXQnLFxuICAgIHNhbml0aXplZE1hbmlmZXN0LFxuICBdO1xuXG4gIGV4ZWNGaWxlU3luYyhpZkVudkNvbW1hbmRbMF0sIGlmRW52Q29tbWFuZC5zbGljZSgxKSwge1xuICAgIGN3ZDogcHJvY2Vzcy5lbnYuQ1VSUkVOVF9ESVIgfHwgcHJvY2Vzcy5jd2QoKSxcbiAgICBzaGVsbDogdHJ1ZSxcbiAgfSk7XG5cbiAgZXhlY0ZpbGVTeW5jKGlmUnVuQ29tbWFuZFswXSwgaWZSdW5Db21tYW5kLnNsaWNlKDEpLCB7XG4gICAgY3dkOiBwcm9jZXNzLmVudi5DVVJSRU5UX0RJUiB8fCBwcm9jZXNzLmN3ZCgpLFxuICB9KTtcblxuICBleGVjRmlsZVN5bmModHR5Q29tbWFuZFswXSwgdHR5Q29tbWFuZC5zbGljZSgxKSwge1xuICAgIGN3ZDogcHJvY2Vzcy5lbnYuQ1VSUkVOVF9ESVIgfHwgcHJvY2Vzcy5jd2QoKSxcbiAgfSk7XG5cbiAgY29uc3QgdHR5UmVzdWx0ID0gZXhlY0ZpbGVTeW5jKHR0eUNvbW1hbmRbMF0sIHR0eUNvbW1hbmQuc2xpY2UoMSksIHtcbiAgICBjd2Q6IHByb2Nlc3MuZW52LkNVUlJFTlRfRElSIHx8IHByb2Nlc3MuY3dkKCksXG4gIH0pO1xuXG4gIGNvbnN0IHR0eSA9IHR0eVJlc3VsdCAmJiB0dHlSZXN1bHQudG9TdHJpbmcoKS50cmltKCk7XG4gIGNvbnN0IGZ1bGxDb21tYW5kID0gYCR7dHR5ID09PSAndHJ1ZScgPyAndHR5IHwnIDogJyd9ICR7aWZEaWZmQ29tbWFuZC5qb2luKFxuICAgICcgJ1xuICApfWA7XG5cbiAgZXhlY0ZpbGVTeW5jKGZ1bGxDb21tYW5kLCB7XG4gICAgY3dkOiBwcm9jZXNzLmVudi5DVVJSRU5UX0RJUiB8fCBwcm9jZXNzLmN3ZCgpLFxuICAgIHN0ZGlvOiAnaW5oZXJpdCcsXG4gICAgc2hlbGw6IHRydWUsXG4gIH0pO1xuXG4gIGlmICghY3dkKSB7XG4gICAgYXdhaXQgcmVtb3ZlRmlsZUlmRXhpc3RzKGAke21hbmlmZXN0RGlyUGF0aH0vcGFja2FnZS5qc29uYCk7XG4gIH1cblxuICBhd2FpdCByZW1vdmVGaWxlSWZFeGlzdHMoYCR7ZXhlY3V0ZWRNYW5pZmVzdH0ueWFtbGApO1xuXG4gIGNvbnNvbGUubG9nKElGX0NIRUNLX1ZFUklGSUVEKHBhdGguYmFzZW5hbWUobWFuaWZlc3QpKSk7XG59O1xuIl19
@@ -55,9 +55,7 @@ exports.Divide = (0, interfaces_1.PluginFactory)({
55
55
  */
56
56
  const calculateDivide = (input, index, params) => {
57
57
  const { denominator, numerator } = params;
58
- const finalDenominator = typeof denominator === 'number'
59
- ? denominator
60
- : input[denominator] || denominator;
58
+ const finalDenominator = typeof denominator === 'number' ? denominator : input[denominator];
61
59
  const finalNumerator = typeof numerator === 'number' ? numerator : input[numerator];
62
60
  if (finalDenominator === 0) {
63
61
  console.warn(ZERO_DIVISION(exports.Divide.name, index));
@@ -65,4 +63,4 @@ const calculateDivide = (input, index, params) => {
65
63
  }
66
64
  return finalNumerator / finalDenominator;
67
65
  };
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL2RpdmlkZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBc0I7QUFHdEIsMkRBQXlEO0FBQ3pELGlEQUE2QztBQUU3QyxrRUFBMEQ7QUFFMUQseUNBQXFDO0FBRXJDLE1BQU0sRUFBQyxxQkFBcUIsRUFBRSxXQUFXLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDcEQsTUFBTSxFQUFDLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRXZELFFBQUEsTUFBTSxHQUFHLElBQUEsMEJBQWEsRUFBQztJQUNsQyxnQkFBZ0IsRUFBRSxDQUFDLE1BQW9CLEVBQUUsRUFBRTtRQUN6QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUU7WUFDM0MsTUFBTSxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN2QztRQUVELE1BQU0sTUFBTSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7WUFDdEIsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzVCLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtTQUNuQixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxlQUFlLEVBQUUsQ0FBQyxLQUFtQixFQUFFLE1BQW9CLEVBQUUsRUFBRTtRQUM3RCxNQUFNLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBQyxHQUFHLE1BQU0sQ0FBQztRQUV4QyxNQUFNLE1BQU0sR0FBRyxPQUFDO2FBQ2IsTUFBTSxDQUFDO1lBQ04sQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1lBQ3ZCLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtTQUNyQyxDQUFDO2FBQ0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUMxRCxNQUFNLElBQUkscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUNsRTtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFTCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQXNCLEVBQUUsTUFBb0IsRUFBRSxFQUFFO1FBQ3JFLE1BQU0sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxHQUFHLE1BQU0sQ0FBQztRQUVoRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtnQkFDckQsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksU0FBUztnQkFDdkMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksV0FBVzthQUM5QyxDQUFDLENBQUM7WUFFSCxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixDQUFDLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQjthQUMzQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsMEJBQTBCLEVBQUUsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO0NBQ3pELENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsS0FBbUIsRUFDbkIsS0FBYSxFQUNiLE1BR0MsRUFDRCxFQUFFO0lBQ0YsTUFBTSxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUMsR0FBRyxNQUFNLENBQUM7SUFDeEMsTUFBTSxnQkFBZ0IsR0FDcEIsT0FBTyxXQUFXLEtBQUssUUFBUTtRQUM3QixDQUFDLENBQUMsV0FBVztRQUNiLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksV0FBVyxDQUFDO0lBQ3hDLE1BQU0sY0FBYyxHQUNsQixPQUFPLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRS9ELElBQUksZ0JBQWdCLEtBQUssQ0FBQyxFQUFFO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNoRCxPQUFPLGNBQWMsQ0FBQztLQUN2QjtJQUVELE9BQU8sY0FBYyxHQUFHLGdCQUFnQixDQUFDO0FBQzNDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtDb25maWdQYXJhbXMsIFBsdWdpblBhcmFtc30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcbmltcG9ydCB7UGx1Z2luRmFjdG9yeX0gZnJvbSAnQGdybnNmdC9pZi1jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5jb25zdCB7TWlzc2luZ0lucHV0RGF0YUVycm9yLCBDb25maWdFcnJvcn0gPSBFUlJPUlM7XG5jb25zdCB7TUlTU0lOR19JTlBVVF9EQVRBLCBaRVJPX0RJVklTSU9OLCBNSVNTSU5HX0NPTkZJR30gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgRGl2aWRlID0gUGx1Z2luRmFjdG9yeSh7XG4gIGNvbmZpZ1ZhbGlkYXRpb246IChjb25maWc6IENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGlmICghY29uZmlnIHx8ICFPYmplY3Qua2V5cyhjb25maWcpPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBDb25maWdFcnJvcihNSVNTSU5HX0NPTkZJRyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgbnVtZXJhdG9yOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICAgIGRlbm9taW5hdG9yOiB6LnN0cmluZygpLm9yKHoubnVtYmVyKCkpLFxuICAgICAgb3V0cHV0OiB6LnN0cmluZygpLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgY29uZmlnKTtcbiAgfSxcbiAgaW5wdXRWYWxpZGF0aW9uOiAoaW5wdXQ6IFBsdWdpblBhcmFtcywgY29uZmlnOiBDb25maWdQYXJhbXMpID0+IHtcbiAgICBjb25zdCB7bnVtZXJhdG9yLCBkZW5vbWluYXRvcn0gPSBjb25maWc7XG5cbiAgICBjb25zdCBzY2hlbWEgPSB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgW251bWVyYXRvcl06IHoubnVtYmVyKCksXG4gICAgICAgIFtkZW5vbWluYXRvcl06IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgICAgIH0pXG4gICAgICAucmVmaW5lKCgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBkZW5vbWluYXRvciA9PT0gJ3N0cmluZycgJiYgIWlucHV0W2Rlbm9taW5hdG9yXSkge1xuICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nSW5wdXREYXRhRXJyb3IoTUlTU0lOR19JTlBVVF9EQVRBKGRlbm9taW5hdG9yKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgaW5wdXQpO1xuICB9LFxuICBpbXBsZW1lbnRhdGlvbjogYXN5bmMgKGlucHV0czogUGx1Z2luUGFyYW1zW10sIGNvbmZpZzogQ29uZmlnUGFyYW1zKSA9PiB7XG4gICAgY29uc3Qge251bWVyYXRvciwgZGVub21pbmF0b3IsIG91dHB1dH0gPSBjb25maWc7XG5cbiAgICByZXR1cm4gaW5wdXRzLm1hcCgoaW5wdXQsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBjYWxjdWxhdGVkUmVzdWx0ID0gY2FsY3VsYXRlRGl2aWRlKGlucHV0LCBpbmRleCwge1xuICAgICAgICBudW1lcmF0b3I6IGlucHV0Lm51bWVyYXRvciB8fCBudW1lcmF0b3IsXG4gICAgICAgIGRlbm9taW5hdG9yOiBpbnB1dC5kZW5vbWluYXRvciB8fCBkZW5vbWluYXRvcixcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgW291dHB1dF06IGNhbGN1bGF0ZWRSZXN1bHQsXG4gICAgICB9O1xuICAgIH0pO1xuICB9LFxuICBhbGxvd0FyaXRobWV0aWNFeHByZXNzaW9uczogWydudW1lcmF0b3InLCAnZGVub21pbmF0b3InXSxcbn0pO1xuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGRpdmlzaW9uIG9mIHRoZSBnaXZlbiBwYXJhbWV0ZXIuXG4gKi9cbmNvbnN0IGNhbGN1bGF0ZURpdmlkZSA9IChcbiAgaW5wdXQ6IFBsdWdpblBhcmFtcyxcbiAgaW5kZXg6IG51bWJlcixcbiAgcGFyYW1zOiB7XG4gICAgbnVtZXJhdG9yOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgZGVub21pbmF0b3I6IG51bWJlciB8IHN0cmluZztcbiAgfVxuKSA9PiB7XG4gIGNvbnN0IHtkZW5vbWluYXRvciwgbnVtZXJhdG9yfSA9IHBhcmFtcztcbiAgY29uc3QgZmluYWxEZW5vbWluYXRvciA9XG4gICAgdHlwZW9mIGRlbm9taW5hdG9yID09PSAnbnVtYmVyJ1xuICAgICAgPyBkZW5vbWluYXRvclxuICAgICAgOiBpbnB1dFtkZW5vbWluYXRvcl0gfHwgZGVub21pbmF0b3I7XG4gIGNvbnN0IGZpbmFsTnVtZXJhdG9yID1cbiAgICB0eXBlb2YgbnVtZXJhdG9yID09PSAnbnVtYmVyJyA/IG51bWVyYXRvciA6IGlucHV0W251bWVyYXRvcl07XG5cbiAgaWYgKGZpbmFsRGVub21pbmF0b3IgPT09IDApIHtcbiAgICBjb25zb2xlLndhcm4oWkVST19ESVZJU0lPTihEaXZpZGUubmFtZSwgaW5kZXgpKTtcbiAgICByZXR1cm4gZmluYWxOdW1lcmF0b3I7XG4gIH1cblxuICByZXR1cm4gZmluYWxOdW1lcmF0b3IgLyBmaW5hbERlbm9taW5hdG9yO1xufTtcbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL2RpdmlkZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBc0I7QUFHdEIsMkRBQXlEO0FBQ3pELGlEQUE2QztBQUU3QyxrRUFBMEQ7QUFFMUQseUNBQXFDO0FBRXJDLE1BQU0sRUFBQyxxQkFBcUIsRUFBRSxXQUFXLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDcEQsTUFBTSxFQUFDLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRXZELFFBQUEsTUFBTSxHQUFHLElBQUEsMEJBQWEsRUFBQztJQUNsQyxnQkFBZ0IsRUFBRSxDQUFDLE1BQW9CLEVBQUUsRUFBRTtRQUN6QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUU7WUFDM0MsTUFBTSxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN2QztRQUVELE1BQU0sTUFBTSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7WUFDdEIsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzVCLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtTQUNuQixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxlQUFlLEVBQUUsQ0FBQyxLQUFtQixFQUFFLE1BQW9CLEVBQUUsRUFBRTtRQUM3RCxNQUFNLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBQyxHQUFHLE1BQU0sQ0FBQztRQUV4QyxNQUFNLE1BQU0sR0FBRyxPQUFDO2FBQ2IsTUFBTSxDQUFDO1lBQ04sQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1lBQ3ZCLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtTQUNyQyxDQUFDO2FBQ0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUMxRCxNQUFNLElBQUkscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUNsRTtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFTCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQXNCLEVBQUUsTUFBb0IsRUFBRSxFQUFFO1FBQ3JFLE1BQU0sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxHQUFHLE1BQU0sQ0FBQztRQUVoRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtnQkFDckQsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksU0FBUztnQkFDdkMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksV0FBVzthQUM5QyxDQUFDLENBQUM7WUFFSCxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixDQUFDLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQjthQUMzQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsMEJBQTBCLEVBQUUsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO0NBQ3pELENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsS0FBbUIsRUFDbkIsS0FBYSxFQUNiLE1BR0MsRUFDRCxFQUFFO0lBQ0YsTUFBTSxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUMsR0FBRyxNQUFNLENBQUM7SUFDeEMsTUFBTSxnQkFBZ0IsR0FDcEIsT0FBTyxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRSxNQUFNLGNBQWMsR0FDbEIsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvRCxJQUFJLGdCQUFnQixLQUFLLENBQUMsRUFBRTtRQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDaEQsT0FBTyxjQUFjLENBQUM7S0FDdkI7SUFFRCxPQUFPLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztBQUMzQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7Q29uZmlnUGFyYW1zLCBQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5pbXBvcnQge1BsdWdpbkZhY3Rvcnl9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuXG5pbXBvcnQge3ZhbGlkYXRlfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbC92YWxpZGF0aW9ucyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vLi4vY29uZmlnJztcblxuY29uc3Qge01pc3NpbmdJbnB1dERhdGFFcnJvciwgQ29uZmlnRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge01JU1NJTkdfSU5QVVRfREFUQSwgWkVST19ESVZJU0lPTiwgTUlTU0lOR19DT05GSUd9ID0gU1RSSU5HUztcblxuZXhwb3J0IGNvbnN0IERpdmlkZSA9IFBsdWdpbkZhY3Rvcnkoe1xuICBjb25maWdWYWxpZGF0aW9uOiAoY29uZmlnOiBDb25maWdQYXJhbXMpID0+IHtcbiAgICBpZiAoIWNvbmZpZyB8fCAhT2JqZWN0LmtleXMoY29uZmlnKT8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmlnRXJyb3IoTUlTU0lOR19DT05GSUcpO1xuICAgIH1cblxuICAgIGNvbnN0IHNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAgIG51bWVyYXRvcjogei5zdHJpbmcoKS5taW4oMSksXG4gICAgICBkZW5vbWluYXRvcjogei5zdHJpbmcoKS5vcih6Lm51bWJlcigpKSxcbiAgICAgIG91dHB1dDogei5zdHJpbmcoKSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIGNvbmZpZyk7XG4gIH0sXG4gIGlucHV0VmFsaWRhdGlvbjogKGlucHV0OiBQbHVnaW5QYXJhbXMsIGNvbmZpZzogQ29uZmlnUGFyYW1zKSA9PiB7XG4gICAgY29uc3Qge251bWVyYXRvciwgZGVub21pbmF0b3J9ID0gY29uZmlnO1xuXG4gICAgY29uc3Qgc2NoZW1hID0gelxuICAgICAgLm9iamVjdCh7XG4gICAgICAgIFtudW1lcmF0b3JdOiB6Lm51bWJlcigpLFxuICAgICAgICBbZGVub21pbmF0b3JdOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgICB9KVxuICAgICAgLnJlZmluZSgoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGVub21pbmF0b3IgPT09ICdzdHJpbmcnICYmICFpbnB1dFtkZW5vbWluYXRvcl0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ0lucHV0RGF0YUVycm9yKE1JU1NJTkdfSU5QVVRfREFUQShkZW5vbWluYXRvcikpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIGlucHV0KTtcbiAgfSxcbiAgaW1wbGVtZW50YXRpb246IGFzeW5jIChpbnB1dHM6IFBsdWdpblBhcmFtc1tdLCBjb25maWc6IENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGNvbnN0IHtudW1lcmF0b3IsIGRlbm9taW5hdG9yLCBvdXRwdXR9ID0gY29uZmlnO1xuXG4gICAgcmV0dXJuIGlucHV0cy5tYXAoKGlucHV0LCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY2FsY3VsYXRlZFJlc3VsdCA9IGNhbGN1bGF0ZURpdmlkZShpbnB1dCwgaW5kZXgsIHtcbiAgICAgICAgbnVtZXJhdG9yOiBpbnB1dC5udW1lcmF0b3IgfHwgbnVtZXJhdG9yLFxuICAgICAgICBkZW5vbWluYXRvcjogaW5wdXQuZGVub21pbmF0b3IgfHwgZGVub21pbmF0b3IsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgIFtvdXRwdXRdOiBjYWxjdWxhdGVkUmVzdWx0LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSxcbiAgYWxsb3dBcml0aG1ldGljRXhwcmVzc2lvbnM6IFsnbnVtZXJhdG9yJywgJ2Rlbm9taW5hdG9yJ10sXG59KTtcblxuLyoqXG4gKiBDYWxjdWxhdGVzIHRoZSBkaXZpc2lvbiBvZiB0aGUgZ2l2ZW4gcGFyYW1ldGVyLlxuICovXG5jb25zdCBjYWxjdWxhdGVEaXZpZGUgPSAoXG4gIGlucHV0OiBQbHVnaW5QYXJhbXMsXG4gIGluZGV4OiBudW1iZXIsXG4gIHBhcmFtczoge1xuICAgIG51bWVyYXRvcjogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGRlbm9taW5hdG9yOiBudW1iZXIgfCBzdHJpbmc7XG4gIH1cbikgPT4ge1xuICBjb25zdCB7ZGVub21pbmF0b3IsIG51bWVyYXRvcn0gPSBwYXJhbXM7XG4gIGNvbnN0IGZpbmFsRGVub21pbmF0b3IgPVxuICAgIHR5cGVvZiBkZW5vbWluYXRvciA9PT0gJ251bWJlcicgPyBkZW5vbWluYXRvciA6IGlucHV0W2Rlbm9taW5hdG9yXTtcbiAgY29uc3QgZmluYWxOdW1lcmF0b3IgPVxuICAgIHR5cGVvZiBudW1lcmF0b3IgPT09ICdudW1iZXInID8gbnVtZXJhdG9yIDogaW5wdXRbbnVtZXJhdG9yXTtcblxuICBpZiAoZmluYWxEZW5vbWluYXRvciA9PT0gMCkge1xuICAgIGNvbnNvbGUud2FybihaRVJPX0RJVklTSU9OKERpdmlkZS5uYW1lLCBpbmRleCkpO1xuICAgIHJldHVybiBmaW5hbE51bWVyYXRvcjtcbiAgfVxuXG4gIHJldHVybiBmaW5hbE51bWVyYXRvciAvIGZpbmFsRGVub21pbmF0b3I7XG59O1xuIl19
@@ -23,14 +23,12 @@ exports.Exponent = (0, interfaces_1.PluginFactory)({
23
23
  inputValidation: (input, config) => {
24
24
  const inputParameter = config['input-parameter'];
25
25
  const inputData = {
26
- [inputParameter]: typeof inputParameter === 'number'
27
- ? inputParameter
28
- : input[inputParameter],
26
+ [inputParameter]: input[inputParameter],
29
27
  };
30
28
  const validationSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.number());
31
29
  return (0, validations_1.validate)(validationSchema, inputData);
32
30
  },
33
- implementation: async (inputs, config = {}) => {
31
+ implementation: async (inputs, config) => {
34
32
  const { 'input-parameter': inputParameter, exponent, 'output-parameter': outputParameter, } = config;
35
33
  return inputs.map(input => {
36
34
  const calculatedResult = calculateExponent(input, inputParameter, exponent);
@@ -49,4 +47,4 @@ const calculateExponent = (input, inputParameter, exponent) => {
49
47
  const base = typeof inputParameter === 'number' ? inputParameter : input[inputParameter];
50
48
  return Math.pow(base, exponent);
51
49
  };
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL2V4cG9uZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUErQjtBQUcvQiwyREFBeUQ7QUFDekQsaURBQTZDO0FBRTdDLGtFQUEwRDtBQUUxRCx5Q0FBcUM7QUFFckMsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUM3QixNQUFNLEVBQUMsY0FBYyxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVwQixRQUFBLFFBQVEsR0FBRyxJQUFBLDBCQUFhLEVBQUM7SUFDcEMsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFvQixFQUFFLEVBQUU7UUFDekMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDdkM7UUFFRCxNQUFNLFlBQVksR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQzVCLGlCQUFpQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1lBQ3BCLGtCQUFrQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3RDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSxzQkFBUSxFQUNiLFlBQTRCLEVBQzVCLE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQUNELGVBQWUsRUFBRSxDQUFDLEtBQW1CLEVBQUUsTUFBb0IsRUFBRSxFQUFFO1FBQzdELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sU0FBUyxHQUFHO1lBQ2hCLENBQUMsY0FBYyxDQUFDLEVBQ2QsT0FBTyxjQUFjLEtBQUssUUFBUTtnQkFDaEMsQ0FBQyxDQUFDLGNBQWM7Z0JBQ2hCLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1NBQzVCLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRTFELE9BQU8sSUFBQSxzQkFBUSxFQUNiLGdCQUFnQixFQUNoQixTQUFTLENBQ1YsQ0FBQztJQUNKLENBQUM7SUFDRCxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQXNCLEVBQUUsU0FBdUIsRUFBRSxFQUFFLEVBQUU7UUFDMUUsTUFBTSxFQUNKLGlCQUFpQixFQUFFLGNBQWMsRUFDakMsUUFBUSxFQUNSLGtCQUFrQixFQUFFLGVBQWUsR0FDcEMsR0FBRyxNQUFNLENBQUM7UUFFWCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FDeEMsS0FBSyxFQUNMLGNBQWMsRUFDZCxRQUFRLENBQ1QsQ0FBQztZQUVGLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLENBQUMsZUFBZSxDQUFDLEVBQUUsZ0JBQWdCO2FBQ3BDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCwwQkFBMEIsRUFBRSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQztDQUM1RCxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsS0FBbUIsRUFDbkIsY0FBK0IsRUFDL0IsUUFBZ0IsRUFDaEIsRUFBRTtJQUNGLE1BQU0sSUFBSSxHQUNSLE9BQU8sY0FBYyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFOUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3osIFpvZFR5cGV9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7UGx1Z2luUGFyYW1zLCBDb25maWdQYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5pbXBvcnQge1BsdWdpbkZhY3Rvcnl9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuXG5pbXBvcnQge3ZhbGlkYXRlfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbC92YWxpZGF0aW9ucyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vLi4vY29uZmlnJztcblxuY29uc3Qge0NvbmZpZ0Vycm9yfSA9IEVSUk9SUztcbmNvbnN0IHtNSVNTSU5HX0NPTkZJR30gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgRXhwb25lbnQgPSBQbHVnaW5GYWN0b3J5KHtcbiAgY29uZmlnVmFsaWRhdGlvbjogKGNvbmZpZzogQ29uZmlnUGFyYW1zKSA9PiB7XG4gICAgaWYgKCFjb25maWcgfHwgIU9iamVjdC5rZXlzKGNvbmZpZyk/Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IENvbmZpZ0Vycm9yKE1JU1NJTkdfQ09ORklHKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb25maWdTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgICAnaW5wdXQtcGFyYW1ldGVyJzogei5zdHJpbmcoKS5taW4oMSksXG4gICAgICBleHBvbmVudDogei5udW1iZXIoKSxcbiAgICAgICdvdXRwdXQtcGFyYW1ldGVyJzogei5zdHJpbmcoKS5taW4oMSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGU8ei5pbmZlcjx0eXBlb2YgY29uZmlnU2NoZW1hPj4oXG4gICAgICBjb25maWdTY2hlbWEgYXMgWm9kVHlwZTxhbnk+LFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgfSxcbiAgaW5wdXRWYWxpZGF0aW9uOiAoaW5wdXQ6IFBsdWdpblBhcmFtcywgY29uZmlnOiBDb25maWdQYXJhbXMpID0+IHtcbiAgICBjb25zdCBpbnB1dFBhcmFtZXRlciA9IGNvbmZpZ1snaW5wdXQtcGFyYW1ldGVyJ107XG4gICAgY29uc3QgaW5wdXREYXRhID0ge1xuICAgICAgW2lucHV0UGFyYW1ldGVyXTpcbiAgICAgICAgdHlwZW9mIGlucHV0UGFyYW1ldGVyID09PSAnbnVtYmVyJ1xuICAgICAgICAgID8gaW5wdXRQYXJhbWV0ZXJcbiAgICAgICAgICA6IGlucHV0W2lucHV0UGFyYW1ldGVyXSxcbiAgICB9O1xuICAgIGNvbnN0IHZhbGlkYXRpb25TY2hlbWEgPSB6LnJlY29yZCh6LnN0cmluZygpLCB6Lm51bWJlcigpKTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiB2YWxpZGF0aW9uU2NoZW1hPj4oXG4gICAgICB2YWxpZGF0aW9uU2NoZW1hLFxuICAgICAgaW5wdXREYXRhXG4gICAgKTtcbiAgfSxcbiAgaW1wbGVtZW50YXRpb246IGFzeW5jIChpbnB1dHM6IFBsdWdpblBhcmFtc1tdLCBjb25maWc6IENvbmZpZ1BhcmFtcyA9IHt9KSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgJ2lucHV0LXBhcmFtZXRlcic6IGlucHV0UGFyYW1ldGVyLFxuICAgICAgZXhwb25lbnQsXG4gICAgICAnb3V0cHV0LXBhcmFtZXRlcic6IG91dHB1dFBhcmFtZXRlcixcbiAgICB9ID0gY29uZmlnO1xuXG4gICAgcmV0dXJuIGlucHV0cy5tYXAoaW5wdXQgPT4ge1xuICAgICAgY29uc3QgY2FsY3VsYXRlZFJlc3VsdCA9IGNhbGN1bGF0ZUV4cG9uZW50KFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgaW5wdXRQYXJhbWV0ZXIsXG4gICAgICAgIGV4cG9uZW50XG4gICAgICApO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgW291dHB1dFBhcmFtZXRlcl06IGNhbGN1bGF0ZWRSZXN1bHQsXG4gICAgICB9O1xuICAgIH0pO1xuICB9LFxuICBhbGxvd0FyaXRobWV0aWNFeHByZXNzaW9uczogWydpbnB1dC1wYXJhbWV0ZXInLCAnZXhwb25lbnQnXSxcbn0pO1xuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGlucHV0IHBhcmFtIHJhaXNlZCBieSB0aGUgcG93ZXIgb2YgYSBnaXZlbiBleHBvbmVudC5cbiAqL1xuY29uc3QgY2FsY3VsYXRlRXhwb25lbnQgPSAoXG4gIGlucHV0OiBQbHVnaW5QYXJhbXMsXG4gIGlucHV0UGFyYW1ldGVyOiBzdHJpbmcgfCBudW1iZXIsXG4gIGV4cG9uZW50OiBudW1iZXJcbikgPT4ge1xuICBjb25zdCBiYXNlID1cbiAgICB0eXBlb2YgaW5wdXRQYXJhbWV0ZXIgPT09ICdudW1iZXInID8gaW5wdXRQYXJhbWV0ZXIgOiBpbnB1dFtpbnB1dFBhcmFtZXRlcl07XG5cbiAgcmV0dXJuIE1hdGgucG93KGJhc2UsIGV4cG9uZW50KTtcbn07XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL2V4cG9uZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUErQjtBQUcvQiwyREFBeUQ7QUFDekQsaURBQTZDO0FBRTdDLGtFQUEwRDtBQUUxRCx5Q0FBcUM7QUFFckMsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUM3QixNQUFNLEVBQUMsY0FBYyxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVwQixRQUFBLFFBQVEsR0FBRyxJQUFBLDBCQUFhLEVBQUM7SUFDcEMsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFvQixFQUFFLEVBQUU7UUFDekMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDdkM7UUFFRCxNQUFNLFlBQVksR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQzVCLGlCQUFpQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1lBQ3BCLGtCQUFrQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3RDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSxzQkFBUSxFQUNiLFlBQTRCLEVBQzVCLE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQUNELGVBQWUsRUFBRSxDQUFDLEtBQW1CLEVBQUUsTUFBb0IsRUFBRSxFQUFFO1FBQzdELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sU0FBUyxHQUFHO1lBQ2hCLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQztTQUN4QyxDQUFDO1FBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUUxRCxPQUFPLElBQUEsc0JBQVEsRUFDYixnQkFBZ0IsRUFDaEIsU0FBUyxDQUNWLENBQUM7SUFDSixDQUFDO0lBQ0QsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFzQixFQUFFLE1BQW9CLEVBQUUsRUFBRTtRQUNyRSxNQUFNLEVBQ0osaUJBQWlCLEVBQUUsY0FBYyxFQUNqQyxRQUFRLEVBQ1Isa0JBQWtCLEVBQUUsZUFBZSxHQUNwQyxHQUFHLE1BQU0sQ0FBQztRQUVYLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixDQUN4QyxLQUFLLEVBQ0wsY0FBYyxFQUNkLFFBQVEsQ0FDVCxDQUFDO1lBRUYsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsQ0FBQyxlQUFlLENBQUMsRUFBRSxnQkFBZ0I7YUFDcEMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELDBCQUEwQixFQUFFLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFDO0NBQzVELENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixLQUFtQixFQUNuQixjQUErQixFQUMvQixRQUFnQixFQUNoQixFQUFFO0lBQ0YsTUFBTSxJQUFJLEdBQ1IsT0FBTyxjQUFjLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUU5RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7eiwgWm9kVHlwZX0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtQbHVnaW5QYXJhbXMsIENvbmZpZ1BhcmFtc30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcbmltcG9ydCB7UGx1Z2luRmFjdG9yeX0gZnJvbSAnQGdybnNmdC9pZi1jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5jb25zdCB7Q29uZmlnRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge01JU1NJTkdfQ09ORklHfSA9IFNUUklOR1M7XG5cbmV4cG9ydCBjb25zdCBFeHBvbmVudCA9IFBsdWdpbkZhY3Rvcnkoe1xuICBjb25maWdWYWxpZGF0aW9uOiAoY29uZmlnOiBDb25maWdQYXJhbXMpID0+IHtcbiAgICBpZiAoIWNvbmZpZyB8fCAhT2JqZWN0LmtleXMoY29uZmlnKT8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmlnRXJyb3IoTUlTU0lOR19DT05GSUcpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmZpZ1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAgICdpbnB1dC1wYXJhbWV0ZXInOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICAgIGV4cG9uZW50OiB6Lm51bWJlcigpLFxuICAgICAgJ291dHB1dC1wYXJhbWV0ZXInOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBjb25maWdTY2hlbWE+PihcbiAgICAgIGNvbmZpZ1NjaGVtYSBhcyBab2RUeXBlPGFueT4sXG4gICAgICBjb25maWdcbiAgICApO1xuICB9LFxuICBpbnB1dFZhbGlkYXRpb246IChpbnB1dDogUGx1Z2luUGFyYW1zLCBjb25maWc6IENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGNvbnN0IGlucHV0UGFyYW1ldGVyID0gY29uZmlnWydpbnB1dC1wYXJhbWV0ZXInXTtcbiAgICBjb25zdCBpbnB1dERhdGEgPSB7XG4gICAgICBbaW5wdXRQYXJhbWV0ZXJdOiBpbnB1dFtpbnB1dFBhcmFtZXRlcl0sXG4gICAgfTtcbiAgICBjb25zdCB2YWxpZGF0aW9uU2NoZW1hID0gei5yZWNvcmQoei5zdHJpbmcoKSwgei5udW1iZXIoKSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGU8ei5pbmZlcjx0eXBlb2YgdmFsaWRhdGlvblNjaGVtYT4+KFxuICAgICAgdmFsaWRhdGlvblNjaGVtYSxcbiAgICAgIGlucHV0RGF0YVxuICAgICk7XG4gIH0sXG4gIGltcGxlbWVudGF0aW9uOiBhc3luYyAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSwgY29uZmlnOiBDb25maWdQYXJhbXMpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAnaW5wdXQtcGFyYW1ldGVyJzogaW5wdXRQYXJhbWV0ZXIsXG4gICAgICBleHBvbmVudCxcbiAgICAgICdvdXRwdXQtcGFyYW1ldGVyJzogb3V0cHV0UGFyYW1ldGVyLFxuICAgIH0gPSBjb25maWc7XG5cbiAgICByZXR1cm4gaW5wdXRzLm1hcChpbnB1dCA9PiB7XG4gICAgICBjb25zdCBjYWxjdWxhdGVkUmVzdWx0ID0gY2FsY3VsYXRlRXhwb25lbnQoXG4gICAgICAgIGlucHV0LFxuICAgICAgICBpbnB1dFBhcmFtZXRlcixcbiAgICAgICAgZXhwb25lbnRcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0LFxuICAgICAgICBbb3V0cHV0UGFyYW1ldGVyXTogY2FsY3VsYXRlZFJlc3VsdCxcbiAgICAgIH07XG4gICAgfSk7XG4gIH0sXG4gIGFsbG93QXJpdGhtZXRpY0V4cHJlc3Npb25zOiBbJ2lucHV0LXBhcmFtZXRlcicsICdleHBvbmVudCddLFxufSk7XG5cbi8qKlxuICogQ2FsY3VsYXRlcyB0aGUgaW5wdXQgcGFyYW0gcmFpc2VkIGJ5IHRoZSBwb3dlciBvZiBhIGdpdmVuIGV4cG9uZW50LlxuICovXG5jb25zdCBjYWxjdWxhdGVFeHBvbmVudCA9IChcbiAgaW5wdXQ6IFBsdWdpblBhcmFtcyxcbiAgaW5wdXRQYXJhbWV0ZXI6IHN0cmluZyB8IG51bWJlcixcbiAgZXhwb25lbnQ6IG51bWJlclxuKSA9PiB7XG4gIGNvbnN0IGJhc2UgPVxuICAgIHR5cGVvZiBpbnB1dFBhcmFtZXRlciA9PT0gJ251bWJlcicgPyBpbnB1dFBhcmFtZXRlciA6IGlucHV0W2lucHV0UGFyYW1ldGVyXTtcblxuICByZXR1cm4gTWF0aC5wb3coYmFzZSwgZXhwb25lbnQpO1xufTtcbiJdfQ==
@@ -12,7 +12,7 @@ const { ProcessExecutionError, ConfigError } = utils_1.ERRORS;
12
12
  const { MISSING_CONFIG } = config_1.STRINGS;
13
13
  exports.Shell = (0, interfaces_1.PluginFactory)({
14
14
  configValidation: (config) => {
15
- if (!config) {
15
+ if (!config || !Object.keys(config)?.length) {
16
16
  throw new ConfigError(MISSING_CONFIG);
17
17
  }
18
18
  const schema = zod_1.z.object({
@@ -47,4 +47,4 @@ const runModelInShell = (input, command) => {
47
47
  throw new ProcessExecutionError(error.message);
48
48
  }
49
49
  };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL3NoZWxsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUEwRDtBQUUxRCxxQ0FBc0M7QUFDdEMsNkJBQXNCO0FBQ3RCLDJEQUF5RDtBQUN6RCxpREFBNkM7QUFHN0Msa0VBQTBEO0FBRTFELHlDQUFxQztBQUVyQyxNQUFNLEVBQUMscUJBQXFCLEVBQUUsV0FBVyxFQUFDLEdBQUcsY0FBTSxDQUFDO0FBQ3BELE1BQU0sRUFBQyxjQUFjLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRXBCLFFBQUEsS0FBSyxHQUFHLElBQUEsMEJBQWEsRUFBQztJQUNqQyxnQkFBZ0IsRUFBRSxDQUFDLE1BQW9CLEVBQUUsRUFBRTtRQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN2QztRQUVELE1BQU0sTUFBTSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7WUFDdEIsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLHNCQUFRLEVBQXlCLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDdkMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFDeEMsTUFBTSxhQUFhLEdBQVcsSUFBQSxjQUFJLEVBQUMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV4RCxPQUFPLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFvQixDQUFDO0lBQ3BELENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFhLEVBQUUsT0FBZSxFQUFFLEVBQUU7SUFDekQsSUFBSTtRQUNGLE1BQU0sQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpELE1BQU0sTUFBTSxHQUE2QixJQUFBLHlCQUFTLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRTtZQUNuRSxLQUFLO1lBQ0wsUUFBUSxFQUFFLE1BQU07U0FDakIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBQSxpQkFBTyxFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2QyxPQUFPLEVBQUMsT0FBTyxFQUFDLENBQUM7S0FDbEI7SUFBQyxPQUFPLEtBQVUsRUFBRTtRQUNuQixNQUFNLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ2hEO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzcGF3blN5bmMsIFNwYXduU3luY1JldHVybnN9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuXG5pbXBvcnQge2xvYWRBbGwsIGR1bXB9IGZyb20gJ2pzLXlhbWwnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuaW1wb3J0IHtQbHVnaW5GYWN0b3J5fSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7Q29uZmlnUGFyYW1zLCBQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5jb25zdCB7UHJvY2Vzc0V4ZWN1dGlvbkVycm9yLCBDb25maWdFcnJvcn0gPSBFUlJPUlM7XG5jb25zdCB7TUlTU0lOR19DT05GSUd9ID0gU1RSSU5HUztcblxuZXhwb3J0IGNvbnN0IFNoZWxsID0gUGx1Z2luRmFjdG9yeSh7XG4gIGNvbmZpZ1ZhbGlkYXRpb246IChjb25maWc6IENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGlmICghY29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmlnRXJyb3IoTUlTU0lOR19DT05GSUcpO1xuICAgIH1cblxuICAgIGNvbnN0IHNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAgIGNvbW1hbmQ6IHouc3RyaW5nKCksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGU8ei5pbmZlcjx0eXBlb2Ygc2NoZW1hPj4oc2NoZW1hLCBjb25maWcpO1xuICB9LFxuICBpbXBsZW1lbnRhdGlvbjogYXN5bmMgKGlucHV0cywgY29uZmlnKSA9PiB7XG4gICAgY29uc3QgaW5wdXRXaXRoQ29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgaW5wdXRzWzBdLCBjb25maWcpO1xuICAgIGNvbnN0IGNvbW1hbmQgPSBpbnB1dFdpdGhDb25maWcuY29tbWFuZDtcbiAgICBjb25zdCBpbnB1dEFzU3RyaW5nOiBzdHJpbmcgPSBkdW1wKGlucHV0cywge2luZGVudDogMn0pO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBydW5Nb2RlbEluU2hlbGwoaW5wdXRBc1N0cmluZywgY29tbWFuZCk7XG5cbiAgICByZXR1cm4gcmVzdWx0cz8ub3V0cHV0cz8uZmxhdCgpIGFzIFBsdWdpblBhcmFtc1tdO1xuICB9LFxufSk7XG5cbi8qKlxuICogUnVucyB0aGUgbW9kZWwgaW4gYSBzaGVsbC4gU3Bhd25zIGEgY2hpbGQgcHJvY2VzcyB0byBydW4gYW4gZXh0ZXJuYWwgSU1QLFxuICogYW4gZXhlY3V0YWJsZSB3aXRoIGEgQ0xJIGV4cG9zaW5nIHR3byBtZXRob2RzOiBgLS1leGVjdXRlYCBhbmQgYC0tbWFuaWZlc3RgLlxuICogVGhlIHNoZWxsIGNvbW1hbmQgdGhlbiBjYWxscyB0aGUgYC0tY29tbWFuZGAgbWV0aG9kIHBhc3NpbmcgdmFyIG1hbmlmZXN0IGFzIHRoZSBwYXRoIHRvIHRoZSBkZXNpcmVkIG1hbmlmZXN0IGZpbGUuXG4gKi9cbmNvbnN0IHJ1bk1vZGVsSW5TaGVsbCA9IChpbnB1dDogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBbZXhlY3V0YWJsZSwgLi4uYXJnc10gPSBjb21tYW5kLnNwbGl0KCcgJyk7XG5cbiAgICBjb25zdCByZXN1bHQ6IFNwYXduU3luY1JldHVybnM8c3RyaW5nPiA9IHNwYXduU3luYyhleGVjdXRhYmxlLCBhcmdzLCB7XG4gICAgICBpbnB1dCxcbiAgICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAgfSk7XG4gICAgY29uc3Qgb3V0cHV0cyA9IGxvYWRBbGwocmVzdWx0LnN0ZG91dCk7XG5cbiAgICByZXR1cm4ge291dHB1dHN9O1xuICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgdGhyb3cgbmV3IFByb2Nlc3NFeGVjdXRpb25FcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgfVxufTtcbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL3NoZWxsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUEwRDtBQUUxRCxxQ0FBc0M7QUFDdEMsNkJBQXNCO0FBQ3RCLDJEQUF5RDtBQUN6RCxpREFBNkM7QUFHN0Msa0VBQTBEO0FBRTFELHlDQUFxQztBQUVyQyxNQUFNLEVBQUMscUJBQXFCLEVBQUUsV0FBVyxFQUFDLEdBQUcsY0FBTSxDQUFDO0FBQ3BELE1BQU0sRUFBQyxjQUFjLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRXBCLFFBQUEsS0FBSyxHQUFHLElBQUEsMEJBQWEsRUFBQztJQUNqQyxnQkFBZ0IsRUFBRSxDQUFDLE1BQW9CLEVBQUUsRUFBRTtRQUN6QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUU7WUFDM0MsTUFBTSxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN2QztRQUVELE1BQU0sTUFBTSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7WUFDdEIsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLHNCQUFRLEVBQXlCLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDdkMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFDeEMsTUFBTSxhQUFhLEdBQVcsSUFBQSxjQUFJLEVBQUMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV4RCxPQUFPLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFvQixDQUFDO0lBQ3BELENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFhLEVBQUUsT0FBZSxFQUFFLEVBQUU7SUFDekQsSUFBSTtRQUNGLE1BQU0sQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpELE1BQU0sTUFBTSxHQUE2QixJQUFBLHlCQUFTLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRTtZQUNuRSxLQUFLO1lBQ0wsUUFBUSxFQUFFLE1BQU07U0FDakIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBQSxpQkFBTyxFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2QyxPQUFPLEVBQUMsT0FBTyxFQUFDLENBQUM7S0FDbEI7SUFBQyxPQUFPLEtBQVUsRUFBRTtRQUNuQixNQUFNLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ2hEO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzcGF3blN5bmMsIFNwYXduU3luY1JldHVybnN9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuXG5pbXBvcnQge2xvYWRBbGwsIGR1bXB9IGZyb20gJ2pzLXlhbWwnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuaW1wb3J0IHtQbHVnaW5GYWN0b3J5fSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7Q29uZmlnUGFyYW1zLCBQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5jb25zdCB7UHJvY2Vzc0V4ZWN1dGlvbkVycm9yLCBDb25maWdFcnJvcn0gPSBFUlJPUlM7XG5jb25zdCB7TUlTU0lOR19DT05GSUd9ID0gU1RSSU5HUztcblxuZXhwb3J0IGNvbnN0IFNoZWxsID0gUGx1Z2luRmFjdG9yeSh7XG4gIGNvbmZpZ1ZhbGlkYXRpb246IChjb25maWc6IENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGlmICghY29uZmlnIHx8ICFPYmplY3Qua2V5cyhjb25maWcpPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBDb25maWdFcnJvcihNSVNTSU5HX0NPTkZJRyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgY29tbWFuZDogei5zdHJpbmcoKSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIGNvbmZpZyk7XG4gIH0sXG4gIGltcGxlbWVudGF0aW9uOiBhc3luYyAoaW5wdXRzLCBjb25maWcpID0+IHtcbiAgICBjb25zdCBpbnB1dFdpdGhDb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBpbnB1dHNbMF0sIGNvbmZpZyk7XG4gICAgY29uc3QgY29tbWFuZCA9IGlucHV0V2l0aENvbmZpZy5jb21tYW5kO1xuICAgIGNvbnN0IGlucHV0QXNTdHJpbmc6IHN0cmluZyA9IGR1bXAoaW5wdXRzLCB7aW5kZW50OiAyfSk7XG4gICAgY29uc3QgcmVzdWx0cyA9IHJ1bk1vZGVsSW5TaGVsbChpbnB1dEFzU3RyaW5nLCBjb21tYW5kKTtcblxuICAgIHJldHVybiByZXN1bHRzPy5vdXRwdXRzPy5mbGF0KCkgYXMgUGx1Z2luUGFyYW1zW107XG4gIH0sXG59KTtcblxuLyoqXG4gKiBSdW5zIHRoZSBtb2RlbCBpbiBhIHNoZWxsLiBTcGF3bnMgYSBjaGlsZCBwcm9jZXNzIHRvIHJ1biBhbiBleHRlcm5hbCBJTVAsXG4gKiBhbiBleGVjdXRhYmxlIHdpdGggYSBDTEkgZXhwb3NpbmcgdHdvIG1ldGhvZHM6IGAtLWV4ZWN1dGVgIGFuZCBgLS1tYW5pZmVzdGAuXG4gKiBUaGUgc2hlbGwgY29tbWFuZCB0aGVuIGNhbGxzIHRoZSBgLS1jb21tYW5kYCBtZXRob2QgcGFzc2luZyB2YXIgbWFuaWZlc3QgYXMgdGhlIHBhdGggdG8gdGhlIGRlc2lyZWQgbWFuaWZlc3QgZmlsZS5cbiAqL1xuY29uc3QgcnVuTW9kZWxJblNoZWxsID0gKGlucHV0OiBzdHJpbmcsIGNvbW1hbmQ6IHN0cmluZykgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IFtleGVjdXRhYmxlLCAuLi5hcmdzXSA9IGNvbW1hbmQuc3BsaXQoJyAnKTtcblxuICAgIGNvbnN0IHJlc3VsdDogU3Bhd25TeW5jUmV0dXJuczxzdHJpbmc+ID0gc3Bhd25TeW5jKGV4ZWN1dGFibGUsIGFyZ3MsIHtcbiAgICAgIGlucHV0LFxuICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICB9KTtcbiAgICBjb25zdCBvdXRwdXRzID0gbG9hZEFsbChyZXN1bHQuc3Rkb3V0KTtcblxuICAgIHJldHVybiB7b3V0cHV0c307XG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgUHJvY2Vzc0V4ZWN1dGlvbkVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICB9XG59O1xuIl19
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@grnsft/if",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "keywords": [],
9
+ "author": {
10
+ "name": "Green Software Foundation",
11
+ "email": "info@gsf.com"
12
+ },
13
+ "license": "ISC",
14
+ "description": "Impact Framework",
15
+ "bugs": {
16
+ "url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
17
+ },
18
+ "engines": {
19
+ "node": ">=18",
20
+ "npm": ">=8"
21
+ },
22
+ "homepage": "https://greensoftware.foundation",
23
+ "dependencies": {}
24
+ }
package/okrs.md ADDED
@@ -0,0 +1,14 @@
1
+
2
+ # Impact Framework OKRs
3
+
4
+ The OKRs guiding Impact Framework to the end of 2025 are:
5
+
6
+ - Objective: grow an open source community of developers and users
7
+ - Key result: 30 individual contributors to our repositories by end 2025
8
+
9
+ - Objective 2: get IF integrated into more production systems in real businesses and organizations
10
+ - Key result: 20 case studies added to our `if-db` repository
11
+
12
+ Individual contributors include people pushing code to IF, sharing plugins on [the Explorer](https://explorer.if.greensoftware.foundation), adding case studies or working on our documentation.
13
+
14
+ Case studies take the form of manifest files with explanatory notes that show IF being used to measure some real software application.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@grnsft/if",
3
3
  "description": "Impact Framework",
4
- "version": "0.7.2",
4
+ "version": "1.0.0-beta.0",
5
5
  "author": {
6
6
  "name": "Green Software Foundation",
7
7
  "email": "info@gsf.com"