emissions-api-sdk 1.0.0 → 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 (155) hide show
  1. package/README.md +33 -2
  2. package/dist/Constants.js +23 -1
  3. package/dist/api/Calculation.js +78 -15
  4. package/dist/api/Factor.js +99 -18
  5. package/dist/api/FactorSets.js +1 -1
  6. package/dist/api/Fugitive.js +76 -13
  7. package/dist/api/Location.js +76 -15
  8. package/dist/api/Mobile.js +65 -1
  9. package/dist/api/Stationary.js +78 -15
  10. package/dist/api/TransportationAndDistribution.js +77 -14
  11. package/dist/coverage/clover.xml +191 -81
  12. package/dist/coverage/coverage-final.json +11 -11
  13. package/dist/coverage/lcov-report/index.html +16 -16
  14. package/dist/coverage/lcov-report/src/Client.ts.html +23 -23
  15. package/dist/coverage/lcov-report/src/Constants.ts.html +82 -4
  16. package/dist/coverage/lcov-report/src/api/Calculation.ts.html +245 -26
  17. package/dist/coverage/lcov-report/src/api/Factor.ts.html +313 -34
  18. package/dist/coverage/lcov-report/src/api/FactorSets.ts.html +8 -5
  19. package/dist/coverage/lcov-report/src/api/Fugitive.ts.html +246 -24
  20. package/dist/coverage/lcov-report/src/api/Location.ts.html +245 -26
  21. package/dist/coverage/lcov-report/src/api/Mobile.ts.html +240 -12
  22. package/dist/coverage/lcov-report/src/api/Stationary.ts.html +248 -26
  23. package/dist/coverage/lcov-report/src/api/TransportationAndDistribution.ts.html +250 -25
  24. package/dist/coverage/lcov-report/src/api/index.html +25 -25
  25. package/dist/coverage/lcov-report/src/index.html +7 -7
  26. package/dist/coverage/lcov-report/src/request.ts.html +1 -1
  27. package/dist/coverage/lcov-report/src/utils.ts.html +5 -5
  28. package/dist/coverage/lcov-report/test/index.html +1 -1
  29. package/dist/coverage/lcov-report/test/mocks/CommonRequest.ts.html +1 -1
  30. package/dist/coverage/lcov-report/test/mocks/FactorRequest.ts.html +1 -1
  31. package/dist/coverage/lcov-report/test/mocks/GenericCalculationRequest.ts.html +1 -1
  32. package/dist/coverage/lcov-report/test/mocks/LocationRequest.ts.html +1 -1
  33. package/dist/coverage/lcov-report/test/mocks/SearchRequest.ts.html +1 -1
  34. package/dist/coverage/lcov-report/test/mocks/index.html +1 -1
  35. package/dist/coverage/lcov-report/test/testUtils.ts.html +1 -1
  36. package/dist/coverage/lcov.info +287 -133
  37. package/dist/interfaces/response/AreaResponse.js +2 -0
  38. package/dist/interfaces/response/EmissionResponse.js +2 -0
  39. package/dist/interfaces/response/EmissionResponseWithDetails.js +2 -0
  40. package/dist/interfaces/response/FactorResponse.js +2 -0
  41. package/dist/interfaces/response/FactorSetResponse.js +2 -0
  42. package/dist/interfaces/response/SearchResponse.js +2 -0
  43. package/dist/interfaces/response/TypeResponse.js +2 -0
  44. package/dist/interfaces/response/UnitResponse.js +2 -0
  45. package/dist/types/Constants.d.ts +22 -0
  46. package/dist/types/api/Calculation.d.ts +59 -16
  47. package/dist/types/api/Factor.d.ts +73 -20
  48. package/dist/types/api/FactorSets.d.ts +3 -2
  49. package/dist/types/api/Fugitive.d.ts +57 -14
  50. package/dist/types/api/Location.d.ts +57 -16
  51. package/dist/types/api/Mobile.d.ts +46 -2
  52. package/dist/types/api/Stationary.d.ts +59 -16
  53. package/dist/types/api/TransportationAndDistribution.d.ts +58 -15
  54. package/dist/types/index.d.ts +8 -0
  55. package/dist/types/interfaces/response/AreaResponse.d.ts +20 -0
  56. package/dist/types/interfaces/response/EmissionResponse.d.ts +31 -0
  57. package/dist/types/interfaces/response/EmissionResponseWithDetails.d.ts +144 -0
  58. package/dist/types/interfaces/response/FactorResponse.d.ts +53 -0
  59. package/dist/types/interfaces/response/FactorSetResponse.d.ts +38 -0
  60. package/dist/types/interfaces/response/SearchResponse.d.ts +41 -0
  61. package/dist/types/interfaces/response/TypeResponse.d.ts +7 -0
  62. package/dist/types/interfaces/response/UnitResponse.d.ts +7 -0
  63. package/docs/.nojekyll +0 -0
  64. package/docs/_sources/authentication.rst.txt +164 -0
  65. package/docs/_sources/client.rst.txt +137 -0
  66. package/docs/_sources/getting_started.rst.txt +164 -0
  67. package/docs/_sources/index.rst.txt +30 -0
  68. package/docs/_sources/reference.rst.txt +129 -0
  69. package/docs/_sources/sdk.rst.txt +13 -0
  70. package/docs/_sources/troubleshooting.rst.txt +486 -0
  71. package/docs/_static/basic.css +914 -0
  72. package/docs/_static/custom.css +16 -0
  73. package/docs/_static/debug.css +69 -0
  74. package/docs/_static/doctools.js +149 -0
  75. package/docs/_static/documentation_options.js +13 -0
  76. package/docs/_static/file.png +0 -0
  77. package/docs/_static/language_data.js +192 -0
  78. package/docs/_static/minus.png +0 -0
  79. package/docs/_static/plus.png +0 -0
  80. package/docs/_static/pygments.css +232 -0
  81. package/docs/_static/scripts/furo-extensions.js +0 -0
  82. package/docs/_static/scripts/furo.js +3 -0
  83. package/docs/_static/scripts/furo.js.LICENSE.txt +7 -0
  84. package/docs/_static/scripts/furo.js.map +1 -0
  85. package/docs/_static/searchtools.js +632 -0
  86. package/docs/_static/skeleton.css +296 -0
  87. package/docs/_static/sphinx_highlight.js +154 -0
  88. package/docs/_static/sphinx_js.css +0 -0
  89. package/docs/_static/styles/furo-extensions.css +2 -0
  90. package/docs/_static/styles/furo-extensions.css.map +1 -0
  91. package/docs/_static/styles/furo.css +2 -0
  92. package/docs/_static/styles/furo.css.map +1 -0
  93. package/docs/authentication.html +523 -0
  94. package/docs/client.html +477 -0
  95. package/docs/genindex.html +492 -0
  96. package/docs/getting_started.html +491 -0
  97. package/docs/index.html +357 -0
  98. package/docs/objects.inv +0 -0
  99. package/docs/reference.html +1584 -0
  100. package/docs/sdk.html +334 -0
  101. package/docs/search.html +297 -0
  102. package/docs/searchindex.js +1 -0
  103. package/docs/troubleshooting.html +786 -0
  104. package/package.json +1 -1
  105. package/sphinx-build/Makefile +49 -0
  106. package/sphinx-build/requirements.txt +5 -0
  107. package/sphinx-build/source/_static/custom.css +16 -0
  108. package/sphinx-build/source/authentication.rst +164 -0
  109. package/sphinx-build/source/client.rst +137 -0
  110. package/sphinx-build/source/conf.py +56 -0
  111. package/sphinx-build/source/getting_started.rst +164 -0
  112. package/sphinx-build/source/index.rst +30 -0
  113. package/sphinx-build/source/reference.rst +129 -0
  114. package/sphinx-build/source/sdk.rst +13 -0
  115. package/sphinx-build/source/troubleshooting.rst +486 -0
  116. package/src/Constants.ts +26 -0
  117. package/src/api/Calculation.ts +94 -20
  118. package/src/api/Factor.ts +122 -28
  119. package/src/api/FactorSets.ts +4 -3
  120. package/src/api/Fugitive.ts +93 -18
  121. package/src/api/Location.ts +94 -20
  122. package/src/api/Mobile.ts +83 -6
  123. package/src/api/Stationary.ts +95 -20
  124. package/src/api/TransportationAndDistribution.ts +95 -19
  125. package/src/index.ts +33 -1
  126. package/src/interfaces/response/AreaResponse.ts +25 -0
  127. package/src/interfaces/response/EmissionResponse.ts +44 -0
  128. package/src/interfaces/response/EmissionResponseWithDetails.ts +183 -0
  129. package/src/interfaces/response/FactorResponse.ts +78 -0
  130. package/src/interfaces/response/FactorSetResponse.ts +52 -0
  131. package/src/interfaces/response/SearchResponse.ts +52 -0
  132. package/src/interfaces/response/TypeResponse.ts +7 -0
  133. package/src/interfaces/response/UnitResponse.ts +7 -0
  134. package/test/apiTest.test.ts +173 -6
  135. package/dist/api/Factors.js +0 -98
  136. package/dist/api/FugitiveEmission.js +0 -40
  137. package/dist/api/GenericCalculation.js +0 -41
  138. package/dist/api/LocationEmission.js +0 -41
  139. package/dist/api/MobileEmission.js +0 -41
  140. package/dist/api/StationaryEmission.js +0 -41
  141. package/dist/api/TransportationDistributionEmission.js +0 -40
  142. package/dist/coverage/lcov-report/src/api/Factors.ts.html +0 -403
  143. package/dist/coverage/lcov-report/src/api/FugitiveEmission.ts.html +0 -214
  144. package/dist/coverage/lcov-report/src/api/GenericCalculation.ts.html +0 -217
  145. package/dist/coverage/lcov-report/src/api/LocationEmission.ts.html +0 -214
  146. package/dist/coverage/lcov-report/src/api/MobileEmission.ts.html +0 -220
  147. package/dist/coverage/lcov-report/src/api/StationaryEmission.ts.html +0 -220
  148. package/dist/coverage/lcov-report/src/api/TransportationDistributionEmission.ts.html +0 -211
  149. package/dist/types/api/Factors.d.ts +0 -68
  150. package/dist/types/api/FugitiveEmission.d.ts +0 -27
  151. package/dist/types/api/GenericCalculation.d.ts +0 -28
  152. package/dist/types/api/LocationEmission.d.ts +0 -28
  153. package/dist/types/api/MobileEmission.d.ts +0 -28
  154. package/dist/types/api/StationaryEmission.d.ts +0 -28
  155. package/dist/types/api/TransportationDistributionEmission.d.ts +0 -27
@@ -0,0 +1,164 @@
1
+ ===============
2
+ Getting Started
3
+ ===============
4
+
5
+ Prerequisites
6
+ -------------
7
+
8
+ Before using the SDK, ensure you have:
9
+
10
+ - **Node.js** installed
11
+ - Active internet connection
12
+ - Sign up for the preview waitlist `IBMid sign up <https://www.ibm.com/account/reg/us-en/signup?formid=urx-53659>`_ page.
13
+ - API credentials (``apiKey``, ``tenantId``, ``orgId``), are available on the Emissions API `Overview Page <https://www-dev.supply-chain.ibm.com/envizi/emissions-api-home/overview?cuiURL=%2Femissions-api-home%2Foverview>`_ after sign up
14
+
15
+
16
+ Installation
17
+ ------------
18
+
19
+ You can install the SDK using `npm <https://www.npmjs.com/package/emissions-api-sdk>`_ or `yarn <https://yarnpkg.com/package?q=emissions-api-sdk&name=emissions-api-sdk>`_:
20
+
21
+ Using npm:
22
+
23
+ .. code-block:: bash
24
+
25
+ npm install emissions-api-sdk
26
+
27
+
28
+ Using yarn:
29
+
30
+ .. code-block:: bash
31
+
32
+ yarn install emissions-api-sdk
33
+
34
+
35
+ Basic Import
36
+ ~~~~~~~~~~~~
37
+
38
+ After installation, you can import the SDK in your project:
39
+
40
+ .. code-block:: javascript
41
+
42
+ // Import the entire SDK
43
+ const enviziSDK = require('emissions-api-sdk');
44
+
45
+ // Or using ES modules
46
+ import { Client, LocationEmission } from 'emissions-api-sdk';
47
+
48
+
49
+ Authentication
50
+ --------------
51
+
52
+ Initialize the client with your API credentials:
53
+
54
+ The SDK provides two authentication methods:
55
+
56
+ - Using an **API key** with following required Headers:
57
+ - ``X-Api-Key``: Your API key
58
+ - ``X-IBM-Client-Id``: saascore-{your-client-id}
59
+ - ``accept``: application/json
60
+
61
+ - Using a **Pre-generated token**
62
+ - Token Generation Endpoint: https://api.ibm.com/saascore/run/authentication-retrieve/api-key
63
+
64
+ Using API Key (Recommended)
65
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
66
+
67
+ .. code-block:: javascript
68
+
69
+ import { Client } from 'emissions-api-sdk';
70
+
71
+ async function initialize() {
72
+ try {
73
+ await Client.getClient({
74
+ apiKey: "your-api-key",
75
+ clientId: "your-client-id",
76
+ orgId: "your-org-id"
77
+ });
78
+ console.log("Client initialized successfully");
79
+ } catch (error) {
80
+ console.error("Failed to initialize client:", error);
81
+ }
82
+ }
83
+
84
+ initialize();
85
+
86
+ Using Pre-generated Token
87
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
88
+
89
+ If you already have a token, you can use it directly:
90
+
91
+ .. code-block:: javascript
92
+
93
+ import { Client } from 'emissions-api-sdk';
94
+
95
+ async function initialize() {
96
+ try {
97
+ await Client.getClient({
98
+ token: "your-pre-generated-token",
99
+ clientId: "your-client-id"
100
+ });
101
+ console.log("Client initialized successfully");
102
+ } catch (error) {
103
+ console.error("Failed to initialize client:", error);
104
+ }
105
+ }
106
+
107
+ initialize();
108
+
109
+ First API Call
110
+ --------------
111
+
112
+ After initializing the client, you can make your first API call. Here's an example of calculating location-based emissions:
113
+
114
+ .. code-block:: javascript
115
+
116
+ import { Client, LocationEmission } from 'emissions-api-sdk';
117
+
118
+ async function calculateEmissions() {
119
+ try {
120
+ // Initialize client
121
+ await Client.getClient({
122
+ apiKey: "your-api-key",
123
+ clientId: "your-client-id",
124
+ orgId: "your-org-id"
125
+ });
126
+
127
+ // Make API call
128
+ const result = await LocationEmission.calculate({
129
+ "location": {
130
+ "country": "USA",
131
+ "stateProvince": "california"
132
+ },
133
+ "activity": {
134
+ "type": "electricity",
135
+ "value": 1,
136
+ "unit": "kWh"
137
+ }
138
+ });
139
+
140
+ console.log("Emission calculation result:", result);
141
+ } catch (error) {
142
+ console.error("Error calculating emissions:", error);
143
+ }
144
+ }
145
+
146
+ calculateEmissions();
147
+
148
+ Example Response
149
+ ----------------
150
+
151
+ The API returns emission calculation results in JSON format. Here's an example response:
152
+
153
+ .. code-block:: json
154
+
155
+ {
156
+ "transactionId": "95a7efe7-02ae-47a3-a7fd-831bfca7cecd",
157
+ "totalCO2e": 0.20750174,
158
+ "CO2": 0.20681091,
159
+ "CH4": 0.00033022,
160
+ "N2O": 0.00036061,
161
+ "indirectCO2e": 0.01115131,
162
+ "unit": "kgCO2e",
163
+ "description": "The electricity emissions factor used to calculate this result was obtained from the year 2022 Managed - eGRID & US Climate Leaders factor set for the area United States and the region California."
164
+ }
@@ -0,0 +1,30 @@
1
+ IBM Envizi - Emissions API Node.js SDK
2
+ ======================================
3
+
4
+ .. toctree::
5
+ :maxdepth: 2
6
+ :caption: Contents:
7
+
8
+ getting_started
9
+ sdk
10
+ reference
11
+ troubleshooting
12
+
13
+ Introduction
14
+ ============
15
+
16
+ IBM Envizi - Emissions API (Emissions API) is a managed factor database and calculation engine for embedding greenhouse gas (GHG) emissions calculations into operational decision making.
17
+
18
+ The **emissions-api-sdk** is a Node.js SDK for using Emissions API in your projects.
19
+
20
+ Supported Emission Types
21
+ ------------------------
22
+
23
+ * **Location** – emissions from region-specific factors
24
+ * **Fugitive** – emissions from leaks or fugitive sources
25
+ * **Mobile** – emissions from vehicles and mobile equipment
26
+ * **Stationary** – emissions from fixed fuel consumption
27
+ * **Transportation & distribution** – logistics and supply chain activities
28
+ * **Generic** – custom emission calculations
29
+
30
+ The SDK is designed for embedding emission calculations in applications, building sustainability dashboards, automating large-scale datasets, and tracking carbon footprints.
@@ -0,0 +1,129 @@
1
+ =========
2
+ Reference
3
+ =========
4
+
5
+
6
+ .. js:autoclass:: Client
7
+ :members:
8
+
9
+ .. js:autofunction:: request.makeApiRequest
10
+
11
+ .. js:autofunction:: utils.findExpiryTime
12
+
13
+ API
14
+ ===
15
+
16
+ .. js:autofunction:: Factor.retrieveFactor
17
+
18
+ .. js:autofunction:: Fugitive.calculate
19
+
20
+ .. js:autofunction:: Calculation.calculate
21
+
22
+ .. js:autofunction:: Location.calculate
23
+
24
+ .. js:autofunction:: Mobile.calculate
25
+
26
+ .. js:autofunction:: Stationary.calculate
27
+
28
+ .. js:autofunction:: TransportationAndDistribution.calculate
29
+
30
+ Metadata APIs
31
+ ===========
32
+
33
+ getTypes
34
+ --------
35
+
36
+ .. js:autofunction:: Factor.getTypes
37
+
38
+ .. js:autofunction:: Calculation.getTypes
39
+
40
+ .. js:autofunction:: Location.getTypes
41
+
42
+ .. js:autofunction:: Mobile.getTypes
43
+
44
+ .. js:autofunction:: Stationary.getTypes
45
+
46
+ .. js:autofunction:: TransportationAndDistribution.getTypes
47
+
48
+ .. js:autofunction:: Fugitive.getTypes
49
+
50
+ getArea
51
+ -------
52
+
53
+ .. js:autofunction:: Factor.getArea
54
+
55
+ .. js:autofunction:: Factor.getSearchArea
56
+
57
+ .. js:autofunction:: Calculation.getArea
58
+
59
+ .. js:autofunction:: Location.getArea
60
+
61
+ .. js:autofunction:: Mobile.getArea
62
+
63
+ .. js:autofunction:: Stationary.getArea
64
+
65
+ .. js:autofunction:: TransportationAndDistribution.getArea
66
+
67
+ .. js:autofunction:: Fugitive.getArea
68
+
69
+ getUnits
70
+ --------
71
+
72
+ .. js:autofunction:: Factor.getUnits
73
+
74
+ .. js:autofunction:: Calculation.getUnits
75
+
76
+ .. js:autofunction:: Location.getUnits
77
+
78
+ .. js:autofunction:: Mobile.getUnits
79
+
80
+ .. js:autofunction:: Stationary.getUnits
81
+
82
+ .. js:autofunction:: TransportationAndDistribution.getUnits
83
+
84
+ .. js:autofunction:: Fugitive.getUnits
85
+
86
+ Interfaces
87
+ ==========
88
+
89
+ .. js:autoclass:: Api.LocationRequestWithoutFactorId
90
+
91
+ .. js:autoclass:: Api.LocationRequestWithFactorId
92
+
93
+ .. js:autoclass:: Api.CommonRequestWithoutFactorId
94
+
95
+ .. js:autoclass:: Api.CommonRequestWithFactorId
96
+
97
+ .. js:autoclass:: Api.GenericCalculationRequestWithoutFactorId
98
+
99
+ .. js:autoclass:: Api.GenericCalculationRequestWithFactorId
100
+
101
+ .. js:autoclass:: Api.FactorRequestWithoutFactorId
102
+
103
+ .. js:autoclass:: Api.FactorRequestWithFactorId
104
+
105
+ .. js:autoclass:: Api.SearchRequest
106
+
107
+ .. js:autoclass:: common.Location
108
+
109
+ .. js:autoclass:: common.Time
110
+
111
+ .. js:autoclass:: common.Activity
112
+
113
+ .. js:autoclass:: common.ActivityWithFactorId
114
+
115
+ .. js:autoclass:: common.CombinedUnitsActivity
116
+
117
+ .. js:autoclass:: common.CombinedUnitsActivityWithFactorId
118
+
119
+ .. js:autoclass:: common.FactorActivity
120
+
121
+ .. js:autoclass:: common.FactorActivityWithFactorId
122
+
123
+ .. js:autoclass:: common.SearchActivity
124
+
125
+ .. js:autoclass:: common.Pagination
126
+
127
+ .. js:autoclass:: Config.RequestConfig
128
+
129
+ .. js:autoclass:: Config.ClientConfig
@@ -0,0 +1,13 @@
1
+ ===
2
+ SDK
3
+ ===
4
+
5
+ The IBM Envizi - Emissions API Node.js SDK provides a structured approach to interact with the Emissions API. This section covers the key components and usage patterns.
6
+
7
+ .. toctree::
8
+ :maxdepth: 2
9
+
10
+ client
11
+ authentication
12
+
13
+ .. Made with Bob