diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index d18bcba43..f59f70dd7 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -20,3 +20,5 @@
/translation/gl/ @psanxiao
/book/gl/ @psanxiao
/pattern-categorization/gl/ @psanxiao
+/translation/es/ @ovas04
+/book/es/ @ovas04
diff --git a/.github/ISSUE_TEMPLATE/pattern-draft.md b/.github/ISSUE_TEMPLATE/pattern-draft.md
index 502501ef9..cc49492e8 100644
--- a/.github/ISSUE_TEMPLATE/pattern-draft.md
+++ b/.github/ISSUE_TEMPLATE/pattern-draft.md
@@ -7,8 +7,11 @@ assignees: ''
---
-This is the most basic template for a new pattern.
-See our full pattern syntax [here](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/meta/pattern-template.md).
+If you don't know how to get started, try to [draft an InnerSource Pattern with AI](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/meta/pattern-drafts-with-ai.md).
+Then you can paste the result into the issue below, do manual edits as you see fit and submit it.
+
+Below you see a basic template for a new pattern.
+For the full details, see our [pattern template](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/meta/pattern-template.md).
## Title
@@ -16,7 +19,8 @@ Short Title Here
## Patlet / Summary
-Concise 1-2 sentence description of the problem and solution.
+Concise 2 sentence description of the problem and solution.
+The 1st sentence describes the problem. The 2nd sentence describes the solution.
## Problem
@@ -59,7 +63,7 @@ May mention:
* A particular business
* Anonymized instances ex: "3 companies have proven that this is a good solution" or "A large financial services org...".
-## Status
+## Status
Initial
diff --git a/.github/config.yml b/.github/config.yml
index b194aa7e0..367e484c3 100644
--- a/.github/config.yml
+++ b/.github/config.yml
@@ -4,7 +4,7 @@
# Comment to be posted to on first time issues
newIssueWelcomeComment: >
- [](https://zenodo.org/record/3695300)](https://zenodo.org/record/3695300)
+ [](https://zenodo.org/record/3695300)
:tada: Welcome to _The InnerSource Commons_ community, and in particular to our patterns! :tada:
We're really excited to have your input into the project! :sparkling_heart:
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 000000000..75bc9cd61
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,10 @@
+version: 2
+updates:
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "weekly"
+ - package-ecosystem: "bundler"
+ directory: "/"
+ schedule:
+ interval: "weekly"
diff --git a/.github/vale/config/vocabularies/Base/accept.txt b/.github/vale/config/vocabularies/Base/accept.txt
new file mode 100644
index 000000000..cb05b5973
--- /dev/null
+++ b/.github/vale/config/vocabularies/Base/accept.txt
@@ -0,0 +1 @@
+Adyen
\ No newline at end of file
diff --git a/.github/workflows/all-patterns-listed.yml b/.github/workflows/all-patterns-listed.yml
new file mode 100644
index 000000000..c7748dccd
--- /dev/null
+++ b/.github/workflows/all-patterns-listed.yml
@@ -0,0 +1,46 @@
+# Check if all patterns are listed in README.md
+name: All Patterns Listed
+
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+ branches:
+ - main
+
+jobs:
+ all-patterns-listed:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+
+ - name: Check if all patterns are listed in README.md
+ run: |
+ README="README.md"
+
+ # Ensure README.md exists
+ if [[ ! -f "$README" ]]; then
+ echo "Error: $README not found!"
+ exit 1
+ fi
+
+ missing=0
+
+ for file in patterns/*/*.md; do
+ if grep -qF "$file" "$README"; then
+ echo "✔ Found: $file"
+ else
+ echo "✘ Missing: $file"
+ echo "✘ Pattern file not listed in README.md: $file" >> $GITHUB_STEP_SUMMARY
+ missing=$((missing + 1))
+ fi
+ done
+
+ if [[ $missing -gt 0 ]]; then
+ echo "Some patterns are missing from $README."
+ exit 1
+ else
+ echo "All patterns are listed in $README."
+ exit 0
+ fi
diff --git a/.github/workflows/book.yml b/.github/workflows/book.yml
index 2f481d13f..94638b3d9 100644
--- a/.github/workflows/book.yml
+++ b/.github/workflows/book.yml
@@ -15,10 +15,10 @@ jobs:
strategy:
matrix:
- language: [en, ja, zh, pt-br, gl]
+ language: [en, ja, zh, pt-br, gl, es]
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
- uses: ruby/setup-ruby@v1
with:
@@ -33,7 +33,7 @@ jobs:
echo "Generated book for: ${{ matrix.language }}" >> $GITHUB_STEP_SUMMARY
- name: Commit updated toc.md for the book
- uses: stefanzweifel/git-auto-commit-action@v5
+ uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: Writing updated toc.md for the ${{ matrix.language }} book
branch: ${{ github.head_ref }}
diff --git a/.github/workflows/contributor-report.yaml b/.github/workflows/contributor-report.yaml
index d1094a01c..3f69088ec 100644
--- a/.github/workflows/contributor-report.yaml
+++ b/.github/workflows/contributor-report.yaml
@@ -37,7 +37,7 @@ jobs:
SPONSOR_INFO: "true"
- name: Create issue
- uses: peter-evans/create-issue-from-file@v4
+ uses: peter-evans/create-issue-from-file@v6
with:
title: "Monthly Metrics: Contributors ${{ env.START_DATE }}..${{ env.END_DATE }}"
token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/generate-mindmap.yml b/.github/workflows/generate-mindmap.yml
index b9b97ff34..bce021de0 100644
--- a/.github/workflows/generate-mindmap.yml
+++ b/.github/workflows/generate-mindmap.yml
@@ -12,6 +12,7 @@ on:
- "pattern-categorization/package.json"
- "pattern-categorization/gl/*"
- "pattern-categorization/pt-br/*"
+ - "pattern-categorization/es/*"
defaults:
run:
@@ -21,34 +22,44 @@ jobs:
generate-mindmap:
runs-on: ubuntu-latest
- strategy:
- matrix:
- folder: [".", "./gl", "./pt-br"]
+ permissions:
+ # Give the default GITHUB_TOKEN write permission to commit and push the changed files back to the repository.
+ contents: write
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
- name: Use Node.js
- uses: actions/setup-node@v4
+ uses: actions/setup-node@v6
with:
node-version: 20
cache: 'npm'
cache-dependency-path: pattern-categorization/package-lock.json
- name: Install Node.js dependencies
run: npm install
- - name: Run Markmap
- run: npx markmap --no-toolbar ${{ matrix.folder }}/innersource-program-mind-map.md -o ${{ matrix.folder }}/innersource-program-mind-map.html
- - name: Screenshot Markmap Website
- id: screenshot-generator
- uses: swinton/screenshot-website@v1.x
- with:
- source: pattern-categorization/${{ matrix.folder }}/innersource-program-mind-map.html #strange syntax here. seems to not respect the working-directory default either
- destination: innersource-program-mind-map.png
- full-page: false
- - name: Copy Screenshot
- run: cp ${{ steps.screenshot-generator.outputs.path }} ${{ matrix.folder }}
- - name: Reduce Screenshot Size (PNG)
- run: npx optipng ${{ matrix.folder }}/innersource-program-mind-map.png
+ - name: Disable AppArmor
+ run: |
+ # Disable AppArmor for unprivileged user namespaces (required for 'pageres')
+ sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
+ - name: Generate mindmap and take screenshot
+ run: |
+ # Loops over the top-level folder and all immediate sub-folders, except for "node_modules"
+ for dir in . */; do
+ # Skip node_modules
+ [ "$(basename "$dir")" = "node_modules" ] && continue
+
+ echo "Creating mindmap PNG for: $dir"
+ (
+ # Create markmap HTML
+ npx markmap --no-open --no-toolbar $dir/innersource-program-mind-map.md -o $dir/innersource-program-mind-map.html
+
+ # Take the screenshot
+ npx pageres $dir/innersource-program-mind-map.html --overwrite --filename=$dir/innersource-program-mind-map 2560x1600
+
+ # Reduce Screenshot Size (PNG)
+ npx optipng -silent $dir/innersource-program-mind-map.png
+ )
+ done
- name: Commit Changes
- uses: stefanzweifel/git-auto-commit-action@v5
+ uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: Re-creating markmap and screenshot
diff --git a/.github/workflows/i18n-consistency-checker.yaml b/.github/workflows/i18n-consistency-checker.yaml
index 9709ccca2..f1e877210 100644
--- a/.github/workflows/i18n-consistency-checker.yaml
+++ b/.github/workflows/i18n-consistency-checker.yaml
@@ -15,16 +15,16 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- language: [ja, zh, pt-br, gl]
+ language: [ja, zh, pt-br, gl, es]
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
with:
fetch-depth: '0'
- name: Check consistency and create issue
id: check-consistency
run: |
# Declare the flags
- declare -A flags=( ["ja"]=":jp: Japanese" ["zh"]=":cn: Chinese" ["pt-br"]=":brazil: Brazilian Portuguese" ["gl"]="Galician")
+ declare -A flags=( ["ja"]=":jp: Japanese" ["zh"]=":cn: Chinese" ["pt-br"]=":brazil: Brazilian Portuguese" ["gl"]="Galician" ["es"]=":es: Spanish" )
issue_title="${flags['${{matrix.language}}']}: Content Consistency Issue"
@@ -86,4 +86,3 @@ jobs:
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
\ No newline at end of file
diff --git a/.github/workflows/link-checker-prs.yml b/.github/workflows/link-checker-prs.yml
index 06fe09aa5..f7175e260 100644
--- a/.github/workflows/link-checker-prs.yml
+++ b/.github/workflows/link-checker-prs.yml
@@ -15,13 +15,13 @@ jobs:
linkChecker:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Get changed files
id: changed-files
- uses: tj-actions/changed-files@v44
+ uses: tj-actions/changed-files@v47
- name: Filter markdown files only
run: |
@@ -29,7 +29,7 @@ jobs:
echo "MARKDOWN_FILES=$md_files" >> $GITHUB_ENV
- name: Restore lychee cache
- uses: actions/cache@v4
+ uses: actions/cache@v5
with:
path: .lycheecache
key: cache-lychee-${{ github.sha }}
@@ -37,10 +37,11 @@ jobs:
- if: ${{ env.MARKDOWN_FILES != '' }}
name: Link Checker
- uses: lycheeverse/lychee-action@v1.5.2
+ uses: lycheeverse/lychee-action@v2
with:
- args: --verbose --no-progress --exclude-mail --cache --max-cache-age 1d $MARKDOWN_FILES
+ args: --verbose --no-progress --cache --max-cache-age 1d $MARKDOWN_FILES
fail: true
+ failIfEmpty: false
jobSummary: true
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml
index a8bd6b6d0..73f9a4705 100644
--- a/.github/workflows/link-checker.yml
+++ b/.github/workflows/link-checker.yml
@@ -9,24 +9,25 @@ on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '30 8 * * 5'
+ workflow_dispatch:
jobs:
linkChecker:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
- name: Restore lychee cache
- uses: actions/cache@v4
+ uses: actions/cache@v5
with:
path: .lycheecache
key: cache-lychee-${{ github.sha }}
restore-keys: cache-lychee-
- name: Link Checker
- uses: lycheeverse/lychee-action@v1.5.2
+ uses: lycheeverse/lychee-action@v2
with:
- args: --verbose --no-progress --exclude-mail --cache --max-cache-age 1d README.md patterns/ book/ translation/
+ args: --verbose --no-progress --cache --max-cache-age 1d README.md patterns/ book/ translation/
fail: true
jobSummary: true
env:
diff --git a/.github/workflows/lint-patterns.yml b/.github/workflows/lint-patterns.yml
index 1240082ff..b8a96f1e0 100644
--- a/.github/workflows/lint-patterns.yml
+++ b/.github/workflows/lint-patterns.yml
@@ -18,7 +18,7 @@ jobs:
validate:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
- name: Problem Matcher for markdownlint-cli
uses: xt0rted/markdownlint-problem-matcher@v3
- name: Lint pattern files (markdown)
diff --git a/.github/workflows/markdownlint.yml b/.github/workflows/markdownlint.yml
index 7a00dcd49..15287c4d7 100644
--- a/.github/workflows/markdownlint.yml
+++ b/.github/workflows/markdownlint.yml
@@ -20,9 +20,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
- name: Use Node.js
- uses: actions/setup-node@v4
+ uses: actions/setup-node@v6
with:
node-version: 20
- name: Run Markdownlint
diff --git a/.github/workflows/pattern-metrics.yaml b/.github/workflows/pattern-metrics.yaml
index 4419ab4fc..4b9463d16 100644
--- a/.github/workflows/pattern-metrics.yaml
+++ b/.github/workflows/pattern-metrics.yaml
@@ -29,7 +29,7 @@ jobs:
echo "last_month=$first_day..$last_day" >> "$GITHUB_ENV"
- name: Check out the code so we can get the CODEOWNERS names
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
sparse-checkout: |
.github/CODEOWNERS
@@ -53,7 +53,7 @@ jobs:
echo "CODEOWNERS_FILTER=$CODEOWNERS_FILTER" >> "$GITHUB_ENV"
- name: Run issue-metrics tool for issues
- uses: github/issue-metrics@v2
+ uses: github/issue-metrics@v3
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SEARCH_QUERY: 'repo:InnerSourceCommons/InnerSourcePatterns is:issue created:${{ env.last_month }} -reason:"not planned" ${{ env.CODEOWNERS_FILTER }}'
@@ -66,7 +66,7 @@ jobs:
mv ./issue_metrics.md ready_to_merge_issues_report.md
- name: Run issue-metrics tool for PRs
- uses: github/issue-metrics@v2
+ uses: github/issue-metrics@v3
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SEARCH_QUERY: 'repo:InnerSourceCommons/InnerSourcePatterns is:pr created:${{ env.last_month }} -reason:"not planned" ${{ env.CODEOWNERS_FILTER }}'
@@ -80,7 +80,7 @@ jobs:
cat ready_to_merge_issues_report.md hr.md issue_metrics.md > all.md
- name: Create issue
- uses: peter-evans/create-issue-from-file@v4
+ uses: peter-evans/create-issue-from-file@v6
with:
title: "Monthly Metrics: New Issues + New Pull Requests ${{ env.last_month }}"
token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/vale.yml b/.github/workflows/vale.yml
index 72a21d0cf..0792228cf 100644
--- a/.github/workflows/vale.yml
+++ b/.github/workflows/vale.yml
@@ -18,10 +18,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
- name: Vale Linting
- uses: errata-ai/vale-action@reviewdog
+ uses: errata-ai/vale-action@v2
with:
files: '["patterns/2-structured/", "patterns/3-validated/"]'
vale_flags: "--glob=*.md"
diff --git a/.lycheeignore b/.lycheeignore
index 473a94f74..3b44b7234 100644
--- a/.lycheeignore
+++ b/.lycheeignore
@@ -9,4 +9,9 @@ fearlesschangepatterns.com
https://ulir.ul.ie/bitstream/handle/10344/4443/Stol_2014_inner.pdf
.*@andrew.clegg.*
https://m.dotdev.co/how-to-write-a-readme-that-rocks-bc29f279611a
-https://www.chathamhouse.org/about-us/chatham-house-rule
\ No newline at end of file
+https://www.chathamhouse.org/about-us/chatham-house-rule
+https://www.linkedin.com/in
+# from source-code-inventory.md / no longer reachable but we want to keep the link in the pattern in case we find it again.
+https://github.com/trieshard/source-strategy-assessment/blob/master/framework.md
+https://dl.acm.org/doi/10.5555/3158161.3158175
+https://retromat.org/en/
\ No newline at end of file
diff --git a/.vale.ini b/.vale.ini
index 8b6d88db1..142bd22dd 100644
--- a/.vale.ini
+++ b/.vale.ini
@@ -3,6 +3,8 @@ MinAlertLevel = suggestion
Packages = https://github.com/InnerSourceCommons/isc-styles/releases/latest/download/ISC.zip
+Vocab = Base
+
[*]
BasedOnStyles = ISC
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 8d58bb70e..3a2228ae2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -7,7 +7,8 @@ For this working group to thrive, we welcome your contribution - be it small or
## How to Contribute?
Please consider contributing to the InnerSource Patterns.
-Here some suggestions on how you can contribute.
+
+*Here are some suggestions on how you can contribute.*
1. **Share your thoughts & spark discussion**: A fresh perspective, an interesting thought, or an early novel idea can spark discussions and yield unforeseeable results. We invite you to share your thoughts on InnerSource-related topics at any time by [creating an issue](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/new) or [via Slack](#how-to-get-in-touch).
@@ -19,7 +20,7 @@ Here some suggestions on how you can contribute.
5. **Review open pull requests**: Even without knowing all the specifics of the patterns working group, your feedback on existing [pull requests](https://github.com/InnerSourceCommons/InnerSourcePatterns/labels/type%20-%20Content%20work) (especially those proposing changes to pattern contents) will be valuable to its authors: As somebody who wants to learn more about InnerSource, you can give input from the perspective of a future reader. As somebody with own InnerSource experiences, you can share your experience with the authors.
-6. **Contribute a new pattern**: A key contribution you can make is to document an InnerSource best practice you experienced or know about. We defined different maturity levels for the contents in this repository: First time contributors should aim for maturity levels `1: initial` (for unstructured experience reports or what we call donuts - patterns with missing pieces) and `2: structured` (for best practices adhering to the patterns format and following basic writing style conventions). Our [Contributor Handbook](meta/contributor-handbook.md) discusses all this in more detail. You don't feel ready yet to contribute a new pattern? Please start a discussion by [creating an issue](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/new).
+6. **Contribute a new pattern**: A key contribution you can make is to document an InnerSource best practice you experienced or know about. We defined different maturity levels for the contents in this repository: First-time contributors should aim for maturity levels `1: initial` for unstructured experience reports. Our [Contributor Handbook](meta/contributor-handbook.md) discusses all this in more detail. You can also use the [Drafting InnerSource Pattern with AI](/meta/pattern-drafts-with-ai.md) instructions to quickly produce content for a new pattern. Are you ready to contribute a new pattern yet? Please start a discussion by [creating an issue](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/new).
7. **Be a patterns advocate**: The patterns will become better and cover more topics the more people contribute their perspective and experience. A colleague told you about a novel InnerSource best practice? Please invite her/him to contribute to this repository!
diff --git a/README.md b/README.md
index 6e1900727..ba25f4924 100644
--- a/README.md
+++ b/README.md
@@ -58,6 +58,7 @@ Our mission
* [Extensions for Sustainable Growth](/patterns/2-structured/extensions-for-sustainable-growth.md) - *An InnerSource project is receiving too many contributions, making maintenance difficult. By offering an extension mechanism outside of the core project, the maintainers enable scaling of project capabilities with minimal cost and maintenance overhead.*
* [Standard Release Process](patterns/2-structured/release-process.md) - *Teams may hesitate to adopt an InnerSource project if they are unsure of its maturity. To address this, consistent release notes and published artifacts are crucial. These practices showcase a strong dedication to the project, instilling confidence and assuring users of ongoing commitment to sustainable and well-managed software.*
* [Group Support](patterns/2-structured/group-support.md) - *What happens if a team or individual no longer supports an InnerSource project? Keep the project alive by forming a group of interested individuals.*
+* [Explicit Governance Levels](patterns/2-structured/governance-levels.md) - *Different teams within an organization use InnerSource practices in varying ways, leading to confusion and inefficiencies due to inconsistent expectations of collaboration and contribution rights. Establish centrally documented governance levels that define the extent of influence contributing teams can have on a project, improving clarity for contributors and host teams alike.*
### Maturity Level 1: Initial
@@ -71,7 +72,7 @@ Our mission
* [Include Product Owners](patterns/1-initial/include-product-owners.md) - *Engaging and educating Product Owners about InnerSource can help them modify their actions (e.g., in the space of KPIs) to help InnerSource collaboration work better.*
* [Assisted Compliance](patterns/1-initial/assisted_compliance.md) - *Helping repo owners be compliant by writing their CONTRIBUTING.md for them as a pull request.*
* [Open Source Trumps InnerSource](patterns/1-initial/open-source-trumps-innersource.md) - *Developers disregard InnerSource projects because they consider open source projects to be superior. Introducing a required evaluation of InnerSource projects before choosing an open source project increases the likelihood of the InnerSource projects to be adopted.*
-* [Transparent Governance Levels](patterns/1-initial/governance-levels.md) - *There are projects in multiple stages of InnerSource adoption. Contributors get confused when working with projects that are at different stages.*
+* [Governance Level Guided Project Setup](/patterns/1-initial/governance-based-project-setup.md) - *Before publishing their first InnerSource project, a team wants to choose an appropriate Governance Level but is unsure about the impact of the different levels on their daily doing. A dedicated list of resources (best practices, recommended patterns, target maturity levels) provides specific guidance to the team and helps them to make an educated decision.*
* [Contained InnerSource](patterns/1-initial/contained-innersource.md) - *Apply InnerSource methods to facilitate collaboration in a cross-divisional project but don't invest in soliciting contributions from outside of that project.*
* [Good First Project](patterns/1-initial/good-first-project.md) - *An InnerSource program has been launched at an organization, and to get off to a successful start it requires some good first projects that lend themselves to InnerSource-style development. Assessing the InnerSource-readiness (fitness) of the candidate projects can help in selecting projects that have the potential to help demonstrate the power of InnerSource.*
* [InnerSource Guidance Group](patterns/1-initial/innersource-guidance-group.md) - *A highly divergent set of development standards in different teams can slow down collaboration between these teams. A InnerSource Guidance Group that establishes broad governance and behavioral guidelines can help to reduce these frictions.*
@@ -87,6 +88,17 @@ Our mission
* [Code of Conduct](/patterns/1-initial/code-of-conduct.md) - *Communications and interactions between collaborators are rude, not inclusive or offensive, harming and increasing the discussions without any value added. A Code of Conduct provides guidelines for establishing rules and expectations regarding behavior and interactions within the community to build stronger levels of collaboration.*
* [Trusted Committer and Contributor Retrospectives](/patterns/1-initial/cross-team-retrospectives.md) - *A host team working with contributors outside of their own line of management constantly runs into misunderstandings. As a result collaboration becomes brittle and frustrating. Setting aside time for regular retrospectives for the InnerSource team consisting of trusted committers and contributors can help make communication smooth.*
* [InnerSource Hackathon](/patterns/1-initial/innersource-hackathon.md) - *In a company, initially only InnerSource enthusiasts are interested and practicing InnerSource during the early stages of InnerSource adoption; not all engineering teams are willing or have enough time and resources to adopt InnerSource. In this scenario, it is good to provide a safe space to try and adopt InnerSource through an InnerSource Hackathon event within the company.*
+* [Managing Capacity for Reviewing Contributions](/patterns/1-initial/capacity-for-contributions.md) - *Reviewing InnerSource contributions takes time and effort. This should be reflected in capacity planning, especially for larger contributions. Expectations and available capacity should be transparent so that contributors understand when their contributions will be reviewed and, if accepted, released.*
+* [InnerSource Ambassadors](/patterns/1-initial/innersource-ambassador.md) - *When driving InnerSource adoption through a large, decentralized organization it is hard to understand and address the local challenges that come up in different departments and regions. Local volunteers, called InnerSource Ambassadors, provide localized support by promoting InnerSource principles and acting as a communication bridge between their teams and the ISPO.*
+* [Circle Communities](/patterns/1-initial/circle-communities.md) - *InnerSource adoption is slow in organizations due to limited understanding, engagement, and contextual relevance. Circle Communities address this by fostering synchronous conversations that build connections, close knowledge gaps, and cultivate collaboration and continuous learning.*
+* [Internal Developer Platform](/patterns/1-initial/internal-developer-platform.md) - *As InnerSource adoption increases throughout an organisation, it is not unusual that project teams start to face inefficiencies in scaling their efforts due to fragmented tooling, environments, and workflows. An Internal Developer Platform (IDP) provides a way to tackle this type of challenges through a centralized, self-service system that standardizes development environments and integrates tools to enhance consistency, collaboration, and developer productivity.*
+* [Document Architecture Decisions](/patterns/1-initial/document-architecture-decisions.md) - *InnerSource contributors often face challenges in grasping the system's design rationale, which can result in misalignment between maintainers, contributors, and stakeholders — potentially discouraging participation. To enhance decision-making and transparency, we recommend capturing architecture decisions and their consequences in a lightweight, accessible format to streamline onboarding, clarify decisions, and support long-term project sustainability.*
+* [InnerSource Incentives and Disincentives](/patterns/1-initial/incentives-and-disincentives.md) - *Lack of awareness for incentives as well well as disincentives for InnerSource contribution decrease the chances of an InnerSource project receiving contributions; this is addressed by sharing a comprehensive list of potential incentives and disincentives.*
+* [Walk the InnerSource talk](/patterns/1-initial/walk-the-innersource-talk.md) - *Teams across the organization are encouraged to adopt InnerSource principles such as working openly, sharing code, and collaborating transparently. But, if the team behind the InnerSource initiative doesn’t follow these practices themselves, it undermines credibility and adoption. Therefore, this team should lead by example: documenting their decisions as code, working in the open, and treating their work as an InnerSource project to build trust and show others how it’s done.*
+* [Require InnerSource before Open Source](/patterns/1-initial/innersource-before-open-source.md) - *Maintaining and managing open source projects can be challenging for organizations, due to a lack of internal infrastructure and people with the knowledge of the required collaboration practices. By requiring projects to be InnerSource before becoming open source, teams have time to establish the necessary internal support, governance, and collaboration skills needed for successful community engagement.*
+* [AI Code Generation Context](patterns/1-initial/ai-code-generation-context.md) - *AI tools generate code that diverges from project standards and architectural patterns. Provide an AI Code Generation Context within the repositories to guide AI tools in producing contributions that align with existing project conventions, reducing review friction and maintaining code consistency.*
+* [InnerSource as a Career Booster](patterns/1-initial/innersource-as-career-booster.md) - *Many employees wonder how contributing to InnerSource projects benefits their careers beyond their immediate team objectives. By engaging in InnerSource, individuals expand their skills, grow their network, increase visibility across the organization, and unlock new career opportunities.*
+* [Migrating from InnerSource to Open Source](patterns/1-initial/migrating-from-innersource-to-open-source.md) - *When an InnerSource project succeeds internally and meets criteria for external release, organizations often lack a structured approach for the transition. Establish a process that addresses legal, security, governance, and community readiness to transition the project to open source while maintaining its internal value.*
+
+
+
+* [Introducción](./introduction.md)
+* [Tabla de Contenidos](./toc.md)
+* [Explorar Patrones](./explore-patterns.md)
+* [Contribuir a este libro](./contribute.md)
+
+
+
+## Patrones
+
+* [Casos de uso del Gestor de Tareas (Issue Tracker)](../../translation/es/patterns/issue-tracker.md) - El equipo anfitrión de InnerSource no logra hacer transparentes no solo los planes y el progreso sino también el contexto de los cambios. Esto se resuelve aumentando los casos de uso del gestor de tareas del proyecto para también servir como herramienta de lluvia de ideas, discusión de implementación y diseño de funcionalidades.
+* [Colaborador Contratado](../../translation/es/patterns/contracted-contributor.md) - Los colaboradores que desean contribuir a InnerSource son desalentados por su gerencia directa. La solución se proporciona mediante contratos y acuerdos formales.
+* [Comenzar como Experimento](../../translation/es/patterns/start-as-experiment.md) - Inicia tu iniciativa InnerSource como un experimento con tiempo limitado para facilitar que los gerentes no familiarizados con InnerSource respalden y apoyen la iniciativa.
+* [Comité de Revisión](../../translation/es/patterns/review-committee.md) - El modelo de trabajo InnerSource es un cambio radical respecto a los enfoques más tradicionales, tanto para desarrolladores como para gerentes. Al establecer un comité de revisión como puente entre la iniciativa InnerSource y todos los gerentes senior de las unidades de negocio participantes, es más probable que estos últimos se familiaricen con la iniciativa y la apoyen, ya que les proporciona cierto nivel de supervisión y control sin fomentar la microgestión.
+* [Documenta tus Principios Rectores](../../translation/es/patterns/document-your-guiding-principles.md) - La explicación habitual de InnerSource como "aplicación de mejores prácticas de open source dentro de una organización" no funciona bien con personas que carecen de experiencia en open source. Como solución, los principios más importantes de InnerSource se documentan y publican ampliamente.
+* [Documentación Base Estándar](../../translation/es/patterns/base-documentation.md) - Los nuevos contribuidores a un proyecto InnerSource tienen dificultades para identificar quién mantiene el proyecto, en qué trabajar y cómo contribuir. Proporcionar documentación en archivos estándar como README.md/CONTRIBUTING.md/COMMUNICATION.md permite un proceso de autoservicio para nuevos contribuidores, permitiéndoles encontrar respuestas a las preguntas más comunes por sí mismos.
+* [Equipo Central (Core Team)](../../translation/es/patterns/core-team.md) - Incluso cuando un proyecto InnerSource es ampliamente necesario, las contribuciones y el uso pueden verse obstaculizados porque el proyecto es difícil de manejar. Establece un equipo central dedicado a ocuparse de los elementos fundamentales del proyecto. Su trabajo permite que los contribuyentes agreguen y utilicen las funciones que aportan valor a sus escenarios.
+* [Extensiones para un Crecimiento Sostenible](../../translation/es/patterns/extensions-for-sustainable-growth.md) - Un proyecto InnerSource está recibiendo demasiadas contribuciones, haciendo difícil su mantenimiento. Al ofrecer un mecanismo de extensiones fuera del proyecto principal, los mantenedores permiten escalar las capacidades del proyecto con un costo y mantenimiento mínimos.
+* [Garantía de 30 Días](../../translation/es/patterns/30-day-warranty.md) - Al aceptar contribuciones externas, es natural que un equipo tenga cierta aversión a asumir la responsabilidad de código escrito por otros. A través de la Garantía de 30 Días, el equipo contribuyente se compromete a proporcionar correcciones de errores al equipo receptor, lo que aumentará el nivel de confianza entre ambos equipos y hace más probable que se acepten las contribuciones.
+* [Grupo de Soporte](../../translation/es/patterns/group-support.md) - ¿Qué sucede si un equipo o individuo deja de mantener un proyecto InnerSource? Mantén el proyecto activo formando un grupo de personas interesadas.
+* [Herramientas de Comunicación](../../translation/es/patterns/communication-tooling.md) - Los usuarios de un proyecto InnerSource tienen dificultades para obtener ayuda y contactar con el equipo anfitrión. Mediante el uso consistente de herramientas de comunicación asincrónica, el proyecto hace que las discusiones sean visibles, archivadas y buscables, lo que conduce a un mejor nivel de soporte para los usuarios.
+* [Licencia InnerSource](../../translation/es/patterns/innersource-license.md) - Dos entidades legales que pertenecen a la misma organización quieren compartir código fuente entre sí pero están preocupadas por las implicaciones en términos de responsabilidades legales o contabilidad entre empresas. Una Licencia InnerSource proporciona un marco legal reutilizable para compartir código fuente dentro de la organización. Esto abre nuevas opciones de colaboración y hace explícitos los derechos y obligaciones de las entidades legales involucradas.
+* [Líder de Comunidad Dedicado](../../translation/es/patterns/dedicated-community-leader.md) - Selecciona personas con habilidades tanto de comunicación como técnicas para liderar las comunidades y asegurar el éxito al iniciar una iniciativa InnerSource.
+* [Mercado de Gigs](../../translation/es/patterns/gig-marketplace.md) - Establece un mercado creando un sitio web interno donde se publiquen necesidades específicas de proyectos InnerSource como "Gigs" con requisitos explícitos de tiempo y habilidades. Esto permitirá a los gerentes comprender mejor el compromiso de tiempo de sus empleados y los beneficios profesionales, aumentando así la probabilidad de obtener aprobación para realizar contribuciones InnerSource.
+* [Modelo de Madurez](../../translation/es/patterns/maturity-model.md) - Los equipos han comenzado a adoptar InnerSource. La práctica se está expandiendo a múltiples departamentos. Sin embargo, la comprensión de lo que constituye un proyecto InnerSource varía. La solución es proporcionar un modelo de madurez que permita a los equipos realizar una autoevaluación y descubrir patrones y prácticas que aún no conocen.
+* [Portal InnerSource](../../translation/es/patterns/innersource-portal.md) - Los contribuidores potenciales no pueden descubrir fácilmente proyectos InnerSource que les interesen. Al crear un sitio web en la intranet que indexe toda la información disponible de proyectos InnerSource, permitirás que los contribuidores aprendan sobre proyectos que podrían interesarles y que los propietarios de proyectos InnerSource atraigan una audiencia externa.
+* [Proceso Estándar de Publicación](../../translation/es/patterns/release-process.md) - Los equipos pueden dudar en adoptar un proyecto InnerSource si no están seguros de su madurez. Para abordar esto, las notas de versión consistentes y los artefactos publicados son cruciales. Estas prácticas demuestran una fuerte dedicación al proyecto, generando confianza y asegurando a los usuarios un compromiso continuo con un software sostenible y bien gestionado.
+* [Puntuación de Actividad del Repositorio](../../translation/es/patterns/repository-activity-score.md) - Los contribuidores potenciales quieren encontrar proyectos InnerSource activos que necesiten su ayuda. Al calcular una puntuación de actividad del repositorio para cada proyecto, se puede crear una lista clasificada de proyectos (por ejemplo, en el Portal InnerSource), para que los contribuidores potenciales puedan determinar más fácilmente a qué proyecto quieren contribuir.
+* [Reconocimiento a los Participantes](../../translation/es/patterns/praise-participants.md) - Cuando recibes una contribución InnerSource, es importante agradecer al contribuidor por su tiempo y esfuerzo. Expresar tu gratitud no solo reconoce efectivamente la contribución sino que también genera mayor compromiso del contribuidor y otros. Reconocer las contribuciones positivas de los contribuidores a tu proyecto InnerSource motiva a estos contribuidores (y sus gerentes) a continuar invirtiendo en el esfuerzo.
+* [Requerimientos Comunes](../../translation/es/patterns/common-requirements.md) - El código común en un repositorio compartido no satisface las necesidades de todos los equipos de proyecto que desean utilizarlo; esto se resuelve mediante la alineación de requerimientos y la refactorización.
+* [Servicio vs Librería](../../translation/es/patterns/service-vs-library.md) - Los equipos en un entorno DevOps pueden mostrarse reacios a trabajar a través de los límites del equipo en bases de código comunes debido a la ambigüedad sobre quién será responsable de responder ante la interrupción del servicio. La solución es entender que, en muchos casos, se puede desplegar el mismo servicio en entornos independientes con rutas de escalamiento separadas para manejar interrupciones del servicio, o bien extraer gran parte del código compartido en una librería y colaborar en ella.
+* [Toma de Decisiones Transparente Entre Equipos usando RFCs](../../translation/es/patterns/transparent-cross-team-decision-making-using-rfcs.md) - Los proyectos InnerSource que buscan alcanzar altas tasas de participación y tomar las mejores decisiones posibles para todos los involucrados. Por ello necesitan encontrar formas de crear sistemas participativos a lo largo de todo el ciclo de vida del software. La publicación de documentos internos de Solicitud de Comentarios (RFC-Request for Comments) permite discusiones desde el inicio del proceso de diseño y aumenta las probabilidades de construir soluciones con un alto grado de compromiso de todas las partes involucradas.
+* [Trusted Committer](../../translation/es/patterns/trusted-committer.md) - Muchos proyectos InnerSource se encontrarán en una situación donde reciben constantemente retroalimentación, funcionalidades y correcciones de errores de los contribuidores. En estas situaciones, los mantenedores del proyecto buscan formas de reconocer y recompensar el trabajo del contribuidor más allá de las contribuciones individuales.
+* [Valoración de Proyectos Transversales](../../translation/es/patterns/crossteam-project-valuation.md) - Es difícil demostrar el valor de los proyectos InnerSource cross-team que no proporcionan un impacto directo en los ingresos de la empresa. Aquí hay una forma basada en datos para representar tu proyecto que articula y amplifica su valor.
+
+## Apéndice
+
+* [Plantilla de Patrones](../../meta/pattern-template.md)
+* [Glosario](../../meta/glossary.md)
+* Extras
+ * [Plantilla de README](../../translation/es/templates/README-template.md)
+ * [Plantilla de CONTRIBUTING](../../translation/es/templates/CONTRIBUTING-template.md)
+ * [Plantilla de COMMUNICATION](../../translation/es/templates/COMMUNICATION-template.md)
+ * [Plantilla de RFC](../../translation/es/templates/rfc.md)
+
+## Recursos
+
+* [Este libro en GitHub](https://github.com/InnerSourceCommons/InnerSourcePatterns)
+* [InnerSource Commons](http://innersourcecommons.org)
diff --git a/book/es/toc_template.md b/book/es/toc_template.md
new file mode 100644
index 000000000..230a91195
--- /dev/null
+++ b/book/es/toc_template.md
@@ -0,0 +1,37 @@
+# Tabla de Contenidos
+
+
+
+
+
+* [Introducción](./introduction.md)
+* [Tabla de Contenidos](./toc.md)
+* [Explorar Patrones](./explore-patterns.md)
+* [Contribuir a este libro](./contribute.md)
+
+
+
+## Patrones
+
+<>
+
+## Apéndice
+
+* [Plantilla de Patrones](../../meta/pattern-template.md)
+* [Glosario](../../meta/glossary.md)
+* Extras
+ * [Plantilla de README](../../translation/es/templates/README-template.md)
+ * [Plantilla de CONTRIBUTING](../../translation/es/templates/CONTRIBUTING-template.md)
+ * [Plantilla de COMMUNICATION](../../translation/es/templates/COMMUNICATION-template.md)
+ * [Plantilla de RFC](../../translation/es/templates/rfc.md)
+
+## Recursos
+
+* [Este libro en GitHub](https://github.com/InnerSourceCommons/InnerSourcePatterns)
+* [InnerSource Commons](http://innersourcecommons.org)
diff --git a/book/ja/toc.md b/book/ja/toc.md
index e3ab3cac4..2e02fb037 100644
--- a/book/ja/toc.md
+++ b/book/ja/toc.md
@@ -17,39 +17,91 @@ Instead edit toc_template.md

-## パターン
+## パターン
+
+
+
+**何から準備する?**
+
+* [実験として始める](../../translation/ja/patterns/start-as-experiment.md) - インナーソースイニシアチブを期間限定の実験として開始し、インナーソースに慣れていないマネージャーがイニシアチブを承認およびサポートしやすくします。
+
+* [正式なコミュニティリーダー](../../translation/ja/patterns/dedicated-community-leader.md) - インナーソースの取り組みを成功させるために、コミュニケーションとテクニカルの両方のスキルを持つ人をコミュニティのリーダーとして選ぶ。
+
+* [基本原則ガイダンスの文書化](../../translation/ja/patterns/document-your-guiding-principles.md) - 「オープンソースのベストプラクティスを組織内に適用する」という通常のインナーソースの説明は、オープンソースのバックグラウンドがない人々にはうまく機能しません。 解決策として、インナーソースの最も重要な原則を文書化し広く公開しましょう。
+
+**README.md、CONTRIBUTING.md、コミュニケーションツールなど用意するには?**
+
+* [スタンダード・ベース・ドキュメンテーション](../../translation/ja/patterns/base-documentation.md) - インナーソースプロジェクトへの新しいコントリビューターは、誰がプロジェクトを維持し、何に取り組み、どのようにコントリビューションすればよいかを理解するのに苦労しています。README.md/CONTRIBUTING.md のような標準ファイルでドキュメントを提供することで、新しいコントリビューターのためのセルフサービスなプロセスを可能にし、よくある質問に対する答えを自分自身で見つけることができるようにします。
-* [30日の保証期間](../../translation/ja/patterns/30-day-warranty.md) - 自分のチーム以外からのコントリビューションを受け入れる場合、チームが書いていないコードの責任を持つことに抵抗があることは自然なことでしょう。 「30日の保証期間」プラクティスを利用すると、コードにコントリビュートしたチームはコードを受け取ったチームに対してバグフィックスを提供することを承諾することになります。 そうすることで、両チーム間の信頼度が高まり、コントリビューションが受け入れられる可能性が高くなります。
-* [RFCを用いたチーム横断的な意思決定の透明化](../../translation/ja/patterns/transparent-cross-team-decision-making-using-rfcs.md) - 高い参加率を達成し、関係者全員にとって最良の意思決定を行いたいインナーソースプロジェクトは、ソフトウェアのライフサイクル全体を通して参加型のシステムを構築する方法を見つける必要があります。内部のRFC(Requests for Comments)ドキュメントを公開することで、設計プロセスの早い段階から議論を行うことができ、関係者全員が高いコミットメントを持ってソリューションを構築できる可能性が高まります。
-* [イシュートラッカーの使い方を多様化する](../../translation/ja/patterns/issue-tracker.md) - インナーソースのホストチームは、計画や進捗だけでなく、変更の背景も透明化することができていません。これは、プロジェクトのイシュートラッカーのユースケースを増やし、ブレーンストーミング、実装の議論、機能設計にも使えるようにすることで解決することができます。
-* [インナーソースポータル](../../translation/ja/patterns/innersource-portal.md) - 潜在的なコントリビューターは、彼らが興味を持っているインナーソースプロジェクトを簡単に見つけることができません。すべての利用可能なインナーソースプロジェクトの情報をインデックス化するイントラネットのウェブサイトを作成することにより、あなたはコントリビューターが彼らに興味があるかもしれないプロジェクトについて知ることができ、インナーソースプロジェクトのオーナーは、外部のオーディエンスを引き付けることができます。
-* [インナーソースライセンス](../../translation/ja/patterns/innersource-license.md) - 同じ組織に属する2つの法人は、ソフトウェアのソースコードを互いに共有したいと考えていますが、法的責任や会社間の会計処理の観点からの影響を懸念しています。
-* [ギグマーケットプレイス](../../translation/ja/patterns/gig-marketplace.md) - イントラネットのウェブサイトを作成し、特定のインナーソースプロジェクトのニーズを、時間とスキルの要件を明示した「ギグ」としてリストアップすることで、マーケットプレイスを確立する。 これにより、管理者がインナーソースのコントリビューションを行うための承認を与え可能性が増え、従業員の時間のコミットメントと専門的な利点をよりよく理解することができます。
-* [クロスチームプロジェクト評価](../../translation/ja/patterns/crossteam-project-valuation.md) - 会社の収益に直接的な影響を提供していないクロスチームのインナーソースプロジェクトの価値を評価して社内に売り込むことは困難です。 ここでは、あなたのプロジェクトの価値を明確に表現し、それを大きくするためのデータ駆動型の方法を紹介します
-* [コアチーム](../../translation/ja/patterns/core-team.md) - インナーソースのプロジェクトが広く必要とされていても、プロジェクトが難しいためにコントリビューションや活用に支障をきたす場合があります。プロジェクトの基本的な項目を専門に担当するコアチームを設立してください。コアチームの作業により、コントリビューターは自分のシナリオに価値をもたらす機能を追加し、使用することができます。
* [コミュニケーションツーリング](../../translation/ja/patterns/communication-tooling.md) - インナーソースのプロジェクトは、開発チームの外で使用されていますが、ユーザーはヘルプを得たり、プロジェクトチームと連絡を取ったりするのに苦労しています。 このアイデアは、ディスカッションが可視化され、アーカイブされ、検索可能になることを可能にする標準的なコミュニケーションツールを設定し、文書化することです。
-* [コントラクトコントリビューター](../../translation/ja/patterns/contracted-contributor.md) - インナーソースにコントリビュートしたい社員がいますが、彼らの直属の上司はその活動に抵抗を示しています。正式な契約と合意をすることによって救済することができるかもしれません。
+
+* [イシュートラッカーの使い方を多様化する](../../translation/ja/patterns/issue-tracker.md) - インナーソースのホストチームは、計画や進捗だけでなく、変更の背景も透明化することができていません。これは、プロジェクトのイシュートラッカーのユースケースを増やし、ブレーンストーミング、実装の議論、機能設計にも使えるようにすることで解決することができます。
+
+**インナーソースを本格導入しよう!**
+
+**インナーソースの価値を評価するには?**
+
+* [クロスチームプロジェクト評価](../../translation/ja/patterns/crossteam-project-valuation.md) - 会社の収益に直接的な影響を提供していないクロスチームのインナーソースプロジェクトの価値を評価して社内に売り込むことは困難です。 ここでは、あなたのプロジェクトの価値を明確に表現し、それを大きくするためのデータ駆動型の方法を紹介します。
+
+**感謝を伝えるには?**
+
* [コントリビューションの功労を称える](../../translation/ja/patterns/praise-participants.md) - インナーソースのコントリビューションの後、その時間と努力に対してコントリビューターに感謝することは重要です。 このパターンは、コントリビューションを効果的に認めるだけでなく、コントリビューターや他の人たちのさらなる関与を引き出すためのガイダンスを提供します。
+
+**技術的な問題に対しては?**
+
+* [共通要件](../../translation/ja/patterns/common-requirements.md) - 共有リポジトリにある共通のコードは、それを使いたいすべてのプロジェクトチームのニーズを満たしていません。これは、要件の調整とリファクタリングによって解決されます。
+
* [サービス対ライブラリ](../../translation/ja/patterns/service-vs-library.md) - DevOps環境のチームは、サービスのダウンタイムに対応する責任が誰にあるのかが曖昧になるため、チームの境界を越えて共通のコードベースで作業することに消極的になる場合があります。解決策としては、同じサービスを独立した環境で展開し、サービスダウン時のエスカレーション・チェーンを別々に構築するか、多くの共有コードを1つのライブラリに集約し、その上で共同作業を行うことが挙げられます。
-* [スタンダード・ベース・ドキュメンテーション](../../translation/ja/patterns/base-documentation.md) - インナーソースプロジェクトへの新しいコントリビューターは、誰がプロジェクトを維持し、何に取り組み、どのようにコントリビューションすればよいかを理解するのに苦労しています。README.md/CONTRIBUTING.md のような標準ファイルでドキュメントを提供することで、新しいコントリビューターのためのセルフサービスなプロセスを可能にし、よくある質問に対する答えを自分自身で見つけることができるようにします。
+
+* [コアチーム](../../translation/ja/patterns/core-team.md) - インナーソースのプロジェクトが広く必要とされていても、プロジェクトが難しいためにコントリビューションや活用に支障をきたす場合があります。プロジェクトの基本的な項目を専門に担当するコアチームを設立してください。コアチームの作業により、コントリビューターは自分のシナリオに価値をもたらす機能を追加し、使用することができます。
+
+**組織的な挑戦の仕方は?**
+
+* [コントラクトコントリビューター](../../translation/ja/patterns/contracted-contributor.md) - インナーソースにコントリビュートしたい社員がいますが、彼らの直属の上司はその活動に抵抗を示しています。正式な契約と合意をすることによって救済することができるかもしれません。
+
+* [30日の保証期間](../../translation/ja/patterns/30-day-warranty.md) - 自分のチーム以外からのコントリビューションを受け入れる場合、チームが書いていないコードの責任を持つことに抵抗があることは自然なことでしょう。 「30日の保証期間」プラクティスを利用すると、コードにコントリビュートしたチームはコードを受け取ったチームに対してバグフィックスを提供することを承諾することになります。 そうすることで、両チーム間の信頼度が高まり、コントリビューションが受け入れられる可能性が高くなります。
+
+* [レビュー委員会](../../translation/ja/patterns/review-committee.md) - インナーソースの作業モデルは、開発者と管理者のための、より伝統的なアプローチからの抜本的な変革です。インナーソースイニシアチブとそれに参加するビジネスユニットのすべてのシニアマネージャーの間のインタフェースとしてレビュー委員会を確立することにより、マイクロマネジメントを助長することなく、監視と制御の一定レベルを与えるように、イニシアチブに慣れ親しみ、それをサポートできるようになる可能性が高くなります。
+
* [トラステッドコミッター](../../translation/ja/patterns/trusted-committer.md) - 多くのInnerSourceプロジェクトは、コントリビューターからフィードバック、機能、バグフィックスを一貫して受け取る状況にあります。このような状況で、プロジェクトのメンテナーは、単一のコントリビューションを越えてコントリビューターの仕事を認識し、報酬を与える方法を模索します。
+
+* [RFCを用いたチーム横断的な意思決定の透明化](../../translation/ja/patterns/transparent-cross-team-decision-making-using-rfcs.md) - 高い参加率を達成し、関係者全員にとって最良の意思決定を行いたいインナーソースプロジェクトは、ソフトウェアのライフサイクル全体を通して参加型のシステムを構築する方法を見つける必要があります。内部のRFC(Requests for Comments)ドキュメントを公開することで、設計プロセスの早い段階から議論を行うことができ、関係者全員が高いコミットメントを持ってソリューションを構築できる可能性が高まります。
+
+**インナーソースライセンスとは?**
+
+* [インナーソースライセンス](../../translation/ja/patterns/innersource-license.md) - 同じ組織に属する2つの法人は、ソフトウェアのソースコードを互いに共有したいと考えていますが、法的責任や会社間の会計処理の観点からの影響を懸念しています。
+
+**インナーソースを成長させよう!**
+
+**組織内のインナーソースを探しやすくするには?**
+
+* [ギグマーケットプレイス](../../translation/ja/patterns/gig-marketplace.md) - イントラネットのウェブサイトを作成し、特定のインナーソースプロジェクトのニーズを、時間とスキルの要件を明示した「ギグ」としてリストアップすることで、マーケットプレイスを確立する。 これにより、管理者がインナーソースのコントリビューションを行うための承認を与え可能性が増え、従業員の時間のコミットメントと専門的な利点をよりよく理解することができます。
+
+* [インナーソースポータル](../../translation/ja/patterns/innersource-portal.md) - 潜在的なコントリビューターは、彼らが興味を持っているインナーソースプロジェクトを簡単に見つけることができません。すべての利用可能なインナーソースプロジェクトの情報をインデックス化するイントラネットのウェブサイトを作成することにより、あなたはコントリビューターが彼らに興味があるかもしれないプロジェクトについて知ることができ、インナーソースプロジェクトのオーナーは、外部のオーディエンスを引き付けることができます。
+
* [リポジトリアクティビティスコア](../../translation/ja/patterns/repository-activity-score.md) - 潜在的なコントリビューターは、彼らの助けを必要とするアクティブなインナーソースプロジェクトを見つけたいと思っています。各プロジェクトのリポジトリのアクティビティスコアを計算することで、プロジェクトのランク付けされたリストを作成することができます (参考: インナーソースポータル )、そのため、潜在的コントリビューターは、彼らがコントリビュートしたいプロジェクトをより簡単に決定できます。
-* [レビュー委員会](../../translation/ja/patterns/review-committee.md) - インナーソースの作業モデルは、開発者と管理者のための、より伝統的なアプローチからの抜本的な変革です。インナーソースイニシアチブとそれに参加するビジネスユニットのすべてのシニアマネージャーの間のインタフェースとしてレビュー委員会を確立することにより、マイクロマネジメントを助長することなく、監視と制御の一定レベルを与えるように、イニシアチブに慣れ親しみ、それをサポートできるようになる可能性が高くなります。
-* [共通要件](../../translation/ja/patterns/common-requirements.md) - 共有リポジトリにある共通のコードは、それを使いたいすべてのプロジェクトチームのニーズを満たしていません。これは、要件の調整とリファクタリングによって解決されます。
-* [基本原則ガイダンスの文書化](../../translation/ja/patterns/document-your-guiding-principles.md) - 「オープンソースのベストプラクティスを組織内に適用する」という通常のインナーソースの説明は、オープンソースのバックグラウンドがない人々にはうまく機能しません。 解決策として、インナーソースの最も重要な原則を文書化し広く公開しましょう。
-* [実験として始める](../../translation/ja/patterns/start-as-experiment.md) - インナーソースイニシアチブを期間限定の実験として開始し、インナーソースに慣れていないマネージャーがイニシアチブを承認およびサポートしやすくします。
+
+**インナーソースを拡大させよう!**
+
+**インナーソースの拡大を評価するには?**
+
* [成熟度モデル](../../translation/ja/patterns/maturity-model.md) - チームはインナーソースを採用し始めました。このプラクティスは、複数の部門に広がっています。しかし、インナーソースプロジェクトを構成する概念への理解は様々です。解決策は、チームがセルフチェックを経て、まだ気づいていないパターンやプラクティスを発見できるよう、成熟度モデルを提供することです。
+
+**インナーソースプロジェクトを持続的に成長させていくためには?**
+
* [持続可能な成長のためのエクステンション](../../translation/ja/patterns/extensions-for-sustainable-growth.md) - インナーソースプロジェクトは多くのコントリビューションを受けており、メンテナンスが難しくなっています。メンテナは、プロジェクトのコア部分から離れた拡張機構を提供することで、最小のコストとメンテナンスオーバーヘッドでプロジェクトの能力をスケールアップすることを可能にします。
-* [正式なコミュニティリーダー](../../translation/ja/patterns/dedicated-community-leader.md) - インナーソースの取り組みを成功させるために、コミュニケーションとテクニカルの両方のスキルを持つ人をコミュニティのリーダーとして選ぶ。
-## 付録
+## Appendix
* [パターンテンプレート](../../meta/pattern-template.md)
* その他
* [README テンプレート](../../translation/ja/templates/README-template.md)
* [CONTRIBUTING テンプレート](../../translation/ja/templates/CONTRIBUTING-template.md)
-## リソース
+## Resources
* [GitHub](https://github.com/InnerSourceCommons/InnerSourcePatterns)
* [InnerSource Commons](http://innersourcecommons.org)
diff --git a/book/ja/toc_template.md b/book/ja/toc_template.md
index 0bc3a7019..2e02fb037 100644
--- a/book/ja/toc_template.md
+++ b/book/ja/toc_template.md
@@ -17,18 +17,91 @@ Instead edit toc_template.md

-## パターン
+## パターン
-<>
+
+
+**何から準備する?**
+
+* [実験として始める](../../translation/ja/patterns/start-as-experiment.md) - インナーソースイニシアチブを期間限定の実験として開始し、インナーソースに慣れていないマネージャーがイニシアチブを承認およびサポートしやすくします。
+
+* [正式なコミュニティリーダー](../../translation/ja/patterns/dedicated-community-leader.md) - インナーソースの取り組みを成功させるために、コミュニケーションとテクニカルの両方のスキルを持つ人をコミュニティのリーダーとして選ぶ。
+
+* [基本原則ガイダンスの文書化](../../translation/ja/patterns/document-your-guiding-principles.md) - 「オープンソースのベストプラクティスを組織内に適用する」という通常のインナーソースの説明は、オープンソースのバックグラウンドがない人々にはうまく機能しません。 解決策として、インナーソースの最も重要な原則を文書化し広く公開しましょう。
+
+**README.md、CONTRIBUTING.md、コミュニケーションツールなど用意するには?**
+
+* [スタンダード・ベース・ドキュメンテーション](../../translation/ja/patterns/base-documentation.md) - インナーソースプロジェクトへの新しいコントリビューターは、誰がプロジェクトを維持し、何に取り組み、どのようにコントリビューションすればよいかを理解するのに苦労しています。README.md/CONTRIBUTING.md のような標準ファイルでドキュメントを提供することで、新しいコントリビューターのためのセルフサービスなプロセスを可能にし、よくある質問に対する答えを自分自身で見つけることができるようにします。
+
+* [コミュニケーションツーリング](../../translation/ja/patterns/communication-tooling.md) - インナーソースのプロジェクトは、開発チームの外で使用されていますが、ユーザーはヘルプを得たり、プロジェクトチームと連絡を取ったりするのに苦労しています。 このアイデアは、ディスカッションが可視化され、アーカイブされ、検索可能になることを可能にする標準的なコミュニケーションツールを設定し、文書化することです。
+
+* [イシュートラッカーの使い方を多様化する](../../translation/ja/patterns/issue-tracker.md) - インナーソースのホストチームは、計画や進捗だけでなく、変更の背景も透明化することができていません。これは、プロジェクトのイシュートラッカーのユースケースを増やし、ブレーンストーミング、実装の議論、機能設計にも使えるようにすることで解決することができます。
+
+**インナーソースを本格導入しよう!**
+
+**インナーソースの価値を評価するには?**
+
+* [クロスチームプロジェクト評価](../../translation/ja/patterns/crossteam-project-valuation.md) - 会社の収益に直接的な影響を提供していないクロスチームのインナーソースプロジェクトの価値を評価して社内に売り込むことは困難です。 ここでは、あなたのプロジェクトの価値を明確に表現し、それを大きくするためのデータ駆動型の方法を紹介します。
+
+**感謝を伝えるには?**
+
+* [コントリビューションの功労を称える](../../translation/ja/patterns/praise-participants.md) - インナーソースのコントリビューションの後、その時間と努力に対してコントリビューターに感謝することは重要です。 このパターンは、コントリビューションを効果的に認めるだけでなく、コントリビューターや他の人たちのさらなる関与を引き出すためのガイダンスを提供します。
+
+**技術的な問題に対しては?**
+
+* [共通要件](../../translation/ja/patterns/common-requirements.md) - 共有リポジトリにある共通のコードは、それを使いたいすべてのプロジェクトチームのニーズを満たしていません。これは、要件の調整とリファクタリングによって解決されます。
+
+* [サービス対ライブラリ](../../translation/ja/patterns/service-vs-library.md) - DevOps環境のチームは、サービスのダウンタイムに対応する責任が誰にあるのかが曖昧になるため、チームの境界を越えて共通のコードベースで作業することに消極的になる場合があります。解決策としては、同じサービスを独立した環境で展開し、サービスダウン時のエスカレーション・チェーンを別々に構築するか、多くの共有コードを1つのライブラリに集約し、その上で共同作業を行うことが挙げられます。
+
+* [コアチーム](../../translation/ja/patterns/core-team.md) - インナーソースのプロジェクトが広く必要とされていても、プロジェクトが難しいためにコントリビューションや活用に支障をきたす場合があります。プロジェクトの基本的な項目を専門に担当するコアチームを設立してください。コアチームの作業により、コントリビューターは自分のシナリオに価値をもたらす機能を追加し、使用することができます。
+
+**組織的な挑戦の仕方は?**
+
+* [コントラクトコントリビューター](../../translation/ja/patterns/contracted-contributor.md) - インナーソースにコントリビュートしたい社員がいますが、彼らの直属の上司はその活動に抵抗を示しています。正式な契約と合意をすることによって救済することができるかもしれません。
+
+* [30日の保証期間](../../translation/ja/patterns/30-day-warranty.md) - 自分のチーム以外からのコントリビューションを受け入れる場合、チームが書いていないコードの責任を持つことに抵抗があることは自然なことでしょう。 「30日の保証期間」プラクティスを利用すると、コードにコントリビュートしたチームはコードを受け取ったチームに対してバグフィックスを提供することを承諾することになります。 そうすることで、両チーム間の信頼度が高まり、コントリビューションが受け入れられる可能性が高くなります。
+
+* [レビュー委員会](../../translation/ja/patterns/review-committee.md) - インナーソースの作業モデルは、開発者と管理者のための、より伝統的なアプローチからの抜本的な変革です。インナーソースイニシアチブとそれに参加するビジネスユニットのすべてのシニアマネージャーの間のインタフェースとしてレビュー委員会を確立することにより、マイクロマネジメントを助長することなく、監視と制御の一定レベルを与えるように、イニシアチブに慣れ親しみ、それをサポートできるようになる可能性が高くなります。
+
+* [トラステッドコミッター](../../translation/ja/patterns/trusted-committer.md) - 多くのInnerSourceプロジェクトは、コントリビューターからフィードバック、機能、バグフィックスを一貫して受け取る状況にあります。このような状況で、プロジェクトのメンテナーは、単一のコントリビューションを越えてコントリビューターの仕事を認識し、報酬を与える方法を模索します。
+
+* [RFCを用いたチーム横断的な意思決定の透明化](../../translation/ja/patterns/transparent-cross-team-decision-making-using-rfcs.md) - 高い参加率を達成し、関係者全員にとって最良の意思決定を行いたいインナーソースプロジェクトは、ソフトウェアのライフサイクル全体を通して参加型のシステムを構築する方法を見つける必要があります。内部のRFC(Requests for Comments)ドキュメントを公開することで、設計プロセスの早い段階から議論を行うことができ、関係者全員が高いコミットメントを持ってソリューションを構築できる可能性が高まります。
+
+**インナーソースライセンスとは?**
+
+* [インナーソースライセンス](../../translation/ja/patterns/innersource-license.md) - 同じ組織に属する2つの法人は、ソフトウェアのソースコードを互いに共有したいと考えていますが、法的責任や会社間の会計処理の観点からの影響を懸念しています。
+
+**インナーソースを成長させよう!**
+
+**組織内のインナーソースを探しやすくするには?**
+
+* [ギグマーケットプレイス](../../translation/ja/patterns/gig-marketplace.md) - イントラネットのウェブサイトを作成し、特定のインナーソースプロジェクトのニーズを、時間とスキルの要件を明示した「ギグ」としてリストアップすることで、マーケットプレイスを確立する。 これにより、管理者がインナーソースのコントリビューションを行うための承認を与え可能性が増え、従業員の時間のコミットメントと専門的な利点をよりよく理解することができます。
+
+* [インナーソースポータル](../../translation/ja/patterns/innersource-portal.md) - 潜在的なコントリビューターは、彼らが興味を持っているインナーソースプロジェクトを簡単に見つけることができません。すべての利用可能なインナーソースプロジェクトの情報をインデックス化するイントラネットのウェブサイトを作成することにより、あなたはコントリビューターが彼らに興味があるかもしれないプロジェクトについて知ることができ、インナーソースプロジェクトのオーナーは、外部のオーディエンスを引き付けることができます。
+
+* [リポジトリアクティビティスコア](../../translation/ja/patterns/repository-activity-score.md) - 潜在的なコントリビューターは、彼らの助けを必要とするアクティブなインナーソースプロジェクトを見つけたいと思っています。各プロジェクトのリポジトリのアクティビティスコアを計算することで、プロジェクトのランク付けされたリストを作成することができます (参考: インナーソースポータル )、そのため、潜在的コントリビューターは、彼らがコントリビュートしたいプロジェクトをより簡単に決定できます。
+
+**インナーソースを拡大させよう!**
+
+**インナーソースの拡大を評価するには?**
+
+* [成熟度モデル](../../translation/ja/patterns/maturity-model.md) - チームはインナーソースを採用し始めました。このプラクティスは、複数の部門に広がっています。しかし、インナーソースプロジェクトを構成する概念への理解は様々です。解決策は、チームがセルフチェックを経て、まだ気づいていないパターンやプラクティスを発見できるよう、成熟度モデルを提供することです。
+
+**インナーソースプロジェクトを持続的に成長させていくためには?**
+
+* [持続可能な成長のためのエクステンション](../../translation/ja/patterns/extensions-for-sustainable-growth.md) - インナーソースプロジェクトは多くのコントリビューションを受けており、メンテナンスが難しくなっています。メンテナは、プロジェクトのコア部分から離れた拡張機構を提供することで、最小のコストとメンテナンスオーバーヘッドでプロジェクトの能力をスケールアップすることを可能にします。
+
+## Appendix
* [パターンテンプレート](../../meta/pattern-template.md)
* その他
* [README テンプレート](../../translation/ja/templates/README-template.md)
* [CONTRIBUTING テンプレート](../../translation/ja/templates/CONTRIBUTING-template.md)
-## リソース
+## Resources
* [GitHub](https://github.com/InnerSourceCommons/InnerSourcePatterns)
* [InnerSource Commons](http://innersourcecommons.org)
diff --git a/book/scripts/Gemfile b/book/scripts/Gemfile
index 1cd3261e2..433c50155 100644
--- a/book/scripts/Gemfile
+++ b/book/scripts/Gemfile
@@ -4,4 +4,4 @@ source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
-gem 'commonmarker'
+gem 'commonmarker', "0.23.10"
diff --git a/book/zh/toc.md b/book/zh/toc.md
index c427e995a..367bd7ddb 100644
--- a/book/zh/toc.md
+++ b/book/zh/toc.md
@@ -31,13 +31,16 @@ Instead edit toc_template.md
* [内源门户网站](../../translation/zh/patterns/innersource-portal.md) - 潜在的贡献者很难找到他们感兴趣的内源项目。你可以通过创建一个索引所有可用的内源项目信息的内部网站,可以让贡献者了解他们可能感兴趣的项目,也可以让内源项目的负责人发展外部受众。
* [利用RFC进行透明的跨团队决策](../../translation/zh/patterns/transparent-cross-team-decision-making-using-rfcs.md) - 内源项目如果想实现高参与率,并为每个参与者做出最好的决定,就需要想办法在整个软件生命周期中建立易于参与式的环境。发布内部征求意见稿(RFC)文件,可以在设计过程的早期就进行讨论,并促进在参与各方在高参与度下建立解决方案的机会。
* [基准级的文档](../../translation/zh/patterns/base-documentation.md) - 内源项目的新贡献者很难搞清楚谁在维护这个项目,该做什么,以及如何贡献。在标准文件中提供文档,如README.md/CONTRIBUTING.md,可以为新的贡献者提供一个自助服务流程,这样他们就可以自己找到最常见问题的答案。
+* [小组支持](../../translation/zh/patterns/group-support.md) - 如果某个团队或个人不再支持 InnerSource 项目怎么办? 由一群感兴趣的个人组成小组来保持项目活跃。
* [成熟度模型](../../translation/zh/patterns/maturity-model.md) - 各个团队已经开始采用内源。这种做法正在向多个部门蔓延。然而,人们对什么是内源项目的理解各不相同。解决方案是提供一个成熟度模型,让团队通过自我检查,发现他们还没有意识到的模式和做法。
* [服务 vs. 库](../../translation/zh/patterns/service-vs-library.md) - 由于对服务宕机责任的模糊不清,DevOps团队都不太愿意基于公共代码进行跨团队工作。 解决办法是让大家认识到通常情况下:要么在独立的环境中部署相同的服务,在服务宕机时有独立的问题处理兜底机制;要么将大量的共享代码纳入一个库,大家在此基础上进行协作。
+* [标准发布流程](../../translation/zh/patterns/release-process.md) - 如果团队不确定 InnerSource 项目的成熟度,他们可能会犹豫是否采用该项目。为了解决该问题,一致的发布说明和已发布制品至关重要。这些做法展示了对项目的坚定承诺,为用户提振了信心,并向他们保证了对可持续和管理良好的软件的持续承诺。
* [核心团队](../../translation/zh/patterns/core-team.md) - 即使一个内源项目被广泛应用,但也可能因为项目难以协作而阻碍项目的贡献和使用。 建立一个核心团队,专门负责处理项目的基本事务。 他们的工作可以确保贡献者能够增加和使用满足他们自己使用场景需要的特性。
* [签约贡献者](../../translation/zh/patterns/contracted-contributor.md) - 想为内源做贡献的同事被他们的直线管理层劝阻。正式的合同和协议为这种困境提供援助。
* [记录你的指导原则](../../translation/zh/patterns/document-your-guiding-principles.md) - 通常内源对 "在组织内部应用开源最佳实践 "的解释对缺乏开源背景的人来说效果并不好。 作为一种补救措施,内源最重要的原则被记录下来并广泛宣传。
* [评审委员会](../../translation/zh/patterns/review-committee.md) - 对于开发人员和管理人员来说,内源的工作模式与更多的传统方法截然不同。通过建立一个评审委员会,作为内源计划和所有参与该计划的业务部门高级管理人员之间的接口,后者更有可能更加熟悉并支持该计划,因为评审委员会为他们提供了一定程度的监督和控制,而不会助长微管理。
* [跨团队的项目评估](../../translation/zh/patterns/crossteam-project-valuation.md) - 要推销跨团队的内源项目的价值是很难的,因为这些项目并没有对公司的收入产生直接影响。 这里有一个数据驱动的方法来展示和凸显你的项目价值。
+* [通过扩展实现可持续增长](../../translation/zh/patterns/extensions-for-sustainable-growth.md) - InnerSource 项目收到了太多的贡献,这会导致维护变得困难。通过在核心项目之外提供扩展机制,维护者可以用最小的成本和维护开销扩展项目功能。
* [问题追踪器使用案例](../../translation/zh/patterns/issue-tracker.md) - 内源东道主团队不仅没有使计划和进展,而且也没有将变化背景信息变透明。这可以通过增加项目问题跟踪器的使用案例来解决,它也可以为头脑风暴、实施讨论和功能设计服务。
* [零工市场](../../translation/zh/patterns/gig-marketplace.md) - 建立一个市场,创建一个内部网站,将特定的内源项目需求列为 "任务",并提出明确的时间和技能要求。 这将使管理人员能够更好地了解员工的时间承诺和专业利益,从而增加获得批准做出内源贡献的可能性。
diff --git a/meta/boardreports/2020-12.md b/meta/boardreports/2020-12.md
index 54c08e1fd..32d050863 100644
--- a/meta/boardreports/2020-12.md
+++ b/meta/boardreports/2020-12.md
@@ -46,7 +46,7 @@
- Process existing content from pull requests and Google group into our repository
- Evaluate ideas to further facilitate collection of pattern content (e.g. through automation), channel ongoing discussions into pattern-work and attract more contributors, e.g. by lowering the barriers of entry for them.
- Onboard further trusted committers
-- Review the current list of trusted committers. Some of them don’t seem to be active anymore and likely receive a lot of github notifcations and emails from us that they don't need. (do we have an offboarding process for TCs?)
+- Review the current list of trusted committers. Some of them don’t seem to be active anymore and likely receive a lot of github notifications and emails from us that they don't need. (do we have an offboarding process for TCs?)
- Level up some patterns to higher maturity levels. e.g. the [InnerSource Portal](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/master/patterns/2-structured/innersource-portal.md) has multiple known instances and even a reference implementation now, so it could be brought to maturity "Validated" relatively easily.
## Last Committer Addition
diff --git a/meta/boardreports/2021-01.md b/meta/boardreports/2021-01.md
index 4447d4b02..b2d436666 100644
--- a/meta/boardreports/2021-01.md
+++ b/meta/boardreports/2021-01.md
@@ -60,7 +60,7 @@
- Level up some patterns to higher maturity levels. e.g. the [InnerSource Portal](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/master/patterns/2-structured/innersource-portal.md) has multiple known instances and even a reference implementation now, so it could be brought to maturity "Validated" relatively easily.
- Process / Maintenance
- Onboard further trusted committers
- - Review the current list of trusted committers. Some of them don’t seem to be active anymore and likely receive a lot of github notifcations and emails from us that they don't need. (do we have an offboarding process for TCs?)
+ - Review the current list of trusted committers. Some of them don’t seem to be active anymore and likely receive a lot of github notifications and emails from us that they don't need. (do we have an offboarding process for TCs?)
- Process existing content from PRs and Google group into our repository (once that is done we can focus on the contribution process via the GitHub repo exclusively)
## Last Committer Addition
diff --git a/meta/boardreports/2024-05.md b/meta/boardreports/2024-05.md
new file mode 100644
index 000000000..709c10b05
--- /dev/null
+++ b/meta/boardreports/2024-05.md
@@ -0,0 +1,3 @@
+# InnerSource Patterns WG - Report for Board Meeting 2024-05
+
+The Patterns WG did not submit a report to this Board Meeting, due to a lack of time.
diff --git a/meta/boardreports/2024-08.md b/meta/boardreports/2024-08.md
new file mode 100644
index 000000000..1bec6296e
--- /dev/null
+++ b/meta/boardreports/2024-08.md
@@ -0,0 +1,63 @@
+# InnerSource Patterns WG - Report for Board Meeting 2024-08
+
+## Meta
+
+* Reporting Period: 2024-05..2024-07
+* [merged PRs](https://github.com/InnerSourceCommons/InnerSourcePatterns/pulls?q=is%3Apr+closed%3A2024-05..2024-07+is%3Amerged)
+* [opened issues](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues?q=is%3Aissue+created%3A2024-05..2024-07+is%3Aopen)
+
+## Engagement
+
+NOTE: no comparison to previous quarter as we did not submit a report then.
+
+The [patterns book][] is the way InnerSource practices are captured and shared. Recent web analytics:
+
+* total traffic on the patterns book (tracking_id: `G-QL1S8MW5D9`)
+ * 15,021 views total
+ * 1,897 users
+* Most popular patterns:
+ * Core Team
+ * Maturity Model
+ * InnerSource Portal
+ * 30 Day Warranty
+ * Standard Base Documentation
+* traffic for translations:
+ * Japanese (/v/ja) - no data in Google Analytics. no idea why.
+ * Chinese (/v/zh) - 545
+ * Brazilian Portuguese (/v/pt-br) - 358
+ * Galician (/v/gl) - 68
+
+## Changes
+
+Changes are contributed via the [InnerSourcePatterns][] repository:
+
+* new patterns:
+ * [Code of Conduct](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/code-of-conduct.md) - thank you [rmarting](https://github.com/rmarting)
+ * [InnerSource Hackathon](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/innersource-hackathon.md) - thank you [spriya-m](https://github.com/spriya-m)
+ * [Trusted Committer and Contributor Retrospectives](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/cross-team-retrospectives.md) - thank you [MaineC](https://github.com/MaineC)
+ * especially exciting because the first two came from new or infrequent contributors
+* translations
+ * nothing new
+* additions of Known Instances (applications of our patterns in the wild)
+ * GitHub to new Code of Conduct pattern. Thank you @zkoppert
+* some additions to the glossary. still very few entries in the glossary, however we now [published](https://patterns.innersourcecommons.org/appendix/glossary) it in the patterns book. maybe that we motivate us to extend it.
+* would like to do one round of cleanup of old PRs/issues that are unlikely to still be implemented as they are stale for too long
+
+## Things to come
+
+* (still) toying with the idea to add [Adopters pages](https://innersourcecommons.gitbook.io/innersource-patterns-staging/v/adopters-test/adopters/adopters) to our book. Goal: showcase the organizations and the patterns they use more prominently in our book. Looking for feedback! More [details here](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/623).
+* Some PRs are stuck. Reason is mostly that I (@spier) have less time to review things or communication with the contributor stopped somewhere
+
+## Trusted Committers (Community)
+
+* Last [Trusted Committer][] added was [@yuhattor](https://github.com/yuhattor) (added 2022-07-21)
+* Trusted Committer candidates in the pipeline: No
+* Finding new contributors and further trusted committers continues to be the main challenge of the InnerSource Patterns project
+
+## Next Goals
+
+Same as previous Board report.
+
+[patterns book]: https://patterns.innersourcecommons.org/
+[InnerSourcePatterns]: https://github.com/InnerSourceCommons/InnerSourcePatterns/
+[Trusted Committer]: https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/TRUSTED-COMMITTERS.md
diff --git a/meta/boardreports/2024-11.md b/meta/boardreports/2024-11.md
new file mode 100644
index 000000000..e41e2c396
--- /dev/null
+++ b/meta/boardreports/2024-11.md
@@ -0,0 +1,64 @@
+# InnerSource Patterns WG - Report for Board Meeting 2024-11
+
+## Meta
+
+* Reporting Period: 2024-08..2024-10
+* [merged PRs](https://github.com/InnerSourceCommons/InnerSourcePatterns/pulls?q=is%3Apr+closed%3A2024-08..2024-10+is%3Amerged)
+* [opened issues](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues?q=is%3Aissue+created%3A2024-08..2024-10+is%3Aopen)
+
+## Engagement
+
+The [patterns book][] is the way InnerSource practices are captured and shared. Recent web analytics:
+
+* total traffic on the patterns book (tracking_id: `G-QL1S8MW5D9`)
+ * 14,308 views total (prev 15,021)
+ * 1,908 users (prev 1,897)
+* Most popular patterns:
+ * 30 Day Warranty
+ * Core Team
+ * Maturity Model
+ * Standard Base Documentation
+ * InnerSource Portal
+* traffic for translations:
+ * Japanese (/v/ja) - 1300 (prev no data in Google Analytics)
+ * Chinese (/v/zh) - 305 (prev 545)
+ * Brazilian Portuguese (/v/pt-br) - 332 (prev 358)
+ * Galician (/v/gl) - 46 (prev 68)
+ * English (/) - roughly 12,300 (14,308 - sum of translation views above)
+* interpretations
+ * Of our translated content, the Japanese patterns are consumed the most (almost 10% of our total views). Great to see that the content provides value to users in that geo/language.
+ * Year over year the total views are down quite a bit. not sure why. (see reports from 2023)
+
+## Changes
+
+Changes are contributed via the [InnerSourcePatterns][] repository:
+
+* new patterns:
+ * none
+* translations
+ * [fixes](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/722) to the Chinese translations / thanks @node
+* additions of Known Instances (applications of our patterns in the wild)
+ * none
+* other
+ * [great review](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/710) / thanks @semioticrobotic
+ * [fixed link to bazaar plugin](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/711) / thanks @khola
+
+## Things to come
+
+* We would like to do one round of cleanup of old PRs/issues that are unlikely to still be implemented as they are stale for too long.
+* (still) Toying with the idea to add [Adopters pages](https://innersourcecommons.gitbook.io/innersource-patterns-staging/v/adopters-test/adopters/adopters) to our book. Goal: showcase the organizations and the patterns they use more prominently in our book. Looking for feedback! More [details here](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/623).
+* Some PRs are stuck. Reason is mostly that I (@spier) have less time to review things or communication with the contributor stopped somewhere.
+
+## Trusted Committers (Community)
+
+* Last [Trusted Committer][] added was [@yuhattor](https://github.com/yuhattor) (added 2022-07-21)
+* Trusted Committer candidates in the pipeline: No
+* Finding new contributors and further trusted committers continues to be the main challenge of the InnerSource Patterns project
+
+## Next Goals
+
+Same as previous Board report.
+
+[patterns book]: https://patterns.innersourcecommons.org/
+[InnerSourcePatterns]: https://github.com/InnerSourceCommons/InnerSourcePatterns/
+[Trusted Committer]: https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/TRUSTED-COMMITTERS.md
diff --git a/meta/boardreports/2025-02.md b/meta/boardreports/2025-02.md
new file mode 100644
index 000000000..a4e7032c4
--- /dev/null
+++ b/meta/boardreports/2025-02.md
@@ -0,0 +1,70 @@
+# InnerSource Patterns WG - Report for Board Meeting 2025-02
+
+## Meta
+
+* Reporting Period: 2024-11..2025-01
+* [merged PRs](https://github.com/InnerSourceCommons/InnerSourcePatterns/pulls?q=is%3Apr+closed%3A2024-11..2025-01+is%3Amerged)
+* [opened issues](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues?q=is%3Aissue+created%3A2024-11..2025-01+is%3Aopen)
+
+## Engagement
+
+The [patterns book][] is the way InnerSource practices are captured and shared. Recent web analytics:
+
+* total traffic on the patterns book (tracking_id: `G-QL1S8MW5D9`)
+ * 14,592 views total (prev 14,308)
+ * 1,784 users (prev 1,908)
+* Most popular patterns:
+ * InnerSource Portal
+ * 30 Day Warranty
+ * Maturity Model
+ * Standard Base Documentation
+ * Core Team
+* traffic for translations (btw the URLs here have changed at some point. used to be /v/ja etc):
+ * Japanese (/ja) - 2163 (prev 1300)
+ * Chinese (/zh) - 597 (prev 305)
+ * Brazilian Portuguese (/pt-br) - 418 (prev 332)
+ * Galician (/gl) - 101 (prev 46)
+ * English (/) - roughly 11,313
+* interpretations
+ * Of our translated content, the Japanese patterns are consumed the most. Great to see that the content provides value to users in that geo/language.
+ * Year over year the total views are down quite a bit. not sure why. (see reports from 2023)
+
+## Changes
+
+Changes are contributed via the [InnerSourcePatterns][] repository:
+
+* new patterns:
+ * [Internal Developer Platform](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/internal-developer-platform.md)
+ * [InnerSource Ambassadors](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/innersource-ambassador.md)
+ * [Governance Level Guided Project Setup](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/governance-based-project-setup.md)
+ * [Circle Communities](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/circle-communities.md)
+ * [Managing Capacity for Reviewing Contributions](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/capacity-for-contributions.md)
+* translations
+ * none
+* additions of Known Instances (applications of our patterns in the wild)
+ * SAP added to [Transparent Cross-Team Decision Making using RFCs](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/2-structured/transparent-cross-team-decision-making-using-rfcs.md)
+ * IKEA added to [InnerSource Hackathon](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/innersource-hackathon.md)
+ * BBC added to [Governance Level Guided Project Setup](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/governance-based-project-setup.md)
+ * WellSky added to [InnerSource Ambassadors](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/innersource-ambassador.md)
+* other
+ * some UI improves (just using some of the newer features of our hosting provider gitbook)
+
+## Things to come
+
+* I (@spier) used a [Kanban style board](https://github.com/orgs/InnerSourceCommons/projects/32) more rigurously in the last few months. It did help me figure out where I should invest my time to move patterns/issues/prs through the process. It shows in the number of patterns that were added to the repo.
+* [Creating a plan](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/772) to get more patterns published in the book
+ * spoiler: we have 6 patterns that could do that in the medium term.
+ * Need more hands though to make this happen.
+ * Fun fact: this activity was triggered by the ISPO WG asking about patterns were not published in the book yet, but somehow they knew existed :)
+* Micaela Eller (from the ISPO WG) offered to help with leveling up further patterns. Will onboard her in the coming weeks.
+* [A proposal](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/777) was made to translate the patterns to Spanish. yay!
+
+## Trusted Committers (Community)
+
+* Last [Trusted Committer][] added was [@yuhattor](https://github.com/yuhattor) (added 2022-07-21)
+* Trusted Committer candidates in the pipeline: No
+* Finding new contributors and further trusted committers continues to be the main challenge of the InnerSource Patterns project
+
+[patterns book]: https://patterns.innersourcecommons.org/
+[InnerSourcePatterns]: https://github.com/InnerSourceCommons/InnerSourcePatterns/
+[Trusted Committer]: https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/TRUSTED-COMMITTERS.md
diff --git a/meta/pattern-drafts-with-ai.md b/meta/pattern-drafts-with-ai.md
new file mode 100644
index 000000000..0608cf779
--- /dev/null
+++ b/meta/pattern-drafts-with-ai.md
@@ -0,0 +1,36 @@
+# Drafting InnerSource Pattern with AI
+
+Our AI friends can help us to brainstorm and write new InnerSource patterns.
+Usual precaution should apply, as always with AI ;)
+
+## How to use this
+
+- Paste the below prompt into ChatGPT or your AI agent of choice.
+- Add a description of the **problem** you are looking to solve, as well as the intended **solution** (if you already have one in mind).
+- Let AI do its magic.
+- Then populate the missing sections and adapt the pattern manually as you see fit.
+- Finally, submit your work as a pull request to our repo. For more details on contributing, see our [Contributing Guide](../CONTRIBUTING.md).
+
+You might also want to instruct the AI to return the answer as a markdown file, that you can more easily copy and paste into a GitHub Pull Request.
+
+## Prompt
+
+```
+I want to write a new InnerSource Pattern.
+
+The pattern needs to follow this template:
+https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/meta/pattern-template.md
+
+Further instructions:
+- Each headline in the template starts a new section, with a distinct semantic purpose.
+- Therefore the names of the headlines should be kept as they are. The headlines in the final pattern should appear in the same order as in the template.
+- The value of these sections should be "TBD": Known Instances, Author
+- The value of the Status section should be "Initial".
+- These sections should be removed: Acknowledgments
+- The section "Related Patterns" should contain markdown links to relevant patterns from https://patterns.innersourcecommons.org, including an explanation of how these patterns relate to this new pattern.
+- The word "(optional)" should be removed from the headlines.
+
+This is the concept that I want to explain in the pattern:
+
+
+```
diff --git a/meta/pattern-system.md b/meta/pattern-system.md
index a3a473520..1f7be8ea5 100644
--- a/meta/pattern-system.md
+++ b/meta/pattern-system.md
@@ -78,12 +78,12 @@ our InnerSource pattern system.
Takashi Iba has published an article in the ACM Digital Library from PLoP 2016:
[A pattern language for creating pattern languages: 364 patterns for pattern
-mining, writing, and symbolizing](https://dl.acm.org/citation.cfm?id=3158175&CFID=831673585&CFTOKEN=74341142&qualifier=LU1011674)
+mining, writing, and symbolizing](https://dl.acm.org/doi/10.5555/3158161.3158175)
- for those without ACM DL access, there is [an earlier draft of the paper from
PLoP 2016](http://www.hillside.net/plop/2016/papers/three/26.3.pdf).
-## Candiate Classifications
+## Candidate Classifications
This section shall serve to collect individual proposals for systems of ISC
patterns. Contribute away ;)
@@ -196,7 +196,7 @@ talk "InnerSource 101 and The Apache Way"[1] as a way to characterize patterns:
* Community
* Meritocracy
-And in addition, this would have some ortogonal techniques to work on building
+And in addition, this would have some orthogonal techniques to work on building
a proper transparency (for instance) that could go from the infrastructure to
be used to monitoring the process and produce surveys, training and other
actions.
@@ -244,7 +244,7 @@ potential characterization based on the companies structure?
I like a lot of the other planes suggestions. Wanted to add one more - the point in the lifecycle of the InnerSource project. Does this pattern apply to:
-* Pre-launch (prepration to launch) an InnerSource project?
+* Pre-launch (preparation to launch) an InnerSource project?
* Launch (initial kick-off)?
* Initial growth?
* Broad adoption?
diff --git a/meta/pattern-template.md b/meta/pattern-template.md
index 0464effe2..903fa7224 100644
--- a/meta/pattern-template.md
+++ b/meta/pattern-template.md
@@ -4,9 +4,10 @@ Short Title Here
## Patlet
-Concise 1-2 sentence description of the problem and solution.
-Readers may quickly review dozens of these patlets to discover and browse the larger library of patterns.
-From http://wiki.c2.com/?PatLet
+Concise 2 sentence description of the problem and solution.
+The 1st sentence describes the problem. The 2nd sentence describes the solution.
+Readers may quickly review dozens of these patlets (aka summaries) to discover and browse the larger library of patterns.
+From [http://wiki.c2.com/?PatLet](http://wiki.c2.com/?PatLet).
## Problem
@@ -82,5 +83,5 @@ Though optional, most patterns should list who helped in their creation.
## Alias (optional)
-If this pattern is also known under a different name than what is listed unter **Title**, please list those alternative titles here.
+If this pattern is also known under a different name than what is listed under **Title**, please list those alternative titles here.
e.g. if the pattern is named after the problem it solves, a helpful alias might be one that describes the solution that is applied.
diff --git a/meta/scripts/find_upgradeable_patterns.rb b/meta/scripts/find_upgradeable_patterns.rb
index 2ac5710a6..face61c65 100644
--- a/meta/scripts/find_upgradeable_patterns.rb
+++ b/meta/scripts/find_upgradeable_patterns.rb
@@ -22,6 +22,7 @@
def count_known_instances(file)
section_nodes = collect_section_nodes(file, "Known Instances")
list_nodes = []
+
# pick the first list in the "Known Instances" section, and return the number of elements in that list.
# CAUTION: this assumes a certain structure across all patterns. Therefore fairly brittle.
list_nodes = section_nodes.select {|n| n.type == :list}
@@ -32,15 +33,16 @@ def count_known_instances(file)
return known_instances_count
end
+# Extract all nodes below a given headline
def collect_section_nodes(file, section_title)
markdown = open(file).readlines().join
- doc = CommonMarker.render_doc(markdown)
+ doc = Commonmarker.parse(markdown)
title_found = false
section_nodes = []
doc.walk do |node|
- if node.type == :header
+ if node.type == :heading
if title_found == false
node.each do |subnode|
if subnode.type == :text and subnode.string_content == section_title
@@ -70,7 +72,10 @@ def collect_section_nodes(file, section_title)
l1_patterns.each do |file|
known_instances_count = count_known_instances(file)
- puts "#{known_instances_count} | #{file}" if known_instances_count >= 1
+ file_display = file.gsub("../../patterns/1-initial/","")
+ file_link = file.gsub("../../","https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/")
+
+ puts "#{known_instances_count} | [#{file_display}](#{file_link})"
end
puts "\n"
@@ -80,5 +85,8 @@ def collect_section_nodes(file, section_title)
l2_patterns.each do |file|
known_instances_count = count_known_instances(file)
- puts "#{known_instances_count} | #{file}" if known_instances_count >= 3
+ file_display = file.gsub("../../patterns/2-structured/","")
+ file_link = file.gsub("../../","https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/")
+
+ puts "#{known_instances_count} | [#{file_display}](#{file_link})"
end
diff --git a/pattern-categorization/README.md b/pattern-categorization/README.md
index 42da72e50..fda2576e8 100644
--- a/pattern-categorization/README.md
+++ b/pattern-categorization/README.md
@@ -14,7 +14,7 @@ In the mind map you will see patterns categorized from left to right in increasi
graph LR
L0(L0 InnerSource Program) --> L1(L1 Phase) --> L2(L2 Problem Category)
L2(L2 Problem Category) --> L3(L3 Specific Problem) --> L4("L4 Pattern (Solution)")
-````
+```
The logic for these levels is:
@@ -35,13 +35,13 @@ To test your changes locally, you can also generate the mind map yourself like t
We are using `node 20.x` at the moment.
```
-# install the markmap CLI
+# install the required dependencies (including the markmap CLI)
npm install -g markmap-cli
# then generate the mindmap (it will open in your browser automatically)
npx markmap --no-toolbar innersource-program-mind-map.md -o innersource-program-mind-map.html
-# to generate the mindmap for a different language, run the script on the files in the respetive subfolder.
+# to generate the mindmap for a different language, run the script on the files in the respective subfolder.
# e.g. for Galician (`gl`)
npx markmap --no-toolbar gl/innersource-program-mind-map.md -o gl/innersource-program-mind-map.html
```
diff --git a/pattern-categorization/es/innersource-program-mind-map.html b/pattern-categorization/es/innersource-program-mind-map.html
new file mode 100644
index 000000000..f76f7cbb1
--- /dev/null
+++ b/pattern-categorization/es/innersource-program-mind-map.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+Markmap
+
+
+
+
+
+
+
+
diff --git a/pattern-categorization/es/innersource-program-mind-map.md b/pattern-categorization/es/innersource-program-mind-map.md
new file mode 100644
index 000000000..0e3e35624
--- /dev/null
+++ b/pattern-categorization/es/innersource-program-mind-map.md
@@ -0,0 +1,137 @@
+# [Programa InnerSource](https://patterns.innersourcecommons.org/toc)
+
+## Comenzar
+
+### Configuración del Programa
+
+#### La gerencia duda en invertir en InnerSource
+
+##### [Comenzar como un Experimento](https://patterns.innersourcecommons.org/p/start-as-experiment)
+
+#### El crecimiento lento de la comunidad obstaculiza InnerSource
+
+##### [Líder de Comunidad Dedicado](https://patterns.innersourcecommons.org/p/dedicated-community-leader)
+
+#### Los principios de InnerSource no son intuitivos para todos
+
+##### [Documenta tus Principios Rectores](https://patterns.innersourcecommons.org/p/document-your-guiding-principles)
+
+### Configuración del Proyecto
+
+#### Difícil evaluar un proyecto rápidamente
+
+##### [Documentación Base Estándar](https://patterns.innersourcecommons.org/p/base-documentation)
+
+#### La comunicación ad-hoc obstaculiza el crecimiento del proyecto
+
+##### [Herramientas de Comunicación](https://patterns.innersourcecommons.org/p/communication-tooling)
+
+#### Hoja de ruta y dirección del proyecto no transparentes
+
+##### [Casos de Uso del Gestor de Tareas](https://patterns.innersourcecommons.org/p/issue-tracker)
+
+## Adoptar
+
+### Desafíos de Valoración
+
+#### Cómo medir el valor comercial de un proyecto
+
+##### [Valoración de Proyectos Transversales](https://patterns.innersourcecommons.org/p/crossteam-project-valuation)
+
+#### ¿Podemos confiar en el proyecto por un período prolongado?
+
+##### [Proceso Estándar de Publicación](https://patterns.innersourcecommons.org/p/release-process)
+
+##### [Documentación Base Estándar](https://patterns.innersourcecommons.org/p/base-documentation)
+
+### Desafíos Culturales
+
+#### Esfuerzo no reconocido
+
+##### [Reconocimiento a los Participantes](https://patterns.innersourcecommons.org/p/praise-participants)
+
+##### [Trusted Committer](https://patterns.innersourcecommons.org/p/trusted-committer)
+
+### Desafíos Técnicos
+
+#### No satisfacer las necesidades de todos
+
+##### [Requerimientos Comunes](https://patterns.innersourcecommons.org/p/common-requirements)
+
+#### Miedo a la responsabilidad compartida de soporte
+
+##### [Servicio vs Librería](https://patterns.innersourcecommons.org/p/service-vs-library)
+
+#### Proyecto difícil de contribuir y usar
+
+##### [Equipo Central](https://patterns.innersourcecommons.org/p/core-team)
+
+### Desafíos Organizacionales
+
+#### Desaliento de recursos para contribuir
+
+##### [Colaborador Contratado](https://patterns.innersourcecommons.org/p/contracted-contributor)
+
+#### Rechazo a aceptar contribuciones
+
+##### [Garantía de 30 Días](https://patterns.innersourcecommons.org/p/30-day-warranty)
+
+#### Cambio radical de gestión
+
+##### [Comité de Revisión](https://patterns.innersourcecommons.org/p/review-committee)
+
+#### Miedo a la responsabilidad compartida de soporte
+
+##### [Servicio vs Librería](https://patterns.innersourcecommons.org/p/service-vs-library)
+
+#### No hay suficientes mantenedores para escalar
+
+##### [Trusted Committer](https://patterns.innersourcecommons.org/p/trusted-committer)
+
+#### Difícil coordinación entre equipos
+
+##### [Toma de Decisiones Transparente entre Equipos usando RFCs](https://patterns.innersourcecommons.org/p/transparent-cross-team-decision-making-using-rfcs)
+
+#### Proyecto sin propietario/mantenedor
+
+##### [Equipo Central](https://patterns.innersourcecommons.org/p/core-team)
+
+##### [Grupo de Soporte](https://patterns.innersourcecommons.org/p/group-support)
+
+### Desafíos entre Entidades Legales
+
+#### Preocupación por responsabilidades legales o contabilidad entre empresas
+
+##### [Licencia InnerSource](https://patterns.innersourcecommons.org/p/innersource-license)
+
+## Crecer
+
+### Desafíos de Descubrimiento
+
+#### No se pueden encontrar proyectos coincidentes
+
+##### [Mercado de Gigs](https://patterns.innersourcecommons.org/p/gig-marketplace)
+
+##### [Portal InnerSource](https://patterns.innersourcecommons.org/p/innersource-portal)
+
+#### Difícil encontrar proyectos activos
+
+##### [Puntuación de Actividad del Repositorio](https://patterns.innersourcecommons.org/p/repository-activity-score)
+
+## Escalar
+
+### Desafíos de Autoeducación/Mejora
+
+#### No estar al tanto de las mejores prácticas de InnerSource
+
+##### [Modelo de Madurez](https://patterns.innersourcecommons.org/p/maturity-model)
+
+#### Falta de conocimiento de código abierto
+
+##### [Documenta tus Principios Rectores](https://patterns.innersourcecommons.org/p/document-your-guiding-principles)
+
+### Desafíos Técnicos
+
+#### Aumento de la sobrecarga de mantenimiento
+
+##### [Extensiones para un Crecimiento Sostenible](https://patterns.innersourcecommons.org/p/extensions-for-sustainable-growth)
diff --git a/pattern-categorization/es/innersource-program-mind-map.png b/pattern-categorization/es/innersource-program-mind-map.png
new file mode 100644
index 000000000..b28152956
Binary files /dev/null and b/pattern-categorization/es/innersource-program-mind-map.png differ
diff --git a/pattern-categorization/gl/innersource-program-mind-map.html b/pattern-categorization/gl/innersource-program-mind-map.html
index a4d077149..e423ecdbe 100644
--- a/pattern-categorization/gl/innersource-program-mind-map.html
+++ b/pattern-categorization/gl/innersource-program-mind-map.html
@@ -1,28 +1,43 @@
-
+
-
-
-
+
+
+
Markmap
-
+
diff --git a/pattern-categorization/gl/innersource-program-mind-map.png b/pattern-categorization/gl/innersource-program-mind-map.png
index 299ba3289..a01eb09c9 100644
Binary files a/pattern-categorization/gl/innersource-program-mind-map.png and b/pattern-categorization/gl/innersource-program-mind-map.png differ
diff --git a/pattern-categorization/innersource-program-mind-map.html b/pattern-categorization/innersource-program-mind-map.html
index 3ba800f4c..fc64591e0 100644
--- a/pattern-categorization/innersource-program-mind-map.html
+++ b/pattern-categorization/innersource-program-mind-map.html
@@ -1,28 +1,43 @@
-
+
-
-
-
+
+
+
Markmap
-
+
diff --git a/pattern-categorization/innersource-program-mind-map.md b/pattern-categorization/innersource-program-mind-map.md
index 9bccd8332..6caf8f186 100644
--- a/pattern-categorization/innersource-program-mind-map.md
+++ b/pattern-categorization/innersource-program-mind-map.md
@@ -30,6 +30,10 @@
##### [Issue Tracker Use Cases](https://patterns.innersourcecommons.org/p/issue-tracker)
+#### Language around project governance is ambiguous
+
+##### [Explicit Governance Levels](https://patterns.innersourcecommons.org/p/governance-levels)
+
## Adopt
### Valuation Challenges
@@ -92,6 +96,10 @@
##### [Transparent Cross-Team Decision Making using RFCs](https://patterns.innersourcecommons.org/p/transparent-cross-team-decision-making-using-rfcs)
+#### Level of influence for contributing teams is unclear
+
+##### [Explicit Governance Levels](https://patterns.innersourcecommons.org/p/governance-levels)
+
#### Project without an owner/maintainer
##### [Core Team](https://patterns.innersourcecommons.org/p/core-team)
diff --git a/pattern-categorization/innersource-program-mind-map.png b/pattern-categorization/innersource-program-mind-map.png
index 4b1bdee54..feb77cf3a 100644
Binary files a/pattern-categorization/innersource-program-mind-map.png and b/pattern-categorization/innersource-program-mind-map.png differ
diff --git a/pattern-categorization/package-lock.json b/pattern-categorization/package-lock.json
index 99a512f68..33ddc50fe 100644
--- a/pattern-categorization/package-lock.json
+++ b/pattern-categorization/package-lock.json
@@ -1,7 +1,7 @@
{
"name": "pattern-mindmap-generator",
"version": "0.0.1",
- "lockfileVersion": 2,
+ "lockfileVersion": 3,
"requires": true,
"packages": {
"": {
@@ -9,50 +9,39 @@
"version": "0.0.1",
"license": "ISC",
"dependencies": {
- "markmap-cli": ">=0.15.4",
- "optipng-bin": "^9.0.0"
+ "markmap-cli": ">=0.18.12",
+ "optipng-bin": "^9.0.0",
+ "pageres-cli": "^9.0.0"
}
},
"node_modules/@babel/code-frame": {
- "version": "7.22.13",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
- "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
+ "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
+ "license": "MIT",
"dependencies": {
- "@babel/highlight": "^7.22.13",
- "chalk": "^2.4.2"
+ "@babel/helper-validator-identifier": "^7.27.1",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
- "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.22.20",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
- },
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/runtime": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz",
- "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==",
- "dependencies": {
- "regenerator-runtime": "^0.14.0"
- },
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
+ "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -61,14 +50,81 @@
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/@gera2ld/jsx-dom/-/jsx-dom-2.2.2.tgz",
"integrity": "sha512-EOqf31IATRE6zS1W1EoWmXZhGfLAoO9FIlwTtHduSrBdud4npYBxYAkv8dZ5hudDPwJeeSjn40kbCL4wAzr8dA==",
+ "license": "ISC",
"dependencies": {
"@babel/runtime": "^7.21.5"
}
},
+ "node_modules/@ghostery/adblocker": {
+ "version": "2.12.5",
+ "resolved": "https://registry.npmjs.org/@ghostery/adblocker/-/adblocker-2.12.5.tgz",
+ "integrity": "sha512-d9/zOt8MHG86vuEp7KLaSgjIrx43Vr272nbVacGjDV/ZAbrS2fIKhLb0MulJ/14fPjzYivNniquk8fiKt0wgNQ==",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "@ghostery/adblocker-content": "^2.12.5",
+ "@ghostery/adblocker-extended-selectors": "^2.12.5",
+ "@ghostery/url-parser": "^1.3.0",
+ "@remusao/guess-url-type": "^2.1.0",
+ "@remusao/small": "^2.1.0",
+ "@remusao/smaz": "^2.2.0",
+ "tldts-experimental": "^7.0.16"
+ }
+ },
+ "node_modules/@ghostery/adblocker-content": {
+ "version": "2.12.5",
+ "resolved": "https://registry.npmjs.org/@ghostery/adblocker-content/-/adblocker-content-2.12.5.tgz",
+ "integrity": "sha512-ZIBPWcJpxeWOfFMX63PVhO/sGaUUfHScP88WgdV3pOv5aWsskDMh3Niwa4CHZKqzHs8T1XJDfbLDK3DDXeEHpA==",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "@ghostery/adblocker-extended-selectors": "^2.12.5"
+ }
+ },
+ "node_modules/@ghostery/adblocker-extended-selectors": {
+ "version": "2.12.5",
+ "resolved": "https://registry.npmjs.org/@ghostery/adblocker-extended-selectors/-/adblocker-extended-selectors-2.12.5.tgz",
+ "integrity": "sha512-KPHe2QxgyNA7Ei8ndIiWH7h26DpXjtvDXv+D1EIsmjTYSitKd7roCz10Gy7vD4H88JjT/ABZwjnqLo2ZHPEC/Q==",
+ "license": "MPL-2.0"
+ },
+ "node_modules/@ghostery/adblocker-puppeteer": {
+ "version": "2.12.5",
+ "resolved": "https://registry.npmjs.org/@ghostery/adblocker-puppeteer/-/adblocker-puppeteer-2.12.5.tgz",
+ "integrity": "sha512-EPCbOy/YkolXrvaAqbY5+xDT+LqCRnvOv9FhYyGvQPPmahzqG3Ys0x1sqBhhNi66psgcCCi19YGLo951xFUZfQ==",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "@ghostery/adblocker": "^2.12.5",
+ "@ghostery/adblocker-content": "^2.12.5",
+ "tldts-experimental": "^7.0.16"
+ },
+ "peerDependencies": {
+ "puppeteer": ">5"
+ }
+ },
+ "node_modules/@ghostery/url-parser": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@ghostery/url-parser/-/url-parser-1.3.0.tgz",
+ "integrity": "sha512-FEzdSeiva0Mt3bR4xePFzthhjT4IzvA5QTvS1xXkNyLpMGeq40mb3V2fSs0ZItRaP9IybZthDfHUSbQ1HLdx4Q==",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "tldts-experimental": "^7.0.8"
+ }
+ },
+ "node_modules/@hono/node-server": {
+ "version": "1.19.6",
+ "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.6.tgz",
+ "integrity": "sha512-Shz/KjlIeAhfiuE93NDKVdZ7HdBVLQAfdbaXEaoAVO3ic9ibRSLGIQGkcBbFyuLr+7/1D5ZCINM8B+6IvXeMtw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.14.1"
+ },
+ "peerDependencies": {
+ "hono": "^4"
+ }
+ },
"node_modules/@pnpm/config.env-replace": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
"integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==",
+ "license": "MIT",
"engines": {
"node": ">=12.22.0"
}
@@ -77,6 +133,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz",
"integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "4.2.10"
},
@@ -84,10 +141,17 @@
"node": ">=12.22.0"
}
},
+ "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
+ "license": "ISC"
+ },
"node_modules/@pnpm/npm-conf": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz",
- "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz",
+ "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==",
+ "license": "MIT",
"dependencies": {
"@pnpm/config.env-replace": "^1.1.0",
"@pnpm/network.ca-file": "^1.0.1",
@@ -97,281 +161,146 @@
"node": ">=12"
}
},
- "node_modules/@sindresorhus/is": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz",
- "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==",
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/is?sponsor=1"
- }
- },
- "node_modules/@szmarczak/http-timer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
- "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
+ "node_modules/@puppeteer/browsers": {
+ "version": "2.10.13",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.13.tgz",
+ "integrity": "sha512-a9Ruw3j3qlnB5a/zHRTkruppynxqaeE4H9WNj5eYGRWqw0ZauZ23f4W2ARf3hghF5doozyD+CRtt7XSYuYRI/Q==",
+ "license": "Apache-2.0",
"dependencies": {
- "defer-to-connect": "^2.0.1"
+ "debug": "^4.4.3",
+ "extract-zip": "^2.0.1",
+ "progress": "^2.0.3",
+ "proxy-agent": "^6.5.0",
+ "semver": "^7.7.3",
+ "tar-fs": "^3.1.1",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "browsers": "lib/cjs/main-cli.js"
},
"engines": {
- "node": ">=14.16"
- }
- },
- "node_modules/@types/d3": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz",
- "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==",
- "dependencies": {
- "@types/d3-array": "*",
- "@types/d3-axis": "*",
- "@types/d3-brush": "*",
- "@types/d3-chord": "*",
- "@types/d3-color": "*",
- "@types/d3-contour": "*",
- "@types/d3-delaunay": "*",
- "@types/d3-dispatch": "*",
- "@types/d3-drag": "*",
- "@types/d3-dsv": "*",
- "@types/d3-ease": "*",
- "@types/d3-fetch": "*",
- "@types/d3-force": "*",
- "@types/d3-format": "*",
- "@types/d3-geo": "*",
- "@types/d3-hierarchy": "*",
- "@types/d3-interpolate": "*",
- "@types/d3-path": "*",
- "@types/d3-polygon": "*",
- "@types/d3-quadtree": "*",
- "@types/d3-random": "*",
- "@types/d3-scale": "*",
- "@types/d3-scale-chromatic": "*",
- "@types/d3-selection": "*",
- "@types/d3-shape": "*",
- "@types/d3-time": "*",
- "@types/d3-time-format": "*",
- "@types/d3-timer": "*",
- "@types/d3-transition": "*",
- "@types/d3-zoom": "*"
- }
- },
- "node_modules/@types/d3-array": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
- "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg=="
- },
- "node_modules/@types/d3-axis": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz",
- "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-brush": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz",
- "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-chord": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz",
- "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg=="
- },
- "node_modules/@types/d3-color": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
- "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="
- },
- "node_modules/@types/d3-contour": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz",
- "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==",
- "dependencies": {
- "@types/d3-array": "*",
- "@types/geojson": "*"
- }
- },
- "node_modules/@types/d3-delaunay": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
- "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw=="
- },
- "node_modules/@types/d3-dispatch": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz",
- "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ=="
- },
- "node_modules/@types/d3-drag": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",
- "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==",
- "dependencies": {
- "@types/d3-selection": "*"
+ "node": ">=18"
}
},
- "node_modules/@types/d3-dsv": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",
- "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g=="
- },
- "node_modules/@types/d3-ease": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
- "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA=="
- },
- "node_modules/@types/d3-fetch": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",
- "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",
- "dependencies": {
- "@types/d3-dsv": "*"
+ "node_modules/@puppeteer/browsers/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/@types/d3-force": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.9.tgz",
- "integrity": "sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA=="
+ "node_modules/@remusao/guess-url-type": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@remusao/guess-url-type/-/guess-url-type-2.1.0.tgz",
+ "integrity": "sha512-zI3dlTUxpjvx2GCxp9nLOSK5yEIqDCpxlAVGwb2Y49RKkS72oeNaxxo+VWS5+XQ5+Mf8Zfp9ZXIlk+G5eoEN8A==",
+ "license": "MPL-2.0"
},
- "node_modules/@types/d3-format": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",
- "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g=="
+ "node_modules/@remusao/small": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@remusao/small/-/small-2.1.0.tgz",
+ "integrity": "sha512-Y1kyjZp7JU7dXdyOdxHVNfoTr1XLZJTyQP36/esZUU/WRWq9XY0PV2HsE3CsIHuaTf4pvgWv2pvzvnZ//UHIJQ==",
+ "license": "MPL-2.0"
},
- "node_modules/@types/d3-geo": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz",
- "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==",
+ "node_modules/@remusao/smaz": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@remusao/smaz/-/smaz-2.2.0.tgz",
+ "integrity": "sha512-eSd3Qs0ELP/e7tU1SI5RWXcCn9KjDgvBY+KtWbL4i2QvvHhJOfdIt4v0AA3S5BbLWAr5dCEC7C4LUfogDm6q/Q==",
+ "license": "MPL-2.0",
"dependencies": {
- "@types/geojson": "*"
+ "@remusao/smaz-compress": "^2.2.0",
+ "@remusao/smaz-decompress": "^2.2.0"
}
},
- "node_modules/@types/d3-hierarchy": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.6.tgz",
- "integrity": "sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw=="
- },
- "node_modules/@types/d3-interpolate": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
- "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
+ "node_modules/@remusao/smaz-compress": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@remusao/smaz-compress/-/smaz-compress-2.2.0.tgz",
+ "integrity": "sha512-TXpTPgILRUYOt2rEe0+9PC12xULPvBqeMpmipzB9A7oM4fa9Ztvy9lLYzPTd7tiQEeoNa1pmxihpKfJtsxnM/w==",
+ "license": "MPL-2.0",
"dependencies": {
- "@types/d3-color": "*"
+ "@remusao/trie": "^2.1.0"
}
},
- "node_modules/@types/d3-path": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.2.tgz",
- "integrity": "sha512-WAIEVlOCdd/NKRYTsqCpOMHQHemKBEINf8YXMYOtXH0GA7SY0dqMB78P3Uhgfy+4X+/Mlw2wDtlETkN6kQUCMA=="
- },
- "node_modules/@types/d3-polygon": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz",
- "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA=="
- },
- "node_modules/@types/d3-quadtree": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.5.tgz",
- "integrity": "sha512-Cb1f3jyNBnvMMkf4KBZ7IgAQVWd9yzBwYcrxGqg3aPCUgWELAS+nyeB7r76aqu1e3+CGDjhk4BrWaFBekMwigg=="
+ "node_modules/@remusao/smaz-decompress": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@remusao/smaz-decompress/-/smaz-decompress-2.2.0.tgz",
+ "integrity": "sha512-ERAPwxPaA0/yg4hkNU7T2S+lnp9jj1sApcQMtOyROvOQyo+Zuh6Hn/oRcXr8mmjlYzyRaC7E6r3mT1nrdHR6pg==",
+ "license": "MPL-2.0"
},
- "node_modules/@types/d3-random": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz",
- "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ=="
+ "node_modules/@remusao/trie": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@remusao/trie/-/trie-2.1.0.tgz",
+ "integrity": "sha512-Er3Q8q0/2OcCJPQYJOPLmCuqO0wu7cav3SPtpjlxSbjFi1x+A1pZkkLD6c9q2rGEkGW/tkrRzfrhNMt8VQjzXg==",
+ "license": "MPL-2.0"
},
- "node_modules/@types/d3-scale": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz",
- "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==",
- "dependencies": {
- "@types/d3-time": "*"
+ "node_modules/@sindresorhus/is": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz",
+ "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/@types/d3-scale-chromatic": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.2.tgz",
- "integrity": "sha512-kpKNZMDT3OAX6b5ct5nS/mv6LULagnUy4DmS6yyNjclje1qVe7vbjPwY3q1TGz6+Wr2IUkgFatCzqYUl54fHag=="
- },
- "node_modules/@types/d3-selection": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz",
- "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg=="
+ "node_modules/@tootallnate/quickjs-emscripten": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
+ "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==",
+ "license": "MIT"
},
- "node_modules/@types/d3-shape": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.5.tgz",
- "integrity": "sha512-dfEWpZJ1Pdg8meLlICX1M3WBIpxnaH2eQV2eY43Y5ysRJOTAV9f3/R++lgJKFstfrEOE2zdJ0sv5qwr2Bkic6Q==",
+ "node_modules/@types/node": {
+ "version": "24.10.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz",
+ "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==",
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "@types/d3-path": "*"
+ "undici-types": "~7.16.0"
}
},
- "node_modules/@types/d3-time": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz",
- "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw=="
- },
- "node_modules/@types/d3-time-format": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz",
- "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg=="
- },
- "node_modules/@types/d3-timer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
- "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw=="
- },
- "node_modules/@types/d3-transition": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz",
- "integrity": "sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==",
+ "node_modules/@types/normalize-package-data": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/yauzl": {
+ "version": "2.10.3",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz",
+ "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==",
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "@types/d3-selection": "*"
+ "@types/node": "*"
}
},
- "node_modules/@types/d3-zoom": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz",
- "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==",
+ "node_modules/@vscode/markdown-it-katex": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@vscode/markdown-it-katex/-/markdown-it-katex-1.1.2.tgz",
+ "integrity": "sha512-+4IIv5PgrmhKvW/3LpkpkGg257OViEhXkOOgCyj5KMsjsOfnRXkni8XAuuF9Ui5p3B8WnUovlDXAQNb8RJ/RaQ==",
+ "license": "MIT",
"dependencies": {
- "@types/d3-interpolate": "*",
- "@types/d3-selection": "*"
+ "katex": "^0.16.4"
}
},
- "node_modules/@types/geojson": {
- "version": "7946.0.13",
- "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.13.tgz",
- "integrity": "sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ=="
- },
- "node_modules/@types/http-cache-semantics": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
- "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA=="
- },
- "node_modules/@types/normalize-package-data": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA=="
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
+ "node_modules/agent-base": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 14"
}
},
"node_modules/ansi-align": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
"integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
+ "license": "ISC",
"dependencies": {
"string-width": "^4.1.0"
}
@@ -380,6 +309,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -387,12 +317,14 @@
"node_modules/ansi-align/node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
},
"node_modules/ansi-align/node_modules/string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -406,6 +338,7 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -414,9 +347,10 @@
}
},
"node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -425,26 +359,15 @@
}
},
"node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dependencies": {
- "color-convert": "^1.9.0"
- },
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "license": "MIT",
"engines": {
- "node": ">=4"
- }
- },
- "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==",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
+ "node": ">=12"
},
- "engines": {
- "node": ">= 8"
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/arch": {
@@ -464,12 +387,14 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/archive-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz",
"integrity": "sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==",
+ "license": "MIT",
"dependencies": {
"file-type": "^4.2.0"
},
@@ -481,6 +406,7 @@
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz",
"integrity": "sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -488,14 +414,191 @@
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "license": "Python-2.0"
+ },
+ "node_modules/array-differ": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-4.0.0.tgz",
+ "integrity": "sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/array-uniq": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-3.0.0.tgz",
+ "integrity": "sha512-T/3qyw9JTDHjj+aIo4uQyHCAoG1DkFqFViq0e6uPzkXwT74MEPsmQ30rxx8x9+yjBQ3KJ2bXOb2bBKC1FwEjdw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/arrify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz",
+ "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ast-types": {
+ "version": "0.13.4",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
+ "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
+ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
+ "license": "MIT"
+ },
+ "node_modules/atomically": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.1.0.tgz",
+ "integrity": "sha512-+gDffFXRW6sl/HCwbta7zK4uNqbPjv4YJEAdz7Vu+FLQHe77eZ4bvbJGi4hE0QPeJlMYMA3piXEr1UL3dAwx7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "stubborn-fs": "^2.0.0",
+ "when-exit": "^2.1.4"
+ }
+ },
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/b4a": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz",
+ "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "react-native-b4a": "*"
+ },
+ "peerDependenciesMeta": {
+ "react-native-b4a": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-events": {
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz",
+ "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "bare-abort-controller": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-abort-controller": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-fs": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.1.tgz",
+ "integrity": "sha512-zGUCsm3yv/ePt2PHNbVxjjn0nNB1MkIaR4wOCxJ2ig5pCf5cCVAYJXVhQg/3OhhJV6DB1ts7Hv0oUaElc2TPQg==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "bare-events": "^2.5.4",
+ "bare-path": "^3.0.0",
+ "bare-stream": "^2.6.4",
+ "bare-url": "^2.2.2",
+ "fast-fifo": "^1.3.2"
+ },
+ "engines": {
+ "bare": ">=1.16.0"
+ },
+ "peerDependencies": {
+ "bare-buffer": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-buffer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-os": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz",
+ "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "engines": {
+ "bare": ">=1.14.0"
+ }
+ },
+ "node_modules/bare-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz",
+ "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "bare-os": "^3.0.1"
+ }
+ },
+ "node_modules/bare-stream": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz",
+ "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "streamx": "^2.21.0"
+ },
+ "peerDependencies": {
+ "bare-buffer": "*",
+ "bare-events": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-buffer": {
+ "optional": true
+ },
+ "bare-events": {
+ "optional": true
+ }
+ }
},
- "node_modules/autolinker": {
- "version": "3.16.2",
- "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-3.16.2.tgz",
- "integrity": "sha512-JiYl7j2Z19F9NdTmirENSUUIIL/9MytEWtmzhfmsKPCp9E+G35Y0UNCMoM9tFigxT59qSc8Ml2dlZXOCVTYwuA==",
+ "node_modules/bare-url": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz",
+ "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==",
+ "license": "Apache-2.0",
+ "optional": true,
"dependencies": {
- "tslib": "^2.3.0"
+ "bare-path": "^3.0.0"
}
},
"node_modules/base64-js": {
@@ -515,20 +618,23 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT"
},
- "node_modules/big-integer": {
- "version": "1.6.51",
- "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
- "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
+ "node_modules/basic-ftp": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz",
+ "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==",
+ "license": "MIT",
"engines": {
- "node": ">=0.6"
+ "node": ">=10.0.0"
}
},
"node_modules/bin-build": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz",
"integrity": "sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==",
+ "license": "MIT",
"dependencies": {
"decompress": "^4.0.0",
"download": "^6.2.2",
@@ -544,6 +650,7 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz",
"integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==",
+ "license": "MIT",
"dependencies": {
"execa": "^0.7.0",
"executable": "^4.1.0"
@@ -556,6 +663,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz",
"integrity": "sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==",
+ "license": "MIT",
"dependencies": {
"execa": "^1.0.0",
"find-versions": "^3.0.0"
@@ -568,6 +676,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz",
"integrity": "sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==",
+ "license": "MIT",
"dependencies": {
"bin-version": "^3.0.0",
"semver": "^5.6.0",
@@ -577,18 +686,11 @@
"node": ">=6"
}
},
- "node_modules/bin-version-check/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "bin": {
- "semver": "bin/semver"
- }
- },
"node_modules/bin-version/node_modules/cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "version": "6.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz",
+ "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==",
+ "license": "MIT",
"dependencies": {
"nice-try": "^1.0.4",
"path-key": "^2.0.1",
@@ -604,6 +706,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
"integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "license": "MIT",
"dependencies": {
"cross-spawn": "^6.0.0",
"get-stream": "^4.0.0",
@@ -617,18 +720,23 @@
"node": ">=6"
}
},
- "node_modules/bin-version/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "bin": {
- "semver": "bin/semver"
+ "node_modules/bin-version/node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "license": "MIT",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
"node_modules/bin-wrapper": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz",
"integrity": "sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==",
+ "license": "MIT",
"dependencies": {
"bin-check": "^4.1.0",
"bin-version-check": "^4.0.0",
@@ -641,32 +749,11 @@
"node": ">=6"
}
},
- "node_modules/bin-wrapper/node_modules/@sindresorhus/is": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz",
- "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/bin-wrapper/node_modules/cacheable-request": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz",
- "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==",
- "dependencies": {
- "clone-response": "1.0.2",
- "get-stream": "3.0.0",
- "http-cache-semantics": "3.8.1",
- "keyv": "3.0.0",
- "lowercase-keys": "1.0.0",
- "normalize-url": "2.0.1",
- "responselike": "1.0.2"
- }
- },
- "node_modules/bin-wrapper/node_modules/download": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz",
- "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==",
+ "node_modules/bin-wrapper/node_modules/download": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz",
+ "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==",
+ "license": "MIT",
"dependencies": {
"archive-type": "^4.0.0",
"caw": "^2.0.1",
@@ -688,7 +775,8 @@
"node_modules/bin-wrapper/node_modules/download/node_modules/pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -697,6 +785,7 @@
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz",
"integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -704,7 +793,8 @@
"node_modules/bin-wrapper/node_modules/get-stream": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -713,6 +803,7 @@
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz",
"integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==",
+ "license": "MIT",
"dependencies": {
"@sindresorhus/is": "^0.7.0",
"cacheable-request": "^2.1.1",
@@ -739,68 +830,8 @@
"node_modules/bin-wrapper/node_modules/got/node_modules/pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/bin-wrapper/node_modules/http-cache-semantics": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
- "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w=="
- },
- "node_modules/bin-wrapper/node_modules/import-lazy": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz",
- "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/bin-wrapper/node_modules/keyv": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz",
- "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==",
- "dependencies": {
- "json-buffer": "3.0.0"
- }
- },
- "node_modules/bin-wrapper/node_modules/lowercase-keys": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
- "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/bin-wrapper/node_modules/make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
- "dependencies": {
- "pify": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/bin-wrapper/node_modules/make-dir/node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/bin-wrapper/node_modules/normalize-url": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
- "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
- "dependencies": {
- "prepend-http": "^2.0.0",
- "query-string": "^5.0.1",
- "sort-keys": "^2.0.0"
- },
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -809,6 +840,7 @@
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz",
"integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -817,6 +849,7 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz",
"integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==",
+ "license": "MIT",
"dependencies": {
"p-timeout": "^2.0.1"
},
@@ -828,6 +861,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz",
"integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
+ "license": "MIT",
"dependencies": {
"p-finally": "^1.0.0"
},
@@ -835,99 +869,65 @@
"node": ">=4"
}
},
- "node_modules/bin-wrapper/node_modules/sort-keys": {
+ "node_modules/bin-wrapper/node_modules/prepend-http": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
- "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=",
- "dependencies": {
- "is-plain-obj": "^1.0.0"
- },
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
- "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==",
+ "node_modules/bin-wrapper/node_modules/url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
+ "license": "MIT",
+ "dependencies": {
+ "prepend-http": "^2.0.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=4"
}
},
"node_modules/bl": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
"integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
+ "license": "MIT",
"dependencies": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
}
},
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "license": "ISC"
+ },
"node_modules/boxen": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz",
- "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz",
+ "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==",
+ "license": "MIT",
"dependencies": {
"ansi-align": "^3.0.1",
- "camelcase": "^7.0.1",
- "chalk": "^5.2.0",
+ "camelcase": "^8.0.0",
+ "chalk": "^5.3.0",
"cli-boxes": "^3.0.0",
- "string-width": "^5.1.2",
- "type-fest": "^2.13.0",
- "widest-line": "^4.0.1",
- "wrap-ansi": "^8.1.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/boxen/node_modules/chalk": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
- "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ "string-width": "^7.2.0",
+ "type-fest": "^4.21.0",
+ "widest-line": "^5.0.0",
+ "wrap-ansi": "^9.0.0"
},
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/boxen/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"engines": {
- "node": ">=12.20"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/bplist-parser": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
- "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
- "dependencies": {
- "big-integer": "^1.6.44"
- },
- "engines": {
- "node": ">= 5.10.0"
- }
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
@@ -946,6 +946,7 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
@@ -955,6 +956,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
"integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "license": "MIT",
"dependencies": {
"buffer-alloc-unsafe": "^1.1.0",
"buffer-fill": "^1.0.0"
@@ -963,12 +965,14 @@
"node_modules/buffer-alloc-unsafe": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
- "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+ "license": "MIT"
},
"node_modules/buffer-crc32": {
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
"integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "license": "MIT",
"engines": {
"node": "*"
}
@@ -976,112 +980,173 @@
"node_modules/buffer-fill": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
- "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
+ "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==",
+ "license": "MIT"
},
"node_modules/bundle-name": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz",
- "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
+ "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
+ "license": "MIT",
"dependencies": {
- "run-applescript": "^5.0.0"
+ "run-applescript": "^7.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/cache-content-type": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz",
- "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==",
+ "node_modules/cacheable-request": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz",
+ "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==",
+ "license": "MIT",
"dependencies": {
- "mime-types": "^2.1.18",
- "ylru": "^1.2.0"
- },
+ "clone-response": "1.0.2",
+ "get-stream": "3.0.0",
+ "http-cache-semantics": "3.8.1",
+ "keyv": "3.0.0",
+ "lowercase-keys": "1.0.0",
+ "normalize-url": "2.0.1",
+ "responselike": "1.0.2"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
+ "license": "MIT",
"engines": {
- "node": ">= 6.0.0"
+ "node": ">=4"
}
},
- "node_modules/cacheable-lookup": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",
- "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==",
+ "node_modules/cacheable-request/node_modules/lowercase-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
+ "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==",
+ "license": "MIT",
"engines": {
- "node": ">=14.16"
+ "node": ">=0.10.0"
}
},
- "node_modules/cacheable-request": {
- "version": "10.2.14",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz",
- "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==",
+ "node_modules/cacheable-request/node_modules/normalize-url": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
+ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
+ "license": "MIT",
"dependencies": {
- "@types/http-cache-semantics": "^4.0.2",
- "get-stream": "^6.0.1",
- "http-cache-semantics": "^4.1.1",
- "keyv": "^4.5.3",
- "mimic-response": "^4.0.0",
- "normalize-url": "^8.0.0",
- "responselike": "^3.0.0"
+ "prepend-http": "^2.0.0",
+ "query-string": "^5.0.1",
+ "sort-keys": "^2.0.0"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=4"
}
},
- "node_modules/cacheable-request/node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "node_modules/cacheable-request/node_modules/prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
+ "license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=4"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/sort-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
+ "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-obj": "^1.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/cacheable-request/node_modules/lowercase-keys": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
- "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
+ "node_modules/call-bind": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.2"
+ },
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/cacheable-request/node_modules/mimic-response": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",
- "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/cacheable-request/node_modules/responselike": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
- "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==",
+ "node_modules/call-bound": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+ "license": "MIT",
"dependencies": {
- "lowercase-keys": "^3.0.0"
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
},
"engines": {
- "node": ">=14.16"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
}
},
"node_modules/camelcase": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz",
- "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz",
+ "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==",
+ "license": "MIT",
"engines": {
- "node": ">=14.16"
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/capture-website": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/capture-website/-/capture-website-5.1.0.tgz",
+ "integrity": "sha512-ttss9ANsT+as1XgitU+X+IDQ8svY06SL/2CKChzoy+R0ycMrhg5NWstJf/IZ6uT6vN2MFJlXHPSEygWgyROsGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@ghostery/adblocker-puppeteer": "^2.12.5",
+ "file-url": "^4.0.0",
+ "puppeteer": "^24.27.0",
+ "tough-cookie": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -1091,6 +1156,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz",
"integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==",
+ "license": "MIT",
"dependencies": {
"get-proxy": "^2.0.0",
"isurl": "^1.0.0-alpha5",
@@ -1102,62 +1168,92 @@
}
},
"node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
+ "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/cheerio": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz",
+ "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==",
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.1.0",
+ "encoding-sniffer": "^0.2.0",
+ "htmlparser2": "^9.1.0",
+ "parse5": "^7.1.2",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0",
+ "parse5-parser-stream": "^7.1.2",
+ "undici": "^6.19.5",
+ "whatwg-mimetype": "^4.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=18.17"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
+ }
+ },
+ "node_modules/cheerio-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
+ "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
}
},
"node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "license": "MIT",
"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"
+ "readdirp": "^4.0.1"
},
"engines": {
- "node": ">= 8.10.0"
+ "node": ">= 14.16.0"
},
- "optionalDependencies": {
- "fsevents": "~2.3.2"
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
}
},
- "node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "engines": {
- "node": ">=8"
+ "node_modules/chromium-bidi": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-11.0.0.tgz",
+ "integrity": "sha512-cM3DI+OOb89T3wO8cpPSro80Q9eKYJ7hGVXoGS3GkDPxnYSqiv+6xwpIf6XERyJ9Tdsl09hmNmY94BkgZdVekw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "mitt": "^3.0.1",
+ "zod": "^3.24.1"
+ },
+ "peerDependencies": {
+ "devtools-protocol": "*"
}
},
"node_modules/cli-boxes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz",
"integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==",
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -1165,80 +1261,162 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/clone-response": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
- "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "license": "ISC",
"dependencies": {
- "mimic-response": "^1.0.0"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "node_modules/cliui/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
"engines": {
- "iojs": ">= 1.0.0",
- "node": ">= 0.12.0"
+ "node": ">=8"
}
},
- "node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "node_modules/cliui/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
"dependencies": {
- "color-name": "1.1.3"
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
- },
+ "node_modules/cliui/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==",
+ "license": "MIT",
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
"node_modules/commander": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
- "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
+ "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
+ "license": "MIT",
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/config-chain": {
"version": "1.1.13",
"resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
"integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+ "license": "MIT",
"dependencies": {
"ini": "^1.3.4",
"proto-list": "~1.2.1"
}
},
- "node_modules/config-chain/node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
- },
"node_modules/configstore": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz",
- "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-7.1.0.tgz",
+ "integrity": "sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==",
+ "license": "BSD-2-Clause",
"dependencies": {
- "dot-prop": "^6.0.1",
- "graceful-fs": "^4.2.6",
- "unique-string": "^3.0.0",
- "write-file-atomic": "^3.0.3",
- "xdg-basedir": "^5.0.1"
+ "atomically": "^2.0.3",
+ "dot-prop": "^9.0.0",
+ "graceful-fs": "^4.2.11",
+ "xdg-basedir": "^5.1.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
- "url": "https://github.com/yeoman/configstore?sponsor=1"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/content-disposition": {
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
"integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "license": "MIT",
"dependencies": {
"safe-buffer": "5.2.1"
},
@@ -1246,84 +1424,82 @@
"node": ">= 0.6"
}
},
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "engines": {
- "node": ">= 0.6"
- }
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "license": "MIT"
},
- "node_modules/cookies": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
- "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
+ "node_modules/cosmiconfig": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
+ "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
+ "license": "MIT",
"dependencies": {
- "depd": "~2.0.0",
- "keygrip": "~1.1.0"
+ "env-paths": "^2.2.1",
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
"node_modules/cross-spawn": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
"integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==",
+ "license": "MIT",
"dependencies": {
"lru-cache": "^4.0.1",
"shebang-command": "^1.2.0",
"which": "^1.2.9"
}
},
- "node_modules/cross-spawn/node_modules/lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dependencies": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "node_modules/cross-spawn/node_modules/yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
- },
- "node_modules/crypto-random-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
+ "node_modules/css-select": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz",
+ "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==",
+ "license": "BSD-2-Clause",
"dependencies": {
- "type-fest": "^1.0.1"
- },
- "engines": {
- "node": ">=12"
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/fb55"
}
},
- "node_modules/crypto-random-string/node_modules/type-fest": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "node_modules/css-what": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",
+ "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==",
+ "license": "BSD-2-Clause",
"engines": {
- "node": ">=10"
+ "node": ">= 6"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/fb55"
}
},
"node_modules/d3": {
- "version": "7.8.5",
- "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz",
- "integrity": "sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
+ "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
+ "license": "ISC",
"dependencies": {
"d3-array": "3",
"d3-axis": "3",
@@ -1364,6 +1540,7 @@
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
"integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
+ "license": "ISC",
"dependencies": {
"internmap": "1 - 2"
},
@@ -1375,6 +1552,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
"integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -1383,6 +1561,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
"integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
+ "license": "ISC",
"dependencies": {
"d3-dispatch": "1 - 3",
"d3-drag": "2 - 3",
@@ -1398,6 +1577,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
"integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
+ "license": "ISC",
"dependencies": {
"d3-path": "1 - 3"
},
@@ -1409,6 +1589,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
"integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -1417,6 +1598,7 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
"integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
+ "license": "ISC",
"dependencies": {
"d3-array": "^3.2.0"
},
@@ -1428,6 +1610,7 @@
"version": "6.0.4",
"resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
"integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
+ "license": "ISC",
"dependencies": {
"delaunator": "5"
},
@@ -1439,6 +1622,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
"integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -1447,6 +1631,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
"integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
+ "license": "ISC",
"dependencies": {
"d3-dispatch": "1 - 3",
"d3-selection": "3"
@@ -1459,6 +1644,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
"integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
+ "license": "ISC",
"dependencies": {
"commander": "7",
"iconv-lite": "0.6",
@@ -1483,6 +1669,7 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
"integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "license": "MIT",
"engines": {
"node": ">= 10"
}
@@ -1491,6 +1678,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
"integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=12"
}
@@ -1499,6 +1687,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
"integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
+ "license": "ISC",
"dependencies": {
"d3-dsv": "1 - 3"
},
@@ -1506,23 +1695,11 @@
"node": ">=12"
}
},
- "node_modules/d3-flextree": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/d3-flextree/-/d3-flextree-2.1.2.tgz",
- "integrity": "sha512-gJiHrx5uTTHq44bjyIb3xpbmmdZcWLYPKeO9EPVOq8EylMFOiH2+9sWqKAiQ4DcFuOZTAxPOQyv0Rnmji/g15A==",
- "dependencies": {
- "d3-hierarchy": "^1.1.5"
- }
- },
- "node_modules/d3-flextree/node_modules/d3-hierarchy": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz",
- "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ=="
- },
"node_modules/d3-force": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
"integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
+ "license": "ISC",
"dependencies": {
"d3-dispatch": "1 - 3",
"d3-quadtree": "1 - 3",
@@ -1536,14 +1713,16 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
"integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-geo": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz",
- "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
+ "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
+ "license": "ISC",
"dependencies": {
"d3-array": "2.5.0 - 3"
},
@@ -1555,6 +1734,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
"integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -1563,6 +1743,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
"integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
+ "license": "ISC",
"dependencies": {
"d3-color": "1 - 3"
},
@@ -1574,6 +1755,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
"integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -1582,6 +1764,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
"integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -1590,6 +1773,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
"integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -1598,6 +1782,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
"integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -1606,6 +1791,7 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
"integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
+ "license": "ISC",
"dependencies": {
"d3-array": "2.10.0 - 3",
"d3-format": "1 - 3",
@@ -1618,9 +1804,10 @@
}
},
"node_modules/d3-scale-chromatic": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz",
- "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
+ "license": "ISC",
"dependencies": {
"d3-color": "1 - 3",
"d3-interpolate": "1 - 3"
@@ -1633,6 +1820,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
"integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -1641,6 +1829,7 @@
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
"integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
+ "license": "ISC",
"dependencies": {
"d3-path": "^3.1.0"
},
@@ -1652,6 +1841,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
"integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
+ "license": "ISC",
"dependencies": {
"d3-array": "2 - 3"
},
@@ -1663,6 +1853,7 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
"integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
+ "license": "ISC",
"dependencies": {
"d3-time": "1 - 3"
},
@@ -1674,6 +1865,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
"integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -1682,6 +1874,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
"integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
+ "license": "ISC",
"dependencies": {
"d3-color": "1 - 3",
"d3-dispatch": "1 - 3",
@@ -1700,6 +1893,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
"integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
+ "license": "ISC",
"dependencies": {
"d3-dispatch": "1 - 3",
"d3-drag": "2 - 3",
@@ -1711,12 +1905,32 @@
"node": ">=12"
}
},
+ "node_modules/data-uri-to-buffer": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz",
+ "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/date-fns": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
+ "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/kossnocorp"
+ }
+ },
"node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
"dependencies": {
- "ms": "2.1.2"
+ "ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
@@ -1731,6 +1945,7 @@
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
"integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "license": "MIT",
"engines": {
"node": ">=0.10"
}
@@ -1739,6 +1954,7 @@
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz",
"integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==",
+ "license": "MIT",
"dependencies": {
"decompress-tar": "^4.0.0",
"decompress-tarbz2": "^4.0.0",
@@ -1756,7 +1972,8 @@
"node_modules/decompress-response": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "license": "MIT",
"dependencies": {
"mimic-response": "^1.0.0"
},
@@ -1768,6 +1985,7 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz",
"integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==",
+ "license": "MIT",
"dependencies": {
"file-type": "^5.2.0",
"is-stream": "^1.1.0",
@@ -1781,6 +1999,7 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz",
"integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==",
+ "license": "MIT",
"dependencies": {
"decompress-tar": "^4.1.0",
"file-type": "^6.1.0",
@@ -1796,6 +2015,7 @@
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz",
"integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -1804,6 +2024,7 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz",
"integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==",
+ "license": "MIT",
"dependencies": {
"decompress-tar": "^4.1.1",
"file-type": "^5.2.0",
@@ -1817,6 +2038,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz",
"integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==",
+ "license": "MIT",
"dependencies": {
"file-type": "^3.8.0",
"get-stream": "^2.2.0",
@@ -1831,18 +2053,7 @@
"version": "3.9.0",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
"integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decompress-unzip/node_modules/get-stream": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
- "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=",
- "dependencies": {
- "object-assign": "^4.0.1",
- "pinkie-promise": "^2.0.0"
- },
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -1850,273 +2061,191 @@
"node_modules/decompress-unzip/node_modules/pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/decompress/node_modules/make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
- "dependencies": {
- "pify": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/decompress/node_modules/make-dir/node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/decompress/node_modules/pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/deep-equal": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
- "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw=="
- },
"node_modules/deep-extend": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "license": "MIT",
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/default-browser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz",
- "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz",
+ "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==",
+ "license": "MIT",
"dependencies": {
- "bundle-name": "^3.0.0",
- "default-browser-id": "^3.0.0",
- "execa": "^7.1.1",
- "titleize": "^3.0.0"
+ "bundle-name": "^4.1.0",
+ "default-browser-id": "^5.0.0"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser-id": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
- "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
- "dependencies": {
- "bplist-parser": "^0.2.0",
- "untildify": "^4.0.0"
- },
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
+ "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
+ "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/default-browser/node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "license": "MIT",
"dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/default-browser/node_modules/execa": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
- "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.1",
- "human-signals": "^4.3.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^3.0.7",
- "strip-final-newline": "^3.0.0"
- },
- "engines": {
- "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
},
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/default-browser/node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/default-browser/node_modules/is-stream": {
+ "node_modules/define-lazy-prop": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "license": "MIT",
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/default-browser/node_modules/npm-run-path": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
- "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "node_modules/degenerator": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz",
+ "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==",
+ "license": "MIT",
"dependencies": {
- "path-key": "^4.0.0"
+ "ast-types": "^0.13.4",
+ "escodegen": "^2.1.0",
+ "esprima": "^4.0.1"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 14"
}
},
- "node_modules/default-browser/node_modules/npm-run-path/node_modules/path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node_modules/delaunator": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
+ "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
+ "license": "ISC",
+ "dependencies": {
+ "robust-predicates": "^3.0.2"
}
},
- "node_modules/default-browser/node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "engines": {
- "node": ">=8"
- }
+ "node_modules/devtools-protocol": {
+ "version": "0.0.1521046",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1521046.tgz",
+ "integrity": "sha512-vhE6eymDQSKWUXwwA37NtTTVEzjtGVfDr3pRbsWEQ5onH/Snp2c+2xZHWJJawG/0hCCJLRGt4xVtEVUVILol4w==",
+ "license": "BSD-3-Clause"
},
- "node_modules/default-browser/node_modules/shebang-command": {
+ "node_modules/dom-serializer": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "license": "MIT",
"dependencies": {
- "shebang-regex": "^3.0.0"
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
},
- "engines": {
- "node": ">=8"
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
}
},
- "node_modules/default-browser/node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
}
},
- "node_modules/default-browser/node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "node_modules/domutils": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
+ "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
+ "license": "BSD-2-Clause",
"dependencies": {
- "isexe": "^2.0.0"
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
},
- "bin": {
- "node-which": "bin/node-which"
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dot-prop": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz",
+ "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==",
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^4.18.2"
},
"engines": {
- "node": ">= 8"
- }
- },
- "node_modules/defer-to-connect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
- "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/define-lazy-prop": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
- "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/delaunator": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz",
- "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==",
- "dependencies": {
- "robust-predicates": "^3.0.0"
- }
- },
- "node_modules/delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/dot-prop": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
- "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
- "dependencies": {
- "is-obj": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/download": {
"version": "6.2.5",
"resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz",
"integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==",
+ "license": "MIT",
"dependencies": {
"caw": "^2.0.0",
"content-disposition": "^0.5.2",
@@ -2137,129 +2266,143 @@
"node_modules/download/node_modules/get-stream": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
- "node_modules/download/node_modules/got": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
- "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
- "dependencies": {
- "decompress-response": "^3.2.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^3.0.0",
- "is-plain-obj": "^1.1.0",
- "is-retry-allowed": "^1.0.0",
- "is-stream": "^1.0.0",
- "isurl": "^1.0.0-alpha5",
- "lowercase-keys": "^1.0.0",
- "p-cancelable": "^0.3.0",
- "p-timeout": "^1.1.1",
- "safe-buffer": "^5.0.1",
- "timed-out": "^4.0.0",
- "url-parse-lax": "^1.0.0",
- "url-to-options": "^1.0.1"
- },
+ "node_modules/download/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
- "node_modules/download/node_modules/make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "license": "MIT",
"dependencies": {
- "pify": "^3.0.0"
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
},
"engines": {
- "node": ">=4"
+ "node": ">= 0.4"
}
},
- "node_modules/download/node_modules/p-cancelable": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
- "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==",
- "engines": {
- "node": ">=4"
+ "node_modules/duplexer3": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
+ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/emoji-regex": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
+ "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
+ "license": "MIT"
+ },
+ "node_modules/encoding-sniffer": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz",
+ "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==",
+ "license": "MIT",
+ "dependencies": {
+ "iconv-lite": "^0.6.3",
+ "whatwg-encoding": "^3.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/encoding-sniffer?sponsor=1"
}
},
- "node_modules/download/node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "engines": {
- "node": ">=4"
+ "node_modules/end-of-stream": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
+ "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
}
},
- "node_modules/download/node_modules/prepend-http": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "license": "BSD-2-Clause",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
}
},
- "node_modules/download/node_modules/url-parse-lax": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
- "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
- "dependencies": {
- "prepend-http": "^1.0.1"
- },
+ "node_modules/env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/duplexer3": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
- "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ "node_modules/error-ex": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
+ "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
},
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
},
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.4"
}
},
- "node_modules/end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "license": "MIT",
"dependencies": {
- "once": "^1.4.0"
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dependencies": {
- "is-arrayish": "^0.2.1"
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
}
},
"node_modules/escape-goat": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz",
"integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==",
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -2267,23 +2410,81 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
"node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "license": "MIT",
"engines": {
"node": ">=0.8.0"
}
},
+ "node_modules/escodegen": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
+ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "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==",
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/events-universal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz",
+ "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-events": "^2.7.0"
+ }
+ },
"node_modules/execa": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
"integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==",
+ "license": "MIT",
"dependencies": {
"cross-spawn": "^5.0.1",
"get-stream": "^3.0.0",
@@ -2300,7 +2501,8 @@
"node_modules/execa/node_modules/get-stream": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -2309,6 +2511,7 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
"integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
+ "license": "MIT",
"dependencies": {
"pify": "^2.2.0"
},
@@ -2319,7 +2522,8 @@
"node_modules/executable/node_modules/pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -2328,6 +2532,7 @@
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
"integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
+ "license": "MIT",
"dependencies": {
"mime-db": "^1.28.0"
},
@@ -2339,6 +2544,7 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz",
"integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
+ "license": "MIT",
"dependencies": {
"ext-list": "^2.0.0",
"sort-keys-length": "^1.0.0"
@@ -2347,10 +2553,52 @@
"node": ">=4"
}
},
+ "node_modules/extract-zip": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ },
+ "engines": {
+ "node": ">= 10.17.0"
+ },
+ "optionalDependencies": {
+ "@types/yauzl": "^2.9.1"
+ }
+ },
+ "node_modules/extract-zip/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "license": "MIT",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/fast-fifo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
+ "license": "MIT"
+ },
"node_modules/fd-slicer": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
"integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+ "license": "MIT",
"dependencies": {
"pend": "~1.2.0"
}
@@ -2359,14 +2607,28 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
"integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
+ "node_modules/file-url": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/file-url/-/file-url-4.0.0.tgz",
+ "integrity": "sha512-vRCdScQ6j3Ku6Kd7W1kZk9c++5SqD6Xz5Jotrjr/nkY714M14RFHy/AAVA2WQvpsqVAVgTbDrYyBpU205F0cLw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/filename-reserved-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
"integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -2375,6 +2637,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz",
"integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==",
+ "license": "MIT",
"dependencies": {
"filename-reserved-regex": "^2.0.0",
"strip-outer": "^1.0.0",
@@ -2384,25 +2647,68 @@
"node": ">=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==",
+ "node_modules/filenamify-url": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-3.1.0.tgz",
+ "integrity": "sha512-Dvv4b4m1l5LiIo05049Q7Nk6v5yp6/E68WF3lm7tzIukATXuAFWIWiCi3N7EZ3jat6uvdNUR1WXqUc+oysFLAw==",
+ "license": "MIT",
"dependencies": {
- "to-regex-range": "^5.0.1"
+ "filenamify": "^5.0.1",
+ "humanize-url": "^3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/filenamify-url/node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/filenamify-url/node_modules/filename-reserved-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz",
+ "integrity": "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/find-up": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
- "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "node_modules/filenamify-url/node_modules/filenamify": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-5.1.1.tgz",
+ "integrity": "sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==",
+ "license": "MIT",
"dependencies": {
- "locate-path": "^7.1.0",
- "path-exists": "^5.0.0"
+ "filename-reserved-regex": "^3.0.0",
+ "strip-outer": "^2.0.0",
+ "trim-repeated": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12.20"
},
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/filenamify-url/node_modules/strip-outer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-2.0.0.tgz",
+ "integrity": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==",
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -2410,10 +2716,35 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/filenamify-url/node_modules/trim-repeated": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz",
+ "integrity": "sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==",
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/find-up-simple": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz",
+ "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/find-versions": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz",
"integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==",
+ "license": "MIT",
"dependencies": {
"semver-regex": "^2.0.0"
},
@@ -2421,26 +2752,26 @@
"node": ">=6"
}
},
- "node_modules/form-data-encoder": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
- "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==",
- "engines": {
- "node": ">= 14.17"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "node_modules/for-each": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-callable": "^1.2.7"
+ },
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/from2": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
"integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.1",
"readable-stream": "^2.0.0"
@@ -2449,33 +2780,81 @@
"node_modules/fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "license": "MIT"
},
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-east-asian-width": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz",
+ "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/get-proxy": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz",
"integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==",
+ "license": "MIT",
"dependencies": {
"npm-conf": "^1.1.0"
},
@@ -2484,151 +2863,134 @@
}
},
"node_modules/get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
+ "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==",
+ "license": "MIT",
"dependencies": {
- "pump": "^3.0.0"
+ "object-assign": "^4.0.1",
+ "pinkie-promise": "^2.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "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==",
+ "node_modules/get-uri": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz",
+ "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==",
+ "license": "MIT",
"dependencies": {
- "is-glob": "^4.0.1"
+ "basic-ftp": "^5.0.2",
+ "data-uri-to-buffer": "^6.0.2",
+ "debug": "^4.3.4"
},
"engines": {
- "node": ">= 6"
+ "node": ">= 14"
}
},
- "node_modules/global-dirs": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
- "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
+ "node_modules/global-directory": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz",
+ "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==",
+ "license": "MIT",
"dependencies": {
- "ini": "2.0.0"
+ "ini": "4.1.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/got": {
- "version": "12.6.1",
- "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz",
- "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==",
- "dependencies": {
- "@sindresorhus/is": "^5.2.0",
- "@szmarczak/http-timer": "^5.0.1",
- "cacheable-lookup": "^7.0.0",
- "cacheable-request": "^10.2.8",
- "decompress-response": "^6.0.0",
- "form-data-encoder": "^2.1.2",
- "get-stream": "^6.0.1",
- "http2-wrapper": "^2.1.10",
- "lowercase-keys": "^3.0.0",
- "p-cancelable": "^3.0.0",
- "responselike": "^3.0.0"
- },
+ "node_modules/global-directory/node_modules/ini": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz",
+ "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==",
+ "license": "ISC",
"engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/got?sponsor=1"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/got/node_modules/decompress-response": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
- "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
- "dependencies": {
- "mimic-response": "^3.1.0"
- },
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/got/node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "engines": {
- "node": ">=10"
+ "node_modules/got": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
+ "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
+ "license": "MIT",
+ "dependencies": {
+ "decompress-response": "^3.2.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "is-plain-obj": "^1.1.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "isurl": "^1.0.0-alpha5",
+ "lowercase-keys": "^1.0.0",
+ "p-cancelable": "^0.3.0",
+ "p-timeout": "^1.1.1",
+ "safe-buffer": "^5.0.1",
+ "timed-out": "^4.0.0",
+ "url-parse-lax": "^1.0.0",
+ "url-to-options": "^1.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/got/node_modules/lowercase-keys": {
+ "node_modules/got/node_modules/get-stream": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
- "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
+ "license": "MIT",
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=4"
}
},
- "node_modules/got/node_modules/mimic-response": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
- "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC"
},
- "node_modules/got/node_modules/responselike": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
- "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==",
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "license": "MIT",
"dependencies": {
- "lowercase-keys": "^3.0.0"
- },
- "engines": {
- "node": ">=14.16"
+ "es-define-property": "^1.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
- },
- "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==",
- "engines": {
- "node": ">=4"
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-symbol-support-x": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
"integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
+ "license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -2640,6 +3002,7 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
"integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
+ "license": "MIT",
"dependencies": {
"has-symbol-support-x": "^1.4.1"
},
@@ -2648,11 +3011,12 @@
}
},
"node_modules/has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "license": "MIT",
"dependencies": {
- "has-symbols": "^1.0.2"
+ "has-symbols": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
@@ -2661,21 +3025,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/has-yarn": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz",
- "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/hasown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
- "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
},
@@ -2684,17 +3038,28 @@
}
},
"node_modules/highlight.js": {
- "version": "11.9.0",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz",
- "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==",
+ "version": "11.11.1",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz",
+ "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=12.0.0"
}
},
+ "node_modules/hono": {
+ "version": "4.10.6",
+ "resolved": "https://registry.npmjs.org/hono/-/hono-4.10.6.tgz",
+ "integrity": "sha512-BIdolzGpDO9MQ4nu3AUuDwHZZ+KViNm+EZ75Ae55eMXMqLVhDFqEMXxtUe9Qh8hjL+pIna/frs2j6Y2yD5Ua/g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
"node_modules/hosted-git-info": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz",
- "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
+ "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
+ "license": "ISC",
"dependencies": {
"lru-cache": "^10.0.1"
},
@@ -2702,70 +3067,83 @@
"node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/http-assert": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz",
- "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==",
+ "node_modules/hosted-git-info/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "license": "ISC"
+ },
+ "node_modules/htmlparser2": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz",
+ "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==",
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "MIT",
"dependencies": {
- "deep-equal": "~1.0.1",
- "http-errors": "~1.8.0"
- },
- "engines": {
- "node": ">= 0.8"
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.1.0",
+ "entities": "^4.5.0"
}
},
"node_modules/http-cache-semantics": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
- "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
+ "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==",
+ "license": "BSD-2-Clause"
},
- "node_modules/http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "node_modules/http-proxy-agent": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
+ "license": "MIT",
"dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
},
"engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/http-errors/node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "engines": {
- "node": ">= 0.6"
+ "node": ">= 14"
}
},
- "node_modules/http2-wrapper": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
- "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==",
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
+ "license": "MIT",
"dependencies": {
- "quick-lru": "^5.1.1",
- "resolve-alpn": "^1.2.0"
+ "agent-base": "^7.1.2",
+ "debug": "4"
},
"engines": {
- "node": ">=10.19.0"
+ "node": ">= 14"
}
},
- "node_modules/human-signals": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
- "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
+ "node_modules/humanize-url": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-3.0.0.tgz",
+ "integrity": "sha512-oWcYrKNVa+bCX9ACFZ85H8l1+QcwBJ64xH5+PHYoLe/Y5aToOfw3s3OZqRA/OyJPcWOXuDLo3qil5CYvTMtp0A==",
+ "license": "MIT",
+ "dependencies": {
+ "normalize-url": "^7.0.0"
+ },
"engines": {
- "node": ">=14.18.0"
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
@@ -2790,41 +3168,63 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
+ "license": "MIT",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
"node_modules/import-lazy": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
- "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz",
+ "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==",
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=6"
}
},
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "node_modules/index-to-position": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.2.0.tgz",
+ "integrity": "sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==",
+ "license": "MIT",
"engines": {
- "node": ">=0.8.19"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
},
"node_modules/ini": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
- "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
- "engines": {
- "node": ">=10"
- }
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "license": "ISC"
},
"node_modules/internmap": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
"integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -2832,7 +3232,8 @@
"node_modules/into-stream": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz",
- "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=",
+ "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==",
+ "license": "MIT",
"dependencies": {
"from2": "^2.1.1",
"p-is-promise": "^1.1.0"
@@ -2841,39 +3242,37 @@
"node": ">=4"
}
},
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ "node_modules/ip-address": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz",
+ "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12"
+ }
},
- "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==",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
+ "node_modules/irregular-plurals": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz",
+ "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/is-ci": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
- "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
- "dependencies": {
- "ci-info": "^3.2.0"
- },
- "bin": {
- "is-ci": "bin.js"
- }
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "license": "MIT"
},
- "node_modules/is-core-module": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
- "dependencies": {
- "hasown": "^2.0.0"
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -2883,6 +3282,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
"integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+ "license": "MIT",
"bin": {
"is-docker": "cli.js"
},
@@ -2893,51 +3293,35 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/is-generator-function": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
- "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
+ "node_modules/is-in-ci": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-1.0.0.tgz",
+ "integrity": "sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==",
+ "license": "MIT",
+ "bin": {
+ "is-in-ci": "cli.js"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "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==",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-inside-container": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
"integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "license": "MIT",
"dependencies": {
"is-docker": "^3.0.0"
},
@@ -2952,15 +3336,16 @@
}
},
"node_modules/is-installed-globally": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
- "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-1.0.0.tgz",
+ "integrity": "sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==",
+ "license": "MIT",
"dependencies": {
- "global-dirs": "^3.0.0",
- "is-path-inside": "^3.0.2"
+ "global-directory": "^4.0.1",
+ "is-path-inside": "^4.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -2969,12 +3354,14 @@
"node_modules/is-natural-number": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
- "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg="
+ "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==",
+ "license": "MIT"
},
"node_modules/is-npm": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz",
- "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.1.0.tgz",
+ "integrity": "sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==",
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -2982,42 +3369,32 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "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==",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/is-object": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz",
"integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==",
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz",
+ "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==",
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-plain-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -3026,70 +3403,91 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
"integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "node_modules/is-root": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-root/-/is-root-3.0.0.tgz",
+ "integrity": "sha512-C13bL54yQdgniduW8KFe81ttgQINcwMgil/zyNuDzr/xjIyDMkcvcc9dON62RH9VBAHOI7le+lTo/U3PY3irwg==",
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+ "node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "node_modules/is-typed-array": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
+ "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
+ "license": "MIT",
"dependencies": {
- "is-docker": "^2.0.0"
+ "which-typed-array": "^1.1.16"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-wsl/node_modules/is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
- "bin": {
- "is-docker": "cli.js"
- },
+ "node_modules/is-unicode-supported": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz",
+ "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==",
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-yarn-global": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz",
- "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==",
+ "node_modules/is-wsl": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
+ "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-inside-container": "^1.0.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "license": "MIT"
},
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "license": "ISC"
},
"node_modules/isurl": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
"integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
+ "license": "MIT",
"dependencies": {
"has-to-string-tag-x": "^1.2.0",
"is-object": "^1.0.1"
@@ -3101,12 +3499,14 @@
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
},
"node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -3117,24 +3517,24 @@
"node_modules/json-buffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
- "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
+ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==",
+ "license": "MIT"
},
"node_modules/json-parse-even-better-errors": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz",
- "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "license": "MIT"
},
"node_modules/katex": {
- "version": "0.16.10",
- "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz",
- "integrity": "sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==",
+ "version": "0.16.25",
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.25.tgz",
+ "integrity": "sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q==",
"funding": [
"https://opencollective.com/katex",
"https://github.com/sponsors/katex"
],
+ "license": "MIT",
"dependencies": {
"commander": "^8.3.0"
},
@@ -3146,115 +3546,79 @@
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "license": "MIT",
"engines": {
"node": ">= 12"
}
},
- "node_modules/keygrip": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
- "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
- "dependencies": {
- "tsscmp": "1.0.6"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz",
+ "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==",
+ "license": "MIT",
"dependencies": {
- "json-buffer": "3.0.1"
+ "json-buffer": "3.0.0"
}
},
- "node_modules/keyv/node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
- },
- "node_modules/koa": {
- "version": "2.14.2",
- "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.2.tgz",
- "integrity": "sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==",
- "dependencies": {
- "accepts": "^1.3.5",
- "cache-content-type": "^1.0.0",
- "content-disposition": "~0.5.2",
- "content-type": "^1.0.4",
- "cookies": "~0.8.0",
- "debug": "^4.3.2",
- "delegates": "^1.0.0",
- "depd": "^2.0.0",
- "destroy": "^1.0.4",
- "encodeurl": "^1.0.2",
- "escape-html": "^1.0.3",
- "fresh": "~0.5.2",
- "http-assert": "^1.3.0",
- "http-errors": "^1.6.3",
- "is-generator-function": "^1.0.7",
- "koa-compose": "^4.1.0",
- "koa-convert": "^2.0.0",
- "on-finished": "^2.3.0",
- "only": "~0.0.2",
- "parseurl": "^1.3.2",
- "statuses": "^1.5.0",
- "type-is": "^1.6.16",
- "vary": "^1.1.2"
- },
- "engines": {
- "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4"
- }
- },
- "node_modules/koa-compose": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
- "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw=="
- },
- "node_modules/koa-convert": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz",
- "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==",
- "dependencies": {
- "co": "^4.6.0",
- "koa-compose": "^4.1.0"
- },
+ "node_modules/ky": {
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/ky/-/ky-1.14.0.tgz",
+ "integrity": "sha512-Rczb6FMM6JT0lvrOlP5WUOCB7s9XKxzwgErzhKlKde1bEV90FXplV1o87fpt4PU/asJFiqjYJxAJyzJhcrxOsQ==",
+ "license": "MIT",
"engines": {
- "node": ">= 10"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/ky?sponsor=1"
}
},
"node_modules/latest-version": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz",
- "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-9.0.0.tgz",
+ "integrity": "sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==",
+ "license": "MIT",
"dependencies": {
- "package-json": "^8.1.0"
+ "package-json": "^10.0.0"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/lines-and-columns": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz",
- "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "license": "MIT"
+ },
+ "node_modules/linkify-it": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
+ "license": "MIT",
+ "dependencies": {
+ "uc.micro": "^2.0.0"
}
},
- "node_modules/locate-path": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
- "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "license": "MIT"
+ },
+ "node_modules/log-symbols": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz",
+ "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==",
+ "license": "MIT",
"dependencies": {
- "p-locate": "^6.0.0"
+ "is-unicode-supported": "^2.0.0",
+ "yoctocolors": "^2.1.1"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -3264,82 +3628,175 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
"integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/lru-cache": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.2.tgz",
- "integrity": "sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "license": "ISC",
+ "dependencies": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "license": "MIT",
"dependencies": {
- "semver": "^7.3.5"
+ "pify": "^3.0.0"
},
"engines": {
- "node": "14 || >=16.14"
+ "node": ">=4"
}
},
- "node_modules/markmap-cli": {
- "version": "0.15.4",
- "resolved": "https://registry.npmjs.org/markmap-cli/-/markmap-cli-0.15.4.tgz",
- "integrity": "sha512-CpyQ7aBoL8CKGl8Kn9pKqA3TDiYBSeba5UyuWVdZXG47sqgdx2VaV/ybh80flkmamkeVURcbezYe9K4M1JTo+g==",
+ "node_modules/make-dir/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/markdown-it": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
+ "license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.22.6",
- "chokidar": "^3.5.3",
- "commander": "^11.0.0",
- "d3": "^7.8.5",
- "highlight.js": "^11.8.0",
- "katex": "^0.16.8",
- "koa": "^2.14.2",
- "markmap-common": "0.15.3",
- "markmap-lib": "0.15.4",
- "markmap-toolbar": "0.15.4",
- "markmap-view": "0.15.4",
- "open": "^9.1.0",
- "pkg-dir": "^7.0.0",
- "prismjs": "^1.29.0",
- "read-pkg-up": "^10.0.0",
- "update-notifier": "^6.0.2",
- "webfontloader": "^1.6.28"
+ "argparse": "^2.0.1",
+ "entities": "^4.4.0",
+ "linkify-it": "^5.0.0",
+ "mdurl": "^2.0.0",
+ "punycode.js": "^2.3.1",
+ "uc.micro": "^2.1.0"
+ },
+ "bin": {
+ "markdown-it": "bin/markdown-it.mjs"
+ }
+ },
+ "node_modules/markdown-it-ins": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-ins/-/markdown-it-ins-4.0.0.tgz",
+ "integrity": "sha512-sWbjK2DprrkINE4oYDhHdCijGT+MIDhEupjSHLXe5UXeVr5qmVxs/nTUVtgi0Oh/qtF+QKV0tNWDhQBEPxiMew==",
+ "license": "MIT"
+ },
+ "node_modules/markdown-it-mark": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-mark/-/markdown-it-mark-4.0.0.tgz",
+ "integrity": "sha512-YLhzaOsU9THO/cal0lUjfMjrqSMPjjyjChYM7oyj4DnyaXEzA8gnW6cVJeyCrCVeyesrY2PlEdUYJSPFYL4Nkg==",
+ "license": "MIT"
+ },
+ "node_modules/markdown-it-sub": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-sub/-/markdown-it-sub-2.0.0.tgz",
+ "integrity": "sha512-iCBKgwCkfQBRg2vApy9vx1C1Tu6D8XYo8NvevI3OlwzBRmiMtsJ2sXupBgEA7PPxiDwNni3qIUkhZ6j5wofDUA==",
+ "license": "MIT"
+ },
+ "node_modules/markdown-it-sup": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-sup/-/markdown-it-sup-2.0.0.tgz",
+ "integrity": "sha512-5VgmdKlkBd8sgXuoDoxMpiU+BiEt3I49GItBzzw7Mxq9CxvnhE/k09HFli09zgfFDRixDQDfDxi0mgBCXtaTvA==",
+ "license": "MIT"
+ },
+ "node_modules/markmap-cli": {
+ "version": "0.18.12",
+ "resolved": "https://registry.npmjs.org/markmap-cli/-/markmap-cli-0.18.12.tgz",
+ "integrity": "sha512-qlrcC75XM9nlzemErHlEkmC2CZtGo47ODvhffdBrWWIIJfIFy1YoQmh9cy9rJ6XolPIAtTTin3CwJvZHktt8/g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.26.0",
+ "@hono/node-server": "^1.13.7",
+ "chokidar": "^4.0.1",
+ "commander": "^12.1.0",
+ "hono": "^4.6.13",
+ "markmap-common": "0.18.9",
+ "markmap-lib": "0.18.12",
+ "markmap-render": "0.18.12",
+ "markmap-toolbar": "0.18.12",
+ "open": "^10.1.0",
+ "portfinder": "^1.0.32",
+ "read-package-up": "^11.0.0",
+ "update-notifier": "^7.3.1"
},
"bin": {
"markmap": "bin/cli.js"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/markmap-common": {
- "version": "0.15.3",
- "resolved": "https://registry.npmjs.org/markmap-common/-/markmap-common-0.15.3.tgz",
- "integrity": "sha512-a40FfdzFEKoyIhd5KDsV6FfkM55WWi2spRq/cUCsOZd8e4PAHMc9auCEjdxTWRiS2EGzET9sPpvyAmPSTva+/w==",
+ "version": "0.18.9",
+ "resolved": "https://registry.npmjs.org/markmap-common/-/markmap-common-0.18.9.tgz",
+ "integrity": "sha512-MV2HQO7IGIm3jWEJXSG8vmdpqf4WIDXcEyAEN52lrWR1qD53Zg5l81JwjXoZ2l0rY5mofKYqUFlmdM2fqTGMVg==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.22.6",
"@gera2ld/jsx-dom": "^2.2.2",
- "npm2url": "^0.2.1"
+ "npm2url": "^0.2.4"
+ }
+ },
+ "node_modules/markmap-html-parser": {
+ "version": "0.18.11",
+ "resolved": "https://registry.npmjs.org/markmap-html-parser/-/markmap-html-parser-0.18.11.tgz",
+ "integrity": "sha512-+kC5C4sCGntGUhGvTa5VIb5rtM75cSy/VCy3tzZoNAcn2qZGdgYvljN0WvjsOzrEzp+V6XKgwzO0u2TdzNAiOg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.22.6",
+ "cheerio": "1.0.0"
+ },
+ "peerDependencies": {
+ "markmap-common": "*"
}
},
"node_modules/markmap-lib": {
- "version": "0.15.4",
- "resolved": "https://registry.npmjs.org/markmap-lib/-/markmap-lib-0.15.4.tgz",
- "integrity": "sha512-uz/IedoGXoDD6eXpmyD+1vx+g3rEzomX1uwnXOxnigXC9ApXG67lUhA4ffNlucgoV4/BLA2m6KyVvswECjljVQ==",
+ "version": "0.18.12",
+ "resolved": "https://registry.npmjs.org/markmap-lib/-/markmap-lib-0.18.12.tgz",
+ "integrity": "sha512-WCA4OT+b71jYg0e4PS/6NRKqihod5OpPsvw1jEGHQwCtqQrY/yXXCeRyuL3axOS5cMy5pV8BSl4CwKfJU1LxJg==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.22.6",
+ "@vscode/markdown-it-katex": "^1.1.0",
"highlight.js": "^11.8.0",
- "js-yaml": "^4.1.0",
"katex": "^0.16.8",
+ "markdown-it": "^14.1.0",
+ "markdown-it-ins": "^4.0.0",
+ "markdown-it-mark": "^4.0.0",
+ "markdown-it-sub": "^2.0.0",
+ "markdown-it-sup": "^2.0.0",
+ "markmap-html-parser": "0.18.11",
+ "markmap-view": "0.18.12",
"prismjs": "^1.29.0",
- "remarkable": "^2.0.1",
- "remarkable-katex": "^1.2.1"
+ "yaml": "^2.5.1"
+ },
+ "peerDependencies": {
+ "markmap-common": "*"
+ }
+ },
+ "node_modules/markmap-render": {
+ "version": "0.18.12",
+ "resolved": "https://registry.npmjs.org/markmap-render/-/markmap-render-0.18.12.tgz",
+ "integrity": "sha512-QRVpj5+1m9fazCUyMHEHeiYYyua9hNExkaET9ZZrq8nsekkza0fwIsjRYWtzytG2vDYkY5TYhqsJLy7mZLgE5A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.22.6"
},
"peerDependencies": {
"markmap-common": "*"
}
},
"node_modules/markmap-toolbar": {
- "version": "0.15.4",
- "resolved": "https://registry.npmjs.org/markmap-toolbar/-/markmap-toolbar-0.15.4.tgz",
- "integrity": "sha512-g95ne4YXJ9qptQAzoTyL0a1Pj/1ZNWzGWkbV/9w537LRTKJndQQ2FN71tCZQjAK95zri3cM0bJDv8krK7w4Q5w==",
+ "version": "0.18.12",
+ "resolved": "https://registry.npmjs.org/markmap-toolbar/-/markmap-toolbar-0.18.12.tgz",
+ "integrity": "sha512-+MQ/95ywl/ZLhVKb0tKjRa3p/AuUSYsuJRs1MPHmkxcxBaumXgzLNHUUnLjKmsbNxeZUSQGe3QJaFyRQYcHZJg==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.22.6",
"@gera2ld/jsx-dom": "^2.2.2"
@@ -3349,67 +3806,59 @@
}
},
"node_modules/markmap-view": {
- "version": "0.15.4",
- "resolved": "https://registry.npmjs.org/markmap-view/-/markmap-view-0.15.4.tgz",
- "integrity": "sha512-6PJnoPZHiQIb0YE+fg0Ht1ptEXgf9QOOTBEiC2DrzjAbZ3rrRa2g+0VhpZ+9vSzDsUa+m/IGz4xkiNepuPfs5w==",
+ "version": "0.18.12",
+ "resolved": "https://registry.npmjs.org/markmap-view/-/markmap-view-0.18.12.tgz",
+ "integrity": "sha512-D8bzT1YwIC/8rkbwm6WzigVUrpOAGv7ioEGTi1Lj+Oo8gO5sAm6hhli27jvTgUcZ9TwBeIWZ+dSUP+AupYUGlQ==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.22.6",
- "@gera2ld/jsx-dom": "^2.2.2",
- "@types/d3": "^7.4.0",
- "d3": "^7.8.5",
- "d3-flextree": "^2.1.2"
+ "d3": "^7.8.5"
},
"peerDependencies": {
"markmap-common": "*"
}
},
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.4"
}
},
- "node_modules/merge-stream": {
+ "node_modules/mdurl": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
+ "license": "MIT"
},
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "node_modules/meow": {
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
+ "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "license": "MIT",
"engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
+ "node": ">=18"
},
- "engines": {
- "node": ">= 0.6"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "node_modules/mime-db": {
+ "version": "1.54.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+ "license": "MIT",
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 0.6"
}
},
"node_modules/mimic-response": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -3418,35 +3867,45 @@
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/mitt": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
+ "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
+ "license": "MIT"
+ },
"node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
},
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "node_modules/netmask": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
+ "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
+ "license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.4.0"
}
},
"node_modules/nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "license": "MIT"
},
"node_modules/normalize-package-data": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz",
- "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
+ "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
+ "license": "BSD-2-Clause",
"dependencies": {
"hosted-git-info": "^7.0.0",
- "is-core-module": "^2.8.1",
"semver": "^7.3.5",
"validate-npm-package-license": "^3.0.4"
},
@@ -3454,20 +3913,25 @@
"node": "^16.14.0 || >=18.0.0"
}
},
- "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==",
+ "node_modules/normalize-package-data/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
}
},
"node_modules/normalize-url": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
- "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-7.2.0.tgz",
+ "integrity": "sha512-uhXOdZry0L6M2UIo9BTt7FdpBDiAGN/7oItedQwPKh8jh31ZlvC8U9Xl/EJ3aijDHaywXTW3QbZ6LuCocur1YA==",
+ "license": "MIT",
"engines": {
- "node": ">=14.16"
+ "node": ">=12.20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -3477,6 +3941,7 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
"integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
+ "license": "MIT",
"dependencies": {
"config-chain": "^1.1.11",
"pify": "^3.0.0"
@@ -3488,7 +3953,8 @@
"node_modules/npm-conf/node_modules/pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -3496,7 +3962,8 @@
"node_modules/npm-run-path": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "license": "MIT",
"dependencies": {
"path-key": "^2.0.0"
},
@@ -3505,68 +3972,54 @@
}
},
"node_modules/npm2url": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/npm2url/-/npm2url-0.2.1.tgz",
- "integrity": "sha512-Ls7mMyud1Kk0EisqsTt2TPtM7gLRvgmvDxOg3FPI5zjfhQ+ZFNBXX2K9VT7vo+HqUsz/uCiIxkcO0SvIuneVug=="
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/npm2url/-/npm2url-0.2.4.tgz",
+ "integrity": "sha512-arzGp/hQz0Ey+ZGhF64XVH7Xqwd+1Q/po5uGiBbzph8ebX6T0uvt3N7c1nBHQNsQVykQgHhqoRTX7JFcHecGuw==",
+ "license": "MIT"
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "license": "ISC",
"dependencies": {
"wrappy": "1"
}
},
- "node_modules/onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dependencies": {
- "mimic-fn": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/only": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz",
- "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ=="
- },
"node_modules/open": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz",
- "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz",
+ "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==",
+ "license": "MIT",
"dependencies": {
- "default-browser": "^4.0.0",
+ "default-browser": "^5.2.1",
"define-lazy-prop": "^3.0.0",
"is-inside-container": "^1.0.0",
- "is-wsl": "^2.2.0"
+ "wsl-utils": "^0.1.0"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -3577,6 +4030,7 @@
"resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-9.0.0.tgz",
"integrity": "sha512-uDcmcNK4MRSM5ezLThUPI7fc9ZxlQMqnxhWxIc7foCcUZZ2LvzbcJwwVEsU78tC3t9B68dwE4y/m6at10Z93UA==",
"hasInstallScript": true,
+ "license": "MIT",
"dependencies": {
"bin-build": "^3.0.0",
"bin-wrapper": "^4.0.0"
@@ -3592,6 +4046,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz",
"integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==",
+ "license": "MIT",
"dependencies": {
"arch": "^2.1.0"
},
@@ -3600,17 +4055,19 @@
}
},
"node_modules/p-cancelable": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
- "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
+ "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==",
+ "license": "MIT",
"engines": {
- "node": ">=12.20"
+ "node": ">=4"
}
},
"node_modules/p-event": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz",
- "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=",
+ "integrity": "sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==",
+ "license": "MIT",
"dependencies": {
"p-timeout": "^1.1.1"
},
@@ -3621,7 +4078,8 @@
"node_modules/p-finally": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -3629,34 +4087,19 @@
"node_modules/p-is-promise": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
- "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=",
+ "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
- "node_modules/p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
- "dependencies": {
- "yocto-queue": "^1.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
- "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
- "dependencies": {
- "p-limit": "^4.0.0"
- },
+ "node_modules/p-map": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz",
+ "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==",
+ "license": "MIT",
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -3665,7 +4108,8 @@
"node_modules/p-map-series": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz",
- "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=",
+ "integrity": "sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg==",
+ "license": "MIT",
"dependencies": {
"p-reduce": "^1.0.0"
},
@@ -3676,7 +4120,8 @@
"node_modules/p-reduce": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz",
- "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=",
+ "integrity": "sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -3684,7 +4129,8 @@
"node_modules/p-timeout": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
- "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
+ "integrity": "sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==",
+ "license": "MIT",
"dependencies": {
"p-finally": "^1.0.0"
},
@@ -3692,96 +4138,281 @@
"node": ">=4"
}
},
- "node_modules/package-json": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz",
- "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==",
+ "node_modules/pac-proxy-agent": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz",
+ "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==",
+ "license": "MIT",
"dependencies": {
- "got": "^12.1.0",
- "registry-auth-token": "^5.0.1",
- "registry-url": "^6.0.0",
- "semver": "^7.3.7"
+ "@tootallnate/quickjs-emscripten": "^0.23.0",
+ "agent-base": "^7.1.2",
+ "debug": "^4.3.4",
+ "get-uri": "^6.0.1",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.6",
+ "pac-resolver": "^7.0.1",
+ "socks-proxy-agent": "^8.0.5"
},
"engines": {
- "node": ">=14.16"
+ "node": ">= 14"
+ }
+ },
+ "node_modules/pac-resolver": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz",
+ "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==",
+ "license": "MIT",
+ "dependencies": {
+ "degenerator": "^5.0.0",
+ "netmask": "^2.0.2"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">= 14"
}
},
- "node_modules/parse-json": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz",
- "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==",
+ "node_modules/package-json": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-10.0.1.tgz",
+ "integrity": "sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==",
+ "license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.21.4",
- "error-ex": "^1.3.2",
- "json-parse-even-better-errors": "^3.0.0",
- "lines-and-columns": "^2.0.3",
- "type-fest": "^3.8.0"
+ "ky": "^1.2.0",
+ "registry-auth-token": "^5.0.2",
+ "registry-url": "^6.0.1",
+ "semver": "^7.6.0"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/parse-json/node_modules/type-fest": {
- "version": "3.13.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
- "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "node_modules/package-json/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
"engines": {
- "node": ">=14.16"
+ "node": ">=10"
+ }
+ },
+ "node_modules/pageres": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/pageres/-/pageres-9.0.0.tgz",
+ "integrity": "sha512-2n/8a9yMPJuHCS5NADws4iH5SWCdRQKMN/sCxGuZyAgR2yz2dLDuZN0ssB/vI53I4PQDkiGUD8cAe/hODuAgcA==",
+ "license": "MIT",
+ "dependencies": {
+ "array-differ": "^4.0.0",
+ "array-uniq": "^3.0.0",
+ "capture-website": "^5.0.0",
+ "date-fns": "^4.1.0",
+ "filenamify": "^6.0.0",
+ "filenamify-url": "^3.1.0",
+ "lodash": "^4.17.21",
+ "log-symbols": "^7.0.1",
+ "make-dir": "^5.0.0",
+ "p-map": "^7.0.3",
+ "plur": "^5.1.0",
+ "type-fest": "^4.41.0",
+ "unused-filename": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "node_modules/pageres-cli": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/pageres-cli/-/pageres-cli-9.0.0.tgz",
+ "integrity": "sha512-IY+R2dfhYFXHnuGsosQ+HJ8qpSuIjW8OBstubNmUQ5gvHhbiL9a2tkpONB7Q5CSXMAVd7mSlY6lc2kR+SN/jNw==",
+ "license": "MIT",
+ "dependencies": {
+ "array-differ": "^4.0.0",
+ "array-uniq": "^3.0.0",
+ "arrify": "^3.0.0",
+ "log-symbols": "^7.0.1",
+ "meow": "^13.2.0",
+ "pageres": "^9.0.0",
+ "parse-headers": "^2.0.6",
+ "subarg": "^1.0.0",
+ "sudo-block": "^5.0.0",
+ "update-notifier": "^7.3.1"
+ },
+ "bin": {
+ "pageres": "cli.js"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/path-exists": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "node_modules/pageres/node_modules/filename-reserved-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz",
+ "integrity": "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==",
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
- "engines": {
- "node": ">=4"
+ "node_modules/pageres/node_modules/filenamify": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-6.0.0.tgz",
+ "integrity": "sha512-vqIlNogKeyD3yzrm0yhRMQg8hOVwYcYRfjEoODd49iCprMn4HL85gK3HcykQE53EPIpX3HcAbGA5ELQv216dAQ==",
+ "license": "MIT",
+ "dependencies": {
+ "filename-reserved-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/pend": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
+ "node_modules/pageres/node_modules/make-dir": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-5.1.0.tgz",
+ "integrity": "sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-headers": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz",
+ "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==",
+ "license": "MIT"
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parse5": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
+ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz",
+ "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==",
+ "license": "MIT",
+ "dependencies": {
+ "domhandler": "^5.0.3",
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-parser-stream": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz",
+ "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==",
+ "license": "MIT",
+ "dependencies": {
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5/node_modules/entities": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+ "license": "BSD-2-Clause",
"engines": {
- "node": ">=8.6"
+ "node": ">=0.12"
},
"funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
}
},
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC"
+ },
"node_modules/pify": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -3789,7 +4420,8 @@
"node_modules/pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -3797,7 +4429,8 @@
"node_modules/pinkie-promise": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
+ "license": "MIT",
"dependencies": {
"pinkie": "^2.0.0"
},
@@ -3805,32 +4438,57 @@
"node": ">=0.10.0"
}
},
- "node_modules/pkg-dir": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
- "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
+ "node_modules/plur": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz",
+ "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==",
+ "license": "MIT",
"dependencies": {
- "find-up": "^6.3.0"
+ "irregular-plurals": "^3.3.0"
},
"engines": {
- "node": ">=14.16"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/portfinder": {
+ "version": "1.0.38",
+ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz",
+ "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==",
+ "license": "MIT",
+ "dependencies": {
+ "async": "^3.2.6",
+ "debug": "^4.3.6"
+ },
+ "engines": {
+ "node": ">= 10.12"
+ }
+ },
+ "node_modules/possible-typed-array-names": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
+ "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/prepend-http": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
- "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==",
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
"node_modules/prismjs": {
- "version": "1.29.0",
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
- "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==",
+ "version": "1.30.0",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz",
+ "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -3838,31 +4496,88 @@
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "license": "MIT"
+ },
+ "node_modules/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
"node_modules/proto-list": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
- "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk="
+ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
+ "license": "ISC"
+ },
+ "node_modules/proxy-agent": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz",
+ "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==",
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.2",
+ "debug": "^4.3.4",
+ "http-proxy-agent": "^7.0.1",
+ "https-proxy-agent": "^7.0.6",
+ "lru-cache": "^7.14.1",
+ "pac-proxy-agent": "^7.1.0",
+ "proxy-from-env": "^1.1.0",
+ "socks-proxy-agent": "^8.0.5"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/proxy-agent/node_modules/lru-cache": {
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "license": "MIT"
},
"node_modules/pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+ "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==",
+ "license": "ISC"
},
"node_modules/pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz",
+ "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==",
+ "license": "MIT",
"dependencies": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
}
},
+ "node_modules/punycode.js": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/pupa": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz",
- "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.3.0.tgz",
+ "integrity": "sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==",
+ "license": "MIT",
"dependencies": {
"escape-goat": "^4.0.0"
},
@@ -3873,10 +4588,50 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/puppeteer": {
+ "version": "24.31.0",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.31.0.tgz",
+ "integrity": "sha512-q8y5yLxLD8xdZdzNWqdOL43NbfvUOp60SYhaLZQwHC9CdKldxQKXOyJAciOr7oUJfyAH/KgB2wKvqT2sFKoVXA==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@puppeteer/browsers": "2.10.13",
+ "chromium-bidi": "11.0.0",
+ "cosmiconfig": "^9.0.0",
+ "devtools-protocol": "0.0.1521046",
+ "puppeteer-core": "24.31.0",
+ "typed-query-selector": "^2.12.0"
+ },
+ "bin": {
+ "puppeteer": "lib/cjs/puppeteer/node/cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/puppeteer-core": {
+ "version": "24.31.0",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.31.0.tgz",
+ "integrity": "sha512-pnAohhSZipWQoFpXuGV7xCZfaGhqcBR9C4pVrU0QSrcMi7tQMH9J9lDBqBvyMAHQqe8HCARuREqFuVKRQOgTvg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@puppeteer/browsers": "2.10.13",
+ "chromium-bidi": "11.0.0",
+ "debug": "^4.4.3",
+ "devtools-protocol": "0.0.1521046",
+ "typed-query-selector": "^2.12.0",
+ "webdriver-bidi-protocol": "0.3.9",
+ "ws": "^8.18.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/query-string": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
"integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
+ "license": "MIT",
"dependencies": {
"decode-uri-component": "^0.2.0",
"object-assign": "^4.1.0",
@@ -3886,21 +4641,11 @@
"node": ">=0.10.0"
}
},
- "node_modules/quick-lru": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
- "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
"dependencies": {
"deep-extend": "^0.6.0",
"ini": "~1.3.0",
@@ -3911,48 +4656,64 @@
"rc": "cli.js"
}
},
- "node_modules/rc/node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ "node_modules/read-package-up": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz",
+ "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==",
+ "license": "MIT",
+ "dependencies": {
+ "find-up-simple": "^1.0.0",
+ "read-pkg": "^9.0.0",
+ "type-fest": "^4.6.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
"node_modules/read-pkg": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz",
- "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz",
+ "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==",
+ "license": "MIT",
"dependencies": {
- "@types/normalize-package-data": "^2.4.1",
+ "@types/normalize-package-data": "^2.4.3",
"normalize-package-data": "^6.0.0",
- "parse-json": "^7.0.0",
- "type-fest": "^4.2.0"
+ "parse-json": "^8.0.0",
+ "type-fest": "^4.6.0",
+ "unicorn-magic": "^0.1.0"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/read-pkg-up": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz",
- "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==",
+ "node_modules/read-pkg/node_modules/parse-json": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz",
+ "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==",
+ "license": "MIT",
"dependencies": {
- "find-up": "^6.3.0",
- "read-pkg": "^8.1.0",
- "type-fest": "^4.2.0"
+ "@babel/code-frame": "^7.26.2",
+ "index-to-position": "^1.1.0",
+ "type-fest": "^4.39.1"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -3966,28 +4727,27 @@
"node_modules/readable-stream/node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
},
"node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "license": "MIT",
"engines": {
- "node": ">=8.10.0"
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
}
},
- "node_modules/regenerator-runtime": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
- "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
- },
"node_modules/registry-auth-token": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz",
- "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz",
+ "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==",
+ "license": "MIT",
"dependencies": {
"@pnpm/npm-conf": "^2.1.0"
},
@@ -3999,6 +4759,7 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz",
"integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==",
+ "license": "MIT",
"dependencies": {
"rc": "1.2.8"
},
@@ -4009,43 +4770,29 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/remarkable": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz",
- "integrity": "sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA==",
- "dependencies": {
- "argparse": "^1.0.10",
- "autolinker": "^3.11.0"
- },
- "bin": {
- "remarkable": "bin/remarkable.js"
- },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "license": "MIT",
"engines": {
- "node": ">= 6.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/remarkable-katex": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/remarkable-katex/-/remarkable-katex-1.2.1.tgz",
- "integrity": "sha512-Y1VquJBZnaVsfsVcKW2hmjT+pDL7mp8l5WAVlvuvViltrdok2m1AIKmJv8SsH+mBY84PoMw67t3kTWw1dIm8+g=="
- },
- "node_modules/remarkable/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dependencies": {
- "sprintf-js": "~1.0.2"
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/resolve-alpn": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
- "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
- },
"node_modules/responselike": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
- "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
+ "license": "MIT",
"dependencies": {
"lowercase-keys": "^1.0.0"
}
@@ -4053,314 +4800,189 @@
"node_modules/robust-predicates": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
- "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg=="
+ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
+ "license": "Unlicense"
},
"node_modules/run-applescript": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz",
- "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
- "dependencies": {
- "execa": "^5.0.0"
- },
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
+ "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
+ "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/run-applescript/node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "node_modules/rw": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "license": "MIT"
+ },
+ "node_modules/seek-bzip": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz",
+ "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==",
+ "license": "MIT",
"dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
+ "commander": "^2.8.1"
},
+ "bin": {
+ "seek-bunzip": "bin/seek-bunzip",
+ "seek-table": "bin/seek-bzip-table"
+ }
+ },
+ "node_modules/seek-bzip/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "license": "MIT"
+ },
+ "node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/semver-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
+ "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==",
+ "license": "MIT",
"engines": {
- "node": ">= 8"
+ "node": ">=6"
}
},
- "node_modules/run-applescript/node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "node_modules/semver-truncate": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz",
+ "integrity": "sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==",
+ "license": "MIT",
"dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
+ "semver": "^5.3.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ "node": ">=0.10.0"
}
},
- "node_modules/run-applescript/node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "engines": {
- "node": ">=10"
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/run-applescript/node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/run-applescript/node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/run-applescript/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/run-applescript/node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/run-applescript/node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/run-applescript/node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/run-applescript/node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/run-applescript/node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/run-applescript/node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/run-applescript/node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/rw": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
- "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "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/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "node_modules/seek-bzip": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz",
- "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==",
- "dependencies": {
- "commander": "^2.8.1"
- },
- "bin": {
- "seek-bunzip": "bin/seek-bunzip",
- "seek-table": "bin/seek-bzip-table"
- }
- },
- "node_modules/seek-bzip/node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
- },
- "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==",
+ "node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "license": "MIT",
"dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
+ "shebang-regex": "^1.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=0.10.0"
}
},
- "node_modules/semver-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz",
- "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==",
- "dependencies": {
- "semver": "^7.3.5"
- },
+ "node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "license": "MIT",
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.10.0"
}
},
- "node_modules/semver-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
- "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==",
- "engines": {
- "node": ">=6"
- }
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "license": "ISC"
},
- "node_modules/semver-truncate": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz",
- "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=",
- "dependencies": {
- "semver": "^5.3.0"
- },
+ "node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
}
},
- "node_modules/semver-truncate/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/semver/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==",
+ "node_modules/socks": {
+ "version": "2.8.7",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz",
+ "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==",
+ "license": "MIT",
"dependencies": {
- "yallist": "^4.0.0"
+ "ip-address": "^10.0.1",
+ "smart-buffer": "^4.2.0"
},
"engines": {
- "node": ">=10"
+ "node": ">= 10.0.0",
+ "npm": ">= 3.0.0"
}
},
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "node_modules/socks-proxy-agent": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz",
+ "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==",
+ "license": "MIT",
"dependencies": {
- "shebang-regex": "^1.0.0"
+ "agent-base": "^7.1.2",
+ "debug": "^4.3.4",
+ "socks": "^2.8.3"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
- "engines": {
- "node": ">=0.10.0"
+ "node": ">= 14"
}
},
- "node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
- },
"node_modules/sort-keys": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
- "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+ "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==",
+ "license": "MIT",
"dependencies": {
"is-plain-obj": "^1.0.0"
},
@@ -4371,7 +4993,8 @@
"node_modules/sort-keys-length": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
- "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=",
+ "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==",
+ "license": "MIT",
"dependencies": {
"sort-keys": "^1.0.0"
},
@@ -4379,51 +5002,64 @@
"node": ">=0.10.0"
}
},
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/spdx-correct": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
"integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "license": "Apache-2.0",
"dependencies": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
}
},
"node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
+ "license": "CC-BY-3.0"
},
"node_modules/spdx-expression-parse": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.16",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
- "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw=="
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ "version": "3.0.22",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz",
+ "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==",
+ "license": "CC0-1.0"
},
- "node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "engines": {
- "node": ">= 0.6"
+ "node_modules/streamx": {
+ "version": "2.23.0",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz",
+ "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==",
+ "license": "MIT",
+ "dependencies": {
+ "events-universal": "^1.0.0",
+ "fast-fifo": "^1.3.2",
+ "text-decoder": "^1.1.0"
}
},
"node_modules/strict-uri-encode": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -4432,6 +5068,7 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
@@ -4439,28 +5076,31 @@
"node_modules/string_decoder/node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
},
"node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
+ "license": "MIT",
"dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^6.0.1"
},
@@ -4475,6 +5115,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz",
"integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==",
+ "license": "MIT",
"dependencies": {
"is-natural-number": "^4.0.1"
}
@@ -4482,26 +5123,17 @@
"node_modules/strip-eof": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -4510,6 +5142,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
"integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
+ "license": "MIT",
"dependencies": {
"escape-string-regexp": "^1.0.2"
},
@@ -4517,21 +5150,77 @@
"node": ">=0.10.0"
}
},
- "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==",
+ "node_modules/stubborn-fs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-2.0.0.tgz",
+ "integrity": "sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==",
+ "license": "MIT",
+ "dependencies": {
+ "stubborn-utils": "^1.0.1"
+ }
+ },
+ "node_modules/stubborn-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/stubborn-utils/-/stubborn-utils-1.0.2.tgz",
+ "integrity": "sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==",
+ "license": "MIT"
+ },
+ "node_modules/subarg": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
+ "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==",
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.1.0"
+ }
+ },
+ "node_modules/sudo-block": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/sudo-block/-/sudo-block-5.0.0.tgz",
+ "integrity": "sha512-G0WeSL7midyz10FMKtgjXOBZpv9ZM9y++zGideqHIZ+qrzB8wMrCzMxTJgREAY35zPfkqVZBxaYjzteO9H6iQw==",
+ "license": "MIT",
"dependencies": {
- "has-flag": "^3.0.0"
+ "chalk": "^5.3.0",
+ "is-docker": "^3.0.0",
+ "is-root": "^3.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/tar-fs": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz",
+ "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==",
+ "license": "MIT",
+ "dependencies": {
+ "pump": "^3.0.0",
+ "tar-stream": "^3.1.5"
+ },
+ "optionalDependencies": {
+ "bare-fs": "^4.0.1",
+ "bare-path": "^3.0.0"
+ }
+ },
+ "node_modules/tar-fs/node_modules/tar-stream": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
+ "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
+ "license": "MIT",
+ "dependencies": {
+ "b4a": "^1.6.4",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
}
},
"node_modules/tar-stream": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
"integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
+ "license": "MIT",
"dependencies": {
"bl": "^1.0.0",
"buffer-alloc": "^1.2.0",
@@ -4548,7 +5237,8 @@
"node_modules/temp-dir": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
- "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=",
+ "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -4556,7 +5246,8 @@
"node_modules/tempfile": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz",
- "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=",
+ "integrity": "sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA==",
+ "license": "MIT",
"dependencies": {
"temp-dir": "^1.0.0",
"uuid": "^3.0.1"
@@ -4565,58 +5256,94 @@
"node": ">=4"
}
},
+ "node_modules/text-decoder": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz",
+ "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "b4a": "^1.6.4"
+ }
+ },
"node_modules/through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "license": "MIT"
},
"node_modules/timed-out": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
+ "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/titleize": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
- "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==",
- "engines": {
- "node": ">=12"
+ "node_modules/tldts": {
+ "version": "7.0.18",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.18.tgz",
+ "integrity": "sha512-lCcgTAgMxQ1JKOWrVGo6E69Ukbnx4Gc1wiYLRf6J5NN4HRYJtCby1rPF8rkQ4a6qqoFBK5dvjJ1zJ0F7VfDSvw==",
+ "license": "MIT",
+ "dependencies": {
+ "tldts-core": "^7.0.18"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "bin": {
+ "tldts": "bin/cli.js"
}
},
- "node_modules/to-buffer": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
- "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg=="
+ "node_modules/tldts-core": {
+ "version": "7.0.18",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.18.tgz",
+ "integrity": "sha512-jqJC13oP4FFAahv4JT/0WTDrCF9Okv7lpKtOZUGPLiAnNbACcSg8Y8T+Z9xthOmRBqi/Sob4yi0TE0miRCvF7Q==",
+ "license": "MIT"
},
- "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==",
+ "node_modules/tldts-experimental": {
+ "version": "7.0.18",
+ "resolved": "https://registry.npmjs.org/tldts-experimental/-/tldts-experimental-7.0.18.tgz",
+ "integrity": "sha512-/t+Li4WcFIFMF8VLOk/Y31XaEwZF4yvccTqnHUHVJsiieK+y51G+M4BJbt5P8NVREnLE6GcRLJr3GMBfDfja0w==",
+ "license": "MIT",
"dependencies": {
- "is-number": "^7.0.0"
+ "tldts-core": "^7.0.18"
+ }
+ },
+ "node_modules/to-buffer": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz",
+ "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==",
+ "license": "MIT",
+ "dependencies": {
+ "isarray": "^2.0.5",
+ "safe-buffer": "^5.2.1",
+ "typed-array-buffer": "^1.0.3"
},
"engines": {
- "node": ">=8.0"
+ "node": ">= 0.4"
}
},
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "node_modules/to-buffer/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "license": "MIT"
+ },
+ "node_modules/tough-cookie": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz",
+ "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "tldts": "^7.0.5"
+ },
"engines": {
- "node": ">=0.6"
+ "node": ">=16"
}
},
"node_modules/trim-repeated": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
- "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
+ "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==",
+ "license": "MIT",
"dependencies": {
"escape-string-regexp": "^1.0.2"
},
@@ -4625,22 +5352,16 @@
}
},
"node_modules/tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
- },
- "node_modules/tsscmp": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
- "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==",
- "engines": {
- "node": ">=0.6.x"
- }
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
},
"node_modules/tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "license": "Apache-2.0",
"dependencies": {
"safe-buffer": "^5.0.1"
},
@@ -4649,9 +5370,10 @@
}
},
"node_modules/type-fest": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.1.tgz",
- "integrity": "sha512-ShaaYnjf+0etG8W/FumARKMjjIToy/haCaTjN2dvcewOSoNqCQzdgG7m2JVOlM5qndGTHjkvsrWZs+k/2Z7E0Q==",
+ "version": "4.41.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
+ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=16"
},
@@ -4659,110 +5381,151 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
+ "license": "MIT",
"dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.14"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.4"
}
},
- "node_modules/typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dependencies": {
- "is-typedarray": "^1.0.0"
- }
+ "node_modules/typed-query-selector": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz",
+ "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==",
+ "license": "MIT"
+ },
+ "node_modules/uc.micro": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
+ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
+ "license": "MIT"
},
"node_modules/unbzip2-stream": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
"integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
+ "license": "MIT",
"dependencies": {
"buffer": "^5.2.1",
"through": "^2.3.8"
}
},
- "node_modules/unique-string": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
- "dependencies": {
- "crypto-random-string": "^4.0.0"
+ "node_modules/undici": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.22.0.tgz",
+ "integrity": "sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.17"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
+ "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/unicorn-magic": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
+ "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/unused-filename": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/unused-filename/-/unused-filename-4.0.1.tgz",
+ "integrity": "sha512-ZX6U1J04K1FoSUeoX1OicAhw4d0aro2qo+L8RhJkiGTNtBNkd/Fi1Wxoc9HzcVu6HfOzm0si/N15JjxFmD1z6A==",
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "^5.0.0",
+ "path-exists": "^5.0.0"
},
"engines": {
- "node": ">=12"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/untildify": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
- "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "node_modules/unused-filename/node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/update-notifier": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz",
- "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==",
- "dependencies": {
- "boxen": "^7.0.0",
- "chalk": "^5.0.1",
- "configstore": "^6.0.0",
- "has-yarn": "^3.0.0",
- "import-lazy": "^4.0.0",
- "is-ci": "^3.0.1",
- "is-installed-globally": "^0.4.0",
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.3.1.tgz",
+ "integrity": "sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boxen": "^8.0.1",
+ "chalk": "^5.3.0",
+ "configstore": "^7.0.0",
+ "is-in-ci": "^1.0.0",
+ "is-installed-globally": "^1.0.0",
"is-npm": "^6.0.0",
- "is-yarn-global": "^0.4.0",
- "latest-version": "^7.0.0",
+ "latest-version": "^9.0.0",
"pupa": "^3.1.0",
- "semver": "^7.3.7",
- "semver-diff": "^4.0.0",
+ "semver": "^7.6.3",
"xdg-basedir": "^5.1.0"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/yeoman/update-notifier?sponsor=1"
}
},
- "node_modules/update-notifier/node_modules/chalk": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
- "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ "node_modules/update-notifier/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
},
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/url-parse-lax": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
- "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==",
+ "license": "MIT",
"dependencies": {
- "prepend-http": "^2.0.0"
+ "prepend-http": "^1.0.1"
},
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
"node_modules/url-to-options": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
- "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=",
+ "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==",
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
@@ -4770,13 +5533,15 @@
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "license": "MIT"
},
"node_modules/uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "license": "MIT",
"bin": {
"uuid": "bin/uuid"
}
@@ -4785,28 +5550,50 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "license": "Apache-2.0",
"dependencies": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
}
},
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "node_modules/webdriver-bidi-protocol": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.9.tgz",
+ "integrity": "sha512-uIYvlRQ0PwtZR1EzHlTMol1G0lAlmOe6wPykF9a77AK3bkpvZHzIVxRE2ThOx5vjy2zISe0zhwf5rzuUfbo1PQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/whatwg-encoding": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
+ "license": "MIT",
+ "dependencies": {
+ "iconv-lite": "0.6.3"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": ">=18"
}
},
- "node_modules/webfontloader": {
- "version": "1.6.28",
- "resolved": "https://registry.npmjs.org/webfontloader/-/webfontloader-1.6.28.tgz",
- "integrity": "sha512-Egb0oFEga6f+nSgasH3E0M405Pzn6y3/9tOVanv/DLfa1YBIgcv90L18YyWnvXkRbIM17v5Kv6IT2N6g1x5tvQ=="
+ "node_modules/whatwg-mimetype": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/when-exit": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.5.tgz",
+ "integrity": "sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==",
+ "license": "MIT"
},
"node_modules/which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -4814,67 +5601,106 @@
"which": "bin/which"
}
},
- "node_modules/widest-line": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz",
- "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==",
+ "node_modules/which-typed-array": {
+ "version": "1.1.19",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
+ "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
+ "license": "MIT",
"dependencies": {
- "string-width": "^5.0.1"
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
+ "for-each": "^0.3.5",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "node_modules/widest-line": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz",
+ "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==",
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
+ "string-width": "^7.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "node_modules/wrap-ansi": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz",
+ "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "string-width": "^7.0.0",
+ "strip-ansi": "^7.1.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "license": "ISC"
},
- "node_modules/write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/wsl-utils": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz",
+ "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==",
+ "license": "MIT",
"dependencies": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
+ "is-wsl": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/xdg-basedir": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz",
"integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==",
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -4886,3618 +5712,136 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "license": "MIT",
"engines": {
"node": ">=0.4"
}
},
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "node_modules/yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
- "dependencies": {
- "buffer-crc32": "~0.2.3",
- "fd-slicer": "~1.1.0"
- }
- },
- "node_modules/ylru": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz",
- "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==",
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "license": "ISC",
"engines": {
- "node": ">= 4.0.0"
+ "node": ">=10"
}
},
- "node_modules/yocto-queue": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
- "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
- "engines": {
- "node": ">=12.20"
+ "node_modules/yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
+ "license": "ISC"
+ },
+ "node_modules/yaml": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
+ "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- }
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.22.13",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
- "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
- "requires": {
- "@babel/highlight": "^7.22.13",
- "chalk": "^2.4.2"
- }
- },
- "@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A=="
- },
- "@babel/highlight": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
- "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
- "requires": {
- "@babel/helper-validator-identifier": "^7.22.20",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
- }
- },
- "@babel/runtime": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz",
- "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==",
- "requires": {
- "regenerator-runtime": "^0.14.0"
- }
- },
- "@gera2ld/jsx-dom": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/@gera2ld/jsx-dom/-/jsx-dom-2.2.2.tgz",
- "integrity": "sha512-EOqf31IATRE6zS1W1EoWmXZhGfLAoO9FIlwTtHduSrBdud4npYBxYAkv8dZ5hudDPwJeeSjn40kbCL4wAzr8dA==",
- "requires": {
- "@babel/runtime": "^7.21.5"
+ "engines": {
+ "node": ">= 14.6"
}
},
- "@pnpm/config.env-replace": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
- "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w=="
- },
- "@pnpm/network.ca-file": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz",
- "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==",
- "requires": {
- "graceful-fs": "4.2.10"
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
}
},
- "@pnpm/npm-conf": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz",
- "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==",
- "requires": {
- "@pnpm/config.env-replace": "^1.1.0",
- "@pnpm/network.ca-file": "^1.0.1",
- "config-chain": "^1.1.11"
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
}
},
- "@sindresorhus/is": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz",
- "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g=="
- },
- "@szmarczak/http-timer": {
+ "node_modules/yargs/node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
- "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
- "requires": {
- "defer-to-connect": "^2.0.1"
- }
- },
- "@types/d3": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz",
- "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==",
- "requires": {
- "@types/d3-array": "*",
- "@types/d3-axis": "*",
- "@types/d3-brush": "*",
- "@types/d3-chord": "*",
- "@types/d3-color": "*",
- "@types/d3-contour": "*",
- "@types/d3-delaunay": "*",
- "@types/d3-dispatch": "*",
- "@types/d3-drag": "*",
- "@types/d3-dsv": "*",
- "@types/d3-ease": "*",
- "@types/d3-fetch": "*",
- "@types/d3-force": "*",
- "@types/d3-format": "*",
- "@types/d3-geo": "*",
- "@types/d3-hierarchy": "*",
- "@types/d3-interpolate": "*",
- "@types/d3-path": "*",
- "@types/d3-polygon": "*",
- "@types/d3-quadtree": "*",
- "@types/d3-random": "*",
- "@types/d3-scale": "*",
- "@types/d3-scale-chromatic": "*",
- "@types/d3-selection": "*",
- "@types/d3-shape": "*",
- "@types/d3-time": "*",
- "@types/d3-time-format": "*",
- "@types/d3-timer": "*",
- "@types/d3-transition": "*",
- "@types/d3-zoom": "*"
- }
- },
- "@types/d3-array": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
- "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg=="
- },
- "@types/d3-axis": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz",
- "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==",
- "requires": {
- "@types/d3-selection": "*"
- }
- },
- "@types/d3-brush": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz",
- "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==",
- "requires": {
- "@types/d3-selection": "*"
- }
- },
- "@types/d3-chord": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz",
- "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg=="
- },
- "@types/d3-color": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
- "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="
- },
- "@types/d3-contour": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz",
- "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==",
- "requires": {
- "@types/d3-array": "*",
- "@types/geojson": "*"
- }
- },
- "@types/d3-delaunay": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
- "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw=="
- },
- "@types/d3-dispatch": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz",
- "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ=="
- },
- "@types/d3-drag": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",
- "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==",
- "requires": {
- "@types/d3-selection": "*"
- }
- },
- "@types/d3-dsv": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",
- "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g=="
- },
- "@types/d3-ease": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
- "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA=="
- },
- "@types/d3-fetch": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",
- "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",
- "requires": {
- "@types/d3-dsv": "*"
- }
- },
- "@types/d3-force": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.9.tgz",
- "integrity": "sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA=="
- },
- "@types/d3-format": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",
- "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g=="
- },
- "@types/d3-geo": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz",
- "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==",
- "requires": {
- "@types/geojson": "*"
- }
- },
- "@types/d3-hierarchy": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.6.tgz",
- "integrity": "sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw=="
- },
- "@types/d3-interpolate": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
- "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
- "requires": {
- "@types/d3-color": "*"
- }
- },
- "@types/d3-path": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.2.tgz",
- "integrity": "sha512-WAIEVlOCdd/NKRYTsqCpOMHQHemKBEINf8YXMYOtXH0GA7SY0dqMB78P3Uhgfy+4X+/Mlw2wDtlETkN6kQUCMA=="
- },
- "@types/d3-polygon": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz",
- "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA=="
- },
- "@types/d3-quadtree": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.5.tgz",
- "integrity": "sha512-Cb1f3jyNBnvMMkf4KBZ7IgAQVWd9yzBwYcrxGqg3aPCUgWELAS+nyeB7r76aqu1e3+CGDjhk4BrWaFBekMwigg=="
- },
- "@types/d3-random": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz",
- "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ=="
- },
- "@types/d3-scale": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz",
- "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==",
- "requires": {
- "@types/d3-time": "*"
- }
- },
- "@types/d3-scale-chromatic": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.2.tgz",
- "integrity": "sha512-kpKNZMDT3OAX6b5ct5nS/mv6LULagnUy4DmS6yyNjclje1qVe7vbjPwY3q1TGz6+Wr2IUkgFatCzqYUl54fHag=="
- },
- "@types/d3-selection": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz",
- "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg=="
- },
- "@types/d3-shape": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.5.tgz",
- "integrity": "sha512-dfEWpZJ1Pdg8meLlICX1M3WBIpxnaH2eQV2eY43Y5ysRJOTAV9f3/R++lgJKFstfrEOE2zdJ0sv5qwr2Bkic6Q==",
- "requires": {
- "@types/d3-path": "*"
- }
- },
- "@types/d3-time": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz",
- "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw=="
- },
- "@types/d3-time-format": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz",
- "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg=="
- },
- "@types/d3-timer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
- "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw=="
- },
- "@types/d3-transition": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz",
- "integrity": "sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==",
- "requires": {
- "@types/d3-selection": "*"
- }
- },
- "@types/d3-zoom": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz",
- "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==",
- "requires": {
- "@types/d3-interpolate": "*",
- "@types/d3-selection": "*"
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "@types/geojson": {
- "version": "7946.0.13",
- "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.13.tgz",
- "integrity": "sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ=="
- },
- "@types/http-cache-semantics": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
- "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA=="
- },
- "@types/normalize-package-data": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA=="
- },
- "accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "requires": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- }
+ "node_modules/yargs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
},
- "ansi-align": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
- "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
- "requires": {
- "string-width": "^4.1.0"
- },
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
"dependencies": {
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- }
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "ansi-regex": {
+ "node_modules/yargs/node_modules/strip-ansi": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
- },
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "^1.9.0"
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
}
},
- "arch": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
- "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ=="
- },
- "archive-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz",
- "integrity": "sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==",
- "requires": {
- "file-type": "^4.2.0"
+ "node_modules/yoctocolors": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz",
+ "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
},
- "dependencies": {
- "file-type": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz",
- "integrity": "sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ=="
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "autolinker": {
- "version": "3.16.2",
- "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-3.16.2.tgz",
- "integrity": "sha512-JiYl7j2Z19F9NdTmirENSUUIIL/9MytEWtmzhfmsKPCp9E+G35Y0UNCMoM9tFigxT59qSc8Ml2dlZXOCVTYwuA==",
- "requires": {
- "tslib": "^2.3.0"
+ "node_modules/zod": {
+ "version": "3.25.76",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
}
- },
- "base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
- },
- "big-integer": {
- "version": "1.6.51",
- "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
- "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg=="
- },
- "bin-build": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz",
- "integrity": "sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==",
- "requires": {
- "decompress": "^4.0.0",
- "download": "^6.2.2",
- "execa": "^0.7.0",
- "p-map-series": "^1.0.0",
- "tempfile": "^2.0.0"
- }
- },
- "bin-check": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz",
- "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==",
- "requires": {
- "execa": "^0.7.0",
- "executable": "^4.1.0"
- }
- },
- "bin-version": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz",
- "integrity": "sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==",
- "requires": {
- "execa": "^1.0.0",
- "find-versions": "^3.0.0"
- },
- "dependencies": {
- "cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
- "requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- }
- },
- "execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
- "requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- }
- },
- "semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
- }
- }
- },
- "bin-version-check": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz",
- "integrity": "sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==",
- "requires": {
- "bin-version": "^3.0.0",
- "semver": "^5.6.0",
- "semver-truncate": "^1.1.2"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
- }
- }
- },
- "bin-wrapper": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz",
- "integrity": "sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==",
- "requires": {
- "bin-check": "^4.1.0",
- "bin-version-check": "^4.0.0",
- "download": "^7.1.0",
- "import-lazy": "^3.1.0",
- "os-filter-obj": "^2.0.0",
- "pify": "^4.0.1"
- },
- "dependencies": {
- "@sindresorhus/is": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz",
- "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow=="
- },
- "cacheable-request": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz",
- "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==",
- "requires": {
- "clone-response": "1.0.2",
- "get-stream": "3.0.0",
- "http-cache-semantics": "3.8.1",
- "keyv": "3.0.0",
- "lowercase-keys": "1.0.0",
- "normalize-url": "2.0.1",
- "responselike": "1.0.2"
- }
- },
- "download": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz",
- "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==",
- "requires": {
- "archive-type": "^4.0.0",
- "caw": "^2.0.1",
- "content-disposition": "^0.5.2",
- "decompress": "^4.2.0",
- "ext-name": "^5.0.0",
- "file-type": "^8.1.0",
- "filenamify": "^2.0.0",
- "get-stream": "^3.0.0",
- "got": "^8.3.1",
- "make-dir": "^1.2.0",
- "p-event": "^2.1.0",
- "pify": "^3.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
- }
- }
- },
- "file-type": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz",
- "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ=="
- },
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
- },
- "got": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz",
- "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==",
- "requires": {
- "@sindresorhus/is": "^0.7.0",
- "cacheable-request": "^2.1.1",
- "decompress-response": "^3.3.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^3.0.0",
- "into-stream": "^3.1.0",
- "is-retry-allowed": "^1.1.0",
- "isurl": "^1.0.0-alpha5",
- "lowercase-keys": "^1.0.0",
- "mimic-response": "^1.0.0",
- "p-cancelable": "^0.4.0",
- "p-timeout": "^2.0.1",
- "pify": "^3.0.0",
- "safe-buffer": "^5.1.1",
- "timed-out": "^4.0.1",
- "url-parse-lax": "^3.0.0",
- "url-to-options": "^1.0.1"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
- }
- }
- },
- "http-cache-semantics": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
- "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w=="
- },
- "import-lazy": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz",
- "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ=="
- },
- "keyv": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz",
- "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==",
- "requires": {
- "json-buffer": "3.0.0"
- }
- },
- "lowercase-keys": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
- "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY="
- },
- "make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
- "requires": {
- "pify": "^3.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
- }
- }
- },
- "normalize-url": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
- "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
- "requires": {
- "prepend-http": "^2.0.0",
- "query-string": "^5.0.1",
- "sort-keys": "^2.0.0"
- }
- },
- "p-cancelable": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz",
- "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ=="
- },
- "p-event": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz",
- "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==",
- "requires": {
- "p-timeout": "^2.0.1"
- }
- },
- "p-timeout": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz",
- "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
- "requires": {
- "p-finally": "^1.0.0"
- }
- },
- "sort-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
- "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=",
- "requires": {
- "is-plain-obj": "^1.0.0"
- }
- }
- }
- },
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
- },
- "bl": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
- "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
- "requires": {
- "readable-stream": "^2.3.5",
- "safe-buffer": "^5.1.1"
- }
- },
- "boxen": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz",
- "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==",
- "requires": {
- "ansi-align": "^3.0.1",
- "camelcase": "^7.0.1",
- "chalk": "^5.2.0",
- "cli-boxes": "^3.0.0",
- "string-width": "^5.1.2",
- "type-fest": "^2.13.0",
- "widest-line": "^4.0.1",
- "wrap-ansi": "^8.1.0"
- },
- "dependencies": {
- "chalk": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
- "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w=="
- },
- "type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA=="
- }
- }
- },
- "bplist-parser": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
- "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
- "requires": {
- "big-integer": "^1.6.44"
- }
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "buffer-alloc": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
- "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
- "requires": {
- "buffer-alloc-unsafe": "^1.1.0",
- "buffer-fill": "^1.0.0"
- }
- },
- "buffer-alloc-unsafe": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
- "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
- },
- "buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="
- },
- "buffer-fill": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
- "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
- },
- "bundle-name": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz",
- "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
- "requires": {
- "run-applescript": "^5.0.0"
- }
- },
- "cache-content-type": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz",
- "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==",
- "requires": {
- "mime-types": "^2.1.18",
- "ylru": "^1.2.0"
- }
- },
- "cacheable-lookup": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",
- "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w=="
- },
- "cacheable-request": {
- "version": "10.2.14",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz",
- "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==",
- "requires": {
- "@types/http-cache-semantics": "^4.0.2",
- "get-stream": "^6.0.1",
- "http-cache-semantics": "^4.1.1",
- "keyv": "^4.5.3",
- "mimic-response": "^4.0.0",
- "normalize-url": "^8.0.0",
- "responselike": "^3.0.0"
- },
- "dependencies": {
- "get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
- },
- "lowercase-keys": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
- "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ=="
- },
- "mimic-response": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",
- "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg=="
- },
- "responselike": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
- "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==",
- "requires": {
- "lowercase-keys": "^3.0.0"
- }
- }
- }
- },
- "camelcase": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz",
- "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw=="
- },
- "caw": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz",
- "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==",
- "requires": {
- "get-proxy": "^2.0.0",
- "isurl": "^1.0.0-alpha5",
- "tunnel-agent": "^0.6.0",
- "url-to-options": "^1.0.1"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "requires": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "fsevents": "~2.3.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"
- }
- },
- "ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="
- },
- "cli-boxes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz",
- "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g=="
- },
- "clone-response": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
- "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
- "requires": {
- "mimic-response": "^1.0.0"
- }
- },
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
- },
- "commander": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
- "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="
- },
- "config-chain": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
- "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
- "requires": {
- "ini": "^1.3.4",
- "proto-list": "~1.2.1"
- },
- "dependencies": {
- "ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
- }
- }
- },
- "configstore": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz",
- "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==",
- "requires": {
- "dot-prop": "^6.0.1",
- "graceful-fs": "^4.2.6",
- "unique-string": "^3.0.0",
- "write-file-atomic": "^3.0.3",
- "xdg-basedir": "^5.0.1"
- }
- },
- "content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "requires": {
- "safe-buffer": "5.2.1"
- }
- },
- "content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
- },
- "cookies": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
- "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
- "requires": {
- "depd": "~2.0.0",
- "keygrip": "~1.1.0"
- }
- },
- "core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==",
- "requires": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- },
- "dependencies": {
- "lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
- }
- }
- },
- "crypto-random-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
- "requires": {
- "type-fest": "^1.0.1"
- },
- "dependencies": {
- "type-fest": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA=="
- }
- }
- },
- "d3": {
- "version": "7.8.5",
- "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz",
- "integrity": "sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==",
- "requires": {
- "d3-array": "3",
- "d3-axis": "3",
- "d3-brush": "3",
- "d3-chord": "3",
- "d3-color": "3",
- "d3-contour": "4",
- "d3-delaunay": "6",
- "d3-dispatch": "3",
- "d3-drag": "3",
- "d3-dsv": "3",
- "d3-ease": "3",
- "d3-fetch": "3",
- "d3-force": "3",
- "d3-format": "3",
- "d3-geo": "3",
- "d3-hierarchy": "3",
- "d3-interpolate": "3",
- "d3-path": "3",
- "d3-polygon": "3",
- "d3-quadtree": "3",
- "d3-random": "3",
- "d3-scale": "4",
- "d3-scale-chromatic": "3",
- "d3-selection": "3",
- "d3-shape": "3",
- "d3-time": "3",
- "d3-time-format": "4",
- "d3-timer": "3",
- "d3-transition": "3",
- "d3-zoom": "3"
- }
- },
- "d3-array": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
- "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
- "requires": {
- "internmap": "1 - 2"
- }
- },
- "d3-axis": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
- "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw=="
- },
- "d3-brush": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
- "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
- "requires": {
- "d3-dispatch": "1 - 3",
- "d3-drag": "2 - 3",
- "d3-interpolate": "1 - 3",
- "d3-selection": "3",
- "d3-transition": "3"
- }
- },
- "d3-chord": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
- "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
- "requires": {
- "d3-path": "1 - 3"
- }
- },
- "d3-color": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
- "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="
- },
- "d3-contour": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
- "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
- "requires": {
- "d3-array": "^3.2.0"
- }
- },
- "d3-delaunay": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
- "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
- "requires": {
- "delaunator": "5"
- }
- },
- "d3-dispatch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
- "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg=="
- },
- "d3-drag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
- "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
- "requires": {
- "d3-dispatch": "1 - 3",
- "d3-selection": "3"
- }
- },
- "d3-dsv": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
- "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
- "requires": {
- "commander": "7",
- "iconv-lite": "0.6",
- "rw": "1"
- },
- "dependencies": {
- "commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="
- }
- }
- },
- "d3-ease": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
- "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w=="
- },
- "d3-fetch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
- "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
- "requires": {
- "d3-dsv": "1 - 3"
- }
- },
- "d3-flextree": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/d3-flextree/-/d3-flextree-2.1.2.tgz",
- "integrity": "sha512-gJiHrx5uTTHq44bjyIb3xpbmmdZcWLYPKeO9EPVOq8EylMFOiH2+9sWqKAiQ4DcFuOZTAxPOQyv0Rnmji/g15A==",
- "requires": {
- "d3-hierarchy": "^1.1.5"
- },
- "dependencies": {
- "d3-hierarchy": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz",
- "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ=="
- }
- }
- },
- "d3-force": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
- "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
- "requires": {
- "d3-dispatch": "1 - 3",
- "d3-quadtree": "1 - 3",
- "d3-timer": "1 - 3"
- }
- },
- "d3-format": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
- "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA=="
- },
- "d3-geo": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz",
- "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==",
- "requires": {
- "d3-array": "2.5.0 - 3"
- }
- },
- "d3-hierarchy": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
- "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA=="
- },
- "d3-interpolate": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
- "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
- "requires": {
- "d3-color": "1 - 3"
- }
- },
- "d3-path": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
- "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ=="
- },
- "d3-polygon": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
- "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg=="
- },
- "d3-quadtree": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
- "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw=="
- },
- "d3-random": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
- "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ=="
- },
- "d3-scale": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
- "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
- "requires": {
- "d3-array": "2.10.0 - 3",
- "d3-format": "1 - 3",
- "d3-interpolate": "1.2.0 - 3",
- "d3-time": "2.1.1 - 3",
- "d3-time-format": "2 - 4"
- }
- },
- "d3-scale-chromatic": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz",
- "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==",
- "requires": {
- "d3-color": "1 - 3",
- "d3-interpolate": "1 - 3"
- }
- },
- "d3-selection": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
- "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ=="
- },
- "d3-shape": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
- "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
- "requires": {
- "d3-path": "^3.1.0"
- }
- },
- "d3-time": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
- "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
- "requires": {
- "d3-array": "2 - 3"
- }
- },
- "d3-time-format": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
- "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
- "requires": {
- "d3-time": "1 - 3"
- }
- },
- "d3-timer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
- "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="
- },
- "d3-transition": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
- "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
- "requires": {
- "d3-color": "1 - 3",
- "d3-dispatch": "1 - 3",
- "d3-ease": "1 - 3",
- "d3-interpolate": "1 - 3",
- "d3-timer": "1 - 3"
- }
- },
- "d3-zoom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
- "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
- "requires": {
- "d3-dispatch": "1 - 3",
- "d3-drag": "2 - 3",
- "d3-interpolate": "1 - 3",
- "d3-selection": "2 - 3",
- "d3-transition": "2 - 3"
- }
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "decode-uri-component": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
- "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="
- },
- "decompress": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz",
- "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==",
- "requires": {
- "decompress-tar": "^4.0.0",
- "decompress-tarbz2": "^4.0.0",
- "decompress-targz": "^4.0.0",
- "decompress-unzip": "^4.0.1",
- "graceful-fs": "^4.1.10",
- "make-dir": "^1.0.0",
- "pify": "^2.3.0",
- "strip-dirs": "^2.0.0"
- },
- "dependencies": {
- "make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
- "requires": {
- "pify": "^3.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
- }
- }
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
- }
- }
- },
- "decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
- "requires": {
- "mimic-response": "^1.0.0"
- }
- },
- "decompress-tar": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz",
- "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==",
- "requires": {
- "file-type": "^5.2.0",
- "is-stream": "^1.1.0",
- "tar-stream": "^1.5.2"
- }
- },
- "decompress-tarbz2": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz",
- "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==",
- "requires": {
- "decompress-tar": "^4.1.0",
- "file-type": "^6.1.0",
- "is-stream": "^1.1.0",
- "seek-bzip": "^1.0.5",
- "unbzip2-stream": "^1.0.9"
- },
- "dependencies": {
- "file-type": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz",
- "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg=="
- }
- }
- },
- "decompress-targz": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz",
- "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==",
- "requires": {
- "decompress-tar": "^4.1.1",
- "file-type": "^5.2.0",
- "is-stream": "^1.1.0"
- }
- },
- "decompress-unzip": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz",
- "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==",
- "requires": {
- "file-type": "^3.8.0",
- "get-stream": "^2.2.0",
- "pify": "^2.3.0",
- "yauzl": "^2.4.2"
- },
- "dependencies": {
- "file-type": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
- "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA=="
- },
- "get-stream": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
- "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=",
- "requires": {
- "object-assign": "^4.0.1",
- "pinkie-promise": "^2.0.0"
- }
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
- }
- }
- },
- "deep-equal": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
- "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw=="
- },
- "deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
- },
- "default-browser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz",
- "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
- "requires": {
- "bundle-name": "^3.0.0",
- "default-browser-id": "^3.0.0",
- "execa": "^7.1.1",
- "titleize": "^3.0.0"
- },
- "dependencies": {
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "execa": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
- "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
- "requires": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.1",
- "human-signals": "^4.3.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^3.0.7",
- "strip-final-newline": "^3.0.0"
- }
- },
- "get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
- },
- "is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA=="
- },
- "npm-run-path": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
- "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
- "requires": {
- "path-key": "^4.0.0"
- },
- "dependencies": {
- "path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ=="
- }
- }
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
- "default-browser-id": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
- "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
- "requires": {
- "bplist-parser": "^0.2.0",
- "untildify": "^4.0.0"
- }
- },
- "defer-to-connect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
- "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg=="
- },
- "define-lazy-prop": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
- "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg=="
- },
- "delaunator": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz",
- "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==",
- "requires": {
- "robust-predicates": "^3.0.0"
- }
- },
- "delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
- },
- "depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
- },
- "destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
- },
- "dot-prop": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
- "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
- "requires": {
- "is-obj": "^2.0.0"
- }
- },
- "download": {
- "version": "6.2.5",
- "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz",
- "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==",
- "requires": {
- "caw": "^2.0.0",
- "content-disposition": "^0.5.2",
- "decompress": "^4.0.0",
- "ext-name": "^5.0.0",
- "file-type": "5.2.0",
- "filenamify": "^2.0.0",
- "get-stream": "^3.0.0",
- "got": "^7.0.0",
- "make-dir": "^1.0.0",
- "p-event": "^1.0.0",
- "pify": "^3.0.0"
- },
- "dependencies": {
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
- },
- "got": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
- "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
- "requires": {
- "decompress-response": "^3.2.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^3.0.0",
- "is-plain-obj": "^1.1.0",
- "is-retry-allowed": "^1.0.0",
- "is-stream": "^1.0.0",
- "isurl": "^1.0.0-alpha5",
- "lowercase-keys": "^1.0.0",
- "p-cancelable": "^0.3.0",
- "p-timeout": "^1.1.1",
- "safe-buffer": "^5.0.1",
- "timed-out": "^4.0.0",
- "url-parse-lax": "^1.0.0",
- "url-to-options": "^1.0.1"
- }
- },
- "make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
- "requires": {
- "pify": "^3.0.0"
- }
- },
- "p-cancelable": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
- "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw=="
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
- },
- "prepend-http": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
- },
- "url-parse-lax": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
- "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
- "requires": {
- "prepend-http": "^1.0.1"
- }
- }
- }
- },
- "duplexer3": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
- "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
- },
- "eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
- },
- "ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
- },
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
- },
- "end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "requires": {
- "once": "^1.4.0"
- }
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
- "escape-goat": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz",
- "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg=="
- },
- "escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
- },
- "execa": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==",
- "requires": {
- "cross-spawn": "^5.0.1",
- "get-stream": "^3.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- },
- "dependencies": {
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
- }
- }
- },
- "executable": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
- "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
- "requires": {
- "pify": "^2.2.0"
- },
- "dependencies": {
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
- }
- }
- },
- "ext-list": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
- "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
- "requires": {
- "mime-db": "^1.28.0"
- }
- },
- "ext-name": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz",
- "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
- "requires": {
- "ext-list": "^2.0.0",
- "sort-keys-length": "^1.0.0"
- }
- },
- "fd-slicer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
- "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
- "requires": {
- "pend": "~1.2.0"
- }
- },
- "file-type": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
- "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ=="
- },
- "filename-reserved-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
- "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ=="
- },
- "filenamify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz",
- "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==",
- "requires": {
- "filename-reserved-regex": "^2.0.0",
- "strip-outer": "^1.0.0",
- "trim-repeated": "^1.0.0"
- }
- },
- "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==",
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "find-up": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
- "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
- "requires": {
- "locate-path": "^7.1.0",
- "path-exists": "^5.0.0"
- }
- },
- "find-versions": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz",
- "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==",
- "requires": {
- "semver-regex": "^2.0.0"
- }
- },
- "form-data-encoder": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
- "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw=="
- },
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
- },
- "from2": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
- "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
- "requires": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0"
- }
- },
- "fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
- },
- "fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "optional": true
- },
- "function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
- },
- "get-proxy": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz",
- "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==",
- "requires": {
- "npm-conf": "^1.1.0"
- }
- },
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
- "requires": {
- "pump": "^3.0.0"
- }
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "global-dirs": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
- "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
- "requires": {
- "ini": "2.0.0"
- }
- },
- "got": {
- "version": "12.6.1",
- "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz",
- "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==",
- "requires": {
- "@sindresorhus/is": "^5.2.0",
- "@szmarczak/http-timer": "^5.0.1",
- "cacheable-lookup": "^7.0.0",
- "cacheable-request": "^10.2.8",
- "decompress-response": "^6.0.0",
- "form-data-encoder": "^2.1.2",
- "get-stream": "^6.0.1",
- "http2-wrapper": "^2.1.10",
- "lowercase-keys": "^3.0.0",
- "p-cancelable": "^3.0.0",
- "responselike": "^3.0.0"
- },
- "dependencies": {
- "decompress-response": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
- "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
- "requires": {
- "mimic-response": "^3.1.0"
- }
- },
- "get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
- },
- "lowercase-keys": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
- "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ=="
- },
- "mimic-response": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
- "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
- },
- "responselike": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
- "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==",
- "requires": {
- "lowercase-keys": "^3.0.0"
- }
- }
- }
- },
- "graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
- },
- "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=="
- },
- "has-symbol-support-x": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
- "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw=="
- },
- "has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
- },
- "has-to-string-tag-x": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
- "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
- "requires": {
- "has-symbol-support-x": "^1.4.1"
- }
- },
- "has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
- "requires": {
- "has-symbols": "^1.0.2"
- }
- },
- "has-yarn": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz",
- "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA=="
- },
- "hasown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
- "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
- "requires": {
- "function-bind": "^1.1.2"
- }
- },
- "highlight.js": {
- "version": "11.9.0",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz",
- "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw=="
- },
- "hosted-git-info": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz",
- "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
- "requires": {
- "lru-cache": "^10.0.1"
- }
- },
- "http-assert": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz",
- "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==",
- "requires": {
- "deep-equal": "~1.0.1",
- "http-errors": "~1.8.0"
- }
- },
- "http-cache-semantics": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
- "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
- },
- "http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
- },
- "dependencies": {
- "depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="
- }
- }
- },
- "http2-wrapper": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
- "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==",
- "requires": {
- "quick-lru": "^5.1.1",
- "resolve-alpn": "^1.2.0"
- }
- },
- "human-signals": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
- "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ=="
- },
- "iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- }
- },
- "ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
- },
- "import-lazy": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
- "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw=="
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "ini": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
- "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA=="
- },
- "internmap": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
- "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="
- },
- "into-stream": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz",
- "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=",
- "requires": {
- "from2": "^2.1.1",
- "p-is-promise": "^1.1.0"
- }
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
- },
- "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==",
- "requires": {
- "binary-extensions": "^2.0.0"
- }
- },
- "is-ci": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
- "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
- "requires": {
- "ci-info": "^3.2.0"
- }
- },
- "is-core-module": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
- "requires": {
- "hasown": "^2.0.0"
- }
- },
- "is-docker": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
- "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "is-generator-function": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
- "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
- "requires": {
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-inside-container": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
- "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
- "requires": {
- "is-docker": "^3.0.0"
- }
- },
- "is-installed-globally": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
- "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
- "requires": {
- "global-dirs": "^3.0.0",
- "is-path-inside": "^3.0.2"
- }
- },
- "is-natural-number": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
- "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg="
- },
- "is-npm": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz",
- "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ=="
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
- },
- "is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
- },
- "is-object": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz",
- "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA=="
- },
- "is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
- },
- "is-plain-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
- },
- "is-retry-allowed": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
- "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg=="
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
- },
- "is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
- "requires": {
- "is-docker": "^2.0.0"
- },
- "dependencies": {
- "is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
- }
- }
- },
- "is-yarn-global": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz",
- "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ=="
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
- },
- "isurl": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
- "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
- "requires": {
- "has-to-string-tag-x": "^1.2.0",
- "is-object": "^1.0.1"
- }
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "json-buffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
- "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
- },
- "json-parse-even-better-errors": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz",
- "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA=="
- },
- "katex": {
- "version": "0.16.10",
- "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz",
- "integrity": "sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==",
- "requires": {
- "commander": "^8.3.0"
- },
- "dependencies": {
- "commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
- }
- }
- },
- "keygrip": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
- "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
- "requires": {
- "tsscmp": "1.0.6"
- }
- },
- "keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "requires": {
- "json-buffer": "3.0.1"
- },
- "dependencies": {
- "json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
- }
- }
- },
- "koa": {
- "version": "2.14.2",
- "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.2.tgz",
- "integrity": "sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==",
- "requires": {
- "accepts": "^1.3.5",
- "cache-content-type": "^1.0.0",
- "content-disposition": "~0.5.2",
- "content-type": "^1.0.4",
- "cookies": "~0.8.0",
- "debug": "^4.3.2",
- "delegates": "^1.0.0",
- "depd": "^2.0.0",
- "destroy": "^1.0.4",
- "encodeurl": "^1.0.2",
- "escape-html": "^1.0.3",
- "fresh": "~0.5.2",
- "http-assert": "^1.3.0",
- "http-errors": "^1.6.3",
- "is-generator-function": "^1.0.7",
- "koa-compose": "^4.1.0",
- "koa-convert": "^2.0.0",
- "on-finished": "^2.3.0",
- "only": "~0.0.2",
- "parseurl": "^1.3.2",
- "statuses": "^1.5.0",
- "type-is": "^1.6.16",
- "vary": "^1.1.2"
- }
- },
- "koa-compose": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
- "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw=="
- },
- "koa-convert": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz",
- "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==",
- "requires": {
- "co": "^4.6.0",
- "koa-compose": "^4.1.0"
- }
- },
- "latest-version": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz",
- "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==",
- "requires": {
- "package-json": "^8.1.0"
- }
- },
- "lines-and-columns": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz",
- "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A=="
- },
- "locate-path": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
- "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
- "requires": {
- "p-locate": "^6.0.0"
- }
- },
- "lowercase-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
- },
- "lru-cache": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.2.tgz",
- "integrity": "sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==",
- "requires": {
- "semver": "^7.3.5"
- }
- },
- "markmap-cli": {
- "version": "0.15.4",
- "resolved": "https://registry.npmjs.org/markmap-cli/-/markmap-cli-0.15.4.tgz",
- "integrity": "sha512-CpyQ7aBoL8CKGl8Kn9pKqA3TDiYBSeba5UyuWVdZXG47sqgdx2VaV/ybh80flkmamkeVURcbezYe9K4M1JTo+g==",
- "requires": {
- "@babel/runtime": "^7.22.6",
- "chokidar": "^3.5.3",
- "commander": "^11.0.0",
- "d3": "^7.8.5",
- "highlight.js": "^11.8.0",
- "katex": "^0.16.8",
- "koa": "^2.14.2",
- "markmap-common": "0.15.3",
- "markmap-lib": "0.15.4",
- "markmap-toolbar": "0.15.4",
- "markmap-view": "0.15.4",
- "open": "^9.1.0",
- "pkg-dir": "^7.0.0",
- "prismjs": "^1.29.0",
- "read-pkg-up": "^10.0.0",
- "update-notifier": "^6.0.2",
- "webfontloader": "^1.6.28"
- }
- },
- "markmap-common": {
- "version": "0.15.3",
- "resolved": "https://registry.npmjs.org/markmap-common/-/markmap-common-0.15.3.tgz",
- "integrity": "sha512-a40FfdzFEKoyIhd5KDsV6FfkM55WWi2spRq/cUCsOZd8e4PAHMc9auCEjdxTWRiS2EGzET9sPpvyAmPSTva+/w==",
- "requires": {
- "@babel/runtime": "^7.22.6",
- "@gera2ld/jsx-dom": "^2.2.2",
- "npm2url": "^0.2.1"
- }
- },
- "markmap-lib": {
- "version": "0.15.4",
- "resolved": "https://registry.npmjs.org/markmap-lib/-/markmap-lib-0.15.4.tgz",
- "integrity": "sha512-uz/IedoGXoDD6eXpmyD+1vx+g3rEzomX1uwnXOxnigXC9ApXG67lUhA4ffNlucgoV4/BLA2m6KyVvswECjljVQ==",
- "requires": {
- "@babel/runtime": "^7.22.6",
- "highlight.js": "^11.8.0",
- "js-yaml": "^4.1.0",
- "katex": "^0.16.8",
- "prismjs": "^1.29.0",
- "remarkable": "^2.0.1",
- "remarkable-katex": "^1.2.1"
- }
- },
- "markmap-toolbar": {
- "version": "0.15.4",
- "resolved": "https://registry.npmjs.org/markmap-toolbar/-/markmap-toolbar-0.15.4.tgz",
- "integrity": "sha512-g95ne4YXJ9qptQAzoTyL0a1Pj/1ZNWzGWkbV/9w537LRTKJndQQ2FN71tCZQjAK95zri3cM0bJDv8krK7w4Q5w==",
- "requires": {
- "@babel/runtime": "^7.22.6",
- "@gera2ld/jsx-dom": "^2.2.2"
- }
- },
- "markmap-view": {
- "version": "0.15.4",
- "resolved": "https://registry.npmjs.org/markmap-view/-/markmap-view-0.15.4.tgz",
- "integrity": "sha512-6PJnoPZHiQIb0YE+fg0Ht1ptEXgf9QOOTBEiC2DrzjAbZ3rrRa2g+0VhpZ+9vSzDsUa+m/IGz4xkiNepuPfs5w==",
- "requires": {
- "@babel/runtime": "^7.22.6",
- "@gera2ld/jsx-dom": "^2.2.2",
- "@types/d3": "^7.4.0",
- "d3": "^7.8.5",
- "d3-flextree": "^2.1.2"
- }
- },
- "media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
- },
- "merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
- },
- "mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
- },
- "mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "requires": {
- "mime-db": "1.52.0"
- }
- },
- "mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw=="
- },
- "mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
- },
- "minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
- },
- "nice-try": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
- },
- "normalize-package-data": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz",
- "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==",
- "requires": {
- "hosted-git-info": "^7.0.0",
- "is-core-module": "^2.8.1",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- }
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
- },
- "normalize-url": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
- "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw=="
- },
- "npm-conf": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
- "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
- "requires": {
- "config-chain": "^1.1.11",
- "pify": "^3.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
- }
- }
- },
- "npm-run-path": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
- "requires": {
- "path-key": "^2.0.0"
- }
- },
- "npm2url": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/npm2url/-/npm2url-0.2.1.tgz",
- "integrity": "sha512-Ls7mMyud1Kk0EisqsTt2TPtM7gLRvgmvDxOg3FPI5zjfhQ+ZFNBXX2K9VT7vo+HqUsz/uCiIxkcO0SvIuneVug=="
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- },
- "on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1"
- }
- },
- "onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "requires": {
- "mimic-fn": "^4.0.0"
- }
- },
- "only": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz",
- "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ=="
- },
- "open": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz",
- "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
- "requires": {
- "default-browser": "^4.0.0",
- "define-lazy-prop": "^3.0.0",
- "is-inside-container": "^1.0.0",
- "is-wsl": "^2.2.0"
- }
- },
- "optipng-bin": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-9.0.0.tgz",
- "integrity": "sha512-uDcmcNK4MRSM5ezLThUPI7fc9ZxlQMqnxhWxIc7foCcUZZ2LvzbcJwwVEsU78tC3t9B68dwE4y/m6at10Z93UA==",
- "requires": {
- "bin-build": "^3.0.0",
- "bin-wrapper": "^4.0.0"
- }
- },
- "os-filter-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz",
- "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==",
- "requires": {
- "arch": "^2.1.0"
- }
- },
- "p-cancelable": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
- "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw=="
- },
- "p-event": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz",
- "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=",
- "requires": {
- "p-timeout": "^1.1.1"
- }
- },
- "p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
- },
- "p-is-promise": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
- "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4="
- },
- "p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
- "requires": {
- "yocto-queue": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
- "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
- "requires": {
- "p-limit": "^4.0.0"
- }
- },
- "p-map-series": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz",
- "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=",
- "requires": {
- "p-reduce": "^1.0.0"
- }
- },
- "p-reduce": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz",
- "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo="
- },
- "p-timeout": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
- "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
- "requires": {
- "p-finally": "^1.0.0"
- }
- },
- "package-json": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz",
- "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==",
- "requires": {
- "got": "^12.1.0",
- "registry-auth-token": "^5.0.1",
- "registry-url": "^6.0.0",
- "semver": "^7.3.7"
- }
- },
- "parse-json": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz",
- "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==",
- "requires": {
- "@babel/code-frame": "^7.21.4",
- "error-ex": "^1.3.2",
- "json-parse-even-better-errors": "^3.0.0",
- "lines-and-columns": "^2.0.3",
- "type-fest": "^3.8.0"
- },
- "dependencies": {
- "type-fest": {
- "version": "3.13.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
- "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g=="
- }
- }
- },
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
- },
- "path-exists": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ=="
- },
- "path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
- },
- "pend": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
- },
- "picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "requires": {
- "pinkie": "^2.0.0"
- }
- },
- "pkg-dir": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
- "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
- "requires": {
- "find-up": "^6.3.0"
- }
- },
- "prepend-http": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
- "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
- },
- "prismjs": {
- "version": "1.29.0",
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
- "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q=="
- },
- "process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "proto-list": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
- "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk="
- },
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
- },
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "pupa": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz",
- "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==",
- "requires": {
- "escape-goat": "^4.0.0"
- }
- },
- "query-string": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
- "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
- "requires": {
- "decode-uri-component": "^0.2.0",
- "object-assign": "^4.1.0",
- "strict-uri-encode": "^1.0.0"
- }
- },
- "quick-lru": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
- "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
- },
- "rc": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
- "requires": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- },
- "dependencies": {
- "ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
- }
- }
- },
- "read-pkg": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz",
- "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==",
- "requires": {
- "@types/normalize-package-data": "^2.4.1",
- "normalize-package-data": "^6.0.0",
- "parse-json": "^7.0.0",
- "type-fest": "^4.2.0"
- }
- },
- "read-pkg-up": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz",
- "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==",
- "requires": {
- "find-up": "^6.3.0",
- "read-pkg": "^8.1.0",
- "type-fest": "^4.2.0"
- }
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- }
- }
- },
- "readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "requires": {
- "picomatch": "^2.2.1"
- }
- },
- "regenerator-runtime": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
- "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
- },
- "registry-auth-token": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz",
- "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==",
- "requires": {
- "@pnpm/npm-conf": "^2.1.0"
- }
- },
- "registry-url": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz",
- "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==",
- "requires": {
- "rc": "1.2.8"
- }
- },
- "remarkable": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz",
- "integrity": "sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA==",
- "requires": {
- "argparse": "^1.0.10",
- "autolinker": "^3.11.0"
- },
- "dependencies": {
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- }
- }
- },
- "remarkable-katex": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/remarkable-katex/-/remarkable-katex-1.2.1.tgz",
- "integrity": "sha512-Y1VquJBZnaVsfsVcKW2hmjT+pDL7mp8l5WAVlvuvViltrdok2m1AIKmJv8SsH+mBY84PoMw67t3kTWw1dIm8+g=="
- },
- "resolve-alpn": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
- "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
- },
- "responselike": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
- "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
- "requires": {
- "lowercase-keys": "^1.0.0"
- }
- },
- "robust-predicates": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
- "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg=="
- },
- "run-applescript": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz",
- "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
- "requires": {
- "execa": "^5.0.0"
- },
- "dependencies": {
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "requires": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- }
- },
- "get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
- },
- "human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
- },
- "is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
- },
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
- },
- "npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "requires": {
- "path-key": "^3.0.0"
- }
- },
- "onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "requires": {
- "mimic-fn": "^2.1.0"
- }
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
- },
- "strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
- "rw": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
- "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "seek-bzip": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz",
- "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==",
- "requires": {
- "commander": "^2.8.1"
- },
- "dependencies": {
- "commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
- }
- }
- },
- "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==",
- "requires": {
- "lru-cache": "^6.0.0"
- },
- "dependencies": {
- "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==",
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "semver-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz",
- "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==",
- "requires": {
- "semver": "^7.3.5"
- }
- },
- "semver-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
- "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw=="
- },
- "semver-truncate": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz",
- "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=",
- "requires": {
- "semver": "^5.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
- }
- }
- },
- "setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "requires": {
- "shebang-regex": "^1.0.0"
- }
- },
- "shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
- },
- "signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
- },
- "sort-keys": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
- "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
- "requires": {
- "is-plain-obj": "^1.0.0"
- }
- },
- "sort-keys-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
- "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=",
- "requires": {
- "sort-keys": "^1.0.0"
- }
- },
- "spdx-correct": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
- "requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
- },
- "spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-license-ids": {
- "version": "3.0.16",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
- "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw=="
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
- },
- "statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="
- },
- "strict-uri-encode": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- }
- }
- },
- "string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "requires": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- }
- },
- "strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "requires": {
- "ansi-regex": "^6.0.1"
- }
- },
- "strip-dirs": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz",
- "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==",
- "requires": {
- "is-natural-number": "^4.0.1"
- }
- },
- "strip-eof": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
- },
- "strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw=="
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="
- },
- "strip-outer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
- "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
- "requires": {
- "escape-string-regexp": "^1.0.2"
- }
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "requires": {
- "has-flag": "^3.0.0"
- }
- },
- "tar-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
- "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
- "requires": {
- "bl": "^1.0.0",
- "buffer-alloc": "^1.2.0",
- "end-of-stream": "^1.0.0",
- "fs-constants": "^1.0.0",
- "readable-stream": "^2.3.0",
- "to-buffer": "^1.1.1",
- "xtend": "^4.0.0"
- }
- },
- "temp-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
- "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0="
- },
- "tempfile": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz",
- "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=",
- "requires": {
- "temp-dir": "^1.0.0",
- "uuid": "^3.0.1"
- }
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
- },
- "timed-out": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
- },
- "titleize": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
- "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ=="
- },
- "to-buffer": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
- "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg=="
- },
- "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==",
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
- },
- "trim-repeated": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
- "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
- "requires": {
- "escape-string-regexp": "^1.0.2"
- }
- },
- "tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
- },
- "tsscmp": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
- "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "type-fest": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.1.tgz",
- "integrity": "sha512-ShaaYnjf+0etG8W/FumARKMjjIToy/haCaTjN2dvcewOSoNqCQzdgG7m2JVOlM5qndGTHjkvsrWZs+k/2Z7E0Q=="
- },
- "type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- }
- },
- "typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "requires": {
- "is-typedarray": "^1.0.0"
- }
- },
- "unbzip2-stream": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
- "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
- "requires": {
- "buffer": "^5.2.1",
- "through": "^2.3.8"
- }
- },
- "unique-string": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
- "requires": {
- "crypto-random-string": "^4.0.0"
- }
- },
- "untildify": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
- "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw=="
- },
- "update-notifier": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz",
- "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==",
- "requires": {
- "boxen": "^7.0.0",
- "chalk": "^5.0.1",
- "configstore": "^6.0.0",
- "has-yarn": "^3.0.0",
- "import-lazy": "^4.0.0",
- "is-ci": "^3.0.1",
- "is-installed-globally": "^0.4.0",
- "is-npm": "^6.0.0",
- "is-yarn-global": "^0.4.0",
- "latest-version": "^7.0.0",
- "pupa": "^3.1.0",
- "semver": "^7.3.7",
- "semver-diff": "^4.0.0",
- "xdg-basedir": "^5.1.0"
- },
- "dependencies": {
- "chalk": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
- "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w=="
- }
- }
- },
- "url-parse-lax": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
- "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
- "requires": {
- "prepend-http": "^2.0.0"
- }
- },
- "url-to-options": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
- "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k="
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
- },
- "webfontloader": {
- "version": "1.6.28",
- "resolved": "https://registry.npmjs.org/webfontloader/-/webfontloader-1.6.28.tgz",
- "integrity": "sha512-Egb0oFEga6f+nSgasH3E0M405Pzn6y3/9tOVanv/DLfa1YBIgcv90L18YyWnvXkRbIM17v5Kv6IT2N6g1x5tvQ=="
- },
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "widest-line": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz",
- "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==",
- "requires": {
- "string-width": "^5.0.1"
- }
- },
- "wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "requires": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="
- }
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
- "requires": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
- }
- },
- "xdg-basedir": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz",
- "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ=="
- },
- "xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
- "requires": {
- "buffer-crc32": "~0.2.3",
- "fd-slicer": "~1.1.0"
- }
- },
- "ylru": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz",
- "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA=="
- },
- "yocto-queue": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
- "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g=="
}
}
}
diff --git a/pattern-categorization/package.json b/pattern-categorization/package.json
index f60cf4b82..a04dddbf4 100644
--- a/pattern-categorization/package.json
+++ b/pattern-categorization/package.json
@@ -3,8 +3,9 @@
"version": "0.0.1",
"description": "Generate mindmap of the patterns in our book, using markmap.",
"dependencies": {
- "markmap-cli": ">=0.15.4",
- "optipng-bin": "^9.0.0"
+ "markmap-cli": ">=0.18.12",
+ "optipng-bin": "^9.0.0",
+ "pageres-cli": "^9.0.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
diff --git a/pattern-categorization/pt-br/innersource-program-mind-map.html b/pattern-categorization/pt-br/innersource-program-mind-map.html
index 8481a780d..ff090a15e 100644
--- a/pattern-categorization/pt-br/innersource-program-mind-map.html
+++ b/pattern-categorization/pt-br/innersource-program-mind-map.html
@@ -1,28 +1,43 @@
-
+
-
-
-
+
+
+
Markmap
-
+
diff --git a/pattern-categorization/pt-br/innersource-program-mind-map.png b/pattern-categorization/pt-br/innersource-program-mind-map.png
index c8ac9d7ea..8e127fa4d 100644
Binary files a/pattern-categorization/pt-br/innersource-program-mind-map.png and b/pattern-categorization/pt-br/innersource-program-mind-map.png differ
diff --git a/patterns/1-initial/ai-code-generation-context.md b/patterns/1-initial/ai-code-generation-context.md
new file mode 100644
index 000000000..7bc88a5f6
--- /dev/null
+++ b/patterns/1-initial/ai-code-generation-context.md
@@ -0,0 +1,164 @@
+## Title
+
+AI Code Generation Context
+
+## Patlet
+
+AI tools generate code that diverges from project standards and architectural patterns. Provide an AI Code Generation Context within the repositories to guide AI tools in producing contributions that align with existing project conventions, reducing review friction and maintaining code consistency.
+
+## Problem
+
+With the growing use of AI tools (like GitHub Copilot, ChatGPT, or custom LLMs), InnerSource contributors are increasingly using generative AI to write code. However, without project-specific context, these tools often produce code that diverges from the project's architectural patterns, naming conventions, or quality standards. This leads to friction during reviews, inconsistent codebases, and technical debts or additional burden on maintainers.
+
+## Context
+
+* InnerSource adoption is in place across the organization.
+* Developers are encouraged to use AI tools to improve their productivity.
+* Contributors may not be familiar with or fail to meticulously prompt when generating code through AI, using the target codebase's idioms, architecture, or constraints.
+* Maintainers want to empower contributors using AI while preserving code consistency and maintainability.
+* Multiple teams are contributing to shared repositories with varying levels of familiarity with project standards.
+* Code review processes are becoming bottlenecked by AI-generated code that requires significant rework.
+
+## Forces
+
+* **AI Model Limitations**: AI models generate code based on generalized training data, not project-specific patterns, leading to generic solutions that may not fit the project's architecture
+* **Knowledge Gap**: New contributors using AI tools might unknowingly bypass existing architectural norms, coding standards, and established patterns
+* **Review Overhead**: AI-assisted PRs can significantly increase review load if not aligned with existing practices, as maintainers must spend time explaining and correcting deviations
+* **Productivity vs. Quality Trade-off**: While AI tools boost individual productivity, they can reduce overall team productivity if the generated code requires extensive rework
+* **Context Switching Cost**: Developers benefit from AI tools only when they have the right contextual grounding, but manually providing this context for each AI interaction is time-consuming
+* **Inconsistent Standards**: Different AI tools and different prompting approaches by contributors can lead to wildly inconsistent code styles and patterns
+* **Maintenance Burden**: Creating and maintaining the comprehensive AI context requires ongoing effort from maintainers
+* **Tool Integration Complexity**: Different AI tools have different ways of consuming context, making it challenging to create universal guidance
+* **AI Tool Cost Constraints**: Comprehensive AI context increases processing costs (AI tools charge based on "tokens" \* units of text measurement) and usage limits, requiring strategic balance between context completeness and efficiency
+
+## Solution
+
+Provide an **AI Code Generation Context** folder within the repository to guide AI tools in producing contributions that align with project standards. This folder serves as a comprehensive reference that contributors can easily provide to AI tools, ensuring that generated code adheres to project conventions.
+
+### Implementation Structure
+
+Create an `innersource-ai/` folder in the repository root containing:
+
+#### Core Documentation Files (Required)
+
+`PROMPT.md`: Project-specific instructions for AI tools
+
+* Naming conventions (variables, functions, classes, files)
+* Logging patterns and error handling approaches
+* Testing strategy and preferred testing frameworks
+* Code formatting and style preferences
+* Common anti-patterns to avoid
+* Preferred libraries and frameworks for specific tasks
+
+`ARCHITECTURE.md`: Lightweight system overview
+
+* High-level system architecture and component relationships
+* Data flow patterns and API design principles
+* Dependency management guidelines
+* Module organization and layering principles
+* Integration patterns with external systems
+
+`STYLE_GUIDE.md`: Comprehensive coding guidelines
+
+* Language-specific style rules
+* Code organization patterns
+* Documentation standards
+* Performance considerations
+* Security guidelines and common vulnerabilities to avoid
+
+#### Enhancements (Optional)
+
+##### Practical Examples
+
+`EXAMPLES/`: Sample code files demonstrating best practices
+
+* `good-examples/`: Well-written code snippets with explanations
+* `bad-examples/`: Common mistakes with explanations of why they're problematic
+* `refactoring-examples/`: Before/after code showing proper improvements
+* Template files for common patterns (controllers, services, utilities)
+
+##### Configuration and Tooling
+
+`CONFIG/`: Shared formatter and analysis configurations
+
+* `.prettierrc`, `.eslintrc`, or equivalent formatting configs
+* `.editorconfig` for consistent editor settings
+* Static analysis tool configurations
+* Pre-commit hook configurations
+
+`INTEGRATION/`: AI tool-specific integration guides
+
+* GitHub Copilot workspace configuration
+* Custom GPT instructions and prompts
+* IDE plugin configurations
+* CLI tool integration examples
+
+##### Advanced Features
+
+`EMBEDDINGS/` (Optional): For advanced LLM integrations
+
+* Searchable knowledge base of project patterns
+* Vector embeddings of code examples
+* Semantic search capabilities for finding relevant patterns
+
+**Context Efficiency**: Start with core documentation files (~1000 words of context) to balance context value with AI tool costs. Expand strategically based on measured impact on review cycles and code quality.
+
+**Naming Convention**: The suggested file and folder names follow industry common practices. However, codebase owners may choose alternative names that are more discoverable and relatable to their specific project or codebase. Any chosen naming convention should be clearly documented and communicated to contributors through proper documentation. Should files like [AGENTS.md](https://agents.md) and `.aiignore` become standard in the future, the naming conventions in this pattern might be adapted accordingly.
+
+**Handling Existing Documentation**: If files like `ARCHITECTURE.md` already exist, the pragmatic approach is to keep them in their current location and add lightweight reference files in `innersource-ai` that point to them. When the architecture docs, style guides, or other materials are in Confluence or similar external systems, the `innersource-ai` folder becomes a crucial bridge between the codebase and external knowledge. This avoids duplication and keeps the folder consistent. For projects that want tighter integration, code owners could choose to reorganize and consolidate content under `innersource-ai`, but that requires more effort. The approach is flexible enough to support either approach—or even a hybrid—depending on what works best for the repository.
+
+### Usage Patterns
+
+#### For Contributors
+
+* **Before Starting**: Review the AI context to understand project standards
+* **During Development**: Reference specific files when prompting AI tools
+* **Code Generation**: Include relevant context snippets in AI prompts
+* **Validation**: Use provided examples to verify AI-generated code aligns with standards
+
+#### For AI Tool Integration
+
+* **Direct Reference**: Copy relevant sections into AI tool prompts
+* **URL Integration**: Reference files via repository URLs in AI tools that support web access
+* **IDE Integration**: Configure AI plugins to automatically include context
+* **Custom Workflows**: Integrate context into CI/CD pipelines for automated validation
+
+### Maintenance Strategy
+
+* **Version Control**: Track changes to AI context alongside code changes
+* **Regular Updates**: Review and update context as project standards evolve
+* **Community Contribution**: Allow contributors to suggest improvements to AI context
+* **Metrics Tracking**: Monitor the effectiveness of AI context through code review metrics
+
+## Resulting Context
+
+* **Improved Code Quality**: AI-assisted contributions become consistent with existing code standards and architectural patterns from the first submission
+* **Reduced Review Friction**: Maintainers can trust incoming PRs more readily, significantly reducing review fatigue and time-to-merge
+* **Enhanced Contributor Experience**: Contributors using AI produce better, more maintainable code even on their first attempts, leading to increased confidence and participation
+* **Scalable Collaboration**: Opens the door to scalable, AI-aware InnerSource collaboration across teams without sacrificing code quality
+* **Knowledge Preservation**: Project knowledge becomes more explicit and accessible, reducing dependency on tribal knowledge
+* **Faster Onboarding**: New contributors can leverage AI tools effectively from day one, reducing the learning curve for project-specific patterns
+* **Consistent Evolution**: As AI tools improve, the context ensures that enhanced capabilities are channeled toward project-appropriate solutions
+
+## Rationale
+
+This pattern addresses the fundamental mismatch between AI tools' general training and project-specific requirements. By providing structured, easily consumable context, we enable AI tools to generate code that feels like it was written by an experienced project contributor rather than an outsider.
+
+The `innersource-ai/` folder approach is intentionally explicit and discoverable, making it clear to both humans and AI tools where to find project-specific guidance. The modular structure allows teams to implement incrementally, starting with basic style guides and expanding to more sophisticated examples and configurations as needed.
+
+This solution balances the productivity benefits of AI tools with the quality requirements of professional software development, creating a sustainable approach to AI-assisted InnerSource collaboration.
+
+## Status
+
+* Initial
+* Drafted in August 2025
+
+## Authors
+
+* [Amburi Roy](https://www.linkedin.com/in/amburi/)
+
+## Related Patterns
+
+* [Standard Base Documentation](../2-structured/base-documentation.md) - Provides the foundation documentation that AI context builds upon
+* [InnerSource Portal](../2-structured/innersource-portal.md) - Could include AI context availability as searchable metadata for project discovery
+* [Trusted Committer](../2-structured/trusted-committer.md) - Trusted Committers are responsible for maintaining and evolving the AI context
diff --git a/patterns/1-initial/capacity-for-contributions.md b/patterns/1-initial/capacity-for-contributions.md
new file mode 100644
index 000000000..5e47c4f94
--- /dev/null
+++ b/patterns/1-initial/capacity-for-contributions.md
@@ -0,0 +1,76 @@
+## Title
+
+Managing Capacity for Reviewing Contributions
+
+## Patlet
+
+Reviewing InnerSource contributions takes time and effort. This should be reflected in capacity planning, especially for larger contributions. Expectations and available capacity should be transparent so that contributors understand when their contributions will be reviewed and, if accepted, released.
+
+## Problem
+
+Large InnerSource contributions are causing delays to other work in the team and/or contributions are taking longer to be released than expected. Reviewing contributions may be significant invisible work, not tracked in a team's Agile development process.
+
+## Story
+
+An application is built by a number of teams, each with different areas of responsibility. They work on each other's areas of the codebase via InnerSource on a regular basis.
+
+The team responsible for the build process for the JavaScript bundles received a major pull request, changing how dependencies were bundled. This PR introduced a new build time dependency, a new structure to the deployed JavaScript bundles, and touched 503 files, with 6,699 lines of code added and 2,828 lines of code deleted. A contribution of this size required significant time to code review, test, and ensure the team understood the new tooling and structure introduced.
+
+Normally, InnerSource contributions would be reviewed ad-hoc, but the team estimated that this review process would take days rather than hours. Reviewing this PR would have delayed the team's other work, so the team raised this with the team lead, project manager, and product manager, to prioritize this work against other work. Time was set aside to review this contribution at a future date.
+
+This process was formalized in the team:
+
+* Larger contributions have a ticket created on the team's backlog and included in prioritization discussion alongside other tickets.
+* The contributor will be informed of the priority call and given an estimate as to when it will be reviewed and released.
+* Smaller contributions can still be reviewed ad-hoc.
+
+## Context
+
+* Host team of a successful InnerSource project are finding it difficult to review contributions, especially large contributions.
+* They do not want to disrupt their team's other work, but also want to support contributions by reviewing/releasing them in a timely fashion.
+
+## Forces
+
+* Contributors expect timely feedback on their contributions
+* Host team are expected to deliver other work alongside reviewing contributions
+* Missing communication between contributors and host team on expectations/lead time for contributions to be reviewed/released
+* Tension in prioritizing InnerSource contributions against other work
+* Contributors already strive to make small PRs in line with Agile, InnerSource, and Continuous Delivery principles, but find instances where larger PRs are unavoidable
+
+## Solutions
+
+* Contributors are encouraged to give the host team early visibility of larger contributions (e.g. via GitHub Issues, draft PRs, [RFCs](../2-structured/transparent-cross-team-decision-making-using-rfcs.md), or informal discussions) and are made aware that not doing so could delay review of their contribution
+* Reviewing larger contributions is tracked in the team's ticketing system/bug tracker (e.g. Jira, GitHub issues)
+* Host team is given time to review larger contributions in team capacity planning
+* Reviewing contributions is prioritized against other work (e.g. in sprint planning)
+* Host team communicate their capacity for reviewing contributions, the priority of contributions, and an estimate of when a contribution will be reviewed/released
+* Host team has a service level objective (SLO) (e.g. 2 working days) for providing initial feedback to new contributions
+* Smaller contributions are still reviewed ad-hoc; the team may have guidelines on what they consider to be a smaller contribution (e.g. review should take less than an hour)
+
+## Resulting Context
+
+Host team understands the overhead of reviewing large contributions and is given capacity to do so. Project manager and product managers are better able to plan, estimate, and track other work in the team by accounting for the time taken to review InnerSource contributions. Contributors understand when their contribution will be reviewed and released, and how long before the host team will provide initial feedback.
+
+Smaller PRs are still reviewed ad-hoc, minimising overhead and unnecessary additional process.
+
+There may still be conflict in prioritising contribution reviews, especially if the host team is overburdened with other work. This only works if contributions are valued by the decision makers in the team's planning process.
+
+## Known Instances
+
+- BBC iPlayer & Sounds
+
+## Status
+
+Initial
+
+## Author(s)
+
+Tom Sadler
+
+## Acknowledgments
+
+Clare Dillon
+Sebastian Spier
+Guilherme Dellagustin
+Michael Basil
+Bill Westfall
diff --git a/patterns/1-initial/change-the-middle-management-mindset.md b/patterns/1-initial/change-the-middle-management-mindset.md
index 0c3bc1e30..96f90b599 100644
--- a/patterns/1-initial/change-the-middle-management-mindset.md
+++ b/patterns/1-initial/change-the-middle-management-mindset.md
@@ -4,90 +4,126 @@ Change the Middle-Management Mindset
## Patlet
-TBD
+Middle managers often resist InnerSource due to misunderstanding and misaligned incentives. To overcome this resistance, educate them on the benefits, include InnerSource participation in their performance metrics, and demonstrate how it enhances their reputation, reduces team friction, and boosts overall productivity.
## Problem
-The InnerSource program does not live up to its expectations because middle management is reluctant to allocate resources to it. Expectations of the program are faster go-to-market, increased quality, reduced duplicative development, better integration capabilities, and increased developer satisfaction.
+The InnerSource program does not live up to its expectations because middle management is reluctant to allocate resources to it. Expectations of the program are faster go-to-market, increased quality, reduced duplicative development, better integration capabilities, and increased developer satisfaction. Middle management often misunderstands InnerSource's value, fears losing control, and struggles to understand how it fits their metrics. This gap prevents developers from contributing, hindered by managers' misaligned incentives and lack of strategic understanding.
+
+## Story
+
+A software development team at a large enterprise was eager to join an InnerSource project benefiting multiple teams. However, their middle manager hesitated to allocate time, citing quarterly deadlines and unclear ROI. Despite the developers' enthusiasm and potential for code reuse, this caused frustration and missed collaboration opportunities.
## Context
-* Top down InnerSource support. Embedded in their objectives? Trickling down? Top level management has determined a new KPI around InnerSource and it is cascaded down to middle-management? No.
- - a vacuum between top down support and the objectives for developers
- - top down support but no one knows what that means
-* Developer wants to stand up and be a part of InnerSource projects
-* There is no incentive that fits into the middle-management objectives
-* Difficult for middle-management to understand how to enable InnerSource; how to work for controlling the direct output of one team to trying to embrace and let evolve an InnerSource community?
-* Developers contribute and PO/PM or Scrum Master finds out and puts a wall between developers and the InnerSource project
-* Middle-management to support the InnerSource program but higher-priority items keep getting in the way
-* Middle-management would rather duplicate than reuse and collaborate; rewriting the fast and easy way is prioritized over participating in a reusable collaboration.
+This pattern applies when:
+
+* **Top-down support exists, but it lacks middle-management buy-in:** Senior leadership endorses InnerSource, but there's a gap between top-down support and developer objectives. Top-level management may have determined a new KPI around InnerSource, but it's not effectively cascaded down to middle management, leaving them unclear on implications for their teams.
+* **Developers are eager to participate**: Individual contributors want to engage in InnerSource projects but face resistance from their direct managers, who control their time and priorities.
+* **Misaligned incentive structures**: Middle management metrics omit cross-team collaboration and InnerSource, providing no clear benefit for managers to support these activities.
+* **Control vs. collaboration tension**: Middle managers struggle to shift from controlling team output to enabling InnerSource communities, fearing loss of oversight and priorities.
+* **Resource allocation conflicts**: Middle managers support InnerSource but often deprioritize it for other high-priority goals and quarterly commitments.
+* **Short-term thinking prevails**: Organizations often favor quick duplication over reuse and collaboration, with managers preferring the "fast and easy" rewrite approach over collaborative development.
+* **Developer contributions face resistance**: Developers contribute to InnerSource projects, but Product Owners, Product Managers, or Scrum Masters may discover this and put barriers between developers and the InnerSource project.
+* **Established programs need manager adoption**: Organizations have InnerSource programs, but face challenges with middle management adoption and support.
+* **Performance systems lack collaboration metrics**: Existing performance systems don't measure or reward cross-team collaboration.
+* **Shared infrastructure opportunities**: Teams collaborate on shared platforms, services, or infrastructure for mutual benefits.
+* **Recognition programs exist but aren't leveraged**: Organizations can adapt existing gratitude and recognition programs to motivate managers to support InnerSource.
## Forces
-* Embedded accountability problem: middle managers cannot account for the time they spend and put it in their objectives. Need some metric to make it clear it is worthwhile. Has to become a KPI for them.
-* Organizational goals rarely happen with Middle-Management; they write their own goals (or their bosses do); otherwise incentivization happens through budget. Centralized incentivization is very difficult (their other goals will suffer). KPIs tied to people's bottom line can be effective.
-* Educational component: propensity is to blame evil middle-management; they may not know how it works and need to understand it. What benefit they will have for having their people involved in InnerSource?
-* Managers are afraid of having people stolen from them, of having priorities that aren't theirs, of becoming irrelevant.
-* Managers might fear that this will become the wild west (we're the only ones who really care)
-* How to manage priorities in such a bazaar?
-* Middle-management lacks understanding of what InnerSource implies
-* Middle-management has the ability to learn about InnerSource (formalized training)
-* Middle-management has a perceived loss of control, as with InnerSource it is less clear to them what the developers are working on.
+* **Manager resistance**: Middle managers may not see the value in letting team members work on external projects.
+* **Lack of visibility**: Contributions to InnerSource projects may not be visible to direct managers or HR
+* **Misaligned metrics**: Performance evaluation systems don't account for cross-team collaboration
+* **Resource allocation**: Teams are expected to maintain full capacity on their primary projects
+* **Recognition gaps**: No clear path for acknowledging voluntary contributions
+* **Career progression**: InnerSource work may not directly contribute to promotion opportunities
+* **Accountability challenges**: Middle managers cannot account for time spent on InnerSource activities in their objectives and need clear metrics to justify the investment
+* **Goal misalignment**: Organizational goals rarely cascade to middle management, who typically write their own goals or have them set by their superiors
+* **Educational gaps**: Middle managers may lack understanding of what InnerSource implies and need formal training to see the value proposition
+* **Fear of loss**: Managers fear losing team members to other projects, having competing priorities, or becoming irrelevant
+* **Control concerns**: Managers worry about losing oversight and prioritization in a more distributed environment like InnerSource, where it's less clear what developers are working on.
+* **Priority management**: Middle managers struggle with how to manage competing priorities in a more open, collaborative model
+* **Perceived complexity**: Managers may view InnerSource as creating an unmanageable "wild west" environment
## Sketch
-
-
-## Solution
-
-* [Objectives and key results (OKR)](https://en.wikipedia.org/wiki/OKR) - bigger picture. The best tool ever to get serious traction across business organizations. We are one team; creating durable teams horizontally across Business Units (BUs). Tie middle-management into the OKRs; they can tie these into the quarterly goal (L2s) they write.
- * *Editor note: Unclear sentence here* => (WAgile: quarterly we do big planning sessions, L2s are a quarterly goal). Epic for a year, L2 for a quarter.
-* Similarly we have goals cascaded down from management levels. Really high level goals have no bearing on daily work of low level developers, but they have traceability to the highest. If you can have InnerSource high level goals cascaded down, you could justify the time. For this to work it is essential that those InnerSource goals don't conflict with existing goals but rather supplement and at best support them.
-* Can't get the buzz for InnerSource, but can get buzz for reuse and collaboration (and can measure and show these). Defining the EOL processes. Have incorporated these into the End of Life processes. Majority of the EOLs are due to redundancy. Can counter Middle-Management fear. Fear that they will go away; we clearly define what pieces are theirs to see if there are ways to put competing solutions together. We can EOL something and reuse/collaborate and stop wasting resources. Plays really well to management.
-
-* Find Trusted Evangelists
-* Performance measurement needs to include InnerSource
-* OKR/cascading KPIs (proven solution, known to work)
- - OKR are bigger picture than KPIs (defined measurement)
- - need accountability that transcends from top level goals
- - existing goals don't have a cross-BU aspect the way InnerSource does. If we get that, then I can honestly speak to what I'm doing as an individual developer
- - shows actual proof of top down support
-* Events like three day hackathons where the top down people tell middle-managers that their developers have three free days (middle-managers can't say they don't have support)
- - ShipIt Day has a competitive nature (people choose the one idea that is best; everyone else walks away with nothing). Shows an appetite, but not extended out to everybody perpetually. A bit self-defeating.
- - We have innovation days (10% time set aside on calendars, broadcast, you can participate). Choose amongst a few and you get three days to form a new team, work on things together. Hackathon for customer-facing or internal projects (prototypes). Could have an InnerSource day where the metric is: Did you work on someone else's code base? Stand it up and then it becomes available for others to use. Come over to collaborate. Opening an issue=1 point; filing a PR= 5 points; 20 points for merging a PR. Then have an award (two weeks off at Hawaii, all paid with your family; or 3-6 months off to work on your own innovative products; or 6 months part time). Every year could have 1-10 people for InnerSource awards--recognition from the CEO.
-* Fellows program if you can achieve guest [Trusted Committers](../2-structured/trusted-committer.md); you get one day a week to do cross-platform work (they report on it as a measurement of success rather than a measurement of loss). Planning is good as a part of resource allocation (might have to change expectations; we're one team, a whole group).
-* Champions program recruited from any group: could be a Middle-Management champion who has gone through the process before. See who are the new believers. Could put badges on people's names in the directory. Could do cardboard cut-outs of the champion with an InnerSource t-shirt ;-)
-
-* Built-into the whole design of InnerSource process. Delivery teams don't own any code themselves; they change code amongst the product teams. Middle Management for product teams know that requests will come in for their code to be changed. They need to have their developers provide mentorship to the delivery team developers. We have different BLs; each is represented by a delivery team. Product teams focus on larger architectural decisions, ensure that the delivery teams don't mess too much with the Products.
- - We had globalization teams responsible for countries; had constraints (compliance) for each country. Those teams are always good about InnerSource. But for some reason they went away (restructuring).
-
-* Architectural solutions
- - Microservices architecture: creates incentive organizationally for people to collaborate. If a bug occurs, then it creates a problem for the users.
- - but it might be violating an SLA if the bug isn't being fixed
- - the problem comes with feature requests or affects design (going beyond bug fixes)
- - Developing platforms is an ideal InnerSource use case (hackathon to build applications on top)
- - SW Architects have to have an InnerSource mentality and work together.
- - newer companies with open source developers have that mindset
-
-* Empowering Middle Management - InnerSource readiness checklist; Middle Management should partner with their developers. What are the opportunities out there. Can we come up with justification for you to spend any time on this (how does this tie together with our KPIs)
-
-* If the organzation is doing Agile development, during release planning, time and resources for InnerSource practices should be built into sprints.
-
-* **1 step back, 3 steps forward** (aka "the tax"): If my team contributes, what's the tax (in terms of time/resources)?
- * Finding opportunities for contribution
- * Making the component reusable (if applicable)
- * Supporting your contribution (if applicable)
- * Aligning on engagement between teams
- * Code submission, reviews & revision
- * Documented communication w/consumers or host
- * Learning new practices and tools/skills (if applicable)
+
+
+## Solutions
+
+### Manager Education and Value Demonstration
+
+* **Educational outreach**: Provide formal training to help managers understand InnerSource benefits and value
+* **Demonstrate time savings**: Show how InnerSource practices free up time for core development work.
+* **Strategic alignment**: Clarify how InnerSource contributions align with broader organizational goals
+* **Make managers look good**: Demonstrate how InnerSource can make the manager look good and improve team efficiency.
+* **Friction reduction**: Show how InnerSource reduces technical friction (e.g., standardizing library versions) and improves team productivity
+
+### Performance Management Integration
+
+* **OKR integration**: Use [Objectives and Key Results (OKR)](https://en.wikipedia.org/wiki/OKR) to form horizontal teams across Business Units and align middle-management goals with quarterly objectives (L2s). OKRs provide a broader view than KPIs, fostering durable cross-unit teams connected to quarterly goals they set.
+* **Cascading goals**: Ensure InnerSource goals cascade down from high-level organizational objectives without conflicting with existing team goals
+* **Manager recognition**: Reward managers who promote InnerSource participation and enable their teams' involvement
+* **Team efficiency metrics**: Demonstrate how InnerSource reduces friction and improves team productivity
+* **Performance measurement**: Include InnerSource participation in performance reviews and manager evaluations
+
+### Strategic Alignment and Communication
+
+* **Focus on reuse and collaboration**: Frame InnerSource benefits around measurable reuse and collaboration metrics rather than abstract concepts.
+* **End-of-life process integration**: Incorporate InnerSource into EOL processes to reduce redundancy and demonstrate resource efficiency
+* **Clear ownership definition**: Define what code pieces teams own and identify opportunities to consolidate competing solutions
+
+### Community Building and Recognition
+
+* **Trusted evangelists**: Identify and empower core team members and influencers to act as ambassadors for InnerSource contributions
+* **Champions program**: Recruit champions from all groups, including middle-management champions who have successfully implemented InnerSource
+* **Badge system**: Implement recognition badges in organizational directories to highlight InnerSource contributors, or even cardboard cut-outs of champions with InnerSource t-shirts
+* **Cross-BU accountability**: Create goals that transcend individual business units and demonstrate top-down support
+
+### Events and Engagement
+
+* **Dedicated InnerSource events**: Organize hackathons and innovation days for developers to collaborate on cross-team projects with management support. Include ShipIt Days, innovation days with 10% time, and InnerSource days focused on contributing to others' code.
+* **Gamification**: Create point systems for InnerSource contributions: opening an issue = 1 point, filing a PR = 5 points, merging a PR = 20 points, with rewards like two weeks off in Hawaii (paid, with family), 3-6 months off to innovate, or 6 months part-time.
+* **Fellows program**: Establish programs allowing trusted committers one day weekly for cross-platform work, reporting success instead of loss.
+* **CEO recognition**: Create annual InnerSource awards with significant recognition from senior leadership
+
+### Process and Architecture Integration
+
+* **Globalization teams example**: Teams managing countries with compliance constraints are often good at InnerSource but may fade during restructuring.
+* **InnerSource readiness checklist**: Middle Management should partner with developers and justify InnerSource spending based on KPIs.
+* **Built-in collaboration**: Design processes where delivery teams collaborate across product teams with clear mentorship expectations.
+* **Microservices architecture**: Use microservices to foster collaboration and shared responsibility. Bugs cause user problems and may breach SLAs if unresolved. Challenges arise with feature requests or design changes, beyond bug fixes.
+* **Platform development**: Focus InnerSource on platform development for multi-team application building
+* **Architectural mindset**: Ensure software architects adopt an InnerSource mentality and collaborate
+* **Agile integration**: Include InnerSource time and resources in Agile sprint planning.
+* **Resource planning**: Account for InnerSource contribution "tax' using the "1 step back, 3 steps forward' principle: identify contribution opportunities, make components reusable, support your contribution, align teams, handle code submission, reviews, and revisions, communicate with consumers or hosts, and learn new practices, tools, or skills.
## Resulting Context
-* **Support for InnerSource is automatic, standard and expected from Middle Management.**
-* More measurement is required; measurement becomes more sophisticated (easier to measure your own stuff; harder to measure others). Keeping track of time spent in projects.
-* Better training for Middle Management in negotiation and facilitation will be needed.
-* Engineering cost vs. benefit - you will support others; other teams will allow you to make PRs and this will save you time (a balance in the long run.)
+When this pattern is successfully applied, the following outcomes emerge:
+
+### Manager Behavior Changes
+
+* **Support for InnerSource is automatic, standard, and expected from Middle Management.**
+* **Managers become more supportive** of InnerSource initiatives as they see clear value and recognition for their teams.
+* **Middle management gains a deeper understanding** of InnerSource benefits and how they align with organizational goals.
+
+### Organizational Improvements
+
+* **Enhanced cross-team collaboration** and knowledge sharing across the organization
+* **Reduced friction and improved team productivity** through standardized practices and reduced duplication
+* **Better training for middle management** in negotiation and facilitation skills becomes necessary.
+
+### Measurement and Process Evolution
+
+* **More sophisticated measurement systems** are required, as it is easier to measure your own team's work but harder to measure others' contributions.
+* **Time tracking for cross-project work** becomes more critical and systematic.
+* **Engineering cost vs. benefit balance** emerges: teams support others while other teams allow them to make PRs, creating long-term time savings.
+
+## Rationale
+
+This approach addresses how middle managers often block team involvement in cross-team initiatives. By focusing on education, showing value, and linking to performance, organizations can help managers become supporters of InnerSource. Managers need clear personal and team benefits to support InnerSource.
## Known Instances
@@ -97,7 +133,7 @@ TBD
Initial
-## Authors
+## Author(s)
* Silona Bonewald
* Max Capraro, FAU
diff --git a/patterns/1-initial/circle-communities.md b/patterns/1-initial/circle-communities.md
new file mode 100644
index 000000000..a5da781cd
--- /dev/null
+++ b/patterns/1-initial/circle-communities.md
@@ -0,0 +1,110 @@
+## Title
+
+Circle Communities
+
+## Patlet
+
+InnerSource adoption is slow in organizations due to limited understanding, engagement, and contextual relevance. Circle Communities address this by fostering synchronous conversations that build connections, close knowledge gaps, and cultivate collaboration and continuous learning.
+
+## Problem
+
+Organizations face several challenges in building individual understanding around InnerSource and ensuring the diffusion of fresh ideas and practices beyond isolated innovators and innovation teams. These challenges include:
+
+* **Lack of Contextual Understanding**: Employees often struggle to connect InnerSource practices with the core principles of openness, transparency, prioritized mentorship, and voluntary code contribution, hindering their learning process.
+* **Knowledge Gaps**: Significant gaps exist between what individuals know and what they need to learn about InnerSource patterns and practices, making meaningful engagement difficult.
+* **Engagement Issues**: Without predictable and structured opportunities for synchronous conversations, engagement and participation can be low, leaving mindset and behavioral changes unsupported.
+* **Limited Expertise**: Organizations may lack confident and knowledgeable individuals to facilitate discussions and bridge knowledge gaps, especially in embodying InnerSource principles in practice.
+* **Lack of Connection**: Isolated innovators and innovation teams often work independently and lack opportunities to support each other in addressing the bespoke challenges they encounter in their InnerSource journeys.
+
+## Context
+
+* **Scenario 1**: Few people with extensive InnerSource knowledge exist within your heavily siloed organization. The practice has struggled to build sustainable engagement as the culture is not hospitable to open collaboration and innovation, and principles like openness and transparency are not embedded in day-to-day interactions.
+* **Scenario 2**: Your organization is decentralized, and isolated innovators and innovation teams pursue InnerSource initiatives independently. Stakeholders are often unaware of parallel efforts, limiting opportunities to align on shared goals, practices, or resources. This lack of connection leaves them without mutual support to address the bespoke challenges they face.
+
+## Forces
+
+The following factors make solving these problems difficult:
+
+* **Complexity of Understanding**: InnerSource principles can feel abstract, especially for those new to the concept or lacking mentorship, making it difficult to connect patterns and practices to the principles.
+* **Mindset Gaps**: Adopting InnerSource requires shifts in mindset, such as embracing openness, transparency, and voluntary contribution, which are not always intuitive in traditional organizational cultures.
+* **Lack of Structured Engagement Opportunities**: Without formal or recurring spaces for discussions, participation and the reinforcement of behavioral change remain inconsistent.
+* **Limited Access to Expertise**: Few knowledgeable individuals can consistently bridge gaps, model the principles, or guide others in grounding practices into the principles.
+* **Cultural Barriers**: Siloed or decentralized cultures resist open collaboration, transparency, and mentorship, which are foundational to InnerSource.
+
+## Solutions
+
+Circle Communities for InnerSource provide a collaborative forum that connects isolated innovators and innovation teams, enabling them to support each other in addressing bespoke challenges while aligning practices with InnerSource principles. Key elements of this solution include:
+
+* **Principle-Centered Facilitation**: Dedicated leaders and community members ensure that meetings embody openness, transparency, prioritized mentorship, and voluntary contribution. They guide discussions to connect practices and patterns back to these principles, helping participants move forward with their initiatives and challenges.
+* **Building Connections Across Silos**: Meetings prioritize creating connections among isolated innovators and innovation teams who may be unaware of parallel efforts in the organization. These connections foster mutual support and shared learning to address bespoke challenges collaboratively.
+* **Meeting Participants Where They Are**: Each meeting addresses the needs of attendees, focusing on helping newcomers and recurring participants get unstuck, clarify their understanding of InnerSource principles, and tackle specific challenges they encounter.
+* **Support for Mindset Shifts**: Conversations foster mindset changes necessary for InnerSource success, such as cultivating openness, addressing barriers to transparency, and encouraging voluntary contributions and mentorship behaviors.
+* **Flexible Meeting Flow**: Meetings are not prescriptive presentations. Instead, they provide a space for attendees to explore challenges, ask questions, and share early curiosity or struggles, with discussions anchored in InnerSource principles.
+* **Agreed Meeting Agenda**: Each meeting’s agenda is collaboratively decided by the group, ensuring productivity and relevance. In cases where consensus is not reached, decisions defer to the dedicated leaders for guidance and facilitation.
+* **Real-World Examples**: Participants are encouraged to share specific examples of successes and challenges in applying InnerSource principles, providing practical learning opportunities for the community.
+* **Knowledge Sharing and Best Practices**: Discussions include reviewing best practices such as how to promote openness in code review, establish transparent governance, or mentor contributors effectively.
+
+To nurture Circle Communities, implement these practices:
+
+* **Define the Purpose**: Clearly articulate goals and align them with the organization's mission.
+* **Establish Social Conventions**: Develop guidelines to promote respect, inclusivity, and open dialogue, evolving them over time.
+* **Facilitate Regular Meetings**: Schedule consistent meetings for progress discussions, insight sharing, and collaborative problem-solving.
+* **Rotate Leadership**: Encourage shared leadership to distribute responsibility and deepen member connections.
+* **Leverage Collaborative Tools**: Use tools like Slack or GitHub to facilitate communication, documentation, and privacy-preserving insights sharing.
+* **Foster Continuous Improvement**: Solicit regular feedback to refine the community's activities and structure.
+
+## Resulting Context
+
+Circle Communities create an environment where individuals and teams collaboratively explore InnerSource principles and practices, leading to tangible improvements in mindset, behavior, and organizational culture. By fostering connections across silos and providing structured opportunities for dialogue, these communities enable:
+
+* **Practical Understanding**: Participants gain actionable insights by relating principles to real-world scenarios, bridging the gap between theory and practice.
+* **Collaborative Problem-Solving**: Members address challenges collectively, leveraging diverse perspectives to overcome barriers and refine their approaches.
+* **Cultural Integration**: Core values like openness, transparency, and mentorship become embedded in day-to-day work, supporting sustained organizational transformation.
+* **Knowledge Flow**: Ideas, experiences, and best practices circulate freely, reducing knowledge gaps and sparking continuous learning.
+* **Supportive Networks**: Strong relationships form among innovators, fostering a sense of mutual accountability and shared purpose.
+* **Sustained Engagement**: Flexible meeting formats and participant-driven agendas ensure relevance and encourage ongoing involvement.
+
+Ultimately, Circle Communities help organizations scale InnerSource adoption by cultivating a culture of continuous learning, collaboration, and innovation, transforming both individual mindsets and systemic practices.
+
+## Known Instances
+
+* [InnerSource Dojo from SAP](https://www.youtube.com/watch?v=fXoVm5iTSCc)
+* _Unplugged InnerSource_ sessions within the _Reuse & InnerSource_ workgroup of [SAP Cross-Platform Architecture](https://community.sap.com/t5/technology-blogs-by-sap/cross-product-architecture-embracing-conway-s-law-for-better-software/ba-p/13648600)
+* [Guilds at the BBC](https://youtu.be/MyYgk-jdjSw?t=511)
+
+## Related Patterns
+
+* [Dedicated Community Leader](../2-structured/dedicated-community-leader.md)
+* [Core Team](../2-structured/core-team.md)
+* [Maturity Model](../2-structured/maturity-model.md)
+
+## Status
+
+* Initial
+
+## Authors
+
+* [Michael Basil](https://www.linkedin.com/in/michaelrbasil)
+* [Addie Girouard](https://www.linkedin.com/in/addiegirouard)
+* [Bill Westfall](https://www.linkedin.com/in/bill-westfall-3268494)
+* [Jim Manzzullo](https://www.linkedin.com/in/jimmanzzullo)
+* [Jeremy McMillan](https://www.linkedin.com/in/jeremymcm)
+* [AnuOlu Balogun](https://www.linkedin.com/in/anuolu)
+
+## Acknowledgments
+
+* [Guilherme Dellagustin](https://www.linkedin.com/in/dellagustin)
+* InnerSource Dojo from SAP:
+ * [Ryan Uttech](https://www.linkedin.com/in/ryanuttech)
+ * [Ignacio Pedragon](https://www.linkedin.com/in/ignaciopedregon)
+ * [Dale Sackrider](https://www.linkedin.com/in/sackrider)
+ * [Jason Fisher](https://www.linkedin.com/in/jasonrfisher)
+ * [Michael Ward](https://www.linkedin.com/in/michaelwardqa)
+ * [Alfred Darby III](https://www.linkedin.com/in/alfred-darby-iii-21b6683)
+* [Nick Basil](https://www.linkedin.com/in/nick-basil)
+* [Allison Kaufmann](https://www.linkedin.com/in/allisonkaufmann29)
+
+## Alias
+
+* [Community of Practice](https://en.wikipedia.org/wiki/Community_of_practice)
+* [Guilds](https://engineering.atspotify.com/2014/03/spotify-engineering-culture-part-1/)
diff --git a/patterns/1-initial/code-of-conduct.md b/patterns/1-initial/code-of-conduct.md
index 73474c015..63d5a59db 100644
--- a/patterns/1-initial/code-of-conduct.md
+++ b/patterns/1-initial/code-of-conduct.md
@@ -50,7 +50,7 @@ However, adopt the following life cycle can improve the implementation and adopt
1. Collaboratively draft the Code of Conduct, involving input from community members representing diverse perspectives.
2. Seek feedback and consensus from the community to ensure buy-in and ownership of the guidelines.
-3. Publish the finalized documents in a prominent location accessible to all community members, such as the [InnerSource portal](https://patterns.innersourcecommons.org/p/innersource-portal) or communication channels.
+3. Publish the finalized documents in a prominent location accessible to all community members, such as the [InnerSource portal](../2-structured/innersource-portal.md) or communication channels.
4. Regularly review and update the Code of Conduct as needed to reflect evolving community norms and values.
A good practice for the third point is to share the Code of Conduct in each InnerSource community repository as a file named `CODE_OF_CONDUCT.md`.
@@ -60,7 +60,7 @@ This file can be part of the [Standard Base Documentation](../2-structured/base-

It is important to understand that simply adopting a Code of Conduct will not prevent conflict or toxicity in the InnerSource project.
-The [Core Team](https://patterns.innersourcecommons.org/p/core-team) and [Dedicated Community Leader](https://patterns.innersourcecommons.org/p/dedicated-community-leader) are responsible for the safe, fair, and transparent enforcement of the community's code of conduct.
+The [Core Team](../2-structured/core-team.md) and [Dedicated Community Leader](../2-structured/dedicated-community-leader.md) are responsible for the safe, fair, and transparent enforcement of the community's code of conduct.
That responsibility will imply provide a reporting process, a gathering information process and the consequences of any unacceptable behavior.
These references must be part of the Code of Conduct to encourage the behavior expected in the InnerSource project.
diff --git a/patterns/1-initial/document-architecture-decisions.md b/patterns/1-initial/document-architecture-decisions.md
new file mode 100644
index 000000000..8642b86c1
--- /dev/null
+++ b/patterns/1-initial/document-architecture-decisions.md
@@ -0,0 +1,230 @@
+## Title
+
+Document Architecture Decisions
+
+## Patlet
+
+InnerSource contributors often face challenges in grasping the system's design rationale, which can result in misalignment between maintainers, contributors, and stakeholders — potentially discouraging participation. To enhance decision-making and transparency, we recommend capturing architecture decisions and their consequences in a lightweight, accessible format to streamline onboarding, clarify decisions, and support long-term project sustainability.
+
+## Problem
+
+In an InnerSource project, where the entire organization must remain resilient to the pressures of introducing new features and keeping up with rapid technological advancements, a substantial number of architectural decisions and responses to technical debt are required. This raises critical questions:
+
+- What are the potential impacts of a change?
+- What criteria are used to decide between available options?
+- What are the best approach to find the right people to decide and implement?
+
+To support an open environment for contributions and make changes easier to implement, contributors need clarity.
+
+- But how can a contributor understand the rationale behind current decisions?
+- How can a team effectively discuss the risks of a radical refactor or redesign?
+
+Clear documentation and collaborative discussions are key to addressing these challenges and ensuring the project's adaptability and sustainability.
+
+Projects may come with varying requirements, such as the desire to introduce features that conflict with one another or result in excessive complexity, causing architectural inefficiencies.
+
+Identifying such conflicts or misunderstandings late in the development process—such as after the software is already built—can be extremely costly. These unresolved issues can frustrate all parties involved and harm the collaborative culture within the project. A common scenario where such disagreements arise is when an architectural decision remains unresolved for a long time because the idea's proponent and the project's maintainers fundamentally disagree on whether the proposed change should be implemented at all.
+
+For an InnerSource project this situation happens more frequently when the project is maintained by multiple teams in the company i.e. shared ownership.
+
+## Context
+
+- **Shared ownership by many teams and contributors of the System Architecture**:
+ - The architecture is a collective responsibility, involving diverse teams that each own different parts of the system.
+- **Overarching design decisions cannot always be made by a central body (e.g., a group of architects)**:
+ - Due to time constraints and insufficient domain-specific knowledge, centralized decision-making is impractical in all cases.
+- **Decisions need preparation**:
+ - Each architectural decision requires careful preparation, considering current and future system requirements, technical constraints, and potential changes.
+- **Continuous definition of technical debt**:
+ - As you work on the system, you must document and track technical debt, preparing it for potential future changes or refactors.
+- **Input from various types of users**:
+ - Key stakeholders such as developers, product owners, and product managers provide valuable input on the direction and decisions related to specific projects.
+- **Asynchronous decision-making**:
+ - Given the diverse stakeholders, decisions must be made asynchronously, avoiding the need for frequent synchronous meetings and instead encouraging discussions via writers' workshops and ongoing documentation.
+- **Commitment to Documenting Decisions**:
+ - Teams often face challenges in tracking past architectural decisions and technical dependencies, leading to misalignment, redundancy, or repeated discussions.
+- **Missing Governance**:
+ - When stakeholders or new team members frequently ask, “Why was this decision made?” or struggle to trace past choices, a structured documentation process becomes essential.
+ - Organizations seeking clear decision-making frameworks and long-term knowledge continuity will benefit from maintaining well-documented records.
+
+## Forces
+
+- Often, the involved parties want to make decisions promptly, balancing speed with quality.
+- Documenting decisions (before implementation begins) is a new skill for many of those involved in the process.
+- Typically, only one option is thoroughly discussed or implemented.
+- No one discusses the architectural decisions and technical deps with a broader audience.
+- The owners continuously evaluate upcoming challenges and strive for excellence, refusing to settle for a "good enough" solution.
+
+## Solutions
+
+A project team or organization chose an ADR and TDR like process for increasing the transparency of our architectural decision making process.
+
+Important elements of the solution are:
+
+- **A description of when to document an ADR/TDR (and when not to)**:
+ - Clear guidelines for when architectural decisions or technical debts require formal documentation and when they can be managed informally.
+- **A template for ADR/TDR documentation**:
+ - Should encourage the author to examine the decision from multiple perspectives (technical, business, user, etc.).
+ - Should prompt the author to provide both a high-level, easily accessible overview as well as a detailed, in-depth explanation of the rationale and implications.
+- **A well-defined, lightweight process surrounding ADR/TDRs**:
+ - How to publish an ADR/TDR and share it with all relevant stakeholders (e.g., via chat message, mailing lists, or project boards).
+ - How to collect feedback effectively on the ADR/TDR from diverse stakeholders, ensuring a broad range of input.
+ - How to incorporate the feedback and adjust the ADR/TDR as needed.
+ - How to move the ADR/TDR towards a conclusion or final decision (e.g., with sign-off from relevant maintainers or decision-makers).
+ - The use of appropriate tools, considering that non-technical stakeholders may not have direct access to source control or specialized software. Publish the decisions to a website or wiki.
+- **A commitment to iterating on the ADR/TDR templates and process**:
+ - Regularly refining the ADR/TDR templates and associated processes based on feedback and the evolving needs of the organization.
+
+## Story
+
+The Challenge of Balancing Decisions and Collaboration
+
+Imagine a complex application composed of multiple interconnected projects, each maintained by a different team. Each team owns its domain of the system and occasionally contributes InnerSource changes to other areas. However, the real challenges begin when larger, cross-cutting changes are proposed. These require collaboration across team boundaries, involving diverse technical perspectives, competing priorities, and varying levels of technical debt in different parts of the system.
+
+In one such scenario, the system's scalability is identified as a critical issue. Several valid options emerge:
+
+- Refactor the existing architecture to improve performance.
+- Introduce a new distributed microservices, serverless or go back to your modulith approach.
+- Optimize specific bottlenecks incrementally without overhauling the system.
+- Experiment with a novel framework to future-proof the application.
+
+### Writers' Workshops for Exploration
+
+To address these possibilities, the teams convene a series of writers' workshops. Here, architects, maintainers, and engineers document the technical debt in their respective areas and outline how each solution impacts the project. These workshops were designed to help committers produce well-documented decisions using structured templates, such as **Architecture Decision Records (ADRs)** and **Technical Debt Records (TDRs)**. By utilizing these templates, the workshops supported a shared understanding of existing trade-offs and supported open, transparent discussions. The ADRs captured the rationale behind architectural choices, while the TDRs helped document the technical debt in various parts of the system. This approach not only ensured a thorough exploration of options but also created a traceable record of decisions, making it easier for all stakeholders to follow the reasoning behind each direction taken.
+
+- [Writers Workshop](https://hillside.net/conferences/plop/235-how-to-hold-a-writers-workshop)
+
+### Building Prototypes Before Committing
+
+Recognizing the importance of implementation experience, the teams decide to build experimental versions of the proposed solutions. This isn't just theoretical planning—each solution is implemented in small, controlled test environments. The teams are empowered to explore how these options integrate into the larger system. Some engineers even build experimental APIs and measure their usability and performance.
+
+### The Debate
+
+Once the experiments are complete, teams come together to analyze the results. The workshops focus on tangible learnings:
+
+- Does the microservices approach simplify deployment, or does it introduce new operational complexities?
+- Does refactoring existing code risk destabilizing legacy systems?
+- Does the incremental optimization fall short in addressing long-term needs?
+
+Through structured discussions and debates, enriched with real implementation data, teams develop a clearer perspective on the benefits and drawbacks of each option.
+
+### The Decision
+
+Instead of leaving the decision solely to technical leads, the process prioritizes transparency and inclusivity. The maintainers weigh the trade-offs, ensure alignment with the system’s strategic goals, and incorporate feedback from contributors. Ultimately, the team selects a hybrid approach—refactoring the architecture's core areas while experimenting with microservices for future scalability.
+
+### The Outcome
+
+This iterative process not only solves the scalability issue but strengthens the project's collaboration culture. Engineers feel more empowered, as they see their contributions directly shaping the architecture. The documented technical debt and decision-making process now serve as a reference point for future changes, paving the way for an adaptive, innovative development environment.
+
+This story underscores the value of combining technical rigor, experimentation, and collaboration to make thoughtful architectural decisions while embracing the complexity of modern software projects.
+
+This approach leads to greater innovation, closer collaboration, and the widespread dissemination of knowledge across the organization. Achieving this requires full buy-in from all disciplines at every level, and most importantly, an environment of psychological safety where individuals feel comfortable proposing and debating ideas openly. This culture of open dialogue and shared decision-making is the foundation for creating impactful solutions.
+
+Like any process, this requires ongoing refinement to maintain its effectiveness. Regular feedback may reveal areas for improvement, such as adjustments to the ADRs- and TDRs-templates or the decision-making process itself, ensuring that it remains inclusive, collaborative, and adaptive. By supporting an environment of continuous learning and improvement, a team not only enhance the decisions they make today but also create a sustainable foundation for future growth and innovation.
+
+### Architecture Decision Record (ADR) Tooling
+
+Architecture Decision Records (ADRs) provide a structured way to document design decisions and their rationale, ensuring clarity and continuity in software projects. Several tools facilitate the creation and management of ADRs, making it easier for teams to track and share their architectural choices.
+
+Key ADR Tools:
+
+- [Michael Nygard’s ADR Approach](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions)
+ - Introduces the concept of ADRs and their benefits in maintaining architectural transparency.
+- [ADR-Tools (adr/adr-tools)](https://github.com/adr/adr-tools)
+ - A simple command-line toolset to create and manage ADRs in Markdown format.
+- [ADR-Tools by Nat Pryce](https://github.com/npryce/adr-tools)
+ - Another CLI-based ADR tool, helping teams efficiently document decisions in Markdown.
+- [ADR-Tools from Christoph Kappel - asciidoc](https://github.com/unexist/adr-tools)
+ - Similar to the previous tools but supports AsciiDoc format for enhanced readability.
+- [Record-Tools by Christoph Kappel](https://github.com/unexist/record-tools)
+ - An extended version of ADR tools and support for TDRs, also based on AsciiDoc, enabling better integration with documentation workflows.
+- [mADR - markdown](https://adr.github.io/madr/)
+ – A structured Markdown-based ADR template that standardizes documentation across projects.
+
+How to Use ADR Tools:
+
+- Choose a Format
+ – Select Markdown or AsciiDoc based on your team's documentation preferences.
+- Set Up the Tool
+ – Install one of the ADR tools (e.g., adr-tools or mADR) in your repository.
+- Create ADRs or TDRs
+ – Use CLI commands to generate new ADRs, document architectural decisions, and track changes over time.
+- Review and Update
+ - Maintain ADRs by updating them when decisions evolve or new insights emerge.
+- Share and Collaborate
+ – Store ADRs in version control (e.g., Git) to facilitate team discussions and long-term knowledge retention.
+ - Publish your **Record Catalog** on a website or wiki and actively share its content through your chat systems.
+
+By leveraging ADR tooling, teams can ensure well-documented architectural decisions, improve collaboration, and maintain software sustainability over time.
+
+## Resulting Context
+
+Implementing an ADR/TDR-like process has proven to be valuable, as it makes architecture decision-making more transparent for everyone and ensures that all voices are heard.
+
+Observable positive effects:
+
+- **Democratizing architectural decision-making** to ensure that changes impacting multiple teams are inclusive, while also reducing the burden on team leads.
+- **Facilitating open, asynchronous communication** across teams and geographies, enhancing accessibility and collaboration. Contribute to ADR and TDR documents and engage in discussions to invite broader participation through writing workshops.
+- **Empowering individuals and teams** to take ownership of architectural decisions, enabling large-scale organizational change.
+- **Establishing a reliable record** of architectural decisions and technical debt, serving as a valuable reference for context and future decision-making.
+- **Maximizing the impact of experienced engineers** by enabling asynchronous and remote contributions, reducing the need for synchronous meetings.
+- **Standardizing terminology** by explicitly defining key concepts (e.g., "system tests") to ensure a shared understanding across teams.
+- **Aligning processes** by clearly documenting workflows such as the out-of-hours support procedure, promoting consistency and clarity.
+- **Enhancing clarity** of thought through documentation, encouraging authors to critically assess and refine their reasoning behind architectural decisions.
+
+The ADR/TDR approach also carries risks that a team want to acknowledge:
+
+- **It doesn’t always work!** Some people might still challenge a decision made through the ADR/TDR process. However, having a decision documented in writing is still valuable in these situations because it provides a clear record of when and why a decision was made.
+- **Pre-documenting design proposals (architecture, protocols, etc.) can resemble waterfall-like design**, which may not fit the iterative development model preferred by many teams. A team must remember the Agile principle: “Working software over comprehensive documentation.” Therefore, the ADR/TDR process should be as lightweight as possible to avoid unnecessary overhead.
+- **The ADR/TDR can become too long and cumbersome**, leading to long comment threads and debates. In these cases, a team might complement the process with synchronous communication, such as working groups or in-person meetings. Still, time is saved by allowing participants to review the ADR/TDR before the meeting rather than explaining everything during the discussion.
+
+## Rationale
+
+InnerSource projects that want to achieve high participation rates and make the best possible decisions for everybody involved need to find ways to create participatory format for all system components, tools and workflows. Michael Nygard announced 2011 the idea to document architecture decision with a simple markdown template and shared it with a simple git project. Today this **ADR tool** is well proven and a many of teams around the globe use **Architecture Decision Records (ADRs)** to document there design decisions.
+
+Another important aspect of defining architectural decisions is documenting consequences. In Technical Debt Records, Dr. Michael Stal explores the systematic tracking and management of technical debt in software development using **Technical Debt Records (TDRs)**. Similar to how Architecture Design Records (ADRs) capture architectural decisions, TDRs document trade-offs in code quality made to accelerate delivery. The TDRs provides a detailed template for documenting technical debt, and Christoph Kappel introduces a record tool to streamline the process of ADRs and TDRs.
+
+## Known Instances
+
+- **Spotify** - [How use Spotify ADRs](https://engineering.atspotify.com/2020/04/when-should-i-write-an-architecture-decision-record/)
+- **SAP** - [Cross Product Architecture](https://community.sap.com/t5/technology-blogs-by-sap/cross-product-architecture-embracing-conway-s-law-for-better-software/ba-p/13648600)
+
+## Status
+
+- Initial
+
+## Author(s)
+
+* Peter Rossbach
+* Christoph Kappel
+
+## Acknowledgments
+
+- [Michael Nygards ADRs Idea](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions)
+
+## Related InnerSource Patterns
+
+- [Transparent Cross-Team Decision Making using RFCs](../2-structured/transparent-cross-team-decision-making-using-rfcs.md)
+- [Common Requirements](../2-structured/common-requirements.md)
+
+## Related Material
+
+- [ADR Hub](https://adr.github.io/)
+- [ADRs at Google Cloud](https://cloud.google.com/architecture/architecture-decision-records)
+- [Amazon: AWS Prescriptive Guidance: ADR Process](https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/welcome.html)
+- [Architectural Decision](https://en.wikipedia.org/wiki/Architectural_decision)
+- [Architectural Decision Records](https://adr.github.io)
+- [Architectural Decisions — The Making Of](https://ozimmer.ch/practices/2020/04/27/ArchitectureDecisionMaking.html)
+- [DeciCollab - System Architecture Decision Collaboration](https://github.com/rossbachp/DeciCollab)
+- [GitHub: ADR GitHub organization](https://adr.github.io/)
+- [Learnings from using ADR in a real project](https://blog.unexist.dev/documentation/myself/2021/08/18/learnings-from-using-adr-in-a-real-project.html)
+- [Joel Parker Templates to ADR](https://github.com/joelparkerhenderson/architecture-decision-record)
+- [How to write effective documentation for your open source project?](https://opensource.com/article/20/3/documentation)
+- [RedHat: Why you should use ADRs](https://www.redhat.com/en/blog/architecture-decision-records)
+- [Software Architecture Documentation Starter with arc42 and C4 Model](https://github.com/bitsmuggler/arc42-c4-software-architecture-documentation-example)
+- [Technical Debt Records](https://github.com/ms1963/TechnicalDebtRecords)
+- [Technical Debt Records Idea](https://www.heise.de/blog/Technical-Debt-Records-Dokumentation-technischer-Schulden-9876115.html)
+- [Requests for Comments](https://en.wikipedia.org/wiki/Request_for_Comments)
+- [Using Architecture Decision Records in Open Source Projects—An MSR Study on GitHub](https://ieeexplore.ieee.org/document/10155430)
+- [Y-Statements](https://medium.com/olzzio/y-statements-10eb07b5a177)
+- [30-years-of-rfcs](https://www.rfc-editor.org/rfc/rfc2555.txt)
diff --git a/patterns/1-initial/governance-based-project-setup.md b/patterns/1-initial/governance-based-project-setup.md
new file mode 100644
index 000000000..f1f96293e
--- /dev/null
+++ b/patterns/1-initial/governance-based-project-setup.md
@@ -0,0 +1,118 @@
+## Title
+
+Governance Level Guided Project Setup
+
+## Patlet
+
+Before publishing their first InnerSource project, a team wants to choose an appropriate Governance Level but is unsure about the impact of the different levels on their daily doing.
+A dedicated list of resources (best practices, recommended patterns, target maturity levels) provides specific guidance to the team and helps them to make an educated decision.
+
+## Problem
+
+A team has decided that they want to publish an InnerSource project. They are trying to decide on a [Governance Level](../2-structured/governance-levels.md) for their project. However lacking practical experience, they need further guidance on the impact each of the levels will have on their daily doing.
+
+## Context
+
+- The team has experience working as contributors to other InnerSource projects.
+- The team would like to publish an InnerSource project themselves but has only limited InnerSource Trusted Committer experience.
+- The team does have enough autonomy to decide on how much time they can invest into supporting the resulting InnerSource project.
+
+## Forces
+
+- Contributors need clarity on what to expect from an InnerSource project in terms of transparency and collaboration opportunities.
+- New Trusted Committers need an understanding of the level of work the future governance level entails.
+- New Trusted Committers may need to communicate expected impact for capacity planning.
+
+## Solution
+
+Support new Trusted Committers with a list of resources targeted at each of the three governance levels.
+
+This solution ties together various resources that are provided by the InnerSource Commons:
+
+- the [Maturity Model](../2-structured/maturity-model.md)
+- **InnerSource Patterns** applicable to each level
+
+Your organization may have additional custom resources relevant for each of these governance levels.
+You may want to link to those in addition to the ones above.
+
+### Governance Level: "Bug Reports and Issues Welcome"
+
+Definition:
+> People outside the core development team may use the code. They can submit feature requests and bug reports for things they would like to see changed.
+
+To reach this level, a team needs to make their source code readable. They need to give write access to their issue tracker.
+
+Ideally the host team goes through the [InnerSource Learning Path](https://innersourcecommons.org/learn/learning-path/) to get a first understanding of the concepts and roles involved.
+
+The relevant levels of the [maturity model](../2-structured/maturity-model.md) are at least:
+
+PP-1, DP-1, DC-1, RS-1, ST-1, CF-1, LS-1, OF-2, CB-2, SP-2, PA-2, RW-1, MP-1, SM-1, CL-1, RO-1
+
+These InnerSource patterns, start by looking at the following ones:
+
+* [Base Documentation](../2-structured/base-documentation.md)
+* [Communication Tooling](../2-structured/communication-tooling.md)
+* [Issue Tracker](../2-structured/issue-tracker.md)
+* [Praise Participants](../2-structured/praise-participants.md)
+* [Standard Release Process](../2-structured/release-process.md)
+* [Trusted Committer](../2-structured/trusted-committer.md)
+* [Improve Findability](../1-initial/improve-findability.md)
+
+### Governance Level: "Contributions Welcome"
+
+Definition:
+> People outside the core development team may use the code. They can also make modifications and submit them to core team for inclusion.
+
+To reach this level, a team needs to give contributors the option to submit pull requests. In addition, contributors need to have clear options to follow the development of the project in order to better understand project direction and established best practices. In addition the host team needs to set aside time for mentoring contributors and giving timely feedback.
+
+The relevant levels of the [maturity model](../2-structured/maturity-model.md) are at least:
+
+PP-2, DP-2, DC-2, RS-3, ST-3, CF-2, LS-2, OF-2, CB-2, SP-2, PA-2, RW-2, MP-2, SM-2, CL-3, RO-2
+
+For InnerSource patterns, start by looking at the following ones (in addition to the ones above):
+
+* [30-day warranty](../2-structured/30-day-warranty.md)
+* [Extensions for Sustainable Growth](../2-structured/extensions-for-sustainable-growth.md)
+* [Review Committee](../2-structured/review-committee.md)
+* [Service vs. Library](../2-structured/service-vs-library.md)
+* [Transparent cross team decision making](../2-structured/transparent-cross-team-decision-making-using-rfcs.md)
+* [Cross team retrospectives](../1-initial/cross-team-retrospectives.md)
+* [Incentive Mechanisms](../1-initial/incentive-mechanisms-for-voluntary-contribution.md)
+* [Include Product Owners](../1-initial/include-product-owners.md)
+* [Reluctance to accept contributions](../1-initial/reluctance-to-accept-contributions.md)
+
+### Governance Level: Shared Ownership
+
+Definition:
+> Members of different teams collaborate on the project as equal peers. Everyone has the ability to merge code. Everyone has an equal say on the project direction. Everyone has an equal say in who else to add to this group.
+
+To reach this level the host team, mixed of members of different teams in the organization, needs to understand that they are to act as one virtual team. There needs to be alignment of where the project is headed and increased trust between Trusted Committers.
+
+All project decisions need to be taken where they can not only be seen by others but influenced by the entire team of Trusted Committers - even if not everybody can make it to all meetings.
+
+The relevant levels of the [maturity model](../2-structured/maturity-model.md) are at least:
+
+PP-3, DP-3, DC-3, RS-3, ST-3, CF-3, LS-3, OF-3, CB-3, SP-3, PS-3, RW-3, MP-3, SM-3, CL-3, RO-3
+
+For InnerSource patterns, start by looking at the following ones (in addition to the ones above):
+
+* [Group Support](../2-structured/group-support.md)
+* [Explicit Shared Ownership](../1-initial/explicit-shared-ownership.md)
+* [Modular Code](../1-initial/modular-code.md)
+* [Source Repo different from deployment chain](../1-initial/shared-code-repo-different-from-build-repo.md)
+
+## Resulting Context
+
+TBD
+
+## Known Instances
+
+TBD
+
+## Status
+
+- Initial
+
+## Authors
+
+- Isabel Drost-Fromm
diff --git a/patterns/1-initial/governance-levels.md b/patterns/1-initial/governance-levels.md
deleted file mode 100644
index 2b64bee67..000000000
--- a/patterns/1-initial/governance-levels.md
+++ /dev/null
@@ -1,99 +0,0 @@
-## Title
-
-Transparent Governance Levels
-
-## Patlet
-
-Several teams are using different InnerSource patterns and all calling it "InnerSource", so the term is not precise enough to usefully describe a set of working practices without confusion.
-
-Estabilishing a more accurate common language that is understood across all teams allows anyone to communicate intent or set expectations efficiently without ambiguity.
-
-## Problem
-
-Several teams are using InnerSource practices. However the degree to which they welcome contributions and give equal collaboration rights to contributors differ. Despite these differences, all teams refer to their way of working as "InnerSource" without any additional qualifiers.
-
-The result is confusion and frustration when teams collaborate as the expectation of what InnerSource means in practice is different in each team. This confusion also affects strategy planning and decisions on future InnerSource intent as the term is too vague which leads to long discussions and time lost on clarifications.
-
-## Stories
-
-### Example of Confusion
-
-For two projects InnerSource best practices have been adopted. Project A has a shared ownership model with [Trusted Committers](../2-structured/trusted-committer.md) from multiple teams. Project B is fully owned by one team with contributions from other teams. New users of either project are regularly confused about the level of influence they can gain in the respective project. This leads to long discussions, escalations and time lost on clarifications.
-
-### Example of Delayed Decision
-
-Project C is currently closed source and used only by team 1. Team 2 want to use project C and the leadership of the two teams negotiates options which include InnerSource practices. Agreement takes longer than expected because the "InnerSource" term did not describe a target state that could be agreed without ambiguity, and the teams had to document bespoke options for their leadership to consider before a decision could be made.
-
-### Examples from Open Source
-
-Like "InnerSource", Open Source is also a broad term.
-
-There are projects on GitHub, published purely for the pleasure of the author with no intention of long term maintenance, not intention to fix bugs submitted by users. This would be the equivalent of "Bug Reports and Issues Welcome" - you can report the bug, but its on the owner to find the time to fix it.
-
-There are projects where the roadmap is created in-house, hidden from public view. Where commit rights come and go with the contract of the employees of one company (e.g. MongoDB, Elastic, Tensorflow). Users are welcome to submit patches, they will even be mentored through. All development happens in the open, but control and strategy is never shared. This would be the equivalent of stage "Contributions Welcome".
-
-There are projects that share write access, but do not share the power to decide who gets write access next. This applies to everyone who is only a committer at an Apache project. There are projects that are fully shared across multiple independent organizations (e.g. k8s, any Apache project) - those would be "Shared Ownership".
-
-The same levels make sense inside of organizations.
-
-## Context
-
-- InnerSource concepts are established within an organization with multiple projects and teams adopting InnerSource.
-- Internal InnerSource practices are not prescribed in detail.
-- Teams/projects have the autonomy to optimise for their local circumstances.
-
-## Forces
-
-- Projects adopt different InnerSource patterns and practices to optimise for their context.
-- Users want clarity on the level of influence they can gain in an InnerSource project when deciding whether or how to use it.
-- Leaders want clarity on InnerSource project intentions to understand the expected cost and benefits.
-- Writing a detailed description of a set of InnerSource practices requires significant effort.
-
-## Solution
-
-The solution is to create a universally understood language to describe the InnerSource operating models that are used in your organization.
-
-We define **InnerSource operating model** as a description of how much influence the core development team of a project ist willing to share with contributing teams. Or in other terms, the level of influence a contributing team can gain in the respective project.
-
-The shared language for these InnerSource operating models can be established with these steps:
-
-1. Identify the common recurring InnerSource operating models that exist in your teams and projects.
-2. Document each model in detail, and give each a distinctive name.
-3. Promote the use of these names to describe projects until the name's meaning is understood across the whole organization.
-
-Examples of common InnerSource operating models (1) are:
-
-- **Bug Reports and Issues Welcome**: People outside the core development team may use the code. They can submit feature requests and bug reports for things they would like to see changed.
-- **Contributions Welcome**: People outside the core development team may use the code. They can also make modifications and submit them to core team for inclusion.
-- **Shared Ownership**: Members of different teams collaborate on the project as equal peers. Everyone has the ability to merge code. Everyone has an equal say on the project direction. Everyone has an equal say in who else to add to this group.
-
-Examples of promoting the model names (3) are:
-
-- Using the names within project documentation and contributing guides (see also [Standard Base Documentation](../2-structured/base-documentation.md)).
-- Labelling projects with the names in an [InnerSource Portal](../2-structured/innersource-portal.md).
-- Presenting the names as a menu of adoption options for new InnerSource projects.
-- Including the names and models in any internal InnerSource training or promotion.
-
-## Resulting Context
-
-- Cross team communication occurs efficiently without confusion using terms that are universally understood and centrally documented.
-- Organization leaders understand the nuances within practising InnerSource and make better informed and more precise decisions that are easier to communicate.
-- Increased standardisation of InnerSource practices within the organization as the named and documented building blocks are used by teams as a menu for adoption.
-- Teams can adopt InnerSource best practices in a step-by-step way which makes adoption easier and less intimidating.
-
-## Known Instances
-
-* Flutter Entertainment
-
-
-
-Flutter Entertainment define an [InnerSource Pyramid](https://innersource.flutter.com/how/) to describe 3 different InnerSource operating models: Readable Source, Guest Contributions and Maintainers in Multiple Teams. Each name is centrally documented. The use of these names is encouraged via repeated usage, direct training and categorisation of each InnerSource project.
-
-## Status
-
-Structured
-
-## Authors
-
-- Isabel Drost-Fromm
-- Rob Tuley
diff --git a/patterns/1-initial/incentive-mechanisms-for-voluntary-contribution.md b/patterns/1-initial/incentive-mechanisms-for-voluntary-contribution.md
index c433d35e8..7c911f919 100755
--- a/patterns/1-initial/incentive-mechanisms-for-voluntary-contribution.md
+++ b/patterns/1-initial/incentive-mechanisms-for-voluntary-contribution.md
@@ -1,95 +1,122 @@
## Title
-Incentive mechanisms to foster voluntary contribution
+Incentive Mechanisms for Voluntary Contributions
## Patlet
-TBD
+Organizations struggle to motivate employees to contribute to InnerSource projects due to misaligned incentives and lack of recognition. Implement a multi-layered incentive system combining financial rewards, institutional recognition, and career growth opportunities to boost voluntary participation.
## Problem
-In hierarchical and silo-organized organizations, getting voluntary contributions in InnerSource
-projects can be challenging. It is crucial to create mechanisms to incentivize managers to foster
-voluntary contributions. Consider the following story:
+Organizations struggle to motivate employees to contribute voluntarily to InnerSource projects. Employees prioritize team responsibilities over cross-team collaboration because InnerSource contributions lack recognition, don't impact performance evaluations, and don't advance career growth. This leads to underused initiatives and missed opportunities for knowledge sharing and innovation.
-Company A has started an InnerSource initiative. Their InnerSource concept expected to have
-associates voluntarily contributing to InnerSource projects, regardless of topic and regardless of
-home-business-unit alignment.
+## Story
-After some time in activity, the core team realizes that their InnerSource project is not getting
-voluntary contributions. While engaging with potential individual contributors, the
-core team (pattern link) has consistently learned that the contributors in question were
-not allowed to contribute or have their participation in InnerSource projects rejected by
-their respective line managers. The reasons presented by management are:
+At a large financial services company, a developer found an InnerSource project that could boost team efficiency. However, their manager discouraged participation, citing misaligned strategy and capacity issues. Despite potential benefits, the developer couldn't contribute due to misaligned incentives and lack of recognition for cross-team collaboration.
-- the lack of strategic alignment between the InnerSource project goal and the business unit product/service portfolio,
-- managers have planned their developer's capacity 100% to the home business units projects.
+## Context
-So, the management is not motivated to provide their scarce developer capacity to the
-InnerSource project.
+- Organizations with established InnerSource programs
+- Teams working on shared platforms or infrastructure
+- Performance management systems that focus on team-specific metrics
+- Middle management accountable for business unit results
+- Employees motivated by recognition, career growth, or financial rewards
+- Cross-organizational collaboration is not the organizational norm
+- Contributions to InnerSource projects are expected during working hours
+- Top management has sponsored the InnerSource initiative
-As a result, the total number of contributors remained restricted to the core team and the
-project cannot build a community of developers. Furthermore, contributions mostly originated
-in the same business unit the [Dedicated Community Leader](../2-structured/dedicated-community-leader.md)
-belonged to. Innovation did not happen in the expected scale. Top management is no longer
-convinced that InnerSource yields the expected benefits and abandons the initiative altogether.
+## Forces
-## Context
+**Time and Resource Constraints**
-- The InnerSource initiative is sponsored (budget) by top level management.
-- The managers (middle-management) have their bonus directly depending
-only on business units results under their responsibility
-- The capacity of every associate is usually planned by their superiors
-and 100% allocated to the home business unit projects
-- Cross organizational collaboration is not the norm.
-- Contributions to InnerSource projects are expected to be made during working
- hours.
+- Employees have limited time and must prioritize their primary responsibilities
+- Teams are expected to maintain full capacity on their primary projects
+- Manager resistance to allowing team members to work on external projects
-## Forces
+**Recognition and Visibility Gaps**
+
+- Contributions to InnerSource projects lack visibility to direct managers or HR
+- No clear path for acknowledging voluntary contributions
+- Performance evaluation systems ignore cross-team collaboration
+
+**Career and Incentive Misalignment**
+
+- InnerSource work may not advance career progression or promotion
+- Managers' bonuses depend solely on business unit results
+- Cross-team collaboration reduces capacity for primary business unit goals
+
+**Individual vs. Organizational Motivations**
+
+- Contributors want to expand networks and gain technical knowledge
+- Organizations need to balance individual growth with business unit objectives
+
+## Solutions
+
+### Financial Incentives
+
+- **Gratitude budgets**: Allocate specific budgets for recognizing InnerSource contributions
+- **Performance bonuses**: Include InnerSource participation in annual performance evaluations
+- **Project-based rewards**: Provide financial incentives for completing specific InnerSource tasks
+- **Platform tools**: Use tools like Hey Taco and Bonusly for peer-to-peer recognition with monetary value
+- **Capacity planning**: Define corporate strategy to keep development capacity at 85%, reserving 15% for cross-team initiatives
+- **Reimbursement mechanism**: Central, funded mechanism refunds managers for time spent on InnerSource projects
+- **Engineering bonus allocation**: Allocate 15% of engineering bonuses based on InnerSource contributions
+
+### Institutional Recognition
+
+- **Badging programs**: Implement digital badges for different levels of contribution (Acclaim, Credly)
+- **Public recognition**: Feature contributors in company newsletters, blogs, or town halls
+- **Manager awards**: Recognize managers who enable their teams' InnerSource participation
+- **First contribution celebration**: Automatically celebrate and publicize first pull requests
+- **Cross-team recognition**: Promote recognition at the company level, not just within teams
-- Managers of business units are held accountable for their results. Reducing
- the capacity of an associate contributing to an InnerSource project rather
- than the goals of the business unit will make it harder for them to reach or
- exceed their goals.
-- The more time an associate spends on contributions to an InnerSource project
- which does not benefit his day-to-day work, the more will the workload for
- his teammates in his business unit increase.
-- The individual contributor would like to participate to enhance his
- professional network within the company and gain knowledge and experience
- with both the InnerSource method and the technical area he makes a
- contribution to.
-
-## (Possible) Solution
-
-- The top management sets and communicates a corporate strategy where development
- capacity are to be planned and committed to a maximum of 85% to home business units projects
-- A central funded formal contracting mechanisms, where line managers get
- refunded by the percentage of associates work time in InnerSource is in place.
-- Managers (middle-management) have a percentage of their bonus associated to
- contribution and the results of InnerSource projects not directly related/sponsored
- by their business units.
-- Utilize any existing engineering-wide bonus that allots some percentage of each employee's
- bonus to be aligned with Inner Source interactions. It could be # of commits, or commits +
- issues + documentation + chat interaction, etc. Utilize some kind of personally-linked
- statistic to fill, for example, 15% of each employees bonus. Note that this encourages
- after-hours type work more-so than regular work-week hours, but if combined with other
- solutions above, could hit the issue from multiple angles. (used partially @ RedHat)
+### Career and Professional Growth
+
+- **Goal alignment**: Allow employees to align InnerSource work with individual performance goals
+- **Skill development**: Use InnerSource projects for upskilling in new technologies
+- **Leadership opportunities**: Create pathways for contributors to become project leaders or champions
+- **Promotion support**: Use peer recognition and contributions as evidence for career advancement
+- **Mentorship roles**: Enable experienced contributors to mentor others
+
+### Manager Incentives
+
+- **Management recognition**: Reward managers who promote InnerSource participation
+- **Team efficiency metrics**: Demonstrate how InnerSource reduces friction and improves team productivity
+- **Strategic alignment**: Show how InnerSource contributions align with broader organizational goals
+- **Management bonuses**: Make managers' bonuses partly depend on InnerSource contributions and project results
## Resulting Context
-- The top management communication of the strategic decision to plan and commit
- 85% of developers capacity and have 15% buffer for other company initiatives,
- for instance InnerSource projects, shows their support and sets a clear sign
- that InnerSource is part of the corporate goal and get executive air cover.
-- Allocation of corporate funds to business units for reimbursement of
- development capacity makes easier for business units to contribute to InnerSource
- projects without to commit their cost center budget.
-- Setting the bonus of middle-management partially depending on contributions and the success
- of InnerSource projects, motivates managers to encourage their developers participate on those
- projects
-- With a stable group of contributors, it is more likely that some of them will
- eventually achieve trusted committer status and the InnerSource project will be able
- to establish a healthy community around their project.
+After implementing incentive mechanisms, organizations experience:
+
+**Positive Outcomes**
+
+- Increased voluntary participation in InnerSource projects
+- Better cross-team collaboration and knowledge sharing
+- Managers become more supportive as they recognize the value for their teams
+- Employees find new career growth opportunities
+- Organization benefits from improved code quality, reduced duplication, and faster innovation
+- A stable contributor group emerges, with some becoming trusted committers
+
+**Strategic Benefits**
+
+- Top management's 85%/15% capacity allocation shows executive support and makes InnerSource part of corporate goals
+- Corporate funding for InnerSource projects prevents cost center budget impacts
+- Manager bonuses tied to InnerSource success motivate participation encouragement
+- Strong InnerSource community develops with committed contributors
+
+**Potential Challenges**
+
+- New challenges in measuring contributions and ensuring fair recognition across different contribution types
+- Need for ongoing management of incentive programs and recognition systems
+
+## Rationale
+
+This approach targets key human motivators for voluntary participation: financial security, social recognition, and personal growth. Combining incentives appeals to diverse motivations, creating a sustainable system that benefits both individuals and the organization. Including manager incentives is vital because middle management often controls participation in cross-team initiatives.
+
+## Known Instances
+
+TBD
## Status
@@ -101,6 +128,7 @@ and 100% allocated to the home business unit projects
* Georg Gruetter (Robert Bosch GmbH)
* Robert Hansel (Robert Bosch GmbH)
* Nick Yeates
+* Jeff Bailey
## Alias
diff --git a/patterns/1-initial/incentives-and-disincentives.md b/patterns/1-initial/incentives-and-disincentives.md
new file mode 100644
index 000000000..dc3531a3f
--- /dev/null
+++ b/patterns/1-initial/incentives-and-disincentives.md
@@ -0,0 +1,76 @@
+## Title
+
+InnerSource Incentives and Disincentives
+
+## Patlet
+
+Lack of awareness for incentives as well well as disincentives for InnerSource contribution decrease the chances of an InnerSource project receiving contributions; this is addressed by sharing a comprehensive list of potential incentives and disincentives.
+
+## Problem
+
+Soliciting contributions to an InnerSource project in a corporate environment, where every potential contributor is fully utilized is a difficult task.
+Contribution will likely contribute only, if there is an incentive for them to do so and if disincentives are absent.
+Without awareness of these incentives and disincentives, a maintainer will likely face challenges actively soliciting contributions.
+It is important for Trusted Committers to be aware of and advertise incentives for potential contributors.
+
+## Context
+
+* Potential contributors in a corporate environment are most likely fully utilized and have no "free" time to contribute to InnerSource projects, especially when they are not directly related to their work.
+* Especially in early stages of InnerSource adoption, potential contributors as well as inexperienced Trusted Committers might not be aware of the incentives of InnerSource contribution.
+
+## Forces
+
+* The more awareness a Trusted Committer has for the potential incentives and disincentives for InnerSource contribution, the more likely will they be able to successfully advertise them and successfully solicit contributions.
+* The higher the incentive to contribute to an InnerSource project, the more likely it will receive contributions.
+* The more potential contributors are aware of incentives for InnerSource contribution, the more likely is their contribution.
+* Even small disincentives will likely deter potential contributors to contribute.
+
+## Solutions
+
+The incentives and disincentives for InnerSource contribution depend on the concrete organizational context of the InnerSource program.
+This pattern provides a list of potential incentives and disincentives for InnerSource contribution, which allows both Trusted Committers and potential Contributors to quickly assess, which incentives and disincentives are present in their concrete context.
+These are listed in alphabetical order in the following two sections.
+
+### Potential Incentives
+
+* **Achieving mastery** in your craft
+* **Autonomy** in how contributions are crafted
+* **Collaboration with like-minded people**
+* **Free stuff**, such as e. g. free CI/CD infrastructure
+* Help other people **grow personally**, specifically as a Trusted Committer
+* **Intellectual Challenge**
+* **Making work easier/more productive/more fun** for yourself and your peers
+* **Personal mobility** within the organization, e. g. by collaboration with peers outside of your team, gaining visibility and the opportunity to move to different areas of the organization
+* **Sense of Impact** of ones contribution inside and outside of the organization
+* **Showcasing your successes** and receiving feedback and appreciation
+* **Time to contribute**, so that contributions can be made during working hours
+
+### Potential Disincentives
+
+* **Absence or lack of free, essential development infrastructure** such as e. g. CI/CD infrastructure
+* **Conflicting InnerSource related goals or incentives in the leadership hierarchy** leading to ambiguity and dissatisfaction by all parties involved in InnerSource
+* **For managers: high transparency for their peers in how the managers staff contributes to InnerSource projects**, especially when there is financial pressure and a significant amount of contributions are made outside of their "silo" and leading to local optimization
+* **Local optimization**, impeding contributions to "non-local" projects (different silo)
+* **Monetary rewards** for knowledge workers (see [RSA Animate on Motivation (by Dan Pink)](https://www.youtube.com/watch?v=u6XAPnuFjJc))
+* **No or lack of time to contribute during working hours**, resulting in InnerSource being on-top effort
+* **Too much freedom**, resulting in fragmentation and lack of orientation and alignment
+
+## Resulting Context
+
+Both Trusted Committers and (potential) Contributors are aware of the _potential_ incentives and disincentives for InnerSource contribution.
+They can assess which incentives and disincentives are present in their context and thus make an informed and balanced decision, whether or not to contribute.
+It is less likely that potential contributors don't contribute due to unawareness of incentives.
+Trusted Committers can actively leverage incentives when soliciting contributions.
+
+## Known Instances
+
+TBD
+
+## Authors
+
+* Georg Grütter (Robert Bosch GmbH)
+
+## Status
+
+* Initial
+* Drafted at the InnerSource Gathering Berlin 2025
diff --git a/patterns/1-initial/innersource-ambassador.md b/patterns/1-initial/innersource-ambassador.md
new file mode 100644
index 000000000..cbb9e9931
--- /dev/null
+++ b/patterns/1-initial/innersource-ambassador.md
@@ -0,0 +1,98 @@
+## Title
+
+InnerSource Ambassadors
+
+## Patlet
+
+When driving InnerSource adoption through a large, decentralized organization it is hard to understand and address the local challenges that come up in different departments and regions.
+Local volunteers, called InnerSource Ambassadors, provide localized support by promoting InnerSource principles and acting as a communication bridge between their teams and the ISPO.
+
+## Problem
+
+The InnerSource Program Office (ISPO) cannot be everywhere at once within a large, decentralized organization. Without localized support, the ISPO struggles to understand and/or fill the unique challenges and needs of different departments or regions and cannot effectively promote InnerSource practices across the organization.
+
+## Story
+
+In a multinational organization, the ISPO implemented InnerSource initiatives but noticed uneven adoption across departments. After appointing a local ambassador in one department, adoption rates improved as the ambassador tailored practices to the department's context and provided valuable feedback to the ISPO.
+
+## Context
+
+- The organization is large and has multiple independent departments.
+- The departments have separate, independent drivers of culture and workflow.
+- An ISPO has been established to drive InnerSource adoption.
+- Departmental leadership is supportive of InnerSource.
+- The ISPO is too small or disconnected to effectively influence change across all departments at the organization.
+- Employees with a passion for collaboration and InnerSource principles are present within the organization.
+
+## Forces
+
+- **Geographical and organizational scale:** The ISPO cannot physically or logistically engage with every department.
+- **Communication barriers:** Departments may have unique cultures and needs that are not immediately visible to the ISPO.
+- **Workload balance:** Ambassadors must fulfill this role alongside their primary responsibilities.
+- **Trust and credibility:** Ambassadors must be trusted by their teams and the ISPO.
+
+## Sketch (optional)
+
+*A diagram showing the ISPO at the center, with ambassadors positioned in various departments acting as bidirectional conduits of information and influence.*
+
+## Solutions
+
+- Identify and recruit at least one volunteer ambassador from each department in the organization.
+- The ambassadors should be enthusiastic about InnerSource and ideally have experience with open source.
+- Multiple ambassadors may be needed if there isn't a single person that has visibility and influence across the department to effectively advocate for and support InnerSource everywhere. People in the department can help to identify if one ambassador is sufficient or if multiple are needed.
+- Ambassadors support and encourage InnerSource across the department while maintaining their primary organizational roles.
+- Strive to have departmental leadership support (and even assist in identifying) the ambassador.
+- Train ambassadors on InnerSource principles, tools, and the goals of the ISPO.
+- Establish clear expectations for ambassadors, including acting as a liaison, promoting InnerSource practices, reporting impactful instances of InnerSource activity, and providing feedback to the ISPO.
+- Create incentives for the ambassors, e.g. making ambassador work part of the reward system of the organization and praising their work (refer to the pattern [Praise Participants](../2-structured/praise-participants.md)).
+- Create a support network among ambassadors to share best practices and foster a sense of community.
+- Schedule regular check-ins between ambassadors and the ISPO to gather insights and provide guidance.
+
+## Resulting Context
+
+- Localized InnerSource support increases adoption and effectiveness.
+- The ISPO gains valuable, real-time feedback on challenges, successes, and opportunities within different departments.
+- Ambassadors become advocates for InnerSource, fostering a culture of collaboration.
+- Workload balancing remains a challenge, but most ambassadors find the role rewarding and career-enhancing.
+
+## Rationale
+
+InnerSource Ambassadors leverage their existing knowledge of their departments and relationships within the organization to address challenges the ISPO cannot solve alone. This decentralization of responsibility enhances the ISPO's reach while maintaining centralized oversight.
+
+The rewards for the ambassadors will vary by individual motivations. Rewards that ambassadors have expressed are that being an ambassador provides opportunity to build their internal network, enhance their communication and influence skills, build their knowledge further about InnerSource, build their presentation and speaking skills, and learn about other products and teams within their company.
+
+There are many examples in the industry, using similar concepts. Sometimes used as part of the marketing activities of the company as well (i.e. to advertise for their products).
+
+Here some examples from the commercial domain, academia and open source:
+
+- **IBM** is using similar concepts in various areas: [IBM Champions](https://www.ibm.com/community/ibm-champions/), [IBM Z Ambassadors](https://www.yourbigyear.com/ibm-z-student-ambassador-program), [IBM Skillsbuild Student Ambassadors](https://www.yourbigyear.com/ibm-skillsbuild-student-ambassador-role)
+- **IBM Research** has a concept called [IBM Quantum Ambassadors](https://www.ibm.com/training/badge/ibm-quantum-associate-ambassador)
+- **Red Hat** has a concept called [Red Hat Champions](https://access.redhat.com/champions)
+- **CNCF** has a concept called [CNCF Ambassadors](https://www.cncf.io/people/ambassadors/application-process/)
+
+## Known Instances
+
+- **SAP** has a concept called [Open Source Champions](https://community.sap.com/t5/open-source-blogs/sap-open-source-champions/ba-p/13539587) that seems related
+- **[WellSky](https://wellsky.com/)** has the analogous concept of InnerSource Champions representing each business area of the company.
+- **Siemens** has 70 Social Coding Ambassadors from across subsidiaries and countries that promote the Open and InnerSource mindset across the company.
+- **Robert Bosch GmbH** has the analogous concept of *Social Coding Advocates*.
+
+## Status
+
+- Initial
+
+## Authors
+
+- Sebastian Spier
+- Russell Rutledge
+
+## Acknowledgments
+
+- [Russell R. Rutledge](https://github.com/rrrutledge) for sharing the idea and providing feedback
+- [Guilherme Dellagustin](https://github.com/dellagustin-sap) for sharing a similar concept used for open source adoption
+
+## Alias
+
+- Departmental InnerSource Representatives/Champion/Ambassador/Evangelist
+- Local InnerSource Representatives/Champion/Ambassador/Evangelist
+- Social Coding Ambassador
diff --git a/patterns/1-initial/innersource-as-career-booster.md b/patterns/1-initial/innersource-as-career-booster.md
new file mode 100644
index 000000000..f2fe58e2b
--- /dev/null
+++ b/patterns/1-initial/innersource-as-career-booster.md
@@ -0,0 +1,88 @@
+## Title
+
+InnerSource as a Career Booster
+
+## Patlet
+
+Many employees wonder how contributing to InnerSource projects benefits their careers beyond their immediate team objectives.
+By engaging in InnerSource, individuals expand their skills, grow their network, increase visibility across the organization, and unlock new career opportunities.
+
+## Problem
+
+Contributors often perceive a conflict between spending time on InnerSource projects and advancing their own careers within their team structure, worrying that their efforts outside of their immediate team won't be recognized, rewarded, or aligned with their manager's goals.
+
+## Story
+
+A developer named Mia worked on a customer-facing product but frequently found herself fixing issues in a shared internal library managed by another team. Initially, she worried this was a distraction. But her consistent contributions were noticed across teams, and soon she was asked to lead a cross-functional initiative. Her reputation grew beyond her team, and her promotion case became significantly stronger due to her recognized impact across the organization.
+
+## Context
+
+- The organization has active InnerSource projects with open contribution models.
+- Contributors are typically evaluated based on performance metrics within their own teams or reporting lines.
+- Performance reviews and promotions prioritize local (team-level) impact.
+- There is no formal recognition system for cross-team contributions.
+- Contributors are autonomous in how they manage their time to some extent.
+
+## Forces
+
+- **Local vs Global Optimization**: Employees are incentivized to focus on team goals over organizational goals.
+- **Recognition Visibility**: Effort outside one's direct team may be invisible to their manager or leadership chain.
+- **Risk Aversion**: Individuals may avoid unfamiliar domains or people, fearing judgment or failure.
+- **Career Laddering**: Most career frameworks reward specialization, but InnerSource often requires generalist or systems thinking.
+- **Cognitive Load**: Switching contexts between one's own project and InnerSource work can temporarily reduce productivity.
+- **Informal Influence**: Power networks within organizations often form across reporting lines, rather than within them.
+
+## Sketch
+
+_(Illustration of a person bridging multiple teams through contribution lines, forming a network of reputation that extends beyond a siloed organizational chart.)_
+
+## Solution
+
+- **Showcase Contributions**: Encourage contributors to document and publicly share what they've done—use README updates, changelogs, team demos, and retrospectives.
+- **Manager Alignment**: Educate managers on how InnerSource work contributes to organizational success and advocate for its inclusion in performance reviews.
+- **Sponsor-Led Recognition**: Have senior leaders or project maintainers acknowledge and elevate contributors in visible channels (e.g., newsletters, all-hands shoutouts).
+- **Skills Framing**: Frame InnerSource work as evidence of cross-functional collaboration, systems thinking, and initiative—qualities valued in promotion cycles.
+- **Strategic Contributions**: Guide contributors to choose InnerSource work aligned with known organizational pain points or strategic initiatives.
+- **Peer Signaling**: Use endorsements from other teams to validate a contributor's impact and influence.
+- **Social Capital Theory Application**: Build trust and reciprocal goodwill by contributing value, which often returns as opportunities (e.g., invitations to new projects, referrals, promotions).
+- **Game Theory Insight**: Treat InnerSource as a non-zero-sum game—helping other teams increases total organizational output and reputational payoff over time.
+
+## Resulting Context
+
+Contributors who engage in InnerSource build a broader reputation, accelerate their learning, and gain exposure to leadership and lateral networks—benefits that compound into real career growth.
+
+The organization sees better collaboration and higher retention among high-performing, ambitious individuals.
+
+This creates a reinforcing loop where career incentives and organizational goals align more closely.
+
+## Rationale
+
+From a **career development** perspective, diverse project experience, network breadth, and initiative-taking are strong signals of promotability.
+
+**Psychologically**, autonomy, mastery, and purpose—core drivers of motivation—are naturally supported by InnerSource work.
+
+From a **game theory** lens, InnerSource transforms isolated career efforts into a reputational economy, where value created for others is returned through visibility, referrals, and opportunities.
+
+## Known Instances
+
+TBD
+
+## Status
+
+- Initial
+
+## Authors
+
+- Jeff Bailey
+- Sebastian Spier
+
+## References
+
+- Dirk Riehle - [How Open Source Is Changing the Software Developer’s Career](https://dirkriehle.com/wp-content/uploads/2015/04/r5rie-v3.pdf)
+- Bertrand Delacretaz - [How to convince your left brain (or manager) to follow the Open Source path your right brain desires](https://www.youtube.com/watch?v=F0SmiQ3SF6Q)
+
+## Alias
+
+- Career Growth through InnerSource
+- InnerSource for Personal Branding
+- Cross-Team Contributions as Promotion Strategy
diff --git a/patterns/1-initial/innersource-before-open-source.md b/patterns/1-initial/innersource-before-open-source.md
new file mode 100644
index 000000000..80c9f12c0
--- /dev/null
+++ b/patterns/1-initial/innersource-before-open-source.md
@@ -0,0 +1,98 @@
+# Title
+
+Require InnerSource before Open Source
+
+## Patlet
+
+Maintaining and managing open source projects can be challenging for organizations, due to a lack of internal infrastructure and people with the knowledge of the required collaboration practices. By requiring projects to be InnerSource before becoming open source, teams have time to establish the necessary internal support, governance, and collaboration skills needed for successful community engagement.
+
+## Problem
+
+When a project is released as open source without first building a strong internal contributor base, it may face challenges such as insufficient documentation, unclear governance, and difficulty managing external contributions. Without prior experience in collaborative development, maintainers may struggle to handle the influx of external contributors, resulting in an unsuccessful or unsustainable open source project.
+
+## Story
+
+A large tech company once open-sourced a widely used internal tool, expecting external developers to contribute immediately. However, due to a lack of contributor guidelines, onboarding processes, and structured governance, external adoption was low, and internal maintainers were overwhelmed with unstructured contributions and support requests.
+
+After seeing this, the company implemented an InnerSource-first policy, ensuring internal teams could practice open collaboration before releasing future projects as open source.
+
+## Context
+
+This pattern applies in organizations that:
+
+- Want to release internal software as open source.
+- Lack structured internal collaboration processes.
+- Have teams unfamiliar with maintaining open source projects.
+- Need to establish internal governance and contribution models before engaging the broader open source community.
+- Operate in regulated industries (healthcare, financial services) where compliance requirements are stringent.
+- Have concerns about intellectual property, security, or competitive advantage when releasing code publicly.
+- Want to validate project value and adoption internally before external exposure.
+
+## Forces
+
+- **Collaboration Readiness**: Teams may not be used to handling external contributions or asynchronous collaboration.
+- **Documentation Gaps**: A lack of contributor guidelines, API documentation, and onboarding materials can hinder adoption.
+- **Governance & Ownership**: Without clear ownership and decision-making processes, project direction can become unclear.
+- **Support Burden**: Open source projects require active maintainers to review pull requests, address issues, and engage the community.
+- **Security & Compliance**: Code may require review to meet licensing and security requirements before being released publicly.
+- **Regulatory Compliance**: Increasing government regulations may require additional considerations when moving from InnerSource to Open Source.
+- **Intellectual Property Risk**: Corporate information embedded in comments or code may create legal exposure when released publicly.
+- **Bidirectional Movement**: Projects may need to move from Open Source back to InnerSource if they become unmaintained or face sustainability challenges.
+- **Market Awareness**: Limited understanding of InnerSource practices in the broader market may affect external adoption.
+
+## Solution
+
+Before making a project open source, require it to go through an InnerSource phase where:
+
+1. The project is made available internally for contributions from other teams e.g. via an [InnerSource Portal](../2-structured/innersource-portal.md).
+2. Clear [documentation](../2-structured/base-documentation.md) (including contribution guidelines), and [governance structures](../2-structured/governance-levels.md) are established.
+3. Maintainers gain experience managing contributions, reviewing pull requests, and addressing issues.
+4. Maintainers get to practice the soft skills required to support a community of people outside of their own team.
+5. Internal adoption and success metrics are measured to determine if the project is ready for external release. Some possible metrics are detailed in the [Repository Activity Score](../2-structured/repository-activity-score.md).
+6. Feedback loops are created to refine processes before engaging a broader open source audience.
+7. **Legal and compliance review**: Conduct thorough checks for copyright, patents, and corporate information that may be embedded in comments or code before external release.
+8. **Security assessment**: Perform security reviews to ensure open sourcing won't create vulnerabilities or expose sensitive information.
+9. **OSP/OSPO vetting**: Have an Open Source Program Office (OSPO) or equivalent team review the project for engineering quality, legal compliance, and strategic alignment.
+10. **Approval process**: Establish a formal approval workflow where projects are added to an approved list that legal departments can reference for ongoing compliance.
+11. Decision about whether or not the project should be released as open source (based on the success metrics defined earlier). The incubation phase as an InnerSource project can be seen a quality gate. So naturally not all projects will pass that gate.
+
+## Resulting Context
+
+- Teams develop the skills necessary to manage open source projects effectively.
+- Contributor documentation and governance structures are established and tested.
+- Further internal teams start using the project (adoption), providing validation of the project's value before external release.
+- The transition to open source is smoother, with better preparedness for external collaboration.
+
+## Rationale
+
+Releasing a project as open source may feel daunting, especially when an organization has never done this before. Being able to practice things internally can be a safer space for experimentation and failure.
+
+If it turns out that a given InnerSource project does not gain enough adoption internally, the organization may decide to not make the project open source at all. This assumes that the organization is large enough to allow for a realistic internal test.
+
+Allowing the maintainers of the project to practice the required skills internally mitigates risks, improves sustainability, and maximizes the chances of long-term success of the project.
+
+## Known Instances
+
+- **Mercado Libre (MELI)**
+
+### Mercado Libre (MELI)
+
+Mercado Libre tags projects with badges to identify at which stage of their self-defined InnerSource maturity a project currently is. The first step for a project is to receive the **InnerSource Ready** badge. This indicates that the project meets the structure, artifacts, and documentation quality required for the initiative. This stage also uploads project information to our internal [InnerSource project portal](../2-structured/innersource-portal.md), creating more visibility for the project, allowing it to receive contributions and become better known within our teams.
+
+We are currently reviewing our InnerSource stage flow, where a project will be able to use AI-based tools to automatically generate all the necessary requirements to be considered InnerSource Ready. This will allow us to focus more on making it active and attractive to the internal community. For more about the different different stages of InnerSource maturity used at Mercado Libre, see [Transforming software development at Mercado Libre with InnerSource](https://medium.com/mercadolibre-tech/transforming-software-development-at-mercado-libre-with-innersource-016b35e1ded3).
+
+## Status
+
+- Initial
+
+## Author(s)
+
+- Sebastian Spier
+- Fernando Correa
+- Jeff Bailey
+
+## Alias
+
+- InnerSource as a Stepping Stone to Open Source
+- InnerSource before Open Source
+- InnerSource Incubation before Open Source
diff --git a/patterns/1-initial/innersource-hackathon.md b/patterns/1-initial/innersource-hackathon.md
index d1af739e8..762600f63 100644
--- a/patterns/1-initial/innersource-hackathon.md
+++ b/patterns/1-initial/innersource-hackathon.md
@@ -14,12 +14,14 @@ The company wants to adopt InnerSource as software development methodology but o
### Scenario 1: Challenges in scaling beyond the early adopters
-The senior leadership believes in InnerSource and wants to drive it throughout the company. The engineers who are familiar with open source principles and/or understand the benefits of InnerSource are the early adopters. There is success with these initial pilot project and teams. Now the next step is to drive it across the company. There might be reluctance from engineering teams due to various factors like:
+The senior leadership believes in InnerSource and wants to drive it throughout the company. The engineers who are familiar with open source principles and/or understand the benefits of InnerSource are the early adopters. There is success with these initial pilot project and teams.
-* not familiar with InnerSource and being ignorant to know about it
+Now the next step is to drive it across the company. There might be reluctance from engineering teams due to various factors like:
+
+* not familiar with InnerSource or open source practices
* not enough time to prioritize InnerSource, given the regular work deliverables
-* relunctance to changing ways of working when everything works well already
-* perception that InnerSource requires more work and responsibilities
+* reluctance to changing ways of working when everything works well already
+* unclear return on investment for the upfront setup costs that an InnerSource project takes
### Scenario 2: Challenges in getting contributions and building community around InnerSource projects
@@ -43,7 +45,7 @@ For those new to InnerSource or any technology/methodology, there is a need for
Organize a company-wide hackathon focused on InnerSource. An InnerSource hackathon provides a safe space for engineers to try and contribute to InnerSource projects without any presumption and prejudice. It could be a 1 or 2 day event.
-It can preferrable be organized by InnerSource Program Office (ISPO), if it exists in the organization or by the Open Source Program Office (OSPO), if OSPO also drives InnerSource within the company. It can also be organized by other common service organizations too, if need be. Basically a central team or a group of individuals, who believe in InnerSource, can organize the hackathon.
+It can preferable be organized by InnerSource Program Office (ISPO), if it exists in the organization or by the Open Source Program Office (OSPO), if OSPO also drives InnerSource within the company. It can also be organized by other common service organizations too, if need be. Basically a central team or a group of individuals, who believe in InnerSource, can organize the hackathon.
All engineers in the organization can participate in the hackathon. The participants can be new to InnerSource, or InnerSource practitioners already. They can participate individually or as a team. Participating as a team also provides a safe environment, for example, those are new to InnerSource can team up InnerSource practitioners.
@@ -73,7 +75,7 @@ All these help scale InnerSource in the organization.
## Known Instances
-* Retail company in northern Europe
+* IKEA (Ingka Group)
## Status
diff --git a/patterns/1-initial/innersource-portal-hygiene.md b/patterns/1-initial/innersource-portal-hygiene.md
index 9ab6392ea..fc33cddd2 100644
--- a/patterns/1-initial/innersource-portal-hygiene.md
+++ b/patterns/1-initial/innersource-portal-hygiene.md
@@ -27,8 +27,8 @@ Large organization with lots of public repos, not all necessarily meeting the de
## Sketch
-- Click [here](https://www.draw.io/?lightbox=1&highlight=0000ff&edit=_blank&layers=1&nav=1&title=Untitled%20Diagram.drawio#R7V1Zl5s4Fv41fiwfdsxjLanunpN0MqnMdOcpB4NsqwOIZqmlf%2F1oQRgt2Dg2xjUp55yUEULgu%2Bne716JmX2bPv9ShPnmA4pBMrOM%2BHlm380sy%2FR8G%2F8hLS%2BsxTIck7WsCxg3vbYND%2FAf0DQaTWsNY1AKHSuEkgrmYmOEsgxEldAWFgV6ErutUCLeNQ%2FXQGl4iMJEbf0DxtWGtS5cY9v%2BK4DrDb%2BzaTRn0pB3bhrKTRijp06T%2FW5m3xYIVexb%2BnwLEkI9Thd23X3P2fbBCpBVQy64WWYf%2FduH%2BvG%2F%2Fv3HX%2B9v%2Fp18ubsyLZ%2BN8xgmdfOTZ5aX4BFvVggPjJ%2B7emmI4f1dI37iqqSsusYdTC9%2F3p7E39bk701YRRt89l9oWfIR8cOxQVmXhi7t%2BFaB6iwG5HlNfPppAyvwkIcROfuE5Qu3bao0aU7HYblp%2B5Jh78MUJkTOfgXJI6hgFDYnGqny8WFZFeg7uEUJKugt7cU1%2BYfPPIKCXJJcJ3Cd4XMVyttHJOfAcy%2FdzZabWA8ASkFVvOAu%2FAKHyzLXAbNRiqetQFlcbDYdYfIWDXPCRojX7eBbPuMvDasPYLunMP03rD7FA6oLTG3L%2BISKKkwU%2FnSoz8n1PlyC5BMqYQURIdsSVRVKcYewoWOEyQQwsW8S0vMmjL6vKZs7PFjRTy8PGM%2B49lk6LhrGwrg3CLthkuhGbpXP6EqOwc7k5Oelz2tiwuYQlf4cYnNSzp9gRi86hRTIQuDoZMBVZcDklubkMmArMvAZ5ISRiD53FqZAEQCRFaaokAfReA6%2FgOfqtyyvKx1DHfpp9FdgNPng9mWN5SwjY5ATgp4vdsiBzqZwSU3AqjoRs11LYLZpOHNX4bdpaXTedEdit6Ow%2B6FeprDaY4QH8VdH1Q5DTI1mevSjsxOqLNyRf6ostEw9BccCiWO2qfCLey4Cu8ay0KapUc81LAmNsHKCJ%2Fx%2F0dFXiYkVVYwu9wqAZ%2BxwSTsQfuQIZhV9avdm5hLyhnWFyoZjOsb0WGfMdpitv5ADImWnYYdjcYVpGOKr%2FDAdjf5YY5lLU2cvW4YQVuzQJEJwPKVu0BpleM5ElFiEyH%2BBqnpp1ITQX%2BQZGxHEiosq0RHflc3cO2b8Rr6rsFiDap9roDKmAElYwUfxQXREbi79RMSr4wRZztxzfMNdLCzbtQJrIbpEwWLOTjim6XuO54g3YD%2BvGVNiZPuQR%2FBW9YduNyD6XpKIIYQJ5qHMW8KUh%2BZwy9l329abo7kPnmH1J7kcqwI7%2BtoMRr7fPXcPXvhBhinBLnIWC97wtXt2eyE9Eq78BAqIiUnUnTaeUABN55wCeF0U4UunQ2PteuVzYZiCQF6ZUjAl9betnf3xF%2FYEJxVTbtt0YpqHZTmJkG4Fzj1E3KaQLOZzn9y2eZbo2puBPch6KQP5thQoWtJA7BeOZwZVHxEbhBUq0hn5iSyGXxY8fO%2B6H%2FK5qJFLeUbcoHRZl%2FuD%2BxP4EL4teRBaH9zW%2BBCL0XwIVyGwqrNZfE1wK%2BJ5JVipYdSncIK6bbVvfIXzBuobkyeVQR36uxry87ZjXQ5RmexA4upQrfSkcRxpnJGVkotIR2b%2BKLDuqDp31fqhRl0k%2BvPLkAgA9mqwU8Mi%2FF29wHMONcHFGX0f%2Fr0j4wN8n8k0w3EHqkaf7TpS5hcy1OgMm4pOJaz2QmPgDkSTLRFNxg54JF6whXcV0PkOlnlCHb8IxUSCywzmOSA3rpB2EoNZlNS0K8y2%2BvP53fXdh3fzNB6KXJ9BJQSI%2BxbzEdLI83fwJKItXkd9roy5YbiiDrnWbi3CByOGAfbgONTaObuTH8YxmiOVxl%2BISuMa5iClOTTItd3FPOh8FoPmkUMjGceQ7tpQSRuZbK%2Fmw6PVqgSj2AZPtQ3%2FrgHlKZ1nSJDNZ57XMeEMSTqZ1mn1p02C7tWfY4OdozxdX%2FVaOLMpi0nImoGwgNn6Av0MfxQ%2F46LFxTemFJdARTamlAYRcTOPNgL%2BVEwdB8z1HRH8cv1hIdGhU5lpBOLM7FnnQNnUzIuQHJc9SJ4rl9vvwipchqUmidpkQ6OXBGJ5LfajIUsm2O%2BXbUObRv9YV3gUMDsZbGIaTk%2Fg3IVNdOUKwVjWQVOjEqxWthfE3nJpWfOcTCI9RI5RVKf0px9M5JMQUw7IXC0KpctkeWOlFq3g9ZJTglotXy2jOC8xbXXmejXElOHmxWJqYqpe41td0sh1SUYgZdptHv5OWJqk5tq%2FYhHALaI46KPF1177YPsiPzSlKKYONx%2Bt9MHW1oiGKSEBdXpgum4bsmVJSVNEsy5ox%2F0jTLJspoMBCdeuGroTHLAlPfnlxDpelcw8kpMZKlJsBxg%2BKOKHpBiV3k6CBjdVRUqGrwkprHtI5Ig52vPnl3%2FmEbYN5ESL9rHn5GjfxM%2FenVEu9Rm7DvB%2BlHffKNKvY9Nop7Mga2FSCfeCOiPRd3FHg3gXx%2BrvvlXCnb31KLFqmXaCunvK6rwT2Rsea7cwpcbeLM6ZJnV8hXKvOPg%2FNaTDUzr7yx160q%2FngXQcdQ7%2FBWC9DKv%2BmVvk4R6f%2BEDaH1dLIMXEbYnHvnJebzQd8d50ZJ%2FoD9ER90gd6cnD2phCvJjRN9xAtLByKcLIJQTOYkpZufSMymBZsSeFyB21OOuhQsX%2FgTG1AnPo6ojxzGkwqTk9QEU6BZdBEMzEDBRdMnNwle8kWje0UoZhQpNpnVqxx7UO3yCMwyp8vYpnT%2B7F8FUJHfL%2Bp2wWVLC1FSxBTGNaEfvJC%2FQXWfArUx%2BxhMhtux6YS3gHfsP%2F7slT3qyLMIZgey5DJJWi4njtBX04ngDd7cUg9WiSAjpJYtKVBnrc%2FGhyy7DM2a9dwWfyHAp8GD6VzrwATC9%2Fi8jzEFiMfRN71WWDCxwPMUtwfaBGlt5ZxU1d53EHElDxisjLmQOsgZNAWxF8uSUI3tB4dVr%2FylOzYq1skHLsixGNH5MM%2BzVLxtHVssdJhopktJIhVa6pKx467NR5AqKMnNMZMB1X8gYMTZ5f5w2Mhvt5aoij0FOe15Z5ms0r7M4W30osRwRezTvuLb4rzEvQ8Xi7CpZIE3TBfuSQlKC0aFzrdQzi0kHFe%2BIwHUbplrHwtiOxjHbVSruYXRxhvIpR01T5f6Egl65q%2BoSVYTvt0n47OxThMI1jg60fqvPyTREfc85Q5WXyjPblg2Jj1pueuDKRFwIOkLRpy5PVqp0HkJFpPEMVXGEykRmBFCmrdX0rVMwOqWJ%2BPR6A6wRDgbjRfAC%2Bz8ObD9BXkf1z%2BQC%2B6nz3aCpd4JUhghSJBQB5vUxgNGsXd6EnUvvxivXU96b21P03T12Qz59dS9t68NfpqV%2BAh7XT%2BO33u4Z6%2BMGkNSH%2B276D09f3uo7q4525vtfvXya%2BMQXW95QP%2BrodR%2F9kH9Vj31sbSUd%2Fan56p%2F5RucV7VACyGQqeqWryN6Ysx0NCuoY2JdYVk4TsRlvi2QVUtGg5jGEOSxg1YUICm14lBQ5j4pMAWJcpIocVSHM6JswiGMO4pha%2BJv9hSWapR7qgnd6bJiLDdRaS2yTw7zqc7ykQxc2Exj3r2NUKRVHmmwRZV9x5zozVQuMGdyZXRlt9iVCEZXuVUAXZwDgG2Q85Wv6JVIU7MXy1mTlwpc5ohdeLvfaSJUFVZ%2Fa118Ar%2B%2F%2B5%2FsDNe8ZjRv9OyW9G681oXYrR0szuWqMlBwen05O3yf1NTy5fT7ypJ%2FdgANK5bzO4oQQ8NBYfELAOTgkM3S2O7YejMvA8u8VJpXGBKY0wdA8gaceChSeNc%2FDWCKeHajjnLj7xNUECKxgMpPh6aT3TfilD8FcZrIjpZwhYsZ0aulv9ixvDh8sSJXUFrovooRM0tEfWee276Uka7PsqSG7xIi%2FBgHhjMUmtHf6KanL38JFM7WRaF3ITc9W7Ibsx3mJ%2FA8a0KjYNvzM%2Fg7okeQEf2XIq4lPot4PsVtHCZqOvg%2BppBdCqectOJ4zsTkaiWPku%2BdfnZMjw1zrKrXlel5tv3bzOtxIUj5Bo7E1OUwY7kwF92GCKvQ9qxaRUgBzQtv0aB%2Bc97UZdnr7XUPxQuucgZLYRZ0OTmeXbJQipBOsk06EYfLcbpI%2BfSQjUKPuTLn%2BnyOlb3fcF1X0Hwf6M5VkrvwM1KG0WGizJO8KYfdQaRBVbe5O0C5I0ee%2FOQGcozypqTRGdIGtfihpPwzGdzNMUVhUtQLhnC6LJiIQib5J2yZJmmbZYpei51vSiNukq8AuP5Zoaw7PUvR7Jxv7Uwm5Ys7Nttq1DTUkMgPkdxlFYEu%2FuEZKgI0IJRRupi02ONyE2MD07xmuqrWZNsVXVWrWoY9UMsukhacROIjF4H%2B%2Feffzj93efH2Z8kVUfhKuAmnvxywFJrYEu%2F4AqAUlSeyW619iI0dOshRb3xgaNnvfaJmNOAmDBOp1ma2x8ZykPZ3m84QxVRZZa%2FHfsdvJMtD6HsKR7vpdlLe39fjH7veut7IQLA6czz5335U5innVi%2BJOjbdJbUVxPt4eDrfOGRsPbTENFRbX7BRqshL%2BBE2hWEVuCmVrLrwHkOmAcJhZ4Yt2bofZia%2FJodBoFWVnTXB%2FF5%2FAkUcGsBm1Jc5jn%2BLG4kao2QB1eXzX3htydB7nrXcvyk0F3pub9YT%2B9nZS33OBLGqezkpqXkA22khtq4ZYAMH8pRY%2FU0w%2F1K6X6LeGbsZrMWPW9lO2nM1a6MiXZWDXSA9OQOLw3mjp0Efbai5YNCDPpza45BqYFxJrnuRP3tI3izKAV5Cv6WoFmT1u2RdE9rSzHf2t4BcoSZEQb7wkT7795Lm40rQXdZHXCEh3TkHckMLXrEX1VGsd7DbfmbRCnCUF%2FYXVelDvY8YwwV0JKDWZ2VWuas1dxMoeTv1%2Fz4qLVE%2BxVcoGhKkdqfviVl%2BMuoFfSbbtfXux6ix3dR1pvr3l58WkU6eH2Az73%2BQDwpn3%2FAlY%2BspsbM%2B57Nmqb0CzKPuTA97H8wOpPfFggQt0t64nb9AHFgPT4Hw%3D%3D) for draw.io diagram
-- Click [here](https://www.draw.io/?title=Untitled%20Diagram.drawio#R7V1Zl5s4Fv41fiwfdsxjLanunpN0MqnMdOcpB4NsqwOIZqmlf%2F1oQRgt2Dg2xjUp55yUEULgu%2Bne716JmX2bPv9ShPnmA4pBMrOM%2BHlm380sy%2FR8G%2F8hLS%2BsxTIck7WsCxg3vbYND%2FAf0DQaTWsNY1AKHSuEkgrmYmOEsgxEldAWFgV6ErutUCLeNQ%2FXQGl4iMJEbf0DxtWGtS5cY9v%2BK4DrDb%2BzaTRn0pB3bhrKTRijp06T%2FW5m3xYIVexb%2BnwLEkI9Thd23X3P2fbBCpBVQy64WWYf%2FduH%2BvG%2F%2Fv3HX%2B9v%2Fp18ubsyLZ%2BN8xgmdfOTZ5aX4BFvVggPjJ%2B7emmI4f1dI37iqqSsusYdTC9%2F3p7E39bk701YRRt89l9oWfIR8cOxQVmXhi7t%2BFaB6iwG5HlNfPppAyvwkIcROfuE5Qu3bao0aU7HYblp%2B5Jh78MUJkTOfgXJI6hgFDYnGqny8WFZFeg7uEUJKugt7cU1%2BYfPPIKCXJJcJ3Cd4XMVyttHJOfAcy%2FdzZabWA8ASkFVvOAu%2FAKHyzLXAbNRiqetQFlcbDYdYfIWDXPCRojX7eBbPuMvDasPYLunMP03rD7FA6oLTG3L%2BISKKkwU%2FnSoz8n1PlyC5BMqYQURIdsSVRVKcYewoWOEyQQwsW8S0vMmjL6vKZs7PFjRTy8PGM%2B49lk6LhrGwrg3CLthkuhGbpXP6EqOwc7k5Oelz2tiwuYQlf4cYnNSzp9gRi86hRTIQuDoZMBVZcDklubkMmArMvAZ5ISRiD53FqZAEQCRFaaokAfReA6%2FgOfqtyyvKx1DHfpp9FdgNPng9mWN5SwjY5ATgp4vdsiBzqZwSU3AqjoRs11LYLZpOHNX4bdpaXTedEdit6Ow%2B6FeprDaY4QH8VdH1Q5DTI1mevSjsxOqLNyRf6ostEw9BccCiWO2qfCLey4Cu8ay0KapUc81LAmNsHKCJ%2Fx%2F0dFXiYkVVYwu9wqAZ%2BxwSTsQfuQIZhV9avdm5hLyhnWFyoZjOsb0WGfMdpitv5ADImWnYYdjcYVpGOKr%2FDAdjf5YY5lLU2cvW4YQVuzQJEJwPKVu0BpleM5ElFiEyH%2BBqnpp1ITQX%2BQZGxHEiosq0RHflc3cO2b8Rr6rsFiDap9roDKmAElYwUfxQXREbi79RMSr4wRZztxzfMNdLCzbtQJrIbpEwWLOTjim6XuO54g3YD%2BvGVNiZPuQR%2FBW9YduNyD6XpKIIYQJ5qHMW8KUh%2BZwy9l329abo7kPnmH1J7kcqwI7%2BtoMRr7fPXcPXvhBhinBLnIWC97wtXt2eyE9Eq78BAqIiUnUnTaeUABN55wCeF0U4UunQ2PteuVzYZiCQF6ZUjAl9betnf3xF%2FYEJxVTbtt0YpqHZTmJkG4Fzj1E3KaQLOZzn9y2eZbo2puBPch6KQP5thQoWtJA7BeOZwZVHxEbhBUq0hn5iSyGXxY8fO%2B6H%2FK5qJFLeUbcoHRZl%2FuD%2BxP4EL4teRBaH9zW%2BBCL0XwIVyGwqrNZfE1wK%2BJ5JVipYdSncIK6bbVvfIXzBuobkyeVQR36uxry87ZjXQ5RmexA4upQrfSkcRxpnJGVkotIR2b%2BKLDuqDp31fqhRl0k%2BvPLkAgA9mqwU8Mi%2FF29wHMONcHFGX0f%2Fr0j4wN8n8k0w3EHqkaf7TpS5hcy1OgMm4pOJaz2QmPgDkSTLRFNxg54JF6whXcV0PkOlnlCHb8IxUSCywzmOSA3rpB2EoNZlNS0K8y2%2BvP53fXdh3fzNB6KXJ9BJQSI%2BxbzEdLI83fwJKItXkd9roy5YbiiDrnWbi3CByOGAfbgONTaObuTH8YxmiOVxl%2BISuMa5iClOTTItd3FPOh8FoPmkUMjGceQ7tpQSRuZbK%2Fmw6PVqgSj2AZPtQ3%2FrgHlKZ1nSJDNZ57XMeEMSTqZ1mn1p02C7tWfY4OdozxdX%2FVaOLMpi0nImoGwgNn6Av0MfxQ%2F46LFxTemFJdARTamlAYRcTOPNgL%2BVEwdB8z1HRH8cv1hIdGhU5lpBOLM7FnnQNnUzIuQHJc9SJ4rl9vvwipchqUmidpkQ6OXBGJ5LfajIUsm2O%2BXbUObRv9YV3gUMDsZbGIaTk%2Fg3IVNdOUKwVjWQVOjEqxWthfE3nJpWfOcTCI9RI5RVKf0px9M5JMQUw7IXC0KpctkeWOlFq3g9ZJTglotXy2jOC8xbXXmejXElOHmxWJqYqpe41td0sh1SUYgZdptHv5OWJqk5tq%2FYhHALaI46KPF1177YPsiPzSlKKYONx%2Bt9MHW1oiGKSEBdXpgum4bsmVJSVNEsy5ox%2F0jTLJspoMBCdeuGroTHLAlPfnlxDpelcw8kpMZKlJsBxg%2BKOKHpBiV3k6CBjdVRUqGrwkprHtI5Ig52vPnl3%2FmEbYN5ESL9rHn5GjfxM%2FenVEu9Rm7DvB%2BlHffKNKvY9Nop7Mga2FSCfeCOiPRd3FHg3gXx%2BrvvlXCnb31KLFqmXaCunvK6rwT2Rsea7cwpcbeLM6ZJnV8hXKvOPg%2FNaTDUzr7yx160q%2FngXQcdQ7%2FBWC9DKv%2BmVvk4R6f%2BEDaH1dLIMXEbYnHvnJebzQd8d50ZJ%2FoD9ER90gd6cnD2phCvJjRN9xAtLByKcLIJQTOYkpZufSMymBZsSeFyB21OOuhQsX%2FgTG1AnPo6ojxzGkwqTk9QEU6BZdBEMzEDBRdMnNwle8kWje0UoZhQpNpnVqxx7UO3yCMwyp8vYpnT%2B7F8FUJHfL%2Bp2wWVLC1FSxBTGNaEfvJC%2FQXWfArUx%2BxhMhtux6YS3gHfsP%2F7slT3qyLMIZgey5DJJWi4njtBX04ngDd7cUg9WiSAjpJYtKVBnrc%2FGhyy7DM2a9dwWfyHAp8GD6VzrwATC9%2Fi8jzEFiMfRN71WWDCxwPMUtwfaBGlt5ZxU1d53EHElDxisjLmQOsgZNAWxF8uSUI3tB4dVr%2FylOzYq1skHLsixGNH5MM%2BzVLxtHVssdJhopktJIhVa6pKx467NR5AqKMnNMZMB1X8gYMTZ5f5w2Mhvt5aoij0FOe15Z5ms0r7M4W30osRwRezTvuLb4rzEvQ8Xi7CpZIE3TBfuSQlKC0aFzrdQzi0kHFe%2BIwHUbplrHwtiOxjHbVSruYXRxhvIpR01T5f6Egl65q%2BoSVYTvt0n47OxThMI1jg60fqvPyTREfc85Q5WXyjPblg2Jj1pueuDKRFwIOkLRpy5PVqp0HkJFpPEMVXGEykRmBFCmrdX0rVMwOqWJ%2BPR6A6wRDgbjRfAC%2Bz8ObD9BXkf1z%2BQC%2B6nz3aCpd4JUhghSJBQB5vUxgNGsXd6EnUvvxivXU96b21P03T12Qz59dS9t68NfpqV%2BAh7XT%2BO33u4Z6%2BMGkNSH%2B276D09f3uo7q4525vtfvXya%2BMQXW95QP%2BrodR%2F9kH9Vj31sbSUd%2Fan56p%2F5RucV7VACyGQqeqWryN6Ysx0NCuoY2JdYVk4TsRlvi2QVUtGg5jGEOSxg1YUICm14lBQ5j4pMAWJcpIocVSHM6JswiGMO4pha%2BJv9hSWapR7qgnd6bJiLDdRaS2yTw7zqc7ykQxc2Exj3r2NUKRVHmmwRZV9x5zozVQuMGdyZXRlt9iVCEZXuVUAXZwDgG2Q85Wv6JVIU7MXy1mTlwpc5ohdeLvfaSJUFVZ%2Fa118Ar%2B%2F%2B5%2FsDNe8ZjRv9OyW9G681oXYrR0szuWqMlBwen05O3yf1NTy5fT7ypJ%2FdgANK5bzO4oQQ8NBYfELAOTgkM3S2O7YejMvA8u8VJpXGBKY0wdA8gaceChSeNc%2FDWCKeHajjnLj7xNUECKxgMpPh6aT3TfilD8FcZrIjpZwhYsZ0aulv9ixvDh8sSJXUFrovooRM0tEfWee276Uka7PsqSG7xIi%2FBgHhjMUmtHf6KanL38JFM7WRaF3ITc9W7Ibsx3mJ%2FA8a0KjYNvzM%2Fg7okeQEf2XIq4lPot4PsVtHCZqOvg%2BppBdCqectOJ4zsTkaiWPku%2BdfnZMjw1zrKrXlel5tv3bzOtxIUj5Bo7E1OUwY7kwF92GCKvQ9qxaRUgBzQtv0aB%2Bc97UZdnr7XUPxQuucgZLYRZ0OTmeXbJQipBOsk06EYfLcbpI%2BfSQjUKPuTLn%2BnyOlb3fcF1X0Hwf6M5VkrvwM1KG0WGizJO8KYfdQaRBVbe5O0C5I0ee%2FOQGcozypqTRGdIGtfihpPwzGdzNMUVhUtQLhnC6LJiIQib5J2yZJmmbZYpei51vSiNukq8AuP5Zoaw7PUvR7Jxv7Uwm5Ys7Nttq1DTUkMgPkdxlFYEu%2FuEZKgI0IJRRupi02ONyE2MD07xmuqrWZNsVXVWrWoY9UMsukhacROIjF4H%2B%2Feffzj93efH2Z8kVUfhKuAmnvxywFJrYEu%2F4AqAUlSeyW619iI0dOshRb3xgaNnvfaJmNOAmDBOp1ma2x8ZykPZ3m84QxVRZZa%2FHfsdvJMtD6HsKR7vpdlLe39fjH7veut7IQLA6czz5335U5innVi%2BJOjbdJbUVxPt4eDrfOGRsPbTENFRbX7BRqshL%2BBE2hWEVuCmVrLrwHkOmAcJhZ4Yt2bofZia%2FJodBoFWVnTXB%2FF5%2FAkUcGsBm1Jc5jn%2BLG4kao2QB1eXzX3htydB7nrXcvyk0F3pub9YT%2B9nZS33OBLGqezkpqXkA22khtq4ZYAMH8pRY%2FU0w%2F1K6X6LeGbsZrMWPW9lO2nM1a6MiXZWDXSA9OQOLw3mjp0Efbai5YNCDPpza45BqYFxJrnuRP3tI3izKAV5Cv6WoFmT1u2RdE9rSzHf2t4BcoSZEQb7wkT7795Lm40rQXdZHXCEh3TkHckMLXrEX1VGsd7DbfmbRCnCUF%2FYXVelDvY8YwwV0JKDWZ2VWuas1dxMoeTv1%2Fz4qLVE%2BxVcoGhKkdqfviVl%2BMuoFfSbbtfXux6ix3dR1pvr3l58WkU6eH2Az73%2BQDwpn3%2FAlY%2BspsbM%2B57Nmqb0CzKPuTA97H8wOpPfFggQt0t64nb9AHFgPT4Hw%3D%3D) for editable draw.io diagram
+- Click [draw.io diagram](https://www.draw.io/?lightbox=1&highlight=0000ff&edit=_blank&layers=1&nav=1&title=Untitled%20Diagram.drawio#R7V1Zl5s4Fv41fiwfdsxjLanunpN0MqnMdOcpB4NsqwOIZqmlf%2F1oQRgt2Dg2xjUp55yUEULgu%2Bne716JmX2bPv9ShPnmA4pBMrOM%2BHlm380sy%2FR8G%2F8hLS%2BsxTIck7WsCxg3vbYND%2FAf0DQaTWsNY1AKHSuEkgrmYmOEsgxEldAWFgV6ErutUCLeNQ%2FXQGl4iMJEbf0DxtWGtS5cY9v%2BK4DrDb%2BzaTRn0pB3bhrKTRijp06T%2FW5m3xYIVexb%2BnwLEkI9Thd23X3P2fbBCpBVQy64WWYf%2FduH%2BvG%2F%2Fv3HX%2B9v%2Fp18ubsyLZ%2BN8xgmdfOTZ5aX4BFvVggPjJ%2B7emmI4f1dI37iqqSsusYdTC9%2F3p7E39bk701YRRt89l9oWfIR8cOxQVmXhi7t%2BFaB6iwG5HlNfPppAyvwkIcROfuE5Qu3bao0aU7HYblp%2B5Jh78MUJkTOfgXJI6hgFDYnGqny8WFZFeg7uEUJKugt7cU1%2BYfPPIKCXJJcJ3Cd4XMVyttHJOfAcy%2FdzZabWA8ASkFVvOAu%2FAKHyzLXAbNRiqetQFlcbDYdYfIWDXPCRojX7eBbPuMvDasPYLunMP03rD7FA6oLTG3L%2BISKKkwU%2FnSoz8n1PlyC5BMqYQURIdsSVRVKcYewoWOEyQQwsW8S0vMmjL6vKZs7PFjRTy8PGM%2B49lk6LhrGwrg3CLthkuhGbpXP6EqOwc7k5Oelz2tiwuYQlf4cYnNSzp9gRi86hRTIQuDoZMBVZcDklubkMmArMvAZ5ISRiD53FqZAEQCRFaaokAfReA6%2FgOfqtyyvKx1DHfpp9FdgNPng9mWN5SwjY5ATgp4vdsiBzqZwSU3AqjoRs11LYLZpOHNX4bdpaXTedEdit6Ow%2B6FeprDaY4QH8VdH1Q5DTI1mevSjsxOqLNyRf6ostEw9BccCiWO2qfCLey4Cu8ay0KapUc81LAmNsHKCJ%2Fx%2F0dFXiYkVVYwu9wqAZ%2BxwSTsQfuQIZhV9avdm5hLyhnWFyoZjOsb0WGfMdpitv5ADImWnYYdjcYVpGOKr%2FDAdjf5YY5lLU2cvW4YQVuzQJEJwPKVu0BpleM5ElFiEyH%2BBqnpp1ITQX%2BQZGxHEiosq0RHflc3cO2b8Rr6rsFiDap9roDKmAElYwUfxQXREbi79RMSr4wRZztxzfMNdLCzbtQJrIbpEwWLOTjim6XuO54g3YD%2BvGVNiZPuQR%2FBW9YduNyD6XpKIIYQJ5qHMW8KUh%2BZwy9l329abo7kPnmH1J7kcqwI7%2BtoMRr7fPXcPXvhBhinBLnIWC97wtXt2eyE9Eq78BAqIiUnUnTaeUABN55wCeF0U4UunQ2PteuVzYZiCQF6ZUjAl9betnf3xF%2FYEJxVTbtt0YpqHZTmJkG4Fzj1E3KaQLOZzn9y2eZbo2puBPch6KQP5thQoWtJA7BeOZwZVHxEbhBUq0hn5iSyGXxY8fO%2B6H%2FK5qJFLeUbcoHRZl%2FuD%2BxP4EL4teRBaH9zW%2BBCL0XwIVyGwqrNZfE1wK%2BJ5JVipYdSncIK6bbVvfIXzBuobkyeVQR36uxry87ZjXQ5RmexA4upQrfSkcRxpnJGVkotIR2b%2BKLDuqDp31fqhRl0k%2BvPLkAgA9mqwU8Mi%2FF29wHMONcHFGX0f%2Fr0j4wN8n8k0w3EHqkaf7TpS5hcy1OgMm4pOJaz2QmPgDkSTLRFNxg54JF6whXcV0PkOlnlCHb8IxUSCywzmOSA3rpB2EoNZlNS0K8y2%2BvP53fXdh3fzNB6KXJ9BJQSI%2BxbzEdLI83fwJKItXkd9roy5YbiiDrnWbi3CByOGAfbgONTaObuTH8YxmiOVxl%2BISuMa5iClOTTItd3FPOh8FoPmkUMjGceQ7tpQSRuZbK%2Fmw6PVqgSj2AZPtQ3%2FrgHlKZ1nSJDNZ57XMeEMSTqZ1mn1p02C7tWfY4OdozxdX%2FVaOLMpi0nImoGwgNn6Av0MfxQ%2F46LFxTemFJdARTamlAYRcTOPNgL%2BVEwdB8z1HRH8cv1hIdGhU5lpBOLM7FnnQNnUzIuQHJc9SJ4rl9vvwipchqUmidpkQ6OXBGJ5LfajIUsm2O%2BXbUObRv9YV3gUMDsZbGIaTk%2Fg3IVNdOUKwVjWQVOjEqxWthfE3nJpWfOcTCI9RI5RVKf0px9M5JMQUw7IXC0KpctkeWOlFq3g9ZJTglotXy2jOC8xbXXmejXElOHmxWJqYqpe41td0sh1SUYgZdptHv5OWJqk5tq%2FYhHALaI46KPF1177YPsiPzSlKKYONx%2Bt9MHW1oiGKSEBdXpgum4bsmVJSVNEsy5ox%2F0jTLJspoMBCdeuGroTHLAlPfnlxDpelcw8kpMZKlJsBxg%2BKOKHpBiV3k6CBjdVRUqGrwkprHtI5Ig52vPnl3%2FmEbYN5ESL9rHn5GjfxM%2FenVEu9Rm7DvB%2BlHffKNKvY9Nop7Mga2FSCfeCOiPRd3FHg3gXx%2BrvvlXCnb31KLFqmXaCunvK6rwT2Rsea7cwpcbeLM6ZJnV8hXKvOPg%2FNaTDUzr7yx160q%2FngXQcdQ7%2FBWC9DKv%2BmVvk4R6f%2BEDaH1dLIMXEbYnHvnJebzQd8d50ZJ%2FoD9ER90gd6cnD2phCvJjRN9xAtLByKcLIJQTOYkpZufSMymBZsSeFyB21OOuhQsX%2FgTG1AnPo6ojxzGkwqTk9QEU6BZdBEMzEDBRdMnNwle8kWje0UoZhQpNpnVqxx7UO3yCMwyp8vYpnT%2B7F8FUJHfL%2Bp2wWVLC1FSxBTGNaEfvJC%2FQXWfArUx%2BxhMhtux6YS3gHfsP%2F7slT3qyLMIZgey5DJJWi4njtBX04ngDd7cUg9WiSAjpJYtKVBnrc%2FGhyy7DM2a9dwWfyHAp8GD6VzrwATC9%2Fi8jzEFiMfRN71WWDCxwPMUtwfaBGlt5ZxU1d53EHElDxisjLmQOsgZNAWxF8uSUI3tB4dVr%2FylOzYq1skHLsixGNH5MM%2BzVLxtHVssdJhopktJIhVa6pKx467NR5AqKMnNMZMB1X8gYMTZ5f5w2Mhvt5aoij0FOe15Z5ms0r7M4W30osRwRezTvuLb4rzEvQ8Xi7CpZIE3TBfuSQlKC0aFzrdQzi0kHFe%2BIwHUbplrHwtiOxjHbVSruYXRxhvIpR01T5f6Egl65q%2BoSVYTvt0n47OxThMI1jg60fqvPyTREfc85Q5WXyjPblg2Jj1pueuDKRFwIOkLRpy5PVqp0HkJFpPEMVXGEykRmBFCmrdX0rVMwOqWJ%2BPR6A6wRDgbjRfAC%2Bz8ObD9BXkf1z%2BQC%2B6nz3aCpd4JUhghSJBQB5vUxgNGsXd6EnUvvxivXU96b21P03T12Qz59dS9t68NfpqV%2BAh7XT%2BO33u4Z6%2BMGkNSH%2B276D09f3uo7q4525vtfvXya%2BMQXW95QP%2BrodR%2F9kH9Vj31sbSUd%2Fan56p%2F5RucV7VACyGQqeqWryN6Ysx0NCuoY2JdYVk4TsRlvi2QVUtGg5jGEOSxg1YUICm14lBQ5j4pMAWJcpIocVSHM6JswiGMO4pha%2BJv9hSWapR7qgnd6bJiLDdRaS2yTw7zqc7ykQxc2Exj3r2NUKRVHmmwRZV9x5zozVQuMGdyZXRlt9iVCEZXuVUAXZwDgG2Q85Wv6JVIU7MXy1mTlwpc5ohdeLvfaSJUFVZ%2Fa118Ar%2B%2F%2B5%2FsDNe8ZjRv9OyW9G681oXYrR0szuWqMlBwen05O3yf1NTy5fT7ypJ%2FdgANK5bzO4oQQ8NBYfELAOTgkM3S2O7YejMvA8u8VJpXGBKY0wdA8gaceChSeNc%2FDWCKeHajjnLj7xNUECKxgMpPh6aT3TfilD8FcZrIjpZwhYsZ0aulv9ixvDh8sSJXUFrovooRM0tEfWee276Uka7PsqSG7xIi%2FBgHhjMUmtHf6KanL38JFM7WRaF3ITc9W7Ibsx3mJ%2FA8a0KjYNvzM%2Fg7okeQEf2XIq4lPot4PsVtHCZqOvg%2BppBdCqectOJ4zsTkaiWPku%2BdfnZMjw1zrKrXlel5tv3bzOtxIUj5Bo7E1OUwY7kwF92GCKvQ9qxaRUgBzQtv0aB%2Bc97UZdnr7XUPxQuucgZLYRZ0OTmeXbJQipBOsk06EYfLcbpI%2BfSQjUKPuTLn%2BnyOlb3fcF1X0Hwf6M5VkrvwM1KG0WGizJO8KYfdQaRBVbe5O0C5I0ee%2FOQGcozypqTRGdIGtfihpPwzGdzNMUVhUtQLhnC6LJiIQib5J2yZJmmbZYpei51vSiNukq8AuP5Zoaw7PUvR7Jxv7Uwm5Ys7Nttq1DTUkMgPkdxlFYEu%2FuEZKgI0IJRRupi02ONyE2MD07xmuqrWZNsVXVWrWoY9UMsukhacROIjF4H%2B%2Feffzj93efH2Z8kVUfhKuAmnvxywFJrYEu%2F4AqAUlSeyW619iI0dOshRb3xgaNnvfaJmNOAmDBOp1ma2x8ZykPZ3m84QxVRZZa%2FHfsdvJMtD6HsKR7vpdlLe39fjH7veut7IQLA6czz5335U5innVi%2BJOjbdJbUVxPt4eDrfOGRsPbTENFRbX7BRqshL%2BBE2hWEVuCmVrLrwHkOmAcJhZ4Yt2bofZia%2FJodBoFWVnTXB%2FF5%2FAkUcGsBm1Jc5jn%2BLG4kao2QB1eXzX3htydB7nrXcvyk0F3pub9YT%2B9nZS33OBLGqezkpqXkA22khtq4ZYAMH8pRY%2FU0w%2F1K6X6LeGbsZrMWPW9lO2nM1a6MiXZWDXSA9OQOLw3mjp0Efbai5YNCDPpza45BqYFxJrnuRP3tI3izKAV5Cv6WoFmT1u2RdE9rSzHf2t4BcoSZEQb7wkT7795Lm40rQXdZHXCEh3TkHckMLXrEX1VGsd7DbfmbRCnCUF%2FYXVelDvY8YwwV0JKDWZ2VWuas1dxMoeTv1%2Fz4qLVE%2BxVcoGhKkdqfviVl%2BMuoFfSbbtfXux6ix3dR1pvr3l58WkU6eH2Az73%2BQDwpn3%2FAlY%2BspsbM%2B57Nmqb0CzKPuTA97H8wOpPfFggQt0t64nb9AHFgPT4Hw%3D%3D)
+- Click [editable draw.io diagram](https://www.draw.io/?title=Untitled%20Diagram.drawio#R7V1Zl5s4Fv41fiwfdsxjLanunpN0MqnMdOcpB4NsqwOIZqmlf%2F1oQRgt2Dg2xjUp55yUEULgu%2Bne716JmX2bPv9ShPnmA4pBMrOM%2BHlm380sy%2FR8G%2F8hLS%2BsxTIck7WsCxg3vbYND%2FAf0DQaTWsNY1AKHSuEkgrmYmOEsgxEldAWFgV6ErutUCLeNQ%2FXQGl4iMJEbf0DxtWGtS5cY9v%2BK4DrDb%2BzaTRn0pB3bhrKTRijp06T%2FW5m3xYIVexb%2BnwLEkI9Thd23X3P2fbBCpBVQy64WWYf%2FduH%2BvG%2F%2Fv3HX%2B9v%2Fp18ubsyLZ%2BN8xgmdfOTZ5aX4BFvVggPjJ%2B7emmI4f1dI37iqqSsusYdTC9%2F3p7E39bk701YRRt89l9oWfIR8cOxQVmXhi7t%2BFaB6iwG5HlNfPppAyvwkIcROfuE5Qu3bao0aU7HYblp%2B5Jh78MUJkTOfgXJI6hgFDYnGqny8WFZFeg7uEUJKugt7cU1%2BYfPPIKCXJJcJ3Cd4XMVyttHJOfAcy%2FdzZabWA8ASkFVvOAu%2FAKHyzLXAbNRiqetQFlcbDYdYfIWDXPCRojX7eBbPuMvDasPYLunMP03rD7FA6oLTG3L%2BISKKkwU%2FnSoz8n1PlyC5BMqYQURIdsSVRVKcYewoWOEyQQwsW8S0vMmjL6vKZs7PFjRTy8PGM%2B49lk6LhrGwrg3CLthkuhGbpXP6EqOwc7k5Oelz2tiwuYQlf4cYnNSzp9gRi86hRTIQuDoZMBVZcDklubkMmArMvAZ5ISRiD53FqZAEQCRFaaokAfReA6%2FgOfqtyyvKx1DHfpp9FdgNPng9mWN5SwjY5ATgp4vdsiBzqZwSU3AqjoRs11LYLZpOHNX4bdpaXTedEdit6Ow%2B6FeprDaY4QH8VdH1Q5DTI1mevSjsxOqLNyRf6ostEw9BccCiWO2qfCLey4Cu8ay0KapUc81LAmNsHKCJ%2Fx%2F0dFXiYkVVYwu9wqAZ%2BxwSTsQfuQIZhV9avdm5hLyhnWFyoZjOsb0WGfMdpitv5ADImWnYYdjcYVpGOKr%2FDAdjf5YY5lLU2cvW4YQVuzQJEJwPKVu0BpleM5ElFiEyH%2BBqnpp1ITQX%2BQZGxHEiosq0RHflc3cO2b8Rr6rsFiDap9roDKmAElYwUfxQXREbi79RMSr4wRZztxzfMNdLCzbtQJrIbpEwWLOTjim6XuO54g3YD%2BvGVNiZPuQR%2FBW9YduNyD6XpKIIYQJ5qHMW8KUh%2BZwy9l329abo7kPnmH1J7kcqwI7%2BtoMRr7fPXcPXvhBhinBLnIWC97wtXt2eyE9Eq78BAqIiUnUnTaeUABN55wCeF0U4UunQ2PteuVzYZiCQF6ZUjAl9betnf3xF%2FYEJxVTbtt0YpqHZTmJkG4Fzj1E3KaQLOZzn9y2eZbo2puBPch6KQP5thQoWtJA7BeOZwZVHxEbhBUq0hn5iSyGXxY8fO%2B6H%2FK5qJFLeUbcoHRZl%2FuD%2BxP4EL4teRBaH9zW%2BBCL0XwIVyGwqrNZfE1wK%2BJ5JVipYdSncIK6bbVvfIXzBuobkyeVQR36uxry87ZjXQ5RmexA4upQrfSkcRxpnJGVkotIR2b%2BKLDuqDp31fqhRl0k%2BvPLkAgA9mqwU8Mi%2FF29wHMONcHFGX0f%2Fr0j4wN8n8k0w3EHqkaf7TpS5hcy1OgMm4pOJaz2QmPgDkSTLRFNxg54JF6whXcV0PkOlnlCHb8IxUSCywzmOSA3rpB2EoNZlNS0K8y2%2BvP53fXdh3fzNB6KXJ9BJQSI%2BxbzEdLI83fwJKItXkd9roy5YbiiDrnWbi3CByOGAfbgONTaObuTH8YxmiOVxl%2BISuMa5iClOTTItd3FPOh8FoPmkUMjGceQ7tpQSRuZbK%2Fmw6PVqgSj2AZPtQ3%2FrgHlKZ1nSJDNZ57XMeEMSTqZ1mn1p02C7tWfY4OdozxdX%2FVaOLMpi0nImoGwgNn6Av0MfxQ%2F46LFxTemFJdARTamlAYRcTOPNgL%2BVEwdB8z1HRH8cv1hIdGhU5lpBOLM7FnnQNnUzIuQHJc9SJ4rl9vvwipchqUmidpkQ6OXBGJ5LfajIUsm2O%2BXbUObRv9YV3gUMDsZbGIaTk%2Fg3IVNdOUKwVjWQVOjEqxWthfE3nJpWfOcTCI9RI5RVKf0px9M5JMQUw7IXC0KpctkeWOlFq3g9ZJTglotXy2jOC8xbXXmejXElOHmxWJqYqpe41td0sh1SUYgZdptHv5OWJqk5tq%2FYhHALaI46KPF1177YPsiPzSlKKYONx%2Bt9MHW1oiGKSEBdXpgum4bsmVJSVNEsy5ox%2F0jTLJspoMBCdeuGroTHLAlPfnlxDpelcw8kpMZKlJsBxg%2BKOKHpBiV3k6CBjdVRUqGrwkprHtI5Ig52vPnl3%2FmEbYN5ESL9rHn5GjfxM%2FenVEu9Rm7DvB%2BlHffKNKvY9Nop7Mga2FSCfeCOiPRd3FHg3gXx%2BrvvlXCnb31KLFqmXaCunvK6rwT2Rsea7cwpcbeLM6ZJnV8hXKvOPg%2FNaTDUzr7yx160q%2FngXQcdQ7%2FBWC9DKv%2BmVvk4R6f%2BEDaH1dLIMXEbYnHvnJebzQd8d50ZJ%2FoD9ER90gd6cnD2phCvJjRN9xAtLByKcLIJQTOYkpZufSMymBZsSeFyB21OOuhQsX%2FgTG1AnPo6ojxzGkwqTk9QEU6BZdBEMzEDBRdMnNwle8kWje0UoZhQpNpnVqxx7UO3yCMwyp8vYpnT%2B7F8FUJHfL%2Bp2wWVLC1FSxBTGNaEfvJC%2FQXWfArUx%2BxhMhtux6YS3gHfsP%2F7slT3qyLMIZgey5DJJWi4njtBX04ngDd7cUg9WiSAjpJYtKVBnrc%2FGhyy7DM2a9dwWfyHAp8GD6VzrwATC9%2Fi8jzEFiMfRN71WWDCxwPMUtwfaBGlt5ZxU1d53EHElDxisjLmQOsgZNAWxF8uSUI3tB4dVr%2FylOzYq1skHLsixGNH5MM%2BzVLxtHVssdJhopktJIhVa6pKx467NR5AqKMnNMZMB1X8gYMTZ5f5w2Mhvt5aoij0FOe15Z5ms0r7M4W30osRwRezTvuLb4rzEvQ8Xi7CpZIE3TBfuSQlKC0aFzrdQzi0kHFe%2BIwHUbplrHwtiOxjHbVSruYXRxhvIpR01T5f6Egl65q%2BoSVYTvt0n47OxThMI1jg60fqvPyTREfc85Q5WXyjPblg2Jj1pueuDKRFwIOkLRpy5PVqp0HkJFpPEMVXGEykRmBFCmrdX0rVMwOqWJ%2BPR6A6wRDgbjRfAC%2Bz8ObD9BXkf1z%2BQC%2B6nz3aCpd4JUhghSJBQB5vUxgNGsXd6EnUvvxivXU96b21P03T12Qz59dS9t68NfpqV%2BAh7XT%2BO33u4Z6%2BMGkNSH%2B276D09f3uo7q4525vtfvXya%2BMQXW95QP%2BrodR%2F9kH9Vj31sbSUd%2Fan56p%2F5RucV7VACyGQqeqWryN6Ysx0NCuoY2JdYVk4TsRlvi2QVUtGg5jGEOSxg1YUICm14lBQ5j4pMAWJcpIocVSHM6JswiGMO4pha%2BJv9hSWapR7qgnd6bJiLDdRaS2yTw7zqc7ykQxc2Exj3r2NUKRVHmmwRZV9x5zozVQuMGdyZXRlt9iVCEZXuVUAXZwDgG2Q85Wv6JVIU7MXy1mTlwpc5ohdeLvfaSJUFVZ%2Fa118Ar%2B%2F%2B5%2FsDNe8ZjRv9OyW9G681oXYrR0szuWqMlBwen05O3yf1NTy5fT7ypJ%2FdgANK5bzO4oQQ8NBYfELAOTgkM3S2O7YejMvA8u8VJpXGBKY0wdA8gaceChSeNc%2FDWCKeHajjnLj7xNUECKxgMpPh6aT3TfilD8FcZrIjpZwhYsZ0aulv9ixvDh8sSJXUFrovooRM0tEfWee276Uka7PsqSG7xIi%2FBgHhjMUmtHf6KanL38JFM7WRaF3ITc9W7Ibsx3mJ%2FA8a0KjYNvzM%2Fg7okeQEf2XIq4lPot4PsVtHCZqOvg%2BppBdCqectOJ4zsTkaiWPku%2BdfnZMjw1zrKrXlel5tv3bzOtxIUj5Bo7E1OUwY7kwF92GCKvQ9qxaRUgBzQtv0aB%2Bc97UZdnr7XUPxQuucgZLYRZ0OTmeXbJQipBOsk06EYfLcbpI%2BfSQjUKPuTLn%2BnyOlb3fcF1X0Hwf6M5VkrvwM1KG0WGizJO8KYfdQaRBVbe5O0C5I0ee%2FOQGcozypqTRGdIGtfihpPwzGdzNMUVhUtQLhnC6LJiIQib5J2yZJmmbZYpei51vSiNukq8AuP5Zoaw7PUvR7Jxv7Uwm5Ys7Nttq1DTUkMgPkdxlFYEu%2FuEZKgI0IJRRupi02ONyE2MD07xmuqrWZNsVXVWrWoY9UMsukhacROIjF4H%2B%2Feffzj93efH2Z8kVUfhKuAmnvxywFJrYEu%2F4AqAUlSeyW619iI0dOshRb3xgaNnvfaJmNOAmDBOp1ma2x8ZykPZ3m84QxVRZZa%2FHfsdvJMtD6HsKR7vpdlLe39fjH7veut7IQLA6czz5335U5innVi%2BJOjbdJbUVxPt4eDrfOGRsPbTENFRbX7BRqshL%2BBE2hWEVuCmVrLrwHkOmAcJhZ4Yt2bofZia%2FJodBoFWVnTXB%2FF5%2FAkUcGsBm1Jc5jn%2BLG4kao2QB1eXzX3htydB7nrXcvyk0F3pub9YT%2B9nZS33OBLGqezkpqXkA22khtq4ZYAMH8pRY%2FU0w%2F1K6X6LeGbsZrMWPW9lO2nM1a6MiXZWDXSA9OQOLw3mjp0Efbai5YNCDPpza45BqYFxJrnuRP3tI3izKAV5Cv6WoFmT1u2RdE9rSzHf2t4BcoSZEQb7wkT7795Lm40rQXdZHXCEh3TkHckMLXrEX1VGsd7DbfmbRCnCUF%2FYXVelDvY8YwwV0JKDWZ2VWuas1dxMoeTv1%2Fz4qLVE%2BxVcoGhKkdqfviVl%2BMuoFfSbbtfXux6ix3dR1pvr3l58WkU6eH2Az73%2BQDwpn3%2FAlY%2BspsbM%2B57Nmqb0CzKPuTA97H8wOpPfFggQt0t64nb9AHFgPT4Hw%3D%3D)
## Solutions
diff --git a/patterns/1-initial/internal-developer-platform.md b/patterns/1-initial/internal-developer-platform.md
new file mode 100644
index 000000000..ba7d45266
--- /dev/null
+++ b/patterns/1-initial/internal-developer-platform.md
@@ -0,0 +1,143 @@
+## Title
+
+Internal Developer Platform
+
+## Patlet
+
+As InnerSource adoption increases throughout an organisation, it is not unusual that project teams start to face inefficiencies in scaling their efforts due to fragmented tooling, environments, and workflows. An Internal Developer Platform (IDP) provides a way to tackle this type of challenges through a centralized, self-service system that standardizes development environments and integrates tools to enhance consistency, collaboration, and developer productivity.
+
+There is a symbiotic relationship between the IDP and InnerSource as their relationship enhances the scalability and effectiveness of both practices, especially in large organizations.
+
+## Problem
+
+A lack of standardization across development environments and tools significantly hampers the scalability of InnerSource practices. In fragmented ecosystems, contributors must navigate diverse setups, workflows, and toolchains, creating unnecessary barriers to effective collaboration. This not only increases the cognitive load for developers contributing to projects outside their teams but also limits the organization’s ability to harness the full potential of shared codebases, reusable components, and collective innovation.
+
+Without a standardized foundation, InnerSource efforts struggle to scale as inconsistencies across teams lead to inefficiencies, delays, and misaligned governance practices. Contributors face challenges in understanding and integrating with unfamiliar environments, while teams resist external contributions due to perceived risks or integration overhead. An Internal Developer Platform (IDP) mitigates these issues by providing a self-service, unified platform that standardizes tools, processes, and environments. This enables InnerSource contributors to focus on delivering value rather than overcoming technical incompatibilities, fostering a culture of collaboration and accelerating the adoption of InnerSource at scale.
+
+## Context
+
+- The organization has development teams working on different projects. These teams are already using InnerSource practices.
+- As teams grow and evolve, discrepancies in the setup of development environments and access to resources become more prominent, hampering collaboration, introducing security risks, and reducing developer productivity.
+- The teams (as well as the leadership of the organization) are looking to increase consistency in tools and processes without compromising on the flexibility to adapt to project-specific needs.
+
+## Forces
+
+**Consistency vs. Flexibility**: Teams require standardized tools and processes to maintain consistency and governance, but they also need flexibility to adapt to project-specific needs and innovations.
+
+**Self-Service vs. Governance**: Developers want self-service access to infrastructure and tooling, but the organization must enforce governance, security, and compliance controls to reduce risk.
+
+**Scalability vs. Control**: Scaling developer environments across the organization can lead to loss of control over tools and operational consistency if not managed properly.
+
+**Developer Productivity vs. Platform Complexity**: Developers benefit from simplified, cohesive tools, but platform teams must balance operational complexity and manage evolving workflows.
+
+## Sketch
+
+
+
+The diagram reflects both the high-level architecture and the workflow of the IDP:
+
+1. **Developer Interface Layer (Top Layer)**
+
+Self-Service Portal: A central access point for developers to interact with the IDP. This portal provides UI/UX for developers to provision environments, initiate CI/CD pipelines, deploy code, and monitor applications. It should have integrations with internal services such as:
+
+- Environment provisioning
+- CI/CD pipelines initiation
+- Access to documentation, templates, and tools
+- Monitoring dashboards
+
+2. **IDP Core Components (Middle Layer)**
+
+These components form the operational backbone of the IDP and facilitate the interaction between the developers and the infrastructure.
+
+- **Orchestration Engine**: Responsible for routing developer requests (e.g., environment setup, deployment) and triggering the appropriate automation or workflow.
+- **Templates/Scaffolding**: Pre-built templates for creating environments, services, and pipelines to ensure consistency across projects.
+- **CI/CD Pipelines**: Integrated pipelines that automate testing, building, and deploying applications, triggered from the self-service portal.
+- **Automation & IaC**: Infrastructure as Code (IaC) to provision resources, manage environments, and automate repeatable processes.
+- **Plugin Architecture**: A modular system that allows teams to extend the IDP by adding new tools or services via plugins (e.g., integrating with third-party APIs or custom tooling).
+
+3. **Platform Services & Resources (Bottom Layer)**
+
+These components are what the IDP exposes to developers through the portal and what it orchestrates.
+
+- **Infrastructure Provisioning**: Automates the provisioning of development environments (e.g., Kubernetes clusters, cloud services, containers, VMs) based on the Infrastructure as Code scripts.
+- **Security & Compliance Guardrails**: Pre-configured rules that ensure all environments and tools are compliant with organizational policies.
+- **Monitoring & Observability**: Integrated logs, metrics, and tracing tools to monitor both applications and infrastructure.
+- **APIs & Service Catalog**: A searchable catalog of APIs, services, and artifacts available within the organization, promoting reuse and standardization.
+
+## Solutions
+
+Implement an Internal Developer Platform that provides a centralized, self-service capability for developers. This platform standardizes development environments, tools, and access to resources, ensuring consistency while offering the flexibility to cater to specific project needs. It includes automation for common tasks, such as setting up development environments, initiating CI/CD pipelines, and deploying applications, making these processes more efficient and less prone to errors.
+
+Key implementation principles:
+
+- **Unified Self-Service Portal**: Implement a self-service portal as the interface to the IDP. The portal enables developers to easily provision environments, access tools, manage deployments, and monitor services without relying on other teams. This reduces wait times and empowers developers to work autonomously while following organizational standards.
+
+- **Standardized Tooling & Workflows**: The IDP should provide standardized development environments, automated CI/CD pipelines, and monitoring systems to ensure consistency across teams. By offering templates for creating environments and services, it enables uniformity without compromising customization.
+
+- **Guardrails for Governance**: Establish automated guardrails to ensure security and compliance across all environments and tools. These include pre-configured security policies, access controls, and monitoring integrated into the platform. This balances developer autonomy with governance.
+
+- **Pluggable Architecture**: The platform must be extensible to adapt to changing organizational needs. It should support integration with various third-party services, tools, and APIs via a plugin architecture to allow teams to extend functionality as required.
+
+- **InnerSource Practices**: Encourage InnerSource practices within the IDP to enhance collaboration and knowledge sharing between teams. By facilitating code reuse and contribution across the organization, InnerSource reduces duplication and promotes a culture of transparency.
+
+- **Automation & Infrastructure as Code (IaC)**: Automate repetitive tasks such as environment provisioning, testing, and deployment. Integrating Infrastructure as Code (IaC) ensures that infrastructure is treated like code, versioned, and managed in a scalable and reliable manner
+
+## Resulting Context
+
+Adoption of an Internal Developer Platform helps to address directly a number of challenges in scaling InnerSource efforts across large and complex organisations, specifically supporting some of the areas that InnerSource tries to solve for such as:
+
+**Reducing development silos caused by excessive ownership culture**: An IDP breaks down silos by standardizing tools, environments, and processes across teams. It fosters InnerSource practices, where code and resources are shared across teams, reducing excessive ownership over particular tools or systems. By providing a centralized platform, IDPs make it easier for teams to collaborate, access shared resources, and contribute to each other’s work without the traditional territorial boundaries.
+
+**Increasing innovation speed by reducing time spent solving similar issues and fostering healthy code reuse**: IDPs provide a central repository of templates, services, and reusable components, which encourages code reuse across the organization. Developers can access these assets directly from the platform, reducing duplication of effort. By integrating with documentation, APIs, and existing solutions, IDPs streamline the process of leveraging previous work, enabling teams to focus on innovation rather than reinventing the wheel.
+
+**Solving project/team dependencies beyond "wait it out" and "build workarounds", thereby reducing engineering bottlenecks**:
+IDPs allow teams to self-serve infrastructure, environments, and tools, reducing dependency on other teams to manually provision resources. By centralizing access to infrastructure and automating common processes like CI/CD pipelines, dependencies are less likely to create bottlenecks.
+
+**Increasing quality**: IDPs increase software quality by promoting consistent and standardized practices and providing built-in guardrails for governance, security, and compliance. Automated testing and deployment pipelines ensure that all code adheres to the organization’s quality standards before it goes into production. Moreover, since developers can focus more on solving high-level problems rather than fighting with tooling and environment setup, they have more time to improve code quality.
+
+**Increasing employee happiness**: The number one objective of an IDP is to increase Developer happiness, by treating and promoting the platform as an internal product. By reducing friction in the development process, an IDP allows developers to focus on what they do best which is writing code and solving meaningful problems. Self-service capabilities reduce waiting times for resources, while centralized platforms eliminate the complexity of managing disparate tools. This leads to a more streamlined developer experience, which in turn boosts job satisfaction and productivity.
+
+**Increasing success of new hires**: IDPs simplify the onboarding process by providing new hires with easy access to pre-configured environments, documentation, and templates. Rather than spending their first weeks figuring out how to set up their development environment or learning which tools to use, new hires can start contributing much faster. The IDP serves as a single point of entry for everything they need, dramatically reducing ramp-up time. As a result, developer onboarding time (typically measured through time for the first approved commit) is a key metric in IDP implementation and success.
+
+**Building actionable documentation**: An IDP integrates documentation directly into the development workflows via self-service portals. Teams can access API documentation, code examples, and templates from the same place they access tools and environments. This centralization ensures that documentation is kept up-to-date and easily accessible. Furthermore, by encouraging direct InnerSource contributions into the documentation itself (from users), teams can continuously improve documentation based on real-world usage.
+
+## Rationale
+
+An IDP provides a solution to the competing forces of consistency, flexibility, and scalability. By centralizing the management of development environments and tooling while offering self-service capabilities, it balances the needs of both developers and platform teams. InnerSource practices further contribute by fostering a culture of collaboration and reuse across the organization. It supports scalable and controlled growth within the internal software development community, facilitating the adoption of wider InnerSource practices.
+
+### IDP Helps to Scale InnerSource
+
+**Standardizing Development Practices**: In large organizations, development teams often use varied tools, environments, and processes. This lack of standardization makes it challenging for InnerSource contributors to effectively participate in projects outside their immediate teams. An IDP provides a unified platform that standardizes tools, templates, and workflows, creating a consistent development ecosystem. This in turns helps to accelerate software delivery, reduces cognitive load on developers and ultimately serves as a catalyst for scaling InnerSource practices across large organizations. InnerSource Contributors can quickly adapt and become productive, which is crucial for scaling InnerSource rapidly across diverse teams.
+
+**Improving Accessibility and Collaboration**: By streamlining access to essential resources and services through a self-service model, IDPs remove barriers that impede collaboration. InnerSource strategies are amplified through the standardization and accessibility provided by an IDP, making cross-team collaboration and innovation more effective. Developers can then more easily find and contribute to shared projects without navigating complex or unfamiliar environments.
+
+**Breaking Down Silos**: Excessive ownership culture often arises in organizations lacking common platform engineering practices, where individual teams or departments hold disproportionate control over their tools, processes, or codebases. Often in this kind of situation, teams treat their codebase as proprietary and actively discourage contributions from other teams by failing to document code properly, setting up overly restrictive access controls or even dismissing external contributions by blocking pull requests. This creates organisational silos, reducing opportunities for cross-team contributions. An IDP addresses this by promoting shared ownership of platform components leading over time to shared standards and practices, fostering a culture of openness and collaboration, which is at the heart of InnerSource.
+
+### InnerSource Practices Amplify the Adoption of IDP
+
+**Channeling Contributions to Platform Development**: InnerSource creates an avenue for developers across the organization to contribute directly to the IDP. For example, they can suggest or implement features that address common pain points or enhance usability. This community-driven approach ensures that the IDP evolves in response to real-world challenges faced by its users, making it more relevant and effective.
+
+**Encouraging Shared Ownership of the Platform**: Through InnerSource, developers treat the IDP as a shared product rather than something imposed by a centralized team. This increases adoption and engagement, as teams feel a sense of ownership and responsibility for its success.
+
+**Improving Documentation and Knowledge Sharing**: InnerSource practices naturally encourage contributions to documentation. Teams using the IDP can provide feedback, improve documentation, or add usage examples, ensuring that knowledge is continuously refined and up-to-date.
+
+## Known Instances
+
+(known instances to be added)
+
+## Status
+
+* Initial
+
+## Authors
+
+- Vincent Caldeira
+
+## Acknowledgments
+
+- [Jose Roman Martin Gil](https://github.com/rmarting) for providing early feedback on this pattern and helping to look for organizations that have implemented this pattern
+
+## Links
+
+* [Promoting InnerSource Practices with an Internal Developer Platform](https://www.youtube.com/watch?v=mqeBbQcDjTE&ab_channel=InnerSourceCommons)
+* [internaldeveloperplatform.org](https://internaldeveloperplatform.org/)
diff --git a/patterns/1-initial/migrating-from-innersource-to-open-source.md b/patterns/1-initial/migrating-from-innersource-to-open-source.md
new file mode 100644
index 000000000..316517067
--- /dev/null
+++ b/patterns/1-initial/migrating-from-innersource-to-open-source.md
@@ -0,0 +1,141 @@
+## Title
+
+Migrating from InnerSource to Open Source
+
+## Patlet
+
+When an InnerSource project succeeds internally and meets criteria for external release, organizations often lack a structured approach for the transition. Establish a process that addresses legal, security, governance, and community readiness to transition the project to open source while maintaining its internal value.
+
+## Problem
+
+Organizations with successful InnerSource projects may want to transition to open source but lack structured processes for this evolution. While InnerSource provides a foundation of collaborative development practices, internal governance, and community management skills, the transition to external open source introduces new challenges. Without proper planning, projects risk legal issues, security vulnerabilities, governance conflicts, and community challenges that could harm both the project's success and the organization's reputation in the broader open source ecosystem.
+
+## Story
+
+A tech company developed a popular internal tool using InnerSource, achieving strong adoption and good documentation. When they open sourced it, they found corporate information in comments, unclear licenses, and no community processes. The rushed release caused legal issues, security risks, and overwhelmed maintainers struggling with external contributions.
+
+## Context
+
+This pattern applies when:
+
+- An InnerSource project has achieved internal success and adoption, demonstrating proven collaborative development practices.
+- The organization has established InnerSource practices and governance, providing a foundation for external community management.
+- There is strategic value in releasing the project publicly while maintaining its internal utility.
+- Legal and compliance frameworks are in place for open source releases.
+- The project team has experience with InnerSource collaborative development practices and internal community management.
+- External market demand or strategic positioning justifies open sourcing, leveraging the project's InnerSource success.
+
+## Forces
+
+- **Legal Complexity**: Existing code may contain proprietary information, unclear licensing, or patent concerns that must be resolved before public release
+- **Security Exposure**: Internal security practices may not be suitable for public code, requiring a comprehensive security review
+- **Governance Transition**: Internal governance structures may conflict with open source community expectations and meritocracy principles
+- **Community Readiness**: Internal teams may lack experience managing external contributors and community dynamics
+- **Resource Allocation**: Open source projects require ongoing maintenance and community support that may conflict with internal priorities
+- **Brand and Reputation**: Public release represents the organization to external communities and may impact brand perception
+- **Competitive Advantage**: Releasing code publicly may reduce competitive advantages while potentially increasing market influence
+- **Regulatory Compliance**: Industry-specific regulations may impose additional requirements for public code releases
+
+## Solutions
+
+Establish a comprehensive migration process that includes:
+
+1. **Pre-Migration Assessment**: Evaluate the project's readiness using established criteria, including adoption metrics, documentation quality, and community management capabilities
+ - Assess business value and strategic alignment for external release.
+ - Ensure InnerSource templates align with open source standards to reduce transition friction.
+
+2. **Legal and Compliance Review**:
+ - Conduct a thorough code review to identify and remove proprietary information.
+ - Establish clear licensing terms and intellectual property ownership.
+ - Perform patent and copyright clearance.
+ - Create legal documentation for external contributors.
+ - Maintain contributor history and credits during the transition to avoid losing valuable contribution records.
+
+3. **Security Hardening**:
+ - Remove internal credentials, API keys, and sensitive configuration.
+ - Implement security best practices suitable for public code.
+ - Establish vulnerability disclosure processes.
+ - Create security documentation and guidelines.
+
+4. **Governance Structure Design**:
+ - Define decision-making processes that balance internal needs with community input to ensure effective outcomes.
+ - Establish maintainer roles and responsibilities.
+ - Create contribution guidelines and code of conduct.
+ - Design community management processes.
+ - Add contributor acknowledgment sections to READMEs to appropriately credit all contributors during the transition.
+
+5. **Community Preparation**:
+ - Train maintainers on open source community management
+ - Establish communication channels and documentation standards.
+ - Create onboarding processes for external contributors.
+ - Develop community engagement strategies.
+
+6. **Infrastructure Setup**:
+ - Migrate to public repositories with appropriate access controls.
+ - Set up CI/CD pipelines suitable for public development.
+ - Establish issue tracking and project management tools.
+ - Create public documentation and websites.
+
+7. **Gradual Release Strategy**:
+ - Start with limited external access or beta releases.
+ - Gradually expand community participation.
+ - Monitor adoption and community health metrics.
+ - Adjust processes based on community feedback.
+
+8. **Ongoing Support Framework**:
+ - Establish maintenance and support processes.
+ - Create escalation procedures for critical issues.
+ - Define success metrics and review cycles.
+ - Plan for long-term sustainability
+ - Implement systems to measure and demonstrate business value produced by open source developers.
+ - Identify and automate repetitive processes in project setup and maintenance.
+
+## Resulting Context
+
+After successful migration:
+
+- The project gains external contributors and broader adoption, building on its InnerSource foundation.
+- Internal teams leverage their InnerSource community management experience to manage external contributors effectively.
+- The organization builds a reputation within the open source ecosystem, demonstrating a successful evolution from InnerSource to open source.
+- Legal and compliance frameworks are established for future open source releases.
+- The project may require ongoing resource allocation for community management, but it benefits from established InnerSource practices.
+- Internal development processes adapt to external community needs while maintaining InnerSource principles.
+- New opportunities for collaboration and innovation emerge through external partnerships, extending the collaborative culture developed through InnerSource.
+- Open sourcing projects often leads to increased internal usage and adoption, contrary to initial expectations.
+- Aligning InnerSource and open source templates reduces friction for future transitions.
+
+## Rationale
+
+Migrating from InnerSource to open source is a natural evolution for successful internal projects, but requires careful planning to avoid pitfalls. A structured approach addresses legal, security, and governance issues proactively. By building on established InnerSource practices, organizations can leverage their collaborative development skills, community management experience, and internal governance structures to adapt to external community challenges.
+
+This migration leverages the foundation of InnerSource success—proven collaboration patterns, established contribution workflows, and internal community management—to create sustainable open source projects. The gradual approach enables organizations to apply their InnerSource learnings while minimizing risks to both the project and the organization's reputation in the broader open source ecosystem.
+
+## References
+
+- [Open Source Guides: How to Contribute to Open Source (by GitHub)](https://opensource.guide/how-to-contribute/)
+- [Google's Open Source Documentation](https://opensource.google/documentation/reference)
+- [The Open Source Way](https://www.theopensourceway.org/)
+- [Apache Software Foundation: How to Open Source](https://www.apache.org/dev/apply-license.html)
+- [Microsoft Open Source Program: Releasing Projects](https://opensource.microsoft.com/program/#program-releasing)
+
+## Known Instances
+
+- **Nike** - Nike has migrated multiple open source projects from InnerSource to Open Source.
+
+## Status
+
+- Initial
+
+## Author
+
+- Jeff Bailey
+
+## Related Patterns
+
+- [InnerSource before Open Source](../1-initial/innersource-before-open-source.md)
+
+## Alias
+
+- InnerSource to Open Source Transition
+- Open Sourcing InnerSource Projects
+- Public Release of InnerSource Projects
diff --git a/patterns/1-initial/source-code-inventory.md b/patterns/1-initial/source-code-inventory.md
index 87ee3e1c8..6cd6b3b0e 100644
--- a/patterns/1-initial/source-code-inventory.md
+++ b/patterns/1-initial/source-code-inventory.md
@@ -9,9 +9,9 @@ A unified source code inventory at organization-level addresses these issues, wh
## Problem
-Given situations when InnerSource stakeholders do not value source code at the same level as other Organization's assets; when source code strategies are ad-hoc and different among legal entities with little consolidation at Organization-level; then it becomes harder both to select and support the right InnerSource project candidates as well as maximize business value of such a key asset.
+Given situations when InnerSource stakeholders do not value source code at the same level as other organization's assets; when source code strategies are ad-hoc and different among legal entities with little consolidation at organization-level; then it becomes harder both to select and support the right InnerSource project candidates as well as maximize business value of such a key asset.
-Can you get consistent answers within the Organization to questions like:
+Can you get consistent answers within the organization to questions like:
* How would you find all source code touched by anyone in your legal entity?
* How would you find out who else can also access each of the above?
@@ -21,10 +21,10 @@ Can you get consistent answers within the Organization to questions like:
## Context
-* You work on Legal Entity within a complex Organization under continuous change (e.g. new acquisitions or changing business priorities).
-* You cannot find all source code touched, shared and consumed within the Organization.
+* You work on legal entity within a complex organization under continuous change (e.g. new acquisitions or changing business priorities).
+* You cannot find all source code touched, shared and consumed within the organization.
* You do not have a clear policy on default sharing level when creating a new project (e.g. Open Source, InnerSource or Closed Source).
-* You cannot scan significant parts of the Organization's source code looking for duplication, similarity or code smells.
+* You cannot scan significant parts of the organization's source code looking for duplication, similarity or code smells.
* You do not know the existing ratios of Open Source, innerSource and Closed Source and their trend.
* You cannot measure the diversity of contributions and resulting value for a given project.
* You cannot identify and optimize tech stack diversity.
@@ -32,14 +32,14 @@ Can you get consistent answers within the Organization to questions like:
## Forces
-* Fragmentation of source code hosting systems in the Organization.
-* Ad-hoc source code strategies scattered across the different Legal Entities in the Organization.
+* Fragmentation of source code hosting systems in the organization.
+* Ad-hoc source code strategies scattered across the different legal entities in the organization.
* Continuously changing map of the relationships between: projects, repositories, products, tech stacks, domains, solutions, platforms, services, components, sub-systems, people, authors, teams, external repositories.
-* Diverse software culture of teams across the Organization (e.g. more open to collaboration or more siloed).
+* Diverse software culture of teams across the organization (e.g. more open to collaboration or more siloed).
## Solutions
-### Set up an Organization-level source code inventory live dashboard
+### Set up an organization-level source code inventory live dashboard
* Combination of manual and automated input data sources to a single source of truth
* API available to add new data sources and extend coverage of the source code repository
@@ -53,41 +53,41 @@ Can you get consistent answers within the Organization to questions like:
* Visualization in place to list all assets with options to filter based on meta-data
* Enable access to automated source code static analysis tools (e.g. identify duplicated or similar code, flag code smells, benchmark test coverage).
-Mockup dashboard | Mockup questionnaire
+Mock-up dashboard | Mock-up questionnaire
:-------------------------:|:-------------------------:
- | 
+ | 
### Define a Source Code Strategy Assessment Framework
-* Help to define a source code strategy including an explicit definition of policies at Organization and Legal Entity levels for:
+* Help to define a source code strategy including an explicit definition of policies at organization and legal entity levels for:
* Inventory
* Sharing
* Consumption
* Contribution
* Ecosystem
-* Example of such a framework: [github.com/trieshard/source-strategy-assessment/blob/master/framework.md](https://github.com/trieshard/source-strategy-assessment/blob/master/framework.md)
+* Example of such a framework: [github.com/trieshard/source-strategy-assessment/blob/master/framework.md](https://github.com/trieshard/source-strategy-assessment/blob/master/framework.md) (no longer reachable)
## Resulting Context
-### For the Organization, Legal Entity and Project maintainers
+### For the Organization, Legal Entity and Project Maintainers
-* We have explicit policies at Organization and Legal Entity level on source code strategy (e.g. where to create new repository or how to select the right sharing level).
-* We can find all source code touched, shared and consumed within the Organization or Legal Entity and take actions as needed.
+* We have explicit policies at organization and legal entity level on source code strategy (e.g. where to create new repository or how to select the right sharing level).
+* We can find all source code touched, shared and consumed within the organization or legal entity and take actions as needed.
* We can measure the diversity of contributions and resulting business value for our project.
* We can identify technical debt and determine the priorities for retirement (e.g. dead APIs/source).
### For InnerSource governance
-* We can scan significant parts of our Organization's source code looking for opportunities of reuse, duplication, similarity or code smells.
-* We know the ratios of Open Source, InnerSource and Closed Source within the Organization so we can steer as needed.
+* We can scan significant parts of our organization's source code looking for opportunities of reuse, duplication, similarity or code smells.
+* We know the ratios of Open Source, InnerSource and Closed Source within the organization so we can steer as needed.
* We can identify and optimize tech stack diversity.
-* We can create awareness and culture shift on certain Legal Entities as needed (e.g. ratio of Open Source and InnerSource below average).
+* We can create awareness and culture shift on certain legal entities as needed (e.g. ratio of Open Source and InnerSource below average).
## Rationale
-It creates a dynamic and extendable single source of truth for repositories to capture, visualize and act on source code repositories across the Organization. That helps to create awareness and focus efforts on the right direction.
+It creates a dynamic and extendable single source of truth for repositories to capture, visualize and act on source code repositories across the organization. That helps to create awareness and focus efforts on the right direction.
-The Source Code Strategy Assessment Framework helps teams to understand the value of intentional explicit policies on how to manage source code. It helps to create both continuous improvement cycles and references within the Organization of what others are doing.
+The Source Code Strategy Assessment Framework helps teams to understand the value of intentional explicit policies on how to manage source code. It helps to create both continuous improvement cycles and references within the organization of what others are doing.
## Known Instances
@@ -95,7 +95,7 @@ The Source Code Strategy Assessment Framework helps teams to understand the valu
## References
-* Organization and Legal Entity terms as defined in the [InnerSource License Pattern - Glossary](../2-structured/innersource-license.md#glossary).
+* "Organization" and "Legal Entity" terms as defined in the [InnerSource License Pattern - Glossary](../2-structured/innersource-license.md#glossary).
* Explore using this pattern in combination with the [InnerSource Portal](../2-structured/innersource-portal.md) pattern.
## Status
diff --git a/patterns/1-initial/walk-the-innersource-talk.md b/patterns/1-initial/walk-the-innersource-talk.md
new file mode 100644
index 000000000..b3bd02788
--- /dev/null
+++ b/patterns/1-initial/walk-the-innersource-talk.md
@@ -0,0 +1,167 @@
+## Title
+
+Walk the InnerSource talk
+
+## Patlet
+
+Teams across the organization are encouraged to adopt InnerSource principles such as working openly, sharing code, and
+collaborating transparently. But, if the team behind the InnerSource initiative doesn’t follow these practices
+themselves, it undermines credibility and adoption. Therefore, this team should lead by example: documenting their
+decisions as code, working in the open, and treating their work as an InnerSource project to build trust and show others
+how it’s done.
+
+## Problem
+
+The team behind the InnerSource initiative promotes transparency, collaboration, and best practices across the
+organization. However, if the team itself does not adhere to these principles, others may perceive InnerSource as mere
+rhetoric rather than a transformative practice. Without leading by example, adoption and trust in InnerSource
+initiatives may suffer.
+
+## Story
+
+At Siemens, when the InnerSource journey began, many of the early contributors were deeply inspired by the Open Source
+culture, several were also active participants in community projects. For them, setting up an InnerSource platform
+wasn’t a stretch; it was a natural continuation of how they already worked: asynchronously across locations, sharing
+ideas through issues, and documenting decisions transparently.
+
+This Open Source-inspired mindset gave the InnerSource platform a distinctly different character - transparent,
+collaborative, and developer-friendly - compared to the closed, proprietary environments many developers were used to.
+Unsurprisingly, it quickly attracted experts and engineers seeking more open, cross-team collaboration and meaningful
+technical exchange.
+
+## Context
+
+In many large organizations, IT services rely on what we might call a “TicketOps” model: users submit requests into a
+system, but the people and decisions behind the process remain invisible. This lack of transparency often breeds
+frustration and mistrust, making true collaboration across departments difficult.
+
+In contrast, developer-centric initiatives like InnerSource thrive on openness and shared ownership. Instead of hiding
+behind tickets, teams work in open repositories, discuss decisions transparently, and empower others to contribute. This
+shift fosters trust, reduces the frustration of not knowing what happens behind the scenes, accelerates problem-solving,
+and turns support into collaboration.
+
+## Forces
+
+### What makes the problem difficult?
+
+- In large, traditionally structured organizations, teams - especially platform, architecture, or governance groups -
+are often used to working behind closed doors. Decision-making happens in meetings, documentation is internal or
+scattered, and ownership is unclear. Shifting to transparent, open collaboration requires both cultural change and a
+reevaluation of existing workflows.
+- Working in the open can feel scary - when everything is public, people might hold back from contributing because they worry their work isn't perfect enough. This fear of not being "good enough" can stop many valuable ideas from being shared.
+- People in central roles may fear scrutiny, overload from unsolicited input, or loss of control.
+- Moving towards open collaboration demands more discipline in documentation, async communication, and community management -
+skills not always prioritized in internal tooling teams.
+
+### What are the trade-offs?
+
+- **Transparency vs. Control**: Sharing decisions and code openly fosters trust, invites valuable feedback, and
+ increases acceptance, especially when people feel included in the process. However, it also requires a mindset shift:
+ embracing open discussion, being comfortable with disagreement, and being willing to justify decisions in public and
+ potentially critical forums.
+- **Speed vs. Quality**: working transparently can slow things down in the short term compared to quick, closed
+ decision-making. However, this slower pace often leads to higher-quality outcomes: better-informed decisions, fewer
+ misunderstandings, and solutions that are easier to maintain.
+- **Effort vs. Reuse**: documenting decisions, maintaining contribution guidelines, and curating issues takes time. But
+this investment leads to higher reusability, easier onboarding, and better scaling of knowledge.
+- **Risk vs. Trust**: opening up work may expose mistakes or half-finished ideas. But by showing authentic work in
+progress, teams build credibility and foster trust across organizational boundaries.
+
+The solution - working in the open, documenting decisions transparently, and following InnerSource best practices
+internally - addresses these forces by modelling the desired behavior. It increases alignment with developer
+expectations, improves trust in the initiative, and helps shift the broader organizational culture over time.
+
+## Solutions
+
+Rather than **telling** the teams in your organization how to practice InnerSource, find ways to **show** them how to do it.
+
+This role-modelling of the desired behaviors can be done by any team. However the more central that team is, i.e. the more touch points it has with other teams,
+the more effective this role-modelling will be as it disseminates the InnerSource behaviors into many different teams and parts of the organization.
+
+Therefore, we recommend to identify some central teams (e.g. platform teams, DevEx teams, enablement teams, or maybe even the team behind the InnerSource initiative to do this role-modelling.
+
+✅ Verified Resolutions
+
+These have been successfully applied in real-world InnerSource initiatives (including at Siemens) and are known to help
+solve the problem:
+
+1. Use version-controlled repositories for all InnerSource-related assets (policies, guidelines, tooling code,
+documentation), accessible to all relevant developers.
+1. Make decisions in the open by using issue trackers and discussions rather than closed-door meetings or emails.
+1. Apply contribution workflows to internal platforms and tools exactly as recommended for InnerSource projects: open
+pull requests, reviews, contribution guidelines, etc.
+1. Document frequently asked questions (FAQs), design rationales, and change histories transparently, as part of the
+repositories.
+1. Encourage asynchronous collaboration, especially across locations and time zones, to foster inclusiveness and reduce
+dependency on synchronous coordination.
+1. Guide new contributors with patience and understanding, creating a welcoming environment where mistakes are seen as learning opportunities. Provide constructive feedback in a respectful and supportive manner, remembering that everyone was once a beginner.
+
+💡 Possible Resolutions
+
+These could be explored to address the problem further, depending on organizational context and maturity:
+
+1. Create InnerSource “meta-projects” that transparently host governance decisions, tooling roadmaps, and shared
+architecture discussions - open to comment and contribution from the developer community.
+1. Embed technical community leads or advocates into platform/tooling teams to help translate feedback and improve
+transparency across organizational layers.
+1. Use lightweight tooling (e.g. chat bots, dashboards) to surface changes, decisions, and contributions happening
+within InnerSource-supporting teams, making their work more visible and discoverable.
+1. Promote a “working out loud” culture through internal blogs, changelogs, or recorded demos where teams share updates
+and learnings openly - even outside of the InnerSource platform.
+1. Set up health checks or self-assessments for InnerSource-supporting teams to reflect on how well they themselves are
+practicing the principles they advocate.
+
+## Resulting Context
+
+When the team behind the InnerSource initiative consistently applies the same principles they promote - working
+transparently, documenting decisions, and enabling contributions - credibility increases across the organization.
+Developers begin to see the InnerSource approach as authentic and achievable, not just aspirational.
+
+This fosters greater trust, encourages broader adoption, and creates a feedback loop where teams start to mirror these
+practices in their own projects. The organization gradually shifts toward a more open, collaborative engineering
+culture.
+
+However, this transparency can also surface new challenges, such as increased demand for contributions, the need for
+community moderation, or pressure on core maintainers. These may lead to follow-up patterns like "Growing a Trusted
+Committer Base" or "InnerSource Project Lifecycle Management" to ensure sustainability.
+
+## Known Instances
+
+- **Siemens** - The experts behind the InnerSource initiative applied the same principles they advocated, developing key
+assets such as documentation portals and contribution tooling transparently in shared repositories. Discussions about
+governance, onboarding, and platform features were handled openly using issue trackers and pull requests. This visible
+commitment to openness not only boosted trust among developers but also encouraged other teams to adopt similar
+practices, accelerating InnerSource adoption organically across departments.
+
+- **Europace** - This pattern was also successfully applied at Europace. Details about this case study can be found in
+the book [Adopting InnerSource][Adopting-InnerSource-book], see in particular the chapter _Leading by Example_.
+
+- **Robert Bosch** - The InnerSource team at Bosch has applied the InnerSource working model and collaboration values from the very beginning. Their issue tracker and Kanban boards are open for the whole community to see. Their automations and governance infrastructure are developed in InnerSource repositories. The most successful example is the InnerSource documentation, which is hosted in an InnerSource repository and follows the docs-as-code practice. The documentation has proven as a low barrier opportunity to contribute and has received numerous contributions from individuals throughout the company. More details can be found in the book [Adopting InnerSource][Adopting-InnerSource-book].
+
+## Status
+
+- Initial
+
+## Author(s)
+
+- Florian Greinacher (Siemens AG)
+- Marion Deveaud (Siemens AG)
+- Nejc Habjan (Siemens AG)
+- Roger Meier (Siemens AG)
+
+## Acknowledgments
+
+- Antoine Auger (Siemens AG)
+- Diego Louzan
+- Ercan Uçan (Siemens AG)
+- Fabio Huser (Siemens AG)
+- Max Wittig (Siemens AG)
+
+## Alias
+
+- Show, don't tell
+- Lead by example
+- Dogfooding the InnerSource behaviors
+- Role-modelling the InnerSource behaviors
+
+[Adopting-InnerSource-book]: https://innersourcecommons.org/documents/books/AdoptingInnerSource.pdf
diff --git a/patterns/2-structured/30-day-warranty.md b/patterns/2-structured/30-day-warranty.md
index b21ab814d..9f60805fd 100644
--- a/patterns/2-structured/30-day-warranty.md
+++ b/patterns/2-structured/30-day-warranty.md
@@ -46,10 +46,10 @@ In addition it helps to provide clear [contribution guidelines](./base-documenta
## Known Instances
-- This was tried and proven successful at PayPal.
-- GitHub internally uses this pattern with a modified warranty timeline of 6 weeks.
-- Microsoft recommends this pattern as a principle - teams set their own specific time target matching their needs and confidence.
-- SAP leverages this pattern in their InnerSource-based Everest project to transform collaboration, ensuring contributions are not just accepted but also supported, enhancing trust and driving forward the culture of shared responsibility and innovation. See: [InnerSource: First Contribution Explored](https://community.sap.com/t5/open-source-blogs/innersource-first-contribution-explored/ba-p/13644916)
+- **PayPal** Tried this and it was proven successful.
+- **GitHub** internally uses this pattern with a modified warranty timeline of 6 weeks.
+- **Microsoft** recommends this pattern as a principle - teams set their own specific time target matching their needs and confidence.
+- **SAP** leverages this pattern in their InnerSource-based Everest project to transform collaboration, ensuring contributions are not just accepted but also supported, enhancing trust and driving forward the culture of shared responsibility and innovation. See: [InnerSource: First Contribution Explored](https://community.sap.com/t5/open-source-blogs/innersource-first-contribution-explored/ba-p/13644916)
## Authors
diff --git a/patterns/2-structured/base-documentation.md b/patterns/2-structured/base-documentation.md
index 7fb1dfddd..9004df865 100644
--- a/patterns/2-structured/base-documentation.md
+++ b/patterns/2-structured/base-documentation.md
@@ -128,11 +128,12 @@ started right away: [README-template.md](templates/README-template.md),
## Known Instances
-* Europace AG - See blog post [InnerSource: Adding base documentation](https://tech.europace.de/post/innersource-base-documentation/)
-* Paypal Inc.
-* Mercado Libre - create a documentation site that contains how to get started with InnerSource and also define the basic artifacts that a repository must have to be InnerSource (README, CONTRIBUTING, CODING_GUIDELINES, etc).
-* Analog Devices Inc.
-* Airbus
+* **Europace AG** - See blog post [InnerSource: Adding base documentation](https://tech.europace.de/post/innersource-base-documentation/)
+* **Paypal Inc.**
+* **Mercado Libre** - create a documentation site that contains how to get started with InnerSource and also define the basic artifacts that a repository must have to be InnerSource (README, CONTRIBUTING, CODING_GUIDELINES, etc).
+* **Analog Devices Inc.**
+* **Airbus**
+* **Siemens** automatically creates a checklist issue for every new InnerSource project to make maintainers aware of mandatory requirements (e.g. business approval, license & copyright, export control, contributing guidelines, maintainer maturity) as well as best practices (e.g. documentation as code, semantic versioning, continuous integration/deployment).
## Authors
diff --git a/patterns/2-structured/communication-tooling.md b/patterns/2-structured/communication-tooling.md
index 08b1a33d3..b0605ee4d 100644
--- a/patterns/2-structured/communication-tooling.md
+++ b/patterns/2-structured/communication-tooling.md
@@ -74,9 +74,10 @@ to a lower need to repeat explanations.
## Known Instances
-* Europace AG
-* Paypal Inc.
-* Mercado Libre
+* **Europace AG**
+* **Paypal Inc.**
+* **Mercado Libre**
+* **Siemens** makes extensive use of communication channels accessible to all employees for all user questions and discussions around code.siemens.com, InnerSource and Open Source.
## Authors
diff --git a/patterns/2-structured/contracted-contributor.md b/patterns/2-structured/contracted-contributor.md
index 0790f6774..eba15100e 100644
--- a/patterns/2-structured/contracted-contributor.md
+++ b/patterns/2-structured/contracted-contributor.md
@@ -83,7 +83,7 @@ A formal contracting is also beneficial for contributors and communities:
## Known Instances
-- BIOS at Robert Bosch GmbH
+- BIOS at **Robert Bosch GmbH**
## Status
diff --git a/patterns/2-structured/crossteam-project-valuation.md b/patterns/2-structured/crossteam-project-valuation.md
index 96b89c8e2..dd2adfdab 100644
--- a/patterns/2-structured/crossteam-project-valuation.md
+++ b/patterns/2-structured/crossteam-project-valuation.md
@@ -92,7 +92,7 @@ They will provide a head-and-shoulders improvement in on-the-ground results over
## Known Instances
-* Nike
+* **Nike**
## Status
diff --git a/patterns/2-structured/dedicated-community-leader.md b/patterns/2-structured/dedicated-community-leader.md
index 8f5235d75..2799d3ec2 100644
--- a/patterns/2-structured/dedicated-community-leader.md
+++ b/patterns/2-structured/dedicated-community-leader.md
@@ -58,8 +58,8 @@ Having excellent and dedicated community leaders is a precondition for the succe
## Known Instances
-* _BIOS at Robert Bosch GmbH_. Note that InnerSource at Bosch was, for the majority, aimed at increasing innovation and to a large degree dealt with internal facing products. This pattern is currently not used at Bosch for lack of funding.
-* _Airbus_. A data scientist wanted to improve the collaboration with peers in the group and found: i) many developers (beyond data science) wanted that too and were happy someone was taking care of the issue, and ii) support from line manager and middle management to eventually act as the _de facto_ community leader, on top of his regular line of duty.
+* BIOS at **Robert Bosch GmbH**. Note that InnerSource at Bosch was, for the majority, aimed at increasing innovation and to a large degree dealt with internal facing products. This pattern is currently not used at Bosch for lack of funding.
+* **Airbus**. A data scientist wanted to improve the collaboration with peers in the group and found: i) many developers (beyond data science) wanted that too and were happy someone was taking care of the issue, and ii) support from line manager and middle management to eventually act as the _de facto_ community leader, on top of his regular line of duty.
## Alias
diff --git a/patterns/2-structured/document-your-guiding-principles.md b/patterns/2-structured/document-your-guiding-principles.md
index 01c423dfb..bfb50d097 100644
--- a/patterns/2-structured/document-your-guiding-principles.md
+++ b/patterns/2-structured/document-your-guiding-principles.md
@@ -121,9 +121,12 @@ All Trusted Committers of a project are published.
## Known Instances
-* Europace AG
-* GitHub
-* Robert Bosch GmbH
+* **Europace AG**
+* **GitHub**
+* **Robert Bosch GmbH**
+* **Siemens'** InnerSource strategy is built upon the guiding principles of Documentation, Workflow, Transparency, Continuous Integration and Culture which are detailed in their InnerSource portal.
+* **Mercedes-Benz**
+* **SAP** - The [SAP Open Source Manifesto](https://github.com/SAP/open-source-manifesto) mentions principles that SAP follows that related both to Open Source and InnerSource
### Europace AG
@@ -197,6 +200,10 @@ The principles _Openness_, _Transparency_ and _Voluntariness_ helped grow divers
_Meritocracy_ has proven to be an effective motivation for making great contributions.
_Self-Determination_ allowed the communities to use their limited time for contributions in the most effective and efficient way.
+### Mercedes-Benz
+
+Mercedes-Benz highlights the principles that they hold themselves accountable to in their [Mercedes-Benz AG - FOSS Manifesto](https://opensource.mercedes-benz.com/manifesto/). They differentiate between company principles and employee principles, which adds higher granularity. Further they combine both Open Source and InnerSource in the same manifesto, highlighting how both follow the same ideals.
+
## Status
Structured
diff --git a/patterns/2-structured/gig-marketplace.md b/patterns/2-structured/gig-marketplace.md
index 7e2ae3779..69552cb95 100644
--- a/patterns/2-structured/gig-marketplace.md
+++ b/patterns/2-structured/gig-marketplace.md
@@ -60,7 +60,7 @@ When used in combination with the InnerSource Portal pattern, the Gig Marketplac
## Known Instances
* A large financial services organization has used the creation of an InnerSource Gig Marketplace website to foster their InnerSource program.
-* SAP implemented the Gig Marketplace pattern - a new InnerSource program was added to the internal job platform where positions and similar offerings can be posted.
+* **SAP** implemented the Gig Marketplace pattern - a new InnerSource program was added to the internal job platform where positions and similar offerings can be posted.
* The Gig Marketplace pattern has been proven to work extremely well with the associated [InnerSource Portal](./innersource-portal.md) pattern in this context. The InnerSource Portal increases awareness of specific projects currently underway while the Gig Marketplace advertises tasks of a certain type available to be worked on within those projects.
## Status
diff --git a/patterns/2-structured/governance-levels.md b/patterns/2-structured/governance-levels.md
new file mode 100644
index 000000000..25af39e94
--- /dev/null
+++ b/patterns/2-structured/governance-levels.md
@@ -0,0 +1,171 @@
+## Title
+
+Explicit Governance Levels
+
+## Patlet
+
+Different teams within an organization use InnerSource practices in varying ways, leading to confusion and inefficiencies due to inconsistent expectations of collaboration and contribution rights.
+Establish centrally documented governance levels that define the extent of influence contributing teams can have on a project, improving clarity for contributors and host teams alike.
+
+## Problem
+
+Several teams are using InnerSource practices.
+However the degree to which they welcome contributions and give equal collaboration rights to contributors differ.
+Despite these differences, all teams refer to their way of working as "InnerSource" without any additional qualifiers.
+
+The result is confusion and frustration when teams collaborate as the expectation of what InnerSource means in practice is different in each team.
+This confusion also affects strategy planning and decisions on future InnerSource intent as the term is too vague which leads to long discussions and time lost on clarifications.
+
+## Story
+
+### Example of Confusion
+
+For two projects, different InnerSource practices have been adopted.
+Project A has a shared ownership model with [Trusted Committers](../2-structured/trusted-committer.md) from multiple teams.
+Project B is fully owned by one team with contributions from other teams.
+
+New users of either project are regularly confused about the level of influence they can gain in the respective project.
+This leads to long discussions, escalations and time lost on clarifications.
+
+### Example of Delayed Decision
+
+Project C is currently closed source and used only by team 1.
+Team 2 want to use project C and the leadership of the two teams negotiates options which include InnerSource practices.
+Agreement takes longer than expected because the "InnerSource" term did not describe a target state that could be agreed without ambiguity, and the teams had to document bespoke options for their leadership to consider before a decision could be made.
+
+## Context
+
+- InnerSource concepts are established within an organization with multiple projects and teams adopting InnerSource.
+- Internal InnerSource practices are not prescribed in detail.
+- Teams/projects have the autonomy to optimize for their local circumstances.
+
+## Forces
+
+- Projects adopt different InnerSource patterns and practices to optimize for their context.
+- Users want clarity on the level of influence they can gain in an InnerSource project when deciding whether or how to use it.
+- Leaders want clarity on InnerSource project intentions to understand the expected cost and benefits.
+- Writing a detailed description of a set of InnerSource practices requires significant effort.
+
+## Solution
+
+Create centrally maintained documentation of the project governance levels that are used in your organization.
+The governance levels describe how much influence the host team of a project is willing to share with contributing teams.
+Or in other terms, the level of influence a contributing team can gain in the respective project.
+
+Note: Instead of "governance levels" we might also say "operating models", or "ownership models".
+We stick to the term "governance levels" throughout this pattern.
+Feel free to use whatever terms fits your organization best.
+
+To establish governance levels in your organization, we recommend these activities:
+
+1. Define your governance levels - **Goal**: Have a clear written description of the governance levels, that you can refer to as a reference.
+2. Promote your governance levels - **Goal**: The governance levels are known and understood throughout your organization.
+
+We will go into more detail on each of these activities in the following sections.
+
+### Define your Governance Levels
+
+The goal of this activity is to have a clear written description of the governance levels, that you can refer to as a reference.
+
+ - Document the governance levels that are commonly used in your organization.
+ - Document additional governance levels that you don't have yet, but that would benefit the cross-team collaboration in your organization.
+ - Give each of them a distinctive and descriptive name.
+ - Use specific projects as examples where helpful.
+ - Keep this documentation in a central place that you can easily reference that can be accessed by everybody.
+
+#### Commonly used Governance Levels
+
+The following governance levels are commonly used when practicing InnerSource.
+
+Each of these levels adds more influence/karma to the contributing team.
+However each step also requires more transparency and shared communication resources between both teams.
+
+1. **Bug Reports and Issues Welcome**:
+ - People outside the host team may use the code.
+ - They can submit feature requests and bug reports for things they would like to see changed.
+ - aka **Readable Source**, **Shared Source**
+2. **Contributions Welcome**:
+ - People outside the host team may use the code.
+ - They can make modifications and submit them to the host team for inclusion.
+ - aka **Guest Contributions**
+3. **Shared Write Access**:
+ - People outside of the host team can get write access to the project.
+ - The host team may give outside contributors additional leverage in the strategic direction of the project.
+ - Related Pattern: [Trusted Committer](../2-structured/trusted-committer.md)
+4. **Shared Ownership**:
+ - Members of different teams collaborate on the project as equal peers.
+ - Everyone has the ability to merge code.
+ - Everyone has an equal say on the project direction.
+ - Everyone has an equal say in who else to add to this group.
+ - aka **Distributed Ownership**, **Maintainers in Multiple Team**
+ - Related Pattern: [Group Support](../2-structured/group-support.md)
+
+
+
Bug Reports and Issues Welcome
+
Contributions Welcome
+
Shared Write Access
+
Shared Ownership
+
+
+### Promote your Governance Levels
+
+The goal of this activity is that the governance levels are known and understood throughout your organization, and that some of your higher profile InnerSource project start to adopt these governance levels explicitly.
+
+- Present your governance levels in existing knowledge sharing forums in your organization. Make sure to explain the why, not just the what!
+- Whenever talking about your governance levels, make sure to stick to he exact names/titles of your governance levels.
+- Use the names of your governance levels within project documentation and contributing guides (see also [Standard Base Documentation](../2-structured/base-documentation.md)).
+- Label projects with the governance levels in an [InnerSource Portal](../2-structured/innersource-portal.md), so that contributors can see at a glance what type of InnerSource collaboration the host team supports for the given project.
+- Create training material containing examples of projects in your organization. That makes it easier for people in your organization to related to these examples and understand what these governance levels mean and how they work.
+- Present the governance levels as a menu of adoption options when launching new InnerSource projects.
+
+## Resulting Context
+
+- Cross team communication occurs efficiently without confusion, using terms that are universally understood and centrally documented.
+- Organization leaders understand the nuances within practicing InnerSource and make better informed and more precise decisions that are easier to communicate.
+- Increased standardization of InnerSource practices within the organization as the named and documented building blocks are used by teams as a menu for adoption.
+- Teams can adopt InnerSource best practices in a step-by-step way which makes adoption easier and less intimidating.
+
+## Rationale
+
+Like "InnerSource", Open Source is also a broad term.
+
+There are projects on GitHub, published purely for the pleasure of the author with no intention of long term maintenance, not intention to fix bugs submitted by users. This would be the equivalent of "Bug Reports and Issues Welcome" - you can report the bug, but its on the owner to find the time to fix it. We call this **shared source**, which would not qualify as open source software (OSS) yet.
+
+There are projects where the roadmap is created in-house, hidden from public view. Where commit rights come and go with the contract of the employees of one company (e.g. MongoDB, Elastic, Tensorflow). Users are welcome to submit patches, they will even be mentored through. All development happens in the open, but control and strategy is never shared. This would be the equivalent of stage "Contributions Welcome". We call this **single vendor OSS**.
+
+There are projects that share write access, but do not share the power to decide who gets write access next. This applies to everyone who is only a committer at an Apache project.
+
+There are projects that are fully shared across multiple independent organizations (e.g. k8s, any Apache project) - those would be "Shared Ownership". We call this **vendor neutral OS**.
+
+The same levels make sense inside of organizations.
+
+## Known Instances
+
+- **BBC** - referenced in this talk: [Ownership in a DevOps and InnerSource environment - Tom Sadler (BBC)](https://www.youtube.com/watch?v=O8TK7QG3FjM)
+- **Flutter Entertainment**
+- **Europace AG**
+
+### Flutter Entertainment
+
+Flutter Entertainment define an [InnerSource Pyramid](https://innersource.flutter.com/how/pyramid/) to describe three different operating models: Readable Source, Guest Contributions and Maintainers in Multiple Teams. Each name is centrally documented. The use of these names is encouraged via repeated usage, direct training and categorization of each InnerSource project.
+
+
+
+## Status
+
+- Structured
+
+## Authors
+
+- Isabel Drost-Fromm
+- Rob Tuley
+- Tom Sadler
+- Sebastian Spier
+
+## Alias
+
+- Governance Framework (for InnerSource)
+- Defined Project Governance
+- Project Ownership Models
+- Explicitly Defined Governance
+- InnerSource Operating Models (seems a bit too broad, as readers might expect this to include CI/CD setups, code review tooling, and the like)
diff --git a/patterns/2-structured/group-support.md b/patterns/2-structured/group-support.md
index 9bf49202e..71c154c9f 100644
--- a/patterns/2-structured/group-support.md
+++ b/patterns/2-structured/group-support.md
@@ -69,7 +69,7 @@ Feeling part of a group and being given some structure and responsibility genera
## Known Instances
-* WellSky
+* **WellSky**
## Status
diff --git a/patterns/2-structured/innersource-license.md b/patterns/2-structured/innersource-license.md
index bc031e933..981c4f9cb 100644
--- a/patterns/2-structured/innersource-license.md
+++ b/patterns/2-structured/innersource-license.md
@@ -55,6 +55,8 @@ The license simplifies the conversations within our organization about sharing s
- **Robert Bosch GmbH**
- **Airbus**
- **GovTech (Singapore Government)**
+- **Siemens** has developed their own InnerSource license alongside other necessary legal agreements between subsidiaries.
+- **Mercedes-Benz**
### DB Systel
@@ -107,5 +109,5 @@ For more details see the InnerSource Commons Community call from 09/2023 [Improv
- **organization** - An umbrella for multiple legal entities. (synonyms: group, enterprise) (e.g. Lufthansa)
- **legal entity** - An entity that has its own legal rights and obligations (synonyms: company, subsidiary) (e.g. Lufthansa Systems GmbH, Lufthansa Industry Solutions TS GmbH, ...)
-[db-inner-source-license]: https://github.com/dbsystel/open-source-policies/blob/master/DB-Inner-Source-License.md
+[db-inner-source-license]: https://github.com/dbsystel/open-source-policies/tree/master/inner-source-license
[eupl]: https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
diff --git a/patterns/2-structured/innersource-portal.md b/patterns/2-structured/innersource-portal.md
index 37e7e4f39..823af865c 100644
--- a/patterns/2-structured/innersource-portal.md
+++ b/patterns/2-structured/innersource-portal.md
@@ -14,9 +14,9 @@ InnerSource projects at your organization are increasing but potential contribut
## Story
-You are attempting to establish an InnerSource practice within your organization. You are aware of some projects being run using an InnerSource model but their existence is only being communicated via word of mouth, email or sidebar conversations with other employees. As a result InnerSource project owners are finding it difficult to attract contributors.
+You are attempting to establish an InnerSource practice within your organization. You are aware of some projects being run using an InnerSource model but their existence is only being communicated via word of mouth, email or sidebar conversations with other employees. As a result InnerSource project owners are finding it difficult to attract contributors.
-There is no single, shared resource for employees across the organization to access which will allow them to easily discover all ongoing InnerSource projects. This is severely limiting the growth potential of every InnerSource project.
+There is no single, shared resource for employees across the organization to access which will allow them to easily discover all ongoing InnerSource projects. This is severely limiting the growth potential of every InnerSource project.
What can be done to help all InnerSource projects raise their visibility to as large an audience as possible and attract contributors organization-wide?
@@ -45,9 +45,9 @@ Create an InnerSource Portal intranet website where InnerSource project owners c
Key properties of the portal are:
-* Visitors to the InnerSource Portal should be able to see all available projects as well as search for specific projects based on various criteria such as project name, technologies in use, contributor names, sponsoring business unit etc.
-* The information displayed via the InnerSource Portal should be under the full control of the InnerSource project owners at all times. Preferably, by sourcing this information directly from a specific data file or meta-data stored in the project repository itself.
-* Project owners should include all relevant information concerning their projects within those data files including the project name, trusted contributors' names, a brief description and links to the code repository or any supporting documentation.
+* Visitors to the InnerSource Portal should be able to see all available projects as well as search for specific projects based on various criteria such as project name, technologies in use, contributor names, sponsoring business unit etc.
+* The information displayed via the InnerSource Portal should be under the full control of the InnerSource project owners at all times. Preferably, by sourcing this information directly from a specific data file or meta-data stored in the project repository itself.
+* Project owners should include all relevant information concerning their projects within those data files including the project name, trusted contributors' names, a brief description and links to the code repository or any supporting documentation.
* (optional) While most organizations will choose to make their portal only available on their intranet, some organizations have opted to make their portal available on the public internet. The latter can be interesting for organizations that want to show additional information about their InnerSource approach in their portal e.g. for branding and recruitment purposes.
When launching the portal, a communications campaign promoting the addition of InnerSource data files or meta-data to code repositories should be considered, to bolster the number of projects displayed within the portal.
@@ -99,7 +99,7 @@ It is a good solution for a portal with a few dozen projects, though.
* [Gamification As Means of Cultural Change and InnerSource Engagement Booster](https://www.oreilly.com/library/view/oscon-2018-/9781492026075/video321579.html) | Shelly Nizri | OSCON 2018 - Portland, Oregon
* Of Islands, Monsters & InnerSource [(slides)](https://docs.google.com/presentation/d/1P1OCEK9B6eSrVRUclVWY6meSI-qHOBjM_UAPNvCZamU/edit#slide=id.p15), [(video)](https://drive.google.com/file/d/1pM89uHMn0vhE3ayFJDGYcCO8R0tAXXZD/view?usp=drivesdk) | InnerSource Spring Summit 2019 (Galway, Ireland)
* The [code](https://gitlab.com/gilda2) realizing this platform has been open sourced.
-* **American Airlines** promotes InnerSource projects via an [internal InnerSource Marketplace](https://tech.aa.com/2020-10-30-innersource/). Similarly to SAP, projects self-register by adding `innersource` as a GitHub topic. Projects are searchable and filterable by language, topics, number of open issues, etc.
+* **American Airlines** promotes InnerSource projects via an [internal InnerSource Marketplace](https://web.archive.org/web/20240226230502/https://tech.aa.com/2020-10-30-innersource). Similarly to SAP, projects self-register by adding `innersource` as a GitHub topic. Projects are searchable and filterable by language, topics, number of open issues, etc.
* **Banco Santander** has created a public portal called "Santander ONE Europe InnerSource Community" to support and increase InnerSource adoption. In addition to the catalog of projects the portal includes relevant content such as documentation, way of working, news, and events.

@@ -108,6 +108,7 @@ It is a good solution for a portal with a few dozen projects, though.
* **Mercado Libre** use an instance of the [SAP portal](https://github.com/SAP/project-portal-for-innersource) to discover existing InnerSource projects within the organization.
* **Mercedes-Benz** is [using](https://opensource.mercedes-benz.com/news/sponsor_innersource_commonsoss) the SAP reference implementation mentioned above for their InnerSource Portal.
* **WellSky** has a simple _Confluence Wiki_ page were InnerSource and reusable projects are listed.
+* **Siemens** has set up an internal portal that provides documentation for InnerSource maintainers, contributors, users and their managers. It also serves as an entry point to explore available projects and gives hints to improve project visibility.
## References
diff --git a/patterns/2-structured/issue-tracker.md b/patterns/2-structured/issue-tracker.md
index ffbda0591..17bb85dd9 100644
--- a/patterns/2-structured/issue-tracker.md
+++ b/patterns/2-structured/issue-tracker.md
@@ -49,7 +49,8 @@ development but also during the planning phase of new features:
## Known Instances
-* Europace AG - See blog post [Issue Use Cases](https://tech.europace.de/post/using-issues-for-asking-questions-and-tracking-work/)
+* **Europace AG** - See blog post [Issue Use Cases](https://tech.europace.de/post/using-issues-for-asking-questions-and-tracking-work/)
+* **Siemens** manages work on their InnerSource Platform in a fully transparent way. Therefore the work on the InnerSource Platform itself is organized as an InnerSource project. This includes tracking enhancements and bugs, as well as marketing, communication activities and support requests from users.
## Authors
diff --git a/patterns/2-structured/maturity-model.md b/patterns/2-structured/maturity-model.md
index 629c2e477..4dac8dff4 100644
--- a/patterns/2-structured/maturity-model.md
+++ b/patterns/2-structured/maturity-model.md
@@ -15,7 +15,7 @@ yet aware of.
When InnerSource adoption in an enterprise starts to increase, individual
mentoring of each project through one evangelist becomes unfeasible. Also, more
and more people are gaining at least a basic understanding of what it means to
-work in an InnerSource project. Looking at all InnerSource projects though the
+work in an InnerSource project. Looking at all InnerSource projects though, the
depth of understanding for the concept will diverge. Teams may not be aware of
proven patterns that would help them move to the next level and solve issues and
pain points that they are dealing with.
@@ -33,8 +33,7 @@ InnerSource project differs depending on each team.
Teams sharing InnerSource learnings run into misunderstandings as they are not
aware of their respective level of InnerSource adoption.
-Teams believe that "it's all about migrating to a shared software development
-[forge](https://en.wikipedia.org/wiki/Forge_%28software%29)" (GitLab, GitHub, or Bitbucket being well known examples of such forges).
+Teams believe that "it's all about migrating to a shared software development [forge](https://en.wikipedia.org/wiki/Forge_%28software%29)" (GitLab, GitHub, or Bitbucket being well known examples of such forges).
Teams are not aware of best practices that would help them solve issues that
they run into in their daily doing.
@@ -210,10 +209,11 @@ long term.
## Known Instances
-* Entelgy
-* Zylk
-* Bitergia
-* Airbus
+* **Entelgy**
+* **Zylk**
+* **Bitergia**
+* **Airbus**
+* **Adyen**
## Authors
diff --git a/patterns/2-structured/praise-participants.md b/patterns/2-structured/praise-participants.md
index b8c32b2c2..7836f815b 100644
--- a/patterns/2-structured/praise-participants.md
+++ b/patterns/2-structured/praise-participants.md
@@ -71,8 +71,9 @@ Overdoing it may feel insincere and mechanical and defeat your purpose in reachi
## Known Instances
-* Nike (multiple projects)
-* SAP - InnerSource initiatives like the Dojo and Everest projects are elevated by the 'Praise Participants' pattern, where the SAP Appreciate program plays a key role in fostering a culture of gratitude and recognition, driving innovation and collaboration to new heights. See: [InnerSource: First Contribution Explored](https://community.sap.com/t5/open-source-blogs/innersource-first-contribution-explored/ba-p/13644916)
+* **Nike** (multiple projects)
+* **SAP** - InnerSource initiatives like the Dojo and Everest projects are elevated by the 'Praise Participants' pattern, where the SAP Appreciate program plays a key role in fostering a culture of gratitude and recognition, driving innovation and collaboration to new heights. See: [InnerSource: First Contribution Explored](https://community.sap.com/t5/open-source-blogs/innersource-first-contribution-explored/ba-p/13644916)
+* **Siemens** awards successful InnerSource projects and contributors at their yearly internal InnerSource Summit.
## Status
diff --git a/patterns/2-structured/project-setup/README.md b/patterns/2-structured/project-setup/README.md
index b4045fc26..2ba1eb0e5 100644
--- a/patterns/2-structured/project-setup/README.md
+++ b/patterns/2-structured/project-setup/README.md
@@ -1,3 +1,3 @@
# Files moved
-Files from this folder were moved [here](../).
+Files from this folder were moved to the [2-structured folder](../).
diff --git a/patterns/2-structured/release-process.md b/patterns/2-structured/release-process.md
index ae46068fd..86105babc 100644
--- a/patterns/2-structured/release-process.md
+++ b/patterns/2-structured/release-process.md
@@ -47,7 +47,7 @@ The following are key elements to achieve this:
- Releases are clearly labeled and tagged with [semantic versioning](https://github.com/semantic-release/semantic-release)
- Releases include notes on New Features, Bug Fixes, and any "Breaking Changes"
-A good example of quality release notes can be found [here](https://github.com/jaegertracing/jaeger/releases).
+A good example of quality release notes can be found in the [jaeger project](https://github.com/jaegertracing/jaeger/releases).
## Resulting Context
@@ -57,8 +57,8 @@ Release notes are also a great opportunity to [praise participants](praise-parti
## Known Instances
-* Comcast (multiple projects)
-* GitHub (multiple projects)
+* **Comcast** (multiple projects)
+* **GitHub** (multiple projects)
## Authors
diff --git a/patterns/2-structured/repository-activity-score.md b/patterns/2-structured/repository-activity-score.md
index dae8f3e2b..73c26a57f 100644
--- a/patterns/2-structured/repository-activity-score.md
+++ b/patterns/2-structured/repository-activity-score.md
@@ -114,8 +114,9 @@ The repository activity score is a simple calculation based on the GitHub API. I
## Known Instances
-* Used in SAP's InnerSource project portal to define the default order of the InnerSource projects. It was first created in July 2020 and is fine-tuned and updated frequently ever since. When proposed to the InnerSource Commons in July 2020, this pattern emerged. Also see [Michael Graf & Harish B (SAP) at ISC.S11 - The Unexpected Path of Applying InnerSource Patterns](https://www.youtube.com/watch?v=6r9QOw9dcQo&list=PLCH-i0B0otNQZQt_QzGR9Il_kE4C6cQRy&index=6).
-* Airbus took a lot of inspiration from this pattern to create an "InnerSource score" that combines the activity score together with checks from the [Standard Base Documentation](./base-documentation.md) and the [InnerSource License](./innersource-license.md).
+* **SAP** - Used in SAP's InnerSource project portal to define the default order of the InnerSource projects. It was first created in July 2020 and is fine-tuned and updated frequently ever since. When proposed to the InnerSource Commons in July 2020, this pattern emerged. Also see [Michael Graf & Harish B (SAP) at ISC.S11 - The Unexpected Path of Applying InnerSource Patterns](https://www.youtube.com/watch?v=6r9QOw9dcQo&list=PLCH-i0B0otNQZQt_QzGR9Il_kE4C6cQRy&index=6).
+* **Airbus** took a lot of inspiration from this pattern to create an "InnerSource score" that combines the activity score together with checks from the [Standard Base Documentation](./base-documentation.md) and the [InnerSource License](./innersource-license.md).
+* **Siemens** includes repository activity in their InnerSource project quality score. Maintainers can use the quality score to improve their project and communicate their score via badges.
## Status
diff --git a/patterns/2-structured/review-committee.md b/patterns/2-structured/review-committee.md
index f27d793ea..1252af272 100644
--- a/patterns/2-structured/review-committee.md
+++ b/patterns/2-structured/review-committee.md
@@ -41,7 +41,7 @@ Company A wants to introduce its first InnerSource initiative. Most managers in
## Known Instances
-* BIOS at Robert Bosch GmbH (in the early stages of adoption, only - 2009-2012)
+* BIOS at **Robert Bosch GmbH** (in the early stages of adoption, only - 2009-2012)
## Status
diff --git a/patterns/2-structured/service-vs-library.md b/patterns/2-structured/service-vs-library.md
index 51bde3c20..7370bb1a7 100644
--- a/patterns/2-structured/service-vs-library.md
+++ b/patterns/2-structured/service-vs-library.md
@@ -72,9 +72,9 @@ Related to this pattern is the [30 Day Warranty](30-day-warranty.md) pattern tha
## Known Instances
-* Europace AG
-* Flutter Entertainment: A [Flutter InnerSource application](https://innersource.flutter.com/sdlc/) has a shared code "service" repository with cross-team contribution and CI pipeline to build and publish a shared release artifact. Each adopting team has a "deployment config" repository defining their own deployment. This is driven by varying regulatory requirements, service and incident management practices and infrastructure skill sets in different areas of the business.
-* WellSky (see [Continuous InnerSource in Production - 5 Times](https://www.youtube.com/watch?v=loSTj4yIG9Q&pp=ygUkY29udGludW91cyBpbm5lcnNvdXJjZSBpbiBwcm9kdWN0aW9u))
+* **Europace AG**
+* **Flutter Entertainment**: A [Flutter InnerSource application](https://innersource.flutter.com/sdlc/) has a shared code "service" repository with cross-team contribution and CI pipeline to build and publish a shared release artifact. Each adopting team has a "deployment config" repository defining their own deployment. This is driven by varying regulatory requirements, service and incident management practices and infrastructure skill sets in different areas of the business.
+* **WellSky** (see [Continuous InnerSource in Production - 5 Times](https://www.youtube.com/watch?v=loSTj4yIG9Q&pp=ygUkY29udGludW91cyBpbm5lcnNvdXJjZSBpbiBwcm9kdWN0aW9u))
## Status
diff --git a/patterns/2-structured/start-as-experiment.md b/patterns/2-structured/start-as-experiment.md
index 56e0c7d31..13451ae0f 100644
--- a/patterns/2-structured/start-as-experiment.md
+++ b/patterns/2-structured/start-as-experiment.md
@@ -53,8 +53,9 @@ Finally, starting as an experiment makes it much easier to sidestep regulations
## Known Instances
-- Robert Bosch GmbH (globally distributed software development)
-- Airbus: the data science community collaborated on shared Python libraries that eventually lead to a group-wide InnerSource scheme for any software.
+- **Robert Bosch GmbH** (globally distributed software development)
+- **Airbus**: the data science community collaborated on shared Python libraries that eventually lead to a group-wide InnerSource scheme for any software.
+- **Siemens** started their [InnerSource Platform](https://about.gitlab.com/customers/siemens/) code.siemens.com from a single department with a few hundred users. Over the years they scaled it to a company-wide service with 50,000 active users.
## Status
diff --git a/patterns/2-structured/transparent-cross-team-decision-making-using-rfcs.md b/patterns/2-structured/transparent-cross-team-decision-making-using-rfcs.md
index 5c46178a9..d267f5003 100644
--- a/patterns/2-structured/transparent-cross-team-decision-making-using-rfcs.md
+++ b/patterns/2-structured/transparent-cross-team-decision-making-using-rfcs.md
@@ -99,6 +99,7 @@ Also for decision making outside of pure software design decisions, transparent
- **Uber** - According to this blog post by Gergely Orosz: [Scaling Engineering Teams via RFCs: Writing Things Down][uber].
- **Google Design Docs** - As described in this blog post by Malte Ubl [Design Docs at Google][google]
- **DAZN** (10/2021) - One way that DAZN makes technical decisions is via RFCs. RFCs are used for decisions that apply to engineering-wide processes only! The RFCs live in a GitHub repository, and technical standards are then gradually adopted within their tools and by their engineers. An RFC can be raised by any engineer, and voted on by all engineers. If upvotes exceed downvotes, the RFC is adopted. It’s worth noting, that the RFC voting process hasn’t yet been “stress-tested” by any contentious decisions. - As described in this blog post by Lou Bichard: [Building A DX Team: Lessons Learned][dazn]
+- **SAP** (03/2024) - SAP has a mature tool-assisted process for document review across teams. It is primarily used for the review of Architecture Decision Records (ADR) originating from cross-team work done on the Cross-Product Architecture collaboration model. Some noteworthy implementation differences from this pattern: The review process is not easily available for decisions on small projects. Also, the documents are not restricted to InnerSource projects only. - As described in the blog post [Cross-Product Architecture: Embracing Conway's Law for Better Software Architecture][sap-cpa].
## Status
@@ -124,3 +125,4 @@ Structured
[bbc]: https://www.youtube.com/watch?v=U6zlghE0HcE
[google]: https://www.industrialempathy.com/posts/design-docs-at-google/
[dazn]: https://medium.com/dazn-tech/building-a-dx-team-lessons-learned-4a66446088bc
+[sap-cpa]: https://community.sap.com/t5/technology-blogs-by-sap/cross-product-architecture-embracing-conway-s-law-for-better-software/ba-p/13648600
diff --git a/patterns/2-structured/trusted-committer.md b/patterns/2-structured/trusted-committer.md
index 085513c77..b826f19bf 100644
--- a/patterns/2-structured/trusted-committer.md
+++ b/patterns/2-structured/trusted-committer.md
@@ -123,12 +123,10 @@ there is a plan for responsible stewardship.
## Known Instances
-This has been tried and proven successful at:
-
-- Nike
-- PayPal
-- Mercado Libre - adds a section in the `CONTRIBUTING.md` file to inform who the Trusted Committers are.
-- Robert Bosch GmbH - we didn't call the role 'Trusted Committer' but we had this role at the beginning of our InnerSource journey. Trusted Committers would be funded for 100 % of their time to be able to focus on this role.
+- **Nike**
+- **PayPal**
+- **Mercado Libre** - adds a section in the `CONTRIBUTING.md` file to inform who the Trusted Committers are.
+- **Robert Bosch GmbH** - we didn't call the role 'Trusted Committer' but we had this role at the beginning of our InnerSource journey. Trusted Committers would be funded for 100 % of their time to be able to focus on this role.

diff --git a/translation/README.md b/translation/README.md
index 7ea75bc04..872323a06 100644
--- a/translation/README.md
+++ b/translation/README.md
@@ -49,7 +49,7 @@ However, since git does not create empty folders, it is better to create directo
Most of the translations have not translated the text in the visuals (e.g. in images, the mindmap, etc). However if you like, you can!
-- To translate the mindmap, create a new folder similar to [pattern-categorization/gl](../pattern-categorization/gl/). Then edit the file `innersource-program-mind-map.md` in there, and run the scripts as explained [here](../pattern-categorization/README.md).
+- To translate the mindmap, create a new folder similar to [pattern-categorization/gl](../pattern-categorization/gl/). Then edit the file `innersource-program-mind-map.md` in there, and run the scripts as explained in the [Pattern Categorization README](../pattern-categorization/README.md).
- To add translated visuals, add a subfolder in `assets/img`, see [assets/img/gl/](../assets/img/gl/) as an example. Make sure that in the markdown files of your patterns you link to the correct image files.
### Translation Quality and Review Process
@@ -79,7 +79,7 @@ If you are just creating a new translation you do not need this information!
When a new translation is added, there are a couple of tasks to do:
-a) determine a translation lead, and add them to the relevant files. See [code change](https://github.com/InnerSourceCommons/InnerSourcePatterns/commit/95b8fc76b64909af5e95bf93fad6e7c105307812)
-b) [book.yml](../.github/workflows/book.yml) - update the GitHub Actions that generate book. See [code change](https://github.com/InnerSourceCommons/InnerSourcePatterns/commit/241bdf2a12c8750c66e71865a770d321cca67511)
-c) [i18n-consistency-checker.yaml](../.github/workflows/i18n-consistency-checker.yaml) - update the GitHub Actions that does the consistency checks. See [code change](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/619/commits/fce53091faac83b99de8d699d7672a44810408f0)
-d) (optional) [generate-mindmap.yml](../.github/workflows/generate-mindmap.yml) - if the mindmap was translated too, you need to update the GitHub Actions that regenerates the mindmap as well
+1. determine a translation lead, and add them to the relevant files. See [code change](https://github.com/InnerSourceCommons/InnerSourcePatterns/commit/95b8fc76b64909af5e95bf93fad6e7c105307812)
+2. [book.yml](../.github/workflows/book.yml) - update the GitHub Actions that generate book. See [code change](https://github.com/InnerSourceCommons/InnerSourcePatterns/commit/241bdf2a12c8750c66e71865a770d321cca67511)
+3. [i18n-consistency-checker.yaml](../.github/workflows/i18n-consistency-checker.yaml) - update the GitHub Actions that does the consistency checks. See [code change](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/619/commits/fce53091faac83b99de8d699d7672a44810408f0)
+4. (optional) [generate-mindmap.yml](../.github/workflows/generate-mindmap.yml) - if the mindmap was translated too, you need to update the GitHub Actions that regenerates the mindmap as well
diff --git a/translation/es/patterns/30-day-warranty.md b/translation/es/patterns/30-day-warranty.md
new file mode 100644
index 000000000..ad0630584
--- /dev/null
+++ b/translation/es/patterns/30-day-warranty.md
@@ -0,0 +1,77 @@
+## Title
+
+Garantía de 30 Días
+
+## Patlet
+
+Al aceptar contribuciones externas, es natural que un equipo tenga cierta aversión a asumir la responsabilidad de código escrito por otros. A través de la Garantía de 30 Días, el equipo contribuyente se compromete a proporcionar correcciones de errores al equipo receptor, lo que aumentará el nivel de confianza entre ambos equipos y hace más probable que se acepten las contribuciones.
+
+## Problema
+
+Un equipo desarrolla un componente que se utiliza en toda una organización. Este equipo se resiste a aceptar o directamente rechaza contribuciones (solicitudes de funcionalidades). Este comportamiento bloquea el progreso y conduce a interrupciones frecuentes por escalamientos.
+
+## Contexto
+
+- Los equipos dependen de que otro equipo acepte sus contribuciones para que un componente producido por el equipo receptor pueda ser utilizado por el equipo contribuyente.
+- El equipo receptor no tiene los recursos, conocimientos, permisos y/o inclinación para escribir el componente/funcionalidad contribuido por sí mismos.
+
+## Resistencias
+
+- Existe desconfianza hacia las contribuciones debido a un historial de engaños: los equipos enviaron contribuciones a medio terminar y posteriormente presentaron solicitudes de correcciones para hacerlas listas para su uso en producción.
+- Si el código es contribuido desde fuera del equipo, se tiene la sospecha natural de que el otro equipo no sabe cómo escribir código que cumpla con las expectativas del equipo receptor.
+- Cada equipo busca primero ayudar a sus propios líderes a alcanzar sus objetivos. Esta dirección de lealtad puede complicar la resolución de este problema.
+- Existe una aversión natural a asumir la responsabilidad del código no escrito por uno mismo.
+- El código contribuido necesita ser reescrito considerablemente antes de ser aceptado en el código fuente.
+- Existe el temor de que los contribuyentes no estén disponibles para el soporte en la corrección de errores después del momento de la contribución.
+- Los equipos temen que el código contribuido lleve a costos de mantenimiento más altos pero no saben cómo controlarlo.
+- Los equipos receptores pueden temer que enseñar a otros cómo contribuir código expondrá deuda técnica en su sistema y que esa visibilidad pueda ser dañina.
+- Los equipos receptores pueden no creer que recibirán código aceptable sin importar cuánta tutoría proporcionen.
+- Cualquiera de los equipos puede no sentirse seguro al medir riesgos o certificar que están mitigados en una contribución; el sistema en sí es algo frágil (puede no haber formas de probar completamente y detectar todos los problemas).
+
+## Solución
+
+Aborda los temores de ambos equipos, tanto el receptor como el contribuyente, estableciendo un **período de garantía de 30 días** que comienza cuando el código contribuido entra en producción. Durante este período de garantía, el equipo contribuyente acepta proporcionar correcciones de errores al equipo receptor.
+
+El período de garantía puede extenderse a 45, 60 o incluso 100 días, según las necesidades del proyecto. La duración puede variar según las restricciones del proyecto, el ciclo de vida del software del proyecto, los compromisos con los clientes y otros factores.
+
+Además, ayuda proporcionar [directrices de contribución](./base-documentation.md) claras, detallando las expectativas tanto del equipo receptor como del equipo contribuyente.
+
+
+
+## Contexto Resultante
+
+- El equipo receptor está dispuesto a aceptar contribuciones y puede compartir la carga de trabajo de adaptaciones/correcciones iniciales.
+- Mayor transparencia y equidad.
+- Evita que los escalamientos se vuelvan demasiado pesados.
+
+## Instancias Conocidas
+
+- Esto fue probado y demostrado exitoso en PayPal.
+- GitHub internamente usa este patrón con un período de garantía modificado de 6 semanas.
+- Microsoft recomienda este patrón como principio - los equipos establecen su propio objetivo de tiempo específico que coincida con sus necesidades y confianza.
+- SAP aprovecha este patrón en su proyecto Everest basado en InnerSource para transformar la colaboración, asegurando que las contribuciones no solo sean aceptadas sino también apoyadas, mejorando la confianza e impulsando la cultura de responsabilidad compartida e innovación. Ver: [InnerSource: Primera Contribución Explorada](https://community.sap.com/t5/open-source-blogs/innersource-first-contribution-explored/ba-p/13644916)
+
+## Autores
+
+- Cedric Williams
+
+## Agradecimientos
+
+- Dirk-Willem van Gulik
+- Padma Sudarsan
+- Klaas-Jan Stol
+- Georg Grütter
+
+## Estado
+
+* Estructurado
+* Redactado en la Cumbre InnerSource de Primavera 2017; revisado el 18 de julio de 2017.
+
+## Variantes
+
+- Asegurar la cooperación de equipos dependientes convirtiéndolos en una comunidad al tener más de un "[Trusted Committer](./trusted-committer.md)" (TC) designado meritocráticamente que asuma la responsabilidad.
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/base-documentation.md b/translation/es/patterns/base-documentation.md
new file mode 100644
index 000000000..4b2035357
--- /dev/null
+++ b/translation/es/patterns/base-documentation.md
@@ -0,0 +1,133 @@
+## Title
+
+Documentación Base Estándar
+
+## Patlet
+
+Los nuevos contribuidores a un proyecto InnerSource tienen dificultades para identificar quién mantiene el proyecto, en qué trabajar y cómo contribuir. Proporcionar documentación en archivos estándar como `README.md`/`CONTRIBUTING.md`/`COMMUNICATION.md` permite un proceso de autoservicio para nuevos contribuidores, permitiéndoles encontrar respuestas a las preguntas más comunes por sí mismos.
+
+## Problema
+
+Un equipo desea compartir un proyecto, ya sea nuevo o existente, con la organización y recibir contribuciones. Los potenciales contribuidores frecuentemente se sienten perdidos: No logran identificar los canales de comunicación preferidos del equipo. Tienen dificultades para determinar rápidamente si una nueva funcionalidad tiene sentido o no. Les cuesta entender exactamente quiénes son los colegas que actualmente mantienen el proyecto.
+
+## Contexto
+
+Un proyecto se compartirá con otros como proyecto InnerSource. Para que otros puedan entender de qué trata el proyecto y cómo contribuir, el proyecto necesita proporcionar documentación básica. Hasta ahora, el proyecto carece de toda la documentación o algunos aspectos necesarios para que los usuarios lo prueben de manera autónoma y para que los contribuidores puedan ponerse al día rápidamente.
+
+## Resistencias
+
+- El proyecto se convirtió en un proyecto InnerSource recientemente. Antes, los usuarios eran internos o recibían capacitación presencial. De igual manera, las personas que trabajaban en el proyecto pasaban por sesiones de incorporación presencial que no son escalables con el crecimiento de contribuidores o contribuidores remotos. Como resultado, falta documentación de autoservicio.
+- El proyecto fue creado como un proyecto InnerSource, pero el equipo anfitrión carece de experiencia con InnerSource. Como resultado, necesitan orientación sobre qué información incluir en su documentación, dónde ubicarla para que otros la encuentren y qué tipos de lectores considerar.
+- El proyecto se convirtió en un proyecto InnerSource recientemente, y el equipo anfitrión tiene experiencia limitada con InnerSource. Como resultado, la documentación existente aborda aspectos técnicos pero no cubre comunicación, coordinación e información necesaria para facilitar la planificación transparente.
+- El proyecto se convirtió en un proyecto InnerSource recientemente. Como resultado, mucho conocimiento implícito del equipo no está documentado ni es obvio para los contribuidores.
+- La falta de documentación hace que los potenciales contribuidores tarden mucho en configurar y comenzar. Producir documentación (y mantenerla actualizada) requiere inversión de tiempo. Incluso si el equipo anfitrión cuenta con contribuidores para ayudar con la documentación faltante, esas contribuciones necesitan tiempo de revisión.
+- Los miembros del proyecto dedican mucho tiempo a responder preguntas iniciales. Mantener una base de datos completa de preguntas de soporte requiere mucho tiempo y esfuerzo.
+- Diferentes equipos dentro de la organización tienen estándares divergentes sobre cómo formatear código y qué patrones de software usar. Como resultado, las contribuciones a menudo terminan siendo reescritas en gran parte o completamente. Estandarizar todo esto requeriría mucho tiempo y trabajo.
+- El trabajo adicional por explicaciones repetidas y reescrituras disminuye la utilidad del enfoque InnerSource.
+- Las escalaciones frecuentes debido al trabajo extra y los retrasos por reescrituras llevan a una situación de cuello de botella.
+
+## Solución
+
+Abordar la necesidad de una documentación más clara para nuevos contribuidores. El objetivo al crear esta documentación debe ser hacer que el proceso de inicio sea lo más autoservicio posible, con preguntas frecuentes respondidas en un formato de documentación estándar.
+
+### README.md
+
+Si tu proyecto aún no tiene un README.md, créalo e incluye lo siguiente:
+
+* La [misión del proyecto](https://producingoss.com/en/producingoss.html#mission-statement) en un formato lo más conciso posible. Debe responder cuál es el propósito del proyecto y permitir a los contribuidores hacer una buena suposición inicial sobre si una funcionalidad sugerida probablemente estará dentro del alcance del proyecto o no.
+* Una sección de "Primeros pasos" para los usuarios del proyecto. Debe explicar cómo configurar/integrar los artefactos del proyecto, así como una explicación de algunos de los primeros pasos típicos para los usuarios primerizos.
+* Documentación más profunda para los usuarios del proyecto, o un enlace a ella.
+* Documentación necesaria para hacer modificaciones al proyecto, o un enlace a ella.
+* Documentación sobre cómo contribuir al proyecto, o un enlace a ella.
+* Una sección de "Participar" que explique qué canales de comunicación públicos, archivados y enlazables utiliza el proyecto. Esto debe incluir un enlace al gestor de tareas (issue tracker) del proyecto, pero también a cualquier otro medio de discusión utilizado.
+* Una sección de "Quiénes somos" que explique quiénes son los [Trusted Committers](trusted-committer.md) detrás del proyecto, con una explicación de que en lugar de contactar a estas personas en privado, se deben utilizar los canales de comunicación públicos mencionados anteriormente.
+* Una explicación de cuáles son los criterios para que el proyecto convierta a los contribuidores en Trusted Committers, si ese camino existe.
+
+
+
+### CONTRIBUTING.md
+
+Si la explicación de los pasos para hacer una contribución es demasiado detallada, crea un documento `CONTRIBUTING.md` separado. Este documento debe responder preguntas frecuentes que los contribuidores hayan hecho en el pasado. No es necesario proporcionar un libro completo desde el principio. Más bien, comparte información que haya demostrado ser necesaria para los contribuidores. Probablemente tocará uno o más de los siguientes temas:
+
+* Cómo obtener el código fuente del proyecto desde el control de versiones.
+* Cómo hacer modificaciones al proyecto (potencialmente incluyendo información sobre las pautas de codificación).
+* Cómo construir el proyecto.
+* Cómo ejecutar pruebas para asegurarse de que las modificaciones anteriores no introduzcan nuevos errores.
+* Cómo enviar tus modificaciones de vuelta al proyecto.
+* Alguna información sobre el tiempo de respuesta esperado para las modificaciones realizadas.
+
+
+
+### COMMUNICATION.md
+
+Crea un documento `COMMUNICATION.md` separado. Enlaza este documento a tu `README.md` para que se pueda proporcionar información de contacto completa sin ocupar espacio adicional en tu README.
+Este documento debe responder preguntas frecuentes sobre cómo comunicarse con tu equipo que los contribuidores necesitan saber. El objetivo es agilizar las comunicaciones para que los usuarios y contribuidores se comuniquen con la persona correcta a través de un solo canal.
+Esto reduce distracciones innecesarias para los miembros del equipo y organiza las comunicaciones para que no se pierdan.
+
+Las secciones en el `COMMUNICATION.md` incluyen puntos de contacto para comunicaciones entrantes e información sobre comunicaciones salientes del equipo de propiedad del proyecto. A continuación, algunos ejemplos.
+
+Puntos de contacto para la comunicación entrante y cómo contactar a esos usuarios:
+
+* Reportar un error
+* Dar seguimiento a un PR
+* Solicitudes de funcionalidades
+* Preguntas sobre documentación
+* Escalaciones
+
+Cómo y cuándo el equipo se comunica con los usuarios y cómo ser agregado a esas comunicaciones:
+
+* Interrupciones planificadas y no planificadas
+* Lanzamientos de funcionalidades
+* Congelaciones de código
+* Cambios importantes
+
+Hay muchos buenos ejemplos de cómo escribir un `README.md` y qué tipo de información incluir en un archivo `CONTRIBUTING.md` en varios proyectos de código abierto.
+Páginas como [cómo escribir un readme que destaque](https://m.dotdev.co/how-to-write-a-readme-that-rocks-bc29f279611a), [Guía de Código Abierto de GitHub](https://opensource.guide/) así como el libro [Producing Open Source](https://producingoss.com/en/producingoss.html) tienen información valiosa sobre qué tipo de información proporcionar.
+Aunque Producing Open Source no tiene un capítulo sobre cómo escribir un buen README per se, el [capítulo de Primeros Pasos](https://producingoss.com/en/producingoss.html#starting-from-what-you-have) proporciona una lista bastante extensa de cosas que los miembros del equipo anfitrión, usuarios y contribuidores necesitarán.
+Los proyectos InnerSource probablemente no cubrirán todos esos aspectos desde el principio, pero la lista en sí es útil para inspiración sobre qué se podría cubrir.
+
+Además de eso, este patrón viene con tres plantillas muy básicas para que puedas comenzar de inmediato: [README-template.md](../templates/README-template.md),
+[CONTRIBUTING-template.md](../templates/CONTRIBUTING-template.md) y [COMMUNICATION-template.md](../templates/COMMUNICATION-template.md).
+
+## Contexto Resultante
+
+* El tiempo para que los contribuidores se pongan al día se reduce significativamente.
+* El tiempo dedicado a responder preguntas iniciales para los [Trusted Committers](trusted-committer.md) se reduce significativamente, dejándoles más tiempo para trabajar en otras tareas.
+* Las escalaciones debido a malentendidos y desalineaciones se reducen significativamente.
+
+## Instancias Conocidas
+
+* Europace AG - Ver publicación en el blog [InnerSource: Adding base documentation](https://tech.europace.de/post/innersource-base-documentation/)
+* Paypal Inc.
+* Mercado Libre - crear un sitio de documentación que contenga cómo comenzar con InnerSource y también definir los artefactos básicos que un repositorio debe tener para ser InnerSource (README, CONTRIBUTING, CODING_GUIDELINES, etc).
+* Analog Devices Inc.
+* Airbus
+
+## Autores
+
+* Isabel Drost-Fromm
+* Katie Schueths - agregó el concepto de `COMMUNICATION.md`
+
+## Alias
+
+Proporcionar documentación base estándar a través de un README
+
+## Estado
+
+* Estructurado
+* Borrador en diciembre de 2019.
+
+## Referencias
+
+* [README-template.md](../templates/README-template.md)
+* [CONTRIBUTING-template.md](../templates/CONTRIBUTING-template.md)
+* [COMMUNICATION-template.md](../templates/COMMUNICATION-template.md)
+
+## Créditos
+
+Ilustraciones de [Web](https://storyset.com/web) y [People](https://storyset.com/people) por Storyset
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/common-requirements.md b/translation/es/patterns/common-requirements.md
new file mode 100644
index 000000000..634c9b893
--- /dev/null
+++ b/translation/es/patterns/common-requirements.md
@@ -0,0 +1,77 @@
+## Title
+
+Requerimientos Comunes
+
+## Patlet
+
+El código común en un repositorio compartido no satisface las necesidades de todos los equipos de proyecto que desean utilizarlo; esto se resuelve mediante la alineación de requerimientos y la refactorización.
+
+## Problema
+
+El código común en el repositorio compartido no satisface las necesidades de todos los proyectos que desean utilizarlo.
+
+## Contexto
+
+* Muchos proyectos intentan utilizar código común. Existe un repositorio compartido al que todos los proyectos tienen acceso.
+* Alguien (o algún proyecto) escribió el código inicialmente y lo contribuyó al repositorio.
+* El código común representa un pequeño porcentaje del entregable total de cualquiera de los proyectos.
+* Cada proyecto tiene su propio calendario de entrega, conjunto de entregables y clientes.
+* Este patrón aplica en cualquiera de estas situaciones:
+ * existe un **Strong Code Owner**, es decir, todos los cambios al repositorio compartido deben ser aprobados por el propietario del repositorio
+ * existe un **Weak Code Owner**, es decir, nadie realmente es dueño del código
+ * no existe un **Benevolent Sponsor**, es decir, ninguna organización o ejecutivo proporciona recursos para organizar el código común de manera InnerSource
+
+## Resistencias
+
+El proyecto que hizo disponible el código tiene un conjunto de necesidades. Sus necesidades son similares a lo que algunas organizaciones receptoras desean, pero no exactamente iguales. Los requerimientos del código deben derivarse de necesidades reales del cliente.
+
+Las necesidades de diferentes clientes son generalmente bastante similares; sin embargo, pueden expresarse de manera diferente o tener diferentes prioridades entre clientes. Un ejemplo podría ser cómo algunos clientes desean que algún resultado se presente de una manera mientras que otros lo quieren en orden inverso. Es simple hacer la traducción entre ellos, pero requiere codificación adicional para uno de los casos y como resultado el módulo que calcula el resultado no puede ser reutilizado por ambos clientes.
+
+Muchos clientes desean que el proveedor les ayude a identificar sus necesidades. La empresa tiene muchos "Ingenieros de Sistemas" escribiendo requerimientos para los productos. Estos requerimientos deben ser una destilación de las necesidades del cliente para guiar el desarrollo del producto. Reutilizar código es un objetivo importante para ahorrar tiempo y dinero a la empresa.
+
+## Solución
+
+Hay dos aspectos para resolver este problema que deben realizarse en paralelo:
+
+1. Alinear los requerimientos de los proyectos para que el código que cumple los requerimientos de un proyecto también satisfaga las necesidades de los otros proyectos.
+2. Refactorizar el código en piezas más pequeñas para las cuales los múltiples proyectos que lo utilizan puedan acordar requerimientos.
+
+Adicionalmente, aprovechar que los clientes esperan que el proveedor ayude a comprender los requerimientos. Lograr la alineación de requerimientos durante las negociaciones con el cliente e influir en los requerimientos del cliente en lugar de cambiar el componente.
+
+En el ejemplo presentado anteriormente, el proveedor ayuda a ambos clientes a darse cuenta de que quieren lo mismo, y ahorrará esfuerzo (y dinero) a todos si acuerdan aceptar el resultado en el mismo formato.
+
+
+
+## Contexto Resultante
+
+Esto podría requerir negociar cambios en los requerimientos con el cliente. Los cambios también podrían requerir la participación de los equipos de ventas y gestores de producto para lograr la alineación en los requerimientos. El cliente podría necesitar incentivos, como descuentos, para aceptar los cambios.
+
+Un desafío relacionado (y posible nuevo patrón) es un ejercicio circular de escritura de historias reportado en una empresa que emplea InnerSource. En resumen:
+
+* Los desarrolladores escriben una historia para resolver un problema de una manera.
+* Los gestores del programa reescriben la historia para expresar mejor sus necesidades, manteniendo la esencia igual. Sin embargo, cuando vuelve a los desarrolladores, no la reconocen como lo que querían hacer en primer lugar y por lo tanto se resisten a implementarla.
+* La solución a este patrón es tener más asientos alrededor de la mesa de planificación para que las modificaciones de la historia se entiendan en todo el proyecto, no solo en los campos de desarrolladores o gestores de programa.
+
+## Instancias Conocidas
+
+* Gran proveedor de telecomunicaciones
+
+## Estado
+
+* Estructurado
+
+## Autor
+
+Robert Hanmer
+
+## Reconocimientos
+
+* Manrique Lopez
+* Daniel Izquierdo
+* Tim Yao
+* Sebastian Spier
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/communication-tooling.md b/translation/es/patterns/communication-tooling.md
new file mode 100644
index 000000000..c1bce1866
--- /dev/null
+++ b/translation/es/patterns/communication-tooling.md
@@ -0,0 +1,83 @@
+## Title
+
+Herramientas de Comunicación
+
+## Patlet
+
+Los usuarios de un proyecto InnerSource tienen dificultades para obtener ayuda y contactar con el equipo anfitrión. Mediante el uso consistente de herramientas de comunicación asincrónica, el proyecto hace que las discusiones sean visibles, archivadas y buscables, lo que conduce a un mejor nivel de soporte para los usuarios.
+
+## Problema
+
+Un equipo está abierto a recibir contribuciones de los usuarios posteriores de su componente. Sin embargo, la coordinación y comunicación ocurre de manera improvisada, lo que lleva a compartir información incoherente, retrasos en las respuestas recibidas, y contribuyentes contactando a múltiples miembros del equipo anfitrión antes de recibir una respuesta definitiva.
+
+## Contexto
+
+- Un equipo depende del componente de otro equipo.
+- Le gustaría hacer contribuciones a ese componente.
+- Incluso cuando ocurre por escrito, la comunicación sucede de manera individual.
+
+## Resistencias
+
+- El equipo anfitrión está interesado en recibir contribuciones y dispuesto a guiar a los contribuyentes.
+- Los equipos tienen una fuerte cultura de comunicación verbal y poca experiencia en establecer canales de comunicación asincrónica específicos para proyectos.
+- Los canales de comunicación pueden estar alineados con grupos específicos que deben ser alcanzados pero no por propósito de comunicación.
+
+## Solución
+
+El equipo anfitrión debe proporcionar canales de comunicación públicos dentro de la empresa, archivados, buscables y enlazables a los que cualquier persona en la empresa pueda suscribirse, ya que hay beneficios medibles al mantener canales de comunicación escritos y abiertos.
+
+El objetivo al optimizar los canales de comunicación para proyectos InnerSource debe ser alinear la comunicación en torno a temas, no en torno a ciertos grupos de personas.
+
+Un proyecto debe establecer las siguientes herramientas de comunicación:
+
+1. **Gestor de tareas dedicado** donde la comunicación estructurada, la toma de decisiones y el seguimiento del progreso pueden ocurrir de manera transparente para todos los miembros del equipo anfitrión y también para los usuarios y contribuyentes posteriores. Para más aplicaciones del Gestor de Tareas, ver [Casos de Uso del Gestor de Tareas](./issue-tracker.md).
+2. **Canales de discusión públicos** que tienen una estructura menos rígida. Típicamente, serán listas de correo, foros en línea, sistemas de preguntas y respuestas o incluso canales de chat archivados. Usualmente es suficiente comenzar con solo un canal para el proyecto. Si el tráfico aumenta demasiado, es útil separar las discusiones sobre el uso del proyecto de las discusiones sobre el desarrollo del proyecto.
+3. **Un canal privado** donde la comunicación sobre temas sensibles puede ocurrir entre [Trusted Committers](./trusted-committer.md) - por ejemplo, agregar más Trusted Committers al equipo anfitrión. Este canal debe usarse con mucho cuidado para que la comunicación por defecto sea abierta y se mantenga privada solo en circunstancias muy raras.
+
+Aunque la comunicación puede ocurrir fuera de estos canales escritos, se debe traer la mayor cantidad de información posible a los canales asincrónicos.
+
+Todos los canales de comunicación deben estar documentados en el archivo `README.md` del proyecto. Para más detalles sobre el uso de este archivo, ver [Documentación Base Estándar](./base-documentation.md).
+
+Los miembros del equipo anfitrión deben esforzarse por dirigir las preguntas que reciben personalmente (por ejemplo, por correo electrónico o mensajes privados) hacia los canales de comunicación oficiales.
+
+
+
+## Contexto Resultante
+
+Establecer y usar consistentemente canales de comunicación asincrónica oficiales ayuda a crear un nivel base de [documentación pasiva](https://www.oreilly.com/library/view/understanding-the-innersource/9781491986899/ch04.html) que puede ser referenciada nuevamente cuando surgen preguntas similares.
+
+Con la comunicación ocurriendo abiertamente, otros pueden seguir fácilmente el progreso del proyecto y participar activamente contribuyendo. Otros observando y leyendo reduce la barrera para involucrarse, aumentando la probabilidad de recibir contribuciones.
+
+Con las preguntas siendo respondidas en público, más personas pueden agregar su perspectiva llevando a una imagen completa - esto incluye no solo a los miembros del equipo anfitrión, sino también a los usuarios del proyecto.
+
+Mantener la comunicación en canales asincrónicos permite que los participantes con diferentes horarios - ya sea debido a diferentes zonas horarias o debido a diferentes rutinas, horarios de reuniones, rutinas de equipo - contribuyan significativamente al proyecto.
+
+Responder preguntas en estos canales significa que no solo otros miembros del equipo pueden escuchar y proporcionar información adicional, sino que también que otros usuarios con la misma pregunta ven (o encuentran más tarde) la respuesta anterior, lo que lleva a una menor necesidad de repetir explicaciones.
+
+## Instancias Conocidas
+
+* Europace AG
+* Paypal Inc.
+* Mercado Libre
+
+## Autores
+
+Isabel Drost-Fromm
+
+## Agradecimientos
+
+Sebastian Spier (por el visual)
+
+## Estado
+
+* Estructurado
+* Redactado en Diciembre 2019
+
+## Créditos
+
+Ilustraciones de [People](https://storyset.com/people) por Storyset
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/contracted-contributor.md b/translation/es/patterns/contracted-contributor.md
new file mode 100644
index 000000000..bb4d053f4
--- /dev/null
+++ b/translation/es/patterns/contracted-contributor.md
@@ -0,0 +1,94 @@
+## Title
+
+Colaborador Contratado
+
+## Patlet
+
+Los colaboradores que desean contribuir a InnerSource son desalentados por su gerencia directa. La solución se proporciona mediante contratos y acuerdos formales.
+
+## Problema
+
+Sin el apoyo de la gerencia media, la cantidad de colaboradores y, en consecuencia, el número de contribuciones y el valor generado por la iniciativa InnerSource probablemente estarán por debajo de las expectativas de la alta dirección. Esto probablemente podría agravarse si no hay financiamiento adecuado y empoderamiento de los [Lideres de Comunidad Dedicados](dedicated-community-leader.md). Esto corre el riesgo de que la alta dirección abandone la idea de InnerSource.
+
+## Contexto
+
+Una gran corporación ha iniciado una iniciativa InnerSource. Los objetivos principales de la iniciativa son aumentar la eficiencia del desarrollo de software distribuido y fomentar la innovación permitiendo que cada colaborador contribuya voluntariamente a proyectos InnerSource, independientemente del tema y la unidad de negocio.
+
+La alta dirección está a bordo y apoyando la iniciativa InnerSource. Para ellos, la iniciativa InnerSource es solo una de las muchas iniciativas para fomentar la innovación y la eficiencia.
+Están financiando InnerSource con dinero y capacidad para líderes comunitarios y están dando gran autonomía en cuanto a cómo se gasta el presupuesto. También están limitando el alcance y la duración de la iniciativa y participan en revisiones periódicas hasta que haya pruebas de que produce los resultados esperados (ver [Comité de Revisión](review-committee.md)).
+La alta dirección ha anunciado su apoyo a InnerSource en varias reuniones internas de la empresa.
+
+Sin embargo, la alta dirección aún no ha empoderado ni incentivado a los gerentes de nivel medio para permitir o incluso motivar a sus empleados a participar en actividades de InnerSource interdivisionales. Además de eso, la capacidad de cada colaborador generalmente se asigna a proyectos que no son de InnerSource para el 100 % de su tiempo de trabajo. La colaboración interorganizacional aún no es la norma y los gerentes de línea generalmente no tienen objetivos fuera de su propia organización. Se espera que las contribuciones a los proyectos de InnerSource se realicen durante el horario laboral, no durante el tiempo libre.
+
+## Resistencias
+
+- Los gerentes son responsables de los resultados de sus unidades de negocio. Permitir que su personal participe en actividades de InnerSource, lo que podría hacer que dediquen tiempo a contribuciones fuera de su unidad de negocio, reduce efectivamente la capacidad de su unidad. Esto probablemente dificultará que los gerentes alcancen o superen sus objetivos.
+- Los gerentes de línea y HR, por defecto, juzgarán el desempeño de sus subordinados en función de los objetivos de sus unidades de negocio, que pueden no estar alineados con los objetivos de la comunidad InnerSource.
+- Cuanto menos apoyo ejecutivo perciba un gerente de línea que tiene, menos probable es que permita que su personal participe en actividades de InnerSource que contribuyan a otra unidad de negocio.
+- Cuanta menos transparencia y control tenga un gerente de línea sobre el trabajo realizado por uno de sus subordinados, menos probable es que le permita contribuir.
+- Cuanto menos formalmente se gestione y organice el trabajo en InnerSource, menos probable es que un gerente de línea acostumbrado a procesos formales apruebe que uno de sus empleados contribuya a InnerSource.
+- Cuanto más tiempo dedique un colaborador a contribuciones a un proyecto de InnerSource que no beneficie su trabajo diario, más aumentará la carga de trabajo para sus compañeros de equipo en su unidad de negocio.
+- Los colaboradores individuales probablemente considerarán participar en InnerSource como una oportunidad para mejorar su red profesional dentro de la empresa y para adquirir conocimientos y experiencia en el área técnica de sus contribuciones.
+
+## Solución
+
+Establecer un contrato formal entre el colaborador, su gerente de línea y una oficina de gobernanza InnerSource (ISGO) financiada y dirigida centralmente. Hacer que la ISGO reembolse a las unidades de negocio que contrataron colaboradores por el tiempo contratado.
+
+- El contrato especifica un porcentaje máximo del tiempo de trabajo del colaborador en InnerSource.
+- El contrato establece claramente que el trabajo en la unidad de negocio del colaborador tiene prioridad sobre el trabajo en InnerSource.
+- El contrato establece que no es obligatorio trabajar en InnerSource durante el porcentaje máximo especificado en el contrato.
+- El contrato es firmado por el colaborador, el gerente de línea del colaborador, la oficina de gobernanza y el [Líder de Comunidad Dedicado](dedicated-community-leader.md) de la comunidad a la que el colaborador contribuirá.
+- La oficina de gobernanza ofrece mediar entre el colaborador y su gerente de línea en caso de conflicto respecto al tiempo para contribuciones.
+- El [Líder de Comunidad Dedicado](dedicated-community-leader.md) participa o proporciona información para las evaluaciones de desempeño de los colaboradores contratados por más del 20 %.
+
+
+
+## Contexto Resultante
+
+Un contrato formal y reembolsos financiados centralmente comunican de manera convincente el apoyo de la organización a la iniciativa InnerSource, empoderando así a la gerencia media para aprobarla:
+
+- La asignación de fondos corporativos a las unidades de negocio para el reembolso de la capacidad de desarrollo señala a los gerentes de línea que InnerSource es considerado valioso por la organización, que tiene apoyo ejecutivo y que se espera que ellos también lo apoyen.
+- Un contrato formal señala que el trabajo en InnerSource se gestiona profesionalmente e inspira confianza.
+- Un contrato formal aumenta la transparencia y proporciona una mejor visión general sobre la capacidad disponible del colaborador para su unidad de negocio y proyectos InnerSource, reduciendo así el riesgo de "capacidad sobrecargada/planificada".
+
+Un contrato formal también es beneficioso para los colaboradores y las comunidades:
+
+- Con un grupo estable de colaboradores, es más probable que algunos de ellos eventualmente logren el estatus de [Trusted Committer](./trusted-committer.md).
+- Un contrato formal proporciona una base para resolver conflictos relacionados con la participación en actividades de InnerSource. Tenga en cuenta que la mediación probablemente tendrá éxito solo en unas pocas empresas con una cultura propicia para ello.
+
+## Instancias Conocidas
+
+- BIOS en Robert Bosch GmbH
+
+## Estado
+
+* Estructurado
+
+## Autor
+
+- Georg Grütter (Robert Bosch GmbH)
+
+## Agradecimientos
+
+- Diogo Fregonese (Robert Bosch GmbH)
+- Robert Hansel (Robert Bosch GmbH)
+- Jim Jagielski
+- Tim Yao
+- Cedric Williams
+- Klaas-Jan Stol
+- Padma Sudarsan
+- Nick Stahl
+- Ofer Hermoni
+- Robert C. Hanmer
+
+## Registro de Cambios
+
+- **2016-10-25** - primera revisión
+- **2017-05-09** - reestructuración
+- **2017-09-08** - segunda revisión, reestructuración final y fusión
+- **2021-02-27** - corrección de problemas con la visualización del patrón en el libro
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/core-team.md b/translation/es/patterns/core-team.md
new file mode 100644
index 000000000..7b6680fb4
--- /dev/null
+++ b/translation/es/patterns/core-team.md
@@ -0,0 +1,115 @@
+## Title
+
+Equipo Central (Core Team)
+
+## Patlet
+
+Incluso cuando un proyecto InnerSource es ampliamente necesario, las contribuciones y el uso pueden verse obstaculizados porque el proyecto es difícil de manejar.
+Establece un equipo central dedicado a ocuparse de los elementos fundamentales del proyecto. Su trabajo permite que los contribuyentes agreguen y utilicen las funciones que aportan valor a sus escenarios.
+
+## Problema
+
+* Es difícil contribuir al proyecto.
+Esto puede deberse a aspectos como:
+ * No se puede ejecutar el proyecto localmente.
+ * Documentación deficiente.
+ * Código complejo.
+ * Pruebas inadecuadas.
+* Es difícil usar el proyecto.
+Algunas posibles causas:
+ * Documentación deficiente (de nuevo).
+ * Errores frecuentes.
+ * Configuración no intuitiva.
+
+## Historia
+
+Hay un proyecto central del que todos dependen.
+¡Qué gran candidato para InnerSource!
+Desafortunadamente, el proyecto ha crecido orgánicamente, con varias contribuciones y adiciones hechas de manera desordenada.
+Ahora es un lío espeso de código que nadie entiende y todos temen tocar.
+Claramente necesita una revisión (por ejemplo, refactorización, pruebas, documentación, etc.), pero, aunque todos lo consideran necesario, nadie se toma el tiempo para hacerlo.
+
+## Contexto
+
+* Muchos equipos necesitan el proyecto.
+* El proyecto tiene una deuda técnica significativa.
+* Adopción e iteración lenta en el proyecto.
+* No hay un propietario o mantenedor que se responsabilice del proyecto y del ecosistema de contribución en su conjunto.
+
+## Resistencias
+
+* Cada equipo contribuyente está ocupado y, por lo tanto, prioriza el trabajo que resulta en un beneficio inmediato para ellos.
+* A medida que el proyecto crece, la tendencia natural es que se vuelva más difícil de usar y modificar.
+
+## Solución
+
+Forma un equipo central cuyo trabajo sea mantener este proyecto en un estado que permita a otros integrarse y contribuir fácilmente.
+Este equipo se encarga de garantizar un ecosistema saludable para el uso y la contribución.
+Este trabajo crítico tiende a no ser priorizado como una contribución.
+Las principales áreas de enfoque incluyen comunicación, entorno local e infraestructura de DevOps.
+
+Aquí hay algunos ejemplos específicos:
+
+* Errores de producción
+* Documentación
+* Tutoriales y ejemplos de incorporación
+* Pruebas automatizadas
+* CI/CD
+* Entorno local
+* Modularización
+* Versionado
+* Monitoreo
+* Pioneros en nuevas clases/categorías de funciones
+
+Cada uno de estos elementos es muy importante para un ecosistema de producto saludable, pero es poco probable que se prioricen como una contribución.
+
+El equipo central puede estar compuesto por un pequeño número de personas a tiempo completo o parcial.
+La elección depende de la cantidad de trabajo necesario, la disponibilidad de recursos y la cultura de la organización.
+La consideración más importante es formar el equipo de una manera que permita a la organización empoderarlos y responsabilizarlos de la misma manera que a cualquier otro equipo.
+
+Debido a su papel central, los miembros del equipo central casi siempre deben desempeñar el papel de **Trusted Committers** también (para más información sobre ese concepto, ver [Ruta de Aprendizaje][tc-learning-path] y [Patrón][tc-pattern]).
+Mientras que el rol de Trusted Committer se centra principalmente en facilitar la contribución y el uso del proyecto por parte de otros, un miembro del equipo central contribuye regularmente al proyecto también.
+El equipo central no tiene su propia agenda comercial que determine sus contribuciones.
+Deciden en qué trabajar en función de lo que más ayudará a otros a usar y contribuir al proyecto.
+
+Una buena manera de recordar continuamente al equipo central este objetivo es hacer que informen regularmente sobre:
+
+* número de equipos activos que usan el proyecto
+* número de contribuciones fuera del equipo al proyecto.
+
+El enfoque continuo en estas métricas naturalmente llevará al equipo central a priorizar generalmente el trabajo correcto para crear un ecosistema InnerSource próspero alrededor del proyecto.
+
+
+
+## Contexto Resultante
+
+* Es fácil usar y contribuir al proyecto.
+* Muchos equipos usan y contribuyen al proyecto.
+* El éxito del equipo central se define en términos de la interacción y respuesta de otros a su proyecto.
+
+## Racional
+
+Separar un equipo central y asignarles esta tarea ayuda a llenar los vacíos que un proyecto exitoso necesita, pero que son dejados por los contribuyentes que solo persiguen su propia agenda.
+El equipo central llena esos vacíos y engrasa las ruedas para que el ecosistema de contribución se mantenga saludable.
+
+## Instancias Conocidas
+
+* **Nike** implementó este patrón para gestionar su iniciativa InnerSource en torno a sus pipelines reutilizables de CI/CD.
+* **WellSky** estableció un Equipo Central para un proyecto clave. Esto les permitió escalar significativamente sus contribuciones InnerSource a ese proyecto - ver [Wide-Scaled InnerSource with a Core Team](https://www.youtube.com/watch?v=kgxexjYdhIc).
+* **BBVA AI Factory** implementó este patrón como parte de una estrategia InnerSource para fomentar la contribución y reutilización del código de ciencia de datos - ver [Mercury: Scaling Data Science reusability at BBVA](https://www.bbvaaifactory.com/mercury-acelerando-la-reutilizacion-en-ciencia-de-datos-dentro-de-bbva/).
+
+## Estado
+
+Estructurado
+
+## Autor
+
+[Russell R. Rutledge](https://github.com/rrrutledge)
+
+[tc-learning-path]: https://innersourcecommons.org/learn/learning-path/trusted-committer/
+[tc-pattern]: ../2-structured/trusted-committer.md
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/crossteam-project-valuation.md b/translation/es/patterns/crossteam-project-valuation.md
new file mode 100644
index 000000000..e18a318a7
--- /dev/null
+++ b/translation/es/patterns/crossteam-project-valuation.md
@@ -0,0 +1,113 @@
+## Title
+
+Valoración de Proyectos Transversales
+
+## Patlet
+
+Es difícil demostrar el valor de los proyectos InnerSource cross-team que no proporcionan un impacto directo en los ingresos de la empresa.
+Aquí hay una forma basada en datos para representar tu proyecto que articula y amplifica su valor.
+
+## Contexto
+
+* Eres responsable de un equipo cross-team que sirve como plataforma para otros en la empresa.
+* El proyecto cross-team no genera ningún valor directo para los ingresos de la empresa.
+
+## Problema
+
+Los proyectos cross-team pueden tener potencialmente un gran impacto en la empresa, pero son difíciles de representar de manera basada en datos.
+Como resultado, es fácil y común perseguir proyectos que no proporcionan valor real o subfinanciar lo que de otro modo produciría gran valor.
+
+## Resistencias
+
+* Los proyectos necesitan mostrar valor (objetivo o subjetivo) al liderazgo de la empresa para ser financiados.
+* El valor del proyecto cross-team está disperso a través de múltiples unidades de negocio finales.
+* Debido a esta dispersión, el valor del proyecto cross-team es difícil de medir directamente.
+
+## Solución
+
+Establece un patrón y modelo sobre cómo valorar proyectos cross-team.
+Estos modelos nos proporcionan las herramientas necesarias para enfocar y amplificar la colaboración de alto valor para la empresa.
+
+El núcleo de todo el valor del proyecto cross-team es la idea de que podemos hacer más juntos que separados.
+Asignar valor a un esfuerzo cross-team es un ejercicio de cuantificar _cuánto más_ se está logrando juntos.
+El delta exacto en productividad variará según el dominio y el proyecto.
+Hay un proceso común, mediante el cual puedes crear un modelo para calcularlo.
+
+### Explicación
+
+Reúne un pequeño equipo de expertos en tu dominio.
+Usando ese equipo de expertos, estima 4 cosas sobre cada consumidor de la salida de tu proyecto:
+
+* ¿Cuánto tiempo les lleva consumir el output de tu proyecto?
+* ¿Cuánto tiempo les llevaría de otra manera crear por sí mismos el valor de la salida de tu proyecto?
+* ¿Qué porcentaje de la salida de tu proyecto es realmente útil para ellos?
+* ¿Cuánto tiempo de manera continua (idealmente por uso) gastarían de otra manera manteniendo su solución propia?
+
+Al hacer estas estimaciones, es imposible saber con alta precisión _exactamente_ cuánto tiempo toman las actividades. Ese no es tu objetivo.
+En lugar de exactitud, debes esforzarte por _**establecer un límite de peor caso**_ en estas estimaciones.
+La idea es que el grupo de expertos pueda decirse entre sí, "No sabemos exactamente cuánto tiempo tomaría, pero todos podemos estar de acuerdo en que es _al menos_ esto."
+Específicamente, debes estimar un tiempo razonable _máximo_ para consumir la salida de tu proyecto y tiempos razonables _mínimos_ para que los consumidores creen, usen y mantengan sus propias soluciones.
+
+Una nota sobre el costo de "crear tu propia solución" (home-roll). El costo de crear una solución propia NO es necesariamente (de hecho, es muy poco probable) el mismo que el costo de hacer una solución compartida.
+A menudo, para la misma funcionalidad, la modularidad y calidad involucradas en la construcción de una solución compartida entre equipos hace que sea una inversión notablemente mayor que una implementación rápida y codificada utilizada solo una vez.
+
+### Fórmula
+
+Una vez que tengas tus límites de peor caso, puedes valorar la salida de tu proyecto cross-team durante un período de tiempo dado mediante la fórmula simple:
+
+```
+[Tiempo Ahorrado] - [Tiempo Invertido]
+
+([Cantidad de Nuevas Incorporaciones] * [Costo de Crear Propia Solución] * [Porcentaje de Funcionalidad Útil] + [Cantidad de Usos] * [Costo de Mantenimiento por Uso]) - ([Cantidad de Nuevas Incorporaciones] * [Costo de Incorporación])
+
+[Cantidad de Nuevas Incorporaciones] * ([Costo de Crear Propia Solución] * [Porcentaje de Funcionalidad Útil] - [Costo de Incorporación]) + [Cantidad de Usos] * [Costo de Mantenimiento por Uso]
+```
+
+### Comentario
+
+A pesar de las apariencias de rigor, este proceso no produce una forma exacta de medir la salida del proyecto cross-team.
+En la práctica, sin embargo, proporciona un marco mediante el cual puedes tomar una decisión fundamentada sobre cómo financiar este trabajo.
+Después de tener datos buenos y razonables según la explicación anterior, debes financiar horas de desarrollo dedicadas a ejecutar el proyecto hasta _**al menos**_ uno de los siguientes tres niveles:
+
+1. Las horas brutas ahorradas por la fórmula anterior. Dado que todos estamos seguros de que la fórmula producirá un número que está por debajo del verdadero número de horas ahorradas, puedes tener la confianza de que financiar el proyecto hasta ese punto es una victoria segura para ti.
+1. La cantidad de tiempo que lleva apoyar las contribuciones internas a los proyectos cross-team. Dado que el contribuyente probablemente habría hecho el trabajo de todos modos de manera única, vale la pena financiar el tiempo que lleva facilitar que su trabajo se incluya en una ubicación compartida.
+1. Lo que te parezca bien. Un efecto secundario intencional de tener una fórmula de valoración es que naturalmente fuerza la medición de los puntos clave de uso que proporcionan valor a los consumidores.
+
+Esas mediciones pueden ser entendidas y consumidas en su forma bruta para proporcionarte una idea intuitiva de cuán valioso es el proyecto.
+
+Algunos pueden estar preocupados por la falta de precisión en este enfoque de valoración. Está bien que este proceso no proporcione una medición exacta. Solo necesita ser lo suficientemente preciso para cumplir 2 propósitos:
+
+1. Proporcionar un medio para representar el valor de lo que está sucediendo a aquellos que están organizando y financiando esfuerzos cross-team.
+2. Ayudar a los involucrados a saber qué áreas del esfuerzo cross-team son de mayor prioridad para perseguir según su valor.
+
+En la práctica, siempre que estas valoraciones estén dentro de un orden de magnitud de la realidad y entre sí, son lo suficientemente precisas para cumplir estos propósitos.
+Proporcionarán una mejora notable en los resultados sobre el terreno en comparación con las valoraciones ad hoc (y los efectos resultantes) descritos en la sección **Problem** al comienzo de este documento.
+
+## Contexto Resultante
+
+* Medios basados en datos para discutir el valor y financiamiento del proyecto cross-team con el liderazgo.
+* Métricas clave alrededor del proyecto cross-team instrumentadas en forma bruta.
+* Definir cómo el proyecto cross-team proporciona valor tiende a llevarlo a producir realmente mayor valor para la empresa.
+* Proyecto generalmente exitoso y "buzz" a su alrededor.
+
+## Instancias Conocidas
+
+* Nike
+
+## Estado
+
+* Estructurado
+* Probado en múltiples dominios.
+
+## Autores
+
+* Russ Rutledge
+
+## Reconocimientos
+
+* Jeremiah Wright por enseñarme a pensar en los proyectos cross-team como un negocio interno que opera en la moneda del tiempo del desarrollador.
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/dedicated-community-leader.md b/translation/es/patterns/dedicated-community-leader.md
new file mode 100644
index 000000000..bb7c26bf6
--- /dev/null
+++ b/translation/es/patterns/dedicated-community-leader.md
@@ -0,0 +1,94 @@
+## Title
+
+Líder de Comunidad Dedicado
+
+## Patlet
+
+Selecciona personas con habilidades tanto de comunicación como técnicas para liderar las comunidades y asegurar el éxito al iniciar una iniciativa InnerSource.
+
+## Problema
+
+¿Cómo asegurar que una nueva iniciativa InnerSource tenga el líder de comunidad adecuado para hacer crecer su impacto?
+
+Seleccionar a las personas equivocadas y/o no proporcionarles suficiente capacidad pone en riesgo el esfuerzo y, en última instancia, el fracaso de una nueva iniciativa InnerSource.
+
+## Historia
+
+Considera la siguiente historia. Una empresa quiere iniciar una iniciativa InnerSource para fomentar la colaboración a través de los límites organizacionales. Han decidido comenzar con una fase experimental de alcance limitado. La gerencia ha seleccionado un tema piloto adecuado para la primera comunidad InnerSource y espera contribuciones de muchas unidades de negocio en toda la organización. La empresa ha nominado a un nuevo empleado para liderar la comunidad durante el 50 % de su tiempo de trabajo, porque aún no estaba planificado al 100 %. Después de 6 meses, la comunidad ha recibido solo unas pocas contribuciones, la mayoría de una sola unidad de negocio. La empresa reemplaza al líder de la comunidad con alguien que tiene una historia más larga en la empresa, esta vez solo por el 30 % de su tiempo. Después de otros 6 meses, el número de contribuciones ha aumentado solo marginalmente. La empresa ya no está convencida de que InnerSource ayude a lograr su objetivo de aumentar la colaboración entre divisiones y abandona InnerSource.
+
+## Contexto
+
+- La empresa es grande y antigua. No tiene experiencia previa en Open Source u otros modelos de trabajo basados en la comunidad. La cultura de la empresa se caracteriza mejor como un estilo de gestión clásico de arriba hacia abajo: generalmente está en desacuerdo con la cultura comunitaria.
+- Aunque hay partidarios y un patrocinador en la alta dirección, la gerencia media de la empresa aún no está convencida de InnerSource.
+- La gerencia no estaba convencida de proporcionar más que un presupuesto limitado para financiar solo a un líder de comunidad a tiempo parcial.
+- El líder de la comunidad inicialmente seleccionado tiene poca o ninguna experiencia previa con el modelo de trabajo Open Source.
+- El líder de la comunidad de desarrolladores inicialmente seleccionado no tiene una red extensa dentro de la empresa.
+
+## Resistencias
+
+Si una empresa no invierte significativamente en la comunidad InnerSource inicial en términos de presupuesto y capacidad para InnerSource, la credibilidad de su compromiso con InnerSource podría percibirse como cuestionable. Un impulso común de una empresa con una cultura de gestión tradicional ante un proyecto o iniciativa que no rinde como se esperaba será reemplazar a su líder. Hacerlo sin involucrar a la comunidad y seguir principios meritocráticos socavará aún más el compromiso de la empresa con InnerSource al resaltar la fricción entre la cultura actual de la empresa y la cultura objetivo: una cultura comunitaria.
+
+La contribución de valor de los proyectos InnerSource no será obvia para muchos gerentes que están inmersos en métodos tradicionales de gestión de proyectos. Esos gerentes son menos propensos a asignar a una de sus mejores personas, que generalmente están en alta demanda por proyectos no InnerSource, a un proyecto InnerSource por un porcentaje significativo de su tiempo de trabajo.
+
+La comunicación ocupa un porcentaje significativo del trabajo diario de un líder de comunidad. Al mismo tiempo, él o ella probablemente también tendrá que liderar el desarrollo inicial. Ante la capacidad limitada, los líderes inexpertos tenderán a centrarse en el desarrollo y descuidar la comunicación. La barrera para que los posibles contribuyentes hagan su primera contribución y se comprometan con la comunidad será mucho mayor si el líder de la comunidad es difícil de alcanzar o es lento para responder a los comentarios y preguntas por falta de tiempo. Además, los líderes técnicamente inexpertos probablemente tendrán más dificultades para atraer y retener a contribuyentes altamente experimentados que un alto rendimiento con un alto grado de visibilidad dentro de una empresa.
+
+Si una comunidad no puede crecer lo suficientemente rápido y ganar suficiente velocidad, es probable que no puedan demostrar de manera convincente el potencial de InnerSource.
+
+Si la empresa selecciona a un gerente de proyecto o de línea con experiencia en métodos tradicionales de gestión para ser el líder de la comunidad, es probable que se centre en temas tradicionales de gestión como la asignación de recursos, la provisión de estructura y canales de informes en lugar de liderar con el ejemplo a través de principios meritocráticos. Esto socavará la credibilidad de la iniciativa InnerSource a los ojos de los desarrolladores.
+
+## Solución
+
+Selecciona un líder de comunidad que:
+
+- tenga experiencia en el modelo de trabajo Open Source o modelos de trabajo basados en la comunidad similares,
+- tenga las habilidades blandas necesarias para actuar como un líder natural,
+- lidere con el ejemplo y, por lo tanto, justifique su posición en la meritocracia de la comunidad,
+- sea un excelente networker,
+- inspire a los miembros de la comunidad,
+- pueda comunicarse eficazmente tanto con la alta dirección como con los desarrolladores y
+- sea capaz de manejar los aspectos gerenciales del trabajo comunitario.
+
+Empodera al líder de la comunidad para que dedique el 100 % de su tiempo al trabajo comunitario, incluida la comunicación y el desarrollo. Informa a la gerencia sobre la necesidad de ser sensible a las opiniones de la comunidad al generar un cambio en la gestión de la comunidad. Idealmente, empodera a la comunidad para que nomine a un líder de comunidad por sí misma.
+
+## Contexto Resultante
+
+Un líder de comunidad con las propiedades descritas anteriormente dará una cara y encarnará el compromiso de la empresa con InnerSource. Hará más probable que otros asociados en su red sigan su ejemplo y contribuyan a InnerSource. Con el tiempo, él o ella podrá construir un equipo central estable de desarrolladores y, por lo tanto, aumentar las posibilidades de éxito del proyecto InnerSource. Al convencer a una audiencia lo suficientemente grande dentro de su empresa del potencial de InnerSource, él o ella hará una contribución importante para cambiar la cultura de la empresa hacia una cultura comunitaria.
+
+Tener líderes de comunidad excelentes y dedicados es una condición previa para el éxito de InnerSource. Sin embargo, no es una solución mágica. Hay muchos desafíos de InnerSource que están más allá de lo que un líder de comunidad puede abordar, como desafíos presupuestarios, legales, fiscales u otros desafíos organizacionales.
+
+## Instancias Conocidas
+
+* _BIOS en Robert Bosch GmbH_. Ten en cuenta que InnerSource en Bosch, en su mayoría, estaba destinado a aumentar la innovación y en gran medida se ocupaba de productos internos. Este patrón actualmente no se usa en Bosch por falta de financiamiento.
+* _Airbus_. Un científico de datos quería mejorar la colaboración con sus compañeros en el grupo y encontró: i) muchos desarrolladores (más allá de la ciencia de datos) también querían eso y estaban felices de que alguien se ocupara del problema, y ii) apoyo del gerente de línea y la gerencia media para eventualmente actuar como el líder de comunidad _de facto_, además de su línea de trabajo regular.
+
+## Alias
+
+Gerente de Comunidad Dedicado
+
+## Estado
+
+* Estructurado
+
+## Autores
+
+- Georg Grütter (Robert Bosch GmbH)
+- Diogo Fregonese (Robert Bosch GmbH)
+
+## Agradecimientos
+
+- Tim Yao
+- Padma Sudarsan
+- Nigel Green
+- Nick Yeates
+- Erin Bank
+- Daniel Izquierdo
+
+## Registro de Cambios
+
+- **2016-11-06** - 1ª revisión
+- **2017-04-06** - 2ª revisión
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/document-your-guiding-principles.md b/translation/es/patterns/document-your-guiding-principles.md
new file mode 100644
index 000000000..f1427c00d
--- /dev/null
+++ b/translation/es/patterns/document-your-guiding-principles.md
@@ -0,0 +1,219 @@
+## Title
+
+Documenta tus Principios Rectores
+
+## Patlet
+
+La explicación habitual de InnerSource como "aplicación de mejores prácticas de open source dentro de una organización" no funciona bien con personas que carecen de experiencia en open source.
+Como solución, los principios más importantes de InnerSource se documentan y publican ampliamente.
+
+## Problema
+
+La organización está intentando implementar InnerSource a gran escala.
+La iniciativa comenzó entre entusiastas del open source.
+El objetivo ahora es conseguir la aceptación de personas que carecen de experiencia en open source.
+Para esa audiencia, el eslogan típico de "aplicar las mejores prácticas de open source" ya no es suficiente para transmitir el mensaje de qué es InnerSource, qué problemas resuelve y qué herramientas utiliza para resolver estos problemas.
+Como resultado, la adopción de InnerSource en la organización se ralentiza.
+Los equipos desarrollan ideas divergentes sobre cuáles son los objetivos de InnerSource y cómo implementarlo mejor, lo que genera confusión cuando los contribuidores comienzan a cruzar los límites entre equipos.
+
+## Historia
+
+Los primeros experimentos en una organización han demostrado que las mejores prácticas de colaboración en open source pueden ser beneficiosas.
+El siguiente paso ahora es mover la iniciativa a equipos e individuos que carecen de un profundo conocimiento en open source.
+
+El objetivo ahora es comunicar claramente los objetivos de la iniciativa InnerSource así como un camino definido para lograr los objetivos.
+
+## Contexto
+
+* InnerSource como término está circulando entre los empleados.
+* La iniciativa comenzó entre entusiastas del open source.
+
+## Resistencias
+
+* Los equipos tienen problemas para comunicar exactamente cuáles son los aspectos importantes de InnerSource.
+* Las personas que carecen de experiencia en open source no entienden lo que significa llevar las mejores prácticas de open source a la organización.
+* A diario, los equipos que intentan seguir las mejores prácticas de InnerSource tienen dificultades para decidir si lo que están haciendo está en línea con los valores generales de InnerSource.
+
+## Solución
+
+Aquellos que impulsan la iniciativa InnerSource en la organización deben ayudar a los equipos e individuos que carecen de un profundo conocimiento en open source y, por lo tanto, tienen una comprensión menos intuitiva de InnerSource.
+
+Se debe proporcionar claridad a los equipos e individuos documentando estas dos áreas:
+
+1. **Propósito** - ¿Por qué la organización quiere adoptar InnerSource?
+2. **Principios** - ¿Qué principios de InnerSource ayudarán a abordar estos desafíos?
+
+Las siguientes secciones proporcionan más detalles sobre ambos, destinados como posibles puntos de partida para documentarlos en su organización.
+
+### ¿Por qué la organización quiere adoptar InnerSource?
+
+En el pasado, InnerSource ha demostrado ser exitoso para resolver varios problemas comúnmente encontrados en las organizaciones.
+
+Sin embargo, ¿qué desafíos organizacionales espera su organización mejorar utilizando InnerSource?
+
+En lugar de optar por generalizaciones, trate de identificar exactamente las soluciones que coinciden con los desafíos de su organización, preferiblemente con aquellos afectados por el cambio que desea ver.
+
+Algunos desafíos que otros han abordado siguiendo las mejores prácticas de InnerSource:
+
+* Reducir los silos de desarrollo causados por una cultura de propiedad excesiva.
+* Aumentar la velocidad de innovación al reducir el tiempo dedicado a resolver problemas similares fomentando la reutilización saludable del código.
+* Aumentar la velocidad de desarrollo mediante una mejor colaboración entre equipos.
+* Resolver dependencias de proyectos/equipos más allá de "esperar" y "crear soluciones alternativas", reduciendo así los cuellos de botella en la ingeniería.
+* Aumentar la calidad.
+* Aumentar la felicidad de los empleados.
+* Aumentar el éxito de las nuevas contrataciones.
+* Construir documentación accionable.
+
+### ¿Qué principios de InnerSource ayudarán a abordar estos desafíos?
+
+Una vez que los equipos entienden qué problemas les ayudará a abordar InnerSource, el siguiente paso es explicar qué principios ayudan a abordar estos desafíos.
+
+Basado en principios básicos de desarrollo de open source, las siguientes pautas han demostrado ser exitosas:
+
+(1) El código debe estar alojado de manera transparente dentro de la organización
+
+El código fuente, la documentación y los datos relevantes para el desarrollo del proyecto deben estar disponibles y ser fáciles de encontrar para cualquier persona en la organización.
+
+(2) Contribuciones sobre solicitudes de características
+
+Todos los interesados en un proyecto actúan como posibles contribuidores y son tratados y apoyados como tales.
+Las contribuciones siguen siendo sugerencias en lugar de requisitos.
+La coordinación antes de una contribución ayuda a evitar esfuerzos desperdiciados.
+Los proyectos proporcionan pautas de contribución para evitar fricciones.
+
+(3) Los errores son oportunidades para aprender
+
+Con el trabajo visible en toda la organización, cualquier error es visible para todos.
+Como resultado, se debe establecer una cultura en la que los errores sean oportunidades para aprender en lugar de fracasos que deben evitarse a toda costa.
+
+(4) Comunicación escrita sobre verbal
+
+Para proyectos que abarcan múltiples equipos, potencialmente con horarios de reuniones divergentes, debe ser posible colaborar de manera asincrónica.
+El objetivo de los proyectos InnerSource es reclutar nuevos contribuidores.
+Para eso, los posibles futuros contribuidores deben poder seguir el progreso del proyecto de manera autoservicio con una barrera de entrada muy baja.
+Si la comunicación relevante para el proyecto ocurre a través de comunicación sincrónica, los argumentos discutidos deben hacerse transparentes en el canal escrito; las decisiones deben finalizarse solo allí.
+Como efecto secundario, esto lleva a una documentación base pasiva que es muy valiosa para cualquier recién llegado al proyecto.
+
+(5) Permitir que los consejos escritos se acumulen en un archivo persistente y buscable
+
+Toda la comunicación del proyecto, en particular las decisiones tomadas y las discusiones que llevaron a esas decisiones, deben archivarse.
+Debe ser posible referenciar la comunicación a través de URL estables.
+La comunicación anterior debe almacenarse de manera que pueda buscarse fácilmente.
+
+Dos advertencias, sin embargo:
+
+1. Esto no reemplaza la documentación estructurada. Sin embargo, puede servir como punto de partida para recopilar documentación estructurada.
+2. Hay excepciones a la regla de que todo debe estar escrito y accesible para toda la organización: las discusiones relacionadas con personas y las discusiones relacionadas con la seguridad son sensibles y no deben realizarse en público.
+
+(6) Recompensar el Compromiso de Confiabilidad
+
+Todas las contribuciones (por ejemplo, código fuente, documentación, informes de errores, aportes a discusiones, soporte a usuarios, marketing) son bienvenidas y se recompensan.
+Aquellos que muestran apoyo al proyecto son invitados como [Contribuidores de Confianza](../../../patterns/2-structured/trusted-committer.md).
+Todos los Contribuidores de Confianza de un proyecto se publican.
+
+## Contexto Resultante
+
+* Los miembros de la organización entienden qué desafíos pueden abordar aplicando las mejores prácticas de InnerSource.
+* Los miembros de la organización que carecen de experiencia previa en open source entienden los valores y principios básicos de los proyectos InnerSource.
+* Los miembros de la organización que carecen de experiencia previa en open source pueden verificar sus actividades diarias contra un conjunto de valores comunes establecidos.
+* Las prácticas de desarrollo de la organización se vuelven más similares a los proyectos de open source, lo que facilita la participación de los miembros de la organización en proyectos de open source.
+
+## Instancias Conocidas
+
+* Europace AG
+* GitHub
+* Robert Bosch GmbH
+
+### Europace AG
+
+Los principios de InnerSource enumerados en la sección de Solución anterior se basan principalmente en la experiencia de Europace.
+Ver [detalles](https://tech.europace.de/post/europace-inner-source-prinzipien/) (en alemán).
+
+### GitHub
+
+#### Propósito
+
+A menudo en GitHub trabajamos en un modelo donde los equipos contribuyen con características a áreas fuera de su área de responsabilidad. Ejemplos comunes incluyen ingeniería de ventas que contribuye con características para desbloquear una venta, Proyectos Especiales que contribuyen con características urgentemente necesarias y de alto impacto en todo el producto, y un equipo que trabaja en múltiples áreas para entregar una característica.
+
+#### Principios
+
+En general, los principios descritos en este documento son para evitar aumentar la deuda técnica y la carga de soporte para el equipo responsable. A menudo se presta ayuda a un equipo porque están atrasados debido a los costos de soporte y mantenimiento en su área de responsabilidad y no tienen capacidad para contribuir a la característica. Cualquier nueva característica realizada por otro equipo que aumente esa carga de soporte o deuda técnica significa aún menos tiempo para que el equipo responsable trabaje en nuevas características, por lo que queremos asegurarnos de que se hagan bien.
+
+Al mismo tiempo, nos esforzamos por ser una empresa donde los ingenieros trabajen libremente a través de los límites, y las prioridades comerciales a menudo requieren que contribuyamos a áreas fuera de nuestras áreas principales de propiedad.
+
+Un buen resumen de los principios es dejar el área en tan buen estado o mejor que como la encontraste.
+
+Con eso en mente, aquí están los principios en los que estamos de acuerdo:
+
+- Evitar productos mínimos viables (MVP) que acumulen deuda técnica. Está bien lanzar un MVP para obtener comentarios de los clientes, pero el equipo contribuyente debe comprometerse a terminar el conjunto de características. Ejemplos incluyen:
+ - Compromiso de ir más allá del MVP a una solución que satisfaga a la mayoría de los clientes.
+ - Soporte completo para la administración de nuevas características (por ejemplo, soporte en la interfaz de usuario de configuración en lugar de solo hacer una línea de comando).
+ - Características de superficie tanto en la interfaz de usuario como en la API en lugar de solo entregar una API (o viceversa)
+ - Asegurarse de que las características funcionen en entornos de nube y servidor local.
+- Soporte para el trabajo de características hasta y más allá de su implementación en producción
+ - Coordinar el despliegue incremental
+ - Manejar tickets de soporte
+ - Planificar tiempo para abordar los comentarios de los clientes (características y errores)
+- Construir características de la manera correcta (no acumular deuda técnica)
+ - Acordar los requisitos y la solución con los equipos de Producto e Ingeniería
+ - Arquitectura y diseño adecuados
+ - Asegurarse de que los datos se almacenen correctamente para evitar migraciones de datos posteriores.
+ - Telemetría adecuada en su lugar
+ - Cobertura de pruebas adecuada en su lugar
+ - Soporte en entornos de producción en la nube y locales (incluida la configuración, configuración, copia de seguridad / restauración, migraciones, etc.)
+ - Errores corregidos
+ - Documentación actualizada
+
+#### Compromiso
+
+Usamos un modelo de compromiso porque nos gusta establecer qué pasos concretos puede tomar un equipo al contribuir con características a áreas fuera de su área de responsabilidad.
+
+Un modelo de compromiso típico en GitHub se ve así:
+
+- Obtener la aprobación del conjunto de características y el plan de implementación del propietario del producto.
+- Obtener la aprobación del diseño de ingeniería, incluida la dirección de los requisitos no funcionales (telemetría, cobertura de pruebas, pruebas y soporte en múltiples entornos) del propietario de ingeniería (típicamente gerente de ingeniería y director).
+- Realizar revisiones de código a lo largo del camino, junto con la revisión de cualquier requisito nuevo o cambiado.
+
+### Robert Bosch GmbH
+
+#### Propósito
+
+Fomentar la colaboración, el aprendizaje y la innovación es el enfoque principal de la iniciativa InnerSource de Bosch (BIOS).
+
+#### Principios
+
+Para ello, Bosch aplicó los siguientes principios:
+
+- **Apertura**: Reducimos las barreras de entrada a las comunidades BIOS tanto como podemos.
+- **Transparencia**: Somos radicalmente transparentes y compartimos nuestros productos de trabajo, nuestra comunicación y nuestra toma de decisiones con todos los asociados en la empresa.
+- **Voluntariedad**: La decisión de unirse y contribuir a una comunidad BIOS se deja a cada asociado. Los asociados deben trabajar dentro de BIOS porque están intrínsecamente motivados, no porque su gerente se lo haya dicho.
+- **Autodeterminación**: Las comunidades BIOS son libres de elegir en qué trabajar, cuándo trabajar y qué herramientas y procesos utilizar para trabajar.
+- **Meritocracia**: El poder se otorga a los miembros del proyecto BIOS en función de sus méritos, es decir, en función de la calidad y cantidad de sus contribuciones.
+
+
+
+Los principios de _Apertura_, _Transparencia_ y _Voluntariedad_ ayudaron a crecer comunidades diversas de asociados intrínsecamente motivados.
+La _Meritocracia_ ha demostrado ser una motivación efectiva para hacer grandes contribuciones.
+La _Autodeterminación_ permitió a las comunidades usar su tiempo limitado para contribuciones de la manera más efectiva y eficiente.
+
+## Estado
+
+Estructurado
+
+## Autores
+
+* Isabel Drost-Fromm
+* Georg Grütter
+
+## Agradecimientos
+
+* Zack Koppert - por compartir el enfoque de GitHub en las Instancias Conocidas
+
+## Alias
+
+Principios InnerSource Explícitos
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/extensions-for-sustainable-growth.md b/translation/es/patterns/extensions-for-sustainable-growth.md
new file mode 100644
index 000000000..9faf8f3e2
--- /dev/null
+++ b/translation/es/patterns/extensions-for-sustainable-growth.md
@@ -0,0 +1,117 @@
+## Title
+
+Extensiones para un Crecimiento Sostenible
+
+## Patlet
+
+Un proyecto InnerSource está recibiendo demasiadas contribuciones, haciendo difícil su mantenimiento. Al ofrecer un mecanismo de extensiones fuera del proyecto principal, los mantenedores permiten escalar las capacidades del proyecto con un costo y mantenimiento mínimos.
+
+## Problema
+
+A medida que aumenta rápidamente el número de contribuciones a un repositorio InnerSource maduro, se añade más carga al proceso de revisión de código y mantenimiento. Esto resulta en una gran acumulación de revisiones pendientes o el rechazo prematuro de nuevas contribuciones de funcionalidades.
+
+¿Cómo puede el equipo anfitrión permitir una publicación más rápida de nuevas funcionalidades, fomentando la innovación y experimentación, mientras mantiene el repositorio en buen estado?
+
+## Historia
+
+Hay un proyecto estratégico que tiene como objetivo recopilar las mejores innovaciones dentro de un espacio de dominio en una pila común, permitiendo la reutilización de una infraestructura común y proporcionando una experiencia de usuario estándar. A través de InnerSource, varios equipos de la organización que trabajan dentro del espacio de dominio tienen la oportunidad de colaborar y contribuir con sus innovaciones a el código fuente común.
+
+Sin embargo, un gran número de contribuciones en paralelo de varios desarrolladores está dificultando el mantenimiento de el código fuente. Esto está añadiendo una gran carga a los mantenedores del proyecto que asumen la responsabilidad de los estándares de calidad del código y habilitan a la comunidad a través de varias formas de comunicación.
+
+Los mantenedores del proyecto están en riesgo de agotamiento debido a:
+
+- Acumulación interminable de pull requests de los contribuyentes que necesitan ser revisadas.
+- Insatisfacción laboral: La mayoría del tiempo de los mantenedores se dedica al soporte de la comunidad, dejando poco espacio para la innovación.
+- Percepción de falta de logro: No todas las funcionalidades contribuidas tienen una demanda de usuario adecuada y resultan en una adopción consecuente.
+- Liberaciones que consumen mucho tiempo: Más funcionalidades en el código fuente resultan en pruebas de larga duración.
+- Aumento de las actividades de mantenimiento: Se reportan más errores a medida que se añaden nuevas capacidades.
+
+Se dedica mucho tiempo a madurar cada nueva contribución de funcionalidad, antes de que los usuarios potenciales tengan la oportunidad de explorar la funcionalidad para sus casos de uso. Si resulta que la nueva funcionalidad no cumple con el caso de uso, entonces todo ese tiempo dedicado a lograr los estándares de calidad del código deseados es un desperdicio.
+
+## Contexto
+
+- Una código fuente InnerSource estratégica está escalando rápidamente con nuevas contribuciones de funcionalidades de varios empleados.
+- La proporción de revisores a contribuciones resulta en una creciente acumulación de pull requests. Esto está ralentizando la publicación de nuevas funcionalidades a la comunidad.
+- La calidad de el código fuente está degradándose y la experiencia del usuario se ve afectada negativamente.
+- Los mantenedores de el código fuente están sobrecargados y no pueden mantenerse al día con la afluencia de contribuciones y el aumento del soporte comunitario.
+- Algunas de las funcionalidades contribuidas no están ganando adopción por parte de los usuarios, e incluso pueden volverse completamente inactivas. Sin embargo, aunque no se utilicen, estas funcionalidades siguen añadiendo a la carga de mantenimiento.
+- La organización está invirtiendo fuertemente en el endurecimiento de las nuevas contribuciones de funcionalidades para mantener los estándares de calidad antes de que las ideas sean exploradas por la comunidad.
+- El patrón se aplica en cualquiera de los siguientes escenarios:
+ - Los mantenedores se encuentran rechazando nuevas ideas de funcionalidades para reducir el alcance del proyecto. Esto está obstaculizando la innovación en la comunidad y restringiendo la expansión.
+ - Para reducir la acumulación, se están liberando nuevas funcionalidades sin una documentación, endurecimiento las pruebas y creando una mala experiencia de usuario. Esto también está inflando el tamaño de el código fuente, añadiendo un gran gráfico de dependencias y dificultando su mantenimiento.
+
+## Resistencias
+
+- Los mantenedores y propietarios del producto quieren permitir la expansión, fomentar la innovación y la experimentación sin ser demasiado restrictivos con las contribuciones, mientras mantienen buenos estándares de código y calidad para la experiencia del usuario.
+- Se dedica una gran cantidad de tiempo a endurecer y probar exhaustivamente las funcionalidades para cumplir con los estándares del producto, pero los propietarios del producto pueden querer permitir una publicación más rápida de nuevas innovaciones para que los productos adoptantes las exploren antes de invertir tiempo en madurar las capacidades.
+- Los mantenedores quieren fomentar que la comunidad comparta innovaciones que combinen las capacidades del producto con otros casos de uso sin añadir más dependencias al repositorio principal.
+
+## Soluciones
+
+Permitir [extensiones/plugins](https://en.wikipedia.org/wiki/Extensibility) a bases de código InnerSource de alta escala puede aliviar la carga de mantenimiento de los mantenedores del repositorio y permitir una publicación más rápida de nuevas funcionalidades para que los productos adoptantes las exploren. Esto desplaza el mantenimiento de las capacidades a los propietarios de las extensiones y permite que el repositorio principal soporte capacidades que han sido adoptadas más ampliamente y son más estratégicas.
+
+Las extensiones proporcionan un filtro para nuevas capacidades que eventualmente pueden moverse al núcleo del proyecto. Las extensiones también actúan como un entorno de incubación y endurecimiento comunitario, permitiendo que gran parte de ese endurecimiento ocurra de manera orgánica en lugar de en un costoso proceso de revisión.
+
+Para que el modelo de extensiones tenga éxito, hay algunas consideraciones arquitectónicas a tener en cuenta:
+
+1. **Fácil de crear:** Para obtener la participación de la comunidad, las extensiones deben ser fáciles de crear.
+ - Crear una plantilla de repositorio que las extensiones deben usar como punto de partida. Esto permite que las extensiones añadan sus nuevas funcionalidades en nuevos repositorios, separados del proyecto principal. La plantilla debe proporcionar la misma estructura modular que el repositorio principal e incluir el marco para empaquetar y publicar extensiones.
+ - Asegurarse de que a medida que el repositorio principal cambie, las plantillas se mantengan bien. Los mantenedores del repositorio principal son responsables de actualizar las plantillas para asegurarse de que sean compatibles con el proyecto principal. Seguir buenas convenciones de versionado, por ejemplo, [semver](https://semver.org/), facilita esto.
+ - Se recomienda además que los mantenedores del repositorio principal proporcionen orientación sobre cómo actualizar las extensiones basadas en versiones anteriores de la plantilla a medida que se liberen nuevas versiones.
+ - Añadir ejemplos de extensiones desarrolladas a partir de la plantilla, que los desarrolladores del proyecto puedan referenciar para entender cómo escribir una extensión bien estructurada.
+ - Relajar los requisitos para que los contribuyentes creen extensiones omitiendo revisiones para permitir una publicación más rápida o experimentación.
+2. **Acoplamiento suelto:** Tener componentes modulares que contengan funcionalidad puede permitir un acoplamiento suelto, donde los cambios en las extensiones no impacten la calidad de el código fuente principal u otras extensiones.
+3. **Gestión de dependencias:** Cada extensión debe tener cuidado de fijar el rango de versiones del repositorio principal contra el que se construye (de la misma manera que lo haría con cualquier otra dependencia) y debe tener cuidado en su uso de otras dependencias que oculten dependencias del repositorio principal, de modo que las versiones que elija para esas dependencias sean compatibles con las versiones seleccionadas por el repositorio principal. Cualquier conflicto con el repositorio principal se detectará en el marco de pruebas de la extensión.
+4. **Estrategia de pruebas:** ¿Cómo probar las extensiones tanto individualmente como en combinación?
+ - **Pruebas de extensión individualmente:** La plantilla de extensiones proporcionará un marco de pruebas que los desarrolladores de extensiones deben usar para probar la capacidad añadida. Esto puede incluir un marco para pruebas unitarias, pruebas de rendimiento en tiempo de ejecución y pruebas de calidad.
+ - **Pruebas de extensión en combinación con el repositorio principal:** Los desarrolladores de extensiones tienen un método bien estructurado para probar su extensión contra versiones específicas del repositorio principal sin la participación de los mantenedores del repositorio principal.
+ - **Pruebas de extensión en combinación con otras extensiones:** Proporcionar un marco de pruebas para este escenario podría resultar excesivo, especialmente si hay un gran número de extensiones que aún están siendo exploradas por los usuarios y es poco probable que se utilicen todas en combinación. Si un usuario encuentra conflictos al usar extensiones en combinación (lo cual debería ser poco probable con un acoplamiento suficientemente suelto), el usuario puede plantear un problema a los respectivos propietarios de las extensiones, quienes lo resolverán. A medida que una extensión alcanza fases posteriores del ciclo de vida y se fusiona en el repositorio principal, se probará en combinación con el resto de la librería y cualquier conflicto de dependencias deberá resolverse en ese momento.
+5. **Descubribilidad y Usabilidad:**
+ - Hacer que las extensiones sean fácilmente descubribles con una página de publicación que muestre las extensiones que los usuarios han creado y desean compartir para el uso del producto.
+ - Permitir el registro de extensiones con el proyecto principal para que los usuarios aprovechen las extensiones junto con el proyecto original, manteniendo así la misma experiencia de usuario.
+6. **Ciclo de vida de las extensiones y mantenibilidad:** Establecer el ciclo de vida de las extensiones desde la creación hasta la portación a el código fuente principal, junto con directrices claras de propiedad.
+ - Los creadores de extensiones continúan manteniendo la extensión, proporcionando cualquier soporte y corrigiendo defectos. Cualquier extensión que quede sin mantenimiento será deslistada de la página de publicación.
+ - Crear criterios para cuando una extensión puede ser portada al repositorio principal, como la adopción de la extensión por productos internos y la demanda de la funcionalidad.
+ - El proceso de portación de la extensión al repositorio principal seguirá directrices de revisión de código más estrictas establecidas por los mantenedores de la librería.
+
+
+
+Seguir estos principios asegura que:
+
+- Los desarrolladores pueden añadir nuevas funcionalidades al ecosistema de un proyecto sin requerir que escriban grandes cantidades de código [boilerplate](https://en.wikipedia.org/wiki/Boilerplate_code).
+- Las extensiones son descubribles de manera repetible por todos los usuarios del proyecto principal; el hecho de que el código no viva en el repositorio principal aún no significa que no sea valioso.
+- La carga del mantenedor se reduce hasta que una extensión ha demostrado que llena un vacío importante en el proyecto principal.
+- El código común del proyecto principal (por ejemplo, clases base y funciones utilitarias) puede ser un punto de partida para el nuevo desarrollo que extiende el dominio del proyecto. Esto evita la necesidad de portar el trabajo innovador después de los hechos, reduciendo así la carga general de desarrollar nuevas funcionalidades para el proyecto.
+- Los desarrolladores tienen más probabilidades de contribuir y mantenerse involucrados en el mantenimiento y la construcción de comunidades para su código fuente, lo cual también es bueno para la salud del ecosistema general del proyecto.
+
+## Contexto Resultante
+
+- El proyecto puede escalar con la adición de nuevas funcionalidades, sin añadir carga de mantenimiento al repositorio principal del proyecto.
+- Publicación más rápida de nuevas funcionalidades para que la comunidad las explore, fomentando la innovación y la experimentación.
+- Reducción del costoso proceso de revisión de código y endurecimiento de funcionalidades hasta que la funcionalidad pueda demostrar su utilidad. Esto tiene beneficios de ahorro de costos para la organización.
+- Un problema posterior que puede introducirse: ¿qué pasa si una extensión no puede completar todo el ciclo de vida?
+ - Si una extensión no es adoptada durante un período de tiempo y no puede construir una comunidad a su alrededor para apoyar el mantenimiento, dependerá del propietario de la extensión continuar manteniéndola durante el tiempo que desee. Si una extensión queda sin mantenimiento, se despublicará.
+ - Si un desarrollador de extensiones no puede seguir manteniendo su proyecto, y otros desarrolladores de la comunidad quieren continuar apoyándolo, pueden mantener la extensión en adelante.
+
+## Instancias Conocidas
+
+* **IBM Corporation** ha adoptado esta solución para escalar [librerías de IA InnerSource](https://youtu.be/Lz-tIc2cyRM). Usando extensiones, los desarrolladores pueden extender las libreríass de IA con más algoritmos y compartir sus innovaciones con la comunidad interna de la empresa. Las librerías principales solo contienen algoritmos estratégicos que han sido adoptados y validados, manteniéndolos más fáciles de mantener a medida que escalamos las contribuciones.
+
+## Alias
+
+Extensiones para Gestionar Contribuciones a Escala
+
+## Estado
+
+Estructurado
+
+## Autor(es)
+
+- Sukriti Sharma, IBM
+- Alexander Brooks, IBM
+- Gabe Goodhart, IBM
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/gig-marketplace.md b/translation/es/patterns/gig-marketplace.md
new file mode 100644
index 000000000..ed084764e
--- /dev/null
+++ b/translation/es/patterns/gig-marketplace.md
@@ -0,0 +1,78 @@
+## Title
+
+Mercado de Gigs
+
+## Patlet
+
+Establece un mercado creando un sitio web interno donde se publiquen necesidades específicas de proyectos InnerSource como "Gigs" con requisitos explícitos de tiempo y habilidades. Esto permitirá a los gerentes comprender mejor el compromiso de tiempo de sus empleados y los beneficios profesionales, aumentando así la probabilidad de obtener aprobación para realizar contribuciones InnerSource.
+
+## Problema
+
+Ni los gerentes ni los empleados comprenden cómo podrían beneficiarse al involucrarse en un proyecto InnerSource.
+
+Es difícil para los empleados comunicar a sus gerentes el compromiso de tiempo que necesitarán dedicar a un proyecto InnerSource.
+
+Los gerentes no tienen una forma uniforme de dar seguimiento o recompensar la participación de sus empleados en proyectos InnerSource.
+
+## Historia
+
+Has creado exitosamente un programa InnerSource en tu empresa y cuentas con el respaldo de la alta dirección, mandos medios y desarrolladores. Sin embargo, después de casi un año, ha habido pocas contribuciones reales a proyectos InnerSource fuera de los equipos que los crearon originalmente. Después de entrevistar a todas las partes involucradas, el principal punto de fricción parece ser que es difícil conocer el compromiso de tiempo que se pedirá a los desarrolladores si deciden involucrarse en un proyecto InnerSource y cómo se beneficiarán personalmente. También hay una falta de una forma uniforme de anunciar qué oportunidades para contribuyentes existen, qué se les pedirá que hagan y aproximadamente cuánto tiempo podría tomar. Los gerentes son solidarios y quieren que sus empleados participen, pero hasta ahora han carecido de una forma de contabilizar o recompensar las actividades de sus empleados dentro de los proyectos InnerSource. ¿Qué se puede hacer para mejorar esta situación para todas las partes involucradas (propietarios de proyectos InnerSource, posibles contribuyentes y gerentes de desarrollo)?
+
+## Contexto
+
+Los empleados desearían poder conocer las actividades que se llevan a cabo en otras áreas de la empresa sin tener que dejar sus puestos actuales. Existen proyectos InnerSource que podrían proporcionar estas experiencias, pero hay dos factores principales que impiden que los empleados participen. Primero, la incapacidad de descubrir fácilmente qué oportunidades de contribución existen dentro de los proyectos InnerSource en curso y comunicarlas a sus gerentes. Segundo, la incapacidad de los gerentes para planificar y contabilizar los compromisos de tiempo de sus empleados en estas tareas de proyectos InnerSource. Como resultado, los propietarios de proyectos InnerSource encuentran difícil construir comunidades de tamaño suficiente para cumplir con sus objetivos declarados.
+
+## Resistencias
+
+* Los empleados no tienen una forma fácil de descubrir qué oportunidades InnerSource existen
+* Los empleados no entienden cómo contribuir podría beneficiarlos profesionalmente
+* Los gerentes no comprenden los requisitos de tiempo/esfuerzo asociados con las tareas relacionadas con proyectos InnerSource
+
+### Prerrequisitos
+
+* Los empleados han recibido tiempo de sus gerentes para involucrarse en proyectos InnerSource
+* Los gerentes requieren una forma de cuantificar, rastrear y registrar las contribuciones InnerSource para que puedan ser contabilizadas y recompensadas
+
+## Soluciones
+
+Crea un sitio interno basado en “Gigs” donde las personas puedan anunciar sus habilidades y áreas de interés y los propietarios de proyectos InnerSource puedan anunciar oportunidades de colaboración.
+
+Los empleados deberían poder crear un perfil dentro de la aplicación en el que puedan listar sus habilidades y áreas de interés. El sistema debería aprovechar esta información informando proactivamente a las personas (por correo electrónico u otro medio) cuando se publique un Gig que coincida con uno o más de esos criterios.
+
+Cada Gig publicado por un propietario de proyecto InnerSource debería incluir los requisitos estimados de habilidades y tiempo para que puedan ser fácilmente emparejados con un empleado disponible y comunicados claramente a su gerencia directa. La descripción también debería incluir una justificación de cómo beneficiará a la persona que asuma la tarea para hacerla lo más atractiva posible.
+
+Se podría crear un sistema basado en puntos para recompensar y rastrear la participación de un empleado en un Gig. Por ejemplo, 10 puntos otorgados al propietario del Gig por publicar un Gig una vez que se complete y 100 puntos para un desarrollador que complete un Gig. Los puntos acumulados al completar Gigs podrían usarse como un mecanismo de gamificación y como criterio de gestión del rendimiento para obtener información sobre las áreas de especialización que existen dentro de una organización.
+
+Aquellos que deseen aceptar un Gig primero deberían ser evaluados por el propietario del Gig para determinar que el empleado tiene las habilidades y el tiempo asignado por su gerente para completar el Gig.
+
+La transparencia de las contribuciones realizadas a través de Gigs puede ayudar a un contribuyente a construir (o perjudicar) su reputación, creando así una mayor probabilidad de que la calidad de la contribución sea alta. La finalización de Gigs también puede actuar como prueba de experiencia en un área particular.
+
+La naturaleza de los Gigs publicados en el mercado puede incluir tanto habilidades duras como blandas, como organizar un evento grupal, escribir un informe o solicitudes de mentoría, etc.
+
+La creación del Mercado de Gigs debería ser idealmente asumida por un equipo dentro de una organización con la responsabilidad de proporcionar infraestructura y capacidades a nivel de toda la empresa.
+
+## Contexto Resultante
+
+El Mercado de Gigs InnerSource ha aumentado enormemente el número de proyectos InnerSource, así como el número de empleados involucrados en ellos. La naturaleza autodirigida del Mercado de Gigs ha mejorado la satisfacción laboral de los empleados al permitirles un nivel de elección en el trabajo que realizan y con quién pueden asociarse en toda la empresa. Los empleados entienden exactamente a qué se están inscribiendo y qué pueden esperar de la experiencia. Los gerentes pueden estimar y rastrear mejor los compromisos de tiempo de sus empleados con respecto a los proyectos InnerSource, reconocer sus esfuerzos individuales y usar la finalización de Gigs como una forma de validar sus habilidades específicas. Los gerentes también pueden aprovechar cualquier tiempo de inactividad que sus empleados puedan estar experimentando permitiéndoles pivotar al trabajo disponible en el Mercado de Gigs. Los datos generados por las interacciones dentro del Mercado de Gigs también están ayudando a impulsar decisiones de contratación y capacitación en todos los departamentos.
+
+Cuando se usa en combinación con el patrón del Portal InnerSource, el Mercado de Gigs proporciona un nivel más fino de contexto y detalle además de los enlaces a los repositorios de código y la documentación del proyecto al que se relaciona el Gig.
+
+## Instancias Conocidas
+
+* Una gran organización de servicios financieros ha utilizado la creación de un sitio web del Mercado de Gigs InnerSource para fomentar su programa InnerSource.
+* SAP implementó el patrón del Mercado de Gigs: se agregó un nuevo programa InnerSource a la plataforma de trabajo interna donde se pueden publicar posiciones y ofertas similares.
+* El patrón del Mercado de Gigs ha demostrado funcionar extremadamente bien con el patrón asociado [Portal InnerSource](./innersource-portal.md) en este contexto. El Portal InnerSource aumenta la conciencia de los proyectos específicos en curso, mientras que el Mercado de Gigs anuncia tareas de cierto tipo disponibles para ser trabajadas dentro de esos proyectos.
+
+## Estado
+
+* Estructurado
+
+## Autor(es)
+
+* Stephen McCall
+* Shreyans Dugar
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/group-support.md b/translation/es/patterns/group-support.md
new file mode 100644
index 000000000..61417ca58
--- /dev/null
+++ b/translation/es/patterns/group-support.md
@@ -0,0 +1,91 @@
+## Title
+
+Grupo de Soporte
+
+## Patlet
+
+¿Qué sucede si un equipo o individuo deja de mantener un proyecto InnerSource?
+Mantén el proyecto activo formando un grupo de personas interesadas.
+
+## Problema
+
+* Un proyecto InnerSource popular queda huérfano.
+* No tiene un equipo claro que lo adopte.
+
+## Historia
+
+Una librería de widgets de UI es utilizada por más de 50 proyectos en toda la empresa.
+El financiamiento para el equipo propietario de la librería se agota y el equipo se disuelve.
+Al principio, nadie lo nota, pero después de un tiempo cuando alguien pregunta "¿quién es el propietario?" no hay respuesta.
+¿Qué sucederá después?
+¿Los nuevos equipos evitarán usarlo?
+¿El proyecto se estancará y persistirá hasta que sus usuarios eventualmente se vean forzados a migrar a otra solución?
+¡Qué lástima sería si esto le sucediera a un proyecto perfectamente bueno y útil!
+
+## Contexto
+
+* Proyecto InnerSource popular.
+* Consumido como una dependencia en tiempo de compilación (por ejemplo, módulo de código).
+* Nadie lo está manteniendo activamente.
+* La empresa no puede asignar un equipo para mantenerlo.
+
+## Resistencias
+
+* Nadie está asignado por su trabajo diario para trabajar en ello.
+* Todos están ocupados.
+* Alto costo para migrar fuera del proyecto.
+
+## Soluciones
+
+Llama a voluntarios interesados de cualquier parte de la empresa para formar un grupo de [Trusted Committer][]s para mantener el proyecto.
+Es posible que necesites contactar a individuos específicos basándote en el historial de commits o de uso.
+Es importante que haya suficientes personas para que la carga sobre cada uno sea razonablemente pequeña.
+
+Al formarse, este grupo debe identificar o crear [Documentación Base Estándar][] y [Herramientas de Comunicación][].
+
+El grupo debe hacer su mejor esfuerzo para gestionar estos aspectos del proyecto:
+
+* **Mantenimiento**. Si el proyecto está completamente roto para el caso de uso estándar, entonces arréglalo.
+Mantén el proyecto actualizado a medida que las dependencias y los frameworks que utiliza continúan evolucionando.
+* **Incorporación**. Si alguien tiene una pregunta sobre cómo usar el proyecto, asegúrate de que obtenga una respuesta razonable.
+* **Actualizaciones**. Si alguien quiere agregar una nueva funcionalidad al proyecto, dale el soporte de diseño y técnico necesario para que lo construya de manera que funcione para ellos y sea una buena adición al proyecto.
+Revisa las pull requests entrantes de manera oportuna.
+
+Dado que este grupo está compuesto por voluntarios, es importante comunicar que el soporte es solo "mejor esfuerzo".
+En consecuencia, este modelo de soporte no es adecuado para proyectos críticos en tiempo de ejecución, como APIs en vivo.
+Es más adecuado para proyectos que se consumen en tiempo de compilación, como librerías/paquetes/módulos.
+No se espera que el grupo implemente ninguna funcionalidad nueva para otros.
+
+## Contexto Resultante
+
+* Hay algún soporte frágil para el proyecto InnerSource.
+* A largo plazo, es probable que el grupo de soporte se disuelva nuevamente en algún momento. Si el proyecto continúa a largo plazo, utiliza este período de grupo de soporte estable para encontrar una forma de mantenerlo a largo plazo (por ejemplo, [Equipo Central][]).
+
+## Razonamiento
+
+La gente generalmente quiere ayudar.
+Si hay un alcance personal para que alguien se una como [Trusted Committer][], generalmente hay varias personas que dirán "sí".
+Sentirse parte de un grupo y recibir algo de estructura y responsabilidad generalmente motiva a las personas a hacer su mejor esfuerzo, lo cual muchas veces resulta ser suficiente.
+
+## Instancias Conocidas
+
+* WellSky
+
+## Estado
+
+Estructurado
+
+## Autor
+
+[Russell R. Rutledge][]
+
+[Russell R. Rutledge]: https://github.com/rrrutledge
+[Documentación Base Estándar]: ../2-structured/base-documentation.md
+[Herramientas de Comunicación]: ../2-structured/communication-tooling.md
+[Trusted Committer]: ../2-structured/trusted-committer.md
+[Equipo Central]: ../2-structured/core-team.md
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/innersource-license.md b/translation/es/patterns/innersource-license.md
new file mode 100644
index 000000000..e59d13bbc
--- /dev/null
+++ b/translation/es/patterns/innersource-license.md
@@ -0,0 +1,116 @@
+## Title
+
+Licencia InnerSource
+
+## Patlet
+
+Dos entidades legales que pertenecen a la misma organización quieren compartir código fuente entre sí pero están preocupadas por las implicaciones en términos de responsabilidades legales o contabilidad entre empresas.
+Una **Licencia InnerSource** proporciona un marco legal reutilizable para compartir código fuente dentro de la organización. Esto abre nuevas opciones de colaboración y hace explícitos los derechos y obligaciones de las entidades legales involucradas.
+
+## Problema
+
+Cuando dos o más entidades legales dentro de una organización quieren compartir código entre sí, necesitan un acuerdo sobre los términos y, a menudo, un contrato legal. Crear tales acuerdos en base a cada proyecto requiere esfuerzo y crea una barrera para compartir. Es decir, un equipo dentro de una entidad legal podría decidir no compartir su código fuente con otra entidad legal en la organización porque parece complicado.
+
+Las barreras para compartir pueden llevar a silos y duplicación de esfuerzos en la reconstrucción de soluciones similares en múltiples partes de la organización.
+
+En el momento de compartir el código fuente, no se puede predecir de manera confiable cuál será el valor de compartir. Si la actividad de compartir requiere un esfuerzo significativo (es decir, negociar términos para el uso), las entidades legales son menos propensas a hacerlo, ya que están preocupadas por el retorno de la inversión.
+
+## Contexto
+
+- Una organización grande con muchas entidades legales (subsidiarias) que quieren compartir código. Cuando la organización se hace más grande, el valor de este patrón aumenta.
+- Según la definición, las entidades legales tienen sus propios derechos y obligaciones legales.
+- Varias de estas entidades legales están desarrollando software y están utilizando servicios de otras entidades legales. Tienen una motivación para contribuir al código fuente de los demás.
+- Una complejidad suficiente de la organización y su estructura organizativa.
+
+## Resistencias
+
+- **Nivel de esfuerzo** requerido para redactar acuerdos formales, especialmente si necesitan tener en cuenta perspectivas técnicas, legales y comerciales.
+- Una organización grande (compuesta por muchas entidades legales) tiene muchas **regulaciones internas**. Cualquier nuevo acuerdo que se haga debe cumplir con estas regulaciones, por ejemplo, seguridad, privacidad, procesos de adquisición, etc. El volumen de regulaciones puede dificultar la evaluación de si compartir software entre dos entidades legales es conforme con estas regulaciones, especialmente cuando no hay un procedimiento estándar.
+- Si alguna de las entidades legales en la organización tiene un **modelo de negocio** que depende del código propietario y la contabilidad de las tarifas de licencia dentro de la organización.
+- **Cultura de la empresa** que no está acostumbrada a la colaboración y el intercambio de código InnerSource. Esto resulta en incertidumbre sobre los derechos y obligaciones al usar código compartido.
+- La libertad sobre el uso del software lleva a la competencia y a la dispersión de la propiedad.
+- Existen contratos legales que cubren el intercambio de código fuente. Estos contratos no están estandarizados, por lo que crean un esfuerzo adicional en la negociación y comprensión para cada proyecto. Los contratos existentes también pueden no permitir compartir código fuente de manera lo suficientemente abierta como para apoyar un verdadero enfoque InnerSource.
+- Alternativamente, no hay contratos legales en vigor, pero el código fuente se comparte de manera informal. Eso podría crear incertidumbre en casos donde se necesita claridad sobre la propiedad y los derechos y obligaciones.
+- Elegir una licencia restrictiva y/o copyleft puede constituir una barrera para la adopción de InnerSource. Específicamente, limitar la publicación a la organización podría requerir un procedimiento de relicenciamiento costoso antes de la transición a Open Source.
+
+## Soluciones
+
+Crear una **Licencia InnerSource** personalizada a las necesidades de la organización en cuestión (y sus entidades legales). Esta licencia debe ser lo suficientemente genérica como para aplicarse a las relaciones interempresariales más importantes.
+
+Es importante redactar la Licencia InnerSource de manera que realmente permita una colaboración al estilo de código abierto a través de las fronteras de las entidades legales involucradas. Por lo tanto, las 4 libertades del software libre deben integrarse en la licencia.
+
+La Licencia se redacta como un documento legal formal y puede usarse como parte de los contratos entre las entidades legales para regular los acuerdos de intercambio de código.
+
+## Contexto Resultante
+
+Con la Licencia InnerSource, tenemos una herramienta para compartir código entre entidades legales dentro de nuestra organización.
+
+La licencia simplifica las conversaciones dentro de nuestra organización sobre el intercambio de código fuente y motiva a las primeras entidades legales a hacerlo.
+
+**Nota:** El experimento descrito en **Instancias Conocidas** está en una fase temprana. Por lo tanto, aún no se ha formado un **Contexto Resultante** firme. En un par de meses, los efectos de la Licencia InnerSource en este espacio de problemas serán más claros y esta sección se podrá actualizar.
+
+## Instancias Conocidas
+
+- **DB Systel**
+- **Robert Bosch GmbH**
+- **Airbus**
+- **GovTech (Gobierno de Singapur)**
+
+### DB Systel
+
+DB Systel creó su propia Licencia InnerSource, ver [DB Inner Source License][db-inner-source-license]. Utilizaron la [EUPL][eupl], ya que ofrecía un punto de partida similar al código abierto, y luego trabajaron en las restricciones y reglas adicionales requeridas en su contexto organizacional específico.
+
+Las primeras entidades legales (empresas) dentro de DB AG están utilizando su Licencia InnerSource.
+
+Un efecto positivo que ya se está mostrando es que simplifica la conversación, especialmente si algunas de las partes involucradas no conocen bien el concepto de InnerSource. Las licencias son un concepto bien conocido, por lo que tener una Licencia InnerSource es un excelente punto de partida para la discusión.
+
+Los experimentos también están descubriendo que hay desafíos adicionales de colaboración que deben resolverse para llevar a un verdadero modelo de contribución y colaboración InnerSource.
+
+Los desafíos de colaboración mencionados incluyen:
+
+- hacer que los proyectos con licencia InnerSource sean descubribles
+- construir comunidades para la colaboración en proyectos, al igual que en el código abierto
+
+Vale la pena mencionar que hasta ahora el software compartido bajo esta licencia InnerSource es principalmente herramientas, infraestructura y herramientas en niveles inferiores de la pila.
+
+### Airbus
+
+Airbus creó licencias InnerSource ad hoc para habilitar la forma de trabajo InnerSource dentro de una gran parte del grupo.
+
+### GovTech (Gobierno de Singapur)
+
+GovTech es responsable de la entrega de los servicios digitales del gobierno de Singapur al público.
+Crearon la Licencia del Sector Público de GovTech (GPSL) como una licencia permisiva para garantizar que el código pueda ser compartido entre entidades legales a través del gobierno.
+La GPSL cubre tanto el uso del código por parte de los licenciatarios (agencias y sus proveedores) como las contribuciones de vuelta a GovTech.
+Siguiendo las prácticas de código abierto, el archivo `LICENSE` de GPSL se incluye en cada repositorio que se pone a disposición como InnerSource.
+
+Para más detalles, vea la llamada de la Comunidad InnerSource Commons de 09/2023 [Mejorando la Colaboración de Ingeniería a través del Gobierno de Singapur a través de InnerSource](https://www.youtube.com/watch?v=-zu2X2iERv8&t=1257s&ab_channel=InnerSourceCommons) (alrededor de 20:50) por Hunter Nield.
+
+## Estado
+
+* Estructurado
+* El experimento listado en **Instancias Conocidas** está en funcionamiento desde 02/2020. La experiencia inicial muestra primeros efectos positivos, pero se necesita más experiencia para evaluar completamente el patrón.
+
+## Autor(es)
+
+- Cornelius Schumacher (DB Systel GmbH)
+- Schlomo Schapiro (DB Systel GmbH)
+- Sebastian Spier
+
+## Referencias
+
+- Presentación FOSSBack 2020: [Cornelius Schumacher - Blending Open Source and Corporate Values](https://youtu.be/hikC6U8X_Ec) - vea 27:30 en adelante para detalles sobre la Licencia InnerSource
+- [DB Inner Source License][db-inner-source-license]
+
+## Glosario
+
+- **organización** - Un paraguas para múltiples entidades legales. (sinónimos: grupo, empresa) (por ejemplo, Lufthansa)
+- **entidad legal** - Una entidad que tiene sus propios derechos y obligaciones legales (sinónimos: empresa, subsidiaria) (por ejemplo, Lufthansa Systems GmbH, Lufthansa Industry Solutions TS GmbH, ...)
+
+[db-inner-source-license]: https://github.com/dbsystel/open-source-policies/tree/master/inner-source-license
+[eupl]: https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/innersource-portal.md b/translation/es/patterns/innersource-portal.md
new file mode 100644
index 000000000..ceff56ce7
--- /dev/null
+++ b/translation/es/patterns/innersource-portal.md
@@ -0,0 +1,134 @@
+## Title
+
+Portal InnerSource
+
+## Patlet
+
+Los contribuidores potenciales no pueden descubrir fácilmente proyectos InnerSource que les interesen. Al crear un sitio web en la intranet que indexe toda la información disponible de proyectos InnerSource, permitirás que los contribuidores aprendan sobre proyectos que podrían interesarles y que los propietarios de proyectos InnerSource atraigan una audiencia externa.
+
+## Problema
+
+Los equipos de proyectos InnerSource tienen dificultades para atraer contribuciones externas.
+
+Los proyectos InnerSource en tu organización están aumentando pero los contribuidores potenciales no tienen una forma fácil de descubrirlos.
+
+## Historia
+
+Estás intentando establecer una práctica de InnerSource dentro de tu organización. Eres consciente de algunos proyectos que se están ejecutando utilizando un modelo de InnerSource, pero su existencia solo se comunica de boca en boca, por correo electrónico o en conversaciones informales con otros empleados. Como resultado, los propietarios de proyectos InnerSource tienen dificultades para atraer contribuidores.
+
+No existe un recurso único y compartido para que los empleados de toda la organización accedan y descubran fácilmente todos los proyectos InnerSource en curso. Esto está limitando severamente el potencial de crecimiento de cada proyecto InnerSource.
+
+¿Qué se puede hacer para ayudar a todos los proyectos InnerSource a aumentar su visibilidad a la mayor audiencia posible y atraer contribuidores en toda la organización?
+
+## Contexto
+
+* Tu organización está interesada en adoptar un estilo de trabajo InnerSource.
+* Los propietarios de proyectos InnerSource buscan una manera de atraer audiencias a sus proyectos. Sin embargo, están limitados por los canales de comunicación disponibles a través de los cuales podrían publicitarse a los contribuidores potenciales.
+* Los proyectos InnerSource en tu organización están aumentando.
+* Agravando este problema está el hecho de que la aplicación de gestión de control de código compartido en uso tiene capacidades de búsqueda tan limitadas que incluso los desarrolladores que buscan proyectos InnerSource encuentran frustrante localizarlos.
+
+### Prerrequisitos
+
+* Los gerentes han dado aceptación tácita de que sus empleados participen en proyectos InnerSource.
+* Se está utilizando un sistema de gestión de control de código compartido que proporciona acceso programático al contenido de los repositorios que aloja.
+* Hay un departamento dentro de tu organización con la responsabilidad de promover la colaboración InnerSource.
+
+## Resistencias
+
+* No se está aprovechando completamente el potencial de colaboración entre equipos de ingeniería.
+* Es difícil para los individuos descubrir qué proyectos InnerSource existen.
+* Es difícil para los propietarios de proyectos InnerSource atraer una audiencia de contribuidores externos.
+
+## Soluciones
+
+Crea un sitio web de intranet del Portal InnerSource donde los propietarios de proyectos InnerSource puedan publicitar fácilmente la disponibilidad de sus proyectos.
+
+Las propiedades clave del portal son:
+
+* Los visitantes del Portal InnerSource deberían poder ver todos los proyectos disponibles, así como buscar proyectos específicos basados en varios criterios, como el nombre del proyecto, tecnologías en uso, nombres de contribuidores, unidad de negocio patrocinadora, etc.
+* La información mostrada a través del Portal InnerSource debe estar bajo el control total de los propietarios de proyectos InnerSource en todo momento. Preferiblemente, obteniendo esta información directamente de un archivo de datos específico o metadatos almacenados en el propio repositorio del proyecto.
+* Los propietarios de proyectos deben incluir toda la información relevante sobre sus proyectos dentro de esos archivos de datos, incluyendo el nombre del proyecto, nombres de contribuidores de confianza, una breve descripción y enlaces al repositorio de código o cualquier documentación de apoyo.
+* (opcional) Mientras que la mayoría de las organizaciones optarán por hacer que su portal esté disponible solo en su intranet, algunas organizaciones han optado por hacer que su portal esté disponible en Internet pública. Esto puede ser interesante para organizaciones que desean mostrar información adicional sobre su enfoque InnerSource en su portal, por ejemplo, para fines de marca y reclutamiento.
+
+Al lanzar el portal, se debe considerar una campaña de comunicación que promueva la adición de archivos de datos InnerSource o metadatos a los repositorios de código, para aumentar el número de proyectos mostrados en el portal.
+
+### Implementaciones
+
+#### SAP Project Portal
+
+Una [implementación de referencia](https://github.com/SAP/project-portal-for-innersource) de un portal InnerSource está disponible en GitHub y abierta a contribuciones. Enumera todos los proyectos InnerSource de una organización de manera interactiva y fácil de usar. Los proyectos pueden auto-registrarse utilizando un tema dedicado de GitHub y proporcionar metadatos adicionales.
+
+
+
+#### Wiki
+
+Como una forma simple de comenzar, puedes reservar una página en un wiki interno para listar los proyectos disponibles.
+Una forma fácil de mostrar esta información es en una tabla con columnas que den un poco de información adicional sobre los proyectos.
+Intenta tener solo las columnas necesarias para que los espectadores puedan determinar si quieren aprender más sobre el proyecto, pero no más.
+Demasiada información hará que la página sea abrumadora y difícil de usar.
+Los individuos y equipos pueden auto-agregar sus proyectos a la página.
+
+Aquí hay un conjunto de columnas de muestra:
+
+* **Nombre**. Nombre del proyecto (opcionalmente vinculado a su página principal).
+* **Breve Descripción**. Explicando el propósito del proyecto (¿qué problema resuelve?).
+* **Requisitos Tecnológicos**. Debes usar estas tecnologías para incorporarte al proyecto.
+* **Comenzando**. Enlace a instrucciones sobre cómo empezar a usar el proyecto.
+* **Chat**. Enlace a un canal de chat para hacer preguntas sobre el proyecto.
+* **Equipo Anfitrión**. Ver si un equipo está detrás del proyecto puede ayudar a otros a tener la confianza para usarlo.
+* **En Producción Desde**. ¿Cuánto tiempo ha estado el proyecto en un entorno de producción? Ver esta información es un proxy aproximado de su madurez.
+* **Contribución**. Enlace a instrucciones sobre cómo contribuir al proyecto.
+
+Esta solución no permite una visualización elegante, es solo una tabla wiki.
+Si es importante para ti tener una interfaz de usuario llamativa, entonces esta idea no funcionará para ti.
+Además, si terminas con muchos proyectos (por ejemplo, cerca de 100),
+esta solución no escalará para permitir la búsqueda y filtrado o la actualización automática de las entradas de proyectos que probablemente necesitarás.
+Es una buena solución para un portal con unas pocas docenas de proyectos, sin embargo.
+
+## Contexto Resultante
+
+* El Portal InnerSource ha permitido a los propietarios de proyectos InnerSource publicitar sus proyectos a una audiencia a nivel de toda la organización. Debido a esta mayor visibilidad, están atrayendo comunidades de contribuidores mucho más grandes que nunca antes.
+* Para aquellos que buscan involucrarse en proyectos InnerSource, el Portal InnerSource les ha permitido descubrir exactamente el tipo de oportunidades que les interesan al buscar en todos los proyectos InnerSource disponibles simultáneamente según sus criterios específicos.
+* Satisfacer las necesidades de ambas audiencias ha ayudado a establecer InnerSource como una opción viable y atractiva para todas las áreas de la organización para lograr cosas juntos que no podrían haber logrado por separado.
+
+## Instancias Conocidas
+
+* **Una gran organización de servicios financieros** ha utilizado la creación de un Portal InnerSource para proporcionar un mecanismo de publicidad y descubrimiento de proyectos InnerSource en existencia en diferentes unidades de negocio.
+* **SAP** promueve proyectos InnerSource en el Portal InnerSource: los proyectos pueden auto-registrarse utilizando temas de GitHub. El [Puntaje de Actividad del Repositorio](repository-activity-score.md) define el orden predeterminado de los proyectos InnerSource en el portal. También ver [Michael Graf & Harish B (SAP) en ISC.S11 - El Camino Inesperado de Aplicar Patrones InnerSource](https://www.youtube.com/watch?v=6r9QOw9dcQo&list=PLCH-i0B0otNQZQt_QzGR9Il_kE4C6cQRy&index=6). Su código fuente se publica como una [implementación de referencia](https://github.com/SAP/project-portal-for-innersource) y está abierta a contribuciones.
+* **Elbit Systems** ha utilizado este patrón y ha añadido gamificación encima.
+ * [Gamificación Como Medio de Cambio Cultural y Potenciador de Compromiso InnerSource](https://www.oreilly.com/library/view/oscon-2018-/9781492026075/video321579.html) | Shelly Nizri | OSCON 2018 - Portland, Oregon
+ * De Islas, Monstruos y InnerSource [(diapositivas)](https://docs.google.com/presentation/d/1P1OCEK9B6eSrVRUclVWY6meSI-qHOBjM_UAPNvCZamU/edit#slide=id.p15), [(video)](https://drive.google.com/file/d/1pM89uHMn0vhE3ayFJDGYcCO8R0tAXXZD/view?usp=drivesdk) | InnerSource Spring Summit 2019 (Galway, Irlanda)
+ * El [código](https://gitlab.com/gilda2) que realiza esta plataforma ha sido de código abierto.
+* **American Airlines** promueve proyectos InnerSource a través de un [Mercado Interno InnerSource](https://web.archive.org/web/20240226230502/https://tech.aa.com/2020-10-30-innersource). De manera similar a SAP, los proyectos se auto-registran agregando `innersource` como un tema de GitHub. Los proyectos son buscables y filtrables por idioma, temas, número de problemas abiertos, etc.
+* **Banco Santander** ha creado un portal público llamado "Santander ONE Europe InnerSource Community" para apoyar e incrementar la adopción de InnerSource. Además del catálogo de proyectos, el portal incluye contenido relevante como documentación, forma de trabajo, noticias y eventos.
+
+
+
+* **Airbus** utilizó el [Portal SAP](https://github.com/SAP/project-portal-for-innersource) como una Prueba de Concepto. Ahora está utilizando el [plugin Bazaar](https://github.com/backstage/community-plugins/blob/main/workspaces/bazaar/plugins/bazaar/README.md) de [Backstage](https://backstage.io) ya que este último se convirtió en la herramienta oficial de experiencia del desarrollador internamente. Proporciona una capacidad de auto-registro conveniente para todas las divisiones.
+* **Mercado Libre** utiliza una instancia del [portal SAP](https://github.com/SAP/project-portal-for-innersource) para descubrir proyectos InnerSource existentes dentro de la organización.
+* **Mercedes-Benz** está [utilizando](https://opensource.mercedes-benz.com/news/sponsor_innersource_commonsoss) la implementación de referencia de SAP mencionada anteriormente para su Portal InnerSource.
+* **WellSky** tiene una simple página de _Confluence Wiki_ donde se enumeran los proyectos InnerSource y reutilizables.
+
+## Referencias
+
+* El patrón del Portal InnerSource ha demostrado funcionar extremadamente bien con el patrón asociado de InnerSource [Gig Marketplace](./gig-marketplace.md) en este contexto.
+
+## Estado
+
+* Estructurado
+
+## Autor(es)
+
+* Stephen McCall
+
+## Agradecimientos
+
+* Shelly Nizri
+* Melinda Malmgren
+* Michael Graf
+* Jesús Alonso Gutierrez
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/issue-tracker.md b/translation/es/patterns/issue-tracker.md
new file mode 100644
index 000000000..665987ab8
--- /dev/null
+++ b/translation/es/patterns/issue-tracker.md
@@ -0,0 +1,57 @@
+## Title
+
+Casos de uso del Gestor de Tareas (Issue Tracker)
+
+## Patlet
+
+El equipo anfitrión de InnerSource no logra hacer transparentes no solo los planes y el progreso sino también el contexto de los cambios. Esto se resuelve aumentando los casos de uso del gestor de tareas del proyecto para también servir como herramienta de lluvia de ideas, discusión de implementación y diseño de funcionalidades.
+
+## Problema
+
+Un equipo desarrolla un componente del que dependen muchos equipos en la organización. Utiliza un gestor de tareas (issue tracker) estándar para rastrear errores abiertos y solicitudes de características. Sin embargo, el contexto en cada entrada es muy limitado. Como resultado, los posibles contribuyentes no tienen forma de saber de qué cambio exactamente está hablando cada issue.
+
+## Contexto
+
+El tooling del proyecto InnerSource está todo configurado. Sin embargo, el gestor de tareas del proyecto se utiliza principalmente para compartir el progreso. En los proyectos de InnerSource hay muchos más casos de uso que un gestor de tareas puede utilizar para facilitar la comunicación remota y asincrónica.
+
+## Resistencias
+
+- A los contribuyentes les gustaría entender si la característica que les falta ya está en la hoja de ruta. Sin embargo, con mucho contexto faltante en los problemas, es imposible decidir si los problemas existentes coinciden con las necesidades del equipo contribuyente.
+- Como resultado, se abren muchos problemas duplicados que el equipo anfitrión tiene que manejar.
+- Debido a la falta de contexto en los issues abiertos, los contribuyentes no pueden ayudar al equipo anfitrión a implementar tareas más sencillas ya disponibles. Como resultado, mucho trabajo permanece en manos del equipo anfitrión.
+- Con un fuerte enfoque en la comunicación verbal, es imposible discernir después de un par de meses o años por qué se eligió implementar una característica en particular. Como resultado, las refactorizaciones, en particular la simplificación del componente, se convierten en un ejercicio de arqueología de proyectos y de recoger ideas de personas que recuerdan lo que se discutió.
+
+## Solución
+
+Adopte la filosofía de 'priorizar lo escrito sobre lo verbal' no solo en el desarrollo de software, sino también durante la fase de planificación de nuevas características:
+
+- Para errores, características planificadas e ideas de características, cree problemas separados. En cada uno de ellos, incluya tanta información como sea posible para que los posibles contribuyentes externos puedan entender el contexto. Idealmente, en particular para cambios más fáciles, incluya suficiente información para que los contribuyentes externos apoyen al equipo anfitrión implementando la funcionalidad en cuestión.
+- Potencialmente use el gestor de tareas como un canal para hacer preguntas. Esto es particularmente útil si carece de otras fuentes de comunicación para abordar las preguntas de los usuarios.
+- Haga uso de etiquetas y categorías para distinguir problemas utilizados para diferentes propósitos.
+- Para iniciar una sesión de lluvia de ideas de manera asincrónica, abra un issue para recopilar ideas. Cuando la discusión comience a calmarse, resuma los puntos identificados en este issue en un documento separado. Publíquelo para revisión como un pull request para profundizar en los puntos individuales que aún necesitan aclaración. El documento resultante se puede utilizar para publicar los resultados en otros canales apropiados, así como para referencia futura.
+- La mayoría de las implementaciones de gestor de tareas permiten plantillas de problemas. Utilice estas no solo para recopilar información comúnmente necesaria para informes de errores, sino también incluya pistas sobre qué tipo de información se necesita para los otros tipos de uso.
+
+## Contexto Resultante
+
+- Hacer más uso del gestor de tareas del proyecto para la comunicación permite a los contribuyentes externos seguir y tomar mejores decisiones sobre qué contribuir.
+- Un enfoque en la comunicación escrita estructurada permite a los miembros del equipo anfitrión participar de forma remota.
+- Comunicarse de manera consistente por escrito significa que la documentación pasiva sobre decisiones del proyecto se acumula como un subproducto en lugar de necesitar atención adicional.
+- Utilizar consistentemente canales de comunicación públicos lleva a que más personas sigan una discusión. Esto significa que hay más personas conocedoras que pueden responder preguntas, opinar sobre problemas abiertos o señalar fallos en características planificadas que de otro modo se encontrarían mucho más tarde.
+- Mover las discusiones a un medio de discusión público crea una oportunidad para que los posibles futuros contribuyentes observen, sigan, se sientan cómodos y aprendan las formas del proyecto mucho antes de que tengan la primera necesidad de involucrarse.
+
+## Instancias Conocidas
+
+* Europace AG - Ver publicación en el blog [Casos de Uso del Gestor de tareas](https://tech.europace.de/post/using-issues-for-asking-questions-and-tracking-work/)
+
+## Autores
+
+Isabel Drost-Fromm
+
+## Estado
+
+Estructurado
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/maturity-model.md b/translation/es/patterns/maturity-model.md
new file mode 100644
index 000000000..1feadb3c9
--- /dev/null
+++ b/translation/es/patterns/maturity-model.md
@@ -0,0 +1,222 @@
+## Title
+
+Modelo de Madurez
+
+## Patlet
+
+Los equipos han comenzado a adoptar InnerSource. La práctica se está expandiendo a múltiples departamentos. Sin embargo, la comprensión de lo que constituye un proyecto InnerSource varía. La solución es proporcionar un modelo de madurez que permita a los equipos realizar una autoevaluación y descubrir patrones y prácticas que aún no conocen.
+
+## Problema
+
+Cuando la adopción de InnerSource en una empresa comienza a aumentar, la tutoría individual de cada proyecto a través de un evangelista se vuelve inviable. Además, cada vez más personas están adquiriendo al menos una comprensión básica de lo que significa trabajar en un proyecto InnerSource. Sin embargo, al observar todos los proyectos InnerSource, la profundidad de la comprensión del concepto diverge. Los equipos pueden no estar al tanto de patrones probados que les ayudarían a pasar al siguiente nivel y resolver problemas y puntos de dolor con los que están lidiando.
+
+## Contexto
+
+Varios equipos han comenzado a adoptar prácticas de InnerSource. El nivel exacto de comprensión de la práctica diverge entre los equipos. Los problemas exactos que enfrentan los equipos divergen según el contexto y el entorno de trabajo de cada equipo. Como resultado, la definición de cuáles son las mejores prácticas importantes en un proyecto InnerSource difiere según cada equipo.
+
+## Resistencias
+
+Los equipos que comparten aprendizajes de InnerSource se encuentran con malentendidos, ya que no son conscientes de su respectivo nivel de adopción de InnerSource.
+
+Los equipos creen que "se trata de migrar a un desarrollo de software compartido
+[forge](https://en.wikipedia.org/wiki/Forge_%28software%29)" (GitLab, GitHub o Bitbucket son ejemplos bien conocidos de tales forjas).
+
+Los equipos no están al tanto de las mejores prácticas que les ayudarían a resolver problemas que enfrentan en su trabajo diario.
+
+## Solución
+
+Pida a los equipos que se autoevalúen con el modelo de madurez propuesto.
+
+### Transparencia
+
+**Planes y Productos**
+
+Los proyectos InnerSource se benefician de la planificación transparente en toda la organización al permitir que las partes interesadas comprendan mejor las decisiones y las influyan de una manera que pueda ser seguida por otros.
+
+* PP-0: Los individuos y equipos no divulgan regularmente sus planes o productos a múltiples partes interesadas. No existen acciones formales en la organización.
+* PP-1: Los individuos y equipos dan visibilidad a sus planes o productos a múltiples partes interesadas, antes de que comiencen. Hoja de ruta compartida.
+* PP-2: Ya existen hojas de ruta compartidas con pautas claras y reglas de contribución donde las partes interesadas pueden proporcionar comentarios. Sin embargo, esto no está estandarizado en toda la organización y no todos los proyectos proporcionan esta información.
+* PP-3: Las hojas de ruta se comparten por defecto y hay un proceso estándar y homogéneo para hacerlo en toda la organización a nivel de cada proyecto InnerSource. Esto contiene reglas claras para contribuir e influir en la hoja de ruta.
+
+**Proceso de Desarrollo y Herramientas**
+
+Los proyectos InnerSource prosperan cuando los contribuyentes se vuelven activos y participan. Como resultado, hacer que la contribución sea más fácil debe equilibrarse con objetivos puramente técnicos.
+
+* DP-0: Cada equipo sigue su propio proceso de desarrollo y herramientas. No están definidos para compartir conocimientos y artefactos fuera del equipo de desarrollo. Equipos de desarrollo en silos.
+* DP-1: Los equipos de desarrollo utilizan repositorios de código compartidos, internamente. Algunos equipos desarrollan su propio proceso de CI, utilizando herramientas de CI no corporativas o estándar. No hay un proceso de revisión de código definido, aunque algunos equipos de proyectos lo hacen internamente.
+* DP-2: La organización patrocina y promueve un repositorio compartido para el conocimiento colectivo. Algunos equipos desarrollan su propio proceso de CI, utilizando herramientas de CI corporativas. Hay entornos de CI. Proceso de revisión de código definido y utilizado por algunos proyectos. A veces, la revisión de código es realizada por miembros de equipos externos.
+* DP-3: La mayoría de los equipos desarrollan su propio proceso de CI, utilizando herramientas de CI corporativas. Hay entornos de CI. Proceso de revisión de código definido y utilizado. La revisión de código es realizada tanto por miembros internos como externos del equipo.
+
+**Decisiones**
+
+Para motivar a los colegas a contribuir con trabajo fuera de su equipo central, necesitan visibilidad en el proceso de toma de decisiones del proyecto anfitrión, pero también sentir que sus voces son escuchadas y valoradas.
+
+* DC-0: Los responsables de la toma de decisiones a menudo retienen intencional o accidentalmente datos y recursos relacionados con las decisiones del proyecto.
+* DC-1: Los materiales que forman parte de las prácticas de toma de decisiones se ponen a disposición para su revisión después de que se finalizan las decisiones.
+* DC-2: Las personas sienten que conocen y están ayudando a dar forma a la mayoría (pero no a todas) de las decisiones importantes a medida que se desarrollan. Los materiales que forman parte de las prácticas de toma de decisiones están disponibles en hitos definidos del proyecto.
+* DC-3: Las personas sienten que forman parte de un proceso compartido y estándar para la toma de decisiones colectivas que la organización respalda. Los materiales que forman parte de las prácticas de toma de decisiones son continuamente accesibles durante los procesos de trabajo.
+
+**Recursos Útiles**
+
+Para atraer a los contribuyentes, el material de apoyo útil debe ser fácilmente accesible.
+
+* RS-0: Los individuos y equipos no contribuyen ni recurren a un repositorio compartido de conocimientos.
+* RS-1: Los individuos y equipos liberan materiales del proyecto para su revisión interna, después de haber terminado su trabajo. Los individuos y equipos comparten recursos, pero en sistemas o repositorios desconectados, fragmentados o individualizados/en silos. Los individuos y equipos comparten recursos, pero no hay una comprensión comúnmente expresada o compartida de los criterios utilizados para determinar si la información es sensible o no. No "comparten pensamientos con otros".
+* RS-2: Los individuos y equipos hacen que los materiales relacionados con el proyecto sean accesibles para algunos miembros de los equipos del proyecto de acuerdo con formatos y/o protocolos claramente definidos y compartidos. Los individuos y equipos retienen datos y recursos sensibles, proporcionando detalles, contexto y alcance limitados.
+* RS-3: Los individuos y equipos hacen que los materiales relacionados con el proyecto sean ampliamente accesibles para la organización, y posiblemente fuera de la organización también, de acuerdo con formatos y/o protocolos claramente definidos y compartidos. Los individuos y equipos que deben retener datos y recursos sensibles son claros sobre lo que no están compartiendo, y otros entienden por qué esos materiales no están disponibles para ellos.
+
+**Historias**
+
+Cuando se trabaja en equipos anfitriones, los errores serán automáticamente visibles. Para mantener altos niveles de contribución, la cultura corporativa debe celebrar el fracaso como una oportunidad para el crecimiento y el aprendizaje.
+
+* ST-0: Los individuos y equipos no comparten éxitos ni fracasos para que otros aprendan.
+* ST-1: Los individuos y equipos se sienten cómodos compartiendo historias sobre éxitos, pero no sobre fracasos.
+* ST-2: Los individuos y equipos se sienten cómodos compartiendo historias de éxitos y fracasos durante retrospectivas y revisiones.
+* ST-3: Los individuos y equipos se sienten cómodos compartiendo historias de éxitos y fracasos, y aprenden de los fracasos según protocolos formales.
+
+### Colaboración
+
+**Canales para Proporcionar Retroalimentación**
+
+Para que los silos se reduzcan, los colegas deben sentirse cómodos compartiendo retroalimentación abiertamente. Una forma fácil de apoyar eso es usar los mismos principios de comunicación a través de las jerarquías.
+
+Idealmente, se establecerán canales de comunicación adecuados que sean conocidos por todos en la organización, con canales enfocados en diferentes objetivos (anuncios, soporte al usuario, canales de desarrollo, discusiones de infraestructura, etc.). Algunas de las mejores prácticas que establecerás a medida que tus proyectos InnerSource maduren: Adopción de pautas de netiqueta, apertura de un conjunto probado de canales estándar (que se archivan, son de acceso público, se pueden buscar) para cada nuevo proyecto InnerSource.
+
+* CF-0: No hay procesos ni canales establecidos. Algunos miembros de la organización comparten materiales a través de canales o discusiones privadas.
+* CF-1: La organización está en proceso de establecer pautas y canales internos para fomentar diversos puntos de vista sobre decisiones de la empresa/departamento, para que cualquier persona que pertenezca a la organización pueda usarlos. Algunos miembros de la organización comparten materiales de toma de decisiones de manera informal utilizando plataformas no oficiales. Los líderes mantienen al menos un canal claro y directo para que los miembros de la organización compartan opiniones constructivamente sobre algunos asuntos relevantes para su trabajo.
+* CF-2: La organización ha establecido pautas y canales internos, y proporciona recursos específicos (programas de capacitación, acceso a contenido, etc.) para fomentar y solicitar diversos puntos de vista sobre decisiones de equipo o de la organización.
+* CF-3: Los miembros de la organización comparten materiales de toma de decisiones en plataformas oficialmente sancionadas. Los miembros de la organización comparten materiales abiertamente a través de múltiples canales y métodos para recibir retroalimentación. Los líderes también utilizan esos canales, alientan abiertamente a otros a usarlos y mantienen registros orientados al equipo o al público de la retroalimentación que han recibido y/o las acciones que han tomado para abordar esta retroalimentación.
+
+**Liderazgo**
+
+Los proyectos InnerSource alientan a los empleados a contribuir a proyectos fuera de la influencia directa de su gerente de línea directa. Esto necesita una cultura de confianza.
+
+* LS-0: Cultura de mando y control, dentro de una organización altamente jerárquica.
+* LS-1: Algunos líderes están abiertos a recibir retroalimentación y crear un entorno donde las personas se sientan seguras al proporcionarla.
+* LS-2: La mayoría de los líderes en la organización están abiertos a recibir retroalimentación y crear un entorno donde las personas se sientan seguras al proporcionarla. Los líderes muestran pasividad al comprender si todos los miembros se sienten empoderados y habilitados para compartir. La organización alienta a los líderes a buscar activamente voces no presentes en el diálogo para su inclusión.
+* LS-3: Los miembros se sienten empoderados y habilitados para compartir opiniones constructivamente sobre cualquier asunto relevante para su trabajo o sobre el cual se sientan apasionados.
+
+**Estructura Organizacional y Funcional**
+
+Cuando InnerSource deja el nivel puramente de codificación y entra en el nivel de comunidad y grupos de trabajo, hay potencial para reducir los silos incluso donde la colaboración directa en el código no es posible.
+
+* OF-0: Los grupos de trabajo tienden a ser estáticos en términos de membresía y conjuntos de habilidades.
+* OF-1: Existen equipos multifuncionales, pero los roles del equipo a menudo no están claros y las estructuras de gobernanza son vagas.
+* OF-2: Los equipos multifuncionales son comunes y los equipos publican sus roles y objetivos públicamente.
+* OF-3: Los equipos multifuncionales son comunes y hacen que sus actividades sean conocidas ampliamente en la organización; a su vez, la organización promueve las mejores prácticas para trabajar juntos.
+
+**Contribución**
+
+El objetivo al diseñar patrones de contribución debe ser mantener la colaboración en mente si se quiere reducir los silos.
+
+* CB-0: Completamente en silos, sin colaboración fuera de los equipos. Solo algunas colaboraciones debido a equipos multifuncionales.
+* CB-1: Los miembros de la organización y los equipos colaboran, pero con frecuencia dicen que es "demasiado difícil". Los equipos rara vez revisan los resultados de sus colaboraciones.
+* CB-2: Los miembros de la organización y los equipos buscan activamente oportunidades para colaborar. Los equipos discuten, revisan y debaten rutinariamente los resultados de sus esfuerzos colaborativos, y hacen que estos resultados estén disponibles por defecto.
+* CB-3: Los miembros de la organización colaboran tanto interna como externamente de maneras que benefician a todos los involucrados. Los equipos discuten, revisan y debaten rutinariamente los resultados de sus esfuerzos colaborativos, y comparten sus aprendizajes fuera de la organización, y hacen que estos resultados estén disponibles externamente por defecto.
+
+### Comunidad
+
+**Políticas de Compartir**
+
+Tener una base de valores compartidos facilita el trabajo a través de los límites del equipo. Cruzar límites se vuelve más fácil si un conjunto limitado de reglas y pautas básicas se aplica en todas partes y se puede referenciar fácilmente.
+
+* SP-0: No hay cultura de compartir ni políticas escritas.
+* SP-1: Algunos miembros de la organización se unen para definir valores y principios, pero no están claramente apoyados cuando lo hacen.
+* SP-2: Los miembros de la organización documentan colectivamente visiones y acuerdos compartidos como declaraciones de misión y códigos de conducta, los hacen fácilmente accesibles y los mencionan con frecuencia. Los materiales de incorporación y los rituales de orientación proporcionan un contexto adecuado para ayudar a los nuevos miembros a comprender cómo la organización se beneficiará de sus contribuciones.
+* SP-3: Los valores y principios compartidos informan los procesos de toma de decisiones, resolución de conflictos y evaluación entre los miembros de la organización, que mencionan estos valores y principios de manera consistente tanto en formatos verbales como escritos.
+
+**Sentirse parte de la Organización**
+
+Una de las posibles razones para introducir InnerSource en las organizaciones puede ser aumentar el compromiso. Este punto rastrea cómo está cambiando el compromiso mientras se adopta InnerSource.
+
+* PA-0: Bajo compromiso, sin colaboración y las personas no se sienten cómodas compartiendo con otros.
+* PA-1: Los miembros de la organización se sienten cómodos compartiendo sus pensamientos y opiniones sin temor a represalias, pero solo en dominios familiares. Las personas entienden que las mejores ideas ganan y las responsabilidades de liderazgo recaen en personas con historias de contribución y compromiso.
+* PA-2: Los miembros de la organización se sienten cómodos compartiendo sus pensamientos y opiniones sin temor a represalias. Los líderes demuestran dedicación a los valores compartidos de la organización.
+* PA-3: La organización es proactiva al decir a los miembros que se beneficia de sus contribuciones; como tal, los miembros demuestran conciencia compartida y ejecución empoderada, y sienten un sentido de responsabilidad hacia la comunidad. Los líderes entienden que crecen ayudando a otros a crecer y mentorean a los miembros junior de la organización.
+
+### Gobernanza
+
+**Recompensas**
+
+Para impulsar la adopción, se pueden utilizar motivadores extrínsecos para aumentar la colaboración entre equipos.
+
+* RW-0: Sin recompensas.
+* RW-1: Se alienta a los líderes a recompensar colaboraciones excepcionales, pero no hay políticas ni procesos establecidos.
+* RW-2: Se establecen procesos estándar para recompensar colaboraciones fuera de los equipos de desarrolladores. Los líderes de equipo o juntas deciden quién debe ser recompensado.
+* RW-3: Las recompensas no solo son propuestas por la organización, sino que las comunidades pueden definir sus recompensas más valiosas. La comunidad es responsable de decidir quién debe ser recompensado.
+
+**Políticas de Monitoreo**
+
+Los proyectos InnerSource necesitan un medio para la autoevaluación. Las métricas pueden ser un aspecto para facilitar esta evaluación. Además, en organizaciones con un nivel de adopción de InnerSource maduro, esperamos que la adopción del método se rastree en función de métricas claras y acordadas.
+
+* MP-0: No existen políticas de monitoreo en ningún nivel de la organización.
+* MP-1: Las métricas son importantes para ciertos equipos y comienzan a usarlas de manera aislada.
+* MP-2: Existe una estrategia a nivel organizacional con respecto a las métricas que ayudan a validar políticas específicas en toda la organización. Esta política de monitoreo existe a nivel de algunos proyectos InnerSource.
+* MP-3: Existen pautas claras, recomendaciones y capacitaciones sobre el uso de métricas con cierta infraestructura proporcionada por la organización. Esto funciona en ambos niveles: programa InnerSource para comprender la adopción general de InnerSource dentro de la organización y a nivel de proyectos InnerSource.
+
+**Soporte y Mantenimiento**
+
+No solo el desarrollo de características debe ser propiedad de los equipos InnerSource, el soporte y mantenimiento también es parte de las tareas principales de los equipos.
+
+* SM-0: Soporte dado por el equipo de desarrollo o soporte principal. Un contrato comercial garantiza el soporte. No hay conocimiento sobre el producto fuera del equipo.
+* SM-1: Existen reglas y regulaciones para formalizar el soporte en el producto, dado por un equipo de soporte dedicado.
+* SM-2: El soporte para las contribuciones de InnerSource se formaliza a través de patrones de InnerSource como [30 Day Warranty](./30-day-warranty.md) o [Service vs. Library](./service-vs-library.md).
+* SM-3: Existen reglas y regulaciones para formalizar el soporte en el producto, dado por una comunidad madura.
+
+**Cultura**
+
+Hay múltiples niveles que avanzan hacia una cultura colaborativa.
+
+* CL-0: Silos: los equipos trabajan de manera independiente pero también en aislamiento.
+* CL-1: Reactivo: los equipos trabajan de manera independiente, pero saben cómo reaccionar ante fallas en las dependencias.
+* CL-2: Contributivo: los equipos ayudan activamente a mejorar sus dependencias contribuyendo.
+* CL-3: Activista: los equipos buscan activamente ayuda, mentorean y reclutan nuevos contribuyentes.
+
+**Roles de InnerSource**
+
+InnerSource viene con roles explícitos. Si bien en las primeras etapas algunos patrones pueden ser utilizables sin adoptar esos roles, comunicarse dentro de los proyectos utilizando títulos de roles explícitos se vuelve más fácil.
+
+* RO-0: No existen roles específicos que ayuden a la adopción de InnerSource. Solo están presentes roles comunes de desarrollo: desarrollador, analista, probador, etc.
+* RO-1: Ocasionalmente, algunos individuos y equipos contribuyen a otros proyectos. Estas son contribuciones técnicas, donde se ve el rol de usuario/contribuyente. Para algunos equipos, se puede identificar al menos un miembro que sea una referencia técnica, que explique el proceso de desarrollo a otros miembros del equipo de desarrollo. Él/ella podría ser un candidato para cubrir el rol de trusted committer.
+* RO-2: Un rol de Oficial de InnerSource está a cargo de la gobernanza y el soporte, incluidos los procesos, etc. Identifica las necesidades de educación y asegura que se proporcione a la organización. Lidera y mentorea a la organización en el compromiso con los proyectos de IS. Es el primer paso formal en el camino, definiendo la visión y la hoja de ruta de IS. La organización ha definido un rol de trusted committer, siendo un punto de contacto/referencia no solo para los miembros del equipo de desarrollo, sino también para los contribuyentes externos. Existe un proceso estándar que describe cómo contribuir a la comunidad, el rol de contribuyente está presente. El rol de Científico de Datos está a cargo de gestionar las huellas de actividad dejadas por la iniciativa de InnerSource, necesarias para medir la evolución de IS. El rol de trusted committer evolucionará a un perfil más técnico, y un gerente de comunidad estará a cargo de "energizar" la comunidad, siendo su principal responsabilidad atraer y retener nuevos desarrolladores/usuarios (contribuyentes/miembros de la comunidad).
+* RO-3: Los evangelistas se mueven dentro de la organización, para que otros conozcan el trabajo actual, lo que hace InnerSource y cómo hacerlo, y ayuden a otros a comprender y formar parte de la iniciativa. Aparecen contribuyentes no técnicos.
+
+## Contexto Resultante
+
+Todos los equipos están al tanto de las mejores prácticas disponibles.
+
+Los equipos entienden su nivel de adopción de InnerSource.
+
+Antes de adoptar InnerSource como modelo de trabajo, los equipos son conscientes de las prácticas que se esperan de ellos, tanto a corto como a largo plazo.
+
+## Instancias Conocidas
+
+* Entelgy
+* Zylk
+* Bitergia
+* Airbus
+
+## Autores
+
+* Daniel Izquierdo Cortazar
+* Isabel Drost-Fromm
+* Jorge
+* Nerea
+
+## Agradecimientos
+
+* Alexander Andrade (agradecimiento especial por las correcciones ortográficas)
+
+## Alias
+
+Modelo de madurez: Aprender sobre las mejores prácticas de InnerSource
+
+## Estado
+
+* Estructurado
+* Redactado en septiembre de 2019
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/praise-participants.md b/translation/es/patterns/praise-participants.md
new file mode 100644
index 000000000..09ec5d40d
--- /dev/null
+++ b/translation/es/patterns/praise-participants.md
@@ -0,0 +1,92 @@
+## Title
+
+Reconocimiento a los Participantes
+
+## Patlet
+
+Cuando recibes una contribución InnerSource, es importante agradecer al contribuidor por su tiempo y esfuerzo.
+Expresar tu gratitud no solo reconoce efectivamente la contribución sino que también genera mayor compromiso del contribuidor y otros.
+Reconocer las contribuciones positivas de los contribuidores a tu proyecto InnerSource motiva a estos contribuidores (y sus gerentes) a continuar invirtiendo en el esfuerzo.
+
+## Problema
+
+¿Cómo podemos expresar adecuadamente nuestra gratitud a un contribuidor por su contribución a un proyecto InnerSource?
+Puede que no sepamos exactamente qué palabras o canales de comunicación usar para expresarnos sinceramente.
+Pero reconocer y agradecer a los contribuidores es fundamental para mantener a esos contribuidores (y sus gerentes) comprometidos con el trabajo.
+Afortunadamente, el reconocimiento efectivo de los participantes sigue un patrón, y seguirlo ayuda a garantizar que nuestros mensajes de agradecimiento se transmitan de manera clara y amable.
+También nos hace menos propensos a olvidar agradecer a nuestros contribuidores, lo cual es desafortunadamente demasiado fácil de hacer.
+
+## Contexto
+
+* Eres el [Trusted Committer](./trusted-committer.md) o mantenedor de un proyecto InnerSource.
+* Valoras la comunidad de contribuidores y quieres mantenerla y hacerla crecer.
+
+## Resistencias
+
+* Estás ocupado, lo que hace que sea más fácil olvidar algunos toques cualitativos (como el reconocimiento y el agradecimiento).
+* Puede que no seas alguien que se sienta cómodo en situaciones sociales o que sea bueno con las palabras.
+* El reconocimiento de los compañeros es muy importante para la satisfacción laboral y el desarrollo profesional.
+
+## Soluciones
+
+Ser reconocido por otros se siente bien. Y en un entorno profesional, el reconocimiento de los compañeros también puede aumentar tu influencia organizacional y tu crecimiento profesional.
+Cada vez que alguien contribuya a tu proyecto InnerSource, reconócelos con un "gracias" auténtico y sincero.
+Asegúrate de resaltar ejemplos específicos de cómo estas contribuciones han impactado positivamente el proyecto.
+
+Para contribuciones no triviales (todas las contribuciones de código y contribuciones de tiempo significativas), di "gracias" a través de los siguientes mecanismos:
+
+(1) Menciona a la persona por su nombre en cualquier lugar de chat (por ejemplo, _Slack_) donde organizes la actividad de tu proyecto.
+Haz saber a todos lo que hicieron y agradéceles públicamente.
+
+Ejemplo:
+
+> Todos @aquí denle un aplauso a @andrew.clegg por actualizar el _rcs-viewer_ a la última versión del _hebo-client_ (https://github.com/rcs/rcs-viewer/pull/81).
+> ¡Gracias por ayudar a mantener esta librería actualizada, Andy!
+
+(2) Envíales un correo electrónico a ellos y a su gerente (con copia) en privado, agradeciéndoles por la contribución.
+Para contribuciones de código, considera reenviar el correo de notificación de la fusión.
+
+Ejemplo:
+
+> Hola, Andy, quiero agradecerte nuevamente por hacer esta actualización.
+> Puede que haya sido una pequeña cantidad de tiempo, pero es la atención como esta de cada persona lo que hace que el proyecto RCS funcione para todos nosotros.
+> Gracias por resolver tu propio problema de una manera que también mejora el _rcs-viewer_ para todos.
+
+## Contexto Resultante
+
+Comentarios como este dejan al contribuidor con una sensación fantástica y listo para volver a participar en el proyecto.
+Combinar **ambas** formas de agradecimiento les da reconocimiento frente a sus compañeros (amplitud) y frente a su gerente directo (profundidad).
+Hay un sutil estímulo para que esos compañeros en el chat consideren contribuir ellos mismos y para que ese gerente busque circunstancias apropiadas para alentar a sus otros subordinados directos a hacer lo mismo.
+Además, la conciencia del proyecto InnerSource se extiende al gerente, quien puede no haber conocido previamente el uso y la participación del equipo en él.
+
+Una advertencia: manténlo real.
+Asegúrate de que tus palabras provengan del sincero agradecimiento que sientes por lo que han hecho.
+Mantén el nivel y la verbosidad del reconocimiento apropiados a su nivel de participación.
+Exagerar puede parecer insincero y mecánico y frustrar tu propósito al comunicarte.
+
+## Patrones Relacionados
+
+* _Just Say Thanks_ (del libro [_Fearless Change_](https://fearlesschangepatterns.com/))
+
+## Instancias Conocidas
+
+* Nike (múltiples proyectos)
+* SAP - Las iniciativas InnerSource como los proyectos Dojo y Everest se elevan por el patrón 'Reconocimiento a los Participantes', donde el programa SAP Appreciate juega un papel clave en fomentar una cultura de gratitud y reconocimiento, llevando la innovación y la colaboración a nuevas alturas. Ver: [InnerSource: First Contribution Explored](https://community.sap.com/t5/open-source-blogs/innersource-first-contribution-explored/ba-p/13644916)
+
+## Estado
+
+* Estructurado
+
+## Autor(es)
+
+* Russ Rutledge
+
+## Agradecimientos
+
+* [Todd Lisonbee](https://github.com/tlisonbee) por alentar a "mantenerlo real."
+* [Isabel Drost-Fromm](https://github.com/MaineC) por [esta explicación adicional](https://youtu.be/h3MPewsk5PU?t=357) de la importancia de proporcionar ejemplos específicos de cómo la contribución ha impactado positivamente el proyecto.
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/release-process.md b/translation/es/patterns/release-process.md
new file mode 100644
index 000000000..b83d94582
--- /dev/null
+++ b/translation/es/patterns/release-process.md
@@ -0,0 +1,74 @@
+## Title
+
+Proceso Estándar de Publicación
+
+## Patlet
+
+Los equipos pueden dudar en adoptar un proyecto InnerSource si no están seguros de su madurez. Para abordar esto, las notas de versión consistentes y los artefactos publicados son cruciales. Estas prácticas demuestran una fuerte dedicación al proyecto, generando confianza y asegurando a los usuarios un compromiso continuo con un software sostenible y bien gestionado.
+
+## Problema
+
+Cuando un equipo está decidiendo si usar un proyecto InnerSource, una de sus consideraciones es si pueden confiar en el proyecto dado por un período prolongado. Cambiar las herramientas/proyectos que están utilizando tiene un costo, por lo que solo quieren hacer esas inversiones cuando sea necesario y tenga beneficios tangibles.
+
+Es una práctica común para los proyectos de código abierto tener versiones versionadas, con notas que documentan cambios importantes y nuevas características junto con un binario publicado o un enlace a una imagen de Docker. Esta práctica puede no ser tan transparente o bien documentada/visible para los proyectos InnerSource, módulos, etc.
+
+Los proyectos InnerSource que no tienen un artefacto publicado o un proceso de publicación reducen la confianza. Los equipos no sabrán cuándo pueden esperar la próxima versión, cuándo se introducen cambios importantes, etc.
+
+## Contexto
+
+Las grandes organizaciones producen mucho software interno, gran parte del cual podría ser reutilizado por equipos en toda la empresa. Herramientas operativas, librerías de software y módulos de infraestructura como código (IaC) son ejemplos comunes de este tipo de software. Sin embargo, la mayoría de las grandes organizaciones no publican software interno para ser consumido por otros equipos en la empresa. Esto puede ocurrir porque están demasiado ocupados para proporcionar documentación o no se dan cuenta del valor del proyecto para otros.
+
+Debe estar disponible un repositorio de código fuente interno o público donde se almacene el código fuente, pero los equipos carecen de un proceso para hacer que el software sea consumible por equipos externos.
+
+A medida que una organización crece y se escribe más software interno, el valor de este patrón crece.
+
+## Resistencias
+
+### Difícil para organizaciones que no tienen un sistema CI/CD central
+
+Para las organizaciones que no proporcionan a los ingenieros un sistema CI/CD centralizado, automatizar un proceso de construcción y publicación puede ser un desafío. El equipo puede necesitar implementar su propia herramienta (Jenkins, Drone, etc). Sin un sistema CI/CD, las construcciones y las notas de versión aún se pueden producir, sin embargo, puede requerir una construcción local del software y una carga manual a la herramienta que esté alojando los artefactos de construcción.
+
+### Carga adicional de publicar notas de versión
+
+Además de construir su código fuente, escribir notas de versión puede ser tedioso sin la capacidad de autogenerar una lista de commits de git. Esto quedaría para que alguien lo haga manualmente, además de escribir detalles más generales sobre una versión.
+
+### Mayor dificultad sin una ubicación para alojar artefactos
+
+Si una empresa no proporciona una ubicación centralizada para almacenar artefactos de construcción (jars, módulos npm, etc.) e imágenes de Docker, los ingenieros pueden quedar decidiendo por sí mismos dónde es apropiado almacenar el software versionado. Herramientas como GitHub proporcionan esto para ti, sin embargo, si una empresa no está utilizando una de estas herramientas populares, esto podría suponer una carga.
+
+## Solución
+
+Al proporcionar **notas de versión** claras y un artefacto publicado, aumentas la confianza de las personas en que estás publicando un producto de calidad en el que puede confiar.
+
+Los siguientes son elementos clave para lograr esto:
+
+- Un pipeline CI/CD se encuentra dentro de tu repositorio que [automatiza el proceso de publicación](https://opensource.guide/best-practices/#use-tools-to-automate-basic-maintenance-tasks)
+- Los artefactos de construcción son generados por el sistema CI/CD (binario, imagen de Docker, jar, etc)
+- Las versiones están claramente etiquetadas y marcadas con [versionado semántico](https://github.com/semantic-release/semantic-release)
+- Las versiones incluyen notas sobre Nuevas Características, Corrección de Errores y cualquier "Cambio Importante"
+
+Un buen ejemplo de notas de versión de calidad se puede encontrar [aquí](https://github.com/jaegertracing/jaeger/releases).
+
+## Contexto Resultante
+
+Los equipos que encuentren tu proyecto verán notas de versión publicadas y ganarán confianza en tu herramienta. Los artefactos publicados también facilitan y aceleran el uso de tu producto. Tener procesos bien definidos y visibles como estos también ayuda con la colaboración entre equipos y nuevos contribuyentes. Las personas pueden estar seguras de que sus contribuciones están disponibles y distribuidas en un tiempo razonable con una ruta de uso clara.
+
+Las notas de versión también son una gran oportunidad para [reconocimiento a los participantes](praise-participants.md)! Como sabemos, [la documentación es extremadamente importante](base-documentation.md) para las nuevas personas que buscan involucrarse en tu proyecto. Reconocer a los compañeros externos por sus contribuciones, incluida la documentación y las notas de versión, es una excelente manera de fomentar la comunidad y hacer crecer tu base de usuarios.
+
+## Instancias Conocidas
+
+* Comcast (múltiples proyectos)
+* GitHub (múltiples proyectos)
+
+## Autores
+
+David Grizzanti
+
+## Estado
+
+Estructurado
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/repository-activity-score.md b/translation/es/patterns/repository-activity-score.md
new file mode 100644
index 000000000..7376892b7
--- /dev/null
+++ b/translation/es/patterns/repository-activity-score.md
@@ -0,0 +1,138 @@
+## Title
+
+Puntuación de Actividad del Repositorio
+
+## Patlet
+
+Los contribuidores potenciales quieren encontrar proyectos InnerSource activos que necesiten su ayuda. Al calcular una puntuación de actividad del repositorio para cada proyecto, se puede crear una lista clasificada de proyectos (por ejemplo, en el [Portal InnerSource](innersource-portal.md)), para que los contribuidores potenciales puedan determinar más fácilmente a qué proyecto quieren contribuir.
+
+## Problema
+
+**¿En qué orden** se deben presentar los proyectos InnerSource? Los KPIs típicos de clasificación como *GitHub Stars*, *Número de Forks*, *Número de Commits*, *Líneas de Código*, *Última Actualización* no son suficientes para indicar de manera concisa la actividad de un proyecto.
+
+Los proyectos activos con mucha tracción, pero también los proyectos nuevos y entusiastas que necesitan nuevos contribuidores, deben clasificarse más alto que los proyectos maduros con poca actividad o en modo de mantenimiento.
+
+Se necesita una nueva métrica derivada de varios KPIs para definir una puntuación confiable y versátil del nivel de actividad de un proyecto. Puede usarse para ordenar los proyectos según su nivel de actividad.
+
+## Historia
+
+Cuando InnerSource se practica durante mucho tiempo o se escala más allá de un cierto número de proyectos (digamos 50 para dar un umbral significativo), es difícil encontrar los proyectos InnerSource más populares y activos en ese momento. Los proyectos que existen desde hace mucho tiempo son bien conocidos, pero pueden no ser muy activos. Por otro lado, los proyectos nuevos no tienen una reputación o una comunidad activa todavía.
+
+Una lista de proyectos InnerSource no debe considerarse un recurso estático, sino un lugar emocionante para descubrir y explorar nuevos proyectos activos, al igual que una página de noticias que enumera los temas más interesantes del día primero. Por lo tanto, es beneficioso cuando el orden de los proyectos se actualiza regularmente y cambia según la popularidad y actividad del proyecto.
+
+Estas consideraciones llevaron a un primer prototipo para calcular una puntuación de actividad del repositorio, que funcionó sorprendentemente bien y determina un orden siempre cambiante de proyectos según su actividad.
+
+## Contexto
+
+Descubrir proyectos InnerSource puede facilitarse con el [Portal InnerSource](innersource-portal.md) y el patrón [Gig Marketplace](gig-marketplace.md), o promoviendo proyectos en otros canales de comunicación y plataformas. La puntuación de actividad define un orden predeterminado en el que se presentan los proyectos a la comunidad.
+
+## Resistencias
+
+Los KPIs automatizados que se pueden obtener consultando la API de GitHub son solo una parte de la verdad. ¿Qué pasa con la calidad del código, la disponibilidad de buena documentación o una comunidad activa y servicial que hace que el proyecto sea un lugar divertido para contribuir?
+
+Tales KPIs "suaves" tendrían que agregarse manual o semiautomáticamente al cálculo y la puntuación resultante. Si existen herramientas que proporcionan más contexto para el repositorio, como un informe de cobertura de código, se pueden integrar fácilmente.
+
+## Esquema
+
+
+
+Un enfoque centralizado para calcular y aplicar la puntuación de actividad del repositorio. Para más detalles, ver [Contexto Resultante](#contexto-resultante)
+
+## Soluciones
+
+La puntuación de actividad del repositorio es un valor numérico que representa la actividad (GitHub) de un proyecto InnerSource. Se deriva automáticamente de estadísticas del repositorio como estrellas de GitHub, observadores y forks, y puede enriquecerse con KPIs de otras herramientas o evaluaciones manuales.
+
+Además, considera parámetros de actividad como la última actualización y la fecha de creación del repositorio para dar un impulso a los proyectos jóvenes con mucha tracción. Los proyectos con directrices de contribución, estadísticas de participación activa y problemas (backlog público) también reciben una clasificación más alta.
+
+Todo esto se puede obtener y calcular automáticamente utilizando el conjunto de resultados de la [API de búsqueda de GitHub](https://docs.github.com/en/rest/search#search-repositories) y la [API de estadísticas de GitHub](https://docs.github.com/en/rest/metrics/statistics). Otros sistemas de control de versiones de código como Bitbucket, GitLab, Gerrit también se pueden integrar si hay una API similar disponible.
+
+El código a continuación asume que la variable `repo` contiene una entidad obtenida de la API de `búsqueda` de GitHub y el objeto `participation` contiene una entidad de la API de `stats/participation` de GitHub.
+
+Se pueden hacer ajustes manuales según los KPIs cualitativos (ver [Resistencias](#resistencias)) si es necesario.
+
+``` javascript
+// calcular una puntuación virtual de InnerSource a partir de estrellas, observadores, commits y problemas
+function calculateScore(repo) {
+ // la puntuación inicial es 50 para dar a los repositorios activos con bajos KPIs de GitHub (forks, observadores, estrellas) un mejor punto de partida
+ let iScore = 50;
+ // ponderación: los forks y observadores cuentan más, luego las estrellas, agregar una pequeña puntuación para problemas abiertos también
+ iScore += repo.forks_count * 5;
+ iScore += (repo.subscribers_count ? repo.subscribers_count : 0);
+ iScore += repo.stargazers_count / 3;
+ iScore += repo.open_issues_count / 5;
+
+ // actualizado en los últimos 3 meses: agrega un multiplicador de bonificación entre 0..1 a la puntuación general (1 = actualizado hoy, 0 = actualizado hace más de 100 días)
+ let iDaysSinceLastUpdate = (new Date().getTime() - new Date(repo.updated_at).getTime()) / 1000 / 86400;
+ iScore = iScore * ((1 + (100 - Math.min(iDaysSinceLastUpdate, 100))) / 100);
+
+ // evaluar estadísticas de participación para los últimos 3 meses
+ repo._InnerSourceMetadata = repo._InnerSourceMetadata || {};
+ if (repo._InnerSourceMetadata.participation) {
+ // commits promedio: agrega un multiplicador de bonificación entre 0..1 a la puntuación general (1 = >10 commits por semana, 0 = menos de 3 commits por semana)
+ let iAverageCommitsPerWeek = repo._InnerSourceMetadata.participation.slice(-13).reduce((a, b) => a + b) / 13;
+ iScore = iScore * ((1 + (Math.min(Math.max(iAverageCommitsPerWeek - 3, 0), 7))) / 7);
+ }
+
+ // cálculo de impulso:
+ // todos los repositorios actualizados en el último año recibirán un impulso máximo de 1000 que disminuye según los días desde la última actualización
+ let iBoost = (1000 - Math.min(iDaysSinceLastUpdate, 365) * 2.74);
+ // reducir gradualmente el impulso según la fecha de creación del repositorio para mezclar con estadísticas de "compromiso real"
+ let iDaysSinceCreation = (new Date().getTime() - new Date(repo.created_at).getTime()) / 1000 / 86400;
+ iBoost *= (365 - Math.min(iDaysSinceCreation, 365)) / 365;
+ // agregar impulso a la puntuación
+ iScore += iBoost;
+ // dar a los proyectos con una descripción significativa un impulso estático de 50
+ iScore += (repo.description?.length > 30 || repo._InnerSourceMetadata.motivation?.length > 30 ? 50 : 0);
+ // dar a los proyectos con directrices de contribución (archivo CONTRIBUTING.md) un impulso estático de 100
+ iScore += (repo._InnerSourceMetadata.guidelines ? 100 : 0);
+ // construir una escala logarítmica para proyectos muy activos (sin límite pero estabilizándose alrededor de 5000)
+ if (iScore > 3000) {
+ iScore = 3000 + Math.log(iScore) * 100;
+ }
+ // la puntuación final es un valor redondeado que comienza desde 0 (restar el valor inicial)
+ iScore = Math.round(iScore - 50);
+ // agregar puntuación a los metadatos sobre la marcha
+ repo._InnerSourceMetadata.score = iScore;
+
+ return iScore;
+}
+```
+
+## Contexto Resultante
+
+Los contribuidores son libres de dedicar parte de su tiempo a proyectos InnerSource. Pueden elegir contribuir a un proyecto del que dependen para el trabajo en su equipo regular de todos modos. Sin embargo, también pueden optar por contribuir a algo completamente diferente, basado en sus intereses y objetivos de desarrollo personal.
+
+Los proyectos pueden ordenarse y presentarse por puntuación de actividad del repositorio para establecer un orden relevante en un portal que presenta proyectos a nuevos contribuidores potenciales. La puntuación se puede calcular sobre la marcha o en un trabajo en segundo plano que evalúa todos los proyectos regularmente y almacena una lista de resultados.
+
+Un rastreador que busca regularmente todos los repositorios InnerSource (por ejemplo, etiquetados con un cierto [tema](https://github.com/topics) en GitHub) también puede ser una adición útil. Proporciona una lista clasificada de proyectos que se puede usar como entrada para herramientas como el [Portal InnerSource](innersource-portal.md), un motor de búsqueda o un chatbot interactivo.
+
+## Razonamiento
+
+La puntuación de actividad del repositorio es un cálculo simple basado en la API de GitHub. Puede ser completamente automatizado y fácilmente adaptado a nuevos requisitos.
+
+## Instancias Conocidas
+
+* Utilizado en el portal de proyectos InnerSource de SAP para definir el orden predeterminado de los proyectos InnerSource. Fue creado por primera vez en julio de 2020 y se ajusta y actualiza con frecuencia desde entonces. Cuando se propuso a InnerSource Commons en julio de 2020, surgió este patrón. También ver [Michael Graf & Harish B (SAP) en ISC.S11 - El Camino Inesperado de Aplicar Patrones InnerSource](https://www.youtube.com/watch?v=6r9QOw9dcQo&list=PLCH-i0B0otNQZQt_QzGR9Il_kE4C6cQRy&index=6).
+* Airbus se inspiró mucho en este patrón para crear una "puntuación InnerSource" que combina la puntuación de actividad junto con verificaciones de la [Documentación Base Estándar](./base-documentation.md) y la [Licencia InnerSource](./innersource-license.md).
+
+## Estado
+
+* Estructurado
+
+## Autor(es)
+
+[Michael Graf (SAP)](mailto:mi.graf@sap.com)
+
+## Agradecimientos
+
+¡Gracias a la Comunidad de InnerSource Commons por sus consejos rápidos y una gran cantidad de aportes útiles para alimentar este patrón! Especialmente:
+
+* Johannes Tigges
+* Sebastian Spier
+* Maximilian Capraro
+* Tim Yao
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/review-committee.md b/translation/es/patterns/review-committee.md
new file mode 100644
index 000000000..8d78a9773
--- /dev/null
+++ b/translation/es/patterns/review-committee.md
@@ -0,0 +1,63 @@
+## Title
+
+Comité de Revisión
+
+## Patlet
+
+El modelo de trabajo InnerSource es un cambio radical respecto a los enfoques más tradicionales, tanto para desarrolladores como para gerentes. Al establecer un comité de revisión como puente entre la iniciativa InnerSource y todos los gerentes senior de las unidades de negocio participantes, es más probable que estos últimos se familiaricen con la iniciativa y la apoyen, ya que les proporciona cierto nivel de supervisión y control sin fomentar la microgestión.
+
+## Problema
+
+Los gerentes percibirán el modelo de trabajo InnerSource como un cambio radical respecto a los modelos de trabajo a los que están acostumbrados y con los que tienen experiencia. Como consecuencia, es probable que rechacen o microgestionen la iniciativa InnerSource para tratar de minimizar el riesgo percibido de este cambio. En ambos casos, los beneficios de InnerSource no se pueden materializar. Como resultado, InnerSource se desacredita posteriormente.
+
+## Contexto
+
+La empresa A quiere introducir su primera iniciativa InnerSource. La mayoría de los gerentes de la empresa A no están familiarizados con el modelo de trabajo de código abierto y, en cambio, están acostumbrados a la gestión jerárquica y centralizada.
+
+## Resistencias
+
+ - Cuanto más control percibido tenga un gerente sobre el trabajo en la iniciativa InnerSource, más probable es que apoye la iniciativa sin experiencia previa.
+ - Cuanta menos experiencia tenga un gerente con el modelo de trabajo de código abierto, más probable es que quiera controlar el riesgo de la iniciativa.
+ - Cuanto más pesadas y microgerenciales sean las iniciativas InnerSource, menos probable es que el modelo de trabajo de código abierto se pueda adoptar en la medida necesaria. Como resultado, no se realizarán los beneficios de InnerSource.
+
+## Solución
+
+- Establecer un comité de revisión compuesto por gerentes senior de todas las unidades de negocio que participan en la iniciativa InnerSource.
+- Los miembros del comité de revisión tienen la autoridad para decidir en grupo qué proyectos InnerSource recibirán apoyo en general y financiación en particular.
+- Los miembros del comité pueden seleccionar a solicitantes antes de las reuniones para que presenten su proyecto InnerSource durante las sesiones del comité.
+- Los líderes de los proyectos InnerSource actualmente financiados por el comité de revisión están obligados a informar sobre el estado de su proyecto durante cada reunión del comité de revisión.
+- Los miembros del comité de revisión están obligados a proporcionar comentarios constructivos tanto a los nuevos solicitantes como a los líderes de proyectos actuales durante las reuniones del comité de revisión.
+- A cada proyecto InnerSource se le debe dar la oportunidad de reaccionar a los comentarios recibidos en una sesión del comité de revisión hasta la siguiente sesión para evitar cerrar el proyecto prematuramente.
+- Un líder de proyecto InnerSource también puede presentar la moción de ser cerrado por su propia iniciativa en un comité de revisión. El comité de revisión debe decidir si las unidades de negocio que utilizan el software necesitan tiempo para implementar medidas que aseguren que el desarrollo y/o mantenimiento del código continúe hasta que se encuentre una solución alternativa al desarrollo por la comunidad InnerSource (si es relevante para el negocio o crítico para la misión).
+- El comité de revisión debe reunirse regularmente. Una cadencia de dos reuniones por año ha demostrado ser exitosa.
+- El comité de revisión puede volverse opcional si InnerSource ha sido ampliamente adoptado y comprendido por la organización.
+
+
+
+## Contexto Resultante
+
+- Los gerentes aplican una herramienta con la que se sienten cómodos a InnerSource para obtener la cantidad necesaria de información y control sobre el funcionamiento interno de la iniciativa InnerSource. Esta familiaridad hará que sea más probable que aprueben la iniciativa InnerSource y otorguen el grado de libertad requerido para los proyectos InnerSource.
+- Los desarrolladores aún pueden autoorganizarse en un grado suficiente. La microgestión no ocurre porque el comité de revisión se reúne con poca frecuencia.
+
+## Instancias Conocidas
+
+* BIOS en Robert Bosch GmbH (en las primeras etapas de adopción, solo - 2009-2012)
+
+## Estado
+
+* Estructurado
+* _Finalizado y Revisado_ a partir del 31/08/17.
+
+## Autores
+
+- Georg Grütter, Robert Bosch GmbH
+- Diogo Fregonese, Robert Bosch GmbH
+
+## Alias
+
+Cheese Interface
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/service-vs-library.md b/translation/es/patterns/service-vs-library.md
new file mode 100644
index 000000000..948ac3206
--- /dev/null
+++ b/translation/es/patterns/service-vs-library.md
@@ -0,0 +1,81 @@
+## Title
+
+Servicio vs Librería
+
+## Patlet
+
+Los equipos en un entorno DevOps pueden mostrarse reacios a trabajar a través de los límites del equipo en bases de código comunes debido a la ambigüedad sobre quién será responsable de responder ante la interrupción del servicio. La solución es entender que, en muchos casos, se puede desplegar el mismo servicio en entornos independientes con rutas de escalamiento separadas para manejar interrupciones del servicio, o bien extraer gran parte del código compartido en una librería y colaborar en ella.
+
+## Problema
+
+Cuando los equipos trabajan en un entorno DevOps, los desarrolladores son responsables de una característica de principio a fin: desde el cliente hasta el despliegue, mantenimiento y soporte. Esto plantea un desafío al trabajar a través de los límites del equipo: las cadenas de escalamiento pueden no ser las mismas para los errores que ocurren en cualquiera de los equipos. Acoplar el código fuente y el despliegue deja a los equipos con la pregunta de quién es responsable del soporte en caso de errores. Como resultado, los equipos son reacios a unir fuerzas incluso si hay una superposición significativa en los requisitos.
+
+## Contexto
+
+* Los equipos están trabajando en un entorno de microservicios.
+* Están organizados en equipos DevOps completamente funcionales: cada equipo es responsable de sus contribuciones de principio a fin, incluyendo mantenimiento, soporte y atención al cliente.
+* Un equipo tiene la tarea de proporcionar un servicio a sus clientes downstream que es bastante similar a un servicio existente construido por otro equipo.
+
+## Resistencias
+
+* Las rutas de escalamiento organizacional pueden ser diferentes para cada uno de los equipos.
+* Los miembros de cada equipo pueden no estar dispuestos a responder al soporte en caso de errores que no afectan a sus propios clientes downstream.
+* Los niveles de severidad para los mismos tipos de errores pueden ser diferentes a través de los límites del equipo debido a diferentes definiciones de SLA por equipo/relación con el cliente.
+* Los equipos pueden tener diferentes restricciones de seguridad o regulatorias que gobiernan sus despliegues.
+
+## Soluciones
+
+Desacoplar la responsabilidad del código fuente del despliegue: ambos equipos trabajan para identificar exactamente dónde hay superposición y sinergias.
+
+Solo el código fuente compartido se mantiene como parte del proyecto InnerSource con responsabilidad compartida. El código compartido debe ser coherente en que incluye todo el código de prueba (incluyendo pruebas de integración si están disponibles) y tanto de la tubería de CI como sea posible para facilitar la validación de contribuciones.
+
+Desacoplar las configuraciones de despliegue y las tuberías de CI del negocio real.
+Establecer un segundo despliegue del servicio para el segundo equipo.
+
+Tratar la base común como una librería que es utilizada por ambos equipos con propiedad compartida del código.
+
+Las configuraciones de despliegue pueden incluirse como proyectos separados en su portafolio de InnerSource para permitir a los equipos discutir/colaborar o a un nuevo equipo copiarlas.
+
+## Contexto Resultante
+
+Los equipos están dispuestos a colaborar, beneficiándose de compartir el trabajo de implementar la lógica de negocio.
+
+Un servicio que originalmente fue construido específicamente para funcionar en un entorno se convierte en una solución más general basada en un requisito de negocio específico.
+
+Ambos equipos llegan a conocer su respectiva política de escalamiento y configuración de despliegue, identificando potencialmente mejoras para su propia configuración.
+
+La probabilidad de que se necesiten y realicen cambios en el código fuente compartido aumenta, lo que lleva a más oportunidades frecuentes para refinar, mejorar y optimizar la implementación.
+
+Fomenta la estandarización operativa incremental en el empaquetado de lanzamientos, telemetría, puntos de salud/preparación, etc., a medida que los equipos se dan cuenta de que pueden mantener esto de manera más eficiente en el código compartido si acuerdan convenciones estándar.
+
+## Ver también
+
+Relacionado con este patrón está el patrón [Garantía de 30 Días](30-day-warranty.md) que toma un enfoque diferente para resolver las resistencias descritas anteriormente.
+
+## Instancias Conocidas
+
+* Europace AG
+* Flutter Entertainment: Una [aplicación InnerSource de Flutter](https://innersource.flutter.com/sdlc/) tiene un repositorio de "servicio" de código compartido con contribución entre equipos y una tubería de CI para construir y publicar un artefacto de lanzamiento compartido. Cada equipo adoptante tiene un repositorio de "configuración de despliegue" que define su propio despliegue. Esto es impulsado por diferentes requisitos regulatorios, prácticas de gestión de servicios e incidentes y conjuntos de habilidades de infraestructura en diferentes áreas del negocio.
+* WellSky (ver [InnerSource Continuo en Producción - 5 Veces](https://www.youtube.com/watch?v=loSTj4yIG9Q&pp=ygUkY29udGludW91cyBpbm5lcnNvdXJjZSBpbiBwcm9kdWN0aW9u))
+
+## Estado
+
+* Estructurado
+
+## Autor(es)
+
+* Isabel Drost-Fromm
+* Rob Tuley
+
+## Agradecimientos
+
+Gracias a Tobias Gesellchen por la revisión interna en Europace AG.
+
+## Alias
+
+Servicio vs. librería: Es InnerSource, no despliegue interno
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/start-as-experiment.md b/translation/es/patterns/start-as-experiment.md
new file mode 100644
index 000000000..84ea45fe0
--- /dev/null
+++ b/translation/es/patterns/start-as-experiment.md
@@ -0,0 +1,80 @@
+## Title
+
+Comenzar como Experimento
+
+## Patlet
+
+Inicia tu iniciativa InnerSource como un experimento con tiempo limitado para facilitar que los gerentes no familiarizados con InnerSource respalden y apoyen la iniciativa.
+
+## Problema
+
+Se considera una iniciativa InnerSource pero no se inicia porque la gerencia tiene dudas sobre su resultado y, en consecuencia, no está dispuesta a comprometerse con una inversión.
+
+## Contexto
+
+La empresa está considerando InnerSource para aumentar la eficiencia de la colaboración en proyectos de software. Sin embargo, la mayoría de los gerentes no están familiarizados con el modelo de trabajo de Open Source y, en cambio, están acostumbrados a un estilo de gestión jerárquico y de control de arriba hacia abajo. La idea de InnerSource es muy popular entre los desarrolladores de software de la empresa, porque muchos desarrolladores usan o están desarrollando activamente software de Open Source.
+
+## Resistencias
+
+- Los gerentes querrán validar las afirmaciones de mejora de la colaboración a través de InnerSource antes de hacer una inversión a largo plazo. Esto generalmente implica medir las mejoras.
+- Si la iniciativa InnerSource probablemente tendrá una gran aceptación entre los desarrolladores y si muchos proyectos dependerán de ella, una decisión de cerrarla será muy impopular y, por lo tanto, difícil de tomar. La pérdida de control percibida podría disuadir a algunos gerentes de siquiera comenzar con InnerSource.
+- Implementar modelos de trabajo al estilo InnerSource a menudo es un cambio radical con respecto a los modelos de trabajo practicados anteriormente. Por lo tanto, es probable que los procesos obligatorios existentes ya no sean aplicables y que falten los procesos de gobierno apropiados. Esto podría llevar a operar en un vacío regulatorio, e incluso legal. Ejemplos son las regulaciones relacionadas con impuestos y control de exportaciones en grandes corporaciones con múltiples entidades legales en múltiples países.
+
+## Solución
+
+Declara la iniciativa InnerSource como un experimento con tiempo limitado. Define y comunica los criterios para que los proyectos se unan al experimento InnerSource. Elige criterios que maximicen las posibilidades de construir una comunidad saludable. Un conjunto de criterios es bueno si los conocimientos generados a partir de él en el contexto del experimento pueden aplicarse intuitivamente a contextos que involucren otros posibles proyectos InnerSource.
+
+Ejemplos de tales criterios son:
+
+- Suficiente distribución geográfica de desarrolladores
+- Suficiente mezcla departamental de desarrolladores
+- Apertura de comunicación dentro de la comunidad
+- Trayectoria profesional basada en el mérito dentro de la comunidad
+- Toma de decisiones democrática dentro de la comunidad
+
+Considera designar el final del experimento como un punto de _pivot_, _cambio_ o _pausa_ para reevaluar. También considera establecer un [Comité de Revisión](review-committee.md) para aumentar las posibilidades de aceptación de la gerencia a través de la participación. Dependiendo de la cultura de la empresa, podría ser útil acompañar el experimento con métricas apropiadas [Primeros Pasos con Métricas](../../../patterns/1-initial/introducing-metrics-in-innersource.md). Si los proyectos en el experimento no tienen un impacto directo en los ingresos de la empresa, considera introducir [Valoración de Proyectos Transversales](crossteam-project-valuation.md) para resaltar sus contribuciones de valor.
+
+## Contexto Resultante
+
+Los gerentes pueden iniciar InnerSource por las siguientes razones:
+
+- La configuración experimental reduce la necesidad de que los gerentes examinen los indicadores del programa InnerSource de la misma manera que lo harían con los proyectos típicos.
+- La posibilidad de fracaso del experimento se entiende y se acepta. El riesgo personal para los gerentes que apoyan se minimiza.
+- Incluso en caso de fracaso, la configuración asegura que la empresa aprenderá del experimento.
+- En caso de éxito, los datos recopilados durante el experimento permitirán a los gerentes comprometerse a largo plazo con InnerSource.
+
+Los participantes en el experimento InnerSource ahora son conscientes de que deben demostrar a la gerencia que InnerSource ofrece los beneficios prometidos. Por lo tanto, ayudará a enfocar el trabajo en aquellas actividades que proporcionen el valor más demostrable, aumentando así las posibilidades de éxito.
+
+Finalmente, comenzar como un experimento facilita mucho eludir las regulaciones y resistencias como las políticas de herramientas y procesos que podrían disminuir las posibilidades de éxito.
+
+## Patrones Relacionados
+
+- _Trial Run_ (del libro [Fearless Change](https://fearlesschangepatterns.com/))
+
+## Instancias Conocidas
+
+- Robert Bosch GmbH (desarrollo de software distribuido globalmente)
+- Airbus: la comunidad de ciencia de datos colaboró en librerías compartidas de Python que eventualmente llevaron a un esquema InnerSource en todo el grupo para cualquier software.
+
+## Estado
+
+* Estructurado
+
+## Autor
+
+- Georg Grütter (Robert Bosch GmbH)
+
+## Agradecimientos
+
+- Jason Zink (Robert Bosch GmbH)
+- Diogo Fregonese (Robert Bosch GmbH)
+- Robert Hansel (Robert Bosch GmbH)
+- Hans Malte Kern (Robert Bosch GmbH)
+- Russ Rutledge (Nike)
+- Tim Yao (Nokia)
+- Clint Cain (Optum)
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/transparent-cross-team-decision-making-using-rfcs.md b/translation/es/patterns/transparent-cross-team-decision-making-using-rfcs.md
new file mode 100644
index 000000000..b853e9fab
--- /dev/null
+++ b/translation/es/patterns/transparent-cross-team-decision-making-using-rfcs.md
@@ -0,0 +1,133 @@
+## Title
+
+Toma de Decisiones Transparente Entre Equipos usando RFCs
+
+## Patlet
+
+Los proyectos InnerSource que buscan alcanzar altas tasas de participación y tomar las mejores decisiones posibles para todos los involucrados. Por ello necesitan encontrar formas de crear sistemas participativos a lo largo de todo el ciclo de vida del software. La publicación de documentos internos de Solicitud de Comentarios (RFC-Request for Comments) permite discusiones desde el inicio del proceso de diseño y aumenta las probabilidades de construir soluciones con un alto grado de compromiso de todas las partes involucradas.
+
+## Problema
+
+Para que un proyecto InnerSource prospere, necesita una cantidad sustancial de contribuyentes. Estos contribuyentes (o equipos) pueden tener diferentes requisitos para el proyecto dado. Por ejemplo, pueden querer agregar características al proyecto que no sean compatibles entre sí o que conduzcan a una sobrecarga no saludable en la arquitectura.
+
+Descubrir tales desacuerdos o malentendidos tarde en el proceso, por ejemplo, una vez que el software ya ha sido construido, es muy costoso. Estos desacuerdos pueden llevar a frustraciones por parte de todos los involucrados e incluso pueden ser perjudiciales para la salud de la cultura de colaboración en el proyecto. Una situación común donde surge tal desacuerdo es una solicitud de cambio (pull request) que está abierta durante mucho tiempo porque el autor de la solicitud de cambio y los mantenedores del proyecto esencialmente no están de acuerdo en que el cambio propuesto deba realizarse.
+
+Para un proyecto InnerSource, esta situación ocurre con más frecuencia cuando el proyecto es mantenido por múltiples equipos en la empresa, es decir, propiedad compartida.
+
+## Historia
+
+Un proyecto, o aplicación compuesta por múltiples proyectos, es mantenido por varios equipos diferentes, con cada equipo siendo dueño de diferentes áreas del proyecto o aplicación. Estos equipos hacen contribuciones InnerSource a las áreas de los demás, pero los cambios más grandes y transversales solo son impulsados por los líderes técnicos de los equipos trabajando juntos, o no ocurren en absoluto. Esto resulta en que la mayoría de los ingenieros no pueden efectuar cambios a gran escala y transversales, reduciendo la innovación y las oportunidades de colaboración.
+
+Al implementar un proceso y una plantilla para RFCs, los equipos e individuos están empoderados para proponer cambios grandes y transversales a través de un proceso de toma de decisiones transparente, con consultas entre equipos realizadas de manera asincrónica. Esto resulta en una mayor innovación, una colaboración más estrecha y una mayor difusión del conocimiento. Esto depende del compromiso de todas las disciplinas en todos los niveles y de un entorno de seguridad psicológica para que las personas puedan proponer y debatir ideas abiertamente.
+
+Como con cualquier proceso, este debe mejorarse continuamente. Puede ser necesario realizar cambios en la plantilla o el proceso de RFC para garantizar que sea inclusivo, colaborativo y efectivo.
+
+## Contexto
+
+- propiedad compartida por muchos equipos de un proyecto InnerSource
+- las decisiones de diseño generales no pueden ser tomadas por un cuerpo central todo el tiempo (por ejemplo, un grupo de arquitectos) ya que no tienen suficiente tiempo ni conocimiento específico del dominio para tomar buenas decisiones en todos los casos
+- varios tipos de usuarios tienen aportes sobre la dirección que está tomando un proyecto determinado. Dichos usuarios pueden ser: Desarrolladores, Propietarios de Producto, Gerentes de Producto, etc.
+- las decisiones deben tomarse de manera asincrónica, al menos en parte, ya que no es factible convocar reuniones sincrónicas frecuentes con todos los participantes
+- hay un deseo de documentar las decisiones tomadas, es decir, asegurarse de que se hagan por escrito, en lugar de solo verbalmente
+
+## Resistencias
+
+- la mayoría de las veces, las partes involucradas quieren tomar una decisión bastante rápido (por ejemplo, el tiempo de diseño inicial es bastante limitado)
+- escribir las cosas (sin ya implementarlas) a menudo es una habilidad nueva para muchas de las personas involucradas
+
+## Esquema
+
+
+
+## Soluciones
+
+Elegimos un proceso similar a RFC para aumentar la transparencia de nuestro proceso de toma de decisiones entre equipos (ver también las [Solicitudes de Comentarios][requests-for-comments] de IETF).
+
+Elementos importantes de la solución son:
+
+- Una descripción de cuándo publicar un RFC (y cuándo no)
+- Una plantilla para documentos RFC
+ - Debe provocar que el autor del RFC considere su propuesta desde múltiples ángulos
+ - Debe solicitar tanto una visión general accesible de alto nivel como una explicación detallada en profundidad
+- Un proceso ligero y bien conocido que rodea a los RFCs, por ejemplo
+ - Cómo publicar un RFC y compartirlo con todos los interesados (por ejemplo, Slack, lista de correo)
+ - Cómo recopilar comentarios para el RFC
+ - Cómo trabajar en los comentarios
+ - Cómo llevar el RFC hacia una conclusión o decisión (por ejemplo, mantenedores nominados relevantes para aprobar)
+ - Herramientas apropiadas elegidas (por ejemplo, los no ingenieros pueden no tener acceso a herramientas de control de versiones)
+- Un compromiso para iterar en la plantilla y el proceso de RFC
+
+### Ejemplos/Plantillas
+
+- [Rust][rust] es un buen ejemplo de código abierto de plantilla y proceso de RFC, y ha sido la base para muchos otros procesos de RFC.
+- [Plantilla generalizada de RFC de BBC iPlayer & Sounds](../templates/rfc.md), originalmente basada en la plantilla de [Rust][rust]
+- [jakobo/rfc](https://github.com/jakobo/rfc) describe cómo configurar un proceso de RFC interno de la empresa. Contiene una [explicación detallada](https://github.com/jakobo/rfc/blob/master/text/0001-using_rfcs.md) de por qué los RFCs son importantes y una [plantilla de RFC](https://github.com/jakobo/rfc/blob/master/0000-template.md) para ayudarte a escribir tu primer RFC. Contiene información como motivación/razón, guía de implementación, una implementación de referencia, desventajas, así como alternativas al enfoque de RFC. Bonus: La descripción en sí misma es un RFC, por lo que mientras la lees ya estás obteniendo una idea de cómo funciona un RFC.
+
+## Contexto Resultante
+
+Implementar un proceso similar a RFC ha demostrado ser valioso, ya que hace que el proceso de toma de decisiones entre equipos sea más transparente para todos, permitiendo que todas las voces sean escuchadas.
+
+Efectos positivos observables:
+
+- **democratización del proceso de toma de decisiones** para decisiones que impactan a muchos equipos (también descargando a los líderes de equipo de esa carga)
+- **un método de comunicación asincrónica abierta** que funciona bien entre múltiples equipos y geografías
+- **empodera a individuos y equipos** para efectuar cambios a gran escala
+- **registro de decisiones tomadas** para que las personas puedan consultarlas para obtener contexto
+- **aumenta el impacto de los ingenieros experimentados** ya que pueden contribuir a soluciones de manera asincrónica y remota, en lugar de necesitar estar presentes en una reunión
+- **alineación de terminología** por ejemplo, al explicar nuestra terminología de pruebas como "¿qué es una prueba de sistema?"
+- **alineación de procesos** por ejemplo, al explicar el proceso de soporte fuera de horario
+- **mayor claridad de pensamiento**, ya que escribir un RFC hace que el autor se desafíe a sí mismo más de lo que normalmente lo haría
+
+El enfoque de RFC también tiene riesgos que queremos señalar:
+
+- ¡No siempre funciona! por ejemplo, algunas personas pueden seguir argumentando en contra de una decisión que ya se tomó a través de un RFC. Sin embargo, tener el proceso de toma de decisiones por escrito sigue siendo beneficioso en estos escenarios, ya que puedes señalar cuándo y por qué se tomó una decisión determinada.
+- Escribir propuestas de diseño (arquitectura, protocolos, etc.) por adelantado tiene un elemento de diseño en cascada que no se ajusta al enfoque de desarrollo iterativo que muchos equipos de desarrollo prefieren. Recuerda: "Software funcionando sobre documentación exhaustiva" ([Manifiesto Ágil](https://agilemanifesto.org/)). El proceso de RFC debe ser lo más ligero posible.
+- Un RFC puede volverse grande y demasiado complicado. Esto a menudo se muestra en largos hilos de comentarios y discusiones que lo rodean. En esas situaciones, podemos decidir complementar el RFC con comunicación sincrónica, como un grupo de trabajo y reuniones en persona. Pero aún se ahorra tiempo, ya que las personas pueden leer el RFC antes de la reunión en lugar de tener toda la información compartida durante la reunión.
+
+## Justificación
+
+Los RFCs se han demostrado a sí mismos en el mundo del código abierto durante muchos años. Esto es cierto tanto para Internet en su conjunto, donde los RFCs han sido fundamentales en el desarrollo de estándares (ver [30 Años de RFCs][30-years-of-rfcs]), como para otros proyectos de código abierto que han adaptado este método para promover la toma de decisiones transparente en su comunidad (por ejemplo, [RUST][rust], [ZeroMQ][zeromq]).
+
+En el contexto de InnerSource, otras empresas también han compartido sus experiencias con enfoques similares a RFC, como [Uber][uber] y [Europace][europace].
+
+También para la toma de decisiones fuera de las decisiones de diseño de software puro, los modelos de toma de decisiones transparentes pueden ser efectivos, por ejemplo, al trabajar hacia una Organización Abierta. Para un ejemplo, vea el [Marco de Decisión Abierta][open-decision-framework] de Red Hat (lanzado públicamente el 7 de junio de 2016).
+
+## Instancias Conocidas
+
+- **BBC iPlayer & Sounds** - Como se presentó en el ISC Fall Summit 2020 [Usando RFCs Internos para Mejorar la Colaboración][bbc].
+- **Europace** - Como se describe en Open Organization: [Estableciendo estándares y mejores prácticas entre equipos de manera abierta][europace].
+- **Uber** - Según esta publicación de blog de Gergely Orosz: [Escalando Equipos de Ingeniería a través de RFCs: Escribiendo las Cosas][uber].
+- **Google Design Docs** - Como se describe en esta publicación de blog de Malte Ubl [Documentos de Diseño en Google][google]
+- **DAZN** (10/2021) - Una forma en que DAZN toma decisiones técnicas es a través de RFCs. Los RFCs se utilizan para decisiones que se aplican solo a procesos de ingeniería a nivel general. Los RFCs viven en un repositorio de GitHub, y los estándares técnicos se adoptan gradualmente dentro de sus herramientas y por sus ingenieros. Cualquier ingeniero puede presentar un RFC y todos los ingenieros pueden votar. Si los votos a favor superan a los votos en contra, el RFC se adopta. Vale la pena señalar que el proceso de votación de RFC aún no ha sido "probado bajo estrés" por decisiones controvertidas. - Como se describe en esta publicación de blog de Lou Bichard: [Construyendo un Equipo de DX: Lecciones Aprendidas][dazn]
+- **SAP** (03/2024) - SAP tiene un proceso maduro asistido por herramientas para la revisión de documentos entre equipos. Se utiliza principalmente para la revisión de Registros de Decisiones de Arquitectura (ADR) que se originan en el trabajo entre equipos realizado en el modelo de colaboración de Arquitectura de Producto Cruzado. Algunas diferencias de implementación notables de este patrón: El proceso de revisión no está fácilmente disponible para decisiones en proyectos pequeños. Además, los documentos no están restringidos solo a proyectos InnerSource. - Como se describe en la publicación de blog [Arquitectura de Producto Cruzado: Abrazando la Ley de Conway para una Mejor Arquitectura de Software][sap-cpa].
+
+## Estado
+
+Estructurado
+
+## Autor(es)
+
+- Tom Sadler
+- Sebastian Spier
+
+## Aliases
+
+- [Documentos de Diseño][google]
+- Registro de Decisiones de Arquitectura (ADRs) - No necesariamente un alias directo, ya que a veces pueden usarse de manera muy diferente, por ejemplo, RFCs para buscar aportes y construir consenso, ADRs para registrar decisiones y detalles de implementación
+
+[requests-for-comments]: https://en.wikipedia.org/wiki/Request_for_Comments
+[30-years-of-rfcs]: https://www.rfc-editor.org/rfc/rfc2555.txt
+[rust]: https://github.com/rust-lang/rfcs
+[zeromq]: https://rfc.zeromq.org
+[uber]: https://blog.pragmaticengineer.com/scaling-engineering-teams-via-writing-things-down-rfcs/
+[europace]: https://github.com/open-organization/open-org-distributed-work-guide/blob/master/drostfromm-remote-first-through-openess.md#setting-cross-team-standards-and-best-practices-in-the-open
+[open-decision-framework]: https://www.redhat.com/en/about/press-releases/red-hat-releases-open-decision-framework-spur-transparent-and-inclusive-leadership
+[bbc]: https://www.youtube.com/watch?v=U6zlghE0HcE
+[google]: https://www.industrialempathy.com/posts/design-docs-at-google/
+[dazn]: https://medium.com/dazn-tech/building-a-dx-team-lessons-learned-4a66446088bc
+[sap-cpa]: https://community.sap.com/t5/technology-blogs-by-sap/cross-product-architecture-embracing-conway-s-law-for-better-software/ba-p/13648600
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/patterns/trusted-committer.md b/translation/es/patterns/trusted-committer.md
new file mode 100644
index 000000000..123bfa4e8
--- /dev/null
+++ b/translation/es/patterns/trusted-committer.md
@@ -0,0 +1,135 @@
+## Title
+
+Trusted Committer
+
+## Patlet
+
+Muchos proyectos InnerSource se encontrarán en una situación donde reciben constantemente retroalimentación, funcionalidades y correcciones de errores de los contribuidores. En estas situaciones, los mantenedores del proyecto buscan formas de reconocer y recompensar el trabajo del contribuidor más allá de las contribuciones individuales.
+
+## Problema
+
+- Los mantenedores del proyecto buscan formas de escalar su capacidad para dar soporte a un proyecto
+- Los mantenedores del proyecto buscan formas de prolongar el valor entregado por un proyecto
+- Los mantenedores del proyecto quieren recompensar visiblemente a los contribuidores frecuentes y empoderarlos para amplificar su contribución de valor
+- Falta de mecanismos y lenguaje para reconocer contribuciones entre equipos dentro de una organización
+
+## Contexto
+
+- Eres el mantenedor de una librería, servicio o recurso compartido entre equipos
+- Recibes contribuciones regularmente
+- Recibes solicitudes de funcionalidades regularmente
+- Recibes solicitudes de corrección de errores regularmente
+- Hay contribuidores motivados que buscan desarrollar experiencia a través de proyectos InnerSource
+
+## Resistencias
+
+- Durante el ciclo de vida de un proyecto, el enfoque de los mantenedores puede cambiar para acomodar las prioridades cambiantes del negocio
+- Los contribuidores buscan reconocimiento visible de sus contribuciones, demostrando valor
+- Mantener un proyecto de complejidad razonable es agotador para un equipo pequeño
+- Desarrollar funcionalidades del proyecto a escala es agotador para un equipo pequeño
+
+## Solución
+
+### Definiendo el Rol de Trusted Committer para un Proyecto
+
+Las responsabilidades de un Trusted Committer depende de cada proyecto y sus mantenedores. Asegúrate de documentar dentro del proyecto el alcance de tu rol de Trusted Committer. Una documentación clara establece expectativas para los nuevos miembros de la comunidad y establece el rol para futuros candidatos.
+
+Las siguientes son algunas pautas para identificar un posible Trusted Committer:
+
+* Un participante activo en los canales de la comunidad (Slack, triage de issues en JIRA, etc.) se convierte en un Trusted Committer, formalizando así su rol en el soporte de la comunidad.
+* Alguien que frecuentemente envía código, documentación u otros cambios en el repositorio. Comienza incluyendo a esta persona en los pull requests. Si están participando activamente en los pull requests, considera acercarte a ellos sobre oportunidades para una mayor colaboración en el proyecto.
+
+### Formalizando Trusted Committers
+
+El primer paso es acercarse a los candidatos sobre convertirse en un Trusted Committer. Los mantenedores deben educar a los candidatos sobre el rol de un Trusted Committer. No hay expectativa de que los candidatos acepten el rol de Trusted Committer. Cada candidato debe evaluar si tienen la disponibilidad para asumir las responsabilidades.
+
+Cuando un candidato acepta el rol, los mantenedores del proyecto deben reconocer públicamente su transición de usuario a Trusted Committer. También es una buena idea agregar su nombre a una sección de Trusted Committers en el README de tu proyecto. Como ejemplo:
+
+```markdown
+# nombre-del-proyecto
+
+... el readme de tu proyecto ...
+
+## Líderes del Proyecto
+
+### Mantenedores
+
+ - Tu equipo
+
+### [Trusted Committers]
+
+ - El nombre del nuevo trusted committer
+
+[Trusted Committers]: https://example.com/link/to/your/trusted/committer/documentation.md
+```
+
+### Manteniendo Relaciones con Trusted Committers
+
+Una vez que formalizas un nuevo Trusted Committer, es una buena idea mantenerlos informados mientras continúas iterando en tu proyecto. Mantenerlos informados puede ser tan simple como invitarlos a tu canal del proyecto o tan involucrado como incluirlos en tus sesiones de planificación. Más oportunidades de participación dan a los Trusted Committers un camino hacia Mantenedor si así lo desean.
+
+Además de mantener informados a los Trusted Committers, es bueno hacer un seguimiento regularmente. Una cadencia sugerida es comenzar con cada semana antes de progresar gradualmente a cada pocas semanas. El propósito de estos seguimientos es asegurarse de que el Trusted Committer se sienta apoyado en su nuevo rol. Análogo a una 1:1 con tu gerente, si hay algún problema, escucha y empatiza para tratar de entender qué está impidiendo que el Trusted Committer tenga éxito. Siempre [agradece al Trusted Committer por su continuo esfuerzo][praise] en hacer que el proyecto sea exitoso y establece una nueva fecha para hacer un seguimiento.
+
+### Retirando a un Trusted Committer
+
+Hay momentos que requieren la eliminación de un Trusted Committer, como si el Trusted Committer:
+
+* Ya no está dispuesto a participar
+* Ya no puede desempeñar sus funciones
+* Ya no está empleado por la empresa
+
+Un plan para eliminar el acceso a los recursos del proyecto debe ser acordado por ambas partes, incluyendo la transición de su entrada en la sección **Trusted Committer** del proyecto a una lista de contribuyentes anteriores.
+
+Al eliminar el acceso, [agradece públicamente al Trusted Committer por su participación][praise]. El reconocimiento público asegura una comunicación clara de la transición y continuidad dentro de la comunidad.
+
+## Contexto Resultante
+
+### Para los Contribuidores
+
+Lograr el estatus de Trusted Committer para un proyecto demuestra iniciativa en contribuir al proyecto comunitario. El reconocimiento por estos esfuerzos puede ser utilizado durante las revisiones anuales con los gerentes.
+
+### Para los Mantenedores
+
+A medida que un proyecto madura, los mantenedores pueden volverse menos familiares con aspectos clave de un proyecto. Los Trusted Committers llenan estos vacíos, asegurando que todos los aspectos del proyecto estén mejor atendidos con el tiempo.
+
+Un conjunto saludable de Trusted Committers asegura que si los mantenedores del proyecto se van, haya un plan para una administración responsable.
+
+## Instancias Conocidas
+
+Esto ha sido probado y ha tenido éxito en:
+
+- Nike
+- PayPal
+- Mercado Libre - agrega una sección en el archivo `CONTRIBUTING.md` para informar quiénes son los Trusted Committers.
+- Robert Bosch GmbH - no llamamos al rol 'Trusted Committer' pero tuvimos este rol al comienzo de nuestro viaje InnerSource. Los Trusted Committers serían financiados al 100 % de su tiempo para poder enfocarse en este rol.
+
+
+
+## Estado
+
+- Estructurado
+- Publicado internamente en Nike; redactado vía pull-request en junio de 2018.
+
+## Autores
+
+- [Fernando Freire]
+
+## Agradecimientos
+
+- [Russell Rutledge]
+- [Loren Sanz]
+- [Noah Cawley]
+- [Jeremy Hicks]
+- [Doron Katz]
+
+[Doron Katz]: https://github.com/doronkatz
+[Russell Rutledge]: https://github.com/rrrutledge
+[Loren Sanz]: https://github.com/mrsanz
+[Jeremy Hicks]: https://github.com/greatestusername
+[Noah Cawley]: https://github.com/utanapishtim
+[praise]: ./praise-participants.md
+[Fernando Freire]: https://github.com/dogonthehorizon
+
+## Histórico de Traducciones
+
+- **2025-04-03** - Traducción [Oscar Lobaton S.](https://github.com/ovas04)
+- **2025-04-03** - Traducción [Roman Martin Gil](https://github.com/rmarting)
diff --git a/translation/es/templates/COMMUNICATION-template.md b/translation/es/templates/COMMUNICATION-template.md
new file mode 100644
index 000000000..526648fb2
--- /dev/null
+++ b/translation/es/templates/COMMUNICATION-template.md
@@ -0,0 +1,73 @@
+# COMMUNICATION.md
+
+***
+Coloque un archivo COMMUNICATION.md adaptado al proyecto en cada repositorio. Si la propiedad del repositorio del proyecto se transfiere a un equipo diferente en el futuro, necesitarán poder acceder y editar la documentación relacionada con el proyecto. Esto incluye la documentación que describe los procesos de comunicación que los usuarios deben usar para contactar al equipo.
+
+**Elimine el párrafo superior cuando esta sección esté completa.**
+
+## Comunicación del Equipo
+
+Canal de Slack del equipo:
+
+Canales especiales de Slack: (temas específicos y accesibles para cualquier contribuyente externo)
+
+Correo del equipo:
+
+## Cómo Contactarnos
+
+Los siguientes tipos de acciones pueden moverse a la sección apropiada y se pueden agregar más.
+
+| Acción | (Contacto general del equipo) |
+|-------------------------------|------------------------------|
+| Método de contacto | (correo o canal de Slack) |
+| Reporte de error | |
+| Solicitud de función | |
+| Preguntas sobre el proceso | |
+| Merge Requests después del envío | |
+| Agregar más aquí... | |
+
+| Situaciones Especiales: | Punto directo de contacto (Rol) |
+|------------------------|----------------------------------|
+| Actualizaciones de estado | |
+| otro | |
+| otro | |
+| Agregar más aquí... | |
+
+## Roles y Responsabilidades
+
+Gerentes o roles y situaciones específicas por las que deben ser contactados fuera del canal del equipo.
+
+(está configurado de esta manera para que el documento pueda cambiarse fácilmente si hay nuevos miembros en el equipo)
+
+| Rol | Nombre | Método de contacto preferido |
+|-----|--------|----------------------------|
+| | | |
+| | | |
+| | | |
+
+## Comunicación Externa
+
+| Escenarios | Cuándo recibirán comunicación los usuarios | Interesados que recibirán | Acción - cómo recibir estas comunicaciones |
+|---------------------------------------------------------------------------------|---------|----------------|----------|
+| Cambios importantes (por ejemplo, cambios en nuestra API o contratos de mensajería) | | | |
+| Interrupciones extendidas/planificadas (tiempo de inactividad para mantenimiento) | | | |
+| Interrupciones inesperadas | | | |
+| Cambios específicos de tráfico (por ejemplo, equipo a equipo, etc.) | | | |
+| Implementación de nuevas funciones | | | |
+| Según las pautas del producto | | | |
+| Fin de mes y congelamiento de código en toda la empresa | | | |
+| Equipo interno y otros equipos que contribuyen a los repositorios | | | |
+| Agregar más... | | | |
+
+## Contactos de Documentación
+
+Explique cómo encontrar al propietario, parte responsable o grupo al que las personas deben contactar si tienen preguntas sobre la documentación en el repositorio.
+
+Describa este proceso de comunicación.
+
+Por ejemplo:
+
+* Si tiene preguntas sobre una pieza específica de documentación, puede encontrar al miembro del equipo responsable de la información aquí:
+* Puede contactar a la parte responsable enviando un mensaje en el canal xyz, enviándoles un mensaje directo en chat, correo electrónico, etc. La persona que certificó la documentación por última vez es la parte responsable.
+
+***
diff --git a/translation/es/templates/CONTRIBUTING-template.md b/translation/es/templates/CONTRIBUTING-template.md
new file mode 100644
index 000000000..f98ff9f4c
--- /dev/null
+++ b/translation/es/templates/CONTRIBUTING-template.md
@@ -0,0 +1,55 @@
+# Contribuir a ____
+
+## Tipos de contribuciones
+
+Proporcione información aquí sobre qué tipos de contribuciones busca su proyecto.
+Por ejemplo, pueden ser reportes de errores (bug reports), ayuda para responder
+preguntas de usuarios, mejoras en la documentación, corrección de errores y
+también implementación de nuevas funcionalidades.
+
+Por favor, sigue estos pasos para contribuir a este proyecto:
+
+## Reportes de errores
+
+Agregue aquí información sobre cómo enviar reportes de errores. Esto debe incluir
+sugerencias sobre el tipo de información que el proyecto necesitará para
+reproducir y corregir problemas. También puede incluir información sobre
+configuraciones incorrectas comunes que parecen errores.
+
+También incluya información sobre qué pueden esperar los contribuyentes en términos
+de tiempo de primera respuesta y proceso posterior.
+
+- Si tienes preguntas, abre un problema en el gestor de tareas (issue tracker).
+
+## Solicitudes de funcionalidades
+
+Agregue aquí información sobre cómo enviar solicitudes de funcionalidades. También incluya información sobre qué pueden esperar los contribuyentes en términos
+de tiempo de primera respuesta y proceso posterior.
+
+## Contribuir documentación
+
+Incluya información sobre las mejores prácticas de documentación que sigue su proyecto,
+así como cómo construir la documentación, las verificaciones que debe ejecutar y
+cómo enviar los cambios realizados al proyecto.
+
+## Contribuir código fuente
+
+Esta sección debe contener información sobre:
+
+- Cómo acceder al código fuente del proyecto,
+- Estructura general del proyecto,
+- Requisitos para el entorno de desarrollo,
+- Pautas de formato de código,
+- Cómo ejecutar el conjunto de pruebas.
+
+## Cómo convertirse en Trusted Committer
+
+Esta sección debe hacer explícito el proceso para convertirse en Trusted Committer
+si esa ruta está abierta a los contribuyentes.
+
+## Cómo nominar Trusted Committers
+
+Esta sección sirve como recordatorio para los existentes y explicación para nuevos
+Trusted Committers detallando cómo agregar otros al equipo central. Idealmente,
+esta información es idéntica para todos los proyectos en la organización, por lo que
+se puede vincular a la información central desde aquí.
diff --git a/translation/es/templates/README-template.md b/translation/es/templates/README-template.md
new file mode 100644
index 000000000..fecbd0897
--- /dev/null
+++ b/translation/es/templates/README-template.md
@@ -0,0 +1,55 @@
+# Inserte el nombre de su proyecto aquí
+
+## Misión
+
+Esta sección debe contener una breve descripción (3-5 oraciones) de la misión de su proyecto.
+El objetivo es indicar en qué planea trabajar y ayudar a los contribuyentes externos a comprender aproximadamente qué tipos de funcionalidades serán probablemente bienvenidas para este proyecto.
+
+Consulte también el [capítulo de declaración de misión](https://producingoss.com/en/producingoss.html#mission-statement) en Producing Open Source Software.
+
+## Primeros Pasos
+
+Esta sección debe contener documentación breve escrita para usuarios principiantes sobre cómo comenzar a usar el proyecto.
+Se puede vincular a documentación más detallada desde aquí.
+
+## Información Adicional
+
+Esta sección puede enumerar cualquiera o todos los siguientes elementos:
+
+- Lista de funcionalidades, casos de uso que el software aborda.
+- Información sobre principios de diseño utilizados para resolver compensaciones
+- Enlaces a documentación adicional a nivel de usuario
+- Respuestas a preguntas frecuentes (FAQ), preferiblemente en un formato que permita vincular preguntas específicas y sus respuestas para una referencia más fácil.
+
+## Obtener ayuda
+
+Esta sección debe contener documentación breve sobre cómo obtener ayuda para el proyecto como usuario. Esto podría ser tan simple como dirigir a los usuarios al gestor de tareas si así es como su proyecto desea responder preguntas.
+También podría apuntar a un canal de chat archivado y consultable, alguna lista de correo archivada consultable, o algún foro de usuarios en línea.
+
+## Involucrarse
+
+Esta sección debe incluir información sobre cómo ponerse en contacto con el proyecto:Típicamente contendrá enlaces a canales de comunicación archivados, consultables y vinculables.
+
+## Quiénes somos
+
+Este es un buen lugar para dar crédito a los Trusted Committers del proyecto.
+
+También es un buen lugar para incluir información sobre lo que significa ser un Trusted Committer para este proyecto - aunque idealmente todos los proyectos en una organización utilizan la misma definición que solo se vincula desde aquí.
+La razón para mantener el enlace aquí es para colegas que tienen poca o ninguna experiencia trabajando y contribuyendo a proyectos InnerSource para tener un enlace directo a la información de toda la empresa desde los proyectos tecnológicos que necesitan para su trabajo diario.
+
+## Contribuir
+
+Esta sección debe documentar (o vincular a documentación) sobre todo lo que un contribuyente principiante necesita saber para comenzar. Típicamente no se cubrirán todos los temas a continuación. Concéntrese en lo que difiere en su proyecto de la configuración estándar y lo que los contribuyentes anteriores encontraron difícil de entender.
+
+- Encontrar el código fuente.
+- Encontrar una lista de issues que su proyecto necesita ayuda - estos pueden ser tanto técnicos como no técnicos. Típicamente los mantendrá en un gestor de tareas accesible para los contribuyentes.
+- Enlaces a documentación adicional, por ejemplo, sobre la arquitectura del proyecto, convenciones de codificación generales, convenciones de prueba...
+- Para contribuciones técnicas: Realizar cambios, construir el proyecto y probar sus cambios.
+- Enviar sus cambios de vuelta al proyecto.
+
+Idealmente también incluye información sobre cómo es el proceso preferido de cambios para el proyecto: ¿Deberían los contribuyentes primero abrir un issue y enviar una propuesta, o son bienvenidos a enviar cambios de inmediato? ¿Qué es importante para usted al revisar contribuciones?
+
+Además, debe describir cualquier valor de diseño que desee seguir en el proyecto. Hacer estos explícitos a menudo ayuda a resolver compensaciones más rápida y fácilmente.
+Además, ayuda a hacer transparentes los cambios en suposiciones que de otro modo serían implícitas.
+
+Con el tiempo notará que esta sección crece sustancialmente. En ese caso, piense en mover la información a archivos separados, por ejemplo, `CONTRIBUTING.md` y `TESTING.md`.
diff --git a/translation/es/templates/rfc.md b/translation/es/templates/rfc.md
new file mode 100644
index 000000000..895ef8f3d
--- /dev/null
+++ b/translation/es/templates/rfc.md
@@ -0,0 +1,83 @@
+# 000-Plantilla
+
+- Nombre de la Funcionalidad: (rellénalo con un identificador único, `mi_funcionalidad_asombrosa`)
+- Fecha de Inicio: (rellénalo con la fecha de hoy, YYYY-MM-DD)
+- Propietarios nominados: (Representantes de las áreas técnicas afectadas por el RFC. A menudo serán líderes técnicos, pero pueden delegar. Los RFC no pueden ser aceptados hasta que todos los propietarios nominados hayan dado su aprobación.)
+
+## Resumen
+
+Explicación en un párrafo de la funcionalidad.
+
+## Retrospectiva
+
+Esta sección es esencial para permitirnos aprender de las cosas que estamos implementando.
+
+_¿Cuándo es la retrospectiva?_
+
+[ ] ¿Retro completada?
+
+(¿dónde/cómo se llevará a cabo, cómo pueden las personas involucrarse, dónde están los resultados?)
+
+## Motivación
+
+¿Por qué estamos haciendo esto? ¿Qué casos de uso soporta? ¿Cuál es el resultado esperado?
+
+## Explicación a nivel de guía
+
+Explica la propuesta como si ya existiera y la estuvieras enseñando a otro ingeniero. Eso generalmente significa:
+
+- Introducir nuevos conceptos nombrados.
+- Explicar la funcionalidad en gran medida en términos de ejemplos.
+- Explicar cómo los ingenieros deben pensar sobre la funcionalidad. Debe explicar el impacto lo más concretamente posible.
+- Si aplica (por ejemplo, propuesta de código/arquitectura), proporcionar mensajes de error de muestra, advertencias de desaprobación o guía de migración.
+- Si aplica, describir las diferencias entre enseñar esto a ingenieros existentes y nuevos ingenieros.
+
+Para los RFC orientados a la implementación, esta sección debe centrarse en cómo los contribuyentes deben pensar sobre el cambio y dar ejemplos de su impacto concreto. Para los RFC de políticas/procesos, esta sección debe proporcionar una introducción basada en ejemplos a la política/proceso y explicar su impacto en términos concretos.
+
+## Explicación a nivel de referencia
+
+Esta es la parte técnica del RFC. Explica el diseño con suficiente detalle para que:
+
+- Su interacción con otras funcionalidades sea clara.
+- Sea razonablemente claro cómo se implementaría la funcionalidad.
+- Los casos extremos sean disecados por ejemplo.
+
+La sección debe volver a los ejemplos dados en la sección anterior y explicar más completamente cómo la propuesta detallada hace que esos ejemplos funcionen.
+
+## Inconvenientes
+
+¿Por qué _no_ deberíamos hacer esto?
+
+## Razonamiento y alternativas
+
+- ¿Por qué este diseño es el mejor en el espacio de posibles diseños?
+- ¿Qué otros diseños se han considerado y cuál es la razón para no elegirlos?
+- ¿Cuál es el impacto de no hacer esto?
+
+## Arte previo
+
+Discute el arte previo, tanto lo bueno como lo malo, en relación con esta propuesta.
+Algunos ejemplos de lo que esto puede incluir son:
+
+- Para lenguaje, librería, herramientas, etc.: ¿Existe esta funcionalidad en otros lugares y qué experiencia ha tenido su comunidad?
+- Para propuestas comunitarias: ¿Esto lo hace alguna otra comunidad y cuáles fueron sus experiencias con ello?
+- Para otros equipos: ¿Qué lecciones podemos aprender de lo que otras comunidades han hecho aquí?
+- Artículos: ¿Hay algún artículo publicado o publicaciones destacadas que discutan esto? Si tienes algunos artículos relevantes a los que referirte, esto puede servir como un trasfondo teórico más detallado.
+
+Esta sección está destinada a alentarte como autor a pensar en las lecciones de otros lugares, proporcionar a los lectores de tu RFC una imagen más completa.
+Si no hay arte previo, está bien - tus ideas nos interesan ya sean completamente nuevas o una adaptación de otros lugares.
+
+## Preguntas sin resolver
+
+- ¿Qué partes del diseño esperas resolver a través del proceso de RFC antes de que esto se fusione?
+- ¿Qué partes del diseño esperas resolver a través de la implementación de esta funcionalidad antes de la estabilización?
+- ¿Qué problemas relacionados consideras fuera del alcance de este RFC que podrían abordarse en el futuro independientemente de la solución que surja de este RFC?
+
+## Posibilidades futuras
+
+Piensa en cuál sería la extensión y evolución natural de tu propuesta y cómo afectaría a los equipos y proyectos en su conjunto de manera holística. Trata de usar esta sección como una herramienta para considerar más plenamente todas las posibles interacciones con el proyecto y los equipos en tu propuesta.
+También considera cómo encaja todo esto en la hoja de ruta del proyecto y del sub-equipo relevante.
+Esta también es un buen lugar para "volcar ideas", si están fuera del alcance del RFC que estás escribiendo pero de otro modo relacionadas.
+Si has intentado y no puedes pensar en ninguna posibilidad futura, simplemente puedes decir que no puedes pensar en nada.
+Ten en cuenta que tener algo escrito en la sección de posibilidades futuras no es una razón para aceptar el RFC actual o futuro; tales notas deben estar en la sección de motivación o razonamiento en este o en RFCs posteriores.
+La sección simplemente proporciona información adicional.
diff --git a/translation/gl/patterns/innersource-license.md b/translation/gl/patterns/innersource-license.md
index 3a13891a2..024a19efe 100644
--- a/translation/gl/patterns/innersource-license.md
+++ b/translation/gl/patterns/innersource-license.md
@@ -51,7 +51,7 @@ A licenza simplifica as conversas dentro da organización sobre o feito de compa
## Exemplos coñecidos
-DB Systel creou a súa propia licenza InnerSource, pódese consultar en [DB Inner Source License](https://github.com/dbsystel/open-source-policies/blob/master/DB-Inner-Source-License.md). Usaron a [EUPL](https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12), xa que ofrecía un software libre como punto de partida, e despois elaboraron as limitacións e as regras adicionais necesarias no seu contexto organizativo específico.
+DB Systel creou a súa propia licenza InnerSource, pódese consultar en [DB Inner Source License][db-inner-source-license]. Usaron a [EUPL][eupl], xa que ofrecía un software libre como punto de partida, e despois elaboraron as limitacións e as regras adicionais necesarias no seu contexto organizativo específico.
As primeiras entidades xurídicas (empresas) dentro da DB AG están a usar a súa licenza InnerSource.
@@ -80,13 +80,16 @@ Paga a pena mencionar que, ata agora, o software compartido baixo esta licenza I
## Referencias
- Presentación FOSSBack 2020: [Cornelius Schumacher - Blending Open Source and Corporate Values](https://youtu.be/hikC6U8X_Ec) [Cornelius Schumacher: Mesturando código aberto e valores corporativos]; vexa a partir do minuto 27:30 para máis información sobre a licenza InnerSource.
-- [DB Inner Source License](https://github.com/dbsystel/open-source-policies/blob/master/DB-Inner-Source-License.md).
+- [DB Inner Source License][db-inner-source-license].
## Glosario
- **Organización**: un paraugas para varias entidades xurídicas. (Sinónimos: grupo, empresa. Por exemplo, Lufthansa.).
- **Entidade xurídica**: unha entidade que ten os seus propios dereitos e obrigas legais. (Sinónimos: empresa, filial. Por exemplo, Lufthansa Systems GmbH, Lufthansa Industry Solutions TS GmbH etc).
+[db-inner-source-license]: https://github.com/dbsystel/open-source-policies/tree/master/inner-source-license
+[eupl]: https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+
## Tradución
- Leticia Gómez Cadahía
diff --git a/translation/gl/patterns/innersource-portal.md b/translation/gl/patterns/innersource-portal.md
index a503d3cd7..b92187e7f 100644
--- a/translation/gl/patterns/innersource-portal.md
+++ b/translation/gl/patterns/innersource-portal.md
@@ -70,7 +70,7 @@ Unha [implantación de referencia](https://github.com/SAP/project-portal-for-inn
* [Gamificación como medio de cambio cultural e potenciador de compromiso InnerSource](https://www.oreilly.com/library/view/oscon-2018-/9781492026075/video321579.html) | Shelly Nizri | OSCON 2018: Portland, Oregon.
* De islas, monstros e InnerSource [(presentación)](https://docs.google.com/presentation/d/1P1OCEK9B6eSrVRUclVWY6meSI-qHOBjM_UAPNvCZamU/edit#slide=id.p15), [(vídeo)](https://drive.google.com/file/d/1pM89uHMn0vhE3ayFJDGYcCO8R0tAXXZD/view?usp=drivesdk) | Cume InnerSource primavera de 2019 (Galway, Ireland).
* O [código](https://gitlab.com/gilda2) desta plataforma era de software libre.
-* **American Airlines** promove proxectos InnerSource a través dun [*Marketplace* InnerSource interno](https://tech.aa.com/2020-10-30-innersource/). Do mesmo xeito que SAP, os proxectos autorrexístranse engadindo InnerSource como tema de GitHub. Os proxectos pódense buscar e filtrar por idioma, temas, número de incidencias abertas etc.
+* **American Airlines** promove proxectos InnerSource a través dun [*Marketplace* InnerSource interno](https://web.archive.org/web/20240226230502/https://tech.aa.com/2020-10-30-innersource). Do mesmo xeito que SAP, os proxectos autorrexístranse engadindo InnerSource como tema de GitHub. Os proxectos pódense buscar e filtrar por idioma, temas, número de incidencias abertas etc.
* **Banco Santander** creou un portal público chamado «Santander ONE Europe InnerSource Community» para dar soporte e mellorar a adopción de InnerSource. Ademais do catálogo de proxectos, o portal inclúe contidos relevantes como documentación, forma de traballar, noticias e eventos.

diff --git a/translation/ja/patterns/innersource-license.md b/translation/ja/patterns/innersource-license.md
index d12df4d08..44376f734 100644
--- a/translation/ja/patterns/innersource-license.md
+++ b/translation/ja/patterns/innersource-license.md
@@ -89,7 +89,7 @@ DB 社の中で最初の法人(企業) は、このインナーソース ライ
- **組織** - 複数の企業の母体(同義語: グループ、ホールディング、エンタープライズ) (例: Microsoft Corporation)
- **法的エンティティ** - 独自の法的権利と義務を有するエンティティ (同義語: グループ子会社、子会社、関連会社) (例: Microsoft Japan, GitHub, LinkedIn)
-[db-inner-source-license]: https://github.com/dbsystel/open-source-policies/blob/master/DB-Inner-Source-License.md
+[db-inner-source-license]: https://github.com/dbsystel/open-source-policies/tree/master/inner-source-license
[eupl]: https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
## 翻訳の履歴
diff --git a/translation/ja/patterns/innersource-portal.md b/translation/ja/patterns/innersource-portal.md
index 7c567ed6f..8abf6dc1b 100644
--- a/translation/ja/patterns/innersource-portal.md
+++ b/translation/ja/patterns/innersource-portal.md
@@ -73,7 +73,7 @@
コードはオープンソース化されており、[gitlab.com/gilda2](https://gitlab.com/gilda2)にて公開されています。
-* **アメリカン航空**は、[インターナルインナーソースマーケットプレイス](https://tech.aa.com/2020-10-30-innersource/)を介してInnerSourceプロジェクトを推進しています。SAPと同様に、プロジェクトはGitHubのトピックとして `innersource` を追加することで自己登録されます。プロジェクトは、言語、トピック、オープンイシューの数などで検索やフィルタリングが可能です。
+* **アメリカン航空**は、[インターナルインナーソースマーケットプレイス](https://web.archive.org/web/20240226230502/https://tech.aa.com/2020-10-30-innersource)を介してInnerSourceプロジェクトを推進しています。SAPと同様に、プロジェクトはGitHubのトピックとして `innersource` を追加することで自己登録されます。プロジェクトは、言語、トピック、オープンイシューの数などで検索やフィルタリングが可能です。
* **Banco Santander**社は、インナーソースをサポートして増やすために、Santander ONE Europe InnerSource Communityという公開ポータルを作成しました。このポータルには、プロジェクトのカタログに加え、ドキュメント、仕事の進め方、ニュース、イベントなどの関連コンテンツが含まれています。
diff --git a/translation/pt-br/patterns/base-documentation.md b/translation/pt-br/patterns/base-documentation.md
index 1e6c69fac..1a00fd177 100644
--- a/translation/pt-br/patterns/base-documentation.md
+++ b/translation/pt-br/patterns/base-documentation.md
@@ -32,7 +32,7 @@ Abordar a necessidade de documentação mais clara para novos contribuidores. O
### README.md
-Se ainda não existir, crie um arquivo `README.md para o seu projeto. Ele deve conter:
+Se ainda não existir, crie um arquivo `README.md` para o seu projeto. Ele deve conter:
* [Missão do projeto](https://producingoss.com/en/producingoss.html#mission-statement) de forma concisa possível. Deve responder qual é o propósito do projeto e permitir que os contributors façam uma boa primeira avaliação se um recurso sugerido provavelmente estará dentro do escopo do projeto ou não.
* Uma seção "Primeiros passos" para os usuários downstream do projeto. Deve explicar como configurar/integrar os artefatos do projeto, bem como uma explicação dos primeiros passos típicos para usuários iniciantes.
diff --git a/translation/pt-br/patterns/innersource-license.md b/translation/pt-br/patterns/innersource-license.md
index e8c3957ea..aff5f8f3d 100644
--- a/translation/pt-br/patterns/innersource-license.md
+++ b/translation/pt-br/patterns/innersource-license.md
@@ -87,7 +87,7 @@ Vale mencionar que até agora, o software compartilhado sob essa licença InnerS
- organização - um guarda-chuva para várias entidades legais. (sinônimos: grupo, empresa) (e.g., Lufthansa)
-entidade jurídica - Uma entidade que possui seus próprios direitos e obrigações legais (sinônimos: empresa, subsidiária) (por exemplo, Lufthansa Systems GmbH, Lufthansa Industry Solutions TS GmbH, ...)
-[db-inner-source-license]: https://github.com/dbsystel/open-source-policies/blob/master/DB-Inner-Source-License.md
+[db-inner-source-license]: https://github.com/dbsystel/open-source-policies/tree/master/inner-source-license
[eupl]: https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
## Histórico de Tradução
diff --git a/translation/pt-br/patterns/innersource-portal.md b/translation/pt-br/patterns/innersource-portal.md
index 6d6aac50d..ff715c799 100644
--- a/translation/pt-br/patterns/innersource-portal.md
+++ b/translation/pt-br/patterns/innersource-portal.md
@@ -70,7 +70,7 @@ Uma [implementação de referência](https://github.com/SAP/project-portal-for-i
* [Gamification As Means of Cultural Change and InnerSource Engagement Booster](https://www.oreilly.com/library/view/oscon-2018-/9781492026075/video321579.html) | Shelly Nizri | OSCON 2018 - Portland, Oregon
* Of Islands, Monsters & InnerSource [(slides)](https://docs.google.com/presentation/d/1P1OCEK9B6eSrVRUclVWY6meSI-qHOBjM_UAPNvCZamU/edit#slide=id.p15), [(video)](https://drive.google.com/file/d/1pM89uHMn0vhE3ayFJDGYcCO8R0tAXXZD/view?usp=drivesdk) | InnerSource Spring Summit 2019 (Galway, Ireland)
* O código que implementa essa plataforma foi disponibilizado como código aberto e está disponível em [gitlab.com/gilda2](https://gitlab.com/gilda2)
-* **American Airlines** promove projetos InnerSource por meio de um [Mercado Interno InnerSource](https://tech.aa.com/2020-10-30-innersource/). Da mesma forma que a SAP, os projetos se registram adicionando `innersource` como um tópico no GitHub. Os projetos podem ser pesquisados e filtrados por linguagem, tópicos, número de problemas abertos, etc.
+* **American Airlines** promove projetos InnerSource por meio de um [Mercado Interno InnerSource](https://web.archive.org/web/20240226230502/https://tech.aa.com/2020-10-30-innersource). Da mesma forma que a SAP, os projetos se registram adicionando `innersource` como um tópico no GitHub. Os projetos podem ser pesquisados e filtrados por linguagem, tópicos, número de problemas abertos, etc.
* **Banco Santander** criou um portal público chamado "Santander ONE Europe InnerSource Community" para apoiar e aumentar a adoção do InnerSource. Além do catálogo de projetos, o portal inclui conteúdo relevante, como documentação, forma de trabalho, notícias e eventos.

diff --git a/translation/zh/patterns/extensions-for-sustainable-growth.md b/translation/zh/patterns/extensions-for-sustainable-growth.md
new file mode 100644
index 000000000..c5063fa09
--- /dev/null
+++ b/translation/zh/patterns/extensions-for-sustainable-growth.md
@@ -0,0 +1,117 @@
+## Title
+
+通过扩展实现可持续增长
+
+## Patlet
+
+InnerSource 项目收到了太多的贡献,这会导致维护变得困难。通过在核心项目之外提供扩展机制,维护者可以用最小的成本和维护开销扩展项目功能。
+
+## 问题
+
+随着对成熟 InnerSource 代码库的贡献数量迅速增加,代码评审和维护的负担也随之加重。这将导致大量代码评审任务积压或过早拒绝新功能贡献。
+
+项目团队如何才能更快地发布新功能、鼓励创新和实验,同时又能很好地维护代码库呢?
+
+## 故事
+
+有一个战略性项目,旨在将某一领域内的最佳创新集合到一个通用栈中,从而实现通用基础架构的重复使用,并提供标准的用户体验。通过 InnerSource,组织内从事该领域工作的各个团队都有机会开展合作,并将自己的创新成果贡献给通用代码库。
+
+然而,当多位开发者同时进行大量并行贡献时,代码库的维护变得愈发复杂。这种情况给项目维护者带来了巨大的挑战。他们不仅要肩负确保代码质量的重任,还需要通过多种沟通渠道积极促进社区的健康发展。
+
+项目维护人员面临职业倦怠的风险,原因如下:
+
+- 待评审的贡献者 PR 不断积压。
+- 工作不满意: 维护者的大部分时间都花在社区支持上,没有创新的空间。
+- 缺乏成就感: 并非所有贡献的功能都有足够的用户需求,并因此被采用。
+- 发布耗时: 代码库中的功能越多,测试时间就越长。
+- 维护活动增加: 随着新功能的增加,会出现更多错误。
+
+我们常常在新功能正式发布前,投入大量时间对其进行完善和优化。然而,这种做法存在一定风险:如果这些精心打造的功能最终无法满足潜在用户的实际需求,那么我们为追求卓越代码质量所付出的努力可能就会付诸东流。
+
+## 上下文
+
+- 一个具有战略意义的 InnerSource 代码库正随着多名员工对新功能的贡献而迅速扩展。
+- 评审人员与贡献者的比例悬殊导致 PR 积压越来越多,这拖慢了向社区发布新功能的速度。
+- 代码库质量下降,用户体验受到负面影响。
+- 代码库维护人员不堪重负,无法及时应对大量贡献和社区支持的增加。
+- 一些贡献的功能没有得到用户的采用,甚至可能完全处于休眠状态。然而,即使这些功能未被使用,它们仍然会增加维护开销。
+- 组织正在投入巨资强化新功能的贡献,以便在社区探索这些想法之前保持质量标准。
+- 这种模式适用于任何一种情况:
+ - 维护者发现自己经常拒绝新功能提议,以控制项目规模。然而,这可能会抑制社区创新,限制项目的发展潜力。
+ - 为了减少项目积压,新功能在没有完整文档、加固或测试的情况下就被发布,造成了糟糕的用户体验。这也在扩大代码库的规模,增大依赖关系图,使其难以维护。
+
+## 约束
+
+- 维护者和产品所有者希望允许扩展、鼓励创新和试验,但又不过于限制贡献,同时还要保持良好的代码和质量标准,以保证用户体验。
+- 为达到产品标准,需要花费大量时间对功能进行加固和全面测试,但产品所有者可能希望在投入时间使功能成熟之前,允许更快地发布新的创新,供采用产品的用户探索。
+- 维护者希望鼓励社区分享将产品功能与其他用例相结合的创新,而不给主代码库增加更多的依赖性。
+
+## 解决方案
+
+允许[扩展/插件](https://en.wikipedia.org/wiki/Extensibility)进入大规模的 InnerSource 代码库,可以减轻代码库维护者的维护负担,并允许更快地发布新功能供采用产品及探索。这就将功能的维护工作转移给了扩展所有者,并允许主代码库支持已被更广泛采用且更具战略性的功能。
+
+扩展机制为潜在的核心功能提供了一个有效的筛选渠道。它不仅充当了新功能的孵化器,还为社区创造了一个自然的强化环境。这种方式使得大量功能完善和优化工作能够在一个更加开放和灵活的环境中自然进行,避免了在耗时耗力的正式评审过程中进行这些工作。
+
+为了使扩展模式取得成功,在架构上有一些注意事项需要牢记:
+
+1. **易于创建:** 为了获得社区参与,扩展需要易于创建。
+ - 创建一个初始扩展的代码库模板,作为新扩展的起点。这允许扩展在新代码库中添加新功能,与核心项目分开。该模板应提供与主代码库相同的模块化结构,并包含打包和发布扩展的框架。
+ - 确保随着主代码库的变更,模板得到良好维护。主代码库维护人员负责更新模板以确保其与主项目兼容。遵循良好的版本控制约定,例如 [semver](https://semver.org/),可以使这更容易遵循。
+ - 建议主代码库的维护团队提供详细的指南,阐明如何在新版本发布时,基于旧版本的模板对扩展进行更新。
+ - 添加从模板开发的示例扩展,项目开发人员可以参考这些扩展来了解如何编写模式良好的扩展。
+ - 放宽对贡献者创建扩展的要求,绕过评审,以实现更快的发布或试验。
+2. **低耦合:** 拥有包含功能的模块化组件可以允许松散耦合,其中扩展的更改不会影响主代码库或其他扩展的质量。
+3. **依赖管理:** 每个扩展都应谨慎地指定其所依赖的主代码库版本范围,就如同处理其他依赖项一样。在选择其他依赖项时,也要特别注意与主代码库的依赖关系,确保所选版本与指定的主代码库版本相兼容。这种做法不仅能够保证扩展的稳定性,还能通过扩展的测试框架有效地捕获与主代码库之间可能存在的任何冲突。
+4. **测试策略:** 如何单独和组合测试扩展?
+ - **单独测试扩展:** 扩展模板将提供一个测试框架,供扩展开发人员用来测试添加的功能。这可以包括单元测试、运行时性能和质量测试的框架。
+ - **与主代码库结合测试扩展:** 扩展开发人员有一种模式良好的方法,可以针对主代码库的特定版本测试其扩展,而无需主代码库维护人员的参与。
+ - **与其他扩展结合测试扩展:** 为每个扩展提供全面的测试框架可能会显得过于繁重。如果扩展之间保持适度的松散耦合,冲突的可能性本来就较低。然而,若用户在组合使用扩展时遇到冲突,他们可以直接向相关扩展的维护者报告问题,由这些专业人士来解决兼容性问题。值得注意的是,当扩展发展到生命周期的后期阶段,并有机会被合并到主代码库时,它将与库的其他部分一起进行全面测试。在这个关键阶段,所有潜在的依赖冲突必须得到彻底解决,以确保整个系统的稳定性和一致性。
+5. **可发现性和可用性:**
+ - 通过显示用户已创建并希望共享以供产品使用的扩展的发布页面,使扩展易于被发现。
+ - 允许在主项目中注册扩展,以便用户可以在原始项目中利用扩展,从而保持相同的用户体验。
+6. **扩展的生命周期和可维护性:** 建立扩展从创建到移植到主代码库的生命周期,以及明确的所有权准则。
+ - 扩展创建者继续维护扩展,提供任何支持并修复缺陷。任何未维护的扩展都不会从发布页面列出。
+ - 创建何时可以将扩展移植到主代码库的标准,例如内部产品对扩展的采用以及对该功能的需求。
+ - 扩展到主代码库的移植过程将遵循库维护人员制定的更严格的代码评审指南。
+
+
+
+遵循这些原则可确保:
+
+- 开发人员无需编写大量[样板](https://en.wikipedia.org/wiki/Boilerplate_code)代码,即可为项目生态系统添加新功能。
+- 主项目的所有用户都能以可重复的方式发现扩展功能;代码还没有合并入主库并不意味着它没有价值。
+- 维护者的负担会减轻,直到扩展证明它填补了主项目中的重要空白。
+- 核心项目的通用代码(如基类和实用功能)可以作为扩展项目领域的新开发的起点。这就避免了事后移植创新工作的需要,从而减轻了为项目开发新功能的总体负担。
+- 开发人员更有可能为他们的代码库做出贡献,并继续参与维护和社区建设,这也有利于整个项目生态系统的健康发展。
+
+## 结果背景
+
+- 项目能够通过增加新功能来扩展,同时不会增加主项目代码库的维护成本。
+- 更快地发布新功能供社区探索,鼓励创新和试验。
+- 将耗时且成本高昂的代码审查和功能完善过程推迟到功能已经证明其实用价值之后, 以有效降低企业的投入。
+- 可能引入的一个后置问题——如果扩展无法完成一个完整的生命周期,会怎么样?
+ - 如果一个扩展在一段时间内没有被采用,也无法围绕它建立一个支持维护的社区,那么就需要扩展所有者在他们希望的任何时间内继续维护它。如果扩展没有得到维护,就会被取消发布。
+ - 如果扩展开发者无法继续维护其项目,而社区中的其他开发者希望继续支持该扩展,他们可以继续维护该扩展。
+
+## 已知实例
+
+* **IBM 公司**采用了这一解决方案来扩展[InnerSource 人工智能类库](https://youtu.be/Lz-tIc2cyRM)。扩展库为开发人员提供了一个灵活的平台,使他们能够通过添加新算法来丰富人工智能类库的功能。这不仅促进了技术创新,还为公司内部社区创造了分享和交流的机会。与此同时,核心库保持精简,仅包含经过充分验证和广泛采用的关键算法。这种结构设计确保了在项目规模不断扩大、贡献者增多的情况下,核心库仍然易于维护和管理。
+
+## 别名
+
+管理大规模贡献的扩展
+
+## 状态
+
+结构化
+
+## 作者
+
+- Sukriti Sharma, IBM
+- Alexander Brooks, IBM
+- Gabe Goodhart, IBM
+
+## 翻译校对
+
+- **2024-10-10** 翻译[Chris Yang](https://github.com/node)
+- **2024-10-12** 校对[姜宁](https://github.com/willemjiang)
diff --git a/translation/zh/patterns/group-support.md b/translation/zh/patterns/group-support.md
new file mode 100644
index 000000000..691d9fa78
--- /dev/null
+++ b/translation/zh/patterns/group-support.md
@@ -0,0 +1,91 @@
+## Title
+
+小组支持
+
+## Patlet
+
+如果某个团队或个人不再支持 InnerSource 项目怎么办?
+由一群感兴趣的个人组成小组来保持项目活跃。
+
+## 问题
+
+* 即便是一个广受欢迎的 InnerSource 项目也可能陷入孤立的困境。
+* 当前没有明确的出路。
+
+## 故事
+
+一个 UI 组件类库,在全公司有 50 多个项目使用。
+该类库的开发团队在资源耗尽后,宣布解散。
+起初,没有人注意到,但过了一段时间,每当有人问“谁负责它”时,得不到答案。
+接下来会怎么样?
+新的团队会避免使用它吗?
+该项目是否会停滞不前,直到其用户最终被迫转向其他项目?
+如果一个完美且有价值的项目出现这种情况,那将是多么令人遗憾!
+
+## 上下文
+
+* 广受欢迎的 InnerSource 项目。
+* 作为一个构件时的依赖项使用(比如 代码模块)。
+* 没有活跃的开发者提供支持。
+* 公司无法指派团队提供支持。
+
+## 约束
+
+* 没有人在日常工作中被指派负责这项工作。
+* 每个人都很忙。
+* 项目迁移的成本很高。
+
+## 解决方案
+
+面向全公司征集感兴趣的志愿者,组成一个 [可信任提交者][] 小组来支持该项目。
+可能需要根据提交或使用的历史记录联系特定的个人。
+重要的一点是要有足够的数量,这样每个人的负担可以相对较小。
+
+该小组成立后,应确定或创建[标准基础文档][]和[沟通工具][]。
+
+团队应尽全力从以下方面管理项目:
+
+* **维护**. 如果项目在标准用例中完全失效,那就修复它。
+随着项目使用的依赖关系和框架的不断发展,及时更新项目。
+* **新人上手**. 如果有人对如何使用项目有疑问,确保他们能得到合理的答复。
+* **更新**. 如果有人想在项目中添加新功能,请为他们提供必要的设计和技术支持,以便他们实现该新功能,使其既能为自己所用,又能为项目增光添彩。
+及时评审收到的 PR。
+
+由于该小组由志愿者组成,因此重要的是要传达提供“尽力而为”的支持。
+因此,这种支持模式不太适合像实时 API 这类运行时关键的生产项目。
+它更适合在构建时使用的项目,例如类库/包/模块。
+该小组预计不会为其他人实现任何新功能。
+
+## 结果背景
+
+* 对 InnerSource 项目有些微弱的支持。
+* 从长远来看,小组支持可能会在某个时候再次解散。如果该项目长期持续下去,那么就利用这段稳定的小组支持期,找到一种长期支持的方式(比如 [核心小组][])。
+
+## 理由
+
+人们通常都愿意提供帮助。
+如果有人邀请某个人是否愿意加入成为[可信任提交者][],通常会有很多人回答“是的”。
+感受到自己是集体的一员,并在组织结构上体现和被赋予一定的责任,通常会激励人们尽最大努力,很多时候这就已经足够了。
+
+## 已知实例
+
+* WellSky
+
+## 状态
+
+结构化
+
+## 作者
+
+[Russell R. Rutledge][]
+
+[Russell R. Rutledge]: https://github.com/rrrutledge
+[标准基础文档]: ./base-documentation.md
+[沟通工具]: ./communication-tooling.md
+[可信任提交者]: ./trusted-committer.md
+[核心小组]: ./core-team.md
+
+## 翻译校对
+
+- **2024-10-10** 翻译[Chris Yang](https://github.com/node)
+- **2024-10-12** 校对[姜宁](https://github.com/willemjiang)
diff --git a/translation/zh/patterns/innersource-license.md b/translation/zh/patterns/innersource-license.md
index d60262768..5fc1eb414 100644
--- a/translation/zh/patterns/innersource-license.md
+++ b/translation/zh/patterns/innersource-license.md
@@ -87,7 +87,7 @@ DB AG内部的第一批法律实体(公司)正在使用他们的内源许可
- **组织** - 多个法律实体的综合体。(同义词:集团、企业)(如汉莎航空)。
- **法律实体** - 拥有自身的法律权利和义务的实体(同义词:公司,子公司)(例如汉莎系统有限公司,汉莎工业解决方案TS有限公司,...)
-[db-inner-source-license]: https://github.com/dbsystel/open-source-policies/blob/master/DB-Inner-Source-License.md
+[db-inner-source-license]: https://github.com/dbsystel/open-source-policies/tree/master/inner-source-license
[eupl]: https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
## 翻译校对
diff --git a/translation/zh/patterns/innersource-portal.md b/translation/zh/patterns/innersource-portal.md
index 2c54f4863..afed72e45 100644
--- a/translation/zh/patterns/innersource-portal.md
+++ b/translation/zh/patterns/innersource-portal.md
@@ -70,7 +70,7 @@
* [游戏化作为文化变革的手段和内源参与的助推器](https://www.oreilly.com/library/view/oscon-2018-/9781492026075/video321579.html) | Shelly Nizri | OSCON 2018 - 波特兰,俄勒冈州
* 岛屿、怪兽和内源 [(幻灯片)](https://docs.google.com/presentation/d/1P1OCEK9B6eSrVRUclVWY6meSI-qHOBjM_UAPNvCZamU/edit#slide=id.p15), [(视频)](https://drive.google.com/file/d/1pM89uHMn0vhE3ayFJDGYcCO8R0tAXXZD/view?usp=drivesdk) | 2019年内源春季峰会(爱尔兰,高威)
* 实现这一平台的代码已经开源,可在[gitlab.com/gilda2](https://gitlab.com/gilda2)上查阅。
-* **美国航空公司**通过[内部内源市场](https://tech.aa.com/2020-10-30-innersource)推广内源项目。与SAP类似,项目通过添加`内源`作为GitHub主题进行自我注册。项目可按语言、主题、开放问题的数量等进行搜索和过滤。
+* **美国航空公司**通过[内部内源市场](https://web.archive.org/web/20240226230502/https://tech.aa.com/2020-10-30-innersource)推广内源项目。与SAP类似,项目通过添加`内源`作为GitHub主题进行自我注册。项目可按语言、主题、开放问题的数量等进行搜索和过滤。
* **Banco Santander**创建了一个名为 "Santander ONE Europe 内源社群" 的公共门户,以支持和增加内源的采用。除了项目目录外,该门户还包括相关内容,如文档、工作方式、新闻和活动。

diff --git a/translation/zh/patterns/release-process.md b/translation/zh/patterns/release-process.md
new file mode 100644
index 000000000..c10ad2208
--- /dev/null
+++ b/translation/zh/patterns/release-process.md
@@ -0,0 +1,74 @@
+## Title
+
+标准发布流程
+
+## Patlet
+
+如果团队不确定 InnerSource 项目的成熟度,他们可能会犹豫是否采用该项目。为了解决该问题,一致的发布说明和已发布制品至关重要。这些做法展示了对项目的坚定承诺,为用户提振了信心,并向他们保证了对可持续和管理良好的软件的持续承诺。
+
+## 问题
+
+当一个团队决定是否使用 InnerSource 项目时,他们的考虑因素之一是他们是否可以长期依赖于该项目。更换他们正在使用的工具/项目是有成本的,因此他们只希望在必要时进行这些投资,并获得切实的收益。
+
+开源项目的通常做法是按版本发步,并在发行说明中记录破坏性变更和新功能,同时发布二进制文件或 Docker 镜像链接。对于 InnerSource 项目、模块等来说,这种做法可能不那么透明,或没有很好的文档化/可见性。
+
+缺乏明确的发布制品或规范的发布流程的 InnerSource 项目往往会削弱团队间的信任。在这种情况下,其他团队难以预知下一个版本的发布时间,也无法准确把握可能出现的破坏性变更。
+
+## 上下文
+
+大型组织会生产大量的内部软件,其中很多软件都可以被整个公司的团队重复使用。运维工具、软件库和基础设施即代码(IaC)模块就是这类软件的常见例子。然而,大多数大型企业不会发布内部软件供公司其他团队使用。出现这种情况的原因可能是他们太忙,没有时间提供文档,或者没有意识到项目对其他人的价值。
+
+应该有一个内部或公共代码库来存储源代码,但团队缺乏一个让外部团队使用软件的流程。
+
+随着组织的发展和更多内部软件的编写,这种模式的价值也在增加。
+
+## 约束
+
+### 对于没有集中式 CI/CD 系统的组织来说很困难
+
+对于没有为工程师提供集中式 CI/CD 系统的组织而言,自动化构建和发布流程可能具有挑战性。团队可能需要建立自己的工具(Jenkins、Drone 等)。在没有 CI/CD 系统的情况下,仍然可以制作制品和发行说明,但可能需要在本地构建软件,并手动上传到托管制品的工具。
+
+### 增加了发布发行说明的负担
+
+除了构建源代码之外,如果无法自动生成 git 提交列表,编写发行说明可能会很枯燥。除了编写更多发布细节之外,还需要其他人手动完成。
+
+### 没有地方来托管制品增加了难度
+
+如果公司没有提供一个集中位置来存储制品(jar、npm 模块等)和 docker 镜像,工程师可能需要自己决定在哪里适合存储各版本软件。 GitHub 等工具可以提供此功能,但是,如果公司不使用这些流行工具之一,这可能会造成负担。
+
+## 解决方案
+
+通过提供清晰的**发行说明**和已发布的制品,可以增强人们的信心,让他们相信你发布的是值得信赖的优质产品。。
+
+以下是实现这一目标的关键要素:
+
+- 代码库中包含一个 CI/CD 流水线配置,可[自动化执行发布流程](https://opensource.guide/best-practices/#use-tools-to-automate-basic-maintenance-tasks)
+- 由 CI/CD 系统来生成制品(二进制、docker 镜像、jar 等等)
+- 发布的版本有清晰的标签,和[语义化的版本标记](https://github.com/semantic-release/semantic-release)
+- 发布内容包括新功能说明、错误修复和所有的“破坏性变更”。
+
+[这里](https://github.com/jaegertracing/jaeger/releases) 提供了一个高质量发行说明的范例。
+
+## 结果背景
+
+接触到您项目的团队会看到已发布的发行说明,并对您的工具充满信心。已发布的制品也会使您的产品使用起来更简单、更快捷。像这样定义明确、清晰可见的流程还有助于跨团队协作和新的贡献者。他们可以确信自己的贡献会在合理的时间内发布,并有明确的使用路径。
+
+发行说明也是[表扬参与者](praise-participants.md)的绝佳机会!众所周知,对于希望参与项目的新人来说,[文档是极其重要的](base-documentation.md)。表扬外部队友的贡献,包括文档和发布说明,是培养社区和扩大用户群的好方法。
+
+## 已知实例
+
+* Comcast (多个项目)
+* GitHub (多个项目)
+
+## 作者
+
+David Grizzanti
+
+## 状态
+
+结构化
+
+## 翻译校对
+
+* **2024-10-08** 翻译[Chris Yang](https:github.com/node)
+* **2024-10-12** 校对[姜宁](https://github.com/willemjiang)