@tgwf/co2 0.16.6 → 0.16.8

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 (37) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/cjs/1byte.js +6 -0
  3. package/dist/cjs/1byte.js.map +1 -1
  4. package/dist/cjs/co2.js +42 -0
  5. package/dist/cjs/co2.js.map +1 -1
  6. package/dist/cjs/constants/index.js +4 -0
  7. package/dist/cjs/constants/index.js.map +1 -1
  8. package/dist/cjs/data/average-intensities.min.js +1 -1
  9. package/dist/cjs/data/average-intensities.min.js.map +2 -2
  10. package/dist/cjs/helpers/index.js +1 -1
  11. package/dist/cjs/helpers/index.js.map +1 -1
  12. package/dist/cjs/hosting-api.js +4 -0
  13. package/dist/cjs/hosting-api.js.map +1 -1
  14. package/dist/cjs/hosting-json.js.map +1 -1
  15. package/dist/cjs/hosting-json.node.js +4 -0
  16. package/dist/cjs/hosting-json.node.js.map +1 -1
  17. package/dist/cjs/hosting-node.js +4 -0
  18. package/dist/cjs/hosting-node.js.map +1 -1
  19. package/dist/cjs/hosting.js +4 -0
  20. package/dist/cjs/hosting.js.map +1 -1
  21. package/dist/cjs/index-node.js +4 -0
  22. package/dist/cjs/index-node.js.map +1 -1
  23. package/dist/cjs/index.js +9 -5
  24. package/dist/cjs/index.js.map +1 -1
  25. package/dist/cjs/sustainable-web-design-v3.js +74 -0
  26. package/dist/cjs/sustainable-web-design-v3.js.map +1 -1
  27. package/dist/cjs/sustainable-web-design-v4.js +33 -1
  28. package/dist/cjs/sustainable-web-design-v4.js.map +2 -2
  29. package/dist/esm/1byte.js +6 -0
  30. package/dist/esm/co2.js +43 -10
  31. package/dist/esm/data/average-intensities.min.js +1 -1
  32. package/dist/esm/helpers/index.js +14 -28
  33. package/dist/esm/hosting-api.js +2 -2
  34. package/dist/esm/index.js +2 -2
  35. package/dist/esm/sustainable-web-design-v3.js +78 -4
  36. package/dist/esm/sustainable-web-design-v4.js +33 -1
  37. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -21,6 +21,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
21
21
 
22
22
  ## Released
23
23
 
24
+ ### [0.16.7] - 2025-04-18
25
+
26
+ #### Changed
27
+
28
+ - Automated monthly update of annual average grid intensity data.
29
+ - Bump esbuild from 0.14.54 to 0.25.0
30
+
31
+ ### [0.16.6] - 2025-02-10
32
+
33
+ #### Changed
34
+
35
+ - Automated monthly update of annual average grid intensity data.
36
+
37
+ ### [0.16.5] - 2025-01-20
38
+
39
+ #### Changed
40
+
41
+ - Automated monthly update of annual average grid intensity data.
42
+
43
+ ### [0.16.4] - 2024-12-10
44
+
45
+ #### Changed
46
+
47
+ - Separate options parsing for byteTrace and visitTrace functions in #226
48
+ - Automated monthly update of annual average grid intensity data.
49
+
24
50
  ### [0.16.3] - 2024-11-30
25
51
 
26
52
  #### Fixed
package/dist/cjs/1byte.js CHANGED
@@ -36,6 +36,12 @@ class OneByte {
36
36
  this.options = options;
37
37
  this.KWH_PER_BYTE_FOR_NETWORK = KWH_PER_BYTE_FOR_NETWORK;
38
38
  }
39
+ /**
40
+ * Calculates the carbon footprint of a website using the OneByte model
41
+ * @param {number} bytes - The number of bytes to calculate the carbon footprint for
42
+ * @param {boolean} green - Whether the energy is green or not
43
+ * @returns {number} The carbon footprint in grams of CO2
44
+ */
39
45
  perByte(bytes, green) {
40
46
  if (bytes < 1) {
41
47
  return 0;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/1byte.js"],
4
4
  "sourcesContent": ["// Use the 1byte model for now from the Shift Project, and assume a US grid mix figure they use of around 519 g co2 for the time being. It's lower for Europe, and in particular, France, but for v1, we don't include this\nconst CO2_PER_KWH_IN_DC_GREY = 519;\n\n// this figure is from the IEA's 2018 report for a global average:\nconst CO2_PER_KWH_NETWORK_GREY = 475;\n\n// TODO - these figures need to be updated, as the figures for green\n// shouldn't really be zero now we know that carbon intensity figures\n// for renewables still usually include the life cycle emissions\nconst CO2_PER_KWH_IN_DC_GREEN = 0;\n\n// the 1 byte model gives figures for energy usage for:\n\n// datacentres\n// networks\n// the device used to access a site/app\n\n// The device usage figure combines figures for:\n// 1. the usage for devices (which is small proportion of the energy use)\n// 2. the *making* the device, which is comparatively high.\n\nconst KWH_PER_BYTE_IN_DC = 7.2e-11;\n\n// this is probably best left as something users can define, or\n// a weighted average based on total usage.\n// Using a simple mean for now, as while web traffic to end users might trend\n// towards wifi and mobile,\n// Web traffic between servers is likely wired networks\n\nconst FIXED_NETWORK_WIRED = 4.29e-10;\nconst FIXED_NETWORK_WIFI = 1.52e-10;\nconst FOUR_G_MOBILE = 8.84e-10;\n\n// Pull requests gratefully accepted\nconst KWH_PER_BYTE_FOR_NETWORK =\n (FIXED_NETWORK_WIRED + FIXED_NETWORK_WIFI + FOUR_G_MOBILE) / 3;\n\nconst KWH_PER_BYTE_FOR_DEVICES = 1.3e-10;\n\nclass OneByte {\n constructor(options) {\n this.allowRatings = false;\n this.options = options;\n\n this.KWH_PER_BYTE_FOR_NETWORK = KWH_PER_BYTE_FOR_NETWORK;\n }\n\n /**\n * Calculates the carbon footprint of a website using the OneByte model\n * @param {number} bytes - The number of bytes to calculate the carbon footprint for\n * @param {boolean} green - Whether the energy is green or not\n * @returns {number} The carbon footprint in grams of CO2\n */\n\n perByte(bytes, green) {\n if (bytes < 1) {\n return 0;\n }\n\n if (green) {\n // if we have a green datacentre, use the lower figure for renewable energy\n const Co2ForDC = bytes * KWH_PER_BYTE_IN_DC * CO2_PER_KWH_IN_DC_GREEN;\n\n // but for the worest of the internet, we can't easily check, so assume\n // grey for now\n const Co2forNetwork =\n bytes * KWH_PER_BYTE_FOR_NETWORK * CO2_PER_KWH_NETWORK_GREY;\n\n return Co2ForDC + Co2forNetwork;\n }\n\n const KwHPerByte = KWH_PER_BYTE_IN_DC + KWH_PER_BYTE_FOR_NETWORK;\n return bytes * KwHPerByte * CO2_PER_KWH_IN_DC_GREY;\n }\n}\n\nexport { OneByte };\nexport default OneByte;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,MAAM,yBAAyB;AAG/B,MAAM,2BAA2B;AAKjC,MAAM,0BAA0B;AAYhC,MAAM,qBAAqB;AAQ3B,MAAM,sBAAsB;AAC5B,MAAM,qBAAqB;AAC3B,MAAM,gBAAgB;AAGtB,MAAM,4BACH,sBAAsB,qBAAqB,iBAAiB;AAE/D,MAAM,2BAA2B;AAEjC,MAAM,QAAQ;AAAA,EACZ,YAAY,SAAS;AACnB,SAAK,eAAe;AACpB,SAAK,UAAU;AAEf,SAAK,2BAA2B;AAAA,EAClC;AAAA,EASA,QAAQ,OAAO,OAAO;AACpB,QAAI,QAAQ,GAAG;AACb,aAAO;AAAA,IACT;AAEA,QAAI,OAAO;AAET,YAAM,WAAW,QAAQ,qBAAqB;AAI9C,YAAM,gBACJ,QAAQ,2BAA2B;AAErC,aAAO,WAAW;AAAA,IACpB;AAEA,UAAM,aAAa,qBAAqB;AACxC,WAAO,QAAQ,aAAa;AAAA,EAC9B;AACF;AAGA,IAAO,eAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,MAAM,yBAAyB;AAG/B,MAAM,2BAA2B;AAKjC,MAAM,0BAA0B;AAYhC,MAAM,qBAAqB;AAQ3B,MAAM,sBAAsB;AAC5B,MAAM,qBAAqB;AAC3B,MAAM,gBAAgB;AAGtB,MAAM,4BACH,sBAAsB,qBAAqB,iBAAiB;AAE/D,MAAM,2BAA2B;AAEjC,MAAM,QAAQ;AAAA,EACZ,YAAY,SAAS;AACnB,SAAK,eAAe;AACpB,SAAK,UAAU;AAEf,SAAK,2BAA2B;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAQ,OAAO,OAAO;AACpB,QAAI,QAAQ,GAAG;AACb,aAAO;AAAA,IACT;AAEA,QAAI,OAAO;AAET,YAAM,WAAW,QAAQ,qBAAqB;AAI9C,YAAM,gBACJ,QAAQ,2BAA2B;AAErC,aAAO,WAAW;AAAA,IACpB;AAEA,UAAM,aAAa,qBAAqB;AACxC,WAAO,QAAQ,aAAa;AAAA,EAC9B;AACF;AAGA,IAAO,eAAQ;",
6
6
  "names": []
7
7
  }
package/dist/cjs/co2.js CHANGED
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
18
18
  return to;
19
19
  };
20
20
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
25
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
26
  mod
23
27
  ));
@@ -64,9 +68,27 @@ See https://developers.thegreenwebfoundation.org/co2js/models/ to learn more abo
64
68
  );
65
69
  }
66
70
  }
71
+ /**
72
+ * Accept a figure in bytes for data transfer, and a boolean for whether
73
+ * the domain shows as 'green', and return a CO2 figure for energy used to shift the corresponding
74
+ * the data transfer.
75
+ *
76
+ * @param {number} bytes
77
+ * @param {boolean} green
78
+ * @return {number|CO2EstimateComponentsPerByte} the amount of CO2 in grammes or its separate components
79
+ */
67
80
  perByte(bytes, green = false) {
68
81
  return this.model.perByte(bytes, green, this._segment, this._rating);
69
82
  }
83
+ /**
84
+ * Accept a figure in bytes for data transfer, and a boolean for whether
85
+ * the domain shows as 'green', and return a CO2 figure for energy used to shift the corresponding
86
+ * the data transfer.
87
+ *
88
+ * @param {number} bytes
89
+ * @param {boolean} green
90
+ * @return {number|CO2EstimateComponentsPerVisit} the amount of CO2 in grammes or its separate components
91
+ */
70
92
  perVisit(bytes, green = false) {
71
93
  var _a;
72
94
  if ((_a = this.model) == null ? void 0 : _a.perVisit) {
@@ -78,6 +100,16 @@ See https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more ab
78
100
  );
79
101
  }
80
102
  }
103
+ /**
104
+ * Accept a figure in bytes for data transfer, a boolean for whether
105
+ * the domain shows as 'green', and an options object.
106
+ * Returns an object containing CO2 figure, green boolean, and object of the variables used in calculating the CO2 figure.
107
+ *
108
+ * @param {number} bytes
109
+ * @param {boolean} green
110
+ * @param {Object} options
111
+ * @return {CO2EstimateTraceResultPerByte} the amount of CO2 in grammes
112
+ */
81
113
  perByteTrace(bytes, green = false, options = {}) {
82
114
  const adjustments = (0, import_helpers.parseByteTraceOptions)(
83
115
  options,
@@ -111,6 +143,16 @@ See https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more ab
111
143
  }
112
144
  };
113
145
  }
146
+ /**
147
+ * Accept a figure in bytes for data transfer, a boolean for whether
148
+ * the domain shows as 'green', and an options object.
149
+ * Returns an object containing CO2 figure, green boolean, and object of the variables used in calculating the CO2 figure.
150
+ *
151
+ * @param {number} bytes
152
+ * @param {boolean} green
153
+ * @param {Object} options
154
+ * @return {CO2EstimateTraceResultPerVisit} the amount of CO2 in grammes
155
+ */
114
156
  perVisitTrace(bytes, green = false, options = {}) {
115
157
  var _a;
116
158
  if ((_a = this.model) == null ? void 0 : _a.perVisit) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/co2.js"],
4
4
  "sourcesContent": ["\"use strict\";\n\n/**\n * @typedef {Object} CO2EstimateTraceResultPerByte\n * @property {number|CO2EstimateComponentsPerByte} co2 - The CO2 estimate in grams or its separate components\n * @property {boolean} green - Whether the domain is green or not\n * @property {TraceResultVariablesPerByte} variables - The variables used to calculate the CO2 estimate\n */\n\n/**\n * @typedef {Object} CO2EstimateTraceResultPerVisit\n * @property {number|CO2EstimateComponentsPerVisit} co2 - The CO2 estimate in grams or its separate components\n * @property {boolean} green - Whether the domain is green or not\n * @property {TraceResultVariablesPerVisit} variables - The variables used to calculate the CO2 estimate\n */\n\n/**\n * @typedef {Object} TraceResultVariablesPerByte\n * @property {GridIntensityVariables} gridIntensity - The grid intensity related variables\n */\n/**\n * @typedef {Object} TraceResultVariablesPerVisit\n * @property {GridIntensityVariables} gridIntensity - The grid intensity related variables\n * @property {number} dataReloadRatio - What percentage of a page is reloaded on each subsequent page view\n * @property {number} firstVisitPercentage - What percentage of visits are loading this page for subsequent times\n * @property {number} returnVisitPercentage - What percentage of visits are loading this page for the second or more time\n */\n\n/**\n * @typedef {Object} GridIntensityVariables\n * @property {string} description - The description of the variables\n * @property {number} network - The network grid intensity set by the user or the default\n * @property {number} dataCenter - The data center grid intensity set by the user or the default\n * @property {number} device - The device grid intensity set by the user or the default\n * @property {number} production - The production grid intensity set by the user or the default\n */\n\n/**\n * @typedef {Object} CO2EstimateComponentsPerByte\n * @property {number} networkCO2 - The CO2 estimate for networking in grams\n * @property {number} dataCenterCO2 - The CO2 estimate for data centers in grams\n * @property {number} consumerDeviceCO2 - The CO2 estimate for consumer devices in grams\n * @property {number} productionCO2 - The CO2 estimate for device production in grams\n * @property {string} rating - The rating of the CO2 estimate based on the Sustainable Web Design Model\n * @property {number} total - The total CO2 estimate in grams\n */\n\n/**\n * @typedef {Object} CO2EstimateComponentsPerVisit\n * @property {number} 'networkCO2 - first' - The CO2 estimate for networking in grams on first visit\n * @property {number} 'networkCO2 - subsequent' - The CO2 estimate for networking in grams on subsequent visits\n * @property {number} 'dataCenterCO2 - first' - The CO2 estimate for data centers in grams on first visit\n * @property {number} 'dataCenterCO2 - subsequent' - The CO2 estimate for data centers in grams on subsequent visits\n * @property {number} 'consumerDeviceCO2 - first' - The CO2 estimate for consumer devices in grams on first visit\n * @property {number} 'consumerDeviceCO2 - subsequent' - The CO2 estimate for consumer devices in grams on subsequent visits\n * @property {number} 'productionCO2 - first' - The CO2 estimate for device production in grams on first visit\n * @property {number} 'productionCO2 - subsequent' - The CO2 estimate for device production in grams on subsequent visits\n * @property {string} rating - The rating of the CO2 estimate based on the Sustainable Web Design Model\n * @property {number} total - The total CO2 estimate in grams\n */\n\nimport OneByte from \"./1byte.js\";\nimport SustainableWebDesignV3 from \"./sustainable-web-design-v3.js\";\nimport SustainableWebDesignV4 from \"./sustainable-web-design-v4.js\";\n\nimport {\n parseByteTraceOptions,\n parseVisitTraceOptions,\n} from \"./helpers/index.js\";\n\nclass CO2 {\n constructor(options) {\n this.model = new SustainableWebDesignV3();\n // Using optional chaining allows an empty object to be passed\n // in without breaking the code.\n if (options?.model === \"1byte\") {\n this.model = new OneByte();\n } else if (options?.model === \"swd\") {\n this.model = new SustainableWebDesignV3();\n if (options?.version === 4) {\n this.model = new SustainableWebDesignV4();\n }\n } else if (options?.model) {\n throw new Error(\n `\"${options.model}\" is not a valid model. Please use \"1byte\" for the OneByte model, and \"swd\" for the Sustainable Web Design model.\\nSee https://developers.thegreenwebfoundation.org/co2js/models/ to learn more about the models available in CO2.js.`\n );\n }\n\n if (options?.rating && typeof options.rating !== \"boolean\") {\n throw new Error(\n `The rating option must be a boolean. Please use true or false.\\nSee https://developers.thegreenwebfoundation.org/co2js/options/ to learn more about the options available in CO2.js.`\n );\n }\n\n // This flag checks to see if the model itself has a rating system.\n const allowRatings = !!this.model.allowRatings;\n\n /** @private */\n this._segment = options?.results === \"segment\";\n // This flag is set by the user to enable the rating system.\n this._rating = options?.rating === true;\n\n // The rating system is only supported in the Sustainable Web Design Model.\n if (!allowRatings && this._rating) {\n throw new Error(\n `The rating system is not supported in the model you are using. Try using the Sustainable Web Design model instead.\\nSee https://developers.thegreenwebfoundation.org/co2js/models/ to learn more about the models available in CO2.js.`\n );\n }\n }\n\n /**\n * Accept a figure in bytes for data transfer, and a boolean for whether\n * the domain shows as 'green', and return a CO2 figure for energy used to shift the corresponding\n * the data transfer.\n *\n * @param {number} bytes\n * @param {boolean} green\n * @return {number|CO2EstimateComponentsPerByte} the amount of CO2 in grammes or its separate components\n */\n perByte(bytes, green = false) {\n return this.model.perByte(bytes, green, this._segment, this._rating);\n }\n\n /**\n * Accept a figure in bytes for data transfer, and a boolean for whether\n * the domain shows as 'green', and return a CO2 figure for energy used to shift the corresponding\n * the data transfer.\n *\n * @param {number} bytes\n * @param {boolean} green\n * @return {number|CO2EstimateComponentsPerVisit} the amount of CO2 in grammes or its separate components\n */\n perVisit(bytes, green = false) {\n if (this.model?.perVisit) {\n return this.model.perVisit(bytes, green, this._segment, this._rating);\n } else {\n throw new Error(\n `The perVisit() method is not supported in the model you are using. Try using perByte() instead.\\nSee https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more about the methods available in CO2.js.`\n );\n }\n }\n\n /**\n * Accept a figure in bytes for data transfer, a boolean for whether\n * the domain shows as 'green', and an options object.\n * Returns an object containing CO2 figure, green boolean, and object of the variables used in calculating the CO2 figure.\n *\n * @param {number} bytes\n * @param {boolean} green\n * @param {Object} options\n * @return {CO2EstimateTraceResultPerByte} the amount of CO2 in grammes\n */\n perByteTrace(bytes, green = false, options = {}) {\n const adjustments = parseByteTraceOptions(\n options,\n this.model.version,\n green\n );\n\n // Filter out the trace items that aren't relevant to this function.\n const { gridIntensity, ...traceVariables } = adjustments;\n const {\n dataReloadRatio,\n firstVisitPercentage,\n returnVisitPercentage,\n ...otherVariables\n } = traceVariables;\n return {\n co2: this.model.perByte(\n bytes,\n green,\n this._segment,\n this._rating,\n adjustments\n ),\n green,\n variables: {\n description:\n \"Below are the variables used to calculate this CO2 estimate.\",\n bytes,\n gridIntensity: {\n description:\n \"The grid intensity (grams per kilowatt-hour) used to calculate this CO2 estimate.\",\n ...adjustments.gridIntensity,\n },\n ...otherVariables,\n },\n };\n }\n\n /**\n * Accept a figure in bytes for data transfer, a boolean for whether\n * the domain shows as 'green', and an options object.\n * Returns an object containing CO2 figure, green boolean, and object of the variables used in calculating the CO2 figure.\n *\n * @param {number} bytes\n * @param {boolean} green\n * @param {Object} options\n * @return {CO2EstimateTraceResultPerVisit} the amount of CO2 in grammes\n */\n perVisitTrace(bytes, green = false, options = {}) {\n if (this.model?.perVisit) {\n const adjustments = parseVisitTraceOptions(\n options,\n this.model.version,\n green\n );\n const { gridIntensity, ...variables } = adjustments;\n\n return {\n co2: this.model.perVisit(\n bytes,\n green,\n this._segment,\n this._rating,\n adjustments\n ),\n green,\n variables: {\n description:\n \"Below are the variables used to calculate this CO2 estimate.\",\n bytes,\n gridIntensity: {\n description:\n \"The grid intensity (grams per kilowatt-hour) used to calculate this CO2 estimate.\",\n ...adjustments.gridIntensity,\n },\n ...variables,\n },\n };\n } else {\n throw new Error(\n `The perVisitTrace() method is not supported in the model you are using. Try using perByte() instead.\\nSee https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more about the methods available in CO2.js.`\n );\n }\n }\n\n SustainableWebDesignV3() {\n return new SustainableWebDesignV3();\n }\n\n SustainableWebDesignV4() {\n return new SustainableWebDesignV4();\n }\n\n OneByte() {\n return new OneByte();\n }\n}\n\nexport { CO2 };\nexport default CO2;\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["SustainableWebDesignV3", "OneByte", "SustainableWebDesignV4"]
7
7
  }
@@ -17,6 +17,10 @@ var __copyProps = (to, from, except, desc) => {
17
17
  return to;
18
18
  };
19
19
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
24
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
25
  mod
22
26
  ));
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/constants/index.js"],
4
4
  "sourcesContent": ["import fileSize from \"./file-size.js\";\nimport averageIntensity from \"../data/average-intensities.min.js\";\n\n// SUSTAINABLE WEB DESIGN CONSTANTS\n// this refers to the estimated total energy use for the internet around 2000 TWh,\n// divided by the total transfer it enables around 2500 exabytes\nconst KWH_PER_GB = 0.81;\n\n// these constants outline how the energy is attributed to\n// different parts of the system in the SWD model\nconst END_USER_DEVICE_ENERGY = 0.52;\nconst NETWORK_ENERGY = 0.14;\nconst DATACENTER_ENERGY = 0.15;\nconst PRODUCTION_ENERGY = 0.19;\n\n// These carbon intensity figures https://ember-climate.org/data/data-explorer\n// - Global carbon intensity for 2023\nconst GLOBAL_GRID_INTENSITY = averageIntensity.data[\"WORLD\"];\nconst RENEWABLES_GRID_INTENSITY = 50;\n\n// Taken from: https://gitlab.com/wholegrain/carbon-api-2-0/-/blob/master/includes/carbonapi.php\n\nconst FIRST_TIME_VIEWING_PERCENTAGE = 0.75;\nconst RETURNING_VISITOR_PERCENTAGE = 0.25;\nconst PERCENTAGE_OF_DATA_LOADED_ON_SUBSEQUENT_LOAD = 0.02;\n\nconst SWDV4 = {\n OPERATIONAL_KWH_PER_GB_DATACENTER: 0.055,\n OPERATIONAL_KWH_PER_GB_NETWORK: 0.059,\n OPERATIONAL_KWH_PER_GB_DEVICE: 0.08,\n EMBODIED_KWH_PER_GB_DATACENTER: 0.012,\n EMBODIED_KWH_PER_GB_NETWORK: 0.013,\n EMBODIED_KWH_PER_GB_DEVICE: 0.081,\n GLOBAL_GRID_INTENSITY: 494,\n};\n\nconst SWDMV3_RATINGS = {\n FIFTH_PERCENTILE: 0.095,\n TENTH_PERCENTILE: 0.186,\n TWENTIETH_PERCENTILE: 0.341,\n THIRTIETH_PERCENTILE: 0.493,\n FORTIETH_PERCENTILE: 0.656,\n FIFTIETH_PERCENTILE: 0.846,\n};\n\nconst SWDMV4_RATINGS = {\n FIFTH_PERCENTILE: 0.04,\n TENTH_PERCENTILE: 0.079,\n TWENTIETH_PERCENTILE: 0.145,\n THIRTIETH_PERCENTILE: 0.209,\n FORTIETH_PERCENTILE: 0.278,\n FIFTIETH_PERCENTILE: 0.359,\n};\n\nexport {\n fileSize,\n KWH_PER_GB,\n END_USER_DEVICE_ENERGY,\n NETWORK_ENERGY,\n DATACENTER_ENERGY,\n PRODUCTION_ENERGY,\n GLOBAL_GRID_INTENSITY,\n RENEWABLES_GRID_INTENSITY,\n FIRST_TIME_VIEWING_PERCENTAGE,\n RETURNING_VISITOR_PERCENTAGE,\n PERCENTAGE_OF_DATA_LOADED_ON_SUBSEQUENT_LOAD,\n SWDV4,\n SWDMV3_RATINGS,\n SWDMV4_RATINGS,\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAAAA;AAAA;AAAA;AAAA,uBAAqB;AACrB,qCAA6B;AAK7B,MAAM,aAAa;AAInB,MAAM,yBAAyB;AAC/B,MAAM,iBAAiB;AACvB,MAAM,oBAAoB;AAC1B,MAAM,oBAAoB;AAI1B,MAAM,wBAAwB,+BAAAC,QAAiB,KAAK;AACpD,MAAM,4BAA4B;AAIlC,MAAM,gCAAgC;AACtC,MAAM,+BAA+B;AACrC,MAAM,+CAA+C;AAErD,MAAM,QAAQ;AAAA,EACZ,mCAAmC;AAAA,EACnC,gCAAgC;AAAA,EAChC,+BAA+B;AAAA,EAC/B,gCAAgC;AAAA,EAChC,6BAA6B;AAAA,EAC7B,4BAA4B;AAAA,EAC5B,uBAAuB;AACzB;AAEA,MAAM,iBAAiB;AAAA,EACrB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAEA,MAAM,iBAAiB;AAAA,EACrB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAAAA;AAAA;AAAA;AAAA,uBAAqB;AACrB,qCAA6B;AAK7B,MAAM,aAAa;AAInB,MAAM,yBAAyB;AAC/B,MAAM,iBAAiB;AACvB,MAAM,oBAAoB;AAC1B,MAAM,oBAAoB;AAI1B,MAAM,wBAAwB,+BAAAC,QAAiB,KAAK,OAAO;AAC3D,MAAM,4BAA4B;AAIlC,MAAM,gCAAgC;AACtC,MAAM,+BAA+B;AACrC,MAAM,+CAA+C;AAErD,MAAM,QAAQ;AAAA,EACZ,mCAAmC;AAAA,EACnC,gCAAgC;AAAA,EAChC,+BAA+B;AAAA,EAC/B,gCAAgC;AAAA,EAChC,6BAA6B;AAAA,EAC7B,4BAA4B;AAAA,EAC5B,uBAAuB;AACzB;AAEA,MAAM,iBAAiB;AAAA,EACrB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAEA,MAAM,iBAAiB;AAAA,EACrB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;",
6
6
  "names": ["fileSize", "averageIntensity"]
7
7
  }
@@ -22,7 +22,7 @@ __export(average_intensities_min_exports, {
22
22
  type: () => type
23
23
  });
24
24
  module.exports = __toCommonJS(average_intensities_min_exports);
25
- const data = { "AFG": 123.71, "AFRICA": 541.25, "ALB": 24.42, "DZA": 633.65, "ASM": 647.06, "AGO": 167.22, "ATG": 611.11, "ARG": 353.96, "ARM": 262.43, "ABW": 550, "ASEAN": 567.48, "ASIA": 590.48, "AUS": 556.3, "AUT": 101.71, "AZE": 669.99, "BHS": 653.66, "BHR": 902.41, "BGD": 683.12, "BRB": 600, "BLR": 314.91, "BEL": 117.74, "BLZ": 155.56, "BEN": 590, "BTN": 24.19, "BOL": 489.11, "BIH": 623.4, "BWA": 849.42, "BRA": 96.4, "BRN": 892.67, "BGR": 264.71, "BFA": 554.91, "BDI": 230.77, "CPV": 480, "KHM": 470.59, "CMR": 285.71, "CAN": 165.15, "CYM": 642.86, "CAF": 0, "TCD": 615.39, "CHL": 272.1, "CHN": 583.61, "COL": 268.97, "COM": 642.86, "COG": 713.73, "COD": 27.04, "COK": 250, "CRI": 24.77, "CIV": 393.53, "HRV": 173.21, "CUB": 638.98, "CYP": 505.32, "CZE": 413.8, "DNK": 144.15, "DJI": 450, "DMA": 600, "DOM": 579.4, "ECU": 176.28, "EGY": 574.04, "SLV": 118.46, "GNQ": 605.1, "ERI": 590.91, "EST": 343.85, "SWZ": 142.86, "ETH": 23.55, "EU": 213.39, "EUROPE": 281.75, "FLK": 1e3, "FRO": 354.17, "FJI": 278.26, "FIN": 72.48, "FRA": 44.13, "GUF": 204.08, "PYF": 436.62, "G20": 477.2, "G7": 340.32, "GAB": 429.47, "GMB": 666.67, "GEO": 168.06, "DEU": 343.96, "GHA": 452.86, "GRC": 319.6, "GRL": 111.11, "GRD": 666.67, "GLP": 493.9, "GUM": 611.11, "GTM": 272.66, "GIN": 182.72, "GNB": 625, "GUY": 634.33, "HTI": 534.65, "HND": 289.5, "HKG": 681.99, "HUN": 182.25, "ISL": 28.33, "IND": 713.01, "IDN": 682.43, "IRN": 641.73, "IRQ": 689.4, "IRL": 284.05, "ISR": 567.26, "ITA": 286.9, "JAM": 561.25, "JPN": 493.59, "JOR": 539.21, "KAZ": 821.9, "KEN": 96.95, "KIR": 500, "XKX": 919.36, "KWT": 636.91, "KGZ": 150.77, "LAO": 232.12, "LATIN AMERICA AND CARIBBEAN": 256.14, "LVA": 136.36, "LBN": 369.47, "LSO": 20.83, "LBR": 435.9, "LBY": 830.53, "LTU": 137.84, "LUX": 134.62, "MAC": 448.98, "MDG": 477.27, "MWI": 54.65, "MYS": 607.88, "MDV": 611.77, "MLI": 394.5, "MLT": 477.48, "MTQ": 516.78, "MRT": 481.71, "MUS": 633.03, "MEX": 492.34, "MIDDLE EAST": 641.43, "MDA": 632.89, "MNG": 785.08, "MNE": 422.22, "MSR": 1e3, "MAR": 616.82, "MOZ": 127.81, "MMR": 588.95, "NAM": 47.62, "NRU": 750, "NPL": 23.36, "NLD": 255.67, "NCL": 585.76, "NZL": 104.42, "NIC": 288.33, "NER": 687.5, "NGA": 508.82, "NORTH AMERICA": 343.02, "PRK": 344.26, "MKD": 524.62, "NOR": 30.32, "OCEANIA": 494.88, "OECD": 339.53, "OMN": 545.88, "PAK": 445.52, "PSE": 460.78, "PAN": 258.74, "PNG": 513.74, "PRY": 24.86, "PER": 287.81, "POL": 616.2, "PRT": 112.24, "PRI": 660.8, "QAT": 602.65, "REU": 525.22, "ROU": 246.02, "RUS": 447.87, "RWA": 301.89, "KNA": 636.36, "LCA": 650, "SPM": 600, "VCT": 600, "WSM": 400, "STP": 555.56, "SAU": 696.31, "SEN": 535.4, "SRB": 678.9, "SYC": 571.43, "SLE": 47.62, "SGP": 470.87, "SVK": 96.52, "SVN": 229.22, "SLB": 636.36, "SOM": 523.81, "ZAF": 709.69, "KOR": 432.11, "SSD": 610.17, "ESP": 146.26, "LKA": 509.78, "SDN": 214.33, "SUR": 383.18, "SWE": 35.92, "CHE": 29.44, "SYR": 682.27, "TWN": 644.36, "TJK": 87.5, "TZA": 371.59, "THA": 549.85, "PHL": 601.15, "TGO": 478.26, "TON": 571.43, "TTO": 682.11, "TUN": 560.36, "TUR": 441.76, "TKM": 1306.3, "TCA": 653.85, "UGA": 57.39, "UKR": 162.13, "ARE": 492.7, "GBR": 209.81, "USA": 369.53, "URY": 115.68, "UZB": 1121.18, "VUT": 500, "VEN": 180.25, "VNM": 472.47, "VGB": 647.06, "VIR": 641.79, "WORLD": 480.69, "YEM": 586.32, "ZMB": 111, "ZWE": 298.44 };
25
+ const data = { "AFG": 123.71, "AFRICA": 542.68, "ALB": 24.42, "DZA": 633.65, "ASM": 647.06, "AGO": 167.22, "ATG": 611.11, "ARG": 358.95, "ARM": 244.34, "ABW": 550, "ASEAN": 570.86, "ASIA": 573.11, "AUS": 551.59, "AUT": 102.62, "AZE": 633.07, "BHS": 653.66, "BHR": 902.41, "BGD": 694.63, "BRB": 600, "BLR": 313.62, "BEL": 117.58, "BLZ": 155.56, "BEN": 590, "BTN": 24.19, "BOL": 468.02, "BIH": 637.76, "BWA": 849.42, "BRA": 103.21, "BRN": 892.67, "BGR": 264.21, "BFA": 554.91, "BDI": 230.77, "CPV": 480, "KHM": 497.46, "CMR": 285.71, "CAN": 174.81, "CYM": 642.86, "CAF": 0, "TCD": 615.39, "CHL": 265.52, "CHN": 559.55, "COL": 285.8, "COM": 642.86, "COG": 713.73, "COD": 27.04, "COK": 250, "CRI": 63.01, "CIV": 393.53, "HRV": 174.48, "CUB": 638.98, "CYP": 512.24, "CZE": 413.86, "DNK": 143.3, "DJI": 450, "DMA": 600, "DOM": 566.05, "ECU": 209.7, "EGY": 571.92, "SLV": 103.13, "GNQ": 605.1, "ERI": 590.91, "EST": 341.02, "SWZ": 142.86, "ETH": 23.55, "EU": 213.31, "EUROPE": 284.17, "FLK": 1e3, "FRO": 354.17, "FJI": 278.26, "FIN": 72.25, "FRA": 44.18, "GUF": 204.08, "PYF": 436.62, "G20": 468.99, "G7": 342.59, "GAB": 429.47, "GMB": 666.67, "GEO": 143.06, "DEU": 344.14, "GHA": 452.86, "GRC": 319.76, "GRL": 111.11, "GRD": 666.67, "GLP": 493.9, "GUM": 611.11, "GTM": 272.66, "GIN": 182.72, "GNB": 625, "GUY": 634.33, "HTI": 534.65, "HND": 289.5, "HKG": 681.99, "HUN": 182.82, "ISL": 28.33, "IND": 708.32, "IDN": 682.43, "IRN": 641.94, "IRQ": 689.4, "IRL": 279.7, "ISR": 567.26, "ITA": 287.53, "JAM": 561.25, "JPN": 482.32, "JOR": 539.21, "KAZ": 801.95, "KEN": 88.79, "KIR": 500, "XKX": 958.72, "KWT": 637.24, "KGZ": 162.71, "LAO": 232.12, "LATIN AMERICA AND CARIBBEAN": 255.13, "LVA": 136.22, "LBN": 369.47, "LSO": 20.83, "LBR": 435.9, "LBY": 830.53, "LTU": 139.34, "LUX": 134.62, "MAC": 448.98, "MDG": 477.27, "MWI": 54.65, "MYS": 609.85, "MDV": 611.77, "MLI": 394.5, "MLT": 484.16, "MTQ": 516.78, "MRT": 481.71, "MUS": 633.03, "MEX": 484.83, "MIDDLE EAST": 636.41, "MDA": 631.68, "MNG": 784.01, "MNE": 413.51, "MSR": 1e3, "MAR": 577.65, "MOZ": 127.81, "MMR": 578.82, "NAM": 47.62, "NRU": 750, "NPL": 23.36, "NLD": 253.31, "NCL": 585.76, "NZL": 120.11, "NIC": 288.33, "NER": 687.5, "NGA": 507.85, "NORTH AMERICA": 357.42, "PRK": 344.26, "MKD": 568.97, "NOR": 30.75, "OCEANIA": 493.42, "OECD": 337.48, "OMN": 545.25, "PAK": 398.61, "PSE": 460.78, "PAN": 258.74, "PNG": 513.74, "PRY": 24.86, "PER": 263.27, "POL": 614.98, "PRT": 112.29, "PRI": 664.53, "QAT": 602.83, "REU": 525.22, "ROU": 245.55, "RUS": 449.2, "RWA": 301.89, "KNA": 636.36, "LCA": 650, "SPM": 600, "VCT": 600, "WSM": 400, "STP": 555.56, "SAU": 696.31, "SEN": 535.4, "SRB": 673.16, "SYC": 571.43, "SLE": 47.62, "SGP": 498.74, "SVK": 96.49, "SVN": 227.65, "SLB": 636.36, "SOM": 523.81, "ZAF": 708.88, "KOR": 414.27, "SSD": 610.17, "ESP": 146.15, "LKA": 509.78, "SDN": 214.33, "SUR": 383.18, "SWE": 35.82, "CHE": 36.6, "SYR": 682.27, "TWN": 635.65, "TJK": 112.79, "TZA": 371.59, "THA": 554.5, "PHL": 613.38, "TGO": 478.26, "TON": 571.43, "TTO": 682.11, "TUN": 560.25, "TUR": 469.7, "TKM": 1306.3, "TCA": 653.85, "UGA": 57.39, "UKR": 256.21, "ARE": 492.7, "GBR": 210.89, "USA": 383.55, "URY": 96.7, "UZB": 1121.18, "VUT": 500, "VEN": 180.25, "VNM": 471.16, "VGB": 647.06, "VIR": 641.79, "WORLD": 473.05, "YEM": 586.32, "ZMB": 111, "ZWE": 298.44 };
26
26
  const type = "average";
27
27
  var average_intensities_min_default = { data, type };
28
28
  //# sourceMappingURL=average-intensities.min.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/data/average-intensities.min.js"],
4
- "sourcesContent": ["/**\n * @fileoverview Minified average CO2 emissions intensity data for countries.\n * @generated Generated by generate_average_co2.js\n * @version 1.0.0\n*/\n/**\n * @constant {Object.<string, number>} data - Average CO2 emissions intensity data for various countries.\n * @constant {string} type - Type of data being represented.\n */\n const data = {\"AFG\":123.71,\"AFRICA\":541.25,\"ALB\":24.42,\"DZA\":633.65,\"ASM\":647.06,\"AGO\":167.22,\"ATG\":611.11,\"ARG\":353.96,\"ARM\":262.43,\"ABW\":550,\"ASEAN\":567.48,\"ASIA\":590.48,\"AUS\":556.3,\"AUT\":101.71,\"AZE\":669.99,\"BHS\":653.66,\"BHR\":902.41,\"BGD\":683.12,\"BRB\":600,\"BLR\":314.91,\"BEL\":117.74,\"BLZ\":155.56,\"BEN\":590,\"BTN\":24.19,\"BOL\":489.11,\"BIH\":623.4,\"BWA\":849.42,\"BRA\":96.4,\"BRN\":892.67,\"BGR\":264.71,\"BFA\":554.91,\"BDI\":230.77,\"CPV\":480,\"KHM\":470.59,\"CMR\":285.71,\"CAN\":165.15,\"CYM\":642.86,\"CAF\":0,\"TCD\":615.39,\"CHL\":272.1,\"CHN\":583.61,\"COL\":268.97,\"COM\":642.86,\"COG\":713.73,\"COD\":27.04,\"COK\":250,\"CRI\":24.77,\"CIV\":393.53,\"HRV\":173.21,\"CUB\":638.98,\"CYP\":505.32,\"CZE\":413.8,\"DNK\":144.15,\"DJI\":450,\"DMA\":600,\"DOM\":579.4,\"ECU\":176.28,\"EGY\":574.04,\"SLV\":118.46,\"GNQ\":605.1,\"ERI\":590.91,\"EST\":343.85,\"SWZ\":142.86,\"ETH\":23.55,\"EU\":213.39,\"EUROPE\":281.75,\"FLK\":1000,\"FRO\":354.17,\"FJI\":278.26,\"FIN\":72.48,\"FRA\":44.13,\"GUF\":204.08,\"PYF\":436.62,\"G20\":477.2,\"G7\":340.32,\"GAB\":429.47,\"GMB\":666.67,\"GEO\":168.06,\"DEU\":343.96,\"GHA\":452.86,\"GRC\":319.6,\"GRL\":111.11,\"GRD\":666.67,\"GLP\":493.9,\"GUM\":611.11,\"GTM\":272.66,\"GIN\":182.72,\"GNB\":625,\"GUY\":634.33,\"HTI\":534.65,\"HND\":289.5,\"HKG\":681.99,\"HUN\":182.25,\"ISL\":28.33,\"IND\":713.01,\"IDN\":682.43,\"IRN\":641.73,\"IRQ\":689.4,\"IRL\":284.05,\"ISR\":567.26,\"ITA\":286.9,\"JAM\":561.25,\"JPN\":493.59,\"JOR\":539.21,\"KAZ\":821.9,\"KEN\":96.95,\"KIR\":500,\"XKX\":919.36,\"KWT\":636.91,\"KGZ\":150.77,\"LAO\":232.12,\"LATIN AMERICA AND CARIBBEAN\":256.14,\"LVA\":136.36,\"LBN\":369.47,\"LSO\":20.83,\"LBR\":435.9,\"LBY\":830.53,\"LTU\":137.84,\"LUX\":134.62,\"MAC\":448.98,\"MDG\":477.27,\"MWI\":54.65,\"MYS\":607.88,\"MDV\":611.77,\"MLI\":394.5,\"MLT\":477.48,\"MTQ\":516.78,\"MRT\":481.71,\"MUS\":633.03,\"MEX\":492.34,\"MIDDLE EAST\":641.43,\"MDA\":632.89,\"MNG\":785.08,\"MNE\":422.22,\"MSR\":1000,\"MAR\":616.82,\"MOZ\":127.81,\"MMR\":588.95,\"NAM\":47.62,\"NRU\":750,\"NPL\":23.36,\"NLD\":255.67,\"NCL\":585.76,\"NZL\":104.42,\"NIC\":288.33,\"NER\":687.5,\"NGA\":508.82,\"NORTH AMERICA\":343.02,\"PRK\":344.26,\"MKD\":524.62,\"NOR\":30.32,\"OCEANIA\":494.88,\"OECD\":339.53,\"OMN\":545.88,\"PAK\":445.52,\"PSE\":460.78,\"PAN\":258.74,\"PNG\":513.74,\"PRY\":24.86,\"PER\":287.81,\"POL\":616.2,\"PRT\":112.24,\"PRI\":660.8,\"QAT\":602.65,\"REU\":525.22,\"ROU\":246.02,\"RUS\":447.87,\"RWA\":301.89,\"KNA\":636.36,\"LCA\":650,\"SPM\":600,\"VCT\":600,\"WSM\":400,\"STP\":555.56,\"SAU\":696.31,\"SEN\":535.4,\"SRB\":678.9,\"SYC\":571.43,\"SLE\":47.62,\"SGP\":470.87,\"SVK\":96.52,\"SVN\":229.22,\"SLB\":636.36,\"SOM\":523.81,\"ZAF\":709.69,\"KOR\":432.11,\"SSD\":610.17,\"ESP\":146.26,\"LKA\":509.78,\"SDN\":214.33,\"SUR\":383.18,\"SWE\":35.92,\"CHE\":29.44,\"SYR\":682.27,\"TWN\":644.36,\"TJK\":87.5,\"TZA\":371.59,\"THA\":549.85,\"PHL\":601.15,\"TGO\":478.26,\"TON\":571.43,\"TTO\":682.11,\"TUN\":560.36,\"TUR\":441.76,\"TKM\":1306.3,\"TCA\":653.85,\"UGA\":57.39,\"UKR\":162.13,\"ARE\":492.7,\"GBR\":209.81,\"USA\":369.53,\"URY\":115.68,\"UZB\":1121.18,\"VUT\":500,\"VEN\":180.25,\"VNM\":472.47,\"VGB\":647.06,\"VIR\":641.79,\"WORLD\":480.69,\"YEM\":586.32,\"ZMB\":111,\"ZWE\":298.44}; const type = \"average\"; export { data, type }; export default { data, type };"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * @fileoverview Minified average CO2 emissions intensity data for countries.\n * @generated Generated by generate_average_co2.js\n * @version 1.0.0\n*/\n/**\n * @constant {Object.<string, number>} data - Average CO2 emissions intensity data for various countries.\n * @constant {string} type - Type of data being represented.\n */\n const data = {\"AFG\":123.71,\"AFRICA\":542.68,\"ALB\":24.42,\"DZA\":633.65,\"ASM\":647.06,\"AGO\":167.22,\"ATG\":611.11,\"ARG\":358.95,\"ARM\":244.34,\"ABW\":550,\"ASEAN\":570.86,\"ASIA\":573.11,\"AUS\":551.59,\"AUT\":102.62,\"AZE\":633.07,\"BHS\":653.66,\"BHR\":902.41,\"BGD\":694.63,\"BRB\":600,\"BLR\":313.62,\"BEL\":117.58,\"BLZ\":155.56,\"BEN\":590,\"BTN\":24.19,\"BOL\":468.02,\"BIH\":637.76,\"BWA\":849.42,\"BRA\":103.21,\"BRN\":892.67,\"BGR\":264.21,\"BFA\":554.91,\"BDI\":230.77,\"CPV\":480,\"KHM\":497.46,\"CMR\":285.71,\"CAN\":174.81,\"CYM\":642.86,\"CAF\":0,\"TCD\":615.39,\"CHL\":265.52,\"CHN\":559.55,\"COL\":285.8,\"COM\":642.86,\"COG\":713.73,\"COD\":27.04,\"COK\":250,\"CRI\":63.01,\"CIV\":393.53,\"HRV\":174.48,\"CUB\":638.98,\"CYP\":512.24,\"CZE\":413.86,\"DNK\":143.3,\"DJI\":450,\"DMA\":600,\"DOM\":566.05,\"ECU\":209.7,\"EGY\":571.92,\"SLV\":103.13,\"GNQ\":605.1,\"ERI\":590.91,\"EST\":341.02,\"SWZ\":142.86,\"ETH\":23.55,\"EU\":213.31,\"EUROPE\":284.17,\"FLK\":1000,\"FRO\":354.17,\"FJI\":278.26,\"FIN\":72.25,\"FRA\":44.18,\"GUF\":204.08,\"PYF\":436.62,\"G20\":468.99,\"G7\":342.59,\"GAB\":429.47,\"GMB\":666.67,\"GEO\":143.06,\"DEU\":344.14,\"GHA\":452.86,\"GRC\":319.76,\"GRL\":111.11,\"GRD\":666.67,\"GLP\":493.9,\"GUM\":611.11,\"GTM\":272.66,\"GIN\":182.72,\"GNB\":625,\"GUY\":634.33,\"HTI\":534.65,\"HND\":289.5,\"HKG\":681.99,\"HUN\":182.82,\"ISL\":28.33,\"IND\":708.32,\"IDN\":682.43,\"IRN\":641.94,\"IRQ\":689.4,\"IRL\":279.7,\"ISR\":567.26,\"ITA\":287.53,\"JAM\":561.25,\"JPN\":482.32,\"JOR\":539.21,\"KAZ\":801.95,\"KEN\":88.79,\"KIR\":500,\"XKX\":958.72,\"KWT\":637.24,\"KGZ\":162.71,\"LAO\":232.12,\"LATIN AMERICA AND CARIBBEAN\":255.13,\"LVA\":136.22,\"LBN\":369.47,\"LSO\":20.83,\"LBR\":435.9,\"LBY\":830.53,\"LTU\":139.34,\"LUX\":134.62,\"MAC\":448.98,\"MDG\":477.27,\"MWI\":54.65,\"MYS\":609.85,\"MDV\":611.77,\"MLI\":394.5,\"MLT\":484.16,\"MTQ\":516.78,\"MRT\":481.71,\"MUS\":633.03,\"MEX\":484.83,\"MIDDLE EAST\":636.41,\"MDA\":631.68,\"MNG\":784.01,\"MNE\":413.51,\"MSR\":1000,\"MAR\":577.65,\"MOZ\":127.81,\"MMR\":578.82,\"NAM\":47.62,\"NRU\":750,\"NPL\":23.36,\"NLD\":253.31,\"NCL\":585.76,\"NZL\":120.11,\"NIC\":288.33,\"NER\":687.5,\"NGA\":507.85,\"NORTH AMERICA\":357.42,\"PRK\":344.26,\"MKD\":568.97,\"NOR\":30.75,\"OCEANIA\":493.42,\"OECD\":337.48,\"OMN\":545.25,\"PAK\":398.61,\"PSE\":460.78,\"PAN\":258.74,\"PNG\":513.74,\"PRY\":24.86,\"PER\":263.27,\"POL\":614.98,\"PRT\":112.29,\"PRI\":664.53,\"QAT\":602.83,\"REU\":525.22,\"ROU\":245.55,\"RUS\":449.2,\"RWA\":301.89,\"KNA\":636.36,\"LCA\":650,\"SPM\":600,\"VCT\":600,\"WSM\":400,\"STP\":555.56,\"SAU\":696.31,\"SEN\":535.4,\"SRB\":673.16,\"SYC\":571.43,\"SLE\":47.62,\"SGP\":498.74,\"SVK\":96.49,\"SVN\":227.65,\"SLB\":636.36,\"SOM\":523.81,\"ZAF\":708.88,\"KOR\":414.27,\"SSD\":610.17,\"ESP\":146.15,\"LKA\":509.78,\"SDN\":214.33,\"SUR\":383.18,\"SWE\":35.82,\"CHE\":36.6,\"SYR\":682.27,\"TWN\":635.65,\"TJK\":112.79,\"TZA\":371.59,\"THA\":554.5,\"PHL\":613.38,\"TGO\":478.26,\"TON\":571.43,\"TTO\":682.11,\"TUN\":560.25,\"TUR\":469.7,\"TKM\":1306.3,\"TCA\":653.85,\"UGA\":57.39,\"UKR\":256.21,\"ARE\":492.7,\"GBR\":210.89,\"USA\":383.55,\"URY\":96.7,\"UZB\":1121.18,\"VUT\":500,\"VEN\":180.25,\"VNM\":471.16,\"VGB\":647.06,\"VIR\":641.79,\"WORLD\":473.05,\"YEM\":586.32,\"ZMB\":111,\"ZWE\":298.44}; const type = \"average\"; export { data, type }; export default { data, type };"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -197,7 +197,7 @@ Falling back to default value.`
197
197
  return adjustments;
198
198
  }
199
199
  function getApiRequestHeaders(comment = "") {
200
- return { "User-Agent": `co2js/${"0.16.6"} ${comment}` };
200
+ return { "User-Agent": `co2js/${"0.16.8"} ${comment}` };
201
201
  }
202
202
  function outputRating(co2e, swdmVersion) {
203
203
  let {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/index.js"],
4
4
  "sourcesContent": ["import { averageIntensity } from \"../index.js\";\nimport {\n GLOBAL_GRID_INTENSITY as SWDM3_GLOBAL_GRID_INTENSITY,\n SWDV4,\n PERCENTAGE_OF_DATA_LOADED_ON_SUBSEQUENT_LOAD,\n FIRST_TIME_VIEWING_PERCENTAGE,\n RETURNING_VISITOR_PERCENTAGE,\n SWDMV3_RATINGS,\n SWDMV4_RATINGS,\n} from \"../constants/index.js\";\n\nconst SWDM4_GLOBAL_GRID_INTENSITY = SWDV4.GLOBAL_GRID_INTENSITY;\n// Shared type definitions to be used across different files\n\n/**\n * @typedef {Object} DomainCheckOptions options to control the behavior when checking a domain\n * @property {string} userAgentIdentifier - Optional. The app, site, or organisation that is making the request.\n * @property {boolean} verbose - Optional. Whether to return a verbose response.\n * @property {string[]} db - Optional. A database list to use for lookups.\n */\n\nconst formatNumber = (num) => parseFloat(num.toFixed(2));\n\nconst lessThanEqualTo = (num, limit) => num <= limit;\n\nfunction parseByteTraceOptions(options = {}, version = 3, green = false) {\n const globalGridIntensity =\n version === 4 ? SWDM4_GLOBAL_GRID_INTENSITY : SWDM3_GLOBAL_GRID_INTENSITY;\n // CHeck that it is an object\n if (typeof options !== \"object\") {\n throw new Error(\"Options must be an object\");\n }\n\n const adjustments = {};\n\n /**\n *\n * @param {string} segment The name of the segment (\"device\"|\"dataCenter\"|\"network\")\n * @param {number|object} segmentIntensity The segment intensity\n */\n function setIntensity(segment, segmentIntensity) {\n if (segmentIntensity || segmentIntensity === 0) {\n if (typeof segmentIntensity === \"object\") {\n if (!averageIntensity.data[segmentIntensity.country?.toUpperCase()]) {\n console.warn(\n `\"${segmentIntensity.country}\" is not a valid country. Please use a valid 3 digit ISO 3166 country code. \\nSee https://developers.thegreenwebfoundation.org/co2js/data/ for more information. \\nFalling back to global average grid intensity.`\n );\n adjustments.gridIntensity[segment] = {\n value: globalGridIntensity,\n };\n }\n adjustments.gridIntensity[segment] = {\n country: segmentIntensity.country,\n value: parseFloat(\n averageIntensity.data[segmentIntensity.country?.toUpperCase()]\n ),\n };\n } else if (typeof segmentIntensity === \"number\") {\n adjustments.gridIntensity[segment] = {\n value: segmentIntensity,\n };\n } else {\n adjustments.gridIntensity[segment] = {\n value: globalGridIntensity,\n };\n console.warn(\n `The ${segment} grid intensity must be a number or an object. You passed in a ${typeof segmentIntensity}. \\nFalling back to global average grid intensity.`\n );\n }\n } else {\n adjustments.gridIntensity[segment] = {\n value: globalGridIntensity,\n };\n }\n }\n\n if (options?.gridIntensity) {\n adjustments.gridIntensity = {};\n const { device, dataCenter, network } = options.gridIntensity;\n setIntensity(\"device\", device);\n setIntensity(\"dataCenter\", dataCenter);\n setIntensity(\"network\", network);\n } else {\n adjustments.gridIntensity = {\n device: { value: globalGridIntensity },\n dataCenter: { value: globalGridIntensity },\n network: { value: globalGridIntensity },\n };\n }\n\n if (\n options?.greenHostingFactor ||\n (options.greenHostingFactor === 0 && version === 4)\n ) {\n if (typeof options.greenHostingFactor === \"number\") {\n if (options.greenHostingFactor >= 0 && options.greenHostingFactor <= 1) {\n adjustments.greenHostingFactor = options.greenHostingFactor;\n } else {\n adjustments.greenHostingFactor = 0;\n console.warn(\n `The returnVisitPercentage option must be a number between 0 and 1. You passed in ${options.returnVisitPercentage}. \\nFalling back to default value.`\n );\n }\n } else {\n adjustments.greenHostingFactor = 0;\n console.warn(\n `The returnVisitPercentage option must be a number. You passed in a ${typeof options.returnVisitPercentage}. \\nFalling back to default value.`\n );\n }\n } else if (version === 4) {\n adjustments.greenHostingFactor = 0;\n }\n\n if (green) {\n adjustments.greenHostingFactor = 1;\n }\n\n return adjustments;\n}\n\nfunction parseVisitTraceOptions(options = {}, version = 3, green = false) {\n // CHeck that it is an object\n if (typeof options !== \"object\") {\n throw new Error(\"Options must be an object\");\n }\n\n const adjustments = parseByteTraceOptions(options, version, green);\n\n if (options?.dataReloadRatio || options.dataReloadRatio === 0) {\n if (typeof options.dataReloadRatio === \"number\") {\n if (options.dataReloadRatio >= 0 && options.dataReloadRatio <= 1) {\n adjustments.dataReloadRatio = options.dataReloadRatio;\n } else {\n adjustments.dataReloadRatio =\n version === 3 ? PERCENTAGE_OF_DATA_LOADED_ON_SUBSEQUENT_LOAD : 0;\n console.warn(\n `The dataReloadRatio option must be a number between 0 and 1. You passed in ${options.dataReloadRatio}. \\nFalling back to default value.`\n );\n }\n } else {\n adjustments.dataReloadRatio =\n version === 3 ? PERCENTAGE_OF_DATA_LOADED_ON_SUBSEQUENT_LOAD : 0;\n console.warn(\n `The dataReloadRatio option must be a number. You passed in a ${typeof options.dataReloadRatio}. \\nFalling back to default value.`\n );\n }\n } else {\n adjustments.dataReloadRatio =\n version === 3 ? PERCENTAGE_OF_DATA_LOADED_ON_SUBSEQUENT_LOAD : 0;\n console.warn(\n `The dataReloadRatio option must be a number. You passed in a ${typeof options.dataReloadRatio}. \\nFalling back to default value.`\n );\n }\n\n if (options?.firstVisitPercentage || options.firstVisitPercentage === 0) {\n if (typeof options.firstVisitPercentage === \"number\") {\n if (\n options.firstVisitPercentage >= 0 &&\n options.firstVisitPercentage <= 1\n ) {\n adjustments.firstVisitPercentage = options.firstVisitPercentage;\n } else {\n adjustments.firstVisitPercentage =\n version === 3 ? FIRST_TIME_VIEWING_PERCENTAGE : 1;\n console.warn(\n `The firstVisitPercentage option must be a number between 0 and 1. You passed in ${options.firstVisitPercentage}. \\nFalling back to default value.`\n );\n }\n } else {\n adjustments.firstVisitPercentage =\n version === 3 ? FIRST_TIME_VIEWING_PERCENTAGE : 1;\n console.warn(\n `The firstVisitPercentage option must be a number. You passed in a ${typeof options.firstVisitPercentage}. \\nFalling back to default value.`\n );\n }\n } else {\n adjustments.firstVisitPercentage =\n version === 3 ? FIRST_TIME_VIEWING_PERCENTAGE : 1;\n console.warn(\n `The firstVisitPercentage option must be a number. You passed in a ${typeof options.firstVisitPercentage}. \\nFalling back to default value.`\n );\n }\n\n if (options?.returnVisitPercentage || options.returnVisitPercentage === 0) {\n if (typeof options.returnVisitPercentage === \"number\") {\n if (\n options.returnVisitPercentage >= 0 &&\n options.returnVisitPercentage <= 1\n ) {\n adjustments.returnVisitPercentage = options.returnVisitPercentage;\n } else {\n adjustments.returnVisitPercentage =\n version === 3 ? RETURNING_VISITOR_PERCENTAGE : 0;\n console.warn(\n `The returnVisitPercentage option must be a number between 0 and 1. You passed in ${options.returnVisitPercentage}. \\nFalling back to default value.`\n );\n }\n } else {\n adjustments.returnVisitPercentage =\n version === 3 ? RETURNING_VISITOR_PERCENTAGE : 0;\n console.warn(\n `The returnVisitPercentage option must be a number. You passed in a ${typeof options.returnVisitPercentage}. \\nFalling back to default value.`\n );\n }\n } else {\n adjustments.returnVisitPercentage =\n version === 3 ? RETURNING_VISITOR_PERCENTAGE : 0;\n console.warn(\n `The returnVisitPercentage option must be a number. You passed in a ${typeof options.returnVisitPercentage}. \\nFalling back to default value.`\n );\n }\n\n return adjustments;\n}\n\n/**\n * Returns an object containing all the HTTP headers to use when making a request to the Green Web Foundation API.\n * @param {string} comment - Optional. The app, site, or organisation that is making the request.\n *\n * @returns {import('http').OutgoingHttpHeaders}\n */\nfunction getApiRequestHeaders(comment = \"\") {\n return { \"User-Agent\": `co2js/${process.env.CO2JS_VERSION} ${comment}` };\n}\n\n/**\n * Returns the SWDM rating for a given CO2e value and version of the SWDM.\n * @param {number} co2e - The CO2e value to rate.\n * @param {number} swdmVersion - The version of the SWDM to use. Defaults to version 3.\n * @returns {string} The SWDM rating.\n */\nfunction outputRating(co2e, swdmVersion) {\n let {\n FIFTH_PERCENTILE,\n TENTH_PERCENTILE,\n TWENTIETH_PERCENTILE,\n THIRTIETH_PERCENTILE,\n FORTIETH_PERCENTILE,\n FIFTIETH_PERCENTILE,\n } = SWDMV3_RATINGS;\n\n if (swdmVersion === 4) {\n FIFTH_PERCENTILE = SWDMV4_RATINGS.FIFTH_PERCENTILE;\n TENTH_PERCENTILE = SWDMV4_RATINGS.TENTH_PERCENTILE;\n TWENTIETH_PERCENTILE = SWDMV4_RATINGS.TWENTIETH_PERCENTILE;\n THIRTIETH_PERCENTILE = SWDMV4_RATINGS.THIRTIETH_PERCENTILE;\n FORTIETH_PERCENTILE = SWDMV4_RATINGS.FORTIETH_PERCENTILE;\n FIFTIETH_PERCENTILE = SWDMV4_RATINGS.FIFTIETH_PERCENTILE;\n }\n\n if (lessThanEqualTo(co2e, FIFTH_PERCENTILE)) {\n return \"A+\";\n } else if (lessThanEqualTo(co2e, TENTH_PERCENTILE)) {\n return \"A\";\n } else if (lessThanEqualTo(co2e, TWENTIETH_PERCENTILE)) {\n return \"B\";\n } else if (lessThanEqualTo(co2e, THIRTIETH_PERCENTILE)) {\n return \"C\";\n } else if (lessThanEqualTo(co2e, FORTIETH_PERCENTILE)) {\n return \"D\";\n } else if (lessThanEqualTo(co2e, FIFTIETH_PERCENTILE)) {\n return \"E\";\n } else {\n return \"F\";\n }\n}\n\nexport {\n formatNumber,\n parseByteTraceOptions,\n parseVisitTraceOptions,\n getApiRequestHeaders,\n lessThanEqualTo,\n outputRating,\n};\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["SWDM3_GLOBAL_GRID_INTENSITY"]
7
7
  }
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
18
18
  return to;
19
19
  };
20
20
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
25
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
26
  mod
23
27
  ));
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/hosting-api.js"],
4
4
  "sourcesContent": ["\"use strict\";\n\nimport { getApiRequestHeaders } from \"./helpers/index.js\";\nimport hostingJSON from \"./hosting-json.js\";\n\n/**\n * Check if a string or array of domains is hosted by a green web host by querying the Green Web Foundation API.\n * @param {string|array} domain - The domain to check, or an array of domains to be checked.\n * @param {string | DomainCheckOptions} optionsOrAgentId - Optional. An object of domain check options, or a string\n * representing the app, site, or organisation that is making the request.\n */\n\nfunction check(domain, optionsOrAgentId) {\n const options =\n typeof optionsOrAgentId === \"string\"\n ? { userAgentIdentifier: optionsOrAgentId }\n : optionsOrAgentId;\n\n if (options?.db && options.verbose) {\n throw new Error(\"verbose mode cannot be used with a local lookup database\");\n }\n // is it a single domain or an array of them?\n if (typeof domain === \"string\") {\n return checkAgainstAPI(domain, options);\n } else {\n return checkDomainsAgainstAPI(domain, options);\n }\n}\n\n/**\n * Check if a domain is hosted by a green web host by querying the Green Web Foundation API.\n * @param {string} domain - The domain to check.\n * @param {DomainCheckOptions} options\n * @returns - A boolean indicating whether the domain is hosted by a green web host if `options.verbose` is false,\n * otherwise an object representing the domain host information.\n */\nasync function checkAgainstAPI(domain, options = {}) {\n const req = await fetch(\n `https://api.thegreenwebfoundation.org/greencheck/${domain}`,\n {\n headers: getApiRequestHeaders(options.userAgentIdentifier),\n }\n );\n if (options?.db) {\n return hostingJSON.check(domain, options.db);\n }\n const res = await req.json();\n return options.verbose ? res : res.green;\n}\n\n/**\n * Check if an array of domains is hosted by a green web host by querying the Green Web Foundation API.\n * @param {array} domains - An array of domains to check.\n * @param {DomainCheckOptions} options\n * @returns - An array of domains that are hosted by a green web host if `options.verbose` is false,\n * otherwise a dictionary of domain to host information.\n */\n\nasync function checkDomainsAgainstAPI(domains, options = {}) {\n try {\n const apiPath = \"https://api.thegreenwebfoundation.org/v2/greencheckmulti\";\n const domainsString = JSON.stringify(domains);\n\n const req = await fetch(`${apiPath}/${domainsString}`, {\n headers: getApiRequestHeaders(options.userAgentIdentifier),\n });\n\n const allGreenCheckResults = await req.json();\n\n return options.verbose\n ? allGreenCheckResults\n : greenDomainsFromResults(allGreenCheckResults);\n } catch (e) {\n return options.verbose ? {} : [];\n }\n}\n\n/**\n * Extract the green domains from the results of a green check.\n * @param {object} greenResults - The results of a green check.\n * @returns {array} - An array of domains that are hosted by a green web host.\n */\nfunction greenDomainsFromResults(greenResults) {\n const entries = Object.entries(greenResults);\n const greenEntries = entries.filter(([key, val]) => val.green);\n return greenEntries.map(([key, val]) => val.url);\n}\n\nexport default {\n check,\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qBAAqC;AACrC,0BAAwB;AASxB,SAAS,MAAM,QAAQ,kBAAkB;AACvC,QAAM,UACJ,OAAO,qBAAqB,WACxB,EAAE,qBAAqB,iBAAiB,IACxC;AAEN,OAAI,mCAAS,OAAM,QAAQ,SAAS;AAClC,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AAEA,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO,gBAAgB,QAAQ,OAAO;AAAA,EACxC,OAAO;AACL,WAAO,uBAAuB,QAAQ,OAAO;AAAA,EAC/C;AACF;AASA,eAAe,gBAAgB,QAAQ,UAAU,CAAC,GAAG;AACnD,QAAM,MAAM,MAAM;AAAA,IAChB,oDAAoD;AAAA,IACpD;AAAA,MACE,aAAS,qCAAqB,QAAQ,mBAAmB;AAAA,IAC3D;AAAA,EACF;AACA,MAAI,mCAAS,IAAI;AACf,WAAO,oBAAAA,QAAY,MAAM,QAAQ,QAAQ,EAAE;AAAA,EAC7C;AACA,QAAM,MAAM,MAAM,IAAI,KAAK;AAC3B,SAAO,QAAQ,UAAU,MAAM,IAAI;AACrC;AAUA,eAAe,uBAAuB,SAAS,UAAU,CAAC,GAAG;AAC3D,MAAI;AACF,UAAM,UAAU;AAChB,UAAM,gBAAgB,KAAK,UAAU,OAAO;AAE5C,UAAM,MAAM,MAAM,MAAM,GAAG,WAAW,iBAAiB;AAAA,MACrD,aAAS,qCAAqB,QAAQ,mBAAmB;AAAA,IAC3D,CAAC;AAED,UAAM,uBAAuB,MAAM,IAAI,KAAK;AAE5C,WAAO,QAAQ,UACX,uBACA,wBAAwB,oBAAoB;AAAA,EAClD,SAAS,GAAP;AACA,WAAO,QAAQ,UAAU,CAAC,IAAI,CAAC;AAAA,EACjC;AACF;AAOA,SAAS,wBAAwB,cAAc;AAC7C,QAAM,UAAU,OAAO,QAAQ,YAAY;AAC3C,QAAM,eAAe,QAAQ,OAAO,CAAC,CAAC,KAAK,GAAG,MAAM,IAAI,KAAK;AAC7D,SAAO,aAAa,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,IAAI,GAAG;AACjD;AAEA,IAAO,sBAAQ;AAAA,EACb;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qBAAqC;AACrC,0BAAwB;AASxB,SAAS,MAAM,QAAQ,kBAAkB;AACvC,QAAM,UACJ,OAAO,qBAAqB,WACxB,EAAE,qBAAqB,iBAAiB,IACxC;AAEN,OAAI,mCAAS,OAAM,QAAQ,SAAS;AAClC,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AAEA,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO,gBAAgB,QAAQ,OAAO;AAAA,EACxC,OAAO;AACL,WAAO,uBAAuB,QAAQ,OAAO;AAAA,EAC/C;AACF;AASA,eAAe,gBAAgB,QAAQ,UAAU,CAAC,GAAG;AACnD,QAAM,MAAM,MAAM;AAAA,IAChB,oDAAoD,MAAM;AAAA,IAC1D;AAAA,MACE,aAAS,qCAAqB,QAAQ,mBAAmB;AAAA,IAC3D;AAAA,EACF;AACA,MAAI,mCAAS,IAAI;AACf,WAAO,oBAAAA,QAAY,MAAM,QAAQ,QAAQ,EAAE;AAAA,EAC7C;AACA,QAAM,MAAM,MAAM,IAAI,KAAK;AAC3B,SAAO,QAAQ,UAAU,MAAM,IAAI;AACrC;AAUA,eAAe,uBAAuB,SAAS,UAAU,CAAC,GAAG;AAC3D,MAAI;AACF,UAAM,UAAU;AAChB,UAAM,gBAAgB,KAAK,UAAU,OAAO;AAE5C,UAAM,MAAM,MAAM,MAAM,GAAG,OAAO,IAAI,aAAa,IAAI;AAAA,MACrD,aAAS,qCAAqB,QAAQ,mBAAmB;AAAA,IAC3D,CAAC;AAED,UAAM,uBAAuB,MAAM,IAAI,KAAK;AAE5C,WAAO,QAAQ,UACX,uBACA,wBAAwB,oBAAoB;AAAA,EAClD,SAAS,GAAG;AACV,WAAO,QAAQ,UAAU,CAAC,IAAI,CAAC;AAAA,EACjC;AACF;AAOA,SAAS,wBAAwB,cAAc;AAC7C,QAAM,UAAU,OAAO,QAAQ,YAAY;AAC3C,QAAM,eAAe,QAAQ,OAAO,CAAC,CAAC,KAAK,GAAG,MAAM,IAAI,KAAK;AAC7D,SAAO,aAAa,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,IAAI,GAAG;AACjD;AAEA,IAAO,sBAAQ;AAAA,EACb;AACF;",
6
6
  "names": ["hostingJSON"]
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/hosting-json.js"],
4
4
  "sourcesContent": ["\"use strict\";\n\n/**\n * Check if a string or array of domains has been provided\n * @param {string|array} domain - The domain to check, or an array of domains to be checked.\n */\nasync function check(domain, db) {\n // is it a single domain or an array of them?\n if (typeof domain === \"string\") {\n return checkInJSON(domain, db);\n } else {\n return checkDomainsInJSON(domain, db);\n }\n}\n\n/**\n * Check if a domain is hosted by a green web host by querying the database.\n * @param {string} domain - The domain to check.\n * @param {object} db - The database to check against.\n * @returns {boolean} - A boolean indicating whether the domain is hosted by a green web host.\n */\nfunction checkInJSON(domain, db) {\n if (db.indexOf(domain) > -1) {\n return true;\n }\n return false;\n}\n\n/**\n * Extract the green domains from the results of a green check.\n * @param {object} greenResults - The results of a green check.\n * @returns {array} - An array of domains that are hosted by a green web host.\n */\nfunction greenDomainsFromResults(greenResults) {\n const entries = Object.entries(greenResults);\n const greenEntries = entries.filter(([key, val]) => val.green);\n\n return greenEntries.map(([key, val]) => val.url);\n}\n\n/**\n * Check if an array of domains is hosted by a green web host by querying the database.\n * @param {array} domains - An array of domains to check.\n * @param {object} db - The database to check against.\n * @returns {array} - An array of domains that are hosted by a green web host.\n */\nfunction checkDomainsInJSON(domains, db) {\n let greenDomains = [];\n\n for (let domain of domains) {\n if (db.indexOf(domain) > -1) {\n greenDomains.push(domain);\n }\n }\n return greenDomains;\n}\n\n/**\n * Find the provided information a string or array of domains\n * @param {string|array} domain - The domain to check, or an array of domains to be checked.\n */\nfunction find(domain, db) {\n // is it a single domain or an array of them?\n if (typeof domain === \"string\") {\n return findInJSON(domain, db);\n } else {\n return findDomainsInJSON(domain, db);\n }\n}\n\n/**\n * Check if a domain is hosted by a green web host by querying the database.\n * @param {string} domain - The domain to check.\n * @param {object} db - The database to check against.\n * @returns {object} - An object representing the domain provided host information.\n */\nfunction findInJSON(domain, db) {\n if (db.indexOf(domain) > -1) {\n return domain;\n }\n return {\n url: domain,\n green: false,\n };\n}\n\n/**\n * Check if an array of domains is hosted by a green web host by querying the database.\n * @param {array} domains - An array of domains to check.\n * @param {object} db - The database to check against.\n * @returns {array} - A dictionary of domain to provided host information.\n */\nfunction findDomainsInJSON(domains, db) {\n const result = {};\n for (let domain of domains) {\n result[domain] = findInJSON(domain, db);\n }\n return result;\n}\n\nmodule.exports = {\n check,\n greenDomainsFromResults,\n find,\n};\n"],
5
- "mappings": ";AAMA,eAAe,MAAM,QAAQ,IAAI;AAE/B,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO,YAAY,QAAQ,EAAE;AAAA,EAC/B,OAAO;AACL,WAAO,mBAAmB,QAAQ,EAAE;AAAA,EACtC;AACF;AAQA,SAAS,YAAY,QAAQ,IAAI;AAC/B,MAAI,GAAG,QAAQ,MAAM,IAAI,IAAI;AAC3B,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAOA,SAAS,wBAAwB,cAAc;AAC7C,QAAM,UAAU,OAAO,QAAQ,YAAY;AAC3C,QAAM,eAAe,QAAQ,OAAO,CAAC,CAAC,KAAK,GAAG,MAAM,IAAI,KAAK;AAE7D,SAAO,aAAa,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,IAAI,GAAG;AACjD;AAQA,SAAS,mBAAmB,SAAS,IAAI;AACvC,MAAI,eAAe,CAAC;AAEpB,WAAS,UAAU,SAAS;AAC1B,QAAI,GAAG,QAAQ,MAAM,IAAI,IAAI;AAC3B,mBAAa,KAAK,MAAM;AAAA,IAC1B;AAAA,EACF;AACA,SAAO;AACT;AAMA,SAAS,KAAK,QAAQ,IAAI;AAExB,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO,WAAW,QAAQ,EAAE;AAAA,EAC9B,OAAO;AACL,WAAO,kBAAkB,QAAQ,EAAE;AAAA,EACrC;AACF;AAQA,SAAS,WAAW,QAAQ,IAAI;AAC9B,MAAI,GAAG,QAAQ,MAAM,IAAI,IAAI;AAC3B,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AACF;AAQA,SAAS,kBAAkB,SAAS,IAAI;AACtC,QAAM,SAAS,CAAC;AAChB,WAAS,UAAU,SAAS;AAC1B,WAAO,UAAU,WAAW,QAAQ,EAAE;AAAA,EACxC;AACA,SAAO;AACT;AAEA,OAAO,UAAU;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF;",
5
+ "mappings": ";AAMA,eAAe,MAAM,QAAQ,IAAI;AAE/B,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO,YAAY,QAAQ,EAAE;AAAA,EAC/B,OAAO;AACL,WAAO,mBAAmB,QAAQ,EAAE;AAAA,EACtC;AACF;AAQA,SAAS,YAAY,QAAQ,IAAI;AAC/B,MAAI,GAAG,QAAQ,MAAM,IAAI,IAAI;AAC3B,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAOA,SAAS,wBAAwB,cAAc;AAC7C,QAAM,UAAU,OAAO,QAAQ,YAAY;AAC3C,QAAM,eAAe,QAAQ,OAAO,CAAC,CAAC,KAAK,GAAG,MAAM,IAAI,KAAK;AAE7D,SAAO,aAAa,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,IAAI,GAAG;AACjD;AAQA,SAAS,mBAAmB,SAAS,IAAI;AACvC,MAAI,eAAe,CAAC;AAEpB,WAAS,UAAU,SAAS;AAC1B,QAAI,GAAG,QAAQ,MAAM,IAAI,IAAI;AAC3B,mBAAa,KAAK,MAAM;AAAA,IAC1B;AAAA,EACF;AACA,SAAO;AACT;AAMA,SAAS,KAAK,QAAQ,IAAI;AAExB,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO,WAAW,QAAQ,EAAE;AAAA,EAC9B,OAAO;AACL,WAAO,kBAAkB,QAAQ,EAAE;AAAA,EACrC;AACF;AAQA,SAAS,WAAW,QAAQ,IAAI;AAC9B,MAAI,GAAG,QAAQ,MAAM,IAAI,IAAI;AAC3B,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AACF;AAQA,SAAS,kBAAkB,SAAS,IAAI;AACtC,QAAM,SAAS,CAAC;AAChB,WAAS,UAAU,SAAS;AAC1B,WAAO,MAAM,IAAI,WAAW,QAAQ,EAAE;AAAA,EACxC;AACA,SAAO;AACT;AAEA,OAAO,UAAU;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF;",
6
6
  "names": []
7
7
  }
@@ -14,6 +14,10 @@ var __copyProps = (to, from, except, desc) => {
14
14
  return to;
15
15
  };
16
16
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
17
21
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
18
22
  mod
19
23
  ));
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/hosting-json.node.js"],
4
4
  "sourcesContent": ["\"use strict\";\n\nimport fs from \"fs\";\nimport zlib from \"zlib\";\nimport { promisify } from \"util\";\n\nconst readFile = promisify(fs.readFile);\nconst gunzip = promisify(zlib.gunzip);\n\n/**\n * Converts a readable stream to a string.\n * @param {ReadableStream} stream - The readable stream to convert.\n * @returns {Promise<string>} A promise that resolves to the string representation of the stream.\n */\nasync function streamToString(stream) {\n return new Promise((resolve, reject) => {\n const chunks = [];\n stream.on(\"error\", reject);\n stream.on(\"data\", (chunk) => chunks.push(chunk));\n stream.on(\"end\", () => resolve(Buffer.concat(chunks)));\n });\n}\n\n/**\n * Get the contents of a gzipped file as a JSON string.\n * @param {string} jsonPath - The path to the gzipped JSON file.\n * @returns {Promise<string>} A promise that resolves to the JSON string.\n */\nasync function getGzippedFileAsJson(jsonPath) {\n const readStream = fs.createReadStream(jsonPath);\n const text = await streamToString(readStream);\n const unzipped = await gunzip(text);\n return unzipped.toString();\n}\n\n/**\n * Loads JSON data from a file path.\n * @param {string} jsonPath - The path to the JSON file.\n * @returns {Promise<object>} A promise that resolves to the parsed JSON object.\n */\nasync function loadJSON(jsonPath) {\n const jsonBuffer = jsonPath.endsWith(\".gz\")\n ? await getGzippedFileAsJson(jsonPath)\n : await readFile(jsonPath);\n return JSON.parse(jsonBuffer);\n}\n\nmodule.exports = {\n loadJSON,\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAEA,gBAAe;AACf,kBAAiB;AACjB,kBAA0B;AAE1B,MAAM,eAAW,uBAAU,UAAAA,QAAG,QAAQ;AACtC,MAAM,aAAS,uBAAU,YAAAC,QAAK,MAAM;AAOpC,eAAe,eAAe,QAAQ;AACpC,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,SAAS,CAAC;AAChB,WAAO,GAAG,SAAS,MAAM;AACzB,WAAO,GAAG,QAAQ,CAAC,UAAU,OAAO,KAAK,KAAK,CAAC;AAC/C,WAAO,GAAG,OAAO,MAAM,QAAQ,OAAO,OAAO,MAAM,CAAC,CAAC;AAAA,EACvD,CAAC;AACH;AAOA,eAAe,qBAAqB,UAAU;AAC5C,QAAM,aAAa,UAAAD,QAAG,iBAAiB,QAAQ;AAC/C,QAAM,OAAO,MAAM,eAAe,UAAU;AAC5C,QAAM,WAAW,MAAM,OAAO,IAAI;AAClC,SAAO,SAAS,SAAS;AAC3B;AAOA,eAAe,SAAS,UAAU;AAChC,QAAM,aAAa,SAAS,SAAS,KAAK,IACtC,MAAM,qBAAqB,QAAQ,IACnC,MAAM,SAAS,QAAQ;AAC3B,SAAO,KAAK,MAAM,UAAU;AAC9B;AAEA,OAAO,UAAU;AAAA,EACf;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAEA,gBAAe;AACf,kBAAiB;AACjB,kBAA0B;AAE1B,MAAM,eAAW,uBAAU,UAAAA,QAAG,QAAQ;AACtC,MAAM,aAAS,uBAAU,YAAAC,QAAK,MAAM;AAOpC,eAAe,eAAe,QAAQ;AACpC,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,SAAS,CAAC;AAChB,WAAO,GAAG,SAAS,MAAM;AACzB,WAAO,GAAG,QAAQ,CAAC,UAAU,OAAO,KAAK,KAAK,CAAC;AAC/C,WAAO,GAAG,OAAO,MAAM,QAAQ,OAAO,OAAO,MAAM,CAAC,CAAC;AAAA,EACvD,CAAC;AACH;AAOA,eAAe,qBAAqB,UAAU;AAC5C,QAAM,aAAa,UAAAD,QAAG,iBAAiB,QAAQ;AAC/C,QAAM,OAAO,MAAM,eAAe,UAAU;AAC5C,QAAM,WAAW,MAAM,OAAO,IAAI;AAClC,SAAO,SAAS,SAAS;AAC3B;AAOA,eAAe,SAAS,UAAU;AAChC,QAAM,aAAa,SAAS,SAAS,KAAK,IACtC,MAAM,qBAAqB,QAAQ,IACnC,MAAM,SAAS,QAAQ;AAC3B,SAAO,KAAK,MAAM,UAAU;AAC9B;AAEA,OAAO,UAAU;AAAA,EACf;AACF;",
6
6
  "names": ["fs", "zlib"]
7
7
  }
@@ -17,6 +17,10 @@ var __copyProps = (to, from, except, desc) => {
17
17
  return to;
18
18
  };
19
19
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
24
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
25
  mod
22
26
  ));
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/hosting-node.js"],
4
4
  "sourcesContent": ["/*\n\nWe have a separate node-specific hosting.js file for node.\nThis uses the node-specific APIs for making http requests,\nand doing lookups against local JSON and sqlite databases.\nThis is used in the CommonJS build of co2.js\n\nThis lets us keep the total library small, and dependencies minimal.\n*/\n\nimport https from \"https\";\n\nimport hostingJSON from \"./hosting-json.js\";\nimport hostingJSONNode from \"./hosting-json.node.js\";\nimport { getApiRequestHeaders } from \"./helpers/index.js\";\n\n/**\n * Accept a url and perform an http request, returning the body\n * for parsing as JSON.\n *\n * @param {string} url\n * @param {string} userAgentIdentifier - Optional. The app, site, or organisation that is making the request.\n * @return {string}\n */\nasync function getBody(url, userAgentIdentifier) {\n return new Promise(function (resolve, reject) {\n // Do async job\n const req = https.get(\n url,\n { headers: getApiRequestHeaders(userAgentIdentifier) },\n function (res) {\n if (res.statusCode < 200 || res.statusCode >= 300) {\n return reject(\n new Error(\n `Could not get info from: ${url}. Status Code: ${res.statusCode}`\n )\n );\n }\n const data = [];\n\n res.on(\"data\", (chunk) => {\n data.push(chunk);\n });\n\n res.on(\"end\", () => resolve(Buffer.concat(data).toString()));\n }\n );\n req.end();\n });\n}\n\n/**\n * Check if a domain is hosted by a green web host.\n * @param {string|array} domain - The domain to check, or an array of domains to be checked.\n * @param {string[] | DomainCheckOptions} optionsOrDb - Optional. An object of domain check options, or a database list to use for lookups.\n * @param {string } userAgentIdentifier - Optional. The app, site, or organisation that is making the request.\n * @returns - A boolean if a string was provided, or an array of booleans if an array of domains was provided.\n * if a string was provided for `domain`: a boolean indicating whether the domain is hosted by a green web host if `options.verbose` is false,\n * otherwise an object representing the domain host information.\n * if an array was provided for `domain`: an array of domains that are hosted by a green web host if `options.verbose` is false,\n * otherwise a dictionary of domain to host information.\n */\n\nfunction check(domain, optionsOrDb, userAgentIdentifier) {\n let db,\n options = {};\n if (!db && Array.isArray(optionsOrDb)) {\n db = optionsOrDb;\n } else {\n options = optionsOrDb;\n if (userAgentIdentifier) {\n options = { ...options, userAgentIdentifier };\n }\n db = optionsOrDb?.db;\n }\n\n if (db && options?.verbose) {\n throw new Error(\"verbose mode cannot be used with a local lookup database\");\n }\n if (db) {\n return hostingJSON.check(domain, db);\n }\n // is it a single domain or an array of them?\n if (typeof domain === \"string\") {\n return checkAgainstAPI(domain, options);\n } else {\n return checkDomainsAgainstAPI(domain, options);\n }\n}\n\n/**\n * Check if a domain is hosted by a green web host by querying the Green Web Foundation API.\n * @param {string} domain - The domain to check.\n * @param {DomainCheckOptions} options\n * @returns {boolean} - A boolean indicating whether the domain is hosted by a green web host if `options.verbose` is false,\n * otherwise an object representing the domain host information.\n */\nasync function checkAgainstAPI(domain, options = {}) {\n const res = JSON.parse(\n await getBody(\n `https://api.thegreenwebfoundation.org/greencheck/${domain}`,\n options.userAgentIdentifier\n )\n );\n return options.verbose ? res : res.green;\n}\n\n/**\n * Check if an array of domains is hosted by a green web host by querying the Green Web Foundation API.\n * @param {array} domains - An array of domains to check.\n * @param {DomainCheckOptions} options\n * @returns {array} - An array of domains that are hosted by a green web host if `options.verbose` is false,\n * otherwise a dictionary of domain to host information.\n */\nasync function checkDomainsAgainstAPI(domains, options = {}) {\n try {\n const allGreenCheckResults = JSON.parse(\n await getBody(\n `https://api.thegreenwebfoundation.org/v2/greencheckmulti/${JSON.stringify(\n domains\n )}`,\n options.userAgentIdentifier\n )\n );\n return options.verbose\n ? allGreenCheckResults\n : hostingJSON.greenDomainsFromResults(allGreenCheckResults);\n } catch (e) {\n return options.verbose ? {} : [];\n }\n}\n\nexport default {\n check,\n greendomains: hostingJSON.greenDomainsFromResults,\n loadJSON: hostingJSONNode.loadJSON,\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,mBAAkB;AAElB,0BAAwB;AACxB,+BAA4B;AAC5B,qBAAqC;AAUrC,eAAe,QAAQ,KAAK,qBAAqB;AAC/C,SAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAE5C,UAAM,MAAM,aAAAA,QAAM;AAAA,MAChB;AAAA,MACA,EAAE,aAAS,qCAAqB,mBAAmB,EAAE;AAAA,MACrD,SAAU,KAAK;AACb,YAAI,IAAI,aAAa,OAAO,IAAI,cAAc,KAAK;AACjD,iBAAO;AAAA,YACL,IAAI;AAAA,cACF,4BAA4B,qBAAqB,IAAI;AAAA,YACvD;AAAA,UACF;AAAA,QACF;AACA,cAAM,OAAO,CAAC;AAEd,YAAI,GAAG,QAAQ,CAAC,UAAU;AACxB,eAAK,KAAK,KAAK;AAAA,QACjB,CAAC;AAED,YAAI,GAAG,OAAO,MAAM,QAAQ,OAAO,OAAO,IAAI,EAAE,SAAS,CAAC,CAAC;AAAA,MAC7D;AAAA,IACF;AACA,QAAI,IAAI;AAAA,EACV,CAAC;AACH;AAcA,SAAS,MAAM,QAAQ,aAAa,qBAAqB;AACvD,MAAI,IACF,UAAU,CAAC;AACb,MAAI,CAAC,MAAM,MAAM,QAAQ,WAAW,GAAG;AACrC,SAAK;AAAA,EACP,OAAO;AACL,cAAU;AACV,QAAI,qBAAqB;AACvB,gBAAU,EAAE,GAAG,SAAS,oBAAoB;AAAA,IAC9C;AACA,SAAK,2CAAa;AAAA,EACpB;AAEA,MAAI,OAAM,mCAAS,UAAS;AAC1B,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AACA,MAAI,IAAI;AACN,WAAO,oBAAAC,QAAY,MAAM,QAAQ,EAAE;AAAA,EACrC;AAEA,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO,gBAAgB,QAAQ,OAAO;AAAA,EACxC,OAAO;AACL,WAAO,uBAAuB,QAAQ,OAAO;AAAA,EAC/C;AACF;AASA,eAAe,gBAAgB,QAAQ,UAAU,CAAC,GAAG;AACnD,QAAM,MAAM,KAAK;AAAA,IACf,MAAM;AAAA,MACJ,oDAAoD;AAAA,MACpD,QAAQ;AAAA,IACV;AAAA,EACF;AACA,SAAO,QAAQ,UAAU,MAAM,IAAI;AACrC;AASA,eAAe,uBAAuB,SAAS,UAAU,CAAC,GAAG;AAC3D,MAAI;AACF,UAAM,uBAAuB,KAAK;AAAA,MAChC,MAAM;AAAA,QACJ,4DAA4D,KAAK;AAAA,UAC/D;AAAA,QACF;AAAA,QACA,QAAQ;AAAA,MACV;AAAA,IACF;AACA,WAAO,QAAQ,UACX,uBACA,oBAAAA,QAAY,wBAAwB,oBAAoB;AAAA,EAC9D,SAAS,GAAP;AACA,WAAO,QAAQ,UAAU,CAAC,IAAI,CAAC;AAAA,EACjC;AACF;AAEA,IAAO,uBAAQ;AAAA,EACb;AAAA,EACA,cAAc,oBAAAA,QAAY;AAAA,EAC1B,UAAU,yBAAAC,QAAgB;AAC5B;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,mBAAkB;AAElB,0BAAwB;AACxB,+BAA4B;AAC5B,qBAAqC;AAUrC,eAAe,QAAQ,KAAK,qBAAqB;AAC/C,SAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAE5C,UAAM,MAAM,aAAAA,QAAM;AAAA,MAChB;AAAA,MACA,EAAE,aAAS,qCAAqB,mBAAmB,EAAE;AAAA,MACrD,SAAU,KAAK;AACb,YAAI,IAAI,aAAa,OAAO,IAAI,cAAc,KAAK;AACjD,iBAAO;AAAA,YACL,IAAI;AAAA,cACF,4BAA4B,GAAG,kBAAkB,IAAI,UAAU;AAAA,YACjE;AAAA,UACF;AAAA,QACF;AACA,cAAM,OAAO,CAAC;AAEd,YAAI,GAAG,QAAQ,CAAC,UAAU;AACxB,eAAK,KAAK,KAAK;AAAA,QACjB,CAAC;AAED,YAAI,GAAG,OAAO,MAAM,QAAQ,OAAO,OAAO,IAAI,EAAE,SAAS,CAAC,CAAC;AAAA,MAC7D;AAAA,IACF;AACA,QAAI,IAAI;AAAA,EACV,CAAC;AACH;AAcA,SAAS,MAAM,QAAQ,aAAa,qBAAqB;AACvD,MAAI,IACF,UAAU,CAAC;AACb,MAAI,CAAC,MAAM,MAAM,QAAQ,WAAW,GAAG;AACrC,SAAK;AAAA,EACP,OAAO;AACL,cAAU;AACV,QAAI,qBAAqB;AACvB,gBAAU,EAAE,GAAG,SAAS,oBAAoB;AAAA,IAC9C;AACA,SAAK,2CAAa;AAAA,EACpB;AAEA,MAAI,OAAM,mCAAS,UAAS;AAC1B,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AACA,MAAI,IAAI;AACN,WAAO,oBAAAC,QAAY,MAAM,QAAQ,EAAE;AAAA,EACrC;AAEA,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO,gBAAgB,QAAQ,OAAO;AAAA,EACxC,OAAO;AACL,WAAO,uBAAuB,QAAQ,OAAO;AAAA,EAC/C;AACF;AASA,eAAe,gBAAgB,QAAQ,UAAU,CAAC,GAAG;AACnD,QAAM,MAAM,KAAK;AAAA,IACf,MAAM;AAAA,MACJ,oDAAoD,MAAM;AAAA,MAC1D,QAAQ;AAAA,IACV;AAAA,EACF;AACA,SAAO,QAAQ,UAAU,MAAM,IAAI;AACrC;AASA,eAAe,uBAAuB,SAAS,UAAU,CAAC,GAAG;AAC3D,MAAI;AACF,UAAM,uBAAuB,KAAK;AAAA,MAChC,MAAM;AAAA,QACJ,4DAA4D,KAAK;AAAA,UAC/D;AAAA,QACF,CAAC;AAAA,QACD,QAAQ;AAAA,MACV;AAAA,IACF;AACA,WAAO,QAAQ,UACX,uBACA,oBAAAA,QAAY,wBAAwB,oBAAoB;AAAA,EAC9D,SAAS,GAAG;AACV,WAAO,QAAQ,UAAU,CAAC,IAAI,CAAC;AAAA,EACjC;AACF;AAEA,IAAO,uBAAQ;AAAA,EACb;AAAA,EACA,cAAc,oBAAAA,QAAY;AAAA,EAC1B,UAAU,yBAAAC,QAAgB;AAC5B;",
6
6
  "names": ["https", "hostingJSON", "hostingJSONNode"]
7
7
  }
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
18
18
  return to;
19
19
  };
20
20
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
25
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
26
  mod
23
27
  ));
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/hosting.js"],
4
4
  "sourcesContent": ["\"use strict\";\n\nimport hostingAPI from \"./hosting-api.js\";\n\n/**\n * @module hosting\n */\n\n/**\n * Check if a domain is hosted by a green web host.\n * @param {string|array} domain - The domain to check, or an array of domains to be checked.\n * @param {string} optionsOrAgentId - Optional. An object of domain check options, or a string\n * representing the app, site, or organisation that is making the request.\n * @returns - A boolean if a string was provided, or an array of booleans if an array of domains was provided.\n * if a string was provided for `domain`: a boolean indicating whether the domain is hosted by a green web host if `options.verbose` is false,\n * otherwise an object representing the domain host information.\n * if an array was provided for `domain`: an array of domains that are hosted by a green web host if `options.verbose` is false,\n * otherwise a dictionary of domain to host information.\n */\nfunction check(domain, optionsOrAgentId) {\n return hostingAPI.check(domain, optionsOrAgentId);\n}\n\nexport default check;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,yBAAuB;AAiBvB,SAAS,MAAM,QAAQ,kBAAkB;AACvC,SAAO,mBAAAA,QAAW,MAAM,QAAQ,gBAAgB;AAClD;AAEA,IAAO,kBAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,yBAAuB;AAiBvB,SAAS,MAAM,QAAQ,kBAAkB;AACvC,SAAO,mBAAAA,QAAW,MAAM,QAAQ,gBAAgB;AAClD;AAEA,IAAO,kBAAQ;",
6
6
  "names": ["hostingAPI"]
7
7
  }
@@ -17,6 +17,10 @@ var __copyProps = (to, from, except, desc) => {
17
17
  return to;
18
18
  };
19
19
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
24
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
25
  mod
22
26
  ));
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index-node.js"],
4
4
  "sourcesContent": ["import co2 from \"./co2.js\";\nimport hosting from \"./hosting-node.js\";\nimport averageIntensity from \"./data/average-intensities.min.js\";\nimport marginalIntensity from \"./data/marginal-intensities-2021.min.js\";\nexport { co2, hosting, averageIntensity, marginalIntensity };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,yDAAAA;AAAA,EAAA,sBAAAC;AAAA,EAAA,mCAAAC;AAAA,EAAA,8DAAAC;AAAA;AAAA;AAAA,iBAAgB;AAChB,0BAAoB;AACpB,qCAA6B;AAC7B,2CAA8B;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,yDAAAA;AAAA,EAAA,sBAAAC;AAAA,EAAA,mCAAAC;AAAA,EAAA,8DAAAC;AAAA;AAAA;AAAA,iBAAgB;AAChB,0BAAoB;AACpB,qCAA6B;AAC7B,2CAA8B;",
6
6
  "names": ["averageIntensity", "co2", "hosting", "marginalIntensity"]
7
7
  }
package/dist/cjs/index.js CHANGED
@@ -17,22 +17,26 @@ var __copyProps = (to, from, except, desc) => {
17
17
  return to;
18
18
  };
19
19
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
24
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
25
  mod
22
26
  ));
23
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
- var src_exports = {};
25
- __export(src_exports, {
28
+ var index_exports = {};
29
+ __export(index_exports, {
26
30
  averageIntensity: () => import_average_intensities_min.default,
27
31
  co2: () => import_co2.default,
28
- default: () => src_default,
32
+ default: () => index_default,
29
33
  hosting: () => import_hosting.default,
30
34
  marginalIntensity: () => import_marginal_intensities_2021_min.default
31
35
  });
32
- module.exports = __toCommonJS(src_exports);
36
+ module.exports = __toCommonJS(index_exports);
33
37
  var import_co2 = __toESM(require("./co2.js"));
34
38
  var import_hosting = __toESM(require("./hosting.js"));
35
39
  var import_average_intensities_min = __toESM(require("./data/average-intensities.min.js"));
36
40
  var import_marginal_intensities_2021_min = __toESM(require("./data/marginal-intensities-2021.min.js"));
37
- var src_default = { co2: import_co2.default, hosting: import_hosting.default, averageIntensity: import_average_intensities_min.default, marginalIntensity: import_marginal_intensities_2021_min.default };
41
+ var index_default = { co2: import_co2.default, hosting: import_hosting.default, averageIntensity: import_average_intensities_min.default, marginalIntensity: import_marginal_intensities_2021_min.default };
38
42
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.js"],
4
4
  "sourcesContent": ["import co2 from \"./co2.js\";\nimport hosting from \"./hosting.js\";\nimport averageIntensity from \"./data/average-intensities.min.js\";\nimport marginalIntensity from \"./data/marginal-intensities-2021.min.js\";\n\nexport { co2, hosting, averageIntensity, marginalIntensity };\nexport default { co2, hosting, averageIntensity, marginalIntensity };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,yDAAAA;AAAA,EAAA,sBAAAC;AAAA,EAAA;AAAA,gCAAAC;AAAA,EAAA,8DAAAC;AAAA;AAAA;AAAA,iBAAgB;AAChB,qBAAoB;AACpB,qCAA6B;AAC7B,2CAA8B;AAG9B,IAAO,cAAQ,EAAE,gBAAAF,SAAK,wBAAAC,SAAS,iDAAAF,SAAkB,wDAAAG,QAAkB;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,yDAAAA;AAAA,EAAA,sBAAAC;AAAA,EAAA;AAAA,gCAAAC;AAAA,EAAA,8DAAAC;AAAA;AAAA;AAAA,iBAAgB;AAChB,qBAAoB;AACpB,qCAA6B;AAC7B,2CAA8B;AAG9B,IAAO,gBAAQ,EAAE,gBAAAF,SAAK,wBAAAC,SAAS,iDAAAF,SAAkB,wDAAAG,QAAkB;",
6
6
  "names": ["averageIntensity", "co2", "hosting", "marginalIntensity"]
7
7
  }