@tgwf/co2 0.13.4 → 0.13.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/co2.js CHANGED
@@ -40,23 +40,15 @@ class CO2 {
40
40
  throw new Error(`"${options.model}" is not a valid model. Please use "1byte" for the OneByte model, and "swd" for the Sustainable Web Design model.
41
41
  See https://developers.thegreenwebfoundation.org/co2js/models/ to learn more about the models available in CO2.js.`);
42
42
  }
43
- if ((options == null ? void 0 : options.results) === "segment") {
44
- this.model.results = {
45
- segment: true
46
- };
47
- } else {
48
- this.model.results = {
49
- segment: false
50
- };
51
- }
43
+ this._segment = (options == null ? void 0 : options.results) === "segment";
52
44
  }
53
45
  perByte(bytes, green = false) {
54
- return this.model.perByte(bytes, green, this.model.results.segment);
46
+ return this.model.perByte(bytes, green, this._segment);
55
47
  }
56
48
  perVisit(bytes, green = false) {
57
49
  var _a;
58
50
  if ((_a = this.model) == null ? void 0 : _a.perVisit) {
59
- return this.model.perVisit(bytes, green, this.model.results.segment);
51
+ return this.model.perVisit(bytes, green, this._segment);
60
52
  } else {
61
53
  throw new Error(`The perVisit() method is not supported in the model you are using. Try using perByte() instead.
62
54
  See https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more about the methods available in CO2.js.`);
@@ -69,7 +61,7 @@ See https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more ab
69
61
  adjustments = (0, import_helpers.parseOptions)(options);
70
62
  }
71
63
  return {
72
- co2: this.model.perByte(bytes, green, this.model.results.segment, adjustments),
64
+ co2: this.model.perByte(bytes, green, this._segment, adjustments),
73
65
  green,
74
66
  variables: {
75
67
  description: "Below are the variables used to calculate this CO2 estimate.",
@@ -92,7 +84,7 @@ See https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more ab
92
84
  adjustments = (0, import_helpers.parseOptions)(options);
93
85
  }
94
86
  return {
95
- co2: this.model.perVisit(bytes, green, this.model.results.segment, adjustments),
87
+ co2: this.model.perVisit(bytes, green, this._segment, adjustments),
96
88
  green,
97
89
  variables: {
98
90
  description: "Below are the variables used to calculate this CO2 estimate.",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/co2.js"],
4
- "sourcesContent": ["\"use strict\";\n\n/**\n * @typedef {Object} CO2EstimateTraceResultPerByte\n * @property {number} co2 - The CO2 estimate in grams/kilowatt-hour\n * @property {boolean} green - Whether the domain is green or not\n * @property {TraceResultVariables} variables - The variables used to calculate the CO2 estimate\n */\n\n/**\n * @typedef {Object} CO2EstimateTraceResultPerVisit\n * @property {number} co2 - The CO2 estimate in grams/kilowatt-hour\n * @property {boolean} green - Whether the domain is green or not\n * @property {TraceResultVariables} 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\nimport OneByte from \"./1byte.js\";\nimport SustainableWebDesign from \"./sustainable-web-design.js\";\n\nimport {\n GLOBAL_GRID_INTENSITY,\n RENEWABLES_GRID_INTENSITY,\n} from \"./constants/index.js\";\nimport { parseOptions } from \"./helpers/index.js\";\n\nclass CO2 {\n constructor(options) {\n this.model = new SustainableWebDesign();\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 SustainableWebDesign();\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?.results === \"segment\") {\n this.model.results = {\n segment: true,\n };\n } else {\n this.model.results = {\n segment: false,\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} the amount of CO2 in grammes\n */\n perByte(bytes, green = false) {\n return this.model.perByte(bytes, green, this.model.results.segment);\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} the amount of CO2 in grammes\n */\n perVisit(bytes, green = false) {\n if (this.model?.perVisit) {\n return this.model.perVisit(bytes, green, this.model.results.segment);\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 let adjustments = {};\n if (options) {\n // If there are options, parse them and add them to the model.\n adjustments = parseOptions(options);\n }\n return {\n co2: this.model.perByte(\n bytes,\n green,\n this.model.results.segment,\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 network:\n adjustments?.gridIntensity?.network?.value || GLOBAL_GRID_INTENSITY,\n dataCenter: green\n ? RENEWABLES_GRID_INTENSITY\n : adjustments?.gridIntensity?.dataCenter?.value ||\n GLOBAL_GRID_INTENSITY,\n production: GLOBAL_GRID_INTENSITY,\n device:\n adjustments?.gridIntensity?.device?.value || GLOBAL_GRID_INTENSITY,\n },\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 let adjustments = {};\n if (options) {\n // If there are options, parse them and add them to the model.\n adjustments = parseOptions(options);\n }\n\n return {\n co2: this.model.perVisit(\n bytes,\n green,\n this.model.results.segment,\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 network:\n adjustments?.gridIntensity?.network?.value ||\n GLOBAL_GRID_INTENSITY,\n dataCenter: green\n ? RENEWABLES_GRID_INTENSITY\n : adjustments?.gridIntensity?.dataCenter?.value ||\n GLOBAL_GRID_INTENSITY,\n production: GLOBAL_GRID_INTENSITY,\n device:\n adjustments?.gridIntensity?.device?.value ||\n GLOBAL_GRID_INTENSITY,\n },\n dataReloadRatio: adjustments?.dataReloadRatio || 0.02,\n firstVisitPercentage: adjustments?.firstVisitPercentage || 0.75,\n returnVisitPercentage: adjustments?.returnVisitPercentage || 0.25,\n },\n };\n } else {\n throw new Error(\n `The perVisitDetailed() 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 perDomain(pageXray, greenDomains) {\n const co2PerDomain = [];\n for (let domain of Object.keys(pageXray.domains)) {\n let co2;\n if (greenDomains && greenDomains.indexOf(domain) > -1) {\n co2 = this.perByte(pageXray.domains[domain].transferSize, true);\n } else {\n co2 = this.perByte(pageXray.domains[domain].transferSize);\n }\n co2PerDomain.push({\n domain,\n co2,\n transferSize: pageXray.domains[domain].transferSize,\n });\n }\n co2PerDomain.sort((a, b) => b.co2 - a.co2);\n\n return co2PerDomain;\n }\n\n perPage(pageXray, green) {\n // Accept an xray object, and if we receive a boolean as the second\n // argument, we assume every request we make is sent to a server\n // running on renwewable power.\n\n // if we receive an array of domains, return a number accounting the\n // reduced CO2 from green hosted domains\n\n const domainCO2 = this.perDomain(pageXray, green);\n let totalCO2 = 0;\n for (let domain of domainCO2) {\n totalCO2 += domain.co2;\n }\n return totalCO2;\n }\n\n perContentType(pageXray, greenDomains) {\n const co2PerContentType = {};\n for (let asset of pageXray.assets) {\n const domain = new URL(asset.url).domain;\n const transferSize = asset.transferSize;\n const co2ForTransfer = this.perByte(\n transferSize,\n greenDomains && greenDomains.indexOf(domain) > -1\n );\n const contentType = asset.type;\n if (!co2PerContentType[contentType]) {\n co2PerContentType[contentType] = { co2: 0, transferSize: 0 };\n }\n co2PerContentType[contentType].co2 += co2ForTransfer;\n co2PerContentType[contentType].transferSize += transferSize;\n }\n // restructure and sort\n const all = [];\n for (let type of Object.keys(co2PerContentType)) {\n all.push({\n type,\n co2: co2PerContentType[type].co2,\n transferSize: co2PerContentType[type].transferSize,\n });\n }\n all.sort((a, b) => b.co2 - a.co2);\n return all;\n }\n\n dirtiestResources(pageXray, greenDomains) {\n const allAssets = [];\n for (let asset of pageXray.assets) {\n const domain = new URL(asset.url).domain;\n const transferSize = asset.transferSize;\n const co2ForTransfer = this.perByte(\n transferSize,\n greenDomains && greenDomains.indexOf(domain) > -1\n );\n allAssets.push({ url: asset.url, co2: co2ForTransfer, transferSize });\n }\n allAssets.sort((a, b) => b.co2 - a.co2);\n\n return allAssets.slice(0, allAssets.length > 10 ? 10 : allAssets.length);\n }\n\n perParty(pageXray, greenDomains) {\n let firstParty = 0;\n let thirdParty = 0;\n // calculate co2 per first/third party\n const firstPartyRegEx = pageXray.firstPartyRegEx;\n for (let d of Object.keys(pageXray.domains)) {\n if (!d.match(firstPartyRegEx)) {\n thirdParty += this.perByte(\n pageXray.domains[d].transferSize,\n greenDomains && greenDomains.indexOf(d) > -1\n );\n } else {\n firstParty += this.perByte(\n pageXray.domains[d].transferSize,\n greenDomains && greenDomains.indexOf(d) > -1\n );\n }\n }\n return { firstParty, thirdParty };\n }\n}\n\nexport { CO2 };\nexport default CO2;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["\"use strict\";\n\n/**\n * @typedef {Object} CO2EstimateTraceResultPerByte\n * @property {number} co2 - The CO2 estimate in grams/kilowatt-hour\n * @property {boolean} green - Whether the domain is green or not\n * @property {TraceResultVariables} variables - The variables used to calculate the CO2 estimate\n */\n\n/**\n * @typedef {Object} CO2EstimateTraceResultPerVisit\n * @property {number} co2 - The CO2 estimate in grams/kilowatt-hour\n * @property {boolean} green - Whether the domain is green or not\n * @property {TraceResultVariables} 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\nimport OneByte from \"./1byte.js\";\nimport SustainableWebDesign from \"./sustainable-web-design.js\";\n\nimport {\n GLOBAL_GRID_INTENSITY,\n RENEWABLES_GRID_INTENSITY,\n} from \"./constants/index.js\";\nimport { parseOptions } from \"./helpers/index.js\";\n\nclass CO2 {\n constructor(options) {\n this.model = new SustainableWebDesign();\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 SustainableWebDesign();\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 /** @private */\n this._segment = options?.results === \"segment\";\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} the amount of CO2 in grammes\n */\n perByte(bytes, green = false) {\n return this.model.perByte(bytes, green, this._segment);\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} the amount of CO2 in grammes\n */\n perVisit(bytes, green = false) {\n if (this.model?.perVisit) {\n return this.model.perVisit(bytes, green, this._segment);\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 let adjustments = {};\n if (options) {\n // If there are options, parse them and add them to the model.\n adjustments = parseOptions(options);\n }\n return {\n co2: this.model.perByte(bytes, green, this._segment, adjustments),\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 network:\n adjustments?.gridIntensity?.network?.value || GLOBAL_GRID_INTENSITY,\n dataCenter: green\n ? RENEWABLES_GRID_INTENSITY\n : adjustments?.gridIntensity?.dataCenter?.value ||\n GLOBAL_GRID_INTENSITY,\n production: GLOBAL_GRID_INTENSITY,\n device:\n adjustments?.gridIntensity?.device?.value || GLOBAL_GRID_INTENSITY,\n },\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 let adjustments = {};\n if (options) {\n // If there are options, parse them and add them to the model.\n adjustments = parseOptions(options);\n }\n\n return {\n co2: this.model.perVisit(bytes, green, this._segment, adjustments),\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 network:\n adjustments?.gridIntensity?.network?.value ||\n GLOBAL_GRID_INTENSITY,\n dataCenter: green\n ? RENEWABLES_GRID_INTENSITY\n : adjustments?.gridIntensity?.dataCenter?.value ||\n GLOBAL_GRID_INTENSITY,\n production: GLOBAL_GRID_INTENSITY,\n device:\n adjustments?.gridIntensity?.device?.value ||\n GLOBAL_GRID_INTENSITY,\n },\n dataReloadRatio: adjustments?.dataReloadRatio || 0.02,\n firstVisitPercentage: adjustments?.firstVisitPercentage || 0.75,\n returnVisitPercentage: adjustments?.returnVisitPercentage || 0.25,\n },\n };\n } else {\n throw new Error(\n `The perVisitDetailed() 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 perDomain(pageXray, greenDomains) {\n const co2PerDomain = [];\n for (let domain of Object.keys(pageXray.domains)) {\n let co2;\n if (greenDomains && greenDomains.indexOf(domain) > -1) {\n co2 = this.perByte(pageXray.domains[domain].transferSize, true);\n } else {\n co2 = this.perByte(pageXray.domains[domain].transferSize);\n }\n co2PerDomain.push({\n domain,\n co2,\n transferSize: pageXray.domains[domain].transferSize,\n });\n }\n co2PerDomain.sort((a, b) => b.co2 - a.co2);\n\n return co2PerDomain;\n }\n\n perPage(pageXray, green) {\n // Accept an xray object, and if we receive a boolean as the second\n // argument, we assume every request we make is sent to a server\n // running on renwewable power.\n\n // if we receive an array of domains, return a number accounting the\n // reduced CO2 from green hosted domains\n\n const domainCO2 = this.perDomain(pageXray, green);\n let totalCO2 = 0;\n for (let domain of domainCO2) {\n totalCO2 += domain.co2;\n }\n return totalCO2;\n }\n\n perContentType(pageXray, greenDomains) {\n const co2PerContentType = {};\n for (let asset of pageXray.assets) {\n const domain = new URL(asset.url).domain;\n const transferSize = asset.transferSize;\n const co2ForTransfer = this.perByte(\n transferSize,\n greenDomains && greenDomains.indexOf(domain) > -1\n );\n const contentType = asset.type;\n if (!co2PerContentType[contentType]) {\n co2PerContentType[contentType] = { co2: 0, transferSize: 0 };\n }\n co2PerContentType[contentType].co2 += co2ForTransfer;\n co2PerContentType[contentType].transferSize += transferSize;\n }\n // restructure and sort\n const all = [];\n for (let type of Object.keys(co2PerContentType)) {\n all.push({\n type,\n co2: co2PerContentType[type].co2,\n transferSize: co2PerContentType[type].transferSize,\n });\n }\n all.sort((a, b) => b.co2 - a.co2);\n return all;\n }\n\n dirtiestResources(pageXray, greenDomains) {\n const allAssets = [];\n for (let asset of pageXray.assets) {\n const domain = new URL(asset.url).domain;\n const transferSize = asset.transferSize;\n const co2ForTransfer = this.perByte(\n transferSize,\n greenDomains && greenDomains.indexOf(domain) > -1\n );\n allAssets.push({ url: asset.url, co2: co2ForTransfer, transferSize });\n }\n allAssets.sort((a, b) => b.co2 - a.co2);\n\n return allAssets.slice(0, allAssets.length > 10 ? 10 : allAssets.length);\n }\n\n perParty(pageXray, greenDomains) {\n let firstParty = 0;\n let thirdParty = 0;\n // calculate co2 per first/third party\n const firstPartyRegEx = pageXray.firstPartyRegEx;\n for (let d of Object.keys(pageXray.domains)) {\n if (!d.match(firstPartyRegEx)) {\n thirdParty += this.perByte(\n pageXray.domains[d].transferSize,\n greenDomains && greenDomains.indexOf(d) > -1\n );\n } else {\n firstParty += this.perByte(\n pageXray.domains[d].transferSize,\n greenDomains && greenDomains.indexOf(d) > -1\n );\n }\n }\n return { firstParty, thirdParty };\n }\n}\n\nexport { CO2 };\nexport default CO2;\n"],
5
+ "mappings": "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",
6
6
  "names": []
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": 120.482, "AFRICA": 483.78, "ALB": 23.438, "DZA": 488.393, "ASM": 687.5, "AGO": 168.594, "ATG": 657.143, "ARG": 337.533, "ARM": 222.678, "ABW": 591.398, "ASIA": 531.78, "AUS": 503.179, "AUT": 157.52, "AZE": 532.902, "BHS": 698.113, "BHR": 489.924, "BGD": 581.485, "BRB": 644.86, "BLR": 415.774, "BEL": 165.363, "BLZ": 484.375, "BEN": 666.667, "BTN": 24.444, "BOL": 319.432, "BIH": 516.626, "BWA": 794.521, "BRA": 102.411, "BRN": 658.849, "BGR": 399.565, "BFA": 611.429, "BDI": 250, "CPV": 600, "KHM": 399.31, "CMR": 278.261, "CAN": 125.55, "CYM": 684.932, "CAF": 0, "TCD": 677.419, "CHL": 333.173, "CHN": 530.214, "COL": 169.309, "COM": 714.286, "COG": 398.01, "COD": 25.362, "COK": 400, "CRI": 37.213, "CIV": 390.71, "HRV": 246.459, "CUB": 574.684, "CYP": 589.354, "CZE": 415.345, "DNK": 180.709, "DJI": 666.667, "DMA": 529.412, "DOM": 540.387, "ECU": 169.384, "EGY": 485.367, "SLV": 194.226, "GNQ": 492.958, "ERI": 688.889, "EST": 464.029, "SWZ": 189.189, "ETH": 25.187, "EU": 277.35, "EUROPE": 298.01, "FLK": 500, "FRO": 428.571, "FJI": 292.035, "FIN": 130.977, "FRA": 84.817, "GUF": 254.717, "PYF": 471.429, "G20": 440.39, "G7": 341.23, "GAB": 397.38, "GMB": 700, "GEO": 134.831, "DEU": 385.467, "GHA": 362.942, "GRC": 343.822, "GRL": 133.333, "GRD": 714.286, "GLP": 611.765, "GUM": 670.33, "GTM": 313.019, "GIN": 208.633, "GNB": 750, "GUY": 634.146, "HTI": 606.061, "HND": 374.269, "HKG": 684.823, "HUN": 222.973, "ISL": 28.557, "IND": 632.406, "IDN": 623.281, "IRN": 493.595, "IRQ": 500.206, "IRL": 345.347, "ISR": 550.493, "ITA": 371.692, "JAM": 524.138, "JPN": 483.039, "JOR": 399.909, "KAZ": 635.574, "KEN": 99.919, "KIR": 666.667, "XKX": 766.605, "KWT": 489.61, "KGZ": 104.354, "LAO": 242.182, "LATIN AMERICA AND CARIBBEAN": 238.27, "LVA": 181.818, "LBN": 545.941, "LSO": 20, "LBR": 304.348, "LBY": 496.565, "LTU": 194.245, "LUX": 168.142, "MAC": 491.525, "MDG": 483.254, "MWI": 133.803, "MYS": 543.737, "MDV": 651.515, "MLI": 466.077, "MLT": 442.478, "MTQ": 698.63, "MRT": 526.596, "MUS": 611.111, "MEX": 421.402, "MIDDLE EAST": 514.89, "MDA": 685.874, "MNG": 749.656, "MNE": 399.381, "MSR": 1e3, "MAR": 610.412, "MOZ": 125.063, "MMR": 348.837, "NAM": 63.694, "NRU": 750, "NPL": 24.51, "NLD": 354.988, "NCL": 610.119, "NZL": 98.639, "NIC": 354.212, "NER": 622.222, "NGA": 368.421, "NORTH AMERICA": 336.4, "PRK": 157.785, "MKD": 529.328, "NOR": 28.818, "OCEANIA": 446.65, "OECD": 338.75, "OMN": 488.272, "PAK": 343.366, "PSE": 465.116, "PAN": 193.923, "PNG": 526.749, "PRY": 25.487, "PER": 254.521, "POL": 634.579, "PRT": 234.029, "PRI": 681.469, "QAT": 489.867, "REU": 519.031, "ROU": 264.121, "RUS": 367.189, "RWA": 294.118, "KNA": 681.818, "LCA": 685.714, "SPM": 800, "VCT": 500, "WSM": 470.588, "STP": 600, "SAU": 571.336, "SEN": 502.674, "SRB": 569.375, "SYC": 615.385, "SLE": 47.619, "SGP": 489.234, "SVK": 140.666, "SVN": 237.378, "SLB": 727.273, "SOM": 634.146, "ZAF": 709.002, "KOR": 435.689, "SSD": 684.211, "ESP": 217.373, "LKA": 479.829, "SDN": 242.917, "SUR": 356.436, "SWE": 45.084, "CHE": 45.622, "SYR": 540.573, "TWN": 561.431, "TJK": 84.136, "TZA": 361.077, "THA": 503.07, "PHL": 582.365, "TGO": 507.937, "TON": 625, "TTO": 520.046, "TUN": 469.428, "TUR": 413.628, "TKM": 544.393, "TCA": 703.704, "UGA": 52.273, "UKR": 206.539, "ARE": 461.845, "GBR": 257.379, "USA": 367.768, "URY": 116.168, "UZB": 506.164, "VUT": 571.429, "VEN": 189.446, "VNM": 376.828, "VGB": 714.286, "VIR": 685.714, "WORLD": 435.99, "YEM": 528.409, "ZMB": 84.698, "ZWE": 393.035 };
25
+ const data = { "AFG": 120.48, "AFRICA": 510.26, "ALB": 23.44, "DZA": 498.9, "ASM": 687.5, "AGO": 195.98, "ATG": 657.14, "ARG": 344.31, "ARM": 222.68, "ABW": 591.4, "ASEAN": 505.72, "ASIA": 535.1, "AUS": 501.7, "AUT": 157.52, "AZE": 532.9, "BHS": 698.11, "BHR": 489.77, "BGD": 577.03, "BRB": 644.86, "BLR": 415.64, "BEL": 165.36, "BLZ": 484.38, "BEN": 666.67, "BTN": 24.44, "BOL": 323.87, "BIH": 517.24, "BWA": 794.52, "BRA": 102.09, "BRN": 658.85, "BGR": 399.57, "BFA": 611.43, "BDI": 250, "CPV": 600, "KHM": 400.46, "CMR": 278.26, "CAN": 125.84, "CYM": 684.93, "CAF": 0, "TCD": 677.42, "CHL": 332.61, "CHN": 533.98, "COL": 168.95, "COM": 714.29, "COG": 395.52, "COD": 25.36, "COK": 400, "CRI": 37.21, "CIV": 410.75, "HRV": 246.46, "CUB": 602.03, "CYP": 589.35, "CZE": 415.35, "DNK": 180.71, "DJI": 666.67, "DMA": 529.41, "DOM": 550.88, "ECU": 188.71, "EGY": 469.63, "SLV": 194.23, "GNQ": 492.96, "ERI": 688.89, "EST": 464.03, "SWZ": 189.19, "ETH": 25.19, "EU": 277.22, "EUROPE": 296.96, "FLK": 500, "FRO": 428.57, "FJI": 289.47, "FIN": 130.98, "FRA": 84.82, "GUF": 254.72, "PYF": 471.43, "G20": 442.38, "G7": 343.92, "GAB": 397.38, "GMB": 700, "GEO": 134.83, "DEU": 384.83, "GHA": 361.2, "GRC": 343.82, "GRL": 133.33, "GRD": 714.29, "GLP": 611.77, "GUM": 670.33, "GTM": 320.64, "GIN": 208.63, "GNB": 750, "GUY": 642.28, "HTI": 606.06, "HND": 375.1, "HKG": 683.97, "HUN": 222.97, "ISL": 28.56, "IND": 633.4, "IDN": 619.02, "IRN": 487.86, "IRQ": 498.87, "IRL": 346.33, "ISR": 548.03, "ITA": 371.69, "JAM": 519.54, "JPN": 494.86, "JOR": 399.91, "KAZ": 635.57, "KEN": 100.57, "KIR": 666.67, "XKX": 768.73, "KWT": 489.65, "KGZ": 104.43, "LAO": 242.18, "LATIN AMERICA AND CARIBBEAN": 241.91, "LVA": 181.82, "LBN": 594.75, "LSO": 20, "LBR": 304.35, "LBY": 550.42, "LTU": 194.25, "LUX": 168.14, "MAC": 491.53, "MDG": 483.25, "MWI": 133.8, "MYS": 543.87, "MDV": 651.52, "MLI": 466.08, "MLT": 495, "MTQ": 698.63, "MRT": 526.6, "MUS": 611.11, "MEX": 423.81, "MIDDLE EAST": 512.24, "MDA": 678.44, "MNG": 749.66, "MNE": 399.38, "MSR": 1e3, "MAR": 610.41, "MOZ": 126.63, "MMR": 344.37, "NAM": 63.69, "NRU": 750, "NPL": 24.51, "NLD": 355.78, "NCL": 610.12, "NZL": 97.73, "NIC": 354.21, "NER": 622.22, "NGA": 368.22, "NORTH AMERICA": 336.01, "PRK": 157.79, "MKD": 529.33, "NOR": 28.82, "OCEANIA": 449.43, "OECD": 341.08, "OMN": 488.27, "PAK": 344.16, "PSE": 465.12, "PAN": 192.14, "PNG": 526.75, "PRY": 25.49, "PER": 256.51, "POL": 634.58, "PRT": 234.03, "PRI": 681.47, "QAT": 489.68, "REU": 519.03, "ROU": 264.12, "RUS": 363.68, "RWA": 294.12, "KNA": 681.82, "LCA": 685.71, "SPM": 800, "VCT": 500, "WSM": 470.59, "STP": 600, "SAU": 557.78, "SEN": 523.13, "SRB": 569.38, "SYC": 615.39, "SLE": 47.62, "SGP": 488.78, "SVK": 140.67, "SVN": 237.38, "SLB": 727.27, "SOM": 634.15, "ZAF": 708.19, "KOR": 437.6, "SSD": 684.21, "ESP": 217.37, "LKA": 463, "SDN": 264.01, "SUR": 356.44, "SWE": 45.08, "CHE": 45.62, "SYR": 541.17, "TWN": 561.02, "TJK": 83.63, "TZA": 366.75, "THA": 501.57, "PHL": 582.05, "TGO": 460.32, "TON": 625, "TTO": 491.41, "TUN": 469.43, "TUR": 413.63, "TKM": 490.19, "TCA": 703.7, "UGA": 52.27, "UKR": 187.06, "ARE": 407.98, "GBR": 261.24, "USA": 367.26, "URY": 114.81, "UZB": 505.41, "VUT": 571.43, "VEN": 212.48, "VNM": 386.49, "VGB": 714.29, "VIR": 685.71, "WORLD": 437.26, "YEM": 543.91, "ZMB": 84.7, "ZWE": 392.28 };
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": ["const data = {\"AFG\":120.482,\"AFRICA\":483.78,\"ALB\":23.438,\"DZA\":488.393,\"ASM\":687.5,\"AGO\":168.594,\"ATG\":657.143,\"ARG\":337.533,\"ARM\":222.678,\"ABW\":591.398,\"ASIA\":531.78,\"AUS\":503.179,\"AUT\":157.52,\"AZE\":532.902,\"BHS\":698.113,\"BHR\":489.924,\"BGD\":581.485,\"BRB\":644.86,\"BLR\":415.774,\"BEL\":165.363,\"BLZ\":484.375,\"BEN\":666.667,\"BTN\":24.444,\"BOL\":319.432,\"BIH\":516.626,\"BWA\":794.521,\"BRA\":102.411,\"BRN\":658.849,\"BGR\":399.565,\"BFA\":611.429,\"BDI\":250,\"CPV\":600,\"KHM\":399.31,\"CMR\":278.261,\"CAN\":125.55,\"CYM\":684.932,\"CAF\":0,\"TCD\":677.419,\"CHL\":333.173,\"CHN\":530.214,\"COL\":169.309,\"COM\":714.286,\"COG\":398.01,\"COD\":25.362,\"COK\":400,\"CRI\":37.213,\"CIV\":390.71,\"HRV\":246.459,\"CUB\":574.684,\"CYP\":589.354,\"CZE\":415.345,\"DNK\":180.709,\"DJI\":666.667,\"DMA\":529.412,\"DOM\":540.387,\"ECU\":169.384,\"EGY\":485.367,\"SLV\":194.226,\"GNQ\":492.958,\"ERI\":688.889,\"EST\":464.029,\"SWZ\":189.189,\"ETH\":25.187,\"EU\":277.35,\"EUROPE\":298.01,\"FLK\":500,\"FRO\":428.571,\"FJI\":292.035,\"FIN\":130.977,\"FRA\":84.817,\"GUF\":254.717,\"PYF\":471.429,\"G20\":440.39,\"G7\":341.23,\"GAB\":397.38,\"GMB\":700,\"GEO\":134.831,\"DEU\":385.467,\"GHA\":362.942,\"GRC\":343.822,\"GRL\":133.333,\"GRD\":714.286,\"GLP\":611.765,\"GUM\":670.33,\"GTM\":313.019,\"GIN\":208.633,\"GNB\":750,\"GUY\":634.146,\"HTI\":606.061,\"HND\":374.269,\"HKG\":684.823,\"HUN\":222.973,\"ISL\":28.557,\"IND\":632.406,\"IDN\":623.281,\"IRN\":493.595,\"IRQ\":500.206,\"IRL\":345.347,\"ISR\":550.493,\"ITA\":371.692,\"JAM\":524.138,\"JPN\":483.039,\"JOR\":399.909,\"KAZ\":635.574,\"KEN\":99.919,\"KIR\":666.667,\"XKX\":766.605,\"KWT\":489.61,\"KGZ\":104.354,\"LAO\":242.182,\"LATIN AMERICA AND CARIBBEAN\":238.27,\"LVA\":181.818,\"LBN\":545.941,\"LSO\":20,\"LBR\":304.348,\"LBY\":496.565,\"LTU\":194.245,\"LUX\":168.142,\"MAC\":491.525,\"MDG\":483.254,\"MWI\":133.803,\"MYS\":543.737,\"MDV\":651.515,\"MLI\":466.077,\"MLT\":442.478,\"MTQ\":698.63,\"MRT\":526.596,\"MUS\":611.111,\"MEX\":421.402,\"MIDDLE EAST\":514.89,\"MDA\":685.874,\"MNG\":749.656,\"MNE\":399.381,\"MSR\":1000,\"MAR\":610.412,\"MOZ\":125.063,\"MMR\":348.837,\"NAM\":63.694,\"NRU\":750,\"NPL\":24.51,\"NLD\":354.988,\"NCL\":610.119,\"NZL\":98.639,\"NIC\":354.212,\"NER\":622.222,\"NGA\":368.421,\"NORTH AMERICA\":336.4,\"PRK\":157.785,\"MKD\":529.328,\"NOR\":28.818,\"OCEANIA\":446.65,\"OECD\":338.75,\"OMN\":488.272,\"PAK\":343.366,\"PSE\":465.116,\"PAN\":193.923,\"PNG\":526.749,\"PRY\":25.487,\"PER\":254.521,\"POL\":634.579,\"PRT\":234.029,\"PRI\":681.469,\"QAT\":489.867,\"REU\":519.031,\"ROU\":264.121,\"RUS\":367.189,\"RWA\":294.118,\"KNA\":681.818,\"LCA\":685.714,\"SPM\":800,\"VCT\":500,\"WSM\":470.588,\"STP\":600,\"SAU\":571.336,\"SEN\":502.674,\"SRB\":569.375,\"SYC\":615.385,\"SLE\":47.619,\"SGP\":489.234,\"SVK\":140.666,\"SVN\":237.378,\"SLB\":727.273,\"SOM\":634.146,\"ZAF\":709.002,\"KOR\":435.689,\"SSD\":684.211,\"ESP\":217.373,\"LKA\":479.829,\"SDN\":242.917,\"SUR\":356.436,\"SWE\":45.084,\"CHE\":45.622,\"SYR\":540.573,\"TWN\":561.431,\"TJK\":84.136,\"TZA\":361.077,\"THA\":503.07,\"PHL\":582.365,\"TGO\":507.937,\"TON\":625,\"TTO\":520.046,\"TUN\":469.428,\"TUR\":413.628,\"TKM\":544.393,\"TCA\":703.704,\"UGA\":52.273,\"UKR\":206.539,\"ARE\":461.845,\"GBR\":257.379,\"USA\":367.768,\"URY\":116.168,\"UZB\":506.164,\"VUT\":571.429,\"VEN\":189.446,\"VNM\":376.828,\"VGB\":714.286,\"VIR\":685.714,\"WORLD\":435.99,\"YEM\":528.409,\"ZMB\":84.698,\"ZWE\":393.035}; const type = \"average\"; export { data, type }; export default { data, type };"],
5
- "mappings": "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",
4
+ "sourcesContent": ["const data = {\"AFG\":120.48,\"AFRICA\":510.26,\"ALB\":23.44,\"DZA\":498.9,\"ASM\":687.5,\"AGO\":195.98,\"ATG\":657.14,\"ARG\":344.31,\"ARM\":222.68,\"ABW\":591.4,\"ASEAN\":505.72,\"ASIA\":535.1,\"AUS\":501.7,\"AUT\":157.52,\"AZE\":532.9,\"BHS\":698.11,\"BHR\":489.77,\"BGD\":577.03,\"BRB\":644.86,\"BLR\":415.64,\"BEL\":165.36,\"BLZ\":484.38,\"BEN\":666.67,\"BTN\":24.44,\"BOL\":323.87,\"BIH\":517.24,\"BWA\":794.52,\"BRA\":102.09,\"BRN\":658.85,\"BGR\":399.57,\"BFA\":611.43,\"BDI\":250,\"CPV\":600,\"KHM\":400.46,\"CMR\":278.26,\"CAN\":125.84,\"CYM\":684.93,\"CAF\":0,\"TCD\":677.42,\"CHL\":332.61,\"CHN\":533.98,\"COL\":168.95,\"COM\":714.29,\"COG\":395.52,\"COD\":25.36,\"COK\":400,\"CRI\":37.21,\"CIV\":410.75,\"HRV\":246.46,\"CUB\":602.03,\"CYP\":589.35,\"CZE\":415.35,\"DNK\":180.71,\"DJI\":666.67,\"DMA\":529.41,\"DOM\":550.88,\"ECU\":188.71,\"EGY\":469.63,\"SLV\":194.23,\"GNQ\":492.96,\"ERI\":688.89,\"EST\":464.03,\"SWZ\":189.19,\"ETH\":25.19,\"EU\":277.22,\"EUROPE\":296.96,\"FLK\":500,\"FRO\":428.57,\"FJI\":289.47,\"FIN\":130.98,\"FRA\":84.82,\"GUF\":254.72,\"PYF\":471.43,\"G20\":442.38,\"G7\":343.92,\"GAB\":397.38,\"GMB\":700,\"GEO\":134.83,\"DEU\":384.83,\"GHA\":361.2,\"GRC\":343.82,\"GRL\":133.33,\"GRD\":714.29,\"GLP\":611.77,\"GUM\":670.33,\"GTM\":320.64,\"GIN\":208.63,\"GNB\":750,\"GUY\":642.28,\"HTI\":606.06,\"HND\":375.1,\"HKG\":683.97,\"HUN\":222.97,\"ISL\":28.56,\"IND\":633.4,\"IDN\":619.02,\"IRN\":487.86,\"IRQ\":498.87,\"IRL\":346.33,\"ISR\":548.03,\"ITA\":371.69,\"JAM\":519.54,\"JPN\":494.86,\"JOR\":399.91,\"KAZ\":635.57,\"KEN\":100.57,\"KIR\":666.67,\"XKX\":768.73,\"KWT\":489.65,\"KGZ\":104.43,\"LAO\":242.18,\"LATIN AMERICA AND CARIBBEAN\":241.91,\"LVA\":181.82,\"LBN\":594.75,\"LSO\":20,\"LBR\":304.35,\"LBY\":550.42,\"LTU\":194.25,\"LUX\":168.14,\"MAC\":491.53,\"MDG\":483.25,\"MWI\":133.8,\"MYS\":543.87,\"MDV\":651.52,\"MLI\":466.08,\"MLT\":495,\"MTQ\":698.63,\"MRT\":526.6,\"MUS\":611.11,\"MEX\":423.81,\"MIDDLE EAST\":512.24,\"MDA\":678.44,\"MNG\":749.66,\"MNE\":399.38,\"MSR\":1000,\"MAR\":610.41,\"MOZ\":126.63,\"MMR\":344.37,\"NAM\":63.69,\"NRU\":750,\"NPL\":24.51,\"NLD\":355.78,\"NCL\":610.12,\"NZL\":97.73,\"NIC\":354.21,\"NER\":622.22,\"NGA\":368.22,\"NORTH AMERICA\":336.01,\"PRK\":157.79,\"MKD\":529.33,\"NOR\":28.82,\"OCEANIA\":449.43,\"OECD\":341.08,\"OMN\":488.27,\"PAK\":344.16,\"PSE\":465.12,\"PAN\":192.14,\"PNG\":526.75,\"PRY\":25.49,\"PER\":256.51,\"POL\":634.58,\"PRT\":234.03,\"PRI\":681.47,\"QAT\":489.68,\"REU\":519.03,\"ROU\":264.12,\"RUS\":363.68,\"RWA\":294.12,\"KNA\":681.82,\"LCA\":685.71,\"SPM\":800,\"VCT\":500,\"WSM\":470.59,\"STP\":600,\"SAU\":557.78,\"SEN\":523.13,\"SRB\":569.38,\"SYC\":615.39,\"SLE\":47.62,\"SGP\":488.78,\"SVK\":140.67,\"SVN\":237.38,\"SLB\":727.27,\"SOM\":634.15,\"ZAF\":708.19,\"KOR\":437.6,\"SSD\":684.21,\"ESP\":217.37,\"LKA\":463,\"SDN\":264.01,\"SUR\":356.44,\"SWE\":45.08,\"CHE\":45.62,\"SYR\":541.17,\"TWN\":561.02,\"TJK\":83.63,\"TZA\":366.75,\"THA\":501.57,\"PHL\":582.05,\"TGO\":460.32,\"TON\":625,\"TTO\":491.41,\"TUN\":469.43,\"TUR\":413.63,\"TKM\":490.19,\"TCA\":703.7,\"UGA\":52.27,\"UKR\":187.06,\"ARE\":407.98,\"GBR\":261.24,\"USA\":367.26,\"URY\":114.81,\"UZB\":505.41,\"VUT\":571.43,\"VEN\":212.48,\"VNM\":386.49,\"VGB\":714.29,\"VIR\":685.71,\"WORLD\":437.26,\"YEM\":543.91,\"ZMB\":84.7,\"ZWE\":392.28}; const type = \"average\"; export { data, type }; export default { data, type };"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/dist/esm/co2.js CHANGED
@@ -17,23 +17,15 @@ class CO2 {
17
17
  throw new Error(`"${options.model}" is not a valid model. Please use "1byte" for the OneByte model, and "swd" for the Sustainable Web Design model.
18
18
  See https://developers.thegreenwebfoundation.org/co2js/models/ to learn more about the models available in CO2.js.`);
19
19
  }
20
- if ((options == null ? void 0 : options.results) === "segment") {
21
- this.model.results = {
22
- segment: true
23
- };
24
- } else {
25
- this.model.results = {
26
- segment: false
27
- };
28
- }
20
+ this._segment = (options == null ? void 0 : options.results) === "segment";
29
21
  }
30
22
  perByte(bytes, green = false) {
31
- return this.model.perByte(bytes, green, this.model.results.segment);
23
+ return this.model.perByte(bytes, green, this._segment);
32
24
  }
33
25
  perVisit(bytes, green = false) {
34
26
  var _a;
35
27
  if ((_a = this.model) == null ? void 0 : _a.perVisit) {
36
- return this.model.perVisit(bytes, green, this.model.results.segment);
28
+ return this.model.perVisit(bytes, green, this._segment);
37
29
  } else {
38
30
  throw new Error(`The perVisit() method is not supported in the model you are using. Try using perByte() instead.
39
31
  See https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more about the methods available in CO2.js.`);
@@ -46,7 +38,7 @@ See https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more ab
46
38
  adjustments = parseOptions(options);
47
39
  }
48
40
  return {
49
- co2: this.model.perByte(bytes, green, this.model.results.segment, adjustments),
41
+ co2: this.model.perByte(bytes, green, this._segment, adjustments),
50
42
  green,
51
43
  variables: {
52
44
  description: "Below are the variables used to calculate this CO2 estimate.",
@@ -69,7 +61,7 @@ See https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more ab
69
61
  adjustments = parseOptions(options);
70
62
  }
71
63
  return {
72
- co2: this.model.perVisit(bytes, green, this.model.results.segment, adjustments),
64
+ co2: this.model.perVisit(bytes, green, this._segment, adjustments),
73
65
  green,
74
66
  variables: {
75
67
  description: "Below are the variables used to calculate this CO2 estimate.",
@@ -1,4 +1,4 @@
1
- const data = { "AFG": 120.482, "AFRICA": 483.78, "ALB": 23.438, "DZA": 488.393, "ASM": 687.5, "AGO": 168.594, "ATG": 657.143, "ARG": 337.533, "ARM": 222.678, "ABW": 591.398, "ASIA": 531.78, "AUS": 503.179, "AUT": 157.52, "AZE": 532.902, "BHS": 698.113, "BHR": 489.924, "BGD": 581.485, "BRB": 644.86, "BLR": 415.774, "BEL": 165.363, "BLZ": 484.375, "BEN": 666.667, "BTN": 24.444, "BOL": 319.432, "BIH": 516.626, "BWA": 794.521, "BRA": 102.411, "BRN": 658.849, "BGR": 399.565, "BFA": 611.429, "BDI": 250, "CPV": 600, "KHM": 399.31, "CMR": 278.261, "CAN": 125.55, "CYM": 684.932, "CAF": 0, "TCD": 677.419, "CHL": 333.173, "CHN": 530.214, "COL": 169.309, "COM": 714.286, "COG": 398.01, "COD": 25.362, "COK": 400, "CRI": 37.213, "CIV": 390.71, "HRV": 246.459, "CUB": 574.684, "CYP": 589.354, "CZE": 415.345, "DNK": 180.709, "DJI": 666.667, "DMA": 529.412, "DOM": 540.387, "ECU": 169.384, "EGY": 485.367, "SLV": 194.226, "GNQ": 492.958, "ERI": 688.889, "EST": 464.029, "SWZ": 189.189, "ETH": 25.187, "EU": 277.35, "EUROPE": 298.01, "FLK": 500, "FRO": 428.571, "FJI": 292.035, "FIN": 130.977, "FRA": 84.817, "GUF": 254.717, "PYF": 471.429, "G20": 440.39, "G7": 341.23, "GAB": 397.38, "GMB": 700, "GEO": 134.831, "DEU": 385.467, "GHA": 362.942, "GRC": 343.822, "GRL": 133.333, "GRD": 714.286, "GLP": 611.765, "GUM": 670.33, "GTM": 313.019, "GIN": 208.633, "GNB": 750, "GUY": 634.146, "HTI": 606.061, "HND": 374.269, "HKG": 684.823, "HUN": 222.973, "ISL": 28.557, "IND": 632.406, "IDN": 623.281, "IRN": 493.595, "IRQ": 500.206, "IRL": 345.347, "ISR": 550.493, "ITA": 371.692, "JAM": 524.138, "JPN": 483.039, "JOR": 399.909, "KAZ": 635.574, "KEN": 99.919, "KIR": 666.667, "XKX": 766.605, "KWT": 489.61, "KGZ": 104.354, "LAO": 242.182, "LATIN AMERICA AND CARIBBEAN": 238.27, "LVA": 181.818, "LBN": 545.941, "LSO": 20, "LBR": 304.348, "LBY": 496.565, "LTU": 194.245, "LUX": 168.142, "MAC": 491.525, "MDG": 483.254, "MWI": 133.803, "MYS": 543.737, "MDV": 651.515, "MLI": 466.077, "MLT": 442.478, "MTQ": 698.63, "MRT": 526.596, "MUS": 611.111, "MEX": 421.402, "MIDDLE EAST": 514.89, "MDA": 685.874, "MNG": 749.656, "MNE": 399.381, "MSR": 1e3, "MAR": 610.412, "MOZ": 125.063, "MMR": 348.837, "NAM": 63.694, "NRU": 750, "NPL": 24.51, "NLD": 354.988, "NCL": 610.119, "NZL": 98.639, "NIC": 354.212, "NER": 622.222, "NGA": 368.421, "NORTH AMERICA": 336.4, "PRK": 157.785, "MKD": 529.328, "NOR": 28.818, "OCEANIA": 446.65, "OECD": 338.75, "OMN": 488.272, "PAK": 343.366, "PSE": 465.116, "PAN": 193.923, "PNG": 526.749, "PRY": 25.487, "PER": 254.521, "POL": 634.579, "PRT": 234.029, "PRI": 681.469, "QAT": 489.867, "REU": 519.031, "ROU": 264.121, "RUS": 367.189, "RWA": 294.118, "KNA": 681.818, "LCA": 685.714, "SPM": 800, "VCT": 500, "WSM": 470.588, "STP": 600, "SAU": 571.336, "SEN": 502.674, "SRB": 569.375, "SYC": 615.385, "SLE": 47.619, "SGP": 489.234, "SVK": 140.666, "SVN": 237.378, "SLB": 727.273, "SOM": 634.146, "ZAF": 709.002, "KOR": 435.689, "SSD": 684.211, "ESP": 217.373, "LKA": 479.829, "SDN": 242.917, "SUR": 356.436, "SWE": 45.084, "CHE": 45.622, "SYR": 540.573, "TWN": 561.431, "TJK": 84.136, "TZA": 361.077, "THA": 503.07, "PHL": 582.365, "TGO": 507.937, "TON": 625, "TTO": 520.046, "TUN": 469.428, "TUR": 413.628, "TKM": 544.393, "TCA": 703.704, "UGA": 52.273, "UKR": 206.539, "ARE": 461.845, "GBR": 257.379, "USA": 367.768, "URY": 116.168, "UZB": 506.164, "VUT": 571.429, "VEN": 189.446, "VNM": 376.828, "VGB": 714.286, "VIR": 685.714, "WORLD": 435.99, "YEM": 528.409, "ZMB": 84.698, "ZWE": 393.035 };
1
+ const data = { "AFG": 120.48, "AFRICA": 510.26, "ALB": 23.44, "DZA": 498.9, "ASM": 687.5, "AGO": 195.98, "ATG": 657.14, "ARG": 344.31, "ARM": 222.68, "ABW": 591.4, "ASEAN": 505.72, "ASIA": 535.1, "AUS": 501.7, "AUT": 157.52, "AZE": 532.9, "BHS": 698.11, "BHR": 489.77, "BGD": 577.03, "BRB": 644.86, "BLR": 415.64, "BEL": 165.36, "BLZ": 484.38, "BEN": 666.67, "BTN": 24.44, "BOL": 323.87, "BIH": 517.24, "BWA": 794.52, "BRA": 102.09, "BRN": 658.85, "BGR": 399.57, "BFA": 611.43, "BDI": 250, "CPV": 600, "KHM": 400.46, "CMR": 278.26, "CAN": 125.84, "CYM": 684.93, "CAF": 0, "TCD": 677.42, "CHL": 332.61, "CHN": 533.98, "COL": 168.95, "COM": 714.29, "COG": 395.52, "COD": 25.36, "COK": 400, "CRI": 37.21, "CIV": 410.75, "HRV": 246.46, "CUB": 602.03, "CYP": 589.35, "CZE": 415.35, "DNK": 180.71, "DJI": 666.67, "DMA": 529.41, "DOM": 550.88, "ECU": 188.71, "EGY": 469.63, "SLV": 194.23, "GNQ": 492.96, "ERI": 688.89, "EST": 464.03, "SWZ": 189.19, "ETH": 25.19, "EU": 277.22, "EUROPE": 296.96, "FLK": 500, "FRO": 428.57, "FJI": 289.47, "FIN": 130.98, "FRA": 84.82, "GUF": 254.72, "PYF": 471.43, "G20": 442.38, "G7": 343.92, "GAB": 397.38, "GMB": 700, "GEO": 134.83, "DEU": 384.83, "GHA": 361.2, "GRC": 343.82, "GRL": 133.33, "GRD": 714.29, "GLP": 611.77, "GUM": 670.33, "GTM": 320.64, "GIN": 208.63, "GNB": 750, "GUY": 642.28, "HTI": 606.06, "HND": 375.1, "HKG": 683.97, "HUN": 222.97, "ISL": 28.56, "IND": 633.4, "IDN": 619.02, "IRN": 487.86, "IRQ": 498.87, "IRL": 346.33, "ISR": 548.03, "ITA": 371.69, "JAM": 519.54, "JPN": 494.86, "JOR": 399.91, "KAZ": 635.57, "KEN": 100.57, "KIR": 666.67, "XKX": 768.73, "KWT": 489.65, "KGZ": 104.43, "LAO": 242.18, "LATIN AMERICA AND CARIBBEAN": 241.91, "LVA": 181.82, "LBN": 594.75, "LSO": 20, "LBR": 304.35, "LBY": 550.42, "LTU": 194.25, "LUX": 168.14, "MAC": 491.53, "MDG": 483.25, "MWI": 133.8, "MYS": 543.87, "MDV": 651.52, "MLI": 466.08, "MLT": 495, "MTQ": 698.63, "MRT": 526.6, "MUS": 611.11, "MEX": 423.81, "MIDDLE EAST": 512.24, "MDA": 678.44, "MNG": 749.66, "MNE": 399.38, "MSR": 1e3, "MAR": 610.41, "MOZ": 126.63, "MMR": 344.37, "NAM": 63.69, "NRU": 750, "NPL": 24.51, "NLD": 355.78, "NCL": 610.12, "NZL": 97.73, "NIC": 354.21, "NER": 622.22, "NGA": 368.22, "NORTH AMERICA": 336.01, "PRK": 157.79, "MKD": 529.33, "NOR": 28.82, "OCEANIA": 449.43, "OECD": 341.08, "OMN": 488.27, "PAK": 344.16, "PSE": 465.12, "PAN": 192.14, "PNG": 526.75, "PRY": 25.49, "PER": 256.51, "POL": 634.58, "PRT": 234.03, "PRI": 681.47, "QAT": 489.68, "REU": 519.03, "ROU": 264.12, "RUS": 363.68, "RWA": 294.12, "KNA": 681.82, "LCA": 685.71, "SPM": 800, "VCT": 500, "WSM": 470.59, "STP": 600, "SAU": 557.78, "SEN": 523.13, "SRB": 569.38, "SYC": 615.39, "SLE": 47.62, "SGP": 488.78, "SVK": 140.67, "SVN": 237.38, "SLB": 727.27, "SOM": 634.15, "ZAF": 708.19, "KOR": 437.6, "SSD": 684.21, "ESP": 217.37, "LKA": 463, "SDN": 264.01, "SUR": 356.44, "SWE": 45.08, "CHE": 45.62, "SYR": 541.17, "TWN": 561.02, "TJK": 83.63, "TZA": 366.75, "THA": 501.57, "PHL": 582.05, "TGO": 460.32, "TON": 625, "TTO": 491.41, "TUN": 469.43, "TUR": 413.63, "TKM": 490.19, "TCA": 703.7, "UGA": 52.27, "UKR": 187.06, "ARE": 407.98, "GBR": 261.24, "USA": 367.26, "URY": 114.81, "UZB": 505.41, "VUT": 571.43, "VEN": 212.48, "VNM": 386.49, "VGB": 714.29, "VIR": 685.71, "WORLD": 437.26, "YEM": 543.91, "ZMB": 84.7, "ZWE": 392.28 };
2
2
  const type = "average";
3
3
  var average_intensities_min_default = { data, type };
4
4
  export {
@@ -1,20 +1,20 @@
1
- var co2=(()=>{var I=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var F=(o,e)=>{for(var r in e)I(o,r,{get:e[r],enumerable:!0})},W=(o,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of K(e))!w.call(o,t)&&t!==r&&I(o,t,{get:()=>e[t],enumerable:!(n=U(e,t))||n.enumerable});return o};var Y=o=>W(I({},"__esModule",{value:!0}),o);var ee={};F(ee,{averageIntensity:()=>E,co2:()=>h,default:()=>X,hosting:()=>b,marginalIntensity:()=>M});var m=4883333333333333e-25;var T=class{constructor(e){this.options=e,this.KWH_PER_BYTE_FOR_NETWORK=m}perByte(e,r){if(e<1)return 0;if(r){let t=e*72e-12*0,s=e*m*475;return t+s}let n=72e-12+m;return e*n*519}};var D=T;var A={GIGABYTE:1e9};var H={AFG:120.482,AFRICA:483.78,ALB:23.438,DZA:488.393,ASM:687.5,AGO:168.594,ATG:657.143,ARG:337.533,ARM:222.678,ABW:591.398,ASIA:531.78,AUS:503.179,AUT:157.52,AZE:532.902,BHS:698.113,BHR:489.924,BGD:581.485,BRB:644.86,BLR:415.774,BEL:165.363,BLZ:484.375,BEN:666.667,BTN:24.444,BOL:319.432,BIH:516.626,BWA:794.521,BRA:102.411,BRN:658.849,BGR:399.565,BFA:611.429,BDI:250,CPV:600,KHM:399.31,CMR:278.261,CAN:125.55,CYM:684.932,CAF:0,TCD:677.419,CHL:333.173,CHN:530.214,COL:169.309,COM:714.286,COG:398.01,COD:25.362,COK:400,CRI:37.213,CIV:390.71,HRV:246.459,CUB:574.684,CYP:589.354,CZE:415.345,DNK:180.709,DJI:666.667,DMA:529.412,DOM:540.387,ECU:169.384,EGY:485.367,SLV:194.226,GNQ:492.958,ERI:688.889,EST:464.029,SWZ:189.189,ETH:25.187,EU:277.35,EUROPE:298.01,FLK:500,FRO:428.571,FJI:292.035,FIN:130.977,FRA:84.817,GUF:254.717,PYF:471.429,G20:440.39,G7:341.23,GAB:397.38,GMB:700,GEO:134.831,DEU:385.467,GHA:362.942,GRC:343.822,GRL:133.333,GRD:714.286,GLP:611.765,GUM:670.33,GTM:313.019,GIN:208.633,GNB:750,GUY:634.146,HTI:606.061,HND:374.269,HKG:684.823,HUN:222.973,ISL:28.557,IND:632.406,IDN:623.281,IRN:493.595,IRQ:500.206,IRL:345.347,ISR:550.493,ITA:371.692,JAM:524.138,JPN:483.039,JOR:399.909,KAZ:635.574,KEN:99.919,KIR:666.667,XKX:766.605,KWT:489.61,KGZ:104.354,LAO:242.182,"LATIN AMERICA AND CARIBBEAN":238.27,LVA:181.818,LBN:545.941,LSO:20,LBR:304.348,LBY:496.565,LTU:194.245,LUX:168.142,MAC:491.525,MDG:483.254,MWI:133.803,MYS:543.737,MDV:651.515,MLI:466.077,MLT:442.478,MTQ:698.63,MRT:526.596,MUS:611.111,MEX:421.402,"MIDDLE EAST":514.89,MDA:685.874,MNG:749.656,MNE:399.381,MSR:1e3,MAR:610.412,MOZ:125.063,MMR:348.837,NAM:63.694,NRU:750,NPL:24.51,NLD:354.988,NCL:610.119,NZL:98.639,NIC:354.212,NER:622.222,NGA:368.421,"NORTH AMERICA":336.4,PRK:157.785,MKD:529.328,NOR:28.818,OCEANIA:446.65,OECD:338.75,OMN:488.272,PAK:343.366,PSE:465.116,PAN:193.923,PNG:526.749,PRY:25.487,PER:254.521,POL:634.579,PRT:234.029,PRI:681.469,QAT:489.867,REU:519.031,ROU:264.121,RUS:367.189,RWA:294.118,KNA:681.818,LCA:685.714,SPM:800,VCT:500,WSM:470.588,STP:600,SAU:571.336,SEN:502.674,SRB:569.375,SYC:615.385,SLE:47.619,SGP:489.234,SVK:140.666,SVN:237.378,SLB:727.273,SOM:634.146,ZAF:709.002,KOR:435.689,SSD:684.211,ESP:217.373,LKA:479.829,SDN:242.917,SUR:356.436,SWE:45.084,CHE:45.622,SYR:540.573,TWN:561.431,TJK:84.136,TZA:361.077,THA:503.07,PHL:582.365,TGO:507.937,TON:625,TTO:520.046,TUN:469.428,TUR:413.628,TKM:544.393,TCA:703.704,UGA:52.273,UKR:206.539,ARE:461.845,GBR:257.379,USA:367.768,URY:116.168,UZB:506.164,VUT:571.429,VEN:189.446,VNM:376.828,VGB:714.286,VIR:685.714,WORLD:435.99,YEM:528.409,ZMB:84.698,ZWE:393.035},k="average";var E={data:H,type:k};var V=.81,C=.52,p=.14,O=.15,S=.19,a=E.data.WORLD,f=50,y=.75,g=.25,N=.02;var R=o=>parseFloat(o.toFixed(2));function B(o){if(typeof o!="object")throw new Error("Options must be an object");let e={};if(o?.gridIntensity){e.gridIntensity={};let{device:r,dataCenter:n,network:t}=o.gridIntensity;r&&(typeof r=="object"?(E.data[r.country?.toUpperCase()]||(console.warn(`"${r.country}" is not a valid country. Please use a valid 3 digit ISO 3166 country code.
1
+ var co2=(()=>{var I=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var F=(o,e)=>{for(var r in e)I(o,r,{get:e[r],enumerable:!0})},W=(o,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of K(e))!w.call(o,t)&&t!==r&&I(o,t,{get:()=>e[t],enumerable:!(n=U(e,t))||n.enumerable});return o};var Y=o=>W(I({},"__esModule",{value:!0}),o);var ee={};F(ee,{averageIntensity:()=>E,co2:()=>h,default:()=>X,hosting:()=>b,marginalIntensity:()=>M});var A=4883333333333333e-25;var T=class{constructor(e){this.options=e,this.KWH_PER_BYTE_FOR_NETWORK=A}perByte(e,r){if(e<1)return 0;if(r){let t=e*72e-12*0,i=e*A*475;return t+i}let n=72e-12+A;return e*n*519}};var D=T;var m={GIGABYTE:1e9};var H={AFG:120.48,AFRICA:510.26,ALB:23.44,DZA:498.9,ASM:687.5,AGO:195.98,ATG:657.14,ARG:344.31,ARM:222.68,ABW:591.4,ASEAN:505.72,ASIA:535.1,AUS:501.7,AUT:157.52,AZE:532.9,BHS:698.11,BHR:489.77,BGD:577.03,BRB:644.86,BLR:415.64,BEL:165.36,BLZ:484.38,BEN:666.67,BTN:24.44,BOL:323.87,BIH:517.24,BWA:794.52,BRA:102.09,BRN:658.85,BGR:399.57,BFA:611.43,BDI:250,CPV:600,KHM:400.46,CMR:278.26,CAN:125.84,CYM:684.93,CAF:0,TCD:677.42,CHL:332.61,CHN:533.98,COL:168.95,COM:714.29,COG:395.52,COD:25.36,COK:400,CRI:37.21,CIV:410.75,HRV:246.46,CUB:602.03,CYP:589.35,CZE:415.35,DNK:180.71,DJI:666.67,DMA:529.41,DOM:550.88,ECU:188.71,EGY:469.63,SLV:194.23,GNQ:492.96,ERI:688.89,EST:464.03,SWZ:189.19,ETH:25.19,EU:277.22,EUROPE:296.96,FLK:500,FRO:428.57,FJI:289.47,FIN:130.98,FRA:84.82,GUF:254.72,PYF:471.43,G20:442.38,G7:343.92,GAB:397.38,GMB:700,GEO:134.83,DEU:384.83,GHA:361.2,GRC:343.82,GRL:133.33,GRD:714.29,GLP:611.77,GUM:670.33,GTM:320.64,GIN:208.63,GNB:750,GUY:642.28,HTI:606.06,HND:375.1,HKG:683.97,HUN:222.97,ISL:28.56,IND:633.4,IDN:619.02,IRN:487.86,IRQ:498.87,IRL:346.33,ISR:548.03,ITA:371.69,JAM:519.54,JPN:494.86,JOR:399.91,KAZ:635.57,KEN:100.57,KIR:666.67,XKX:768.73,KWT:489.65,KGZ:104.43,LAO:242.18,"LATIN AMERICA AND CARIBBEAN":241.91,LVA:181.82,LBN:594.75,LSO:20,LBR:304.35,LBY:550.42,LTU:194.25,LUX:168.14,MAC:491.53,MDG:483.25,MWI:133.8,MYS:543.87,MDV:651.52,MLI:466.08,MLT:495,MTQ:698.63,MRT:526.6,MUS:611.11,MEX:423.81,"MIDDLE EAST":512.24,MDA:678.44,MNG:749.66,MNE:399.38,MSR:1e3,MAR:610.41,MOZ:126.63,MMR:344.37,NAM:63.69,NRU:750,NPL:24.51,NLD:355.78,NCL:610.12,NZL:97.73,NIC:354.21,NER:622.22,NGA:368.22,"NORTH AMERICA":336.01,PRK:157.79,MKD:529.33,NOR:28.82,OCEANIA:449.43,OECD:341.08,OMN:488.27,PAK:344.16,PSE:465.12,PAN:192.14,PNG:526.75,PRY:25.49,PER:256.51,POL:634.58,PRT:234.03,PRI:681.47,QAT:489.68,REU:519.03,ROU:264.12,RUS:363.68,RWA:294.12,KNA:681.82,LCA:685.71,SPM:800,VCT:500,WSM:470.59,STP:600,SAU:557.78,SEN:523.13,SRB:569.38,SYC:615.39,SLE:47.62,SGP:488.78,SVK:140.67,SVN:237.38,SLB:727.27,SOM:634.15,ZAF:708.19,KOR:437.6,SSD:684.21,ESP:217.37,LKA:463,SDN:264.01,SUR:356.44,SWE:45.08,CHE:45.62,SYR:541.17,TWN:561.02,TJK:83.63,TZA:366.75,THA:501.57,PHL:582.05,TGO:460.32,TON:625,TTO:491.41,TUN:469.43,TUR:413.63,TKM:490.19,TCA:703.7,UGA:52.27,UKR:187.06,ARE:407.98,GBR:261.24,USA:367.26,URY:114.81,UZB:505.41,VUT:571.43,VEN:212.48,VNM:386.49,VGB:714.29,VIR:685.71,WORLD:437.26,YEM:543.91,ZMB:84.7,ZWE:392.28},k="average";var E={data:H,type:k};var V=.81,C=.52,p=.14,O=.15,S=.19,s=E.data.WORLD,f=50,y=.75,N=.25,g=.02;var R=o=>parseFloat(o.toFixed(2));function B(o){if(typeof o!="object")throw new Error("Options must be an object");let e={};if(o?.gridIntensity){e.gridIntensity={};let{device:r,dataCenter:n,network:t}=o.gridIntensity;r&&(typeof r=="object"?(E.data[r.country?.toUpperCase()]||(console.warn(`"${r.country}" is not a valid country. Please use a valid 3 digit ISO 3166 country code.
2
2
  See https://developers.thegreenwebfoundation.org/co2js/data/ for more information.
3
- Falling back to global average grid intensity.`),e.gridIntensity.device={value:a}),e.gridIntensity.device={country:r.country,value:parseFloat(E.data[r.country?.toUpperCase()])}):typeof r=="number"?e.gridIntensity.device={value:r}:(e.gridIntensity.device={value:a},console.warn(`The device grid intensity must be a number or an object. You passed in a ${typeof r}.
3
+ Falling back to global average grid intensity.`),e.gridIntensity.device={value:s}),e.gridIntensity.device={country:r.country,value:parseFloat(E.data[r.country?.toUpperCase()])}):typeof r=="number"?e.gridIntensity.device={value:r}:(e.gridIntensity.device={value:s},console.warn(`The device grid intensity must be a number or an object. You passed in a ${typeof r}.
4
4
  Falling back to global average grid intensity.`))),n&&(typeof n=="object"?(E.data[n.country?.toUpperCase()]||(console.warn(`"${n.country}" is not a valid country. Please use a valid 3 digit ISO 3166 country code.
5
5
  See https://developers.thegreenwebfoundation.org/co2js/data/ for more information.
6
- Falling back to global average grid intensity.`),e.gridIntensity.dataCenter={value:a}),e.gridIntensity.dataCenter={country:n.country,value:parseFloat(E.data[n.country?.toUpperCase()])}):typeof n=="number"?e.gridIntensity.dataCenter={value:n}:(e.gridIntensity.dataCenter={value:a},console.warn(`The data center grid intensity must be a number or an object. You passed in a ${typeof n}.
6
+ Falling back to global average grid intensity.`),e.gridIntensity.dataCenter={value:s}),e.gridIntensity.dataCenter={country:n.country,value:parseFloat(E.data[n.country?.toUpperCase()])}):typeof n=="number"?e.gridIntensity.dataCenter={value:n}:(e.gridIntensity.dataCenter={value:s},console.warn(`The data center grid intensity must be a number or an object. You passed in a ${typeof n}.
7
7
  Falling back to global average grid intensity.`))),t&&(typeof t=="object"?(E.data[t.country?.toUpperCase()]||(console.warn(`"${t.country}" is not a valid country. Please use a valid 3 digit ISO 3166 country code.
8
8
  See https://developers.thegreenwebfoundation.org/co2js/data/ for more information. Falling back to global average grid intensity.
9
- Falling back to global average grid intensity.`),e.gridIntensity.network={value:a}),e.gridIntensity.network={country:t.country,value:parseFloat(E.data[t.country?.toUpperCase()])}):typeof t=="number"?e.gridIntensity.network={value:t}:(e.gridIntensity.network={value:a},console.warn(`The network grid intensity must be a number or an object. You passed in a ${typeof t}.
10
- Falling back to global average grid intensity.`)))}return o?.dataReloadRatio&&(typeof o.dataReloadRatio=="number"?o.dataReloadRatio>=0&&o.dataReloadRatio<=1?e.dataReloadRatio=o.dataReloadRatio:(e.dataReloadRatio=N,console.warn(`The dataReloadRatio option must be a number between 0 and 1. You passed in ${o.dataReloadRatio}.
11
- Falling back to default value.`)):(e.dataReloadRatio=N,console.warn(`The dataReloadRatio option must be a number. You passed in a ${typeof o.dataReloadRatio}.
9
+ Falling back to global average grid intensity.`),e.gridIntensity.network={value:s}),e.gridIntensity.network={country:t.country,value:parseFloat(E.data[t.country?.toUpperCase()])}):typeof t=="number"?e.gridIntensity.network={value:t}:(e.gridIntensity.network={value:s},console.warn(`The network grid intensity must be a number or an object. You passed in a ${typeof t}.
10
+ Falling back to global average grid intensity.`)))}return o?.dataReloadRatio&&(typeof o.dataReloadRatio=="number"?o.dataReloadRatio>=0&&o.dataReloadRatio<=1?e.dataReloadRatio=o.dataReloadRatio:(e.dataReloadRatio=g,console.warn(`The dataReloadRatio option must be a number between 0 and 1. You passed in ${o.dataReloadRatio}.
11
+ Falling back to default value.`)):(e.dataReloadRatio=g,console.warn(`The dataReloadRatio option must be a number. You passed in a ${typeof o.dataReloadRatio}.
12
12
  Falling back to default value.`))),o?.firstVisitPercentage&&(typeof o.firstVisitPercentage=="number"?o.firstVisitPercentage>=0&&o.firstVisitPercentage<=1?e.firstVisitPercentage=o.firstVisitPercentage:(e.firstVisitPercentage=y,console.warn(`The firstVisitPercentage option must be a number between 0 and 1. You passed in ${o.firstVisitPercentage}.
13
13
  Falling back to default value.`)):(e.firstVisitPercentage=y,console.warn(`The firstVisitPercentage option must be a number. You passed in a ${typeof o.firstVisitPercentage}.
14
- Falling back to default value.`))),o?.returnVisitPercentage&&(typeof o.returnVisitPercentage=="number"?o.returnVisitPercentage>=0&&o.returnVisitPercentage<=1?e.returnVisitPercentage=o.returnVisitPercentage:(e.returnVisitPercentage=g,console.warn(`The returnVisitPercentage option must be a number between 0 and 1. You passed in ${o.returnVisitPercentage}.
15
- Falling back to default value.`)):(e.returnVisitPercentage=g,console.warn(`The returnVisitPercentage option must be a number. You passed in a ${typeof o.returnVisitPercentage}.
16
- Falling back to default value.`))),e}var P=class{constructor(e){this.options=e}energyPerByteByComponent(e){let n=e/A.GIGABYTE*V;return{consumerDeviceEnergy:n*C,networkEnergy:n*p,productionEnergy:n*S,dataCenterEnergy:n*O}}co2byComponent(e,r=a,n={}){let t=a,s=a,i=a,d=a;if(n?.gridIntensity){let{device:c,network:u,dataCenter:L}=n.gridIntensity;c?.value&&(t=c.value),u?.value&&(s=u.value),L?.value&&(i=L.value)}r===!0&&(i=f);let l={};for(let[c,u]of Object.entries(e))c.startsWith("dataCenterEnergy")?l[c.replace("Energy","CO2")]=u*i:c.startsWith("consumerDeviceEnergy")?l[c.replace("Energy","CO2")]=u*t:c.startsWith("networkEnergy")?l[c.replace("Energy","CO2")]=u*s:l[c.replace("Energy","CO2")]=u*d;return l}perByte(e,r=!1,n=!1,t={}){let s=this.energyPerByteByComponent(e,t);if(typeof r!="boolean")throw new Error(`perByte expects a boolean for the carbon intensity value. Received: ${r}`);let i=this.co2byComponent(s,r,t),l=Object.values(i).reduce((c,u)=>c+u);return n?{...i,total:l}:l}perVisit(e,r=!1,n=!1,t={}){let s=this.energyPerVisitByComponent(e,t);if(typeof r!="boolean")throw new Error(`perVisit expects a boolean for the carbon intensity value. Received: ${r}`);let i=this.co2byComponent(s,r,t),l=Object.values(i).reduce((c,u)=>c+u);return n?{...i,total:l}:l}energyPerByte(e){let r=this.energyPerByteByComponent(e);return Object.values(r).reduce((t,s)=>t+s)}energyPerVisitByComponent(e,r={},n=y,t=g,s=N){r.dataReloadRatio&&(s=r.dataReloadRatio),r.firstVisitPercentage&&(n=r.firstVisitPercentage),r.returnVisitPercentage&&(t=r.returnVisitPercentage);let i=this.energyPerByteByComponent(e),d={},l=Object.values(i);for(let[c,u]of Object.entries(i))d[`${c} - first`]=u*n,d[`${c} - subsequent`]=u*t*s;return d}energyPerVisit(e){let r=0,n=0,t=Object.entries(this.energyPerVisitByComponent(e));for(let[s,i]of t)s.indexOf("first")>0&&(r+=i);for(let[s,i]of t)s.indexOf("subsequent")>0&&(n+=i);return r+n}emissionsPerVisitInGrams(e,r=a){return R(e*r)}annualEnergyInKwh(e,r=1e3){return e*r*12}annualEmissionsInGrams(e,r=1e3){return e*r*12}annualSegmentEnergy(e){return{consumerDeviceEnergy:R(e*C),networkEnergy:R(e*p),dataCenterEnergy:R(e*O),productionEnergy:R(e*S)}}};var G=P;var _=class{constructor(e){if(this.model=new G,e?.model==="1byte")this.model=new D;else if(e?.model==="swd")this.model=new G;else if(e?.model)throw new Error(`"${e.model}" is not a valid model. Please use "1byte" for the OneByte model, and "swd" for the Sustainable Web Design model.
17
- See https://developers.thegreenwebfoundation.org/co2js/models/ to learn more about the models available in CO2.js.`);e?.results==="segment"?this.model.results={segment:!0}:this.model.results={segment:!1}}perByte(e,r=!1){return this.model.perByte(e,r,this.model.results.segment)}perVisit(e,r=!1){if(this.model?.perVisit)return this.model.perVisit(e,r,this.model.results.segment);throw new Error(`The perVisit() method is not supported in the model you are using. Try using perByte() instead.
18
- See https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more about the methods available in CO2.js.`)}perByteTrace(e,r=!1,n={}){let t={};return n&&(t=B(n)),{co2:this.model.perByte(e,r,this.model.results.segment,t),green:r,variables:{description:"Below are the variables used to calculate this CO2 estimate.",bytes:e,gridIntensity:{description:"The grid intensity (grams per kilowatt-hour) used to calculate this CO2 estimate.",network:t?.gridIntensity?.network?.value||a,dataCenter:r?f:t?.gridIntensity?.dataCenter?.value||a,production:a,device:t?.gridIntensity?.device?.value||a}}}}perVisitTrace(e,r=!1,n={}){if(this.model?.perVisit){let t={};return n&&(t=B(n)),{co2:this.model.perVisit(e,r,this.model.results.segment,t),green:r,variables:{description:"Below are the variables used to calculate this CO2 estimate.",bytes:e,gridIntensity:{description:"The grid intensity (grams per kilowatt-hour) used to calculate this CO2 estimate.",network:t?.gridIntensity?.network?.value||a,dataCenter:r?f:t?.gridIntensity?.dataCenter?.value||a,production:a,device:t?.gridIntensity?.device?.value||a},dataReloadRatio:t?.dataReloadRatio||.02,firstVisitPercentage:t?.firstVisitPercentage||.75,returnVisitPercentage:t?.returnVisitPercentage||.25}}}else throw new Error(`The perVisitDetailed() method is not supported in the model you are using. Try using perByte() instead.
19
- See https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more about the methods available in CO2.js.`)}perDomain(e,r){let n=[];for(let t of Object.keys(e.domains)){let s;r&&r.indexOf(t)>-1?s=this.perByte(e.domains[t].transferSize,!0):s=this.perByte(e.domains[t].transferSize),n.push({domain:t,co2:s,transferSize:e.domains[t].transferSize})}return n.sort((t,s)=>s.co2-t.co2),n}perPage(e,r){let n=this.perDomain(e,r),t=0;for(let s of n)t+=s.co2;return t}perContentType(e,r){let n={};for(let s of e.assets){let i=new URL(s.url).domain,d=s.transferSize,l=this.perByte(d,r&&r.indexOf(i)>-1),c=s.type;n[c]||(n[c]={co2:0,transferSize:0}),n[c].co2+=l,n[c].transferSize+=d}let t=[];for(let s of Object.keys(n))t.push({type:s,co2:n[s].co2,transferSize:n[s].transferSize});return t.sort((s,i)=>i.co2-s.co2),t}dirtiestResources(e,r){let n=[];for(let t of e.assets){let s=new URL(t.url).domain,i=t.transferSize,d=this.perByte(i,r&&r.indexOf(s)>-1);n.push({url:t.url,co2:d,transferSize:i})}return n.sort((t,s)=>s.co2-t.co2),n.slice(0,n.length>10?10:n.length)}perParty(e,r){let n=0,t=0,s=e.firstPartyRegEx;for(let i of Object.keys(e.domains))i.match(s)?n+=this.perByte(e.domains[i].transferSize,r&&r.indexOf(i)>-1):t+=this.perByte(e.domains[i].transferSize,r&&r.indexOf(i)>-1);return{firstParty:n,thirdParty:t}}};var h=_;function j(o){return typeof o=="string"?x(o):Z(o)}async function x(o){return(await(await fetch(`https://api.thegreenwebfoundation.org/greencheck/${o}`)).json()).green}async function Z(o){try{let e="https://api.thegreenwebfoundation.org/v2/greencheckmulti",r=JSON.stringify(o),t=await(await fetch(`${e}/${r}`)).json();return $(t)}catch{return[]}}function $(o){return Object.entries(o).filter(([n,t])=>t.green).map(([n,t])=>t.url)}var v={check:j};function z(o){return v.check(o)}var b={check:z};var J={AFG:"414",ALB:"0",DZA:"528",ASM:"753",AND:"188",AGO:"1476",AIA:"753",ATG:"753",ARG:"478",ARM:"390",ABW:"753",AUS:"808",AUT:"242",AZE:"534","AZORES (PORTUGAL)":"753",BHS:"753",BHR:"726",BGD:"528",BRB:"749",BLR:"400",BEL:"252",BLZ:"403",BEN:"745",BMU:"753",BTN:"0",BOL:"604",BES:"753",BIH:"1197",BWA:"1486",BRA:"284",VGB:"753",BRN:"681",BGR:"911",BFA:"753",BDI:"414",KHM:"1046",CMR:"659",CAN:"372",CYM:"753",CPV:"753",CAF:"188",TCD:"753","CHANNEL ISLANDS (U.K)":"753",CHL:"657",CHN:"899",COL:"410",COM:"753",COD:"0",COG:"659",COK:"753",CRI:"108",CIV:"466",HRV:"294",CUB:"559",CUW:"876",CYP:"751",CZE:"902",DNK:"362",DJI:"753",DMA:"753",DOM:"601",ECU:"560",EGY:"554",SLV:"547",GNQ:"632",ERI:"915",EST:"1057",SWZ:"0",ETH:"0",FLK:"753",FRO:"753",FJI:"640",FIN:"267",FRA:"158",GUF:"423",PYF:"753",GAB:"946",GMB:"753",GEO:"289",DEU:"650",GHA:"495",GIB:"779",GRC:"507",GRL:"264",GRD:"753",GLP:"753",GUM:"753",GTM:"798",GIN:"753",GNB:"753",GUY:"847",HTI:"1048",HND:"662",HUN:"296",ISL:"0",IND:"951",IDN:"783",IRN:"592",IRQ:"1080",IRL:"380",IMN:"436",ISR:"394",ITA:"414",JAM:"711",JPN:"471",JOR:"529",KAZ:"797",KEN:"574",KIR:"753",PRK:"754",KOR:"555",XKX:"1145",KWT:"675",KGZ:"217",LAO:"1069",LVA:"240",LBN:"794",LSO:"0",LBR:"677",LBY:"668",LIE:"151",LTU:"211",LUX:"220",MDG:"876","MADEIRA (PORTUGAL)":"663",MWI:"489",MYS:"551",MDV:"753",MLI:"1076",MLT:"520",MHL:"753",MTQ:"753",MRT:"753",MUS:"700",MYT:"753",MEX:"531",FSM:"753",MDA:"541",MCO:"158",MNG:"1366",MNE:"899",MSR:"753",MAR:"729",MOZ:"234",MMR:"719",NAM:"355",NRU:"753",NPL:"0",NLD:"326",NCL:"779",NZL:"246",NIC:"675",NER:"772",NGA:"526",NIU:"753",MKD:"851",MNP:"753",NOR:"47",OMN:"479",PAK:"592",PLW:"753",PSE:"719",PAN:"477",PNG:"597",PRY:"0",PER:"473",PHL:"672",POL:"828",PRT:"389",PRI:"596",QAT:"503",REU:"772",ROU:"489",RUS:"476",RWA:"712",SHN:"753",KNA:"753",LCA:"753",MAF:"753",SPM:"753",VCT:"753",WSM:"753",SMR:"414",STP:"753",SAU:"592",SEN:"870",SRB:"1086",SYC:"753",SLE:"489",SGP:"379",SXM:"753",SVK:"332",SVN:"620",SLB:"753",SOM:"753",ZAF:"1070",SSD:"890",ESP:"402",LKA:"731",SDN:"736",SUR:"1029",SWE:"68",CHE:"48",SYR:"713",TWN:"484",TJK:"255",TZA:"531",THA:"450",TLS:"753",TGO:"859",TON:"753",TTO:"559",TUN:"468",TUR:"376",TKM:"927",TCA:"753",TUV:"753",UGA:"279",UKR:"768",ARE:"556",GBR:"380",USA:"416",URY:"174",UZB:"612",VUT:"753",VEN:"711",VNM:"560",VIR:"650",YEM:"807",ZMB:"416",ZWE:"1575","MEMO: EU 27":"409"},Q="marginal",q="2021";var M={data:J,type:Q,year:q};var X={co2:h,hosting:b,averageIntensity:E,marginalIntensity:M};return Y(ee);})();
14
+ Falling back to default value.`))),o?.returnVisitPercentage&&(typeof o.returnVisitPercentage=="number"?o.returnVisitPercentage>=0&&o.returnVisitPercentage<=1?e.returnVisitPercentage=o.returnVisitPercentage:(e.returnVisitPercentage=N,console.warn(`The returnVisitPercentage option must be a number between 0 and 1. You passed in ${o.returnVisitPercentage}.
15
+ Falling back to default value.`)):(e.returnVisitPercentage=N,console.warn(`The returnVisitPercentage option must be a number. You passed in a ${typeof o.returnVisitPercentage}.
16
+ Falling back to default value.`))),e}var _=class{constructor(e){this.options=e}energyPerByteByComponent(e){let n=e/m.GIGABYTE*V;return{consumerDeviceEnergy:n*C,networkEnergy:n*p,productionEnergy:n*S,dataCenterEnergy:n*O}}co2byComponent(e,r=s,n={}){let t=s,i=s,a=s,d=s;if(n?.gridIntensity){let{device:c,network:u,dataCenter:L}=n.gridIntensity;c?.value&&(t=c.value),u?.value&&(i=u.value),L?.value&&(a=L.value)}r===!0&&(a=f);let l={};for(let[c,u]of Object.entries(e))c.startsWith("dataCenterEnergy")?l[c.replace("Energy","CO2")]=u*a:c.startsWith("consumerDeviceEnergy")?l[c.replace("Energy","CO2")]=u*t:c.startsWith("networkEnergy")?l[c.replace("Energy","CO2")]=u*i:l[c.replace("Energy","CO2")]=u*d;return l}perByte(e,r=!1,n=!1,t={}){let i=this.energyPerByteByComponent(e,t);if(typeof r!="boolean")throw new Error(`perByte expects a boolean for the carbon intensity value. Received: ${r}`);let a=this.co2byComponent(i,r,t),l=Object.values(a).reduce((c,u)=>c+u);return n?{...a,total:l}:l}perVisit(e,r=!1,n=!1,t={}){let i=this.energyPerVisitByComponent(e,t);if(typeof r!="boolean")throw new Error(`perVisit expects a boolean for the carbon intensity value. Received: ${r}`);let a=this.co2byComponent(i,r,t),l=Object.values(a).reduce((c,u)=>c+u);return n?{...a,total:l}:l}energyPerByte(e){let r=this.energyPerByteByComponent(e);return Object.values(r).reduce((t,i)=>t+i)}energyPerVisitByComponent(e,r={},n=y,t=N,i=g){r.dataReloadRatio&&(i=r.dataReloadRatio),r.firstVisitPercentage&&(n=r.firstVisitPercentage),r.returnVisitPercentage&&(t=r.returnVisitPercentage);let a=this.energyPerByteByComponent(e),d={},l=Object.values(a);for(let[c,u]of Object.entries(a))d[`${c} - first`]=u*n,d[`${c} - subsequent`]=u*t*i;return d}energyPerVisit(e){let r=0,n=0,t=Object.entries(this.energyPerVisitByComponent(e));for(let[i,a]of t)i.indexOf("first")>0&&(r+=a);for(let[i,a]of t)i.indexOf("subsequent")>0&&(n+=a);return r+n}emissionsPerVisitInGrams(e,r=s){return R(e*r)}annualEnergyInKwh(e,r=1e3){return e*r*12}annualEmissionsInGrams(e,r=1e3){return e*r*12}annualSegmentEnergy(e){return{consumerDeviceEnergy:R(e*C),networkEnergy:R(e*p),dataCenterEnergy:R(e*O),productionEnergy:R(e*S)}}};var P=_;var G=class{constructor(e){if(this.model=new P,e?.model==="1byte")this.model=new D;else if(e?.model==="swd")this.model=new P;else if(e?.model)throw new Error(`"${e.model}" is not a valid model. Please use "1byte" for the OneByte model, and "swd" for the Sustainable Web Design model.
17
+ See https://developers.thegreenwebfoundation.org/co2js/models/ to learn more about the models available in CO2.js.`);this._segment=e?.results==="segment"}perByte(e,r=!1){return this.model.perByte(e,r,this._segment)}perVisit(e,r=!1){if(this.model?.perVisit)return this.model.perVisit(e,r,this._segment);throw new Error(`The perVisit() method is not supported in the model you are using. Try using perByte() instead.
18
+ See https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more about the methods available in CO2.js.`)}perByteTrace(e,r=!1,n={}){let t={};return n&&(t=B(n)),{co2:this.model.perByte(e,r,this._segment,t),green:r,variables:{description:"Below are the variables used to calculate this CO2 estimate.",bytes:e,gridIntensity:{description:"The grid intensity (grams per kilowatt-hour) used to calculate this CO2 estimate.",network:t?.gridIntensity?.network?.value||s,dataCenter:r?f:t?.gridIntensity?.dataCenter?.value||s,production:s,device:t?.gridIntensity?.device?.value||s}}}}perVisitTrace(e,r=!1,n={}){if(this.model?.perVisit){let t={};return n&&(t=B(n)),{co2:this.model.perVisit(e,r,this._segment,t),green:r,variables:{description:"Below are the variables used to calculate this CO2 estimate.",bytes:e,gridIntensity:{description:"The grid intensity (grams per kilowatt-hour) used to calculate this CO2 estimate.",network:t?.gridIntensity?.network?.value||s,dataCenter:r?f:t?.gridIntensity?.dataCenter?.value||s,production:s,device:t?.gridIntensity?.device?.value||s},dataReloadRatio:t?.dataReloadRatio||.02,firstVisitPercentage:t?.firstVisitPercentage||.75,returnVisitPercentage:t?.returnVisitPercentage||.25}}}else throw new Error(`The perVisitDetailed() method is not supported in the model you are using. Try using perByte() instead.
19
+ See https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more about the methods available in CO2.js.`)}perDomain(e,r){let n=[];for(let t of Object.keys(e.domains)){let i;r&&r.indexOf(t)>-1?i=this.perByte(e.domains[t].transferSize,!0):i=this.perByte(e.domains[t].transferSize),n.push({domain:t,co2:i,transferSize:e.domains[t].transferSize})}return n.sort((t,i)=>i.co2-t.co2),n}perPage(e,r){let n=this.perDomain(e,r),t=0;for(let i of n)t+=i.co2;return t}perContentType(e,r){let n={};for(let i of e.assets){let a=new URL(i.url).domain,d=i.transferSize,l=this.perByte(d,r&&r.indexOf(a)>-1),c=i.type;n[c]||(n[c]={co2:0,transferSize:0}),n[c].co2+=l,n[c].transferSize+=d}let t=[];for(let i of Object.keys(n))t.push({type:i,co2:n[i].co2,transferSize:n[i].transferSize});return t.sort((i,a)=>a.co2-i.co2),t}dirtiestResources(e,r){let n=[];for(let t of e.assets){let i=new URL(t.url).domain,a=t.transferSize,d=this.perByte(a,r&&r.indexOf(i)>-1);n.push({url:t.url,co2:d,transferSize:a})}return n.sort((t,i)=>i.co2-t.co2),n.slice(0,n.length>10?10:n.length)}perParty(e,r){let n=0,t=0,i=e.firstPartyRegEx;for(let a of Object.keys(e.domains))a.match(i)?n+=this.perByte(e.domains[a].transferSize,r&&r.indexOf(a)>-1):t+=this.perByte(e.domains[a].transferSize,r&&r.indexOf(a)>-1);return{firstParty:n,thirdParty:t}}};var h=G;function j(o){return typeof o=="string"?x(o):Z(o)}async function x(o){return(await(await fetch(`https://api.thegreenwebfoundation.org/greencheck/${o}`)).json()).green}async function Z(o){try{let e="https://api.thegreenwebfoundation.org/v2/greencheckmulti",r=JSON.stringify(o),t=await(await fetch(`${e}/${r}`)).json();return $(t)}catch{return[]}}function $(o){return Object.entries(o).filter(([n,t])=>t.green).map(([n,t])=>t.url)}var v={check:j};function z(o){return v.check(o)}var b={check:z};var J={AFG:"414",ALB:"0",DZA:"528",ASM:"753",AND:"188",AGO:"1476",AIA:"753",ATG:"753",ARG:"478",ARM:"390",ABW:"753",AUS:"808",AUT:"242",AZE:"534","AZORES (PORTUGAL)":"753",BHS:"753",BHR:"726",BGD:"528",BRB:"749",BLR:"400",BEL:"252",BLZ:"403",BEN:"745",BMU:"753",BTN:"0",BOL:"604",BES:"753",BIH:"1197",BWA:"1486",BRA:"284",VGB:"753",BRN:"681",BGR:"911",BFA:"753",BDI:"414",KHM:"1046",CMR:"659",CAN:"372",CYM:"753",CPV:"753",CAF:"188",TCD:"753","CHANNEL ISLANDS (U.K)":"753",CHL:"657",CHN:"899",COL:"410",COM:"753",COD:"0",COG:"659",COK:"753",CRI:"108",CIV:"466",HRV:"294",CUB:"559",CUW:"876",CYP:"751",CZE:"902",DNK:"362",DJI:"753",DMA:"753",DOM:"601",ECU:"560",EGY:"554",SLV:"547",GNQ:"632",ERI:"915",EST:"1057",SWZ:"0",ETH:"0",FLK:"753",FRO:"753",FJI:"640",FIN:"267",FRA:"158",GUF:"423",PYF:"753",GAB:"946",GMB:"753",GEO:"289",DEU:"650",GHA:"495",GIB:"779",GRC:"507",GRL:"264",GRD:"753",GLP:"753",GUM:"753",GTM:"798",GIN:"753",GNB:"753",GUY:"847",HTI:"1048",HND:"662",HUN:"296",ISL:"0",IND:"951",IDN:"783",IRN:"592",IRQ:"1080",IRL:"380",IMN:"436",ISR:"394",ITA:"414",JAM:"711",JPN:"471",JOR:"529",KAZ:"797",KEN:"574",KIR:"753",PRK:"754",KOR:"555",XKX:"1145",KWT:"675",KGZ:"217",LAO:"1069",LVA:"240",LBN:"794",LSO:"0",LBR:"677",LBY:"668",LIE:"151",LTU:"211",LUX:"220",MDG:"876","MADEIRA (PORTUGAL)":"663",MWI:"489",MYS:"551",MDV:"753",MLI:"1076",MLT:"520",MHL:"753",MTQ:"753",MRT:"753",MUS:"700",MYT:"753",MEX:"531",FSM:"753",MDA:"541",MCO:"158",MNG:"1366",MNE:"899",MSR:"753",MAR:"729",MOZ:"234",MMR:"719",NAM:"355",NRU:"753",NPL:"0",NLD:"326",NCL:"779",NZL:"246",NIC:"675",NER:"772",NGA:"526",NIU:"753",MKD:"851",MNP:"753",NOR:"47",OMN:"479",PAK:"592",PLW:"753",PSE:"719",PAN:"477",PNG:"597",PRY:"0",PER:"473",PHL:"672",POL:"828",PRT:"389",PRI:"596",QAT:"503",REU:"772",ROU:"489",RUS:"476",RWA:"712",SHN:"753",KNA:"753",LCA:"753",MAF:"753",SPM:"753",VCT:"753",WSM:"753",SMR:"414",STP:"753",SAU:"592",SEN:"870",SRB:"1086",SYC:"753",SLE:"489",SGP:"379",SXM:"753",SVK:"332",SVN:"620",SLB:"753",SOM:"753",ZAF:"1070",SSD:"890",ESP:"402",LKA:"731",SDN:"736",SUR:"1029",SWE:"68",CHE:"48",SYR:"713",TWN:"484",TJK:"255",TZA:"531",THA:"450",TLS:"753",TGO:"859",TON:"753",TTO:"559",TUN:"468",TUR:"376",TKM:"927",TCA:"753",TUV:"753",UGA:"279",UKR:"768",ARE:"556",GBR:"380",USA:"416",URY:"174",UZB:"612",VUT:"753",VEN:"711",VNM:"560",VIR:"650",YEM:"807",ZMB:"416",ZWE:"1575","MEMO: EU 27":"409"},Q="marginal",q="2021";var M={data:J,type:Q,year:q};var X={co2:h,hosting:b,averageIntensity:E,marginalIntensity:M};return Y(ee);})();
20
20
  //# sourceMappingURL=index.js.map