From e4081f2b4648df68498edac39ce460ecf619cc29 Mon Sep 17 00:00:00 2001 From: Sean Mcilroy Date: Thu, 18 Apr 2024 11:08:34 +0100 Subject: [PATCH] Updating Main from v1.0 to v1.1 (#379) Updating v1.0 approved WG changes to v1.1 https://github.com/Green-Software-Foundation/sci/compare/1.0-comparison...1.1-comparison --- .github/ISSUE_TEMPLATE/case-study-template.md | 100 -- .github/workflows/deploy.yml | 53 + .gitignore | 1 + .../License.md => LICENCE.md | 0 ...rbon_Intensity_Specification.md => SPEC.md | 601 ++++---- ...r_Information_on_Reporting_Requirements.md | 93 -- .../case_study_template.md | 90 -- Software_Carbon_Intensity/images/GSF_logo.png | Bin 36305 -> 0 bytes ...ware Foundation Reference Guide_Manual.png | Bin 215388 -> 0 bytes Software_Carbon_Intensity/images/readme.md | 1 - Software_Carbon_Intensity/index.yaml | 14 - assets/css/styles.css | 1174 +++++++++++++++ assets/favicon.svg | 7 + assets/js/compile.js | 99 ++ index.html | 393 +++++ package-lock.json | 1314 +++++++++++++++++ package.json | 18 + tailwind.config.js | 31 + 18 files changed, 3391 insertions(+), 598 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/case-study-template.md create mode 100644 .github/workflows/deploy.yml create mode 100644 .gitignore rename Software_Carbon_Intensity/License.md => LICENCE.md (100%) rename Software_Carbon_Intensity/Software_Carbon_Intensity_Specification.md => SPEC.md (90%) delete mode 100644 Software_Carbon_Intensity/Appendix_A_Further_Information_on_Reporting_Requirements.md delete mode 100644 Software_Carbon_Intensity/case_study_template.md delete mode 100644 Software_Carbon_Intensity/images/GSF_logo.png delete mode 100644 Software_Carbon_Intensity/images/Green Software Foundation Reference Guide_Manual.png delete mode 100644 Software_Carbon_Intensity/images/readme.md delete mode 100644 Software_Carbon_Intensity/index.yaml create mode 100644 assets/css/styles.css create mode 100644 assets/favicon.svg create mode 100644 assets/js/compile.js create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 tailwind.config.js diff --git a/.github/ISSUE_TEMPLATE/case-study-template.md b/.github/ISSUE_TEMPLATE/case-study-template.md deleted file mode 100644 index 9aa4bab..0000000 --- a/.github/ISSUE_TEMPLATE/case-study-template.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -name: Case-study template -about: This is a template to use for case studies that are submitted to apply the - SCI. -title: Test case submission -labels: Case-study submission -assignees: atg-abhishek, Henry-WattTime - ---- - -# Case Study Template - -*This is a template to use for case studies that are submitted to apply the SCI. * - -*Please delete the text in italics and replace it with the appropriate information.* - -*For more information on any of the items, the final reference is the [SCI Specification](https://github.com/Green-Software-Foundation/software_carbon_intensity/blob/main/Software_Carbon_Intensity/Software_Carbon_Intensity_Specification.md)* - -*If you find errors, or have further questions, please feel free to engage with us in the [discussions](https://github.com/Green-Software-Foundation/software_carbon_intensity/discussions) section.* - -## Overview - -_Please provide information describing the use case in a few bullet points_ - -## Architecture for the system under consideration - -_An architecture diagram of the system described in this use case_ - -### Technical details of the components in the architecture - -_Textual description with technical details of each component provided in the architecture diagram_ - -## Sites for Software Sustainability Actions - -_For each of the following sub-sections, indicate **where** and **how** actions can be taken in the following categories_: - -### Energy Efficiency - -1. _site of action_ -2. _description of the action_ - -### Hardware Efficiency - -1. _site of action_ -2. _description of the action_ - -### Carbon Awareness - -1. _site of action_ -2. _description of the action_ - -## Procedure - -### (What) Software boundary - -_Describe the components that are included in the software systems, if any major components are not included then please provide **reasons for exclusion**_. - -For example: -- Front end mobile application -- Network traffic between client mobile applications and servers -- Network traffic between servers and database -- Back-end servers. -- Databases -- Test infrastructure - -### (Scale) Functional unit - -_Describe the [functional unit](https://github.com/Green-Software-Foundation/software_carbon_intensity/blob/main/Software_Carbon_Intensity/Software_Carbon_Intensity_Specification.md#functional-unit-r) that best controls the scaling of the software system. - -The choice of functional unit applies to all components in your software boundary. - -For example: -- per API Call -- per User -_ - -### (How) Quantification method - -_For each software component in your software boundary, decide whether you are going to **measure** using real-world data or **calculate** an estimate via models, provide a reason and any useful details for each choice. - -For example: -- Front-end mobile application. - - Calculate an estimate using a model that represents a single user using the application. - - We do not have the right to export real-world measurements from individuals mobiles. - -- Back-end servers - - Calculate an estimate of the energy consumption using models which take as input the CPU utilization of servers. - - Calculate an estimate of the embodied carbon using the Treads low-resolution models based on AWS data. - -_Also, describe the reason for your choice_ - -### (Quantify) SCI Value Calculation - -_Show your work! For each of the component of your software system, show how you arrived at the SCI value._ - -_Guidance for this is available in the [Methodology summary](https://github.com/Green-Software-Foundation/software_carbon_intensity/blob/main/Software_Carbon_Intensity/Software_Carbon_Intensity_Specification.md#methodology-summary) section._ - -### (Report) - -_Disclose the software boundary and your calculation methodology, including items that you might not have included in the previous sections_ diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..34b5c71 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,53 @@ +# Simple workflow for deploying static content to GitHub Pages +name: Deploy static content to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["dev"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Install Node.js + uses: actions/setup-node@v2 + with: + node-version: '18' + + - name: Install dependencies and build + run: | + npm install + npm run build + + - name: Setup Pages + uses: actions/configure-pages@v3 + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + # Upload entire repository + path: '.' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/Software_Carbon_Intensity/License.md b/LICENCE.md similarity index 100% rename from Software_Carbon_Intensity/License.md rename to LICENCE.md diff --git a/Software_Carbon_Intensity/Software_Carbon_Intensity_Specification.md b/SPEC.md similarity index 90% rename from Software_Carbon_Intensity/Software_Carbon_Intensity_Specification.md rename to SPEC.md index bda02a0..4e72adb 100644 --- a/Software_Carbon_Intensity/Software_Carbon_Intensity_Specification.md +++ b/SPEC.md @@ -1,300 +1,301 @@ ---- -version: 1.0.0 ---- - -# Software Carbon Intensity (SCI) Specification - -## Introduction - -> "If you can't measure it, you can't improve it." - Peter Drucker - -Software systems cause emissions through the hardware that they operate on, both through the energy that the physical hardware consumes and the emissions associated with manufacturing the hardware. This specification defines a methodology for calculating the rate of carbon emissions for a software system. The purpose is to help users and developers make informed choices about which tools, approaches, architectures, and services they use in the future. It is a score rather than a total; lower numbers are better than higher numbers, and reaching 0 is impossible. This specification is focused on helping users and developers understand how to improve software to reduce or avoid the creation of emissions. - -Reducing an SCI score is only possible through the elimination of emissions. That can be achieved by modifying a software system to use less physical hardware, less energy, or consume lower-carbon energy sources. Neutralization or avoidance offsets do not reduce an SCI score ([see exclusions section](#exclusions)). This makes the SCI an ideal strategy that organizations can adopt to meet climate targets focused on eliminating emissions, such as those specified by [1]. - -The SCI is for everyone. It is possible to calculate an SCI score for any software application, from a large, distributed cloud system to a small monolithic open source library, any on-premise application, or even a serverless function. The environment the product or service is running in can also vary; from personal computers, private data centers or a hyperscale cloud. - -Software practitioners have a significant role to play in collectively reducing the SCI score during the design, development, and delivery of software applications. The following list provides some strategies that can be used to do this across different software roles: -- For a software programmer, this implies writing energy efficient code. -- For an AI/ML developer, it implies model optimization, using pre-trained models or leveraging optimized hardware for training. -- For a database engineer, this comprises choices like schema design, choice of storage, and query optimizations. -- For a DevOps practitioner, this requires creating a carbon-aware pipeline and considering when to schedule builds and leverage clean energy. -- For QA engineers, it involves creating energy efficient test automation and performance testing scripts across browsers and devices. -- For an architect, this implies choices like serverless or event driven architectures, infrastructure optimization, and design for carbon-aware systems. - -The SCI encourages calculation using granular real-world data, which is challenging to obtain in some environments, particularly the public cloud. Access to the data needed for higher resolution calculations might not always be available. Where this is the case, users of this specification are strongly advised to request such data from their suppliers (be they hardware, hosting, or other). - -In situations where there is a lack of access, capability, or rights to the necessary real-world data, the SCI allows for data generated through modeling, using best estimates instead. - -## Scope - -This specification describes a methodology for calculating the rate of carbon emissions for a software system; that is, its SCI score. The purpose of this score is to increase awareness and transparency of an application's sustainability credentials. The score will help software practitioners make better, evidence-based decisions during system design, development, and deployment, that will ultimately minimize carbon emissions. A reliable, consistent, fair and comparable measure allows targets to be defined during development and progress to be tracked. - -## Normative reference -There are no normative references in this document. - -## Terms and definitions - -For the purposes of this document, the following terms and definitions apply. - -ISO and IEC maintain terminological databases for use in standardization at the following addresses: -- ISO Online browsing platform: available at https://www.iso.org/obp -- IEC Electropedia: available at http://www.electropedia.org/ - -T.1 -**action** -explicit outcome taken, or change avoided, depending on the quantifiable emissions measured by this specification - -Note to entry: Actions generally relate to using less electricity, using electricity more intelligently, or using less hardware. - -T.2 -**carbon-aware** -attribute of software or hardware that adjusts its behavior (consumption of inputs, processing, or production of outputs) in response to the carbon intensity of the energy it consumes - -The following abbreviations are used throughout this specification: -- E – Energy consumed by a software system -- I – Location-based marginal carbon intensity -- M – Embodied emissions of the hardware needed to operate a software system -- O – Operational emissions based on the emissions caused by energy consumption -- R – Functional unit - -## Software sustainability actions - -All actions that serve to reduce the carbon emissions of a piece of software fit into one of the following categories: - -- **Energy Efficiency**: Actions taken to make software use less electricity to perform the same function. -- **Hardware Efficiency**: Actions taken to make software use fewer physical resources to perform the same function. -- **Carbon Awareness**: Actions taken to time- or region-shift software computation to take advantage of cleaner, more renewable or lower carbon sources of electricity. - -It is the intent of this specification to encourage more of these actions to be taken during the design, development, and maintenance of software applications. - -## Procedure - -The steps required to calculate and report an SCI score are: - -1. **Bound**: Decide on the [software boundary](#software-boundary); i.e., the components of a software system to include. -1. **Scale**: As the SCI is a rate (carbon emissions per one [functional unit](#functional-unit-r)), pick the functional unit which best describes how the application scales. -1. **Define**: For each software component listed in the software boundary, decide on the [quantification method](#quantification-method); real-world measurements, based on telemetry, or lab-based measurements, based on models. -1. **Quantify**: Calculate a rate for every software component. The SCI value of the whole application is the sum of the SCI values for every software component in the system. -1. **Report**: Disclose the SCI score, software boundary, and the calculation methodology. - -## Methodology summary - -### General - -SCI is a rate; carbon emissions per one unit of `R`. The equation used to calculate the SCI value of a software system is: - -`SCI = C per R` - -Where: - -- The total amount of carbon `C` the software causes to be emitted. -- All the elements in the SCI equation scale by the same functional unit of `R` (e.g., carbon emissions per additional user, API-call, or ML training run). - -This can be expanded to: - -`SCI = (O + M) per R` - -### Operational emissions - -#### General - -To calculate the operational emissions associate with software, multiply the electricity consumption of the hardware the software is running on by the regional, granular marginal emissions rate. The marginal emissions rate reflects the change in emissions associated with a change in demand. - -To calculate the operational emissions `O` for a software application, use the following: - -`O = (E * I)` - -#### Energy - -This is the energy consumed by a software system for a functional unit of work. This could be applied to several taxonomies: - -- Datacenter -- Individual machine (e.g., VM/Node) -- Individual service (e.g., API call or ML training run) -- Execution of code - -Units: this shall be in kilowatt hours (kWh). - -#### Location-based marginal carbon intensity - -The carbon intensity of electricity is a measure of how much carbon (CO2eq) emissions are produced per kilowatt-hour (kWh) of electricity consumed. Because this specification uses a consequential approach, marginal emissions rates shall be used for electricity consumption. - -Location-based marginal emissions factors measure the grid carbon intensity of a grid region. If the electricity consumption is connected to a grid, the marginal emissions rate of that grid shall be used, which excludes any [market-based measures](#market-based-measures). If the electricity consumption is not connected to a larger regional grid, an appropriate emissions factor for that system shall be used. From a developer perspective, only the location-based info is important in terms of the impact on eliminating carbon emissions. This excludes [market-based measures](#market-based-measures) and is distinct from 100% renewable energy claims. - -The only figure that matters when trying to optimize the scheduling of a computation in real-time is the marginal emissions intensity. This is the emissions intensity of the marginal power plant which will need to be turned up if a computation is scheduled (e.g., increase electricity demand from the grid) at that moment. - -Units: this shall be in grams of carbon per kilowatt hours (gCO2eq/kWh). - -### Embodied emissions - -Embodied carbon (otherwise referred to as “embedded carbon”) is the amount of carbon emitted during the creation and disposal of a hardware device. - -When software runs on a device, a fraction of the total embodied emissions of the device is allocated to the software. This is the value of `M` that needs to be calculated in the SCI equation. - -This fraction consists of both a time- and resource-share. The length of time that the software runs on the device determines its time-share. The percentage of the device reserved just for that application during the time-share determines that application's resource-share. - -To calculate the time-share, amortize the total embodied carbon over the expected life span of the device and then extrapolate based on the time reserved for the usage. For example, if the device’s embodied carbon was 1000 kg with an expected lifespan of four years and it was reserved for use for one hour, the time-share embodied emissions would be 1000 * 1/(4\*365\*24) or around 28 g of the total. - -To calculate resource-share, look at the share of total available resources reserved for use by the software. For instance, the percentage of total virtual CPUs reserved for the software is a good choice for the resource-share metric in the virtualized cloud space. - -To calculate the share of `M` for a software application, use the equation: - -`M = TE * TS * RS` - -Where: - -- `TE` = Total Embodied Emissions; the sum of Life Cycle Assessment (LCA) emissions for all hardware components. -- `TS` = Time-share; the share of the total life span of the hardware reserved for use by the software. -- `RS` = Resource-share; the share of the total available resources of the hardware reserved for use by the software. - -The equation can be expanded further: - -`M = TE * (TiR/EL) * (RR/ToR)` - -Where: - -- `TiR` = Time Reserved; the length of time the hardware is reserved for use by the software. -- `EL` = Expected Lifespan; the anticipated time that the equipment will be installed. -- `RR` = Resources Reserved; the number of resources reserved for use by the software. -- `ToR` = Total Resources; the total number of resources available. - -An estimate of all the embodied emissions for the hardware used within the software boundary shall be included. - -Simple models to estimate embodied emissions may be used; however, the most granular data possible and ideally emissions data from a device’s LCA when calculating the embodied carbon should be used. - -Since the purpose of the SCI is the elimination of emissions `M` shall not include any [market-based measures](#market-based-measures). - -Units: this shall be in grams of carbon (gCO2eq). - -### Functional unit conversion - -An aggregate SCI score can be composed of multiple component SCI scores. - -Then, as long as the functional unit of `R` is the same across all the component SCI scores, these can be summed to calculate the aggregate SCI. To sum multiple component SCI scores into one aggregate score, the functional unit R shall be the same across all components. - -If the functional unit of a software component is not the same as the aggregate functional unit, then the component SCI score needs to be converted to match that of the aggregate SCI functional unit. Details of any unit conversion factors used in calculating the SCI score shall be disclosed. - -## Software boundary - -The first step in generating an SCI score is deciding what the boundaries of the software system are; i.e., what software components to include or exclude in the calculation of the SCI score. - -The calculation of SCI shall include all supporting infrastructure and systems that significantly contribute to the software’s operation. - -Supporting infrastructure and systems may include: - -- compute resources -- storage -- networking equipment -- memory -- monitoring -- idle machines -- logging -- scanning -- build and deploy pipelines -- testing -- training ML models -- operations -- backup -- resources to support redundancy -- resources to support failover -- End user devices -- IoT devices -- Edge devices - -If the boundary includes on-premise and/or cloud data center operations, `E` should take into account the efficiency of the data center, including cooling and other energy consumption necessary to operate a data center. The data center's energy efficiency is usually available as a PUE (Power Usage Effectiveness) value. - -## Functional unit - -The second step in generating an SCI score is deciding which functional unit will be used to describe how the application scales. First, decide on the functional unit, using the choice of `R`. Then calculate how much `C` is emitted per unit of `R`. - -For instance, if the application scales by number of users then choose this as the functional unit. - -A consistent choice of `R` across all the components in the software boundary shall be used. - -A suggested list of functional units includes: - -- API call/request -- Benchmark -- User -- Machine -- Minute/time unit -- Device -- Physical site -- Data volume -- Batch/Scheduled Job -- Transaction -- Database read/write - -## Quantification method - -### General - -The third step in generating an SCI score is deciding the approach to take when quantifying the carbon emissions for *each component* in the software boundary. - -The goal of the SCI is to **quantify** how much `C` (carbon) is emitted per **one unit** of `R`. - -There are two main approaches to quantifying carbon emissions (`C`), [measurement](#measurement) via real-world data or [calculation](#calculation) via models. - -Each component in the software boundary may use either measurement or calculation to quantify the carbon emissions. - -It is strongly advised that suppliers (be they hardware, hosting, or other) be contacted regarding the data needed in the resolution required for quantifying the SCI score. - -### Measurement - -Carbon emissions may be quantified by measuring the total real-world carbon emissions of the component (`C`) over a time period and dividing by the number of functional units (`R`) in the same time period to get `C` per `R`. For instance, data regarding the real-world usage of the application "in the wild" might be measured and then divided by the number of users serviced in the same time period to get `C` per user. - -### Calculation - -What one unit of `R` looks like may be modelled and the total carbon (`C`) calculated for executing one functional unit of work (`R`) in a controlled lab environment. For instance, a benchmark application may be created that models a user interacting with developer's and then measure the `C` emitted per run of that benchmark. The result is still a `C` per user. - -## Comparing an SCI score to a baseline - -When taking an action to reduce the carbon intensity of a piece of software, the intensity should be compared to a baseline. The baseline shall be calculated using an identical methodology to how the proposed SCI was calculated, except excluding the proposed action(s). The measurements, assumptions, models, functional units, etc. shall remain the same between the baseline and proposed SCI. - -## Core characteristics - -As this specification develops, the following core characteristics shall remain true: - -- **The SCI is sensitive to carbon awareness, energy efficiency, and hardware efficiency** - - The purpose of the SCI is to encourage actions that reduce the carbon emissions of software. Therefore, the SCI shall be sensitive to those actions described in this document under **Software Sustainability Actions**; specifically, carbon awareness, energy efficiency, and hardware efficiency. - - If an application's SCI is X, and then actions are taken to make the application more Carbon Awareness, more Energy Efficient, or more Hardware Efficient, the value of X shall go down. - -- **The SCI takes a systems-impact view** - - The purpose of the SCI is to encourage actions that reduce carbon emissions of software in a way that creates reductions at a system-wide level rather than just at a local level. While local-level optimizations might lead to micro improvements, they might lead to negative downstream impacts at a macro level that negate the impact of those actions. - - Such a systems view shall be adopted by articulating the [boundaries](#software-boundary) of the software and its associated infrastructure, keeping in mind the [exclusions](#exclusions) mentioned in this specification. - -- **The SCI is easy to implement** -To achieve impact at scale, the SCI encourages adoption through ease of implementation. - - Anyone without much experience or training shall be able to follow the SCI specification instructions. - - Calculation of the SCI shall be possible without incurring any cost, for instance, for data, services, or tooling. - - Where possible, teams should consider investing more time or money in calculating their SCI number to increase its accuracy. - -- **The SCI encourages the use of granular data** -In calculating the SCI value, the highest granularity data available should be used to compute each of `O`, `E`, `I`, and `M`. In cases where temporal granular data is not available, annual values shall be used which are the lowest acceptable level of granularity. - -## Exclusions - -### General - -The focus is elimination, not offsetting. One tonne of carbon eliminated (meaning that it was not emitted into the atmosphere) is not the same as one tonne of carbon that has been offset. By far the more preferable goal is never to have emitted the carbon in the first place. - -Only actions that eliminate emissions reduce an SCI score. As such, an SCI score cannot be reduced through carbon offsets, such as [market-based measures](#market-based-measures). - -### Market-based measures - -Market-based measures are financial instruments designed to neutralize or offset carbon emissions. Market-based measures include, but are not limited to the following: - -- Carbon offsets or credits -- A Removal Unit (RMU) -- An Emission Reduction Unit (ERU) -- A Certified Emission Reduction (CER) -- Electricity Attribute Certificates (EACs) -- Power Purchase Agreements (PPAs) -- Renewable Energy Credits (RECs) - -## Bibliography - -The following documents are useful references for implementers and users of this document: - -[1] *The Net-Zero STANDARD*, Science Based Targets initiative (SBTi), https://sciencebasedtargets.org/net-zero +--- +version: 1.1.0 +--- +# Software Carbon Intensity (SCI) Specification + +## Introduction + +Software systems cause emissions through the hardware that they operate on, both through the energy that the physical hardware consumes and the emissions associated with manufacturing the hardware. This specification defines a methodology for calculating the rate of carbon emissions for a software system. The purpose is to help users and developers make informed choices about which tools, approaches, architectures, and services they use in the future. It is a score rather than a total; lower numbers are better than higher numbers, and reaching 0 is impossible. This specification is focused on helping users and developers understand how to improve software to reduce or avoid the creation of emissions. + +Reducing an SCI score is only possible through the elimination of emissions. That can be achieved by modifying a software system to use less physical hardware, less energy, or consume lower-carbon energy sources. Neutralization or avoidance offsets do not reduce an SCI score ([see exclusions section](#exclusions)). This makes the SCI an ideal strategy that organizations can adopt to meet climate targets focused on eliminating emissions, such as those specified by [1]. + +The SCI is for everyone. It is possible to calculate an SCI score for any software application, from a large, distributed cloud system to a small monolithic open source library, any on-premise application, or even a serverless function. The environment the product or service is running in can also vary; from personal computers, private data centers or a hyperscale cloud. + +Software practitioners have a significant role to play in collectively reducing the SCI score during the design, development, and delivery of software applications. The following list provides some strategies that can be used to do this across different software roles: +- For a software programmer, this implies writing energy efficient code. +- For an AI/ML developer, it implies model optimization, using pre-trained models or leveraging optimized hardware for training. +- For a database engineer, this comprises choices like schema design, choice of storage, and query optimizations. +- For a DevOps practitioner, this requires creating a carbon-aware pipeline and considering when to schedule builds and leverage clean energy. +- For QA engineers, it involves creating energy efficient test automation and performance testing scripts across browsers and devices. +- For an architect, this implies choices like serverless or event driven architectures, infrastructure optimization, and design for carbon-aware systems. + +The SCI encourages calculation using granular real-world data, which is challenging to obtain in some environments, particularly the public cloud. Access to the data needed for higher resolution calculations might not always be available. Where this is the case, users of this specification are strongly advised to request such data from their suppliers (be they hardware, hosting, or other). + +In situations where there is a lack of access, capability, or rights to the necessary real-world data, the SCI allows for data generated through modeling, using best estimates instead. + +## Scope + +This specification describes a methodology for calculating the rate of carbon emissions for a software system; that is, its SCI score. The purpose of this score is to increase awareness and transparency of an application's sustainability credentials. The score will help software practitioners make better, evidence-based decisions during system design, development, and deployment, that will ultimately minimize carbon emissions. A reliable, consistent, fair and comparable measure allows targets to be defined during development and progress to be tracked. + +## Normative references +There are no normative references in this document. + +## Terms and definitions + +For the purposes of this document, the following terms and definitions apply. + +ISO and IEC maintain terminological databases for use in standardization at the following addresses: +- ISO Online browsing platform: available at https://www.iso.org/obp +- IEC Electropedia: available at http://www.electropedia.org/ + +T.1 +**action** +explicit outcome taken, or change avoided, depending on the quantifiable emissions measured by this specification + +Note to entry: Actions generally relate to using less electricity, using electricity more intelligently, or using less hardware. + +T.2 +**carbon-aware** +attribute of software or hardware that adjusts its behavior (consumption of inputs, processing, or production of outputs) in response to the carbon intensity of the energy it consumes + +The following abbreviations are used throughout this specification: +- E – Energy consumed by a software system +- I – Region-specific carbon intensity +- M – Embodied emissions of the hardware needed to operate a software system +- O – Operational emissions based on the emissions caused by energy consumption +- R – Functional unit + +T.3 +**carbon** +Greenhouse gases are a group of gases contributing to global warming. In this specification we use 'carbon' as a broad term to refer to the impact of all types of emissions and activities on global warming. + +## Software sustainability actions + +All actions that serve to reduce the carbon emissions of a piece of software fit into one of the following categories: + +- **Energy Efficiency**: Actions taken to make software use less electricity to perform the same function. +- **Hardware Efficiency**: Actions taken to make software use fewer physical resources to perform the same function. +- **Carbon Awareness**: Actions taken to time- or region-shift software computation to take advantage of cleaner, more renewable or lower carbon sources of electricity. + +It is the intent of this specification to encourage more of these actions to be taken during the design, development, and maintenance of software applications. + +## Procedure + +The steps required to calculate and report an SCI score are: + +1. **Bound**: Decide on the [software boundary](#software-boundary); i.e., the components of a software system to include. +1. **Scale**: As the SCI is a rate (carbon emissions per one [functional unit](#functional-unit-r)), pick the functional unit which best describes how the application scales. +1. **Define**: For each software component listed in the software boundary, decide on the [quantification method](#quantification-method); real-world measurements, based on telemetry, or lab-based measurements, based on models. +1. **Quantify**: Calculate a rate for every software component. The SCI value of the whole application is the sum of the SCI values for every software component in the system. +1. **Report**: Disclose the SCI score, software boundary, and the calculation methodology. + +## Methodology summary + +### General + +SCI is a rate; carbon emissions per one unit of `R`. The equation used to calculate the SCI value of a software system is: + +`SCI = C per R` + +Where: + +- The total amount of carbon `C` the software causes to be emitted. +- All the elements in the SCI equation scale by the same functional unit of `R` (e.g., carbon emissions per additional user, API-call, or ML training run). + +This can be expanded to: + +`SCI = (O + M) per R` + +### Operational emissions + +#### General + +To calculate the operational emissions associated with software, multiply the electricity consumption of the hardware the software is running on by the region-specific carbon intensity. + +To calculate the operational emissions `O` for a software application, use the following: + +`O = (E * I)` + +#### Energy + +This is the energy consumed by a software system for a functional unit of work. This could be applied to several taxonomies: + +- Datacenter +- Individual machine (e.g., VM/Node) +- Individual service (e.g., API call or ML training run) +- Execution of code + +Units: this shall be in kilowatt hours (kWh). + +The energy consumption should include all energy consumed by hardware reserved or provisioned, not just the hardware actually used to meet the software needs. + +#### Region-specific carbon intensity + +The carbon intensity of electricity is a measure of how much carbon (CO2eq) emissions are produced per kilowatt-hour (kWh) of electricity consumed. + +Region-specific carbon intensity factors measure the grid carbon intensity of electricity in a grid region. If the electricity consumption is connected to a grid, the short run marginal, long run marginal, or average emissions grid intensity of that grid shall be used, which excludes any [market-based measures](#market-based-measures). If the electricity consumption is not connected to a larger regional grid, an appropriate emissions factor for that system shall be used. From a developer perspective, only the location-based info is important in terms of the impact on eliminating carbon emissions. This excludes [market-based measures](#market-based-measures) and is distinct from 100% renewable energy claims. + +Units: this shall be in grams of carbon per kilowatt hours (gCO2eq/kWh). + +### Embodied emissions + +Embodied carbon (otherwise referred to as “embedded carbon”) is the amount of carbon emitted during the creation and disposal of a hardware device. + +When software runs on a device, a fraction of the total embodied emissions of the device is allocated to the software. This is the value of `M` that needs to be calculated in the SCI equation. + +This fraction consists of both a time- and resource-share. The length of time that the software runs on the device determines its time-share. The percentage of the device reserved just for that application during the time-share determines that application's resource-share. + +To calculate the time-share, amortize the total embodied carbon over the expected life span of the device and then extrapolate based on the time reserved for the usage. For example, if the device’s embodied carbon was 1000 kg with an expected lifespan of four years and it was reserved for use for one hour, the time-share embodied emissions would be 1000 * 1/(4\*365\*24) or around 28 g of the total. + +To calculate resource-share, look at the share of total available resources reserved for use by the software. For instance, the percentage of total virtual CPUs reserved for the software is a good choice for the resource-share metric in the virtualized cloud space. + +To calculate the share of `M` for a software application, use the equation: + +`M = TE * TS * RS` + +Where: + +- `TE` = Total Embodied Emissions; the sum of Life Cycle Assessment (LCA) emissions for all hardware components. +- `TS` = Time-share; the share of the total life span of the hardware reserved for use by the software. +- `RS` = Resource-share; the share of the total available resources of the hardware reserved for use by the software. + +The equation can be expanded further: + +`M = TE * (TiR/EL) * (RR/ToR)` + +Where: + +- `TiR` = Time Reserved; the length of time the hardware is reserved for use by the software. +- `EL` = Expected Lifespan; the anticipated time that the equipment will be installed. +- `RR` = Resources Reserved; the number of resources reserved for use by the software. +- `ToR` = Total Resources; the total number of resources available. + +An estimate of all the embodied emissions for the hardware used within the software boundary shall be included. + +Simple models to estimate embodied emissions may be used; however, the most granular data possible and ideally emissions data from a device’s LCA when calculating the embodied carbon should be used. + +Since the purpose of the SCI is the elimination of emissions `M` shall not include any [market-based measures](#market-based-measures). + +Units: this shall be in grams of carbon (gCO2eq). + +### Functional unit conversion + +An aggregate SCI score can be composed of multiple component SCI scores. + +Then, as long as the functional unit of `R` is the same across all the component SCI scores, these can be summed to calculate the aggregate SCI. To sum multiple component SCI scores into one aggregate score, the functional unit R shall be the same across all components. + +If the functional unit of a software component is not the same as the aggregate functional unit, then the component SCI score needs to be converted to match that of the aggregate SCI functional unit. Details of any unit conversion factors used in calculating the SCI score shall be disclosed. + +## Software boundary + +The first step in generating an SCI score is deciding what the boundaries of the software system are; i.e., what software components to include or exclude in the calculation of the SCI score. + +The calculation of SCI shall include all supporting infrastructure and systems that significantly contribute to the software’s operation. + +Supporting infrastructure and systems may include: + +- compute resources +- storage +- networking equipment +- memory +- monitoring +- idle machines +- logging +- scanning +- build and deploy pipelines +- testing +- training ML models +- operations +- backup +- resources to support redundancy +- resources to support failover +- End user devices +- IoT devices +- Edge devices + +If the boundary includes on-premise and/or cloud data center operations, `E` should take into account the efficiency of the data center, including cooling and other energy consumption necessary to operate a data center. The data center's energy efficiency is usually available as a PUE (Power Usage Effectiveness) value. + +## Functional unit + +The second step in generating an SCI score is deciding which functional unit will be used to describe how the application scales. First, decide on the functional unit, using the choice of `R`. Then calculate how much `C` is emitted per unit of `R`. + +For instance, if the application scales by number of users then choose this as the functional unit. + +A consistent choice of `R` across all the components in the software boundary shall be used. + +A suggested list of functional units includes: + +- API call/request +- Benchmark +- User +- Machine +- Minute/time unit +- Device +- Physical site +- Data volume +- Batch/Scheduled Job +- Transaction +- Database read/write + +## Quantification method + +### General + +The third step in generating an SCI score is deciding the approach to take when quantifying the carbon emissions for *each component* in the software boundary. + +The goal of the SCI is to **quantify** how much `C` (carbon) is emitted per **one unit** of `R`. + +There are two main approaches to quantifying carbon emissions (`C`), [measurement](#measurement) via real-world data or [calculation](#calculation) via models. + +Each component in the software boundary may use either measurement or calculation to quantify the carbon emissions. + +It is strongly advised that suppliers (be they hardware, hosting, or other) be contacted regarding the data needed in the resolution required for quantifying the SCI score. + +### Measurement + +Carbon emissions may be quantified by measuring the total real-world carbon emissions of the component (`C`) over a time period and dividing by the number of functional units (`R`) in the same time period to get `C` per `R`. For instance, data regarding the real-world usage of the application "in the wild" might be measured and then divided by the number of users serviced in the same time period to get `C` per user. + +### Calculation + +What one unit of `R` looks like may be modelled and the total carbon (`C`) calculated for executing one functional unit of work (`R`) in a controlled lab environment. For instance, a benchmark may be created that models a user interacting with a software application and then measures the `C` emitted per run of that benchmark. The result is still a `C` per user. + +## Comparing an SCI score to a baseline + +When taking an action to reduce the carbon intensity of a piece of software, the intensity should be compared to a baseline. The baseline shall be calculated using an identical methodology to how the proposed SCI was calculated, except excluding the proposed action(s). The measurements, assumptions, models, functional units, etc. shall remain the same between the baseline and proposed SCI. + +## Core characteristics + +As this specification develops, the following core characteristics shall remain true: + +- **The SCI is sensitive to carbon awareness, energy efficiency, and hardware efficiency** + - The purpose of the SCI is to encourage actions that reduce the carbon emissions of software. Therefore, the SCI shall be sensitive to those actions described in this document under **Software Sustainability Actions**; specifically, carbon awareness, energy efficiency, and hardware efficiency. + - If an application's SCI is X, and then actions are taken to make the application more Carbon Awareness, more Energy Efficient, or more Hardware Efficient, the value of X shall go down. + +- **The SCI takes a systems-impact view** + - The purpose of the SCI is to encourage actions that reduce carbon emissions of software in a way that creates reductions at a system-wide level rather than just at a local level. While local-level optimizations might lead to micro improvements, they might lead to negative downstream impacts at a macro level that negate the impact of those actions. + - Such a systems view shall be adopted by articulating the [boundaries](#software-boundary) of the software and its associated infrastructure, keeping in mind the [exclusions](#exclusions) mentioned in this specification. + +- **The SCI is easy to implement** +To achieve impact at scale, the SCI encourages adoption through ease of implementation. + - Anyone without much experience or training shall be able to follow the SCI specification instructions. + - Calculation of the SCI shall be possible without incurring any cost, for instance, for data, services, or tooling. + - Where possible, teams should consider investing more time or money in calculating their SCI number to increase its accuracy. + +- **The SCI encourages the use of granular data** +In calculating the SCI value, the highest granularity data available should be used to compute each of `O`, `E`, `I`, and `M`. In cases where temporal granular data is not available, annual values shall be used which are the lowest acceptable level of granularity. + +## Exclusions + +### General + +The focus is elimination, not offsetting. One tonne of carbon eliminated (meaning that it was not emitted into the atmosphere) is not the same as one tonne of carbon that has been offset. By far the more preferable goal is never to have emitted the carbon in the first place. + +Only actions that eliminate emissions reduce an SCI score. As such, an SCI score cannot be reduced through carbon offsets, such as [market-based measures](#market-based-measures). + +### Market-based measures + +Market-based measures are financial instruments designed to neutralize or offset carbon emissions. Market-based measures include, but are not limited to the following: + +- Carbon offsets or credits +- A Removal Unit (RMU) +- An Emission Reduction Unit (ERU) +- A Certified Emission Reduction (CER) +- Electricity Attribute Certificates (EACs) +- Power Purchase Agreements (PPAs) +- Renewable Energy Credits (RECs) + +## Bibliography + +The following documents are useful references for implementers and users of this document: + +[1] *The Net-Zero STANDARD*, Science Based Targets initiative (SBTi), https://sciencebasedtargets.org/net-zero diff --git a/Software_Carbon_Intensity/Appendix_A_Further_Information_on_Reporting_Requirements.md b/Software_Carbon_Intensity/Appendix_A_Further_Information_on_Reporting_Requirements.md deleted file mode 100644 index 20788da..0000000 --- a/Software_Carbon_Intensity/Appendix_A_Further_Information_on_Reporting_Requirements.md +++ /dev/null @@ -1,93 +0,0 @@ -# Appendix A: Further information on Reporting Requirements -This appendix provides additional detail on validly formed machine-readable SCI reporting files, in YAML format. - -## File Structure - -To comply with this specification and implement carbon transparency, an entity MUST meet these reporting requirements. The hierachical structure of the YAML file is described below. - -### Data elements to be reported -The following list contains the REQUIRED and OPTIONAL data elements to be reported. - -| Name | Identifier | Optionality | Format | Notes | -| - | - | - | - | - | -| Supporting infrastructure and systems contained within the [Software Boundary](Software_Carbon_Intensity_Specification#software-boundary) | sci/software-boundary | MUST | Text | A description of the software boundary for the entity. | -| [Software Carbon Intensity](Software_Carbon_Intensity_Specification#reporting-the-sci-value) - `SCI`| sci/sci | MUST | Numeric | The [Software Carbon Intensity](Software_Carbon_Intensity_Specification#reporting-the-sci-value) of the entity itself. -| [Software Carbon Intensity](Software_Carbon_Intensity_Specification#reporting-the-sci-value) - `R` baseline value | sci/r | MUST | Numeric | -| [Software Carbon Intensity](Software_Carbon_Intensity_Specification#reporting-the-sci-value) - `R` baseline source| sci/r-source | MUST | Text | The text CAN refer to one of the identifiers in the [pre-set list](Software_Carbon_Intensity_Specification#preset-list-for-baselines), but it can also refer to a similar concept. | -| Product Name, entity name, or Software Product | metadata/name | MUST | Text | | -| Contact name | metadata/contact-name | MUST | Text | The point of contact responsible and accountable for the report. | -| Contact email | metadata/contact-email | MUST | Text | The point of contact responsible and accountable for the report. | -| Organization | metadata/organization | SHOULD | Text | This SHALL be populated where the report is not by an individual contributor, otherwise it is not required. | -| GUID | metadata/guid | MUST | GUID | Following a format in [RFC4122], provided to uniquely identify this particular product, resource, or service. | -| Software or Product Version | metadata/entity-version | MUST | Text | | -| SCI Specification Version | metadata/sci-version | MUST | Numeric | The version of the SCI specification against which this report is being made. | -| Date of Calculation | metadata/calculation-date | MUST | Date | Following a format described in [RFC3339], [a subset](https://ijmacd.github.io/rfc3339-iso8601/) of ISO 8601 | -| Further information on calculation | metadata/calculation-information | MAY | Text | More information on your calculation methodology can be provided as freetext, or as a URL to an external document or software repository. | -| Further information on report | metadata/report-information-url | MAY | URL | More information on your calculation methodology MAY be provided, and this MUST be a URL to an external document or software repository. | - -## YAML File Example - -### 1. Generic Example without an additional report -File name: `25c78b6d-b049-424d-87c1-28f07e41bb23/report.yaml` - -```yaml -sci: - software-boundary: 'The software boundary of this report is limited to a single markdown file, as it is provided for example only.' - sci: 0.5 - r: 1 - r-source: machine-learning-baseline -metadata: - name: Example Report - contact-name: Responsible Point of Contact - contact-email: report-example@greensoftware.foundation - organization: GSF - guid: 25c78b6d-b049-424d-87c1-28f07e41bb23 - entity-version: '0.1' - sci-version: 1.0 - calculation-date: '2021-10-20' - calculation-information: 'https://github.com/Green-Software-Foundation/software_carbon_intensity' - -``` -### 2. Generic Example with an additional report -File name: `25c78b6d-b049-424d-87c1-28f07e41bb23/report.yaml` - -```yaml -sci: - software-boundary: 'The software boundary of this report is limited to a single markdown file, as it is provided for example only.' - sci: 0.5 - r: 1 - r-source: machine-learning-baseline -metadata: - name: Example Report - contact-name: Responsible Point of Contact - contact-email: report-example@greensoftware.foundation - organization: GSF - guid: 25c78b6d-b049-424d-87c1-28f07e41bb23 - entity-version: '0.1' - sci-version: 1.0 - calculation-date: '2021-10-20' - calculation-information: 'https://github.com/Green-Software-Foundation/software_carbon_intensity' - report-information-url: 'https://github.com/Green-Software-Foundation/software_carbon_intensity' - -``` - -### 3. Generic Example by an individual contributor -File name: `25c78b6d-b049-424d-87c1-28f07e41bb23/report.yaml` - -```yaml -sci: - software-boundary: 'The software boundary of this report is limited to a single markdown file, as it is provided for example only.' - sci: 0.5 - r: 1 - r-source: machine-learning-baseline -metadata: - name: Example Report - contact-name: Individual Point of Contact - contact-email: report-example@greensoftware.foundation - guid: 25c78b6d-b049-424d-87c1-28f07e41bb23 - entity-version: '0.1' - sci-version: 1.0 - calculation-date: '2021-10-20' - calculation-information: 'https://github.com/Green-Software-Foundation/software_carbon_intensity' - -``` \ No newline at end of file diff --git a/Software_Carbon_Intensity/case_study_template.md b/Software_Carbon_Intensity/case_study_template.md deleted file mode 100644 index ee48cf3..0000000 --- a/Software_Carbon_Intensity/case_study_template.md +++ /dev/null @@ -1,90 +0,0 @@ -# Case Study Template - -*This is a template to use for case studies that are submitted to apply the SCI. * - -*Please delete the text in italics and replace it with the appropriate information.* - -*For more information on any of the items, the final reference is the [SCI Specification](https://github.com/Green-Software-Foundation/software_carbon_intensity/blob/main/Software_Carbon_Intensity/Software_Carbon_Intensity_Specification.md)* - -*If you find errors, or have further questions, please feel free to engage with us in the [discussions](https://github.com/Green-Software-Foundation/software_carbon_intensity/discussions) section.* - -## Overview - -_Please provide information describing the use case in a few bullet points_ - -## Architecture for the system under consideration - -_An architecture diagram of the system described in this use case_ - -### Technical details of the components in the architecture - -_Textual description with technical details of each component provided in the architecture diagram_ - -## Sites for Software Sustainability Actions - -_For each of the following sub-sections, indicate **where** and **how** actions can be taken in the following categories_: - -### Energy Efficiency - -1. _site of action_ -2. _description of the action_ - -### Hardware Efficiency - -1. _site of action_ -2. _description of the action_ - -### Carbon Awareness - -1. _site of action_ -2. _description of the action_ - -## Procedure - -### (What) Software boundary - -_Describe the components that are included in the software systems, if any major components are not included then please provide **reasons for exclusion**_. - -For example: -- Front end mobile application -- Network traffic between client mobile applications and servers -- Network traffic between servers and database -- Back-end servers. -- Databases -- Test infrastructure - -### (Scale) Functional unit - -_Describe the [functional unit](https://github.com/Green-Software-Foundation/software_carbon_intensity/blob/main/Software_Carbon_Intensity/Software_Carbon_Intensity_Specification.md#functional-unit-r) that best controls the scaling of the software system. - -The choice of functional unit applies to all components in your software boundary. - -For example: -- per API Call -- per User -_ - -### (How) Quantification method - -_For each software component in your software boundary, decide whether you are going to **measure** using real-world data or **calculate** an estimate via models, provide a reason and any useful details for each choice. - -For example: -- Front-end mobile application. - - Calculate an estimate using a model that represents a single user using the application. - - We do not have the right to export real-world measurements from individuals mobiles. - -- Back-end servers - - Calculate an estimate of the energy consumption using models which take as input the CPU utilization of servers. - - Calculate an estimate of the embodied carbon using the Treads low-resolution models based on AWS data. - -_Also, describe the reason for your choice_ - -### (Quantify) SCI Value Calculation - -_Show your work! For each of the component of your software system, show how you arrived at the SCI value._ - -_Guidance for this is available in the [Methodology summary](https://github.com/Green-Software-Foundation/software_carbon_intensity/blob/main/Software_Carbon_Intensity/Software_Carbon_Intensity_Specification.md#methodology-summary) section._ - -### (Report) - -_Disclose the software boundary and your calculation methodology, including items that you might not have included in the previous sections_ \ No newline at end of file diff --git a/Software_Carbon_Intensity/images/GSF_logo.png b/Software_Carbon_Intensity/images/GSF_logo.png deleted file mode 100644 index e7cf4cce9ca10ca65b2fec5d331696dd7bc13b8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36305 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�(N9-!XXD_K&9qCn;EY-29*I3f%mUht* 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
element with the HTML output. +const htmlOutput = ` + + + + + + Software Carbon Intensity (SCI) Specification + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
+
${contentHTML}
+
+
+ +
+ +

+ Copyright © ${new Date().getFullYear()} Joint Development Foundation Projects, LLC,
+ Green Software Foundation Series +

+
+ + + +`; + +// Write the HTML output to index.html. +fs.writeFileSync("index.html", htmlOutput, "utf8"); + +console.log("index.html has been created."); diff --git a/index.html b/index.html new file mode 100644 index 0000000..ac3868e --- /dev/null +++ b/index.html @@ -0,0 +1,393 @@ + + + + + + + Software Carbon Intensity (SCI) Specification + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
+

+ + Software Carbon Intensity (SCI) Specification

+ + Introduction

Software systems cause emissions through the hardware that they operate on, both through the energy that the physical hardware consumes and the emissions associated with manufacturing the hardware. This specification defines a methodology for calculating the rate of carbon emissions for a software system. The purpose is to help users and developers make informed choices about which tools, approaches, architectures, and services they use in the future. It is a score rather than a total; lower numbers are better than higher numbers, and reaching 0 is impossible. This specification is focused on helping users and developers understand how to improve software to reduce or avoid the creation of emissions.

+

Reducing an SCI score is only possible through the elimination of emissions. That can be achieved by modifying a software system to use less physical hardware, less energy, or consume lower-carbon energy sources. Neutralization or avoidance offsets do not reduce an SCI score (see exclusions section). This makes the SCI an ideal strategy that organizations can adopt to meet climate targets focused on eliminating emissions, such as those specified by [1].

+

The SCI is for everyone. It is possible to calculate an SCI score for any software application, from a large, distributed cloud system to a small monolithic open source library, any on-premise application, or even a serverless function. The environment the product or service is running in can also vary; from personal computers, private data centers or a hyperscale cloud.

+

Software practitioners have a significant role to play in collectively reducing the SCI score during the design, development, and delivery of software applications. The following list provides some strategies that can be used to do this across different software roles:

+
    +
  • For a software programmer, this implies writing energy efficient code.
  • +
  • For an AI/ML developer, it implies model optimization, using pre-trained models or leveraging optimized hardware for training.
  • +
  • For a database engineer, this comprises choices like schema design, choice of storage, and query optimizations.
  • +
  • For a DevOps practitioner, this requires creating a carbon-aware pipeline and considering when to schedule builds and leverage clean energy.
  • +
  • For QA engineers, it involves creating energy efficient test automation and performance testing scripts across browsers and devices.
  • +
  • For an architect, this implies choices like serverless or event driven architectures, infrastructure optimization, and design for carbon-aware systems.
  • +
+

The SCI encourages calculation using granular real-world data, which is challenging to obtain in some environments, particularly the public cloud. Access to the data needed for higher resolution calculations might not always be available. Where this is the case, users of this specification are strongly advised to request such data from their suppliers (be they hardware, hosting, or other).

+

In situations where there is a lack of access, capability, or rights to the necessary real-world data, the SCI allows for data generated through modeling, using best estimates instead.

+

+ + Scope

This specification describes a methodology for calculating the rate of carbon emissions for a software system; that is, its SCI score. The purpose of this score is to increase awareness and transparency of an application's sustainability credentials. The score will help software practitioners make better, evidence-based decisions during system design, development, and deployment, that will ultimately minimize carbon emissions. A reliable, consistent, fair and comparable measure allows targets to be defined during development and progress to be tracked.

+

+ + Terms and definitions

For the purposes of this document, the following terms and definitions apply.

+

ISO and IEC maintain terminological databases for use in standardization at the following addresses: +- ISO Online browsing platform: available at https://www.iso.org/obp +- IEC Electropedia: available at http://www.electropedia.org/

+

T.1
action
explicit outcome taken, or change avoided, depending on the quantifiable emissions measured by this specification

+

Note to entry: Actions generally relate to using less electricity, using electricity more intelligently, or using less hardware.

+

T.2
carbon-aware
attribute of software or hardware that adjusts its behavior (consumption of inputs, processing, or production of outputs) in response to the carbon intensity of the energy it consumes

+

The following abbreviations are used throughout this specification: +- E – Energy consumed by a software system +- I – Region-specific carbon intensity +- M – Embodied emissions of the hardware needed to operate a software system +- O – Operational emissions based on the emissions caused by energy consumption +- R – Functional unit

+

T.3 +carbon
Greenhouse gases are a group of gases contributing to global warming. In this specification we use 'carbon' as a broad term to refer to the impact of all types of emissions and activities on global warming.

+

+ + Software sustainability actions

All actions that serve to reduce the carbon emissions of a piece of software fit into one of the following categories:

+
    +
  • Energy Efficiency: Actions taken to make software use less electricity to perform the same function.
  • +
  • Hardware Efficiency: Actions taken to make software use fewer physical resources to perform the same function.
  • +
  • Carbon Awareness: Actions taken to time- or region-shift software computation to take advantage of cleaner, more renewable or lower carbon sources of electricity.
  • +
+

It is the intent of this specification to encourage more of these actions to be taken during the design, development, and maintenance of software applications.

+

+ + Procedure

The steps required to calculate and report an SCI score are:

+
    +
  1. Bound: Decide on the software boundary; i.e., the components of a software system to include.
  2. +
  3. Scale: As the SCI is a rate (carbon emissions per one functional unit), pick the functional unit which best describes how the application scales.
  4. +
  5. Define: For each software component listed in the software boundary, decide on the quantification method; real-world measurements, based on telemetry, or lab-based measurements, based on models.
  6. +
  7. Quantify: Calculate a rate for every software component. The SCI value of the whole application is the sum of the SCI values for every software component in the system.
  8. +
  9. Report: Disclose the SCI score, software boundary, and the calculation methodology.
  10. +
+

+ + Methodology summary

+ + General

SCI is a rate; carbon emissions per one unit of R. The equation used to calculate the SCI value of a software system is:

+

SCI = C per R

+

Where:

+
    +
  • The total amount of carbon C the software causes to be emitted.
  • +
  • All the elements in the SCI equation scale by the same functional unit of R (e.g., carbon emissions per additional user, API-call, or ML training run).
  • +
+

This can be expanded to:

+

SCI = (O + M) per R

+

+ + Operational emissions

+ + General

To calculate the operational emissions associated with software, multiply the electricity consumption of the hardware the software is running on by the region-specific carbon intensity.

+

To calculate the operational emissions O for a software application, use the following:

+

O = (E * I)

+

+ + Energy

This is the energy consumed by a software system for a functional unit of work. This could be applied to several taxonomies:

+
    +
  • Datacenter
  • +
  • Individual machine (e.g., VM/Node)
  • +
  • Individual service (e.g., API call or ML training run)
  • +
  • Execution of code
  • +
+

Units: this shall be in kilowatt hours (kWh).

+

The energy consumption should include all energy consumed by hardware reserved or provisioned, not just the hardware actually used to meet the software needs.

+

+ + Region-specific carbon intensity

The carbon intensity of electricity is a measure of how much carbon (CO2eq) emissions are produced per kilowatt-hour (kWh) of electricity consumed.

+

Region-specific carbon intensity factors measure the grid carbon intensity of electricity in a grid region. If the electricity consumption is connected to a grid, the short run marginal, long run marginal, or average emissions grid intensity of that grid shall be used, which excludes any market-based measures. If the electricity consumption is not connected to a larger regional grid, an appropriate emissions factor for that system shall be used. From a developer perspective, only the location-based info is important in terms of the impact on eliminating carbon emissions. This excludes market-based measures and is distinct from 100% renewable energy claims.

+

Units: this shall be in grams of carbon per kilowatt hours (gCO2eq/kWh).

+

+ + Embodied emissions

Embodied carbon (otherwise referred to as “embedded carbon”) is the amount of carbon emitted during the creation and disposal of a hardware device.

+

When software runs on a device, a fraction of the total embodied emissions of the device is allocated to the software. This is the value of M that needs to be calculated in the SCI equation.

+

This fraction consists of both a time- and resource-share. The length of time that the software runs on the device determines its time-share. The percentage of the device reserved just for that application during the time-share determines that application's resource-share.

+

To calculate the time-share, amortize the total embodied carbon over the expected life span of the device and then extrapolate based on the time reserved for the usage. For example, if the device’s embodied carbon was 1000kg with an expected lifespan of four years and it was reserved for use for one hour, the time-share embodied emissions would be 1000 * 1/(4*365*24) or around 28g of the total.

+

To calculate resource-share, look at the share of total available resources reserved for use by the software. For instance, the percentage of total virtual CPUs reserved for the software is a good choice for the resource-share metric in the virtualized cloud space.

+

To calculate the share of M for a software application, use the equation:

+

M = TE * TS * RS

+

Where:

+
    +
  • TE = Total Embodied Emissions; the sum of Life Cycle Assessment (LCA) emissions for all hardware components.
  • +
  • TS = Time-share; the share of the total life span of the hardware reserved for use by the software.
  • +
  • RS = Resource-share; the share of the total available resources of the hardware reserved for use by the software.
  • +
+

The equation can be expanded further:

+

M = TE * (TiR/EL) * (RR/ToR)

+

Where:

+
    +
  • TiR = Time Reserved; the length of time the hardware is reserved for use by the software.
  • +
  • EL = Expected Lifespan; the anticipated time that the equipment will be installed.
  • +
  • RR = Resources Reserved; the number of resources reserved for use by the software.
  • +
  • ToR = Total Resources; the total number of resources available.
  • +
+

An estimate of all the embodied emissions for the hardware used within the software boundary shall be included.

+

Simple models to estimate embodied emissions may be used; however, the most granular data possible and ideally emissions data from a device’s LCA when calculating the embodied carbon should be used.

+

Since the purpose of the SCI is the elimination of emissions M shall not include any market-based measures.

+

Units: this shall be in grams of carbon (gCO2eq).

+

+ + Functional unit conversion

An aggregate SCI score can be composed of multiple component SCI scores.

+

Then, as long as the functional unit of R is the same across all the component SCI scores, these can be summed to calculate the aggregate SCI. To sum multiple component SCI scores into one aggregate score, the functional unit R shall be the same across all components.

+

If the functional unit of a software component is not the same as the aggregate functional unit, then the component SCI score needs to be converted to match that of the aggregate SCI functional unit. Details of any unit conversion factors used in calculating the SCI score shall be disclosed.

+

+ + Software boundary

The first step in generating an SCI score is deciding what the boundaries of the software system are; i.e., what software components to include or exclude in the calculation of the SCI score.

+

The calculation of SCI shall include all supporting infrastructure and systems that significantly contribute to the software’s operation.

+

Supporting infrastructure and systems may include:

+
    +
  • compute resources
  • +
  • storage
  • +
  • networking equipment
  • +
  • memory
  • +
  • monitoring
  • +
  • idle machines
  • +
  • logging
  • +
  • scanning
  • +
  • build and deploy pipelines
  • +
  • testing
  • +
  • training ML models
  • +
  • operations
  • +
  • backup
  • +
  • resources to support redundancy
  • +
  • resources to support failover
  • +
  • End user devices
  • +
  • IoT devices
  • +
  • Edge devices
  • +
+

If the boundary includes on-premise and/or cloud data center operations, E should take into account the efficiency of the data center, including cooling and other energy consumption necessary to operate a data center. The data center's energy efficiency is usually available as a PUE (Power Usage Effectiveness) value.

+

+ + Functional unit

The second step in generating an SCI score is deciding which functional unit will be used to describe how the application scales. First, decide on the functional unit, using the choice of R. Then calculate how much C is emitted per unit of R.

+

For instance, if the application scales by number of users then choose this as the functional unit.

+

A consistent choice of R across all the components in the software boundary shall be used.

+

A suggested list of functional units includes:

+
    +
  • API call/request
  • +
  • Benchmark
  • +
  • User
  • +
  • Machine
  • +
  • Minute/time unit
  • +
  • Device
  • +
  • Physical site
  • +
  • Data volume
  • +
  • Batch/Scheduled Job
  • +
  • Transaction
  • +
  • Database read/write
  • +
+

+ + Quantification method

+ + General

The third step in generating an SCI score is deciding the approach to take when quantifying the carbon emissions for each component in the software boundary.

+

The goal of the SCI is to quantify how much C (carbon) is emitted per one unit of R.

+

There are two main approaches to quantifying carbon emissions (C), measurement via real-world data or calculation via models.

+

Each component in the software boundary may use either measurement or calculation to quantify the carbon emissions.

+

It is strongly advised that suppliers (be they hardware, hosting, or other) be contacted regarding the data needed in the resolution required for quantifying the SCI score.

+

+ + Measurement

Carbon emissions may be quantified by measuring the total real-world carbon emissions of the component (C) over a time period and dividing by the number of functional units (R) in the same time period to get C per R. For instance, data regarding the real-world usage of the application "in the wild" might be measured and then divided by the number of users serviced in the same time period to get C per user.

+

+ + Calculation

What one unit of R looks like may be modelled and the total carbon (C) calculated for executing one functional unit of work (R) in a controlled lab environment. For instance, a benchmark application may be created that models a user interacting with your application and then measure the C emitted per run of that benchmark. The result is still a C per user.

+

+ + Comparing an SCI score to a baseline

When taking an action to reduce the carbon intensity of a piece of software, the intensity should be compared to a baseline. The baseline shall be calculated using an identical methodology to how the proposed SCI was calculated, except excluding the proposed action(s). The measurements, assumptions, models, functional units, etc. shall remain the same between the baseline and proposed SCI.

+

+ + Core characteristics

As this specification develops, the following core characteristics shall remain true:

+
    +
  • The SCI is sensitive to carbon awareness, energy efficiency, and hardware efficiency

    +
      +
    • The purpose of the SCI is to encourage actions that reduce the carbon emissions of software. Therefore, the SCI shall be sensitive to those actions described in this document under Software Sustainability Actions; specifically, carbon awareness, energy efficiency, and hardware efficiency.
    • +
    • If an application's SCI is X, and then actions are taken to make the application more carbon aware, more energy efficient, or more hardware efficient, the value of X shall go down.
    • +
    +
  • +
  • The SCI takes a systems-impact view

    +
      +
    • The purpose of the SCI is to encourage actions that reduce carbon emissions of software in a way that creates reductions at a system-wide level rather than just at a local level. Local-level optimizations may lead to micro improvements but may have negative downstream impacts at a macro level that negate the impact of those actions.
    • +
    • Such a systems view shall be adopted by articulating the boundaries of the software and its associated infrastructure, keeping in mind the exclusions mentioned in this specification.
    • +
    +
  • +
  • The SCI is easy to implement
    To achieve impact at scale, the SCI encourages adoption through ease of implementation.

    +
      +
    • Anyone without much experience or training shall be able to follow the SCI specification instructions.
    • +
    • Calculation of the SCI shall be possible without incurring any cost, for instance, for data, services, or tooling.
    • +
    • Where possible, teams should consider investing more time or money in calculating their SCI number to increase its accuracy.
    • +
    +
  • +
  • The SCI encourages the use of granular data
    In calculating the SCI value, the highest granularity data available should be used to compute each of O, E, I, and M. In cases where temporal granular data is not available, annual values shall be used which are the lowest acceptable level of granularity.

    +
  • +
+

+ + Exclusions

+ + General

The focus is elimination, not offsetting. One tonne of carbon eliminated (meaning that it was not emitted into the atmosphere) is not the same as one tonne of carbon that has been offset. By far the more preferable goal is never to have emitted the carbon in the first place.

+

Only actions that eliminate emissions reduce an SCI score. As such, an SCI score cannot be reduced through carbon offsets, such as market-based measures.

+

+ + Market-based measures

Market-based measures are financial instruments designed to neutralize or offset carbon emissions. Market-based measures include, but are not limited to the following:

+
    +
  • Carbon offsets or credits
  • +
  • A Removal Unit (RMU)
  • +
  • An Emission Reduction Unit (ERU)
  • +
  • A Certified Emission Reduction (CER)
  • +
  • Electricity Attribute Certificates (EACs)
  • +
  • Power Purchase Agreements (PPAs)
  • +
  • Renewable Energy Credits (RECs)
  • +
+

+ + Bibliography

The following documents are useful references for implementers and users of this document:

+

[1] The Net-Zero STANDARD, Science Based Targets initiative (SBTi), https://sciencebasedtargets.org/net-zero

+
+
+
+ +
+ +

+ Copyright © 2024 Joint Development Foundation Projects, LLC,
+ Green Software Foundation Series +

+
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c8868e3 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1314 @@ +{ + "name": "sci", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sci", + "version": "1.0.0", + "devDependencies": { + "@tailwindcss/typography": "^0.5.10", + "gray-matter": "^4.0.3", + "marked": "^9.0.0", + "nodemon": "^3.0.1", + "tailwindcss": "^3.3.3" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", + "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "dev": true, + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dev": true, + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz", + "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/marked": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-9.0.0.tgz", + "integrity": "sha512-37yoTpjU+TSXb9OBYY5n78z/CqXh76KiQj9xsKxEdztzU9fRLmbWO5YqKxgCVGKlNdexppnbKTkwB3RipVri8w==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nodemon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz", + "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", + "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", + "dev": true, + "engines": { + "node": ">= 14" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a48db68 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "sci", + "version": "1.0.0", + "description": "Software Carbon Intensity (SCI) Specification", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "node assets/js/compile.js && tailwindcss -o assets/css/styles.css", + "dev": "nodemon -e md,js --exec \"npm run build\"" + }, + "devDependencies": { + "@tailwindcss/typography": "^0.5.10", + "gray-matter": "^4.0.3", + "marked": "^9.0.0", + "nodemon": "^3.0.1", + "tailwindcss": "^3.3.3" + } +} diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..d3d01ed --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,31 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ["./index.html"], + theme: { + extend: { + colors: { + primary: { + "darkest-2": "#002625", + darkest: "#002c2a", + darker: "#003734", + dark: "#00524f", + default: "#006d69", + light: "#80b6b4", + lighter: "#bfdbd9", + "lightest-2": "#e5f0f0", + "lightest-1": "#f2f8f7", + }, + accent: { + darker: "#576629", + dark: "#83993e", + default: "#aecc53", + light: "#d7e6a9", + lighter: "#ebf2d4", + "lightest-2": "#f7faee", + "lightest-1": "#fbfcf6", + }, + }, + }, + }, + plugins: [require("@tailwindcss/typography")], +};

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 diff --git a/Software_Carbon_Intensity/images/readme.md b/Software_Carbon_Intensity/images/readme.md deleted file mode 100644 index 55f985c..0000000 --- a/Software_Carbon_Intensity/images/readme.md +++ /dev/null @@ -1 +0,0 @@ -place holder diff --git a/Software_Carbon_Intensity/index.yaml b/Software_Carbon_Intensity/index.yaml deleted file mode 100644 index 954672d..0000000 --- a/Software_Carbon_Intensity/index.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Software Carbon Intensity Specification" -status: "Draft" -version: "v.Alpha" -organisationName: "Green Software Foundation" -date: "2021-11-11" -copyrightDate: "2021" -logo: "images/GSF_logo.png" -documentName: "Software_Carbon_Intensity_Specification-v.Alpha" -files: - - License.md - - Software_Carbon_Intensity_Specification.md - - Appendix_A.md ---- diff --git a/assets/css/styles.css b/assets/css/styles.css new file mode 100644 index 0000000..a17cd62 --- /dev/null +++ b/assets/css/styles.css @@ -0,0 +1,1174 @@ +/* +! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com +*/ + +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; + /* 1 */ + border-width: 0; + /* 2 */ + border-style: solid; + /* 2 */ + border-color: #e5e7eb; + /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +5. Use the user's configured `sans` font-feature-settings by default. +6. Use the user's configured `sans` font-variation-settings by default. +*/ + +html { + line-height: 1.5; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ + -moz-tab-size: 4; + /* 3 */ + -o-tab-size: 4; + tab-size: 4; + /* 3 */ + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + /* 4 */ + font-feature-settings: normal; + /* 5 */ + font-variation-settings: normal; + /* 6 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ + +body { + margin: 0; + /* 1 */ + line-height: inherit; + /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; + /* 1 */ + color: inherit; + /* 2 */ + border-top-width: 1px; + /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured `mono` font family by default. +2. Correct the odd `em` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; + /* 1 */ + border-color: inherit; + /* 2 */ + border-collapse: collapse; + /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-feature-settings: inherit; + /* 1 */ + font-variation-settings: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + font-weight: inherit; + /* 1 */ + line-height: inherit; + /* 1 */ + color: inherit; + /* 1 */ + margin: 0; + /* 2 */ + padding: 0; + /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; + /* 1 */ + background-color: transparent; + /* 2 */ + background-image: none; + /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to `inherit` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Reset default styling for dialogs. +*/ + +dialog { + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::-moz-placeholder, textarea::-moz-placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +input::placeholder, +textarea::placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role="button"] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ + +:disabled { + cursor: default; +} + +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + /* 1 */ + vertical-align: middle; + /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +/* Make elements with the HTML hidden attribute stay hidden by default */ + +[hidden] { + display: none; +} + +*, ::before, ::after { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +::backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +.prose { + color: var(--tw-prose-body); + max-width: 65ch; +} + +.prose :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 1.25em; + margin-bottom: 1.25em; +} + +.prose :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-lead); + font-size: 1.25em; + line-height: 1.6; + margin-top: 1.2em; + margin-bottom: 1.2em; +} + +.prose :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-links); + text-decoration: underline; + font-weight: 500; +} + +.prose :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-bold); + font-weight: 600; +} + +.prose :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: decimal; + margin-top: 1.25em; + margin-bottom: 1.25em; + padding-left: 1.625em; +} + +.prose :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: upper-alpha; +} + +.prose :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: lower-alpha; +} + +.prose :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: upper-alpha; +} + +.prose :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: lower-alpha; +} + +.prose :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: upper-roman; +} + +.prose :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: lower-roman; +} + +.prose :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: upper-roman; +} + +.prose :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: lower-roman; +} + +.prose :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: decimal; +} + +.prose :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: disc; + margin-top: 1.25em; + margin-bottom: 1.25em; + padding-left: 1.625em; +} + +.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { + font-weight: 400; + color: var(--tw-prose-counters); +} + +.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { + color: var(--tw-prose-bullets); +} + +.prose :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + margin-top: 1.25em; +} + +.prose :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + border-color: var(--tw-prose-hr); + border-top-width: 1px; + margin-top: 3em; + margin-bottom: 3em; +} + +.prose :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 500; + font-style: italic; + color: var(--tw-prose-quotes); + border-left-width: 0.25rem; + border-left-color: var(--tw-prose-quote-borders); + quotes: "\201C""\201D""\2018""\2019"; + margin-top: 1.6em; + margin-bottom: 1.6em; + padding-left: 1em; +} + +.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { + content: open-quote; +} + +.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { + content: close-quote; +} + +.prose :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 800; + font-size: 2.25em; + margin-top: 0; + margin-bottom: 0.8888889em; + line-height: 1.1111111; +} + +.prose :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 900; + color: inherit; +} + +.prose :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 700; + font-size: 1.5em; + margin-top: 2em; + margin-bottom: 1em; + line-height: 1.3333333; +} + +.prose :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 800; + color: inherit; +} + +.prose :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + font-size: 1.25em; + margin-top: 1.6em; + margin-bottom: 0.6em; + line-height: 1.6; +} + +.prose :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 700; + color: inherit; +} + +.prose :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + margin-top: 1.5em; + margin-bottom: 0.5em; + line-height: 1.5; +} + +.prose :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 700; + color: inherit; +} + +.prose :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; +} + +.prose :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + display: block; + margin-top: 2em; + margin-bottom: 2em; +} + +.prose :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 500; + font-family: inherit; + color: var(--tw-prose-kbd); + box-shadow: 0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%), 0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%); + font-size: 0.875em; + border-radius: 0.3125rem; + padding-top: 0.1875em; + padding-right: 0.375em; + padding-bottom: 0.1875em; + padding-left: 0.375em; +} + +.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-code); + font-weight: 600; + font-size: 0.875em; +} + +.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { + content: "`"; +} + +.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { + content: "`"; +} + +.prose :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; + font-size: 0.875em; +} + +.prose :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; + font-size: 0.9em; +} + +.prose :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-pre-code); + background-color: var(--tw-prose-pre-bg); + overflow-x: auto; + font-weight: 400; + font-size: 0.875em; + line-height: 1.7142857; + margin-top: 1.7142857em; + margin-bottom: 1.7142857em; + border-radius: 0.375rem; + padding-top: 0.8571429em; + padding-right: 1.1428571em; + padding-bottom: 0.8571429em; + padding-left: 1.1428571em; +} + +.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + background-color: transparent; + border-width: 0; + border-radius: 0; + padding: 0; + font-weight: inherit; + color: inherit; + font-size: inherit; + font-family: inherit; + line-height: inherit; +} + +.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { + content: none; +} + +.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { + content: none; +} + +.prose :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + width: 100%; + table-layout: auto; + text-align: left; + margin-top: 2em; + margin-bottom: 2em; + font-size: 0.875em; + line-height: 1.7142857; +} + +.prose :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + border-bottom-width: 1px; + border-bottom-color: var(--tw-prose-th-borders); +} + +.prose :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + vertical-align: bottom; + padding-right: 0.5714286em; + padding-bottom: 0.5714286em; + padding-left: 0.5714286em; +} + +.prose :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + border-bottom-width: 1px; + border-bottom-color: var(--tw-prose-td-borders); +} + +.prose :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + border-bottom-width: 0; +} + +.prose :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + vertical-align: baseline; +} + +.prose :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + border-top-width: 1px; + border-top-color: var(--tw-prose-th-borders); +} + +.prose :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + vertical-align: top; +} + +.prose :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; + margin-bottom: 0; +} + +.prose :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-captions); + font-size: 0.875em; + line-height: 1.4285714; + margin-top: 0.8571429em; +} + +.prose { + --tw-prose-body: #374151; + --tw-prose-headings: #111827; + --tw-prose-lead: #4b5563; + --tw-prose-links: #111827; + --tw-prose-bold: #111827; + --tw-prose-counters: #6b7280; + --tw-prose-bullets: #d1d5db; + --tw-prose-hr: #e5e7eb; + --tw-prose-quotes: #111827; + --tw-prose-quote-borders: #e5e7eb; + --tw-prose-captions: #6b7280; + --tw-prose-kbd: #111827; + --tw-prose-kbd-shadows: 17 24 39; + --tw-prose-code: #111827; + --tw-prose-pre-code: #e5e7eb; + --tw-prose-pre-bg: #1f2937; + --tw-prose-th-borders: #d1d5db; + --tw-prose-td-borders: #e5e7eb; + --tw-prose-invert-body: #d1d5db; + --tw-prose-invert-headings: #fff; + --tw-prose-invert-lead: #9ca3af; + --tw-prose-invert-links: #fff; + --tw-prose-invert-bold: #fff; + --tw-prose-invert-counters: #9ca3af; + --tw-prose-invert-bullets: #4b5563; + --tw-prose-invert-hr: #374151; + --tw-prose-invert-quotes: #f3f4f6; + --tw-prose-invert-quote-borders: #374151; + --tw-prose-invert-captions: #9ca3af; + --tw-prose-invert-kbd: #fff; + --tw-prose-invert-kbd-shadows: 255 255 255; + --tw-prose-invert-code: #fff; + --tw-prose-invert-pre-code: #d1d5db; + --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%); + --tw-prose-invert-th-borders: #4b5563; + --tw-prose-invert-td-borders: #374151; + font-size: 1rem; + line-height: 1.75; +} + +.prose :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; + margin-bottom: 0; +} + +.prose :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; +} + +.prose :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-left: 0.375em; +} + +.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-left: 0.375em; +} + +.prose :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0.75em; + margin-bottom: 0.75em; +} + +.prose :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 1.25em; +} + +.prose :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-bottom: 1.25em; +} + +.prose :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 1.25em; +} + +.prose :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-bottom: 1.25em; +} + +.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0.75em; + margin-bottom: 0.75em; +} + +.prose :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 1.25em; + margin-bottom: 1.25em; +} + +.prose :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0.5em; + padding-left: 1.625em; +} + +.prose :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-left: 0; +} + +.prose :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-right: 0; +} + +.prose :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-top: 0.5714286em; + padding-right: 0.5714286em; + padding-bottom: 0.5714286em; + padding-left: 0.5714286em; +} + +.prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-left: 0; +} + +.prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-right: 0; +} + +.prose :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; +} + +.prose :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-bottom: 0; +} + +.absolute { + position: absolute; +} + +.relative { + position: relative; +} + +.left-0 { + left: 0px; +} + +.top-2 { + top: 0.5rem; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.my-16 { + margin-top: 4rem; + margin-bottom: 4rem; +} + +.my-8 { + margin-top: 2rem; + margin-bottom: 2rem; +} + +.-ml-5 { + margin-left: -1.25rem; +} + +.mb-2 { + margin-bottom: 0.5rem; +} + +.mb-5 { + margin-bottom: 1.25rem; +} + +.grid { + display: grid; +} + +.hidden { + display: none; +} + +.h-12 { + height: 3rem; +} + +.h-4 { + height: 1rem; +} + +.w-4 { + width: 1rem; +} + +.w-auto { + width: auto; +} + +.max-w-4xl { + max-width: 56rem; +} + +.border-l-4 { + border-left-width: 4px; +} + +.border-l-accent-default { + --tw-border-opacity: 1; + border-left-color: rgb(174 204 83 / var(--tw-border-opacity)); +} + +.bg-accent-lighter { + --tw-bg-opacity: 1; + background-color: rgb(235 242 212 / var(--tw-bg-opacity)); +} + +.bg-accent-lightest-1 { + --tw-bg-opacity: 1; + background-color: rgb(251 252 246 / var(--tw-bg-opacity)); +} + +.p-4 { + padding: 1rem; +} + +.px-8 { + padding-left: 2rem; + padding-right: 2rem; +} + +.pr-5 { + padding-right: 1.25rem; +} + +.text-center { + text-align: center; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.font-bold { + font-weight: 700; +} + +.text-primary-dark { + --tw-text-opacity: 1; + color: rgb(0 82 79 / var(--tw-text-opacity)); +} + +.underline { + text-decoration-line: underline; +} + +.no-underline { + text-decoration-line: none; +} + +.hover\:underline:hover { + text-decoration-line: underline; +} + +.group:hover .group-hover\:block { + display: block; +} \ No newline at end of file diff --git a/assets/favicon.svg b/assets/favicon.svg new file mode 100644 index 0000000..627c41a --- /dev/null +++ b/assets/favicon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/js/compile.js b/assets/js/compile.js new file mode 100644 index 0000000..c96b3da --- /dev/null +++ b/assets/js/compile.js @@ -0,0 +1,99 @@ +const marked = require("marked"); +const fs = require("fs"); +const matter = require('gray-matter'); + +// Read your Markdown content from a file or provide it as a string. +const markdownContent = fs.readFileSync("SPEC.md", "utf8"); + +// Create a custom renderer with your HTML template. +const customRenderer = new marked.Renderer(); + +// Get frontmatter from markdown +const { data:frontmatter } = matter(markdownContent); + +// Remove the front matter from the markdown content. +const markdownContentWithoutFrontmatter = markdownContent.replace(/^---[\s\S]*?---/, ""); + +// Add an 'id' attribute to headings with the heading text as the 'id' value. +customRenderer.heading = function (text, level) { + const id = text.toLowerCase().replace(/[^\w]+/g, "-"); + return ` + ${ level > 1 ? `` : ""} + ${text}`; +}; + +// Set the custom renderer in the marked options. +marked.setOptions({ + renderer: customRenderer, +}); + +// Convert the Markdown content to HTML using marked. +const contentHTML = marked.parse(markdownContentWithoutFrontmatter); + +// Replace the entire content of a