emissions-api-sdk 1.0.1 → 1.0.2

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 (106) hide show
  1. package/dist/api/Calculation.js +4 -4
  2. package/dist/api/Factor.js +7 -7
  3. package/dist/api/FactorSets.js +1 -1
  4. package/dist/api/Fugitive.js +4 -4
  5. package/dist/api/Location.js +4 -4
  6. package/dist/api/Mobile.js +4 -6
  7. package/dist/api/Stationary.js +4 -4
  8. package/dist/api/TransportationAndDistribution.js +5 -5
  9. package/dist/coverage/clover.xml +335 -0
  10. package/dist/coverage/coverage-final.json +19 -0
  11. package/dist/coverage/lcov-report/base.css +224 -0
  12. package/dist/coverage/lcov-report/block-navigation.js +87 -0
  13. package/dist/coverage/lcov-report/favicon.png +0 -0
  14. package/dist/coverage/lcov-report/index.html +161 -0
  15. package/dist/coverage/lcov-report/prettify.css +1 -0
  16. package/dist/coverage/lcov-report/prettify.js +2 -0
  17. package/dist/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  18. package/dist/coverage/lcov-report/sorter.js +210 -0
  19. package/dist/coverage/lcov-report/src/Client.ts.html +838 -0
  20. package/dist/coverage/lcov-report/src/Constants.ts.html +208 -0
  21. package/dist/coverage/lcov-report/src/api/Calculation.ts.html +436 -0
  22. package/dist/coverage/lcov-report/src/api/Factor.ts.html +622 -0
  23. package/dist/coverage/lcov-report/src/api/FactorSets.ts.html +157 -0
  24. package/dist/coverage/lcov-report/src/api/Fugitive.ts.html +436 -0
  25. package/dist/coverage/lcov-report/src/api/Location.ts.html +433 -0
  26. package/dist/coverage/lcov-report/src/api/Mobile.ts.html +448 -0
  27. package/dist/coverage/lcov-report/src/api/Stationary.ts.html +442 -0
  28. package/dist/coverage/lcov-report/src/api/TransportationAndDistribution.ts.html +436 -0
  29. package/dist/coverage/lcov-report/src/api/index.html +221 -0
  30. package/dist/coverage/lcov-report/src/index.html +161 -0
  31. package/dist/coverage/lcov-report/src/request.ts.html +235 -0
  32. package/dist/coverage/lcov-report/src/utils.ts.html +139 -0
  33. package/dist/coverage/lcov-report/test/index.html +116 -0
  34. package/dist/coverage/lcov-report/test/mocks/CommonRequest.ts.html +142 -0
  35. package/dist/coverage/lcov-report/test/mocks/FactorRequest.ts.html +133 -0
  36. package/dist/coverage/lcov-report/test/mocks/GenericCalculationRequest.ts.html +142 -0
  37. package/dist/coverage/lcov-report/test/mocks/LocationRequest.ts.html +139 -0
  38. package/dist/coverage/lcov-report/test/mocks/SearchRequest.ts.html +142 -0
  39. package/dist/coverage/lcov-report/test/mocks/index.html +176 -0
  40. package/dist/coverage/lcov-report/test/testUtils.ts.html +97 -0
  41. package/dist/coverage/lcov.info +558 -0
  42. package/dist/interfaces/response/AreaResponse.js +2 -0
  43. package/dist/interfaces/response/EmissionResponse.js +2 -0
  44. package/dist/interfaces/response/EmissionResponseWithDetails.js +2 -0
  45. package/dist/interfaces/response/FactorResponse.js +2 -0
  46. package/dist/interfaces/response/FactorSetResponse.js +2 -0
  47. package/dist/interfaces/response/SearchResponse.js +2 -0
  48. package/dist/interfaces/response/TypeResponse.js +2 -0
  49. package/dist/interfaces/response/UnitResponse.js +2 -0
  50. package/dist/types/api/Calculation.d.ts +13 -8
  51. package/dist/types/api/Factor.d.ts +18 -13
  52. package/dist/types/api/FactorSets.d.ts +3 -2
  53. package/dist/types/api/Fugitive.d.ts +13 -8
  54. package/dist/types/api/Location.d.ts +13 -8
  55. package/dist/types/api/Mobile.d.ts +13 -10
  56. package/dist/types/api/Stationary.d.ts +13 -8
  57. package/dist/types/api/TransportationAndDistribution.d.ts +14 -9
  58. package/dist/types/index.d.ts +8 -0
  59. package/dist/types/interfaces/response/AreaResponse.d.ts +20 -0
  60. package/dist/types/interfaces/response/EmissionResponse.d.ts +31 -0
  61. package/dist/types/interfaces/response/EmissionResponseWithDetails.d.ts +144 -0
  62. package/dist/types/interfaces/response/FactorResponse.d.ts +53 -0
  63. package/dist/types/interfaces/response/FactorSetResponse.d.ts +38 -0
  64. package/dist/types/interfaces/response/SearchResponse.d.ts +41 -0
  65. package/dist/types/interfaces/response/TypeResponse.d.ts +7 -0
  66. package/dist/types/interfaces/response/UnitResponse.d.ts +7 -0
  67. package/docs/_sources/index.rst.txt +1 -0
  68. package/docs/_sources/troubleshooting.rst.txt +486 -0
  69. package/docs/_static/basic.css +8 -0
  70. package/docs/_static/pygments.css +146 -164
  71. package/docs/_static/searchtools.js +5 -8
  72. package/docs/_static/styles/furo.css +1 -1
  73. package/docs/_static/styles/furo.css.map +1 -1
  74. package/docs/authentication.html +29 -19
  75. package/docs/client.html +29 -19
  76. package/docs/genindex.html +29 -19
  77. package/docs/getting_started.html +29 -19
  78. package/docs/index.html +42 -19
  79. package/docs/objects.inv +0 -0
  80. package/docs/reference.html +69 -53
  81. package/docs/sdk.html +29 -19
  82. package/docs/search.html +29 -19
  83. package/docs/searchindex.js +1 -1
  84. package/docs/troubleshooting.html +786 -0
  85. package/package.json +1 -1
  86. package/sphinx-build/requirements.txt +5 -0
  87. package/sphinx-build/source/index.rst +1 -0
  88. package/sphinx-build/source/troubleshooting.rst +486 -0
  89. package/src/api/Calculation.ts +19 -14
  90. package/src/api/Factor.ts +27 -22
  91. package/src/api/FactorSets.ts +4 -3
  92. package/src/api/Fugitive.ts +19 -14
  93. package/src/api/Location.ts +20 -15
  94. package/src/api/Mobile.ts +19 -16
  95. package/src/api/Stationary.ts +19 -14
  96. package/src/api/TransportationAndDistribution.ts +21 -16
  97. package/src/index.ts +33 -1
  98. package/src/interfaces/response/AreaResponse.ts +25 -0
  99. package/src/interfaces/response/EmissionResponse.ts +44 -0
  100. package/src/interfaces/response/EmissionResponseWithDetails.ts +183 -0
  101. package/src/interfaces/response/FactorResponse.ts +78 -0
  102. package/src/interfaces/response/FactorSetResponse.ts +52 -0
  103. package/src/interfaces/response/SearchResponse.ts +52 -0
  104. package/src/interfaces/response/TypeResponse.ts +7 -0
  105. package/src/interfaces/response/UnitResponse.ts +7 -0
  106. package/test/apiTest.test.ts +1 -1
@@ -0,0 +1,208 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/Constants.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> Constants.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>38/38</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/0</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>38/38</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
108
+ <span class="cline-any cline-yes">4x</span>
109
+ <span class="cline-any cline-yes">4x</span>
110
+ <span class="cline-any cline-yes">4x</span>
111
+ <span class="cline-any cline-yes">4x</span>
112
+ <span class="cline-any cline-yes">4x</span>
113
+ <span class="cline-any cline-yes">4x</span>
114
+ <span class="cline-any cline-yes">4x</span>
115
+ <span class="cline-any cline-yes">4x</span>
116
+ <span class="cline-any cline-yes">4x</span>
117
+ <span class="cline-any cline-yes">4x</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-yes">4x</span>
120
+ <span class="cline-any cline-yes">4x</span>
121
+ <span class="cline-any cline-yes">4x</span>
122
+ <span class="cline-any cline-yes">4x</span>
123
+ <span class="cline-any cline-yes">4x</span>
124
+ <span class="cline-any cline-yes">4x</span>
125
+ <span class="cline-any cline-yes">4x</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span>
127
+ <span class="cline-any cline-yes">4x</span>
128
+ <span class="cline-any cline-yes">4x</span>
129
+ <span class="cline-any cline-yes">4x</span>
130
+ <span class="cline-any cline-yes">4x</span>
131
+ <span class="cline-any cline-yes">4x</span>
132
+ <span class="cline-any cline-yes">4x</span>
133
+ <span class="cline-any cline-yes">4x</span>
134
+ <span class="cline-any cline-yes">4x</span>
135
+ <span class="cline-any cline-neutral">&nbsp;</span>
136
+ <span class="cline-any cline-yes">4x</span>
137
+ <span class="cline-any cline-yes">4x</span>
138
+ <span class="cline-any cline-yes">4x</span>
139
+ <span class="cline-any cline-yes">4x</span>
140
+ <span class="cline-any cline-yes">4x</span>
141
+ <span class="cline-any cline-yes">4x</span>
142
+ <span class="cline-any cline-yes">4x</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-yes">4x</span>
145
+ <span class="cline-any cline-yes">4x</span>
146
+ <span class="cline-any cline-yes">4x</span>
147
+ <span class="cline-any cline-yes">4x</span>
148
+ <span class="cline-any cline-yes">4x</span></td><td class="text"><pre class="prettyprint lang-js">export const API_DOMAIN = "https://api.ibm.com/ghgemissions/run";
149
+ export const TOKEN_GENERATION_API = "https://api.ibm.com/saascore/run/authentication-retrieve/api-key";
150
+ export const MOBILE_API_PATH = "/v3/carbon/mobile";
151
+ export const LOCATION_API_PATH = "/v3/carbon/location";
152
+ export const FUGITIVE_API_PATH = "/v3/carbon/fugitive";
153
+ export const STATIONARY_API_PATH = "/v3/carbon/stationary";
154
+ export const GENERIC_CALCULATION_API_PATH = "/v3/carbon/calculation";
155
+ export const TRANSPORTATION_AND_DISTRIBUTION_API_PATH = "/v3/carbon/transportation-and-distribution";
156
+ export const FACTOR_API_PATH = "/v3/carbon/factor";
157
+ export const FACTOR_SET_API_PATH = "/v3/carbon/factorset";
158
+ export const SEARCH_API_PATH = "/v3/carbon/factor/search";
159
+ &nbsp;
160
+ export const CALCULATION_TYPES = "/v3/carbon/calculation/types";
161
+ export const LOCATION_TYPES = "/v3/carbon/location/types";
162
+ export const FUGITIVE_API_TYPES = "/v3/carbon/fugitive/types";
163
+ export const MOBILE_API_TYPES = "/v3/carbon/mobile/types";
164
+ export const STATIONARY_API_TYPES = "/v3/carbon/stationary/types";
165
+ export const FACTOR_API_TYPES = "/v3/carbon/factor/types";
166
+ export const TRANSPORTATION_AND_DISTRIBUTION_API_TYPES = "/v3/carbon/transportation-and-distribution/types";
167
+ &nbsp;
168
+ export const FUGITIVE_API_AREA = "/v3/carbon/fugitive/area";
169
+ export const GENERAL_API_AREA = "/v3/carbon/calculation/area";
170
+ export const LOCATION_API_AREA = "/v3/carbon/location/area";
171
+ export const MOBILE_API_AREA = "/v3/carbon/mobile/area";
172
+ export const STATIONARY_API_AREA = "/v3/carbon/stationary/area";
173
+ export const TRANSPORTATION_AND_DISTRIBUTION_API_AREA = "/v3/carbon/transportation-and-distribution/area";
174
+ export const SEARCH_API_AREA = "/v3/carbon/factor/search/area";
175
+ export const FACTOR_API_AREA = "/v3/carbon/factor/area";
176
+ &nbsp;
177
+ export const FUGITIVE_API_UNITS = "/v3/carbon/fugitive/units";
178
+ export const LOCATION_API_UNITS = "/v3/carbon/location/units";
179
+ export const MOBILE_API_UNITS = "/v3/carbon/mobile/units";
180
+ export const STATIONARY_API_UNITS = "/v3/carbon/stationary/units";
181
+ export const GENERAL_API_UNITS = "/v3/carbon/calculation/units";
182
+ export const FACTOR_API_UNITS = "/v3/carbon/factor/units";
183
+ export const TRANSPORTATION_AND_DISTRIBUTION_API_UNITS = "/v3/carbon/transportation-and-distribution/units";
184
+ &nbsp;
185
+ export const GET = "GET";
186
+ export const POST = "POST";
187
+ export const CLIENT_SOURCE_HEADER = "X-Client-Source";
188
+ export const CLIENT_SOURCE_EXCEL = "excel";
189
+ export const CLIENT_SOURCE_SDK = "node-sdk";</pre></td></tr></table></pre>
190
+
191
+ <div class='push'></div><!-- for sticky footer -->
192
+ </div><!-- /wrapper -->
193
+ <div class='footer quiet pad2 space-top1 center small'>
194
+ Code coverage generated by
195
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
196
+ at 2025-12-11T17:06:20.018Z
197
+ </div>
198
+ <script src="../prettify.js"></script>
199
+ <script>
200
+ window.onload = function () {
201
+ prettyPrint();
202
+ };
203
+ </script>
204
+ <script src="../sorter.js"></script>
205
+ <script src="../block-navigation.js"></script>
206
+ </body>
207
+ </html>
208
+
@@ -0,0 +1,436 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/api/Calculation.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/api</a> Calculation.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>19/19</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>4/4</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>19/19</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
184
+ <span class="cline-any cline-yes">1x</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
188
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
+ <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-yes">1x</span>
192
+ <span class="cline-any cline-neutral">&nbsp;</span>
193
+ <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-neutral">&nbsp;</span>
196
+ <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
+ <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-neutral">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-neutral">&nbsp;</span>
205
+ <span class="cline-any cline-neutral">&nbsp;</span>
206
+ <span class="cline-any cline-neutral">&nbsp;</span>
207
+ <span class="cline-any cline-neutral">&nbsp;</span>
208
+ <span class="cline-any cline-neutral">&nbsp;</span>
209
+ <span class="cline-any cline-neutral">&nbsp;</span>
210
+ <span class="cline-any cline-neutral">&nbsp;</span>
211
+ <span class="cline-any cline-neutral">&nbsp;</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-neutral">&nbsp;</span>
214
+ <span class="cline-any cline-neutral">&nbsp;</span>
215
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-neutral">&nbsp;</span>
217
+ <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
+ <span class="cline-any cline-yes">1x</span>
221
+ <span class="cline-any cline-neutral">&nbsp;</span>
222
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-yes">1x</span>
224
+ <span class="cline-any cline-yes">1x</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-yes">1x</span>
227
+ <span class="cline-any cline-neutral">&nbsp;</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-neutral">&nbsp;</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
235
+ <span class="cline-any cline-neutral">&nbsp;</span>
236
+ <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-neutral">&nbsp;</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-neutral">&nbsp;</span>
244
+ <span class="cline-any cline-yes">1x</span>
245
+ <span class="cline-any cline-yes">1x</span>
246
+ <span class="cline-any cline-yes">1x</span>
247
+ <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-yes">1x</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
+ <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-neutral">&nbsp;</span>
256
+ <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-yes">1x</span>
265
+ <span class="cline-any cline-yes">1x</span>
266
+ <span class="cline-any cline-yes">1x</span>
267
+ <span class="cline-any cline-neutral">&nbsp;</span>
268
+ <span class="cline-any cline-yes">1x</span>
269
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-neutral">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-neutral">&nbsp;</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-yes">1x</span>
290
+ <span class="cline-any cline-neutral">&nbsp;</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-yes">1x</span>
293
+ <span class="cline-any cline-yes">1x</span>
294
+ <span class="cline-any cline-neutral">&nbsp;</span>
295
+ <span class="cline-any cline-yes">1x</span>
296
+ <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Client } from "../Client";
301
+ import { GENERIC_CALCULATION_API_PATH,CALCULATION_TYPES, POST, GET, GENERAL_API_AREA, GENERAL_API_UNITS } from "../Constants";
302
+ import { CalculationRequest } from "../interfaces/Api";
303
+ import { AreaResponse } from "../interfaces/response/AreaResponse";
304
+ import { EmissionResponse } from "../interfaces/response/EmissionResponse";
305
+ import { EmissionResponseWithDetails } from "../interfaces/response/EmissionResponseWithDetails";
306
+ import { TypeResponse } from "../interfaces/response/TypeResponse";
307
+ import { UnitResponse } from "../interfaces/response/UnitResponse";
308
+ import { makeApiRequest } from "../request";
309
+ &nbsp;
310
+ &nbsp;
311
+ /**
312
+ * Performs emission calculations by making a POST request to the generic calculation API endpoint.
313
+ *
314
+ * @export
315
+ * @param {CalculationRequest} payload - The calculation request data to be sent to the API
316
+ * @return {Promise&lt;EmissionResponse | EmissionResponseWithDetails&gt;} A promise that resolves to the emission calculation result. Returns EmissionResponseWithDetails if includeDetails is true, otherwise EmissionResponse
317
+ * @throws {Error} May throw an error if the API request fails
318
+ *
319
+ * @example
320
+ * const calculationRequest = {
321
+ "time" : {
322
+ "date": "2025-01-04"
323
+ },
324
+ "location": {
325
+ "country": "usa",
326
+ "stateProvince": "new york"
327
+ },
328
+ "activity": {
329
+ "type":"Waste Combusted - Steel Cans:Default factor",
330
+ "unit": "kg",
331
+ "value": 1223123.121
332
+ },
333
+ "includeDetails": true
334
+ };
335
+ * const result = await calculate(calculationRequest);
336
+ */
337
+ export async function calculate(
338
+ payload: CalculationRequest
339
+ ): Promise&lt;EmissionResponse | EmissionResponseWithDetails&gt; {
340
+ const client = Client.getInstance();
341
+ const url = client.getDomain() + GENERIC_CALCULATION_API_PATH;
342
+ &nbsp;
343
+ return makeApiRequest&lt;EmissionResponse | EmissionResponseWithDetails&gt;({
344
+ method: POST,
345
+ url,
346
+ data: payload,
347
+ });
348
+ }
349
+ &nbsp;
350
+ &nbsp;
351
+ /**
352
+ * Retrieves available calculation types by making a GET request to the calculation types API endpoint.
353
+ *
354
+ * @export
355
+ * @return {Promise&lt;TypeResponse&gt;} A promise that resolves to a TypeResponse containing the available calculation types
356
+ * @throws {Error} May throw an error if the API request fails
357
+ *
358
+ * @example
359
+ * const types = await getTypes();
360
+ */
361
+ export async function getTypes(): Promise&lt;TypeResponse&gt; {
362
+ const client = Client.getInstance();
363
+ const url = client.getDomain() + CALCULATION_TYPES;
364
+ &nbsp;
365
+ return makeApiRequest&lt;TypeResponse&gt;({
366
+ method: GET,
367
+ url
368
+ });
369
+ }
370
+ &nbsp;
371
+ /**
372
+ * Retrieves information about geographical areas supported by the calculation API.
373
+ *
374
+ * @export
375
+ * @return {Promise&lt;AreaResponse&gt;} A promise that resolves to an AreaResponse containing the supported geographical areas
376
+ * @throws {Error} May throw an error if the API request fails
377
+ *
378
+ * @example
379
+ * const areas = await getArea();
380
+ */
381
+ export async function getArea(): Promise&lt;AreaResponse&gt; {
382
+ const client = Client.getInstance();
383
+ const url = client.getDomain() + GENERAL_API_AREA;
384
+ &nbsp;
385
+ return makeApiRequest&lt;AreaResponse&gt;({
386
+ method: GET,
387
+ url
388
+ });
389
+ }
390
+ &nbsp;
391
+ /**
392
+ * Retrieves available units for a specific calculation type.
393
+ *
394
+ * @export
395
+ * @param {string} type - The calculation type to get units for
396
+ * @return {Promise&lt;UnitResponse&gt;} A promise that resolves to a UnitResponse containing the available units
397
+ * @throws {Error} May throw an error if the API request fails
398
+ *
399
+ * @example
400
+ * // Get units for the "Natural Gas - Scope 3:AAA" emission calculation type with subtype
401
+ * const units = await getUnits("Natural Gas - Scope 3:AAA");
402
+ &nbsp;
403
+ * // Get units for the "HFC-263fb" emission calculation type without subtype
404
+ * const units = await getUnits("HFC-263fb");
405
+ */
406
+ export async function getUnits(
407
+ type: string
408
+ ): Promise&lt;UnitResponse&gt; {
409
+ const client = Client.getInstance();
410
+ const url = client.getDomain() + GENERAL_API_UNITS;
411
+ &nbsp;
412
+ return makeApiRequest&lt;UnitResponse&gt;({
413
+ method: GET,
414
+ url,
415
+ params : { type }
416
+ });
417
+ }</pre></td></tr></table></pre>
418
+
419
+ <div class='push'></div><!-- for sticky footer -->
420
+ </div><!-- /wrapper -->
421
+ <div class='footer quiet pad2 space-top1 center small'>
422
+ Code coverage generated by
423
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
424
+ at 2025-12-11T17:06:20.018Z
425
+ </div>
426
+ <script src="../../prettify.js"></script>
427
+ <script>
428
+ window.onload = function () {
429
+ prettyPrint();
430
+ };
431
+ </script>
432
+ <script src="../../sorter.js"></script>
433
+ <script src="../../block-navigation.js"></script>
434
+ </body>
435
+ </html>
436
+