diff --git a/package.json b/package.json index 0638f85a813c..fdb211fa1261 100644 --- a/package.json +++ b/package.json @@ -130,8 +130,8 @@ "remark-html": "^16.0.1", "remark-refractor": "montogeek/remark-refractor", "rimraf": "^6.0.1", - "sass": "^1.79.5", - "sass-loader": "^16.0.4", + "sass": "^1.93.2", + "sass-loader": "^16.0.5", "sirv-cli": "^3.0.0", "sitemap-static": "^0.4.2", "static-site-generator-webpack-plugin": "^3.4.1", @@ -139,7 +139,7 @@ "tailwindcss": "^3.4.16", "tap-spot": "^1.1.2", "unist-util-visit": "^5.0.0", - "webpack": "^5.97.1", + "webpack": "^5.102.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^6.0.1", "webpack-dev-server": "^5.2.2", diff --git a/src/content/concepts/governance.mdx b/src/content/concepts/governance.mdx new file mode 100644 index 000000000000..4d76996e761c --- /dev/null +++ b/src/content/concepts/governance.mdx @@ -0,0 +1,105 @@ +--- +title: Webpack Project Governance +sort: 15 +contributors: + - Jatinyadav29 +--- + +webpack is an open source project that depends on contributions from the community. Anyone may contribute to the project at any time by submitting code, participating in discussions, making suggestions, or any other contribution they see fit. This document describes how various types of contributors work within the webpack project. + +- [Roles and Responsibilities](#roles-and-responsibilities) + - [Contributors](#contributors) + - [Committers](#committers) + - [Reviewers](#reviewers) + +- [Technical Steering Committee](#technical-steering-committee) + - [TSC Meetings](#tsc-meetings) + +- [Consensus Seeking Process](#consensus-seeking-process) + +## Roles and Responsibilities + +### Contributors + +Contributors are community members who contribute in concrete ways to the project, most often in the form of code and/or documentation. Anyone can become a Contributor, and contributions can take many forms. There is no expectation of commitment to the project, no specific skill requirements, and no selection process. + +Contributors have read-only access to source code and so submit changes via pull requests. Contributor pull requests have their contribution reviewed and merged by a TSC member. TSC members and Committers work with Contributors to review their code and prepare it for merging. + +As Contributors gain experience and familiarity with the project, their profile within, and commitment to, the community will increase. At some stage, they may find themselves being nominated as either a Website Team Member or Committer by an existing Website Team Member or Committer. + +### Committers + +Committers are community members who have shown that they are committed to the continued development of the project through ongoing engagement with the community. Committers are given push access to the project's GitHub repos and must abide by the project's [Contribution Guidelines](https://github.com/webpack/webpack/blob/main/CONTRIBUTING.md). + +To become a Committer: + +- One must have shown a willingness and ability to participate in the project as a team player. Typically, a potential Committer will need to show that they have an understanding of and alignment with the project, its objectives, and its strategy. +- Committers are expected to be respectful of every community member and to work collaboratively in the spirit of inclusion. + +New Committers can be nominated by any existing Committer. Once they have been nominated, there will be a vote by the TSC members. + +It is important to recognize that committership is a privilege, not a right. That privilege must be earned and once earned it can be removed by the TSC members by a standard TSC motion. However, under normal circumstances committership exists for as long as the Committer wishes to continue engaging with the project. + +A Committer who shows an above-average level of contribution to the project, particularly with respect to its strategic direction and long-term health, may be nominated to become a Reviewer, described below. + +### Reviewers + +Reviewers are community members who have contributed a significant amount of time to the project through triaging of issues, fixing bugs, implementing enhancements/features, and are trusted community leaders. + +Reviewers may perform all of the duties of Committers, and also: + +- May merge external pull requests for accepted issues upon reviewing and approving the changes. +- May merge their own pull requests once they have collected the feedback they deem necessary. (No pull request should be merged without at least one Committer/Reviewer/TSC member comment stating they've looked at the code.) + +To become a Reviewer: + +- Work in a helpful and collaborative way with the community. +- Have given good feedback on others' submissions and displayed an overall understanding of the code quality standards for the project. +- Commit to being a part of the community for the long term. + +A Committer is invited to become a Reviewer by existing Reviewers and TSC members. A nomination will result in discussion and then a decision by the TSC. + +## Technical Steering Committee + +A subset of the collaborators forms the Technical Steering Committee (TSC). +The TSC has final authority over this project, including: + +- Technical direction +- Project governance and process (including this policy) +- Contribution policy +- GitHub repository hosting +- Conduct guidelines +- Maintaining the list of collaborators + +The current list of TSC members is in [the project README](https://github.com/webpack/webpack/blob/main/README.md#current-project-members). + +The [TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md) governs the operations of the TSC. All changes to the Charter need approval by the OpenJS Foundation Cross-Project Council (CPC). + +### TSC Meetings + +The TSC meets in a Discord conference call or Discord thread. Each year, the TSC elects a chair to run the meetings. + +Any community member can create a GitHub issue asking that the TSC review something. +The TSC may invite people to take part in a non-voting capacity. + +During the meeting, the TSC chair ensures that someone takes minutes. After the meeting, the TSC chair ensures that someone opens a pull request with the minutes. + +The TSC seeks to resolve as many issues as possible outside meetings using [the webpack's governance repository issue tracker](https://github.com/webpack/governance/issues). + +The process in the issue tracker is: + +- A TSC member opens an issue explaining the proposal/issue and @-mentions `@webpack/tsc`. +- The proposal passes if, after 72 hours, there are two or more TSC voting member approvals and no TSC voting member opposition. +- If there is an extended impasse, a TSC member may make a motion for a vote. + +## Consensus Seeking Process + +The TSC follows a [Consensus Seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making) decision-making model. + +When an agenda item has appeared to reach a consensus, the moderator will ask “Does anyone object?” as a final call for dissent from the consensus. + +If an agenda item cannot reach a consensus, a TSC member can call for either a closing vote or a vote to table the issue to the next meeting. The call for a vote must be approved by a majority of the TSC, or else the discussion will continue. Simple majority wins. + +--- + +_This document is an adaptation of the [Node.js project Governance Model](https://github.com/nodejs/node/blob/main/GOVERNANCE.md) and the [ESLint project Governance Model](https://github.com/eslint/eslint/blob/main/docs/src/contribute/governance.md)._ diff --git a/src/content/contribute/governance/CHARTER.mdx b/src/content/contribute/governance/CHARTER.mdx new file mode 100644 index 000000000000..d421ec07bd3d --- /dev/null +++ b/src/content/contribute/governance/CHARTER.mdx @@ -0,0 +1,134 @@ +--- +title: 'webpack TSC Charter' +sort: 1 +--- + +## Section 0. Guiding Principle + +The webpack project is part of the OpenJS Foundation. The project operates transparently, openly, collaboratively, +and ethically. Project proposals, timelines, and status must not merely be open, but also easily visible to outsiders. + +## Section 1. Scope + +The webpack project is a highly flexible and efficient module bundler for modern JavaScript applications. Its primary +purpose is to transform and bundle various modules (JavaScript, CSS, images, etc.) into a format suitable for web +applications. Webpack focuses on enhancing the developer experience, providing optimizations for production environments, +and enabling configurations to support a wide range of use cases and edge cases for specific projects. + +With this, webpack not only simplifies the process of managing application dependencies, but it also offers tools to +optimize performance, maintainability, and scalability. The webpack community contributes solutions to common challenges +in modern web development, helping developers streamline their workflows and build robust applications. + +### 1.1: In-scope + +- Bundling JavaScript files and their dependencies into a single output (or multiple outputs) for browser environments +- Handling of asset files such as CSS, images, fonts, and other static resources +- Optimization of assets for production, including minification, compression, and tree shaking (removal of unused code) +- Enabling hot module replacement (HMR) for faster development feedback loops +- Configuration and extensibility through plugins and loaders +- Support for code splitting and lazy loading to enhance performance +- Integrating with modern JavaScript frameworks (e.g., React, Vue, Angular) +- Providing detailed build reports and debugging tools for development and production +- Supporting multiple output formats (e.g., AMD, CommonJS, ES Modules) for compatibility with various environments +- Community-driven tools and best practices provided through + [plugins](https://webpack.js.org/plugins/) and [guides](https://webpack.js.org/guides/) +- Technical help and discussions via community platforms such as + [GitHub Discussions](https://github.com/webpack/webpack/discussions) + +In addition to the main repository, `webpack` (bundler), the organization maintains and manages several other core +projects that are integral to the ecosystem such as `webpack-dev-server`, `webpack-cli`, and `webpack-contrib` projects. + +These repositories, along with others housed within the `github.com/webpack` and `github.com/webpack-contrib` are owned by the webpack project. + +### 1.2: Out-of-Scope + +- Testing frameworks (e.g., unit, integration, or end-to-end testing tools). +- APIs and tools that uses webpack in any way and are not in the webpack organization. +- Server-side rendering directly (although it can integrate with SSR frameworks). +- `webpack`-related frameworks and libraries that operate in their own capacity. + +## Section 2. Relationship with OpenJS Foundation CPC. + +Most large, complex open source communities have both a business and a technical governance model. Technical leadership +for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS +Cross Project Council (CPC). In the case of the webpack project, it is delegated to the webpack Technical Steering +Committee ("TSC"). OpenJS Foundation's business leadership is the Board of Directors (the "Board"). + +This charter can only be amended with the approval of the CPC. + +## Section 3. Establishment of the TSC + +TSC members can be either _regular_ members or _voting_ members. Regular members can attend meetings and participate in +TSC discussions, but do not vote. Voting members can do everything regular members can do, and also have the ability to +cast votes when consensus is not reached on an issue. + +TSC memberships are not time-limited. There is no maximum size of the TSC. The TSC must have at least four voting +members. + +The TSC may add additional voting members to the TSC through meeting consensus. The consensus requires at least five TSC members to be present to approve a new voting member. A TSC member can be removed from the TSC by voluntary +resignation or by consensus with at least five voting members to be present. A vote in a TSC meeting can be used to change a regular TSC member to a voting +TSC member, or to change a voting TSC member to a regular TSC member. + +No more than one-fourth of the TSC voting members may be affiliated with the same employer. If a change in TSC voting +membership or a change of employment by a TSC voting member creates a situation where more than one-fourth of the TSC +voting membership shares an employer, then the situation must be immediately remedied by the removal of voting member +status from one or more TSC voting members affiliated with the over-represented employer(s). + +The TSC shall meet regularly using tools that enable participation by the community (e.g. weekly on a Google Hangout On +Air, or through any other appropriate means selected by the TSC). The meeting shall be directed by the TSC Chairperson. +Responsibility for directing individual meetings may be delegated by the TSC Chairperson to any other TSC voting member. +Minutes or an appropriate recording shall be taken and made available to the community through accessible public +postings. + +TSC voting members are expected to regularly participate in TSC meetings and issue triaging. + +A TSC voting member is automatically converted to a TSC regular member if they do not participate in three consecutive +TSC votes. + +## Section 4. Roles & Responsibilities of the TSC + +Subject to such policies as may be set by the CPC, the TSC voting members are responsible for all technical development +within the webpack project, including: + +- Setting release dates. +- Release quality standards. +- Technical direction. +- Project governance and process. +- GitHub repository management. +- Conduct and maintain guidelines defined by the OpenJS Foundation Cross Project Council. +- Maintaining the list of additional collaborators. +- Development process and any coding standards. +- Mediating technical conflicts between collaborators or `webpack` projects. + +The TSC voting members will define webpack project's release vehicles. + +### Section 4.1. webpack Project Operations + +The TSC voting members will establish and maintain a development process for the webpack project. The development +process will establish guidelines for how the developers and community will operate. It will, for example, establish +appropriate timelines for TSC review (e.g. agenda items must be published at least a certain number of hours in advance +of a TSC meeting). + +Note that project operations remain subject to any relevant policy or process specified by the OpenJS Foundation board or Cross Project Council. + +### Section 4.2. Decision-making, Voting, and/or Elections + +#### Section 4.2.1. Elections + +These processes are described in webpack's [GOVERNANCE](GOVERNANCE.md) document. + +#### Section 4.2.2. Decision Making + +For webpack projects' decisions, Collaborators and TSC voting members shall operate under Lazy Consensus ([consensus seeking][]). When an agenda item has appeared to reach a +consensus, the moderator will ask "Does anyone object?" as a final call for dissent from the consensus. For all votes, a simple majority of all TSC voting members for, or against, the issue wins. A TSC voting member may +choose to participate in any vote through abstention. Votes are needed to add new members, remove members from the TSC or deciding in project critical issues, such as roadmapping major versions of webpack core. + +## Section 5. Definitions + +- **Project**: a technical collaboration effort, e.g. a subsystem, that is organized through the webpack organization creation. + +--- + +This work is a derivative of the [Node.js Project TSC Charter](https://github.com/nodejs/node/blob/main/TSC_CHARTER.md). + +[consensus seeking]: https://en.wikipedia.org/wiki/Consensus-seeking_decision-making diff --git a/src/content/contribute/governance/MEMBER_EXPECTATIONS.mdx b/src/content/contribute/governance/MEMBER_EXPECTATIONS.mdx new file mode 100644 index 000000000000..297bde2ec0c3 --- /dev/null +++ b/src/content/contribute/governance/MEMBER_EXPECTATIONS.mdx @@ -0,0 +1,60 @@ +--- +title: 'Member Expectations' +sort: 2 +--- + +All participants in the webpack project must follow the +[Code of Conduct][]. There are further expectations for members of the [TSC][]. + +When decisions are made within the established guidelines and policies of the +project, those in leadership roles have a responsibility to uphold and respect +the decision even if they disagree with it. This is especially important in +external communications, for example in social media. Should the member be +unwilling or unable to do so, then they should resign their leadership position. +This does not mean that decisions cannot be revisited and discussed within the +team at a later time. + +Everyone participating in the webpack project must conduct themselves in +a professional and respectful manner in accordance with our +[Code of Conduct][]. In addition, some general guidelines for +leadership group members include: + +- Remediate quickly when you realize you made a mistake. Leaders are human, + and they will make mistakes. However they should act swiftly to + acknowledge mistakes and correct them. +- Aim to remediate first and then discuss. If other members of the + team express concerns about actions, acknowledge their concerns by + stopping the actions in question and then discuss within the team + to come to a common agreement. +- Treat all community members with respect, consideration, and highest + standards of ethical conduct. +- Value a diversity of views and opinions. Avoid preferential + treatment, and hold everyone (including ourselves) accountable to the same + set of standards. Everyone gets to speak up. +- Deal with issues directly with the person in question. Resist complaining + about others in the project in a public sphere. +- Build trust by keeping your promises. +- Be the model of accountability and leadership. Provide the example of + ownership and stewardship that everyone can follow to success. +- Commit to ongoing development and learning best practices for governing. +- Criticize ideas rather than people, discussing any concerns in person + whenever possible, and taking responsibility for our statements. + +While the guidelines above focus primarily on the spaces where +we participate in official foundation work (GitHub, IRC, meetings, +conferences), it is important to recognize that the public behavior +of members also reflects on the webpack project. + +If you're interested in an introduction to diversity, inclusion, and unconscious bias, +[try this free training offered by our partners at the Linux Foundation](https://training.linuxfoundation.org/linux-courses/open-source-compliance-courses/inclusive-speaker-orientation). + +If it appears that any member of the project leadership is acting outside +of the expectations set above please refer to our [moderation policy](./MODERATION_POLICY.md) +which outlines the process of making an official complaint. + +--- + +_This document is an adaption of the Node.js project [Member Expectations](https://github.com/nodejs/admin/blob/main/MemberExpectations.md)_ + +[Code of Conduct]: https://github.com/webpack/webpack/blob/main/CODE_OF_CONDUCT.md +[TSC]: ./CHARTER.md diff --git a/src/content/contribute/governance/MODERATION_POLICY.mdx b/src/content/contribute/governance/MODERATION_POLICY.mdx new file mode 100644 index 000000000000..7a21a31e08ae --- /dev/null +++ b/src/content/contribute/governance/MODERATION_POLICY.mdx @@ -0,0 +1,304 @@ +--- +title: 'Moderation policy' +sort: 3 +--- + +If you are not a member of the webpack GitHub Organization and wish to submit a +moderation request, please see [Requesting Moderation][] + +- [Applicability][] +- [Terms][] +- [Grounds for Moderation][] +- [Requesting Moderation][] +- [Consideration of Intent][] +- [Guidelines and Requirements][] + - [Collaborator Posts][] + - [Non-Collaborator Posts][] + - [Temporary Interaction Limits][] + - [Temporary and Indefinite Blocks][] +- [Privacy of the webpack/moderation Repository][] +- [Escalation of Issues][] +- [Modifications to This Policy][] + +## Applicability + +This policy applies to all repositories under the `webpack` and `webpack-contrib` +GitHub Organizations and all webpack Working Groups. This policy also +applies to the [webpack Slack Community](https://webpack.slack.com), +supported by the Admin team of the Slack organization. + +## Terms + +- _Collaborator_ refers to any individual with configured triage role or higher + in any webpack GitHub organizations repositories. See + [GitHub's Repository roles documentation][] for more information. +- _TSC_ refers to the [webpack Technical Steering Committee][]. +- _Post_ refers to the content and titles of any issue, pull request, comment, + discussion, or wiki page. +- _Moderate_ means to modify, lock, or delete one or more Posts to correct or + address Code of Conduct violations. +- _Remove_ refers to the act of removing the configured write (commit) + permissions for an individual Collaborator's GitHub account from _all_ + webpack GitHub Organizations repositories as well as removing the account from + the webpack GitHub Organizations membership. +- _Block_ refers to the act of prohibiting an individual GitHub account from any + further participation in the webpack GitHub Organizations. A block may be + _temporary_ or _indefinite_. + - This Moderation Policy applies only to blocking from the organization. + Individuals may choose to + [block other individuals from their personal GitHub accounts][]. This policy + does not restrict blocking from personal GitHub accounts. +- _Requester_ refers to an individual requesting Moderation on a Post. + +## Grounds for Moderation + +Any Post in violation of the webpack [Code of Conduct][] is subject +to Moderation. + +The TSC is responsible for deciding what constitutes inappropriate +behavior that may be subject to Moderation. + +## Requesting Moderation + +Anyone may request Moderation of a Post. Requesting Moderation of a Post can be +accomplished in one of four ways: + +- Via the [webpack-security@openjsf.org][] email address, +- Via private email to individual TSC members, +- Via a new Post in the same thread as the Post being requested for Moderation, +- Via a new Post in the private webpack/moderation repository. + +Note that Collaborators may Moderate non-Collaborator Posts at any time without +submitting an initial request (see: [Non-Collaborator Posts][]). + +Use of the [webpack-security@openjsf.org][] email address -- or private email to individual +TSC members -- is appropriate when the individual requesting the +Moderation does not feel comfortable directly or publicly making the request. +All emails sent to the [webpack-security@openjsf.org][] address are currently forwarded +to all members of the TSC. + +Requests should contain as much information and context as possible, including +the URL and a screenshot of the Post in question. Screenshots may be modified +to obscure obscene or offensive content. + +External public venues or social media services such as Twitter must never be +used to request Moderation. + +Collaborators must never discuss the specific details of a Moderation request +in any public forum or any social media service outside of the webpack GitHub +Organization. + +Note that quoting the original content of a Post within a Moderation request or +webpack/moderation repository issue is not a violation of the +[Code of Conduct][]. However, discretion is advised when including such quotes +in requests posted to public repositories. + +Requests for Moderation that do not appear to have been submitted in good faith +with intent to address a legitimate [Code of Conduct][] violation will be +ignored. + +## Consideration of Intent + +Before Moderating a Post, Collaborators should carefully consider the possible +intent of the author. It may be that the author has simply made an error or is +not yet familiar with the [Code of Conduct][]; or it may be that cultural +differences exist, or that the author is unaware that certain content is +inappropriate. In such cases, the author should be given an +opportunity to correct any error that may have been made. + +Note, however, that unfamiliarity with the [Code of Conduct][] does not excuse +a Post from Moderation. + +## Guidelines and Requirements + +- All Posts are expected to respect the webpack [Code of Conduct][]. +- Any Collaborator with triage permission to a given repository (except + webpack/moderation) may Moderate Posts within that repository's issue tracker. + Only the TSC is allowed to moderate posts on webpack/moderation. +- The TSC serves as the final arbiter for all Moderation issues. +- TSC members may Remove or Block an individual from the webpack + GitHub Organizations. +- For any Removal or Blocking action, an issue describing the reasons for the + action, and identifying the Github account being acted upon, must be posted + to the Moderation Repository with an explanation provided by the Moderation + Team member performing the action. +- Any individual Blocked from the webpack GitHub Organizations will be recommended + for exclusion from any webpack Foundation sponsored event or activity. +- Minor edits to the formatting of a Post or to correct typographical errors + are not "Moderation". Such edits and their intent must + still be documented with a short note indicating who made the edit and why. + +### Collaborator Posts + +- Prior to Moderating any Post authored by a Collaborator, the author must be + given a reasonable opportunity to modify or remove the Post on their own. +- If the author of the Post disagrees that Moderation is required, the matter + can be escalated to the TSC for resolution. In such cases, no Moderation + action may be taken until a decision by the TSC is made. +- When Moderating any Post authored by another Collaborator, the moderating + Collaborator must: + - Explain the justification for Moderating the post, + - Identify all changes made to the Post, and + - Identify the steps previously taken to resolve the issue. + - If the Moderation action included Blocking, an indication of whether the Block + is temporary or indefinite is required, along with an issue posted to the + moderation repository justifying the action. +- Explanations of Moderation actions on Collaborator Posts must be provided in: + - A new post within the original thread, or + - A new issue within the private webpack/moderation repository. +- Any Collaborator habitually violating the Code of Conduct or this Moderation + policy may be Blocked temporarily or, in extreme cases, Removed and Blocked + indefinitely. + +### Non-Collaborator Posts + +- Posts authored by non-Collaborators are always subject to immediate Moderation + by any Collaborator if the content is intentionally disruptive or in violation + of the [Code of Conduct][]. +- When moderating non-Collaborator posts, the moderating Collaborator must: + - Explain the justification for Moderating the post, and + - Identify all changes made to the Post. + - If the Moderation action included Blocking, an indication of whether the Block + is temporary or indefinite is required, along with a note justifying the + action. +- If an explanation of a Moderation action for a non-Collaborator Post is + provided, it must be provided in: + - The original Post being modified (as replacement or appended content), + - A new post within the original thread, or + - A new issue within the private webpack/moderation repository. +- Moderation of Posts authored by non-Collaborators may result in those + non-Collaborators being Blocked temporarily or indefinitely from further + participation in the webpack GitHub organizations. +- If it is clear that there is no intention to collaborate in good faith, + it is possible to hide comments of non-Collaborators. In that case there is + an exception to the reporting requirement described above. +- Accounts that are reasonably believed to be bots (other than bots authorized + by the TSC) are subject to immediate Blocking. +- Issues, pull requests, discussions, and comments that are spam (job posting, + service advertising, etc.) are subject to immediate moderation. +- Issues, pull requests, discussions, and comments that are believed to be + LLM-generated (e.g a PR coming from a new contributor changing a single file + without clear motivation) should be closed with a comment such as "It seems + you are using a LLM, please stop, this is not bringing any value and is + wasting our time. If you are not using one, please read and follow our + contributing guidelines." Report the user to the moderation repository so they + get blocked if they do it again. +- Collaborators may use the Hide feature in the GitHub interface for off-topic + posts by non-Collaborators. +- TSC members can delete any issues or comments posted by accounts that have + been deleted by GitHub. These accounts show up in the GitHub interface as + user `ghost`. There is no need to screenshot or document these deletions. + +There are a few examples of moderating non-Collaborator posts: + +Scenario 1: + +- A non-Collaborator posts a comment that indicates that they are a bot. +- A collaborator sees the post and hides it. +- No further action is necessary. + +Scenario 2: + +- A non-Collaborator posts a comment that is against the Code of Conduct. +- A Collaborator sees the comment and asks the author to edit it. +- The author refuses to edit their comment. +- The Collaborator deletes the comment and posts an issue in the moderation + repository explaining their actions. + +Scenario 3: + +- A non-Collaborator opens a pull request with comments indicating they are a + bot. +- A Collaborator sees that pull requests, closes it, deletes the comments + and posts an issue in the moderation repository explaining their actions. +- A TSC member sees the issue and decides to block the user from the + organization. + +Scenario 4: + +- A non-Collaborator posts a comment on an old commit that is against the + Code of Conduct. +- A Collaborator sees the comment, takes a screenshot, and deletes it. +- The Collaborator posts an issue in the moderation repository explaining + their actions. + +### Temporary Interaction Limits + +The TSC may, at their discretion, choose to enable [GitHub's +Temporary Interaction Limits][] on any GitHub repository in the webpack GitHub +Organization. + +Any Collaborator may request that the TSC enable the Temporary +Interaction Limits by posting an issue to the moderation repository. If the +TSC chooses not to do so, then a comment explaining why that decision was made +must be added to the moderation repository thread. + +### Temporary and Indefinite Blocks + +A Temporary Block is time limited, with the timeframe decided on by the Moderation +Team at the time of issuing, depending on the severity of the issue. Recommended +default options are 24-hour, 48-hour, and 7-day periods. + +An Indefinite Block is set for an unspecified period of time and may only be +lifted for an individual through a simple majority vote of the Moderation +Team. + +## Privacy of the webpack/moderation Repository + +The webpack/moderation Repository is used to discuss the potentially sensitive +details of any specific moderation issue. The repository is private but +accessible to all Collaborators. The details of any issue discussed within the +webpack/moderation repository are expected to remain confidential and are not to +be discussed in any public forum or social media service. + +Any Collaborator found to be violating the privacy of the webpack/moderation +repository by repeatedly sharing or discussing the details of webpack/moderation +issues in any public forum or social media service risks being permanently +removed from the webpack GitHub organizations. + +## Escalation of Issues + +Moderation issue disputes not involving a TSC member may be escalated +to the TSC for review by tagging the +original issue, pull request, or associated webpack/moderation repository. +Any such Moderation action may be overturned through a TSC vote. + +TSC members directly involved in a Moderation +issue (as either the Requester or author of the Post in question) are +required to recuse themselves from any decisions required to resolve the +issue. + +Moderation disputes involving TSC members, including questions of whether a TSC +member has violated the Code of Conduct, _shall_ be referred to an +Independent Mediator selected by the OpenJS Foundation. + +## Modifications to This Policy + +Modifications to this policy are subject to approval by the TSC. +When modifications are proposed, if there are no objections after +72 hours, the modifications are accepted. If there any objections to +any proposed change, a TSC vote in favor of the change is required. + +--- + +_This document is an adaption of the Node.js project [Moderation Policy](https://github.com/nodejs/admin/blob/HEAD/Moderation-Policy.md)_ + +[Code of Conduct]: https://github.com/webpack/webpack/blob/main/CODE_OF_CONDUCT.md +[webpack Technical Steering Committee]: ./CHARTER.md +[GitHub's Repository roles documentation]: https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization#repository-roles-for-organizations +[GitHub's Temporary Interaction Limits]: https://github.com/blog/2370-introducing-temporary-interaction-limits +[Applicability]: #applicability +[Terms]: #terms +[Grounds for Moderation]: #grounds-for-moderation +[Requesting Moderation]: #requesting-moderation +[Consideration of Intent]: #consideration-of-intent +[Guidelines and Requirements]: #guidelines-and-requirements +[Collaborator Posts]: #collaborator-posts +[Non-Collaborator Posts]: #non-collaborator-posts +[Temporary Interaction Limits]: #temporary-interaction-limits +[Temporary and Indefinite Blocks]: #temporary-and-indefinite-blocks +[Privacy of the webpack/moderation Repository]: #privacy-of-the-webpackmoderation-repository +[Escalation of Issues]: #escalation-of-issues +[Modifications to This Policy]: #modifications-to-this-policy +[webpack-security@openjsf.org]: mailto:webpack-security@openjsf.org +[block other individuals from their personal GitHub accounts]: https://help.github.com/en/articles/blocking-a-user-from-your-personal-account diff --git a/src/content/contribute/governance/README.mdx b/src/content/contribute/governance/README.mdx new file mode 100644 index 000000000000..c6e867329a05 --- /dev/null +++ b/src/content/contribute/governance/README.mdx @@ -0,0 +1,120 @@ +--- +title: 'webpack Project Governance' +sort: 4 +--- + +webpack is an open source project that depends on contributions from the community. Anyone may contribute to the project at any time by submitting code, participating in discussions, making suggestions, or any other contribution they see fit. This document describes how various types of contributors work within the webpack project. + +- [Roles and Responsibilities](#roles-and-responsibilities) + - [Contributors](#contributors) + - [Committers](#committers) + - [Reviewers](#reviewers) +- [Technical steering committee](#technical-steering-committee) + - [TSC meetings](#tsc-meetings) +- [Consensus seeking process](#consensus-seeking-process) + +## Roles and Responsibilities + +### Contributors + +Contributors are community members who contribute in concrete ways to the project, most often in the form of code and/or documentation. Anyone can become a Contributor, and contributions can take many forms. There is no expectation of commitment to the project, no specific skill requirements, and no selection process. + +Contributors have read-only access to source code and so submit changes via pull requests. Contributor pull requests have their contribution reviewed and merged by a TSC member. TSC members and Committers work with Contributors to review their code and prepare it for merging. + +As Contributors gain experience and familiarity with the project, their profile within, and commitment to, the community will increase. At some stage, they may find themselves being nominated as either a Website Team Member or Committer by an existing Website Team Member or Committer. + +### Committers + +Committers are community members who have shown that they are committed to the continued development of the project through ongoing engagement with the community. Committers are given push access to the project's GitHub repos and must abide by the project's [Contribution Guidelines](https://github.com/webpack/webpack/blob/main/CONTRIBUTING.md) + +To become a Committer: + +- One must have shown a willingness and ability to participate in the project as a team player. Typically, a potential Committer will need to show that they have an understanding of and alignment with the project, its objectives, and its strategy. +- Committers are expected to be respectful of every community member and to work collaboratively in the spirit of inclusion. + +New Committers can be nominated by any existing Committer. Once they have been nominated, there will be a vote by the TSC members. + +It is important to recognize that committership is a privilege, not a right. That privilege must be earned and once earned it can be removed by the TSC members by a standard TSC motion. However, under normal circumstances committership exists for as long as the Committer wishes to continue engaging with the project. + +A Committer who shows an above-average level of contribution to the project, particularly with respect to its strategic direction and long-term health, may be nominated to become a reviewer, described below. + +### Reviewers + +Reviewers are community members who have contributed a significant amount of time to the project through triaging of issues, fixing bugs, implementing enhancements/features, and are trusted community leaders. + +Reviewers may perform all of the duties of Committers, and also: + +- May merge external pull requests for accepted issues upon reviewing and approving the changes. +- May merge their own pull requests once they have collected the feedback they deem necessary. (No pull request should be merged without at least one Committer/Reviewer/TSC member comment stating they've looked at the code.) + +To become a Reviewer: + +- Work in a helpful and collaborative way with the community. +- Have given good feedback on others' submissions and displayed an overall understanding of the code quality standards for the project. +- Commit to being a part of the community for the long-term. + +A Committer is invited to become a Reviewer by existing Reviewers and TSC members. A nomination will result in discussion and then a decision by the TSC. + +## Technical Steering Committee + +A subset of the collaborators forms the Technical Steering Committee (TSC). +The TSC has final authority over this project, including: + +- Technical direction +- Project governance and process (including this policy) +- Contribution policy +- GitHub repository hosting +- Conduct guidelines +- Maintaining the list of collaborators + +The current list of TSC members is in +[the project README](https://github.com/webpack/webpack/blob/main/README.md#current-project-members). + +The [TSC Charter][] governs the operations of the TSC. All changes to the +Charter need approval by the OpenJS Foundation Cross-Project Council (CPC). + +### TSC meetings + +The TSC meets in a Discord conference call or Discord thread. Each year, +the TSC elects a chair to run the meetings. + +Any community member can create a GitHub issue asking that the TSC review +something. + +The TSC may invite people to take part in a non-voting capacity. + +During the meeting, the TSC chair ensures that someone takes minutes. After the +meeting, the TSC chair ensures that someone opens a pull request with the +minutes. + +The TSC seeks to resolve as many issues as possible outside meetings using +[the webpack's governance repository issue tracker](https://github.com/webpack/governance/issues). + +The process in the issue tracker is: + +- A TSC member opens an issue explaining the proposal/issue and @-mentions + @webpack/tsc. +- The proposal passes if, after 72 hours, there are two or more TSC voting + member approvals and no TSC voting member opposition. +- If there is an extended impasse, a TSC member may make a motion for a vote. + +## Consensus Seeking Process + +The TSC follows a +[Consensus Seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making) +decision making model. + +When an agenda item has appeared to reach a consensus, the moderator +will ask "Does anyone object?" as a final call for dissent from the +consensus. + +If an agenda item cannot reach a consensus, a TSC member can call for +either a closing vote or a vote to table the issue to the next +meeting. The call for a vote must be approved by a majority of the TSC +or else the discussion will continue. Simple majority wins. + +--- + +_This document is an adaption of the [Node.js project Governance Model](https://github.com/nodejs/node/blob/main/GOVERNANCE.md) and the [ESlint project Governance Model](https://github.com/eslint/eslint/blob/main/docs/src/contribute/governance.md)_ + +[TSC Charter]: https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md diff --git a/src/content/contribute/governance/WORKING_GROUPS.mdx b/src/content/contribute/governance/WORKING_GROUPS.mdx new file mode 100644 index 000000000000..e1c09162f98b --- /dev/null +++ b/src/content/contribute/governance/WORKING_GROUPS.mdx @@ -0,0 +1,217 @@ +# webpack Working Groups + +webpack Working Groups are autonomous projects created by the +[Technical Steering Committee (TSC)][]. + +Working Groups can be formed at any time but must be ratified by the TSC. +Once formed the work defined in the Working Group charter is the +responsibility of the WG rather than the TSC. + +It is important that Working Groups are not formed prematurely. Working +Groups are not formed to begin a set of tasks but instead are formed +once that work is already underway and the contributors +think it would benefit from being done as an autonomous project. + +If the work defined in a Working Group's charter is complete, the charter +should be revoked. + +A Working Group's charter can be revoked either by consent of the Working +Group's members or by a TSC vote. Once revoked, any future work that arises +becomes the responsibility of the TSC. + +## Joining a WG + +To find out how to join a working group, consult the [GOVERNANCE.md]: https://github.com/webpack/governance/blob/main/GOVERNANCE.md in +the working group's repository. + +## Starting a Working Group + +A Working Group is established by first defining a charter that can be +ratified by the TSC. A charter is a statement of purpose and a +list of responsibilities. When requesting that a working group be chartered, it +is also necessary to provide a list of initial membership. + +A working group needs 3 initial members. These should be individuals +already undertaking the work described in the charter. + +The list of responsibilities should be specific. Once established, these +responsibilities are no longer governed by the TSC and therefore should +not be broad or subjective. The only recourse the TSC has over the working +group is to revoke the entire charter. + +If the responsibilities described in the charter are currently undertaken by +another working group then the charter will additionally have to be ratified by +that working group. + +You can submit the working group charter for ratification by sending +a pull request to this document to add the charter it to the +list of current Working Groups. Once ratified, the list of +members should be maintained in the Working Group's +README. + +## Bootstrap Governance + +Once the TSC ratifies a charter, the working group inherits the following +documentation for governance, contribution, conduct and an MIT +LICENSE. The working group is free to change these documents through their own +governance process, hence the term "bootstrap." + +```markdown +### _[insert WG name]_ Working Group + +The webpack _[insert WG name]_ is governed by a Working Group (WG) +that is responsible for high-level guidance of the project. + +The WG has final authority over this project including: + +- Technical direction +- Project governance and process (including this policy) +- Contribution policy +- GitHub repository hosting +- Conduct guidelines +- Maintaining the list of additional Collaborators + +For the current list of WG members, see the project +[README.md](https://github.com/webpack/webpack/blob/main/README.md#current-project-members). + +### Collaborators + +The _[insert WG name]_ GitHub repository is +maintained by the WG and additional Collaborators who are added by the +WG on an ongoing basis. + +Individuals making significant and valuable contributions are made +Collaborators and given commit-access to the project. These +individuals are identified by the WG and their addition as +Collaborators is discussed during the weekly WG meeting. + +Modifications of the contents of the _[insert WG repo]_ repository are made on +a collaborative basis. Anybody with a GitHub account may propose a +modification via pull request and it will be considered by the project +Collaborators. All pull requests must be reviewed and accepted by a +Collaborator with sufficient expertise who is able to take full +responsibility for the change. In the case of pull requests proposed +by an existing Collaborator, an additional Collaborator is required +for sign-off. Consensus should be sought if additional Collaborators +participate and there is disagreement around a particular +modification. See _Consensus Seeking Process_ below for further detail +on the consensus model used for governance. + +For the current list of Collaborators, see the project +[README.md](https://github.com/webpack/webpack/blob/main/README.md#current-project-members). + +### WG Membership + +WG seats are not time-limited. There is no fixed size of the WG. +However, the expected target is between 6 and 12, to ensure adequate +coverage of important areas of expertise, balanced with the ability to +make decisions efficiently. + +There is no specific set of requirements or qualifications for WG +membership beyond these rules. + +The WG may add additional members to the WG by unanimous consensus. + +A WG member may be removed from the WG by voluntary resignation, or by +unanimous consensus of all other WG members. + +Changes to WG membership should be posted in the agenda, and may be +suggested as any other agenda item (see "WG Meetings" below). + +If an addition or removal is proposed during a meeting, and the full +WG is not in attendance to participate, then the addition or removal +is added to the agenda for the subsequent meeting. This is to ensure +that all members are given the opportunity to participate in all +membership decisions. If a WG member is unable to attend a meeting +where a planned membership decision is being made, then their consent +is assumed. + +No more than 1/3 of the WG members may be affiliated with the same +employer. If removal or resignation of a WG member, or a change of +employment by a WG member, creates a situation where more than 1/3 of +the WG membership shares an employer, then the situation must be +immediately remedied by the resignation or removal of one or more WG +members affiliated with the over-represented employer(s). + +### Consensus Seeking Process + +The WG follows a [Consensus Seeking][] decision-making model. + +If an agenda item cannot reach a consensus a WG member can call for +either a closing vote or a vote to table the issue to the next +meeting. The call for a vote must be seconded by a majority of the WG +or else the discussion will continue. Simple majority wins. + +Note that changes to WG membership require unanimous consensus. See +"WG Membership" above. + + + +## Developer's Certificate of Origin 1.1 + +Use of a CLA or DCO is mandatory for all all OpenJS Foundation projects. +The webpack project has chosen to use the DCO 1.1 + +By making a contribution to this project, I certify that: + +- (a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +- (b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +- (c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +- (d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. + +### Moderation Policy + +The [webpack Moderation Policy] applies to this WG. + +### Code of Conduct + +The [webpack Code of Conduct][] applies to this WG. + +[webpack Code of Conduct]: https://github.com/webpack/webpack/blob/main/CODE_OF_CONDUCT.md +[webpack Moderation Policy]: https://github.com/webpack/governance/blob/main/MODERATION_POLICY.md +[Consensus Seeking]: https://en.wikipedia.org/wiki/Consensus-seeking_decision-making +``` + +## Current Working Groups + +- [Core](#core) + +### [Core](https://github.com/webpack/webpack) + +The Core Working Group is responsible for the development and +maintenance of the webpack bundler and its technical direction. + +Responsibilities include: + +- Maintaining the core of the webpack bundler +- Reviewing and merging pull requests +- Managing releases and versioning +- Ensuring code quality and consistency +- Addressing issues and bugs reported by the community +- Developing new features and enhancements +- Writing and maintaining documentation +- Coordinating with other working groups and the TSC +- Ensuring compliance with the project's code of conduct and governance policies + +--- + +_This document is an adaption of the Node.js project [Working Groups Charter](https://github.com/nodejs/TSC/blob/main/WORKING_GROUPS.md)_ + +[Technical Steering Committee (TSC)]: ./CHARTER.md diff --git a/src/content/contribute/governance/index.mdx b/src/content/contribute/governance/index.mdx new file mode 100644 index 000000000000..adbe452c0e6d --- /dev/null +++ b/src/content/contribute/governance/index.mdx @@ -0,0 +1,14 @@ +--- +title: 'Governance' +sort: 9 +--- + +This section describes how the Webpack project is managed and organized. + +## Subsections + +- [Charter](./CHARTER) +- [Member Expectations](./MEMBER_EXPECTATIONS) +- [Moderation Policy](./MODERATION_POLICY) +- [README](./README) +- [Working Groups](./WORKING_GROUPS) diff --git a/yarn.lock b/yarn.lock index 436f8551ba1c..4180f82f0d08 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1889,7 +1889,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz#7358043433b2e5da569aa02cbc4c121da3af27d7" integrity sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28", "@jridgewell/trace-mapping@^0.3.9": version "0.3.29" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz#a58d31eaadaf92c6695680b2e1d464a9b8fbf7fc" integrity sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ== @@ -2584,10 +2584,10 @@ dependencies: "@types/estree" "*" -"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.6", "@types/estree@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== "@types/estree@0.0.39": version "0.0.39" @@ -2681,7 +2681,7 @@ resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.6.tgz#f1a1cb35aff47bc5cfb05cb0c441ca91e914c26f" integrity sha512-+oY0FDTO2GYKEV0YPvSshGq9t7YozVkgvXLty7zogQNuCxBhT9/3INX9Q7H1aRZ4SUDRXAKlJuA4EA5nTt7SNw== -"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -3038,6 +3038,11 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" +acorn-import-phases@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz#16eb850ba99a056cb7cbfe872ffb8972e18c8bd7" + integrity sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ== + acorn-jsx@^5.0.0, acorn-jsx@^5.0.1, acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -3058,7 +3063,7 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.0, acorn@^8.0.4, acorn@^8.14.0, acorn@^8.15.0, acorn@^8.2.4, acorn@^8.8.2: +acorn@^8.0.0, acorn@^8.0.4, acorn@^8.15.0, acorn@^8.2.4, acorn@^8.8.2: version "8.15.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== @@ -3085,11 +3090,6 @@ ajv-formats@^2.1.1: dependencies: ajv "^8.0.0" -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - ajv-keywords@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" @@ -3097,7 +3097,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3591,6 +3591,11 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +baseline-browser-mapping@^2.8.9: + version "2.8.12" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.12.tgz#7cb875f4c5b5ab4528109df277b2f0e1971ba27e" + integrity sha512-vAPMQdnyKCBtkmQA6FMCBvU9qFIppS3nzyXnEM+Lo2IAhG4Mpjv9cCxMudhgV3YdNNJv6TNqXy97dfRVL2LmaQ== + basic-auth@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" @@ -3698,14 +3703,15 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.20.3, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.4, browserslist@^4.25.1: - version "4.25.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.1.tgz#ba9e8e6f298a1d86f829c9b975e07948967bb111" - integrity sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw== +browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.20.3, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.4, browserslist@^4.24.5, browserslist@^4.25.1: + version "4.26.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.26.3.tgz#40fbfe2d1cd420281ce5b1caa8840049c79afb56" + integrity sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w== dependencies: - caniuse-lite "^1.0.30001726" - electron-to-chromium "^1.5.173" - node-releases "^2.0.19" + baseline-browser-mapping "^2.8.9" + caniuse-lite "^1.0.30001746" + electron-to-chromium "^1.5.227" + node-releases "^2.0.21" update-browserslist-db "^1.1.3" bser@2.1.1: @@ -3837,10 +3843,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001726: - version "1.0.30001727" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz#22e9706422ad37aa50556af8c10e40e2d93a8b85" - integrity sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001726, caniuse-lite@^1.0.30001746: + version "1.0.30001748" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001748.tgz#628a5a9293014e58f8ba1216bb4966b04c58bee0" + integrity sha512-5P5UgAr0+aBmNiplks08JLw+AW/XG/SurlgZLgB1dDLfAw7EfRGxIwzPHxdSCGY/BTKDqIVyJL87cCN6s0ZR0w== caseless@~0.12.0: version "0.12.0" @@ -5167,10 +5173,10 @@ ejs@^3.1.6: dependencies: jake "^10.8.5" -electron-to-chromium@^1.5.173: - version "1.5.182" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.182.tgz#4ab73104f893938acb3ab9c28d7bec170c116b3e" - integrity sha512-Lv65Btwv9W4J9pyODI6EWpdnhfvrve/us5h1WspW8B2Fb0366REPtY3hX7ounk1CkV/TBjWCEvCBBbYbmV0qCA== +electron-to-chromium@^1.5.173, electron-to-chromium@^1.5.227: + version "1.5.230" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.230.tgz#06ddb4a6302a78b2a3e8dcf1dd2563bcfdd546c9" + integrity sha512-A6A6Fd3+gMdaed9wX83CvHYJb4UuapPD5X5SLq72VZJzxHSY0/LUweGXRWmQlh2ln7KV7iw7jnwXK7dlPoOnHQ== emittery@^0.13.1: version "0.13.1" @@ -5219,10 +5225,10 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^5.17.1: - version "5.17.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" - integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== +enhanced-resolve@^5.17.3: + version "5.18.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz#9b5f4c5c076b8787c78fe540392ce76a88855b44" + integrity sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -7001,10 +7007,10 @@ imageinfo@^1.0.4: resolved "https://registry.yarnpkg.com/imageinfo/-/imageinfo-1.0.4.tgz#1dd2456ecb96fc395f0aa1179c467dfb3d5d7a2a" integrity sha1-HdJFbsuW/DlfCqEXnEZ9+z1deio= -immutable@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" - integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== +immutable@^5.0.2: + version "5.1.3" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.3.tgz#e6486694c8b76c37c063cca92399fa64098634d4" + integrity sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" @@ -9650,10 +9656,10 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -node-releases@^2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" - integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== +node-releases@^2.0.19, node-releases@^2.0.21: + version "2.0.23" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.23.tgz#2ecf3d7ba571ece05c67c77e5b7b1b6fb9e18cea" + integrity sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg== nopt@^7.0.0: version "7.1.0" @@ -11644,22 +11650,23 @@ safe-regex-test@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-loader@^16.0.4: - version "16.0.4" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-16.0.4.tgz#5c2afb755fbc0a45a004369efa11579518a39a45" - integrity sha512-LavLbgbBGUt3wCiYzhuLLu65+fWXaXLmq7YxivLhEqmiupCFZ5sKUAipK3do6V80YSU0jvSxNhEdT13IXNr3rg== +sass-loader@^16.0.5: + version "16.0.5" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-16.0.5.tgz#257bc90119ade066851cafe7f2c3f3504c7cda98" + integrity sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw== dependencies: neo-async "^2.6.2" -sass@^1.79.5: - version "1.79.5" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.79.5.tgz#646c627601cd5f84c64f7b1485b9292a313efae4" - integrity sha512-W1h5kp6bdhqFh2tk3DsI771MoEJjvrSY/2ihJRJS4pjIyfJCw0nTsxqhnrUzaLMOJjFchj8rOvraI/YUVjtx5g== +sass@^1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.93.2.tgz#e97d225d60f59a3b3dbb6d2ae3c1b955fd1f2cd1" + integrity sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg== dependencies: - "@parcel/watcher" "^2.4.1" chokidar "^4.0.0" - immutable "^4.0.0" + immutable "^5.0.2" source-map-js ">=0.6.2 <2.0.0" + optionalDependencies: + "@parcel/watcher" "^2.4.1" sax@>=0.6.0: version "1.2.4" @@ -11681,19 +11688,10 @@ scheduler@^0.20.2: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@^3.1.1, schema-utils@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0, schema-utils@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" - integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== +schema-utils@^4.0.0, schema-utils@^4.2.0, schema-utils@^4.3.0, schema-utils@^4.3.2: + version "4.3.3" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" + integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== dependencies: "@types/json-schema" "^7.0.9" ajv "^8.9.0" @@ -12702,10 +12700,10 @@ tap-spot@^1.1.2: tap-parser "^7.0.0" through2 "^2.0.1" -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== +tapable@^2.0.0, tapable@^2.2.0, tapable@^2.2.1, tapable@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6" + integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== teepee@^2.31.1: version "2.31.2" @@ -12741,16 +12739,16 @@ tempy@^0.6.0: type-fest "^0.16.0" unique-string "^2.0.0" -terser-webpack-plugin@^5.3.10: - version "5.3.10" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" - integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== +terser-webpack-plugin@^5.3.11: + version "5.3.14" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" + integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== dependencies: - "@jridgewell/trace-mapping" "^0.3.20" + "@jridgewell/trace-mapping" "^0.3.25" jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.26.0" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" terser@^4.0.0: version "4.8.1" @@ -12761,13 +12759,13 @@ terser@^4.0.0: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.17.4, terser@^5.26.0, terser@^5.7.2: - version "5.31.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.0.tgz#06eef86f17007dbad4593f11a574c7f5eb02c6a1" - integrity sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg== +terser@^5.17.4, terser@^5.31.1, terser@^5.7.2: + version "5.44.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.0.tgz#ebefb8e5b8579d93111bfdfc39d2cf63879f4a82" + integrity sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w== dependencies: "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" + acorn "^8.15.0" commander "^2.20.0" source-map-support "~0.5.20" @@ -13584,10 +13582,10 @@ walker@^1.0.8: dependencies: makeerror "1.0.12" -watchpack@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" - integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== +watchpack@^2.4.4: + version "2.4.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.4.tgz#473bda72f0850453da6425081ea46fc0d7602947" + integrity sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -13736,25 +13734,27 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.3: source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== +webpack-sources@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" + integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== -webpack@^5.97.1: - version "5.97.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.97.1.tgz#972a8320a438b56ff0f1d94ade9e82eac155fa58" - integrity sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg== +webpack@^5.102.0: + version "5.102.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.102.0.tgz#7a2416e6da356c35f1fb35333d2f5cee0133e953" + integrity sha512-hUtqAR3ZLVEYDEABdBioQCIqSoguHbFn1K7WlPPWSuXmx0031BD73PSE35jKyftdSh4YLDoQNgK4pqBt5Q82MA== dependencies: "@types/eslint-scope" "^3.7.7" - "@types/estree" "^1.0.6" + "@types/estree" "^1.0.8" + "@types/json-schema" "^7.0.15" "@webassemblyjs/ast" "^1.14.1" "@webassemblyjs/wasm-edit" "^1.14.1" "@webassemblyjs/wasm-parser" "^1.14.1" - acorn "^8.14.0" - browserslist "^4.24.0" + acorn "^8.15.0" + acorn-import-phases "^1.0.3" + browserslist "^4.24.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.1" + enhanced-resolve "^5.17.3" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" @@ -13764,11 +13764,11 @@ webpack@^5.97.1: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.2.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.10" - watchpack "^2.4.1" - webpack-sources "^3.2.3" + schema-utils "^4.3.2" + tapable "^2.2.3" + terser-webpack-plugin "^5.3.11" + watchpack "^2.4.4" + webpack-sources "^3.3.3" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4"