diff --git a/docs/github-settings/2. repository-variables.md b/docs/github-settings/2. repository-variables.md
index 5a9871b70..8d6d733f6 100644
--- a/docs/github-settings/2. repository-variables.md
+++ b/docs/github-settings/2. repository-variables.md
@@ -18,7 +18,7 @@ variables:
>[!TIP]
>GitHub's API documentation defines these inputs and types:
->1. [Update a repository variable](https://docs.github.com/en/rest/actions/variables?apiVersion=2022-11-28#update-a-repository-variable)
+>1. [Update a repository variable](https://docs.github.com/en/rest/actions/variables?apiVersion=2026-03-10#update-a-repository-variable)
diff --git a/docs/github-settings/3. collaborators.md b/docs/github-settings/3. collaborators.md
index bbc971c14..56a0ac595 100644
--- a/docs/github-settings/3. collaborators.md
+++ b/docs/github-settings/3. collaborators.md
@@ -20,8 +20,8 @@ collaborators:
>[!TIP]
>GitHub's API documentation defines these inputs and types:
->1. [Add a repository collaborator](https://docs.github.com/en/rest/collaborators/collaborators?apiVersion=2022-11-28#add-a-repository-collaborator)
->2. [Remove a repository collaborator](https://docs.github.com/en/rest/collaborators/collaborators?apiVersion=2022-11-28#remove-a-repository-collaborator)
+>1. [Add a repository collaborator](https://docs.github.com/en/rest/collaborators/collaborators?apiVersion=2026-03-10#add-a-repository-collaborator)
+>2. [Remove a repository collaborator](https://docs.github.com/en/rest/collaborators/collaborators?apiVersion=2026-03-10#remove-a-repository-collaborator)
diff --git a/docs/github-settings/4. teams.md b/docs/github-settings/4. teams.md
index 523bc49c8..d65bd1611 100644
--- a/docs/github-settings/4. teams.md
+++ b/docs/github-settings/4. teams.md
@@ -20,7 +20,7 @@ teams:
>[!TIP]
>GitHub's API documentation defines these inputs and types:
->1. [Add or update team repository permissions](https://docs.github.com/en/rest/teams/teams?apiVersion=2022-11-28#add-or-update-team-repository-permissions)
+>1. [Add or update team repository permissions](https://docs.github.com/en/rest/teams/teams?apiVersion=2026-03-10#add-or-update-team-repository-permissions)
diff --git a/docs/github-settings/5. branch-protection.md b/docs/github-settings/5. branch-protection.md
index 4874a1d79..7a235dffe 100644
--- a/docs/github-settings/5. branch-protection.md
+++ b/docs/github-settings/5. branch-protection.md
@@ -55,7 +55,7 @@ branches:
>[!TIP]
>GitHub's API documentation defines these inputs and types:
->1. [Update a repository variable](https://docs.github.com/en/rest/actions/variables?apiVersion=2022-11-28#update-a-repository-variable)
+>1. [Update branch protection](https://docs.github.com/en/rest/branches/branch-protection?apiVersion=2026-03-10#update-branch-protection)
diff --git a/docs/github-settings/6. deployment-environments.md b/docs/github-settings/6. deployment-environments.md
index c4705b33b..87c9e6b81 100644
--- a/docs/github-settings/6. deployment-environments.md
+++ b/docs/github-settings/6. deployment-environments.md
@@ -46,9 +46,9 @@ environments:
>[!TIP]
>GitHub's API documentation defines these inputs and types:
->1. [Create or update an environment](https://docs.github.com/en/rest/deployments/environments?apiVersion=2022-11-28#create-or-update-an-environment)
->2. [Create a deployment branch policy](https://docs.github.com/en/rest/deployments/branch-policies?apiVersion=2022-11-28#create-a-deployment-branch-policy)
->3. [Create an environment variable](https://docs.github.com/en/rest/actions/variables?apiVersion=2022-11-28#create-an-environment-variable)
+>1. [Create or update an environment](https://docs.github.com/en/rest/deployments/environments?apiVersion=2026-03-10#create-or-update-an-environment)
+>2. [Create a deployment branch policy](https://docs.github.com/en/rest/deployments/branch-policies?apiVersion=2026-03-10#create-a-deployment-branch-policy)
+>3. [Create an environment variable](https://docs.github.com/en/rest/actions/variables?apiVersion=2026-03-10#create-an-environment-variable)
diff --git a/docs/github-settings/7. autolinks.md b/docs/github-settings/7. autolinks.md
index 9ae3c19f7..26b5143ca 100644
--- a/docs/github-settings/7. autolinks.md
+++ b/docs/github-settings/7. autolinks.md
@@ -20,7 +20,7 @@ variables:
>[!TIP]
>GitHub's API documentation defines these inputs and types:
->1. [Create an autolink reference for a repository](https://docs.github.com/en/rest/repos/autolinks?apiVersion=2022-11-28#create-an-autolink-reference-for-a-repository)
+>1. [Create an autolink reference for a repository](https://docs.github.com/en/rest/repos/autolinks?apiVersion=2026-03-10#create-an-autolink-reference-for-a-repository)
diff --git a/docs/github-settings/8. labels.md b/docs/github-settings/8. labels.md
index ddf4c4b43..cee530f47 100644
--- a/docs/github-settings/8. labels.md
+++ b/docs/github-settings/8. labels.md
@@ -19,9 +19,9 @@ labels:
>[!TIP]
>GitHub's API documentation defines these inputs and types:
->1. [Create a label](https://docs.github.com/en/rest/issues/labels?apiVersion=2022-11-28#create-a-label)
->2. [Update a label](https://docs.github.com/en/rest/issues/labels?apiVersion=2022-11-28#update-a-label)
->3. [Delete a label](https://docs.github.com/en/rest/issues/labels?apiVersion=2022-11-28#delete-a-label)
+>1. [Create a label](https://docs.github.com/en/rest/issues/labels?apiVersion=2026-03-10#create-a-label)
+>2. [Update a label](https://docs.github.com/en/rest/issues/labels?apiVersion=2026-03-10#update-a-label)
+>3. [Delete a label](https://docs.github.com/en/rest/issues/labels?apiVersion=2026-03-10#delete-a-label)
|
diff --git a/docs/sample-settings/sample-deployment-settings.yml b/docs/sample-settings/sample-deployment-settings.yml
index f3c6e8b37..87beeafd3 100644
--- a/docs/sample-settings/sample-deployment-settings.yml
+++ b/docs/sample-settings/sample-deployment-settings.yml
@@ -27,10 +27,10 @@ overridevalidators:
error: |
`Branch protection required_approving_review_count cannot be overidden to a lower value`
script: |
- console.log(`baseConfig ${JSON.stringify(baseconfig)}`)
- console.log(`overrideConfig ${JSON.stringify(overrideconfig)}`)
- if (baseconfig.protection.required_pull_request_reviews.required_approving_review_count && overrideconfig.protection.required_pull_request_reviews.required_approving_review_count ) {
- return overrideconfig.protection.required_pull_request_reviews.required_approving_review_count >= baseconfig.protection.required_pull_request_reviews.required_approving_review_count
+ const baseCount = baseconfig?.protection?.required_pull_request_reviews?.required_approving_review_count
+ const overrideCount = overrideconfig?.protection?.required_pull_request_reviews?.required_approving_review_count
+ if (baseCount && overrideCount) {
+ return overrideCount >= baseCount
}
return true
- plugin: labels
diff --git a/docs/sample-settings/settings.yml b/docs/sample-settings/settings.yml
index 7f57d55a7..edc2b2dcb 100644
--- a/docs/sample-settings/settings.yml
+++ b/docs/sample-settings/settings.yml
@@ -1,7 +1,7 @@
# This settings file can be used to create org-level settings
# This is the settings that need to be applied to all repositories in the org
-# See https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#create-an-organization-repository for all available settings for a repository
+# See https://docs.github.com/en/rest/repos/repos?apiVersion=2026-03-10#create-an-organization-repository for all available settings for a repository
repository:
# A short description of the repository that will show up on GitHub
description: description of the repo
@@ -123,7 +123,7 @@ milestones:
state: open
# Collaborators: give specific users access to any repository.
-# See https://docs.github.com/en/rest/collaborators/collaborators?apiVersion=2022-11-28#add-a-repository-collaborator for available options
+# See https://docs.github.com/en/rest/collaborators/collaborators?apiVersion=2026-03-10#add-a-repository-collaborator for available options
collaborators:
- username: regpaco
# The permission to grant the collaborator. Can be one of:
@@ -144,7 +144,7 @@ collaborators:
- another-repo
# Teams
-# See https://docs.github.com/en/rest/teams/teams?apiVersion=2022-11-28#create-a-team for available options
+# See https://docs.github.com/en/rest/teams/teams?apiVersion=2026-03-10#create-a-team for available options
teams:
- name: core
# The permission to grant the team. Can be one of:
@@ -173,7 +173,7 @@ teams:
- actions-demo
# Branch protection rules
-# See https://docs.github.com/en/rest/branches/branch-protection?apiVersion=2022-11-28#update-branch-protection for available options
+# See https://docs.github.com/en/rest/branches/branch-protection?apiVersion=2026-03-10#update-branch-protection for available options
branches:
# If the name of the branch value is specified as `default`, then the app will create a branch protection rule to apply against the default branch in the repo
- name: default
@@ -212,7 +212,7 @@ branches:
teams: []
# Custom properties
-# See https://docs.github.com/en/rest/repos/custom-properties?apiVersion=2022-11-28
+# See https://docs.github.com/en/rest/repos/custom-properties?apiVersion=2026-03-10
custom_properties:
- name: test
value: test
@@ -231,7 +231,7 @@ validator:
pattern: "[a-zA-Z0-9_-]+"
# Rulesets
-# See https://docs.github.com/en/rest/orgs/rules?apiVersion=2022-11-28#create-an-organization-repository-rulesetfor available options
+# See https://docs.github.com/en/rest/orgs/rules?apiVersion=2026-03-10#create-an-organization-repository-rulesetfor available options
rulesets:
- name: Template
# The target of the ruleset. Can be one of:
diff --git a/helm/safe-settings/README.md b/helm/safe-settings/README.md
index a5112cfb2..97cd5b01b 100644
--- a/helm/safe-settings/README.md
+++ b/helm/safe-settings/README.md
@@ -9,22 +9,15 @@ A Helm chart for Kubernetes
| affinity | object | `{}` | |
| autoscaling.enabled | bool | `false` | |
| autoscaling.maxReplicas | int | `10` | |
-| autoscaling.minReplicas | int | `2` | |
+| autoscaling.minReplicas | int | `1` | |
| autoscaling.targetCPUUtilizationPercentage | int | `80` | |
-| deploymentConfig.configvalidators[0].error | string | `"`Admin cannot be assigned to collaborators`\n"` | |
-| deploymentConfig.configvalidators[0].plugin | string | `"collaborators"` | |
-| deploymentConfig.configvalidators[0].script | string | `"console.log(`baseConfig ${JSON.stringify(baseconfig)}`)\nreturn baseconfig.permission != 'admin'\n"` | |
-| deploymentConfig.overridevalidators[0].error | string | `"`Branch protection required_approving_review_count cannot be overidden to a lower value`\n"` | |
-| deploymentConfig.overridevalidators[0].plugin | string | `"branches"` | |
-| deploymentConfig.overridevalidators[0].script | string | `"console.log(`baseConfig ${JSON.stringify(baseconfig)}`)\nconsole.log(`overrideConfig ${JSON.stringify(overrideconfig)}`)\nif (baseconfig.protection.required_pull_request_reviews.required_approving_review_count && overrideconfig.protection.required_pull_request_reviews.required_approving_review_count ) {\n return overrideconfig.protection.required_pull_request_reviews.required_approving_review_count >= baseconfig.protection.required_pull_request_reviews.required_approving_review_count\n}\nreturn true\n"` | |
-| deploymentConfig.overridevalidators[1].error | string | `"Some error\n"` | |
-| deploymentConfig.overridevalidators[1].plugin | string | `"labels"` | |
-| deploymentConfig.overridevalidators[1].script | string | `"return true\n"` | |
+| deploymentConfig.configvalidators | list | [] | |
+| deploymentConfig.overridevalidators | list | [] | |
| deploymentConfig.restrictedRepos.exclude[0] | string | `"^admin$"` | |
| deploymentConfig.restrictedRepos.exclude[1] | string | `"^\\.github$"` | |
| deploymentConfig.restrictedRepos.exclude[2] | string | `"^safe-settings$"` | |
| deploymentConfig.restrictedRepos.exclude[3] | string | `".*-test"` | |
-| deploymentConfig.restrictedRepos.include[0] | string | `"^test$"` | |
+| deploymentConfig.restrictedRepos.include | null | `null` | |
| env | list | `[]` | |
| envFrom | list | `[]` | |
| extraObjects | list | `[]` | Add dynamic manifests via values. Example: extraObjects: - kind: ConfigMap apiVersion: v1 metadata: name: extra-cm-{{ .Release.Name }} data: | extra.yml: "does-my-install-need-extra-info: true" |
@@ -44,7 +37,7 @@ A Helm chart for Kubernetes
| nodeSelector | object | `{}` | |
| podAnnotations | object | `{}` | |
| podSecurityContext | object | `{}` | |
-| replicaCount | int | `2` | |
+| replicaCount | int | `1` | |
| resources | object | `{}` | |
| securityContext.allowPrivilegeEscalation | bool | `false` | |
| securityContext.capabilities.drop[0] | string | `"ALL"` | |
@@ -52,7 +45,7 @@ A Helm chart for Kubernetes
| securityContext.readOnlyRootFilesystem | bool | `true` | |
| securityContext.runAsNonRoot | bool | `true` | |
| securityContext.runAsUser | int | `1000` | |
-| service.port | int | `80` | |
+| service.port | int | `3000` | |
| service.type | string | `"ClusterIP"` | |
| serviceAccount.annotations | object | `{}` | |
| serviceAccount.automountServiceAccountToken | bool | `false` | |
diff --git a/helm/safe-settings/templates/deployment.yaml b/helm/safe-settings/templates/deployment.yaml
index 5d1d6bc50..cf75673ec 100644
--- a/helm/safe-settings/templates/deployment.yaml
+++ b/helm/safe-settings/templates/deployment.yaml
@@ -43,7 +43,7 @@ spec:
{{- end }}
ports:
- name: http
- containerPort: {{ .Values.service.port }}
+ containerPort: 3000
protocol: TCP
resources:
{{- toYaml .Values.resources | nindent 12 }}
diff --git a/helm/safe-settings/values.yaml b/helm/safe-settings/values.yaml
index 4a9253c61..99ffa497f 100644
--- a/helm/safe-settings/values.yaml
+++ b/helm/safe-settings/values.yaml
@@ -2,7 +2,7 @@
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
-replicaCount: 2
+replicaCount: 1
image:
repository: ghcr.io/github/safe-settings
@@ -45,6 +45,26 @@ envFrom: []
# name: app-env
env: []
+# - name: CRON
+# value: '*/5 * * * *'
+# - name: APP_ID
+# valueFrom:
+# secretKeyRef:
+# name: github_app_secret
+# key: app_id
+# optional: false
+# - name: PRIVATE_KEY
+# valueFrom:
+# secretKeyRef:
+# name: github_app_secret
+# key: private_key
+# optional: false
+# - name: WEBHOOK_SECRET
+# valueFrom:
+# secretKeyRef:
+# name: github_app_secret
+# key: webhook_secret
+# optional: false
service:
type: ClusterIP
@@ -83,7 +103,7 @@ resources:
autoscaling:
enabled: false
- minReplicas: 2
+ minReplicas: 1
maxReplicas: 10
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
@@ -104,30 +124,30 @@ deploymentConfig:
# If no file is specified, then the following repositories - 'admin', '.github', 'safe-settings' are exempted by default
exclude: ["^admin$", '^\.github$', "^safe-settings$", ".*-test"]
# Alternatively you can only include certain repos
- include: ["^test$"]
- configvalidators:
- - plugin: collaborators
- error: |
- `Admin cannot be assigned to collaborators`
- script: |
- console.log(`baseConfig ${JSON.stringify(baseconfig)}`)
- return baseconfig.permission != 'admin'
- overridevalidators:
- - plugin: branches
- error: |
- `Branch protection required_approving_review_count cannot be overidden to a lower value`
- script: |
- console.log(`baseConfig ${JSON.stringify(baseconfig)}`)
- console.log(`overrideConfig ${JSON.stringify(overrideconfig)}`)
- if (baseconfig.protection.required_pull_request_reviews.required_approving_review_count && overrideconfig.protection.required_pull_request_reviews.required_approving_review_count ) {
- return overrideconfig.protection.required_pull_request_reviews.required_approving_review_count >= baseconfig.protection.required_pull_request_reviews.required_approving_review_count
- }
- return true
- - plugin: labels
- error: |
- Some error
- script: |
- return true
+ include: null # ["^test$"]
+ configvalidators: []
+ # - plugin: collaborators
+ # error: |
+ # `Admin cannot be assigned to collaborators`
+ # script: |
+ # console.log(`baseConfig ${JSON.stringify(baseconfig)}`)
+ # return baseconfig.permission != 'admin'
+ overridevalidators: []
+ # - plugin: branches
+ # error: |
+ # `Branch protection required_approving_review_count cannot be overridden to a lower value`
+ # script: |
+ # console.log(`baseConfig ${JSON.stringify(baseconfig)}`)
+ # console.log(`overrideConfig ${JSON.stringify(overrideconfig)}`)
+ # if (baseconfig.protection.required_pull_request_reviews.required_approving_review_count && overrideconfig.protection.required_pull_request_reviews.required_approving_review_count ) {
+ # return overrideconfig.protection.required_pull_request_reviews.required_approving_review_count >= baseconfig.protection.required_pull_request_reviews.required_approving_review_count
+ # }
+ # return true
+ # - plugin: labels
+ # error: |
+ # Some error
+ # script: |
+ # return true
# -- Add dynamic manifests via values. Example:
# extraObjects:
diff --git a/index.js b/index.js
index f29887fee..8b1305ebe 100644
--- a/index.js
+++ b/index.js
@@ -161,7 +161,7 @@ module.exports = (robot, { getRouter }, Settings = require('./lib/settings')) =>
async function listAllInstallations () {
const github = await robot.auth()
return github.paginate(
- github.apps.listInstallations.endpoint.merge({ per_page: 100 })
+ github.rest.apps.listInstallations.endpoint.merge({ per_page: 100 })
)
}
@@ -337,7 +337,7 @@ module.exports = (robot, { getRouter }, Settings = require('./lib/settings')) =>
async function createCheckRun (context, pull_request, head_sha, head_branch) {
const { payload } = context
// robot.log.debug(`Check suite was requested! for ${context.repo()} ${pull_request.number} ${head_sha} ${head_branch}`)
- const res = await context.octokit.checks.create({
+ const res = await context.octokit.rest.checks.create({
owner: payload.repository.owner.login,
repo: payload.repository.name,
name: 'Safe-setting validator',
@@ -352,7 +352,7 @@ module.exports = (robot, { getRouter }, Settings = require('./lib/settings')) =>
if (installations.length > 0) {
const installation = installations[0]
const github = await robot.auth(installation.id)
- const app = await github.apps.getAuthenticated()
+ const app = await github.rest.apps.getAuthenticated()
appSlug = app.data.slug
robot.log.info(`Validated the app is configured properly = \n${JSON.stringify(app.data, null, 2)}`)
}
@@ -792,11 +792,11 @@ module.exports = (robot, { getRouter }, Settings = require('./lib/settings')) =>
output: { title: 'Starting NOP', summary: 'initiating...' }
}
robot.log.debug(`Updating check run ${JSON.stringify(params)}`)
- await context.octokit.checks.update(params)
+ await context.octokit.rest.checks.update(params)
params = Object.assign(context.repo(), { pull_number: pull_request.number })
- const changes = await context.octokit.pulls.listFiles(params)
+ const changes = await context.octokit.rest.pulls.listFiles(params)
const files = changes.data.map(f => { return f.filename })
const settingsModified = files.includes(Settings.FILE_PATH)
@@ -828,7 +828,7 @@ module.exports = (robot, { getRouter }, Settings = require('./lib/settings')) =>
output: { title: 'No Safe-settings changes detected', summary: 'No changes detected' }
}
robot.log.debug(`Completing check run ${JSON.stringify(params)}`)
- await context.octokit.checks.update(params)
+ await context.octokit.rest.checks.update(params)
})
robot.on('repository.created', async context => {
@@ -899,7 +899,7 @@ module.exports = (robot, { getRouter }, Settings = require('./lib/settings')) =>
if (overwrite) return filePath
const { owner } = context.repo()
try {
- await context.octokit.repos.getContent({ owner, repo: env.ADMIN_REPO, path: filePath })
+ await context.octokit.rest.repos.getContent({ owner, repo: env.ADMIN_REPO, path: filePath })
// File exists -> redirect to .sample
return filePath.replace(/(\.ya?ml)$/i, '.sample$1')
} catch (e) {
@@ -916,12 +916,12 @@ module.exports = (robot, { getRouter }, Settings = require('./lib/settings')) =>
const { owner } = context.repo()
const repo = env.ADMIN_REPO
- const repoInfo = await github.repos.get({ owner, repo })
+ const repoInfo = await github.rest.repos.get({ owner, repo })
const baseBranch = repoInfo.data.default_branch
- const baseRef = await github.git.getRef({ owner, repo, ref: `heads/${baseBranch}` })
+ const baseRef = await github.rest.git.getRef({ owner, repo, ref: `heads/${baseBranch}` })
const branchName = `safe-settings-generate/${opts.sourceType}-${opts.sourceValue}-${Date.now()}`.replace(/[^a-zA-Z0-9/_.-]/g, '-')
- await github.git.createRef({
+ await github.rest.git.createRef({
owner,
repo,
ref: `refs/heads/${branchName}`,
@@ -930,13 +930,13 @@ module.exports = (robot, { getRouter }, Settings = require('./lib/settings')) =>
let existingSha
try {
- const existing = await github.repos.getContent({ owner, repo, path: filePath, ref: branchName })
+ const existing = await github.rest.repos.getContent({ owner, repo, path: filePath, ref: branchName })
existingSha = existing.data.sha
} catch (e) {
if (e.status !== 404) throw e
}
- await github.repos.createOrUpdateFileContents({
+ await github.rest.repos.createOrUpdateFileContents({
owner,
repo,
path: filePath,
@@ -946,7 +946,7 @@ module.exports = (robot, { getRouter }, Settings = require('./lib/settings')) =>
sha: existingSha
})
- const pr = await github.pulls.create({
+ const pr = await github.rest.pulls.create({
owner,
repo,
title: `Generate safe-settings config for ${opts.sourceType}: ${opts.sourceValue}`,
diff --git a/lib/configManager.js b/lib/configManager.js
index e7356da18..b3022e1b8 100644
--- a/lib/configManager.js
+++ b/lib/configManager.js
@@ -19,7 +19,7 @@ module.exports = class ConfigManager {
try {
const repo = { owner: this.context.repo().owner, repo: env.ADMIN_REPO }
const params = Object.assign(repo, { path: filePath, ref: this.ref })
- const response = await this.context.octokit.repos.getContent(params)
+ const response = await this.context.octokit.rest.repos.getContent(params)
// Ignore in case path is a folder
// - https://developer.github.com/v3/repos/contents/#response-if-content-is-a-directory
diff --git a/lib/env.js b/lib/env.js
index 94c0ea742..8ed5d927e 100644
--- a/lib/env.js
+++ b/lib/env.js
@@ -6,5 +6,7 @@ module.exports = {
CREATE_PR_COMMENT: process.env.CREATE_PR_COMMENT || 'true',
CREATE_ERROR_ISSUE: process.env.CREATE_ERROR_ISSUE || 'true',
BLOCK_REPO_RENAME_BY_HUMAN: process.env.BLOCK_REPO_RENAME_BY_HUMAN || 'false',
- FULL_SYNC_NOP: process.env.FULL_SYNC_NOP === 'true'
+ FULL_SYNC_NOP: process.env.FULL_SYNC_NOP === 'true',
+ GHE_HOST: process.env.GHE_HOST,
+ GHE_PROTOCOL: process.env.GHE_PROTOCOL,
}
diff --git a/lib/plugins/archive.js b/lib/plugins/archive.js
index f3d7c4c3a..c00c827bb 100644
--- a/lib/plugins/archive.js
+++ b/lib/plugins/archive.js
@@ -11,7 +11,7 @@ module.exports = class Archive {
async getRepo () {
try {
- const { data } = await this.github.repos.get({
+ const { data } = await this.github.rest.repos.get({
owner: this.repo.owner,
repo: this.repo.repo
})
@@ -32,13 +32,13 @@ module.exports = class Archive {
return new NopCommand(
this.constructor.name,
this.repo,
- this.github.repos.update.endpoint(this.settings),
+ this.github.rest.repos.update.endpoint(this.settings),
change,
'INFO'
)
}
- const { data } = await this.github.repos.update({
+ const { data } = await this.github.rest.repos.update({
owner: this.repo.owner,
repo: this.repo.repo,
archived
diff --git a/lib/plugins/autolinks.js b/lib/plugins/autolinks.js
index 128e40214..5145fe9cd 100644
--- a/lib/plugins/autolinks.js
+++ b/lib/plugins/autolinks.js
@@ -8,7 +8,7 @@ module.exports = class Autolinks extends Diffable {
// }
async find () {
- const { data } = await this.github.repos.listAutolinks(this.repo)
+ const { data } = await this.github.rest.repos.listAutolinks(this.repo)
return data
}
@@ -19,7 +19,7 @@ module.exports = class Autolinks extends Diffable {
changed (existing, attr) {
// is_alphanumeric was added mid-2023. In order to continue to support settings yamls which dont specify this
// attribute, consider an unset is_alphanumeric as `true` (since that is the default value in the API)
- // https://docs.github.com/en/rest/repos/autolinks?apiVersion=2022-11-28#create-an-autolink-reference-for-a-repository
+ // https://docs.github.com/en/rest/repos/autolinks?apiVersion=2026-03-10#create-an-autolink-reference-for-a-repository
const isAlphaNumericMatch = attr.is_alphanumeric === undefined
? existing.is_alphanumeric // === true, the default
: attr.is_alphanumeric === existing.is_alphanumeric
@@ -43,13 +43,13 @@ module.exports = class Autolinks extends Diffable {
return new NopCommand(
this.constructor.name,
this.repo,
- this.github.repos.createAutolink.endpoint(attrs),
+ this.github.rest.repos.createAutolink.endpoint(attrs),
'Add autolink'
)
}
try {
- return this.github.repos.createAutolink(attrs)
+ return this.github.rest.repos.createAutolink(attrs)
} catch (e) {
if (e?.response?.data?.errors?.[0]?.code === 'already_exists') {
this.log.debug(`Did not update ${key_prefix}, as it already exists`)
@@ -68,10 +68,10 @@ module.exports = class Autolinks extends Diffable {
return new NopCommand(
this.constructor.name,
this.repo,
- this.github.repos.deleteAutolink.endpoint(attrs),
+ this.github.rest.repos.deleteAutolink.endpoint(attrs),
'Remove autolink'
)
}
- return this.github.repos.deleteAutolink(attrs)
+ return this.github.rest.repos.deleteAutolink(attrs)
}
}
diff --git a/lib/plugins/branches.js b/lib/plugins/branches.js
index 2738d7003..ec3ab7c79 100644
--- a/lib/plugins/branches.js
+++ b/lib/plugins/branches.js
@@ -5,10 +5,18 @@ const Overrides = require('./overrides')
const ignorableFields = []
const previewHeaders = { accept: 'application/vnd.github.hellcat-preview+json,application/vnd.github.luke-cage-preview+json,application/vnd.github.zzzax-preview+json' }
const overrides = {
- 'contexts': {
- 'action': 'reset',
- 'type': 'array'
- },
+ contexts: {
+ action: 'reset',
+ type: 'array'
+ }
+}
+
+// GitHub API requires these fields to be present in updateBranchProtection calls
+// See: https://docs.github.com/rest/branches/branch-protection#update-branch-protection
+const requiredBranchProtectionDefaults = {
+ required_status_checks: null,
+ enforce_admins: null,
+ restrictions: null
}
module.exports = class Branches extends ErrorStash {
@@ -23,7 +31,7 @@ module.exports = class Branches extends ErrorStash {
sync () {
const resArray = []
- return this.github.repos.get(this.repo).then((currentRepo) => {
+ return this.github.rest.repos.get(this.repo).then((currentRepo) => {
return Promise.all(
this.branches
.filter(branch => branch.protection !== undefined)
@@ -39,12 +47,12 @@ module.exports = class Branches extends ErrorStash {
const params = Object.assign({}, p)
if (this.nop) {
resArray.push(
- new NopCommand(this.constructor.name, this.repo, this.github.repos.deleteBranchProtection.endpoint(params), 'Delete Branch Protection')
+ new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.deleteBranchProtection.endpoint(params), 'Delete Branch Protection')
)
return Promise.resolve(resArray)
}
- return this.github.repos.deleteBranchProtection(params).catch(e => { return [] })
+ return this.github.rest.repos.deleteBranchProtection(params).catch(e => { return [] })
} else {
// Branch protection is not empty
let p = Object.assign(this.repo, { branch: branch.name })
@@ -54,9 +62,9 @@ module.exports = class Branches extends ErrorStash {
}
// Hack to handle closures and keep params from changing
const params = Object.assign({}, p)
- return this.github.repos.getBranchProtection(params).then((result) => {
+ return this.github.rest.repos.getBranchProtection(params).then((result) => {
const mergeDeep = new MergeDeep(this.log, this.github, ignorableFields)
- const changes = mergeDeep.compareDeep({ branch: { protection: this.reformatAndReturnBranchProtection(result.data) } }, { branch: { protection: Overrides.removeOverrides(overrides, branch.protection, result.data) } })
+ const changes = mergeDeep.compareDeep({ branch: { protection: this.reformatAndReturnBranchProtection(structuredClone(result.data)) } }, { branch: { protection: Overrides.removeOverrides(overrides, branch.protection, result.data) } })
const results = { msg: `The following changes will be applied to the branch protection for ${params.branch} branch`, additions: changes.additions, modifications: changes.modifications, deletions: changes.deletions }
this.log.debug(`Result of compareDeep = ${JSON.stringify(results)}`)
@@ -73,27 +81,27 @@ module.exports = class Branches extends ErrorStash {
resArray.push(new NopCommand(this.constructor.name, this.repo, null, results))
}
- Object.assign(params, branch.protection, { headers: previewHeaders })
+ Object.assign(params, requiredBranchProtectionDefaults, this.reformatAndReturnBranchProtection(structuredClone(result.data)), Overrides.removeOverrides(overrides, branch.protection, result.data), { headers: previewHeaders })
if (this.nop) {
- resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.repos.updateBranchProtection.endpoint(params), 'Update Branch Protection'))
+ resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.updateBranchProtection.endpoint(params), 'Update Branch Protection'))
return Promise.resolve(resArray)
}
this.log.debug(`Updating branch protection ${JSON.stringify(params)}`)
- return this.github.repos.updateBranchProtection(params).then(res => this.log.debug(`Branch protection applied successfully ${JSON.stringify(res.url)}`)).catch(e => { this.logError(`Error applying branch protection ${JSON.stringify(e)}`); return [] })
+ return this.github.rest.repos.updateBranchProtection(params).then(res => this.log.debug(`Branch protection applied successfully ${JSON.stringify(res.url)}`)).catch(e => { this.logError(`Error applying branch protection ${JSON.stringify(e)}`); return [] })
}).catch((e) => {
if (e.status === 404) {
- Object.assign(params, Overrides.removeOverrides(overrides, branch.protection, {}), { headers: previewHeaders })
+ Object.assign(params, requiredBranchProtectionDefaults, Overrides.removeOverrides(overrides, branch.protection, {}), { headers: previewHeaders })
if (this.nop) {
- resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.repos.updateBranchProtection.endpoint(params), 'Add Branch Protection'))
+ resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.updateBranchProtection.endpoint(params), 'Add Branch Protection'))
return Promise.resolve(resArray)
}
this.log.debug(`Adding branch protection ${JSON.stringify(params)}`)
- return this.github.repos.updateBranchProtection(params).then(res => this.log.debug(`Branch protection applied successfully ${JSON.stringify(res.url)}`)).catch(e => { this.logError(`Error applying branch protection ${JSON.stringify(e)}`); return [] })
+ return this.github.rest.repos.updateBranchProtection(params).then(res => this.log.debug(`Branch protection applied successfully ${JSON.stringify(res.url)}`)).catch(e => { this.logError(`Error applying branch protection ${JSON.stringify(e)}`); return [] })
} else {
this.logError(e)
if (this.nop) {
- resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.repos.updateBranchProtection.endpoint(params), `${e}`, 'ERROR'))
+ resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.updateBranchProtection.endpoint(params), `${e}`, 'ERROR'))
return Promise.resolve(resArray)
}
}
@@ -123,6 +131,29 @@ module.exports = class Branches extends ErrorStash {
protection.required_linear_history = protection.required_linear_history && protection.required_linear_history.enabled
protection.enforce_admins = protection.enforce_admins && protection.enforce_admins.enabled
protection.required_signatures = protection.required_signatures && protection.required_signatures.enabled
+ protection.allow_force_pushes = protection.allow_force_pushes && protection.allow_force_pushes.enabled
+ protection.block_creations = protection.block_creations && protection.block_creations.enabled
+ protection.lock_branch = protection.lock_branch && protection.lock_branch.enabled
+ protection.allow_fork_syncing = protection.allow_fork_syncing && protection.allow_fork_syncing.enabled
+ if (protection.restrictions) {
+ delete protection.restrictions.url
+ protection.restrictions.users = Array.isArray(protection.restrictions.users)
+ ? protection.restrictions.users.map(user => user.login || user)
+ : []
+ protection.restrictions.teams = Array.isArray(protection.restrictions.teams)
+ ? protection.restrictions.teams.map(team => team.slug || team)
+ : []
+ protection.restrictions.apps = Array.isArray(protection.restrictions.apps)
+ ? protection.restrictions.apps.map(app => app.slug || app)
+ : []
+ }
+ if (protection.required_status_checks) {
+ delete protection.required_status_checks.url
+ delete protection.required_status_checks.contexts_url
+ if (Array.isArray(protection.required_status_checks.contexts) && protection.required_status_checks.contexts.length === 0) {
+ delete protection.required_status_checks.contexts
+ }
+ }
if (protection.required_pull_request_reviews && !protection.required_pull_request_reviews.bypass_pull_request_allowances) {
protection.required_pull_request_reviews.bypass_pull_request_allowances = { apps: [], teams: [], users: [] }
}
diff --git a/lib/plugins/collaborators.js b/lib/plugins/collaborators.js
index f3758709a..5fba30eb2 100644
--- a/lib/plugins/collaborators.js
+++ b/lib/plugins/collaborators.js
@@ -15,13 +15,13 @@ module.exports = class Collaborators extends Diffable {
}
find () {
- // https://docs.github.com/en/rest/collaborators/collaborators?apiVersion=2022-11-28
+ // https://docs.github.com/en/rest/collaborators/collaborators?apiVersion=2026-03-10
// 'outside' means all outside collaborators of an organization-owned repository.
// 'direct' means all collaborators with permissions to an organization-owned repository, regardless of organization membership status. (includes outside collaborators)
// 'all' means all collaborators the authenticated user can see.
// We are using 'direct' to avoid double listing users outside collaborators and team members.
- return Promise.all([this.github.repos.listCollaborators({ repo: this.repo.repo, owner: this.repo.owner, affiliation: 'direct' }),
- this.github.repos.listInvitations({ repo: this.repo.repo, owner: this.repo.owner })])
+ return Promise.all([this.github.rest.repos.listCollaborators({ repo: this.repo.repo, owner: this.repo.owner, affiliation: 'direct' }),
+ this.github.rest.repos.listInvitations({ repo: this.repo.repo, owner: this.repo.owner })])
.then(res => {
const mapCollaborator = user => {
return {
@@ -74,10 +74,10 @@ module.exports = class Collaborators extends Diffable {
const data = Object.assign({}, attrs, this.repo)
if (this.nop) {
return Promise.resolve([
- new NopCommand(this.constructor.name, this.repo, this.github.repos.addCollaborator.endpoint(data), 'Add Collaborators')
+ new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.addCollaborator.endpoint(data), 'Add Collaborators')
])
}
- return this.github.repos.addCollaborator(data)
+ return this.github.rest.repos.addCollaborator(data)
}
updateInvite (invitation_id, permissions) {
@@ -89,10 +89,10 @@ module.exports = class Collaborators extends Diffable {
}, this.repo)
if (this.nop) {
return Promise.resolve([
- new NopCommand(this.constructor.name, this.repo, this.github.repos.updateInvitation.endpoint(data), 'Update Invitation')
+ new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.updateInvitation.endpoint(data), 'Update Invitation')
])
}
- return this.github.repos.updateInvitation(data)
+ return this.github.rest.repos.updateInvitation(data)
}
remove (existing) {
@@ -100,20 +100,20 @@ module.exports = class Collaborators extends Diffable {
const data = Object.assign({ invitation_id: existing.invitation_id }, this.repo)
if (this.nop) {
return Promise.resolve([
- new NopCommand(this.constructor.name, this.repo, this.github.repos.deleteInvitation.endpoint(data),
+ new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.deleteInvitation.endpoint(data),
'Delete Invitation')
])
}
- return this.github.repos.deleteInvitation(data)
+ return this.github.rest.repos.deleteInvitation(data)
} else {
const data = Object.assign({ username: existing.username }, this.repo)
if (this.nop) {
return Promise.resolve([
- new NopCommand(this.constructor.name, this.repo, this.github.repos.removeCollaborator.endpoint(data),
+ new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.removeCollaborator.endpoint(data),
'Remove Collaborator')
])
}
- return this.github.repos.removeCollaborator(data)
+ return this.github.rest.repos.removeCollaborator(data)
}
}
}
diff --git a/lib/plugins/custom_properties.js b/lib/plugins/custom_properties.js
index 35f0144da..ed9202b8c 100644
--- a/lib/plugins/custom_properties.js
+++ b/lib/plugins/custom_properties.js
@@ -39,7 +39,7 @@ module.exports = class CustomProperties extends Diffable {
this.log.debug(`Getting all custom properties for the repo ${repoFullName}`)
const customProperties = await this.github.paginate(
- this.github.rest.repos.getCustomPropertiesValues,
+ 'GET /repos/{owner}/{repo}/properties/values',
{
owner,
repo,
@@ -110,14 +110,14 @@ module.exports = class CustomProperties extends Diffable {
return new NopCommand(
this.constructor.name,
this.repo,
- this.github.rest.repos.createOrUpdateCustomPropertiesValues.endpoint(params),
+ this.github.request.endpoint('PATCH /repos/{owner}/{repo}/properties/values', params),
`${operation} Custom Property`
)
}
try {
this.log.debug(`${operation} Custom Property "${name}" for the repo ${repoFullName}`)
- await this.github.rest.repos.createOrUpdateCustomPropertiesValues(params)
+ await this.github.request('PATCH /repos/{owner}/{repo}/properties/values', params)
this.log.debug(`Successfully ${operation.toLowerCase()}d Custom Property "${name}" for the repo ${repoFullName}`)
} catch (e) {
this.logError(`Error during ${operation} Custom Property "${name}" for the repo ${repoFullName}: ${e.message || e}`)
diff --git a/lib/plugins/labels.js b/lib/plugins/labels.js
index 49558cc08..6e48d8dcb 100644
--- a/lib/plugins/labels.js
+++ b/lib/plugins/labels.js
@@ -34,8 +34,8 @@ module.exports = class Labels extends Diffable {
find () {
this.log.debug(`Finding labels for ${JSON.stringify(this.wrapAttrs({ per_page: 100 }))}`)
- const options = this.github.issues.listLabelsForRepo.endpoint.merge(this.wrapAttrs({ per_page: 100 }))
- return this.github.repos.get(this.repo).then(() => {
+ const options = this.github.rest.issues.listLabelsForRepo.endpoint.merge(this.wrapAttrs({ per_page: 100 }))
+ return this.github.rest.repos.get(this.repo).then(() => {
return this.github.paginate(options)
})
.catch(e => {
@@ -63,20 +63,20 @@ module.exports = class Labels extends Diffable {
delete attrs.oldname
if (this.nop) {
return Promise.resolve([
- new NopCommand(this.constructor.name, this.repo, this.github.issues.updateLabel.endpoint(this.wrapAttrs(attrs)), 'Update label')
+ new NopCommand(this.constructor.name, this.repo, this.github.rest.issues.updateLabel.endpoint(this.wrapAttrs(attrs)), 'Update label')
])
}
- return this.github.issues.updateLabel(this.wrapAttrs(attrs))
+ return this.github.rest.issues.updateLabel(this.wrapAttrs(attrs))
}
add (attrs) {
if (this.nop) {
return Promise.resolve([
- new NopCommand(this.constructor.name, this.repo, this.github.issues.createLabel.endpoint(this.wrapAttrs(attrs)), 'Create label')
+ new NopCommand(this.constructor.name, this.repo, this.github.rest.issues.createLabel.endpoint(this.wrapAttrs(attrs)), 'Create label')
])
}
this.log.debug(`Creating labels for ${JSON.stringify(attrs, null, 4)}`)
- return this.github.issues.createLabel(this.wrapAttrs(attrs)).catch(e => this.logError(` ${JSON.stringify(e)}`))
+ return this.github.rest.issues.createLabel(this.wrapAttrs(attrs)).catch(e => this.logError(` ${JSON.stringify(e)}`))
}
remove (existing) {
@@ -85,10 +85,10 @@ module.exports = class Labels extends Diffable {
}
if (this.nop) {
return Promise.resolve([
- new NopCommand(this.constructor.name, this.repo, this.github.issues.deleteLabel.endpoint(this.wrapAttrs({ name: existing.name })), 'Delete label')
+ new NopCommand(this.constructor.name, this.repo, this.github.rest.issues.deleteLabel.endpoint(this.wrapAttrs({ name: existing.name })), 'Delete label')
])
}
- return this.github.issues.deleteLabel(this.wrapAttrs({ name: existing.name }))
+ return this.github.rest.issues.deleteLabel(this.wrapAttrs({ name: existing.name }))
}
wrapAttrs (attrs) {
diff --git a/lib/plugins/milestones.js b/lib/plugins/milestones.js
index 9fc93ab22..cdb242496 100644
--- a/lib/plugins/milestones.js
+++ b/lib/plugins/milestones.js
@@ -14,7 +14,7 @@ module.exports = class Milestones extends Diffable {
}
find () {
- const options = this.github.issues.listMilestones.endpoint.merge(Object.assign({ per_page: 100, state: 'all' }, this.repo))
+ const options = this.github.rest.issues.listMilestones.endpoint.merge(Object.assign({ per_page: 100, state: 'all' }, this.repo))
return this.github.paginate(options)
}
@@ -29,18 +29,18 @@ module.exports = class Milestones extends Diffable {
update (existing, attrs) {
const { owner, repo } = this.repo
- return this.github.issues.updateMilestone(Object.assign({ milestone_number: existing.number }, attrs, { owner, repo }))
+ return this.github.rest.issues.updateMilestone(Object.assign({ milestone_number: existing.number }, attrs, { owner, repo }))
}
add (attrs) {
const { owner, repo } = this.repo
- return this.github.issues.createMilestone(Object.assign({}, attrs, { owner, repo }))
+ return this.github.rest.issues.createMilestone(Object.assign({}, attrs, { owner, repo }))
}
remove (existing) {
const { owner, repo } = this.repo
- return this.github.issues.deleteMilestone(Object.assign({ milestone_number: existing.number }, { owner, repo }))
+ return this.github.rest.issues.deleteMilestone(Object.assign({ milestone_number: existing.number }, { owner, repo }))
}
}
diff --git a/lib/plugins/repository.js b/lib/plugins/repository.js
index 3333225d2..4d0e14ce8 100644
--- a/lib/plugins/repository.js
+++ b/lib/plugins/repository.js
@@ -68,7 +68,7 @@ module.exports = class Repository extends ErrorStash {
this.created = false
// let hasChanges = false
// let hasTopicChanges = false
- return this.github.repos.get(this.repo)
+ return this.github.rest.repos.get(this.repo)
.then(resp => {
const mergeDeep = new MergeDeep(this.log, this.github, ignorableFields)
@@ -137,23 +137,23 @@ module.exports = class Repository extends ErrorStash {
const options = { template_owner: this.repo.owner, template_repo: this.template, owner: this.repo.owner, name: this.repo.repo, private: (this.settings.private ? this.settings.private : true), description: this.settings.description ? this.settings.description : '' }
if (this.nop) {
- this.log.debug(`Creating Repo using template ${JSON.stringify(this.github.repos.createInOrg.endpoint(this.settings))} `)
- resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.repos.createUsingTemplate.endpoint(options), 'Create Repo Using Template'))
+ this.log.debug(`Creating Repo using template ${JSON.stringify(this.github.rest.repos.createUsingTemplate.endpoint(options))} `)
+ resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.createUsingTemplate.endpoint(options), 'Create Repo Using Template'))
return Promise.resolve(resArray)
}
- return this.github.repos.createUsingTemplate(options)
+ return this.github.rest.repos.createUsingTemplate(options)
} else {
// https://docs.github.com/en/rest/repos/repos#create-an-organization-repository uses org instead of owner like
// the API to create a repo with a template
this.settings.org = this.settings.owner
this.log.debug('Creating repo with settings ', this.settings)
if (this.nop) {
- this.log.debug(`Creating Repo ${JSON.stringify(this.github.repos.createInOrg.endpoint(this.settings))} `)
+ this.log.debug(`Creating Repo ${JSON.stringify(this.github.rest.repos.createInOrg.endpoint(this.settings))} `)
return Promise.resolve([
- new NopCommand(this.constructor.name, this.repo, this.github.repos.createInOrg.endpoint(this.settings), 'Create Repo')
+ new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.createInOrg.endpoint(this.settings), 'Create Repo')
])
}
- return this.github.repos.createInOrg(this.settings)
+ return this.github.rest.repos.createInOrg(this.settings)
}
} else {
if (this.nop) {
@@ -170,7 +170,7 @@ module.exports = class Repository extends ErrorStash {
updateDefaultBranch (oldname, newname, resArray) {
this.log.debug(`Checking if ${newname} is already a branch`)
- return this.github.repos.getBranch({
+ return this.github.rest.repos.getBranch({
owner: this.settings.owner,
repo: this.settings.repo,
branch: newname
@@ -187,10 +187,10 @@ module.exports = class Repository extends ErrorStash {
default_branch: newname
}
if (this.nop) {
- resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.repos.update.endpoint(parms), 'Update Repo'))
+ resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.update.endpoint(parms), 'Update Repo'))
} else {
this.log.debug(`Updating repo with settings ${JSON.stringify(parms)}`)
- return this.github.repos.update(parms)
+ return this.github.rest.repos.update(parms)
}
}
}).catch(e => {
@@ -212,19 +212,19 @@ module.exports = class Repository extends ErrorStash {
}
this.log.info(`Rename default branch repo with settings ${JSON.stringify(parms)}`)
if (this.nop) {
- resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.repos.renameBranch.endpoint(oldname, this.settings.default_branch), `Repo rename default branch to ${this.settings.default_branch}`))
+ resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.renameBranch.endpoint(parms), `Repo rename default branch to ${this.settings.default_branch}`))
} else {
- return this.github.repos.renameBranch(parms)
+ return this.github.rest.repos.renameBranch(parms)
}
}
updaterepo (resArray) {
this.log.debug(`Updating repo with settings ${JSON.stringify(this.topics)} ${JSON.stringify(this.settings)}`)
if (this.nop) {
- resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.repos.update.endpoint(this.settings), 'Update Repo'))
+ resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.update.endpoint(this.settings), 'Update Repo'))
return Promise.resolve(resArray)
}
- return this.github.repos.update(this.settings)
+ return this.github.rest.repos.update(this.settings)
}
updatetopics (repoData, resArray) {
@@ -242,10 +242,10 @@ module.exports = class Repository extends ErrorStash {
// !repoData.data?.topics.every(t => this.topics.includes(t))) {
this.log.debug(`Updating repo with topics ${this.topics.join(',')}`)
if (this.nop) {
- resArray.push((new NopCommand(this.constructor.name, this.repo, this.github.repos.replaceAllTopics.endpoint(parms), 'Update Topics')))
+ resArray.push((new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.replaceAllTopics.endpoint(parms), 'Update Topics')))
return Promise.resolve(resArray)
}
- return this.github.repos.replaceAllTopics(parms)
+ return this.github.rest.repos.replaceAllTopics(parms)
// } else {
// this.log.debug(`no need to update topics for ${repoData.data.name}`)
// if (this.nop) {
@@ -263,26 +263,26 @@ module.exports = class Repository extends ErrorStash {
if (this.security.enableVulnerabilityAlerts === true) {
this.log.debug(`Enabling Dependabot alerts for owner: ${repoData.owner.login} and repo ${repoData.name}`)
if (this.nop) {
- resArray.push((new NopCommand(this.constructor.name, this.repo, this.github.repos.enableVulnerabilityAlerts.endpoint({
+ resArray.push((new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.enableVulnerabilityAlerts.endpoint({
owner: repoData.owner.login,
repo: repoData.name
}), 'Enabling Dependabot alerts')))
return Promise.resolve(resArray)
}
- return this.github.repos.enableVulnerabilityAlerts({
+ return this.github.rest.repos.enableVulnerabilityAlerts({
owner: repoData.owner.login,
repo: repoData.name
})
} else {
this.log.debug(`Disabling Dependabot alerts for for owner: ${repoData.owner.login} and repo ${repoData.name}`)
if (this.nop) {
- resArray.push((new NopCommand(this.constructor.name, this.github.repos.disableVulnerabilityAlerts.endpoint({
+ resArray.push((new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.disableVulnerabilityAlerts.endpoint({
owner: repoData.owner.login,
repo: repoData.name
}), 'Disabling Dependabot alerts')))
return Promise.resolve(resArray)
}
- return this.github.repos.disableVulnerabilityAlerts({
+ return this.github.rest.repos.disableVulnerabilityAlerts({
owner: repoData.owner.login,
repo: repoData.name
})
@@ -301,26 +301,26 @@ module.exports = class Repository extends ErrorStash {
if (this.security.enableAutomatedSecurityFixes === true) {
this.log.debug(`Enabling Dependabot security updates for owner: ${repoData.owner.login} and repo ${repoData.name}`)
if (this.nop) {
- resArray.push((new NopCommand(this.constructor.name, this.repo, this.github.repos.enableAutomatedSecurityFixes.endpoint({
+ resArray.push((new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.enableAutomatedSecurityFixes.endpoint({
owner: repoData.owner.login,
repo: repoData.name
}), 'Enabling Dependabot security updates')))
return Promise.resolve(resArray)
}
- return this.github.repos.enableAutomatedSecurityFixes({
+ return this.github.rest.repos.enableAutomatedSecurityFixes({
owner: repoData.owner.login,
repo: repoData.name
})
} else {
this.log.debug(`Disabling Dependabot security updates for owner: ${repoData.owner.login} and repo ${repoData.name}`)
if (this.nop) {
- resArray.push((new NopCommand(this.constructor.name, this.github.repos.disableAutomatedSecurityFixes.endpoint({
+ resArray.push((new NopCommand(this.constructor.name, this.repo, this.github.rest.repos.disableAutomatedSecurityFixes.endpoint({
owner: repoData.owner.login,
repo: repoData.name
}), 'Disabling Dependabot security updates')))
return Promise.resolve(resArray)
}
- return this.github.repos.disableAutomatedSecurityFixes({
+ return this.github.rest.repos.disableAutomatedSecurityFixes({
owner: repoData.owner.login,
repo: repoData.name
})
diff --git a/lib/plugins/rulesets.js b/lib/plugins/rulesets.js
index 36792a2be..d17b413a4 100644
--- a/lib/plugins/rulesets.js
+++ b/lib/plugins/rulesets.js
@@ -12,7 +12,7 @@ const overrides = {
}
const version = {
- 'X-GitHub-Api-Version': '2022-11-28'
+ 'X-GitHub-Api-Version': '2026-03-10'
}
// GitHub's built-in (base) repository role IDs. These are not returned by the
@@ -121,7 +121,7 @@ module.exports = class Rulesets extends Diffable {
async resolveTeamId (slug) {
return this.cachedLookup(`Team:${slug}`, async () => {
try {
- const res = await this.github.teams.getByName({ org: this.repo.owner, team_slug: slug })
+ const res = await this.github.rest.teams.getByName({ org: this.repo.owner, team_slug: slug })
return res.data.id
} catch (e) {
throw new Error(`Unable to resolve Team slug '${slug}' to an id in org '${this.repo.owner}': ${e.status || e.message}`)
diff --git a/lib/plugins/teams.js b/lib/plugins/teams.js
index 5e789526a..2762d53a6 100644
--- a/lib/plugins/teams.js
+++ b/lib/plugins/teams.js
@@ -32,7 +32,7 @@ module.exports = class Teams extends Diffable {
this.skipTeamDeletion = false
this.securityManagerTeamIdentifiers = new Set()
this.log.debug(`Finding teams for ${this.repo.owner}/${this.repo.repo}`)
- return this.github.paginate(this.github.repos.listTeams, this.repo).then(res => {
+ return this.github.paginate(this.github.rest.repos.listTeams, this.repo).then(res => {
this.log.debug(`Found teams ${JSON.stringify(res)}`)
return this.checkSecurityManager(res)
})
@@ -176,15 +176,15 @@ module.exports = class Teams extends Diffable {
}
let existing = { team_id: 1 }
this.log.debug(`Getting team with the parms ${JSON.stringify(attrs)}`)
- return this.github.teams.getByName({ org: this.repo.owner, team_slug: this.normalizeTeamIdentifier(attrs.name) }).then(res => {
+ return this.github.rest.teams.getByName({ org: this.repo.owner, team_slug: this.normalizeTeamIdentifier(attrs.name) }).then(res => {
existing = res.data
this.log.debug(`adding team ${attrs.name} to repo ${this.repo.repo}`)
if (this.nop) {
return Promise.resolve([
- new NopCommand(this.constructor.name, this.repo, this.github.teams.addOrUpdateRepoPermissionsInOrg.endpoint(this.toParams(existing, attrs)), 'Add Teams to Repo')
+ new NopCommand(this.constructor.name, this.repo, this.github.rest.teams.addOrUpdateRepoPermissionsInOrg.endpoint(this.toParams(existing, attrs)), 'Add Teams to Repo')
])
}
- return this.github.teams.addOrUpdateRepoPermissionsInOrg(this.toParams(existing, attrs)).then(res => {
+ return this.github.rest.teams.addOrUpdateRepoPermissionsInOrg(this.toParams(existing, attrs)).then(res => {
this.log.debug(`team added ${res}`)
}).catch(e => {
this.logError(`Error adding team to repo ${JSON.stringify(e)} with parms ${JSON.stringify(this.toParams(existing, attrs))}:\n`, e)
@@ -201,14 +201,14 @@ module.exports = class Teams extends Diffable {
this.log.debug(`Creating teams ${JSON.stringify(createParam)}`)
if (this.nop) {
return Promise.resolve([
- new NopCommand(this.constructor.name, this.repo, this.github.teams.create.endpoint(createParam), 'Create Team')
+ new NopCommand(this.constructor.name, this.repo, this.github.rest.teams.create.endpoint(createParam), 'Create Team')
])
}
- return this.github.teams.create(createParam).then(res => {
+ return this.github.rest.teams.create(createParam).then(res => {
this.log.debug(`team ${createParam.name} created`)
existing = res.data
this.log.debug(`adding team ${attrs.name} to repo ${this.repo.repo}`)
- return this.github.teams.addOrUpdateRepoPermissionsInOrg(this.toParams(existing, attrs))
+ return this.github.rest.teams.addOrUpdateRepoPermissionsInOrg(this.toParams(existing, attrs))
}).catch(e => {
this.logError('Error adding team: ', e)
})
diff --git a/lib/plugins/validator.js b/lib/plugins/validator.js
index 8ee72af9a..25b39cfe0 100644
--- a/lib/plugins/validator.js
+++ b/lib/plugins/validator.js
@@ -12,7 +12,7 @@ module.exports = class Validator {
sync () {
try {
- return this.github.repos.getAllTopics({
+ return this.github.rest.repos.getAllTopics({
owner: this.repo.owner,
repo: this.repo.repo,
mediaType: {
@@ -28,7 +28,7 @@ module.exports = class Validator {
}
if (res.data.names.find(x => x === 'validation-error')) {
res.data.names = res.data.names.filter(x => x !== 'validation-error')
- return this.github.repos.replaceAllTopics({
+ return this.github.rest.repos.replaceAllTopics({
owner: this.repo.owner,
repo: this.repo.repo,
names: res.data.names,
@@ -46,7 +46,7 @@ module.exports = class Validator {
}
if (!res.data.names.find(x => x === 'validation-error')) {
res.data.names.push('validation-error')
- return this.github.repos.replaceAllTopics({
+ return this.github.rest.repos.replaceAllTopics({
owner: this.repo.owner,
repo: this.repo.repo,
names: res.data.names,
diff --git a/lib/settings.js b/lib/settings.js
index d334ef6ec..e36ee07c7 100644
--- a/lib/settings.js
+++ b/lib/settings.js
@@ -996,7 +996,7 @@ class Settings {
const repo = { owner: this.repo.owner, repo: env.ADMIN_REPO }
const params = Object.assign(repo, { path: filePath, ref })
- const response = await this.github.repos.getContent(params)
+ const response = await this.github.rest.repos.getContent(params)
if (Array.isArray(response.data)) {
return null
@@ -1023,12 +1023,12 @@ class Settings {
}
// Use the latest commit to create the check against
- return this.github.repos.listCommits({
+ return this.github.rest.repos.listCommits({
owner: this.repo.owner,
repo: env.ADMIN_REPO
})
.then(commits => {
- return this.github.checks.create(
+ return this.github.rest.checks.create(
{
owner: this.repo.owner,
repo: env.ADMIN_REPO,
@@ -1315,7 +1315,7 @@ class Settings {
for (let i = 0; i < pages.length; i++) {
const body = `${makeHeader(i + 1, totalPages)}${pages[i]}`
- await this.github.issues.createComment({
+ await this.github.rest.issues.createComment({
owner: payload.repository.owner.login,
repo: payload.repository.name,
issue_number: pullRequest.number,
@@ -1338,7 +1338,7 @@ class Settings {
}
this.log.debug(`Completing check run ${JSON.stringify(params)}`)
- await this.github.checks.update(params)
+ await this.github.rest.checks.update(params)
}
async loadConfigs (repo) {
@@ -2507,7 +2507,7 @@ class Settings {
async loadConfigMap (params) {
try {
this.log.debug(` In loadConfigMap ${JSON.stringify(params)}`)
- const response = await this.github.repos.getContent(params).catch(e => {
+ const response = await this.github.rest.repos.getContent(params).catch(e => {
this.log.debug(`Error getting settings ${JSON.stringify(params)} ${e}`)
})
@@ -2561,7 +2561,7 @@ class Settings {
// get /repos directory sha to use in the getTree api
const repo = { owner: this.repo.owner, repo: env.ADMIN_REPO }
const params = Object.assign(repo, { path: path.posix.join(CONFIG_PATH), ref: this.ref })
- const githubDirectoryContentResponse = await this.github.repos.getContent(params).catch(e => {
+ const githubDirectoryContentResponse = await this.github.rest.repos.getContent(params).catch(e => {
this.log.debug(`Error getting settings ${JSON.stringify(params)} ${e}`)
})
@@ -2581,8 +2581,8 @@ class Settings {
// const endpoint = `/repos/${this.repo.owner}/${repo.repo}/git/trees/${repoDirInfo.sha}`
// this.log.debug(`endpoint: ${endpoint}`)
const treeParams = Object.assign(repo, { tree_sha: repoDirInfo.sha, recursive: 0 })
- const response = await this.github.git.getTree(treeParams).catch(e => {
- this.log.debug(`Error getting settings ${JSON.stringify(this.github.git.getTree.endpoint(treeParams))} ${e}`)
+ const response = await this.github.rest.git.getTree(treeParams).catch(e => {
+ this.log.debug(`Error getting settings ${JSON.stringify(this.github.rest.git.getTree.endpoint(treeParams))} ${e}`)
})
if (!response || !response.data) {
@@ -2805,7 +2805,7 @@ class Settings {
}
}
- const response = await this.github.repos.getContent(params).catch(e => {
+ const response = await this.github.rest.repos.getContent(params).catch(e => {
if (e.status === 304) {
this.log.debug(`Cache hit for file ${filePath}`)
return {
diff --git a/lib/settingsGenerator.js b/lib/settingsGenerator.js
index 64e30d663..e2780d64e 100644
--- a/lib/settingsGenerator.js
+++ b/lib/settingsGenerator.js
@@ -97,7 +97,7 @@ class SettingsGenerator {
// --- Section extractors -------------------------------------------------
async repository (repo) {
- const { data } = await this.github.repos.get(repo)
+ const { data } = await this.github.rest.repos.get(repo)
const fields = [
'name', 'description', 'homepage', 'private', 'visibility',
'has_issues', 'has_projects', 'has_wiki', 'has_downloads', 'is_template',
@@ -188,7 +188,7 @@ class SettingsGenerator {
async branches (repo) {
let branchList
try {
- branchList = await this.github.paginate(this.github.repos.listBranches, {
+ branchList = await this.github.paginate(this.github.rest.repos.listBranches, {
owner: repo.owner,
repo: repo.repo,
protected: true,
@@ -202,7 +202,7 @@ class SettingsGenerator {
const result = []
for (const b of branchList || []) {
try {
- const { data } = await this.github.repos.getBranchProtection({
+ const { data } = await this.github.rest.repos.getBranchProtection({
owner: repo.owner,
repo: repo.repo,
branch: b.name
diff --git a/package-lock.json b/package-lock.json
index d269221d4..c2e8c601f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,17 +9,17 @@
"version": "0.1.0-rc.26",
"license": "ISC",
"dependencies": {
- "@apidevtools/json-schema-ref-parser": "^12.0.2",
+ "@apidevtools/json-schema-ref-parser": "^14.2.1",
"@probot/adapter-aws-lambda-serverless": "^4.0.3",
"deepmerge": "^4.3.1",
"eta": "^3.5.0",
"js-yaml": "^4.1.0",
- "lodash": "^4.17.21",
- "minimatch": "^10.0.1",
- "node-cron": "^3.0.2",
+ "lodash": "^4.18.1",
+ "minimatch": "^10.2.1",
+ "node-cron": "^4.2.1",
"octokit": "^5.0.2",
- "probot": "^13.4.4",
- "proxy-from-env": "^1.1.0",
+ "probot": "^14.3.2",
+ "proxy-from-env": "^2.1.0",
"undici": "^7.7.0"
},
"devDependencies": {
@@ -39,69 +39,39 @@
"nock": "^14.0.1",
"nodemon": "^3.1.9",
"npm-run-all": "^4.1.5",
- "smee-client": "^4.3.1",
+ "smee-client": "^5.0.0",
"standard": "^17.1.2"
},
"engines": {
- "node": ">= 16.0.0"
- }
- },
- "node_modules/@ampproject/remapping": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
- "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
+ "node": ">= 22.0.0"
}
},
"node_modules/@apidevtools/json-schema-ref-parser": {
- "version": "12.0.2",
- "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-12.0.2.tgz",
- "integrity": "sha512-SoZWqQz4YMKdw4kEMfG5w6QAy+rntjsoAT1FtvZAnVEnCR4uy9YSuDBNoVAFHgzSz0dJbISLLCSrGR2Zd7bcvA==",
+ "version": "14.2.1",
+ "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.2.1.tgz",
+ "integrity": "sha512-HmdFw9CDYqM6B25pqGBpNeLCKvGPlIx1EbLrVL0zPvj50CJQUHyBNBw45Muk0kEIkogo1VZvOKHajdMuAzSxRg==",
+ "license": "MIT",
"dependencies": {
- "@jsdevtools/ono": "^7.1.3",
- "@types/json-schema": "^7.0.15",
"js-yaml": "^4.1.0"
},
"engines": {
- "node": ">= 16"
+ "node": ">= 20"
},
"funding": {
"url": "https://github.com/sponsors/philsturgeon"
+ },
+ "peerDependencies": {
+ "@types/json-schema": "^7.0.15"
}
},
- "node_modules/@asamuzakjp/css-color": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.1.1.tgz",
- "integrity": "sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA==",
- "dev": true,
- "dependencies": {
- "@csstools/css-calc": "^2.1.2",
- "@csstools/css-color-parser": "^3.0.8",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "lru-cache": "^10.4.3"
- }
- },
- "node_modules/@asamuzakjp/css-color/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==",
- "dev": true
- },
"node_modules/@babel/code-frame": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
- "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5",
"js-tokens": "^4.0.0",
"picocolors": "^1.1.1"
},
@@ -110,30 +80,32 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.24.4",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz",
- "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
+ "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz",
- "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==",
- "dev": true,
- "dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.24.2",
- "@babel/generator": "^7.24.5",
- "@babel/helper-compilation-targets": "^7.23.6",
- "@babel/helper-module-transforms": "^7.24.5",
- "@babel/helpers": "^7.24.5",
- "@babel/parser": "^7.24.5",
- "@babel/template": "^7.24.0",
- "@babel/traverse": "^7.24.5",
- "@babel/types": "^7.24.5",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/remapping": "^2.3.5",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -153,34 +125,38 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/generator": {
- "version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz",
- "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==",
+ "version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.24.5",
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25",
- "jsesc": "^2.5.1"
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.23.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
- "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.23.5",
- "@babel/helper-validator-option": "^7.23.5",
- "browserslist": "^4.22.2",
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
},
@@ -193,67 +169,45 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
- "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
- "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.22.15",
- "@babel/types": "^7.23.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
- "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
"dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.24.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz",
- "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.24.0"
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz",
- "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-module-imports": "^7.24.3",
- "@babel/helper-simple-access": "^7.24.5",
- "@babel/helper-split-export-declaration": "^7.24.5",
- "@babel/helper-validator-identifier": "^7.24.5"
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -263,34 +217,11 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz",
- "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz",
- "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.24.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz",
- "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
"dev": true,
- "dependencies": {
- "@babel/types": "^7.24.5"
- },
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -306,9 +237,9 @@
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
- "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -316,36 +247,37 @@
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.23.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
- "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.27.6",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz",
- "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz",
+ "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/template": "^7.27.2",
- "@babel/types": "^7.27.6"
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
- "version": "7.27.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz",
- "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz",
+ "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.27.3"
+ "@babel/types": "^7.29.0"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -359,6 +291,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
"integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -371,6 +304,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
"integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -383,6 +317,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
"integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.12.13"
},
@@ -390,11 +325,44 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-syntax-class-static-block": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz",
+ "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
"node_modules/@babel/plugin-syntax-import-meta": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
"integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -407,6 +375,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
"integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -415,12 +384,13 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz",
- "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz",
+ "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -434,6 +404,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
"integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -446,6 +417,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
"integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -458,6 +430,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
"integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -470,6 +443,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
"integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -482,6 +456,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
"integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -494,6 +469,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
"integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -501,11 +477,28 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-syntax-private-property-in-object": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
"node_modules/@babel/plugin-syntax-top-level-await": {
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
"integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -517,12 +510,13 @@
}
},
"node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz",
- "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz",
+ "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.0"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -532,59 +526,48 @@
}
},
"node_modules/@babel/template": {
- "version": "7.27.2",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
- "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/parser": "^7.27.2",
- "@babel/types": "^7.27.1"
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz",
- "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.24.2",
- "@babel/generator": "^7.24.5",
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-function-name": "^7.23.0",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.24.5",
- "@babel/parser": "^7.24.5",
- "@babel/types": "^7.24.5",
- "debug": "^4.3.1",
- "globals": "^11.1.0"
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0",
+ "debug": "^4.3.1"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/traverse/node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@babel/types": {
- "version": "7.27.6",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz",
- "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/helper-string-parser": "^7.27.1",
- "@babel/helper-validator-identifier": "^7.27.1"
+ "@babel/helper-validator-identifier": "^7.28.5"
},
"engines": {
"node": ">=6.9.0"
@@ -594,156 +577,53 @@
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true
- },
- "node_modules/@csstools/color-helpers": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz",
- "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@csstools/css-calc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.2.tgz",
- "integrity": "sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3"
- }
- },
- "node_modules/@csstools/css-color-parser": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.8.tgz",
- "integrity": "sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "dependencies": {
- "@csstools/color-helpers": "^5.0.2",
- "@csstools/css-calc": "^2.1.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3"
- }
- },
- "node_modules/@csstools/css-parser-algorithms": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
- "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-tokenizer": "^3.0.3"
- }
- },
- "node_modules/@csstools/css-tokenizer": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz",
- "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "engines": {
- "node": ">=18"
- }
+ "license": "MIT"
},
"node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
+ "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.3"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ },
"peerDependencies": {
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
- "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
+ "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/@eslint/eslintrc": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
- "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.4.tgz",
+ "integrity": "sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ajv": "^6.12.4",
+ "ajv": "^6.14.0",
"debug": "^4.3.2",
"espree": "^10.0.1",
"globals": "^14.0.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
+ "js-yaml": "^4.1.1",
+ "minimatch": "^3.1.3",
"strip-json-comments": "^3.1.1"
},
"engines": {
@@ -753,10 +633,17 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/@eslint/eslintrc/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -764,79 +651,38 @@
"concat-map": "0.0.1"
}
},
- "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
- "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/espree": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
- "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
+ "node_modules/@eslint/eslintrc/node_modules/minimatch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
- "license": "BSD-2-Clause",
+ "license": "ISC",
"dependencies": {
- "acorn": "^8.14.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^4.2.0"
+ "brace-expansion": "^1.1.7"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": "*"
}
},
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
- "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
+ "node_modules/@eslint/js": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+ "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
- "node_modules/@eslint/eslintrc/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@eslint/js": {
- "version": "8.57.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
- "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/@humanwhocodes/config-array": {
- "version": "0.11.14",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
- "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
+ "deprecated": "Use @eslint/config-array instead",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@humanwhocodes/object-schema": "^2.0.2",
+ "@humanwhocodes/object-schema": "^2.0.3",
"debug": "^4.3.1",
"minimatch": "^3.0.5"
},
@@ -844,10 +690,17 @@
"node": ">=10.10.0"
}
},
+ "node_modules/@humanwhocodes/config-array/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -856,9 +709,9 @@
}
},
"node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -873,6 +726,7 @@
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
"integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=12.22"
},
@@ -885,12 +739,14 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
- "dev": true
+ "deprecated": "Use @eslint/object-schema instead",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@ioredis/commands": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz",
- "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.5.1.tgz",
+ "integrity": "sha512-JH8ZL/ywcJyR9MmJ5BNqZllXNZQqQbnVZOqpPQqE1vHiFgAw4NHbvE0FOduNU8IX9babitBT46571OnPTT0Zcw==",
"license": "MIT"
},
"node_modules/@istanbuljs/load-nyc-config": {
@@ -898,6 +754,7 @@
"resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
"integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"camelcase": "^5.3.1",
"find-up": "^4.1.0",
@@ -914,6 +771,7 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"sprintf-js": "~1.0.2"
}
@@ -923,6 +781,7 @@
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -932,10 +791,11 @@
}
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -949,6 +809,7 @@
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -961,6 +822,7 @@
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -976,6 +838,7 @@
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -988,6 +851,7 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -997,6 +861,7 @@
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
"integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -1006,6 +871,7 @@
"resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
"integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/node": "*",
@@ -1023,6 +889,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -1038,6 +905,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -1054,6 +922,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -1065,13 +934,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@jest/console/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -1081,6 +952,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -1093,6 +965,7 @@
"resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
"integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/console": "^29.7.0",
"@jest/reporters": "^29.7.0",
@@ -1140,6 +1013,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -1155,6 +1029,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -1171,6 +1046,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -1182,13 +1058,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@jest/core/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -1198,6 +1076,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -1210,6 +1089,7 @@
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
"integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/fake-timers": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -1225,6 +1105,7 @@
"resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
"integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"expect": "^29.7.0",
"jest-snapshot": "^29.7.0"
@@ -1238,6 +1119,7 @@
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
"integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"jest-get-type": "^29.6.3"
},
@@ -1250,6 +1132,7 @@
"resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
"integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@sinonjs/fake-timers": "^10.0.2",
@@ -1267,6 +1150,7 @@
"resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
"integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/expect": "^29.7.0",
@@ -1282,6 +1166,7 @@
"resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
"integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@bcoe/v8-coverage": "^0.2.3",
"@jest/console": "^29.7.0",
@@ -1325,6 +1210,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -1340,6 +1226,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -1356,6 +1243,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -1367,13 +1255,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@jest/reporters/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -1383,6 +1273,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -1395,6 +1286,7 @@
"resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
"integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@sinclair/typebox": "^0.27.8"
},
@@ -1407,6 +1299,7 @@
"resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
"integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.18",
"callsites": "^3.0.0",
@@ -1421,6 +1314,7 @@
"resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
"integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/console": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -1436,6 +1330,7 @@
"resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
"integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/test-result": "^29.7.0",
"graceful-fs": "^4.2.9",
@@ -1451,6 +1346,7 @@
"resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
"integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.11.6",
"@jest/types": "^29.6.3",
@@ -1477,6 +1373,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -1492,6 +1389,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -1508,6 +1406,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -1519,13 +1418,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@jest/transform/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -1535,6 +1436,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -1547,6 +1449,7 @@
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
"integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/schemas": "^29.6.3",
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -1564,6 +1467,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -1579,6 +1483,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -1595,6 +1500,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -1606,13 +1512,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@jest/types/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -1622,6 +1530,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -1630,17 +1539,25 @@
}
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
}
},
"node_modules/@jridgewell/resolve-uri": {
@@ -1648,52 +1565,40 @@
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/@jsdevtools/ono": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz",
- "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==",
- "license": "MIT"
- },
"node_modules/@mswjs/interceptors": {
- "version": "0.38.0",
- "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.38.0.tgz",
- "integrity": "sha512-nPHVM+LUl4V1kXPXuTcNN5OMD//ltCQ0lccuEagvidJdpbig3hP3W6/ctWHx6mee7vZIWE0L+Mqj3vx0ASlm/w==",
+ "version": "0.41.3",
+ "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.41.3.tgz",
+ "integrity": "sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@open-draft/deferred-promise": "^2.2.0",
"@open-draft/logger": "^0.3.0",
"@open-draft/until": "^2.0.0",
"is-node-process": "^1.2.0",
- "jsdom": "^26.0.0",
"outvariant": "^1.4.3",
"strict-event-emitter": "^0.5.1"
},
@@ -1706,6 +1611,7 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -1719,6 +1625,7 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
@@ -1728,6 +1635,7 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -1737,32 +1645,34 @@
}
},
"node_modules/@octokit/app": {
- "version": "16.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/app/-/app-16.0.1.tgz",
- "integrity": "sha512-kgTeTsWmpUX+s3Fs4EK4w1K+jWCDB6ClxLSWUWTyhlw7+L3jHtuXDR4QtABu2GsmCMdk67xRhruiXotS3ay3Yw==",
- "dependencies": {
- "@octokit/auth-app": "^8.0.1",
- "@octokit/auth-unauthenticated": "^7.0.1",
- "@octokit/core": "^7.0.2",
- "@octokit/oauth-app": "^8.0.1",
- "@octokit/plugin-paginate-rest": "^13.0.0",
- "@octokit/types": "^14.0.0",
+ "version": "16.1.2",
+ "resolved": "https://registry.npmjs.org/@octokit/app/-/app-16.1.2.tgz",
+ "integrity": "sha512-8j7sEpUYVj18dxvh0KWj6W/l6uAiVRBl1JBDVRqH1VHKAO/G5eRVl4yEoYACjakWers1DjUkcCHyJNQK47JqyQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-app": "^8.1.2",
+ "@octokit/auth-unauthenticated": "^7.0.3",
+ "@octokit/core": "^7.0.6",
+ "@octokit/oauth-app": "^8.0.3",
+ "@octokit/plugin-paginate-rest": "^14.0.0",
+ "@octokit/types": "^16.0.0",
"@octokit/webhooks": "^14.0.0"
},
"engines": {
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/auth-app": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-8.0.1.tgz",
- "integrity": "sha512-P2J5pB3pjiGwtJX4WqJVYCtNkcZ+j5T2Wm14aJAEIC3WJOrv12jvBley3G1U/XI8q9o1A7QMG54LiFED2BiFlg==",
+ "node_modules/@octokit/auth-app": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-8.2.0.tgz",
+ "integrity": "sha512-vVjdtQQwomrZ4V46B9LaCsxsySxGoHsyw6IYBov/TqJVROrlYdyNgw5q6tQbB7KZt53v1l1W53RiqTvpzL907g==",
+ "license": "MIT",
"dependencies": {
- "@octokit/auth-oauth-app": "^9.0.1",
- "@octokit/auth-oauth-user": "^6.0.0",
- "@octokit/request": "^10.0.2",
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0",
+ "@octokit/auth-oauth-app": "^9.0.3",
+ "@octokit/auth-oauth-user": "^6.0.2",
+ "@octokit/request": "^10.0.6",
+ "@octokit/request-error": "^7.0.2",
+ "@octokit/types": "^16.0.0",
"toad-cache": "^3.7.0",
"universal-github-app-jwt": "^2.2.0",
"universal-user-agent": "^7.0.0"
@@ -1771,80 +1681,86 @@
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/auth-oauth-app": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-9.0.1.tgz",
- "integrity": "sha512-TthWzYxuHKLAbmxdFZwFlmwVyvynpyPmjwc+2/cI3cvbT7mHtsAW9b1LvQaNnAuWL+pFnqtxdmrU8QpF633i1g==",
+ "node_modules/@octokit/auth-oauth-app": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-9.0.3.tgz",
+ "integrity": "sha512-+yoFQquaF8OxJSxTb7rnytBIC2ZLbLqA/yb71I4ZXT9+Slw4TziV9j/kyGhUFRRTF2+7WlnIWsePZCWHs+OGjg==",
+ "license": "MIT",
"dependencies": {
- "@octokit/auth-oauth-device": "^8.0.1",
- "@octokit/auth-oauth-user": "^6.0.0",
- "@octokit/request": "^10.0.2",
- "@octokit/types": "^14.0.0",
+ "@octokit/auth-oauth-device": "^8.0.3",
+ "@octokit/auth-oauth-user": "^6.0.2",
+ "@octokit/request": "^10.0.6",
+ "@octokit/types": "^16.0.0",
"universal-user-agent": "^7.0.0"
},
"engines": {
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/auth-oauth-device": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-8.0.1.tgz",
- "integrity": "sha512-TOqId/+am5yk9zor0RGibmlqn4V0h8vzjxlw/wYr3qzkQxl8aBPur384D1EyHtqvfz0syeXji4OUvKkHvxk/Gw==",
+ "node_modules/@octokit/auth-oauth-device": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-8.0.3.tgz",
+ "integrity": "sha512-zh2W0mKKMh/VWZhSqlaCzY7qFyrgd9oTWmTmHaXnHNeQRCZr/CXy2jCgHo4e4dJVTiuxP5dLa0YM5p5QVhJHbw==",
+ "license": "MIT",
"dependencies": {
- "@octokit/oauth-methods": "^6.0.0",
- "@octokit/request": "^10.0.2",
- "@octokit/types": "^14.0.0",
+ "@octokit/oauth-methods": "^6.0.2",
+ "@octokit/request": "^10.0.6",
+ "@octokit/types": "^16.0.0",
"universal-user-agent": "^7.0.0"
},
"engines": {
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/auth-oauth-user": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-6.0.0.tgz",
- "integrity": "sha512-GV9IW134PHsLhtUad21WIeP9mlJ+QNpFd6V9vuPWmaiN25HEJeEQUcS4y5oRuqCm9iWDLtfIs+9K8uczBXKr6A==",
+ "node_modules/@octokit/auth-oauth-user": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-6.0.2.tgz",
+ "integrity": "sha512-qLoPPc6E6GJoz3XeDG/pnDhJpTkODTGG4kY0/Py154i/I003O9NazkrwJwRuzgCalhzyIeWQ+6MDvkUmKXjg/A==",
+ "license": "MIT",
"dependencies": {
- "@octokit/auth-oauth-device": "^8.0.1",
- "@octokit/oauth-methods": "^6.0.0",
- "@octokit/request": "^10.0.2",
- "@octokit/types": "^14.0.0",
+ "@octokit/auth-oauth-device": "^8.0.3",
+ "@octokit/oauth-methods": "^6.0.2",
+ "@octokit/request": "^10.0.6",
+ "@octokit/types": "^16.0.0",
"universal-user-agent": "^7.0.0"
},
"engines": {
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/auth-token": {
+ "node_modules/@octokit/auth-token": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-6.0.0.tgz",
"integrity": "sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==",
+ "license": "MIT",
"engines": {
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/auth-unauthenticated": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-7.0.1.tgz",
- "integrity": "sha512-qVq1vdjLLZdE8kH2vDycNNjuJRCD1q2oet1nA/GXWaYlpDxlR7rdVhX/K/oszXslXiQIiqrQf+rdhDlA99JdTQ==",
+ "node_modules/@octokit/auth-unauthenticated": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-7.0.3.tgz",
+ "integrity": "sha512-8Jb1mtUdmBHL7lGmop9mU9ArMRUTRhg8vp0T1VtZ4yd9vEm3zcLwmjQkhNEduKawOOORie61xhtYIhTDN+ZQ3g==",
+ "license": "MIT",
"dependencies": {
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0"
+ "@octokit/request-error": "^7.0.2",
+ "@octokit/types": "^16.0.0"
},
"engines": {
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/core": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.2.tgz",
- "integrity": "sha512-ODsoD39Lq6vR6aBgvjTnA3nZGliknKboc9Gtxr7E4WDNqY24MxANKcuDQSF0jzapvGb3KWOEDrKfve4HoWGK+g==",
+ "node_modules/@octokit/core": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.6.tgz",
+ "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==",
+ "license": "MIT",
"dependencies": {
"@octokit/auth-token": "^6.0.0",
- "@octokit/graphql": "^9.0.1",
- "@octokit/request": "^10.0.2",
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0",
+ "@octokit/graphql": "^9.0.3",
+ "@octokit/request": "^10.0.6",
+ "@octokit/request-error": "^7.0.2",
+ "@octokit/types": "^16.0.0",
"before-after-hook": "^4.0.0",
"universal-user-agent": "^7.0.0"
},
@@ -1852,65 +1768,106 @@
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/endpoint": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.0.tgz",
- "integrity": "sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==",
+ "node_modules/@octokit/endpoint": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.3.tgz",
+ "integrity": "sha512-FWFlNxghg4HrXkD3ifYbS/IdL/mDHjh9QcsNyhQjN8dplUoZbejsdpmuqdA76nxj2xoWPs7p8uX2SNr9rYu0Ag==",
+ "license": "MIT",
"dependencies": {
- "@octokit/types": "^14.0.0",
+ "@octokit/types": "^16.0.0",
"universal-user-agent": "^7.0.2"
},
"engines": {
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/graphql": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-9.0.1.tgz",
- "integrity": "sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==",
+ "node_modules/@octokit/graphql": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-9.0.3.tgz",
+ "integrity": "sha512-grAEuupr/C1rALFnXTv6ZQhFuL1D8G5y8CN04RgrO4FIPMrtm+mcZzFG7dcBm+nq+1ppNixu+Jd78aeJOYxlGA==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request": "^10.0.6",
+ "@octokit/types": "^16.0.0",
+ "universal-user-agent": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@octokit/oauth-app": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-8.0.3.tgz",
+ "integrity": "sha512-jnAjvTsPepyUaMu9e69hYBuozEPgYqP4Z3UnpmvoIzHDpf8EXDGvTY1l1jK0RsZ194oRd+k6Hm13oRU8EoDFwg==",
+ "license": "MIT",
"dependencies": {
- "@octokit/request": "^10.0.2",
- "@octokit/types": "^14.0.0",
+ "@octokit/auth-oauth-app": "^9.0.2",
+ "@octokit/auth-oauth-user": "^6.0.1",
+ "@octokit/auth-unauthenticated": "^7.0.2",
+ "@octokit/core": "^7.0.5",
+ "@octokit/oauth-authorization-url": "^8.0.0",
+ "@octokit/oauth-methods": "^6.0.1",
+ "@types/aws-lambda": "^8.10.83",
"universal-user-agent": "^7.0.0"
},
"engines": {
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/oauth-authorization-url": {
+ "node_modules/@octokit/oauth-authorization-url": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-8.0.0.tgz",
"integrity": "sha512-7QoLPRh/ssEA/HuHBHdVdSgF8xNLz/Bc5m9fZkArJE5bb6NmVkDm3anKxXPmN1zh6b5WKZPRr3697xKT/yM3qQ==",
+ "license": "MIT",
"engines": {
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/oauth-methods": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-6.0.0.tgz",
- "integrity": "sha512-Q8nFIagNLIZgM2odAraelMcDssapc+lF+y3OlcIPxyAU+knefO8KmozGqfnma1xegRDP4z5M73ABsamn72bOcA==",
+ "node_modules/@octokit/oauth-methods": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-6.0.2.tgz",
+ "integrity": "sha512-HiNOO3MqLxlt5Da5bZbLV8Zarnphi4y9XehrbaFMkcoJ+FL7sMxH/UlUsCVxpddVu4qvNDrBdaTVE2o4ITK8ng==",
+ "license": "MIT",
"dependencies": {
"@octokit/oauth-authorization-url": "^8.0.0",
- "@octokit/request": "^10.0.2",
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0"
+ "@octokit/request": "^10.0.6",
+ "@octokit/request-error": "^7.0.2",
+ "@octokit/types": "^16.0.0"
},
"engines": {
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/openapi-types": {
- "version": "25.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.0.0.tgz",
- "integrity": "sha512-FZvktFu7HfOIJf2BScLKIEYjDsw6RKc7rBJCdvCTfKsVnx2GEB/Nbzjr29DUdb7vQhlzS/j8qDzdditP0OC6aw=="
+ "node_modules/@octokit/openapi-types": {
+ "version": "27.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-27.0.0.tgz",
+ "integrity": "sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==",
+ "license": "MIT"
+ },
+ "node_modules/@octokit/openapi-webhooks-types": {
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-webhooks-types/-/openapi-webhooks-types-12.1.0.tgz",
+ "integrity": "sha512-WiuzhOsiOvb7W3Pvmhf8d2C6qaLHXrWiLBP4nJ/4kydu+wpagV5Fkz9RfQwV2afYzv3PB+3xYgp4mAdNGjDprA==",
+ "license": "MIT"
},
- "node_modules/@octokit/app/node_modules/@octokit/plugin-paginate-rest": {
- "version": "13.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-13.0.0.tgz",
- "integrity": "sha512-nPXM3wgil9ONnAINcm8cN+nwso4QhNB13PtnlRFkYFHCUIogcH9DHak/StQYcwkkjuc7pUluLG1AWZNscgvH7Q==",
+ "node_modules/@octokit/plugin-enterprise-compatibility": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-compatibility/-/plugin-enterprise-compatibility-6.0.3.tgz",
+ "integrity": "sha512-CmLJklw7eOAFhKpK0L2lCdHzCJXXnsq+zPLvQ6ys2qEB2pxdkPo6meqj73FxbNScaYz0OOPIpSZfJqx/vovLEQ==",
+ "license": "MIT",
"dependencies": {
- "@octokit/types": "^14.0.0"
+ "@octokit/request-error": "^7.1.0",
+ "@octokit/types": "^16.0.0"
},
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@octokit/plugin-paginate-graphql": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-6.0.0.tgz",
+ "integrity": "sha512-crfpnIoFiBtRkvPqOyLOsw12XsveYuY2ieP6uYDosoUegBJpSVxGwut9sxUgFFcll3VTOTqpUf8yGd8x1OmAkQ==",
+ "license": "MIT",
"engines": {
"node": ">= 20"
},
@@ -1918,816 +1875,713 @@
"@octokit/core": ">=6"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/request": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.2.tgz",
- "integrity": "sha512-iYj4SJG/2bbhh+iIpFmG5u49DtJ4lipQ+aPakjL9OKpsGY93wM8w06gvFbEQxcMsZcCvk5th5KkIm2m8o14aWA==",
+ "node_modules/@octokit/plugin-paginate-rest": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-14.0.0.tgz",
+ "integrity": "sha512-fNVRE7ufJiAA3XUrha2omTA39M6IXIc6GIZLvlbsm8QOQCYvpq/LkMNGyFlB1d8hTDzsAXa3OKtybdMAYsV/fw==",
+ "license": "MIT",
"dependencies": {
- "@octokit/endpoint": "^11.0.0",
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0",
- "fast-content-type-parse": "^3.0.0",
- "universal-user-agent": "^7.0.2"
+ "@octokit/types": "^16.0.0"
},
"engines": {
"node": ">= 20"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=6"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/request-error": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.0.0.tgz",
- "integrity": "sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==",
+ "node_modules/@octokit/plugin-rest-endpoint-methods": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-17.0.0.tgz",
+ "integrity": "sha512-B5yCyIlOJFPqUUeiD0cnBJwWJO8lkJs5d8+ze9QDP6SvfiXSz1BF+91+0MeI1d2yxgOhU/O+CvtiZ9jSkHhFAw==",
+ "license": "MIT",
"dependencies": {
- "@octokit/types": "^14.0.0"
+ "@octokit/types": "^16.0.0"
},
"engines": {
"node": ">= 20"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=6"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/types": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.0.0.tgz",
- "integrity": "sha512-VVmZP0lEhbo2O1pdq63gZFiGCKkm8PPp8AUOijlwPO6hojEVjspA0MWKP7E4hbvGxzFKNqKr6p0IYtOH/Wf/zA==",
+ "node_modules/@octokit/plugin-retry": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-8.1.0.tgz",
+ "integrity": "sha512-O1FZgXeiGb2sowEr/hYTr6YunGdSAFWnr2fyW39Ah85H8O33ELASQxcvOFF5LE6Tjekcyu2ms4qAzJVhSaJxTw==",
+ "license": "MIT",
"dependencies": {
- "@octokit/openapi-types": "^25.0.0"
+ "@octokit/request-error": "^7.0.2",
+ "@octokit/types": "^16.0.0",
+ "bottleneck": "^2.15.3"
+ },
+ "engines": {
+ "node": ">= 20"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=7"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/webhooks": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-14.0.0.tgz",
- "integrity": "sha512-IZV4vg/s1pqIpCs86a0tp5FQ/O94DUaqksMdNrXFSaE037TXsB+fIhr8OVig09oEx3WazVgE6B2U+u7/Fvdlsw==",
+ "node_modules/@octokit/plugin-throttling": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-11.0.3.tgz",
+ "integrity": "sha512-34eE0RkFCKycLl2D2kq7W+LovheM/ex3AwZCYN8udpi6bxsyjZidb2McXs69hZhLmJlDqTSP8cH+jSRpiaijBg==",
+ "license": "MIT",
"dependencies": {
- "@octokit/openapi-webhooks-types": "11.0.0",
- "@octokit/request-error": "^7.0.0",
- "@octokit/webhooks-methods": "^6.0.0"
+ "@octokit/types": "^16.0.0",
+ "bottleneck": "^2.15.3"
},
"engines": {
"node": ">= 20"
+ },
+ "peerDependencies": {
+ "@octokit/core": "^7.0.0"
}
},
- "node_modules/@octokit/app/node_modules/@octokit/webhooks-methods": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-6.0.0.tgz",
- "integrity": "sha512-MFlzzoDJVw/GcbfzVC1RLR36QqkTLUf79vLVO3D+xn7r0QgxnFoLZgtrzxiQErAjFUOdH6fas2KeQJ1yr/qaXQ==",
+ "node_modules/@octokit/request": {
+ "version": "10.0.8",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.8.tgz",
+ "integrity": "sha512-SJZNwY9pur9Agf7l87ywFi14W+Hd9Jg6Ifivsd33+/bGUQIjNujdFiXII2/qSlN2ybqUHfp5xpekMEjIBTjlSw==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/endpoint": "^11.0.3",
+ "@octokit/request-error": "^7.0.2",
+ "@octokit/types": "^16.0.0",
+ "fast-content-type-parse": "^3.0.0",
+ "json-with-bigint": "^3.5.3",
+ "universal-user-agent": "^7.0.2"
+ },
"engines": {
"node": ">= 20"
}
},
- "node_modules/@octokit/app/node_modules/before-after-hook": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-4.0.0.tgz",
- "integrity": "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ=="
- },
- "node_modules/@octokit/app/node_modules/universal-github-app-jwt": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-2.2.2.tgz",
- "integrity": "sha512-dcmbeSrOdTnsjGjUfAlqNDJrhxXizjAz94ija9Qw8YkZ1uu0d+GoZzyH+Jb9tIIqvGsadUfwg+22k5aDqqwzbw=="
- },
- "node_modules/@octokit/app/node_modules/universal-user-agent": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz",
- "integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A=="
- },
- "node_modules/@octokit/auth-app": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-6.1.3.tgz",
- "integrity": "sha512-dcaiteA6Y/beAlDLZOPNReN3FGHu+pARD6OHfh3T9f3EO09++ec+5wt3KtGGSSs2Mp5tI8fQwdMOEnrzBLfgUA==",
+ "node_modules/@octokit/request-error": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.1.0.tgz",
+ "integrity": "sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw==",
"license": "MIT",
"dependencies": {
- "@octokit/auth-oauth-app": "^7.1.0",
- "@octokit/auth-oauth-user": "^4.1.0",
- "@octokit/request": "^8.3.1",
- "@octokit/request-error": "^5.1.0",
- "@octokit/types": "^13.1.0",
- "deprecation": "^2.3.1",
- "lru-cache": "npm:@wolfy1339/lru-cache@^11.0.2-patch.1",
- "universal-github-app-jwt": "^1.1.2",
- "universal-user-agent": "^6.0.0"
+ "@octokit/types": "^16.0.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">= 20"
}
},
- "node_modules/@octokit/auth-app/node_modules/@octokit/openapi-types": {
- "version": "23.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
- "integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==",
- "license": "MIT"
- },
- "node_modules/@octokit/auth-app/node_modules/@octokit/types": {
- "version": "13.8.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz",
- "integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==",
+ "node_modules/@octokit/types": {
+ "version": "16.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-16.0.0.tgz",
+ "integrity": "sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==",
"license": "MIT",
"dependencies": {
- "@octokit/openapi-types": "^23.0.1"
+ "@octokit/openapi-types": "^27.0.0"
}
},
- "node_modules/@octokit/auth-app/node_modules/lru-cache": {
- "name": "@wolfy1339/lru-cache",
- "version": "11.0.2-patch.1",
- "resolved": "https://registry.npmjs.org/@wolfy1339/lru-cache/-/lru-cache-11.0.2-patch.1.tgz",
- "integrity": "sha512-BgYZfL2ADCXKOw2wJtkM3slhHotawWkgIRRxq4wEybnZQPjvAp71SPX35xepMykTw8gXlzWcWPTY31hlbnRsDA==",
- "license": "ISC",
- "engines": {
- "node": "18 >=18.20 || 20 || >=22"
- }
- },
- "node_modules/@octokit/auth-oauth-app": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-7.1.0.tgz",
- "integrity": "sha512-w+SyJN/b0l/HEb4EOPRudo7uUOSW51jcK1jwLa+4r7PA8FPFpoxEnHBHMITqCsc/3Vo2qqFjgQfz/xUUvsSQnA==",
+ "node_modules/@octokit/webhooks": {
+ "version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-14.2.0.tgz",
+ "integrity": "sha512-da6KbdNCV5sr1/txD896V+6W0iamFWrvVl8cHkBSPT+YlvmT3DwXa4jxZnQc+gnuTEqSWbBeoSZYTayXH9wXcw==",
"license": "MIT",
"dependencies": {
- "@octokit/auth-oauth-device": "^6.1.0",
- "@octokit/auth-oauth-user": "^4.1.0",
- "@octokit/request": "^8.3.1",
- "@octokit/types": "^13.0.0",
- "@types/btoa-lite": "^1.0.0",
- "btoa-lite": "^1.0.0",
- "universal-user-agent": "^6.0.0"
+ "@octokit/openapi-webhooks-types": "12.1.0",
+ "@octokit/request-error": "^7.0.0",
+ "@octokit/webhooks-methods": "^6.0.0"
},
"engines": {
- "node": ">= 18"
- }
- },
- "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/openapi-types": {
- "version": "23.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
- "integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==",
- "license": "MIT"
- },
- "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/types": {
- "version": "13.8.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz",
- "integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==",
- "license": "MIT",
- "dependencies": {
- "@octokit/openapi-types": "^23.0.1"
+ "node": ">= 20"
}
},
- "node_modules/@octokit/auth-oauth-device": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-6.1.0.tgz",
- "integrity": "sha512-FNQ7cb8kASufd6Ej4gnJ3f1QB5vJitkoV1O0/g6e6lUsQ7+VsSNRHRmFScN2tV4IgKA12frrr/cegUs0t+0/Lw==",
+ "node_modules/@octokit/webhooks-methods": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-6.0.0.tgz",
+ "integrity": "sha512-MFlzzoDJVw/GcbfzVC1RLR36QqkTLUf79vLVO3D+xn7r0QgxnFoLZgtrzxiQErAjFUOdH6fas2KeQJ1yr/qaXQ==",
"license": "MIT",
- "dependencies": {
- "@octokit/oauth-methods": "^4.1.0",
- "@octokit/request": "^8.3.1",
- "@octokit/types": "^13.0.0",
- "universal-user-agent": "^6.0.0"
- },
"engines": {
- "node": ">= 18"
+ "node": ">= 20"
}
},
- "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/openapi-types": {
- "version": "23.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
- "integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==",
+ "node_modules/@octokit/webhooks-types": {
+ "version": "7.6.1",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-7.6.1.tgz",
+ "integrity": "sha512-S8u2cJzklBC0FgTwWVLaM8tMrDuDMVE4xiTK4EYXM9GntyvrdbSoxqDQa+Fh57CCNApyIpyeqPhhFEmHPfrXgw==",
"license": "MIT"
},
- "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/types": {
- "version": "13.8.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz",
- "integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==",
- "license": "MIT",
- "dependencies": {
- "@octokit/openapi-types": "^23.0.1"
- }
+ "node_modules/@open-draft/deferred-promise": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz",
+ "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@octokit/auth-oauth-user": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-4.1.0.tgz",
- "integrity": "sha512-FrEp8mtFuS/BrJyjpur+4GARteUCrPeR/tZJzD8YourzoVhRics7u7we/aDcKv+yywRNwNi/P4fRi631rG/OyQ==",
+ "node_modules/@open-draft/logger": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz",
+ "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@octokit/auth-oauth-device": "^6.1.0",
- "@octokit/oauth-methods": "^4.1.0",
- "@octokit/request": "^8.3.1",
- "@octokit/types": "^13.0.0",
- "btoa-lite": "^1.0.0",
- "universal-user-agent": "^6.0.0"
- },
- "engines": {
- "node": ">= 18"
+ "is-node-process": "^1.2.0",
+ "outvariant": "^1.4.0"
}
},
- "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/openapi-types": {
- "version": "23.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
- "integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==",
+ "node_modules/@open-draft/until": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz",
+ "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==",
+ "dev": true,
"license": "MIT"
},
- "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/types": {
- "version": "13.8.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz",
- "integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==",
- "license": "MIT",
- "dependencies": {
- "@octokit/openapi-types": "^23.0.1"
- }
- },
- "node_modules/@octokit/auth-token": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
- "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
+ "node_modules/@opentelemetry/api": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
+ "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
+ "license": "Apache-2.0",
"engines": {
- "node": ">= 18"
+ "node": ">=8.0.0"
}
},
- "node_modules/@octokit/auth-unauthenticated": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-5.0.1.tgz",
- "integrity": "sha512-oxeWzmBFxWd+XolxKTc4zr+h3mt+yofn4r7OfoIkR/Cj/o70eEGmPsFbueyJE2iBAGpjgTnEOKM3pnuEGVmiqg==",
- "license": "MIT",
+ "node_modules/@opentelemetry/api-logs": {
+ "version": "0.57.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz",
+ "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/request-error": "^5.0.0",
- "@octokit/types": "^12.0.0"
+ "@opentelemetry/api": "^1.3.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">=14"
}
},
- "node_modules/@octokit/core": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz",
- "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==",
- "dependencies": {
- "@octokit/auth-token": "^4.0.0",
- "@octokit/graphql": "^7.1.0",
- "@octokit/request": "^8.3.1",
- "@octokit/request-error": "^5.1.0",
- "@octokit/types": "^13.0.0",
- "before-after-hook": "^2.2.0",
- "universal-user-agent": "^6.0.0"
- },
+ "node_modules/@opentelemetry/context-async-hooks": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz",
+ "integrity": "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==",
+ "license": "Apache-2.0",
"engines": {
- "node": ">= 18"
- }
- },
- "node_modules/@octokit/core/node_modules/@octokit/openapi-types": {
- "version": "22.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
- "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
- },
- "node_modules/@octokit/core/node_modules/@octokit/types": {
- "version": "13.5.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
- "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
- "dependencies": {
- "@octokit/openapi-types": "^22.2.0"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
- "node_modules/@octokit/endpoint": {
- "version": "9.0.6",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
- "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
+ "node_modules/@opentelemetry/core": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz",
+ "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/types": "^13.1.0",
- "universal-user-agent": "^6.0.0"
+ "@opentelemetry/semantic-conventions": "1.28.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
- "node_modules/@octokit/endpoint/node_modules/@octokit/openapi-types": {
- "version": "23.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
- "integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g=="
- },
- "node_modules/@octokit/endpoint/node_modules/@octokit/types": {
- "version": "13.8.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz",
- "integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==",
- "dependencies": {
- "@octokit/openapi-types": "^23.0.1"
+ "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
}
},
- "node_modules/@octokit/graphql": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz",
- "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==",
+ "node_modules/@opentelemetry/instrumentation": {
+ "version": "0.57.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.2.tgz",
+ "integrity": "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/request": "^8.3.0",
- "@octokit/types": "^13.0.0",
- "universal-user-agent": "^6.0.0"
+ "@opentelemetry/api-logs": "0.57.2",
+ "@types/shimmer": "^1.2.0",
+ "import-in-the-middle": "^1.8.1",
+ "require-in-the-middle": "^7.1.1",
+ "semver": "^7.5.2",
+ "shimmer": "^1.2.1"
},
"engines": {
- "node": ">= 18"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/graphql/node_modules/@octokit/openapi-types": {
- "version": "22.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
- "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
- },
- "node_modules/@octokit/graphql/node_modules/@octokit/types": {
- "version": "13.5.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
- "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
+ "node_modules/@opentelemetry/instrumentation-amqplib": {
+ "version": "0.46.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.1.tgz",
+ "integrity": "sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/openapi-types": "^22.2.0"
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/oauth-app": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-8.0.1.tgz",
- "integrity": "sha512-QnhMYEQpnYbEPn9cae+wXL2LuPMFglmfeuDJXXsyxIXdoORwkLK8y0cHhd/5du9MbO/zdG/BXixzB7EEwU63eQ==",
+ "node_modules/@opentelemetry/instrumentation-connect": {
+ "version": "0.43.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.0.tgz",
+ "integrity": "sha512-Q57JGpH6T4dkYHo9tKXONgLtxzsh1ZEW5M9A/OwKrZFyEpLqWgjhcZ3hIuVvDlhb426iDF1f9FPToV/mi5rpeA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/auth-oauth-app": "^9.0.1",
- "@octokit/auth-oauth-user": "^6.0.0",
- "@octokit/auth-unauthenticated": "^7.0.1",
- "@octokit/core": "^7.0.2",
- "@octokit/oauth-authorization-url": "^8.0.0",
- "@octokit/oauth-methods": "^6.0.0",
- "@types/aws-lambda": "^8.10.83",
- "universal-user-agent": "^7.0.0"
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@types/connect": "3.4.36"
},
"engines": {
- "node": ">= 20"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/oauth-app/node_modules/@octokit/auth-oauth-app": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-9.0.1.tgz",
- "integrity": "sha512-TthWzYxuHKLAbmxdFZwFlmwVyvynpyPmjwc+2/cI3cvbT7mHtsAW9b1LvQaNnAuWL+pFnqtxdmrU8QpF633i1g==",
+ "node_modules/@opentelemetry/instrumentation-connect/node_modules/@types/connect": {
+ "version": "3.4.36",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz",
+ "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==",
+ "license": "MIT",
"dependencies": {
- "@octokit/auth-oauth-device": "^8.0.1",
- "@octokit/auth-oauth-user": "^6.0.0",
- "@octokit/request": "^10.0.2",
- "@octokit/types": "^14.0.0",
- "universal-user-agent": "^7.0.0"
- },
- "engines": {
- "node": ">= 20"
+ "@types/node": "*"
}
},
- "node_modules/@octokit/oauth-app/node_modules/@octokit/auth-oauth-device": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-8.0.1.tgz",
- "integrity": "sha512-TOqId/+am5yk9zor0RGibmlqn4V0h8vzjxlw/wYr3qzkQxl8aBPur384D1EyHtqvfz0syeXji4OUvKkHvxk/Gw==",
+ "node_modules/@opentelemetry/instrumentation-dataloader": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.0.tgz",
+ "integrity": "sha512-88+qCHZC02up8PwKHk0UQKLLqGGURzS3hFQBZC7PnGwReuoKjHXS1o29H58S+QkXJpkTr2GACbx8j6mUoGjNPA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/oauth-methods": "^6.0.0",
- "@octokit/request": "^10.0.2",
- "@octokit/types": "^14.0.0",
- "universal-user-agent": "^7.0.0"
+ "@opentelemetry/instrumentation": "^0.57.0"
},
"engines": {
- "node": ">= 20"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/oauth-app/node_modules/@octokit/auth-oauth-user": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-6.0.0.tgz",
- "integrity": "sha512-GV9IW134PHsLhtUad21WIeP9mlJ+QNpFd6V9vuPWmaiN25HEJeEQUcS4y5oRuqCm9iWDLtfIs+9K8uczBXKr6A==",
+ "node_modules/@opentelemetry/instrumentation-express": {
+ "version": "0.47.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.0.tgz",
+ "integrity": "sha512-XFWVx6k0XlU8lu6cBlCa29ONtVt6ADEjmxtyAyeF2+rifk8uBJbk1La0yIVfI0DoKURGbaEDTNelaXG9l/lNNQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/auth-oauth-device": "^8.0.1",
- "@octokit/oauth-methods": "^6.0.0",
- "@octokit/request": "^10.0.2",
- "@octokit/types": "^14.0.0",
- "universal-user-agent": "^7.0.0"
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
},
"engines": {
- "node": ">= 20"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/oauth-app/node_modules/@octokit/auth-token": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-6.0.0.tgz",
- "integrity": "sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==",
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@octokit/oauth-app/node_modules/@octokit/auth-unauthenticated": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-7.0.1.tgz",
- "integrity": "sha512-qVq1vdjLLZdE8kH2vDycNNjuJRCD1q2oet1nA/GXWaYlpDxlR7rdVhX/K/oszXslXiQIiqrQf+rdhDlA99JdTQ==",
+ "node_modules/@opentelemetry/instrumentation-fastify": {
+ "version": "0.44.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.44.1.tgz",
+ "integrity": "sha512-RoVeMGKcNttNfXMSl6W4fsYoCAYP1vi6ZAWIGhBY+o7R9Y0afA7f9JJL0j8LHbyb0P0QhSYk+6O56OwI2k4iRQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0"
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
},
"engines": {
- "node": ">= 20"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/oauth-app/node_modules/@octokit/core": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.2.tgz",
- "integrity": "sha512-ODsoD39Lq6vR6aBgvjTnA3nZGliknKboc9Gtxr7E4WDNqY24MxANKcuDQSF0jzapvGb3KWOEDrKfve4HoWGK+g==",
+ "node_modules/@opentelemetry/instrumentation-fs": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.0.tgz",
+ "integrity": "sha512-JGwmHhBkRT2G/BYNV1aGI+bBjJu4fJUD/5/Jat0EWZa2ftrLV3YE8z84Fiij/wK32oMZ88eS8DI4ecLGZhpqsQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/auth-token": "^6.0.0",
- "@octokit/graphql": "^9.0.1",
- "@octokit/request": "^10.0.2",
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0",
- "before-after-hook": "^4.0.0",
- "universal-user-agent": "^7.0.0"
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.0"
},
"engines": {
- "node": ">= 20"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/oauth-app/node_modules/@octokit/endpoint": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.0.tgz",
- "integrity": "sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==",
+ "node_modules/@opentelemetry/instrumentation-generic-pool": {
+ "version": "0.43.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.0.tgz",
+ "integrity": "sha512-at8GceTtNxD1NfFKGAuwtqM41ot/TpcLh+YsGe4dhf7gvv1HW/ZWdq6nfRtS6UjIvZJOokViqLPJ3GVtZItAnQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/types": "^14.0.0",
- "universal-user-agent": "^7.0.2"
+ "@opentelemetry/instrumentation": "^0.57.0"
},
"engines": {
- "node": ">= 20"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/oauth-app/node_modules/@octokit/graphql": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-9.0.1.tgz",
- "integrity": "sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==",
+ "node_modules/@opentelemetry/instrumentation-graphql": {
+ "version": "0.47.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.0.tgz",
+ "integrity": "sha512-Cc8SMf+nLqp0fi8oAnooNEfwZWFnzMiBHCGmDFYqmgjPylyLmi83b+NiTns/rKGwlErpW0AGPt0sMpkbNlzn8w==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/request": "^10.0.2",
- "@octokit/types": "^14.0.0",
- "universal-user-agent": "^7.0.0"
+ "@opentelemetry/instrumentation": "^0.57.0"
},
"engines": {
- "node": ">= 20"
- }
- },
- "node_modules/@octokit/oauth-app/node_modules/@octokit/oauth-authorization-url": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-8.0.0.tgz",
- "integrity": "sha512-7QoLPRh/ssEA/HuHBHdVdSgF8xNLz/Bc5m9fZkArJE5bb6NmVkDm3anKxXPmN1zh6b5WKZPRr3697xKT/yM3qQ==",
- "engines": {
- "node": ">= 20"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/oauth-app/node_modules/@octokit/oauth-methods": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-6.0.0.tgz",
- "integrity": "sha512-Q8nFIagNLIZgM2odAraelMcDssapc+lF+y3OlcIPxyAU+knefO8KmozGqfnma1xegRDP4z5M73ABsamn72bOcA==",
+ "node_modules/@opentelemetry/instrumentation-hapi": {
+ "version": "0.45.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.1.tgz",
+ "integrity": "sha512-VH6mU3YqAKTePPfUPwfq4/xr049774qWtfTuJqVHoVspCLiT3bW+fCQ1toZxt6cxRPYASoYaBsMA3CWo8B8rcw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/oauth-authorization-url": "^8.0.0",
- "@octokit/request": "^10.0.2",
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0"
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
},
"engines": {
- "node": ">= 20"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/oauth-app/node_modules/@octokit/openapi-types": {
- "version": "25.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.0.0.tgz",
- "integrity": "sha512-FZvktFu7HfOIJf2BScLKIEYjDsw6RKc7rBJCdvCTfKsVnx2GEB/Nbzjr29DUdb7vQhlzS/j8qDzdditP0OC6aw=="
- },
- "node_modules/@octokit/oauth-app/node_modules/@octokit/request": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.2.tgz",
- "integrity": "sha512-iYj4SJG/2bbhh+iIpFmG5u49DtJ4lipQ+aPakjL9OKpsGY93wM8w06gvFbEQxcMsZcCvk5th5KkIm2m8o14aWA==",
+ "node_modules/@opentelemetry/instrumentation-http": {
+ "version": "0.57.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.57.1.tgz",
+ "integrity": "sha512-ThLmzAQDs7b/tdKI3BV2+yawuF09jF111OFsovqT1Qj3D8vjwKBwhi/rDE5xethwn4tSXtZcJ9hBsVAlWFQZ7g==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/endpoint": "^11.0.0",
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0",
- "fast-content-type-parse": "^3.0.0",
- "universal-user-agent": "^7.0.2"
+ "@opentelemetry/core": "1.30.1",
+ "@opentelemetry/instrumentation": "0.57.1",
+ "@opentelemetry/semantic-conventions": "1.28.0",
+ "forwarded-parse": "2.1.2",
+ "semver": "^7.5.2"
},
"engines": {
- "node": ">= 20"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/oauth-app/node_modules/@octokit/request-error": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.0.0.tgz",
- "integrity": "sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==",
+ "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/api-logs": {
+ "version": "0.57.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.1.tgz",
+ "integrity": "sha512-I4PHczeujhQAQv6ZBzqHYEUiggZL4IdSMixtVD3EYqbdrjujE7kRfI5QohjlPoJm8BvenoW5YaTMWRrbpot6tg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/types": "^14.0.0"
+ "@opentelemetry/api": "^1.3.0"
},
"engines": {
- "node": ">= 20"
+ "node": ">=14"
}
},
- "node_modules/@octokit/oauth-app/node_modules/@octokit/types": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.0.0.tgz",
- "integrity": "sha512-VVmZP0lEhbo2O1pdq63gZFiGCKkm8PPp8AUOijlwPO6hojEVjspA0MWKP7E4hbvGxzFKNqKr6p0IYtOH/Wf/zA==",
+ "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/instrumentation": {
+ "version": "0.57.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz",
+ "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/openapi-types": "^25.0.0"
+ "@opentelemetry/api-logs": "0.57.1",
+ "@types/shimmer": "^1.2.0",
+ "import-in-the-middle": "^1.8.1",
+ "require-in-the-middle": "^7.1.1",
+ "semver": "^7.5.2",
+ "shimmer": "^1.2.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/oauth-app/node_modules/before-after-hook": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-4.0.0.tgz",
- "integrity": "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ=="
- },
- "node_modules/@octokit/oauth-app/node_modules/universal-user-agent": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz",
- "integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A=="
- },
- "node_modules/@octokit/oauth-authorization-url": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-6.0.2.tgz",
- "integrity": "sha512-CdoJukjXXxqLNK4y/VOiVzQVjibqoj/xHgInekviUJV73y/BSIcwvJ/4aNHPBPKcPWFnd4/lO9uqRV65jXhcLA==",
- "license": "MIT",
+ "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "license": "Apache-2.0",
"engines": {
- "node": ">= 18"
+ "node": ">=14"
}
},
- "node_modules/@octokit/oauth-methods": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-4.1.0.tgz",
- "integrity": "sha512-4tuKnCRecJ6CG6gr0XcEXdZtkTDbfbnD5oaHBmLERTjTMZNi2CbfEHZxPU41xXLDG4DfKf+sonu00zvKI9NSbw==",
- "license": "MIT",
+ "node_modules/@opentelemetry/instrumentation-ioredis": {
+ "version": "0.47.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.0.tgz",
+ "integrity": "sha512-4HqP9IBC8e7pW9p90P3q4ox0XlbLGme65YTrA3UTLvqvo4Z6b0puqZQP203YFu8m9rE/luLfaG7/xrwwqMUpJw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/oauth-authorization-url": "^6.0.2",
- "@octokit/request": "^8.3.1",
- "@octokit/request-error": "^5.1.0",
- "@octokit/types": "^13.0.0",
- "btoa-lite": "^1.0.0"
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/redis-common": "^0.36.2",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
},
"engines": {
- "node": ">= 18"
- }
- },
- "node_modules/@octokit/oauth-methods/node_modules/@octokit/openapi-types": {
- "version": "23.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
- "integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==",
- "license": "MIT"
- },
- "node_modules/@octokit/oauth-methods/node_modules/@octokit/types": {
- "version": "13.8.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz",
- "integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==",
- "license": "MIT",
- "dependencies": {
- "@octokit/openapi-types": "^23.0.1"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/openapi-types": {
- "version": "20.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz",
- "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA=="
- },
- "node_modules/@octokit/openapi-webhooks-types": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-webhooks-types/-/openapi-webhooks-types-11.0.0.tgz",
- "integrity": "sha512-ZBzCFj98v3SuRM7oBas6BHZMJRadlnDoeFfvm1olVxZnYeU6Vh97FhPxyS5aLh5pN51GYv2I51l/hVUAVkGBlA=="
- },
- "node_modules/@octokit/plugin-enterprise-compatibility": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-compatibility/-/plugin-enterprise-compatibility-4.1.0.tgz",
- "integrity": "sha512-a8QehVu9Iy4k+m2XgG2rrF4m9vhlRIaefOMr0yJzgQCt4KpiTj5mZVrzSwagyOovkJdD0yDolQazBQZqPWTFSQ==",
- "license": "MIT",
+ "node_modules/@opentelemetry/instrumentation-kafkajs": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.0.tgz",
+ "integrity": "sha512-LB+3xiNzc034zHfCtgs4ITWhq6Xvdo8bsq7amR058jZlf2aXXDrN9SV4si4z2ya9QX4tz6r4eZJwDkXOp14/AQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/request-error": "^5.0.0",
- "@octokit/types": "^12.0.0"
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/plugin-paginate-rest": {
- "version": "11.4.4-cjs.2",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz",
- "integrity": "sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==",
- "license": "MIT",
+ "node_modules/@opentelemetry/instrumentation-knex": {
+ "version": "0.44.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.0.tgz",
+ "integrity": "sha512-SlT0+bLA0Lg3VthGje+bSZatlGHw/vwgQywx0R/5u9QC59FddTQSPJeWNw29M6f8ScORMeUOOTwihlQAn4GkJQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/types": "^13.7.0"
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">=14"
},
"peerDependencies": {
- "@octokit/core": "5"
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": {
- "version": "23.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
- "integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==",
- "license": "MIT"
- },
- "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": {
- "version": "13.8.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz",
- "integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==",
- "license": "MIT",
+ "node_modules/@opentelemetry/instrumentation-koa": {
+ "version": "0.47.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.0.tgz",
+ "integrity": "sha512-HFdvqf2+w8sWOuwtEXayGzdZ2vWpCKEQv5F7+2DSA74Te/Cv4rvb2E5So5/lh+ok4/RAIPuvCbCb/SHQFzMmbw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/openapi-types": "^23.0.1"
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/plugin-rest-endpoint-methods": {
- "version": "13.3.2-cjs.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz",
- "integrity": "sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==",
- "license": "MIT",
+ "node_modules/@opentelemetry/instrumentation-lru-memoizer": {
+ "version": "0.44.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.0.tgz",
+ "integrity": "sha512-Tn7emHAlvYDFik3vGU0mdwvWJDwtITtkJ+5eT2cUquct6nIs+H8M47sqMJkCpyPe5QIBJoTOHxmc6mj9lz6zDw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/types": "^13.8.0"
+ "@opentelemetry/instrumentation": "^0.57.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">=14"
},
"peerDependencies": {
- "@octokit/core": "^5"
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": {
- "version": "23.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
- "integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==",
- "license": "MIT"
- },
- "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": {
- "version": "13.8.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz",
- "integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==",
- "license": "MIT",
- "dependencies": {
- "@octokit/openapi-types": "^23.0.1"
- }
- },
- "node_modules/@octokit/plugin-retry": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz",
- "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==",
+ "node_modules/@opentelemetry/instrumentation-mongodb": {
+ "version": "0.51.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.51.0.tgz",
+ "integrity": "sha512-cMKASxCX4aFxesoj3WK8uoQ0YUrRvnfxaO72QWI2xLu5ZtgX/QvdGBlU3Ehdond5eb74c2s1cqRQUIptBnKz1g==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/request-error": "^5.0.0",
- "@octokit/types": "^12.0.0",
- "bottleneck": "^2.15.3"
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">=14"
},
"peerDependencies": {
- "@octokit/core": ">=5"
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/plugin-throttling": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz",
- "integrity": "sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ==",
+ "node_modules/@opentelemetry/instrumentation-mongoose": {
+ "version": "0.46.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.0.tgz",
+ "integrity": "sha512-mtVv6UeaaSaWTeZtLo4cx4P5/ING2obSqfWGItIFSunQBrYROfhuVe7wdIrFUs2RH1tn2YYpAJyMaRe/bnTTIQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/types": "^12.2.0",
- "bottleneck": "^2.15.3"
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">=14"
},
"peerDependencies": {
- "@octokit/core": "^5.0.0"
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/request": {
- "version": "8.4.1",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
- "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
+ "node_modules/@opentelemetry/instrumentation-mysql": {
+ "version": "0.45.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.0.tgz",
+ "integrity": "sha512-tWWyymgwYcTwZ4t8/rLDfPYbOTF3oYB8SxnYMtIQ1zEf5uDm90Ku3i6U/vhaMyfHNlIHvDhvJh+qx5Nc4Z3Acg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/endpoint": "^9.0.6",
- "@octokit/request-error": "^5.1.1",
- "@octokit/types": "^13.1.0",
- "universal-user-agent": "^6.0.0"
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@types/mysql": "2.15.26"
},
"engines": {
- "node": ">= 18"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/request-error": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
- "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
+ "node_modules/@opentelemetry/instrumentation-mysql2": {
+ "version": "0.45.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.0.tgz",
+ "integrity": "sha512-qLslv/EPuLj0IXFvcE3b0EqhWI8LKmrgRPIa4gUd8DllbBpqJAvLNJSv3cC6vWwovpbSI3bagNO/3Q2SuXv2xA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/types": "^13.1.0",
- "deprecation": "^2.0.0",
- "once": "^1.4.0"
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@opentelemetry/sql-common": "^0.40.1"
},
"engines": {
- "node": ">= 18"
- }
- },
- "node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": {
- "version": "22.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
- "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
- },
- "node_modules/@octokit/request-error/node_modules/@octokit/types": {
- "version": "13.5.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
- "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
- "dependencies": {
- "@octokit/openapi-types": "^22.2.0"
- }
- },
- "node_modules/@octokit/request/node_modules/@octokit/openapi-types": {
- "version": "22.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
- "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg=="
- },
- "node_modules/@octokit/request/node_modules/@octokit/types": {
- "version": "13.5.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
- "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
- "dependencies": {
- "@octokit/openapi-types": "^22.2.0"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/types": {
- "version": "12.6.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz",
- "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
+ "node_modules/@opentelemetry/instrumentation-nestjs-core": {
+ "version": "0.44.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.44.0.tgz",
+ "integrity": "sha512-t16pQ7A4WYu1yyQJZhRKIfUNvl5PAaF2pEteLvgJb/BWdd1oNuU1rOYt4S825kMy+0q4ngiX281Ss9qiwHfxFQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/openapi-types": "^20.0.0"
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/webhooks": {
- "version": "12.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-12.2.0.tgz",
- "integrity": "sha512-CyuLJ0/P7bKZ+kIYw+fnkeVdhUzNuDKgNSI7pU/m7Nod0T7kP+s4s2f0pNmG9HL8/RZN1S0ZWTDll3VTMrFLAw==",
+ "node_modules/@opentelemetry/instrumentation-pg": {
+ "version": "0.50.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.50.0.tgz",
+ "integrity": "sha512-TtLxDdYZmBhFswm8UIsrDjh/HFBeDXd4BLmE8h2MxirNHewLJ0VS9UUddKKEverb5Sm2qFVjqRjcU+8Iw4FJ3w==",
+ "license": "Apache-2.0",
"dependencies": {
- "@octokit/request-error": "^5.0.0",
- "@octokit/webhooks-methods": "^4.1.0",
- "@octokit/webhooks-types": "7.4.0",
- "aggregate-error": "^3.1.0"
+ "@opentelemetry/core": "^1.26.0",
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "1.27.0",
+ "@opentelemetry/sql-common": "^0.40.1",
+ "@types/pg": "8.6.1",
+ "@types/pg-pool": "2.0.6"
},
"engines": {
- "node": ">= 18"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@octokit/webhooks-methods": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-4.1.0.tgz",
- "integrity": "sha512-zoQyKw8h9STNPqtm28UGOYFE7O6D4Il8VJwhAtMHFt2C4L0VQT1qGKLeefUOqHNs1mNRYSadVv7x0z8U2yyeWQ==",
+ "node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.27.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz",
+ "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==",
+ "license": "Apache-2.0",
"engines": {
- "node": ">= 18"
+ "node": ">=14"
}
},
- "node_modules/@octokit/webhooks-types": {
- "version": "7.4.0",
- "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-7.4.0.tgz",
- "integrity": "sha512-FE2V+QZ2UYlh+9wWd5BPLNXG+J/XUD/PPq0ovS+nCcGX4+3qVbi3jYOmCTW48hg9SBBLtInx9+o7fFt4H5iP0Q=="
- },
- "node_modules/@open-draft/deferred-promise": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz",
- "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==",
- "dev": true
- },
- "node_modules/@open-draft/logger": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz",
- "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==",
- "dev": true,
+ "node_modules/@opentelemetry/instrumentation-redis-4": {
+ "version": "0.46.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.0.tgz",
+ "integrity": "sha512-aTUWbzbFMFeRODn3720TZO0tsh/49T8H3h8vVnVKJ+yE36AeW38Uj/8zykQ/9nO8Vrtjr5yKuX3uMiG/W8FKNw==",
+ "license": "Apache-2.0",
"dependencies": {
- "is-node-process": "^1.2.0",
- "outvariant": "^1.4.0"
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/redis-common": "^0.36.2",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@open-draft/until": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz",
- "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==",
- "dev": true
- },
- "node_modules/@opentelemetry/api": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
- "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
+ "node_modules/@opentelemetry/instrumentation-tedious": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.0.tgz",
+ "integrity": "sha512-9zhjDpUDOtD+coeADnYEJQ0IeLVCj7w/hqzIutdp5NqS1VqTAanaEfsEcSypyvYv5DX3YOsTUoF+nr2wDXPETA==",
"license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.0",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@types/tedious": "^4.0.14"
+ },
"engines": {
- "node": ">=8.0.0"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@opentelemetry/api-logs": {
- "version": "0.57.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz",
- "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==",
+ "node_modules/@opentelemetry/instrumentation-undici": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.0.tgz",
+ "integrity": "sha512-vm+V255NGw9gaSsPD6CP0oGo8L55BffBc8KnxqsMuc6XiAD1L8SFNzsW0RHhxJFqy9CJaJh+YiJ5EHXuZ5rZBw==",
"license": "Apache-2.0",
"dependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.0"
},
"engines": {
"node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.7.0"
}
},
- "node_modules/@opentelemetry/context-async-hooks": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz",
- "integrity": "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==",
+ "node_modules/@opentelemetry/redis-common": {
+ "version": "0.36.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz",
+ "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==",
"license": "Apache-2.0",
"engines": {
"node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
- "node_modules/@opentelemetry/core": {
+ "node_modules/@opentelemetry/resources": {
"version": "1.30.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz",
- "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz",
+ "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==",
"license": "Apache-2.0",
"dependencies": {
+ "@opentelemetry/core": "1.30.1",
"@opentelemetry/semantic-conventions": "1.28.0"
},
"engines": {
@@ -2737,7 +2591,7 @@
"@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
- "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": {
+ "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/semantic-conventions": {
"version": "1.28.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
"integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
@@ -2746,94 +2600,97 @@
"node": ">=14"
}
},
- "node_modules/@opentelemetry/instrumentation": {
- "version": "0.57.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.2.tgz",
- "integrity": "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==",
+ "node_modules/@opentelemetry/sdk-trace-base": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz",
+ "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==",
"license": "Apache-2.0",
"dependencies": {
- "@opentelemetry/api-logs": "0.57.2",
- "@types/shimmer": "^1.2.0",
- "import-in-the-middle": "^1.8.1",
- "require-in-the-middle": "^7.1.1",
- "semver": "^7.5.2",
- "shimmer": "^1.2.1"
+ "@opentelemetry/core": "1.30.1",
+ "@opentelemetry/resources": "1.30.1",
+ "@opentelemetry/semantic-conventions": "1.28.0"
},
"engines": {
"node": ">=14"
},
"peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
- "node_modules/@opentelemetry/instrumentation-amqplib": {
- "version": "0.46.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.1.tgz",
- "integrity": "sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==",
+ "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
"license": "Apache-2.0",
- "dependencies": {
- "@opentelemetry/core": "^1.8.0",
- "@opentelemetry/instrumentation": "^0.57.1",
- "@opentelemetry/semantic-conventions": "^1.27.0"
- },
"engines": {
"node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@opentelemetry/instrumentation-connect": {
- "version": "0.43.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.0.tgz",
- "integrity": "sha512-Q57JGpH6T4dkYHo9tKXONgLtxzsh1ZEW5M9A/OwKrZFyEpLqWgjhcZ3hIuVvDlhb426iDF1f9FPToV/mi5rpeA==",
+ "node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.40.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.40.0.tgz",
+ "integrity": "sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/sql-common": {
+ "version": "0.40.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz",
+ "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==",
"license": "Apache-2.0",
"dependencies": {
- "@opentelemetry/core": "^1.8.0",
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0",
- "@types/connect": "3.4.36"
+ "@opentelemetry/core": "^1.1.0"
},
"engines": {
"node": ">=14"
},
"peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "@opentelemetry/api": "^1.1.0"
}
},
- "node_modules/@opentelemetry/instrumentation-connect/node_modules/@types/connect": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz",
- "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==",
- "license": "MIT",
+ "node_modules/@pinojs/redact": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@pinojs/redact/-/redact-0.4.0.tgz",
+ "integrity": "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==",
+ "license": "MIT"
+ },
+ "node_modules/@prisma/instrumentation": {
+ "version": "5.22.0",
+ "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-5.22.0.tgz",
+ "integrity": "sha512-LxccF392NN37ISGxIurUljZSh1YWnphO34V5a0+T7FVQG2u9bhAXRTJpgmQ3483woVhkraQZFF7cbRrpbw/F4Q==",
+ "license": "Apache-2.0",
"dependencies": {
- "@types/node": "*"
+ "@opentelemetry/api": "^1.8",
+ "@opentelemetry/instrumentation": "^0.49 || ^0.50 || ^0.51 || ^0.52.0 || ^0.53.0",
+ "@opentelemetry/sdk-trace-base": "^1.22"
}
},
- "node_modules/@opentelemetry/instrumentation-dataloader": {
- "version": "0.16.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.0.tgz",
- "integrity": "sha512-88+qCHZC02up8PwKHk0UQKLLqGGURzS3hFQBZC7PnGwReuoKjHXS1o29H58S+QkXJpkTr2GACbx8j6mUoGjNPA==",
+ "node_modules/@prisma/instrumentation/node_modules/@opentelemetry/api-logs": {
+ "version": "0.53.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz",
+ "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==",
"license": "Apache-2.0",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0"
+ "@opentelemetry/api": "^1.0.0"
},
"engines": {
"node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@opentelemetry/instrumentation-express": {
- "version": "0.47.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.0.tgz",
- "integrity": "sha512-XFWVx6k0XlU8lu6cBlCa29ONtVt6ADEjmxtyAyeF2+rifk8uBJbk1La0yIVfI0DoKURGbaEDTNelaXG9l/lNNQ==",
+ "node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation": {
+ "version": "0.53.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz",
+ "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==",
"license": "Apache-2.0",
"dependencies": {
- "@opentelemetry/core": "^1.8.0",
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0"
+ "@opentelemetry/api-logs": "0.53.0",
+ "@types/shimmer": "^1.2.0",
+ "import-in-the-middle": "^1.8.1",
+ "require-in-the-middle": "^7.1.1",
+ "semver": "^7.5.2",
+ "shimmer": "^1.2.1"
},
"engines": {
"node": ">=14"
@@ -2842,553 +2699,742 @@
"@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@opentelemetry/instrumentation-fastify": {
- "version": "0.44.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.44.1.tgz",
- "integrity": "sha512-RoVeMGKcNttNfXMSl6W4fsYoCAYP1vi6ZAWIGhBY+o7R9Y0afA7f9JJL0j8LHbyb0P0QhSYk+6O56OwI2k4iRQ==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@probot/adapter-aws-lambda-serverless/-/adapter-aws-lambda-serverless-4.0.3.tgz",
+ "integrity": "sha512-0KGFM4TSqcyG3ol9m6Ybgo1MgZmVv+TAD5LYrBkM2X9PFQegf/UDdl9APB9MQjeaFxMFjrbtewLjBPp7TQ4WhQ==",
+ "license": "ISC",
"dependencies": {
- "@opentelemetry/core": "^1.8.0",
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0"
+ "@types/aws-lambda": "^8.10.147",
+ "lowercase-keys": "^2.0.0",
+ "probot": "^13.4.1"
+ }
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-app": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-6.1.4.tgz",
+ "integrity": "sha512-QkXkSOHZK4dA5oUqY5Dk3S+5pN2s1igPjEASNQV8/vgJgW034fQWR16u7VsNOK/EljA00eyjYF5mWNxWKWhHRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-oauth-app": "^7.1.0",
+ "@octokit/auth-oauth-user": "^4.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/request-error": "^5.1.0",
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.3.1",
+ "lru-cache": "npm:@wolfy1339/lru-cache@^11.0.2-patch.1",
+ "universal-github-app-jwt": "^1.1.2",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-fs": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.0.tgz",
- "integrity": "sha512-JGwmHhBkRT2G/BYNV1aGI+bBjJu4fJUD/5/Jat0EWZa2ftrLV3YE8z84Fiij/wK32oMZ88eS8DI4ecLGZhpqsQ==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-app/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-app/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/core": "^1.8.0",
- "@opentelemetry/instrumentation": "^0.57.0"
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-oauth-app": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-7.1.0.tgz",
+ "integrity": "sha512-w+SyJN/b0l/HEb4EOPRudo7uUOSW51jcK1jwLa+4r7PA8FPFpoxEnHBHMITqCsc/3Vo2qqFjgQfz/xUUvsSQnA==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-oauth-device": "^6.1.0",
+ "@octokit/auth-oauth-user": "^4.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/types": "^13.0.0",
+ "@types/btoa-lite": "^1.0.0",
+ "btoa-lite": "^1.0.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-generic-pool": {
- "version": "0.43.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.0.tgz",
- "integrity": "sha512-at8GceTtNxD1NfFKGAuwtqM41ot/TpcLh+YsGe4dhf7gvv1HW/ZWdq6nfRtS6UjIvZJOokViqLPJ3GVtZItAnQ==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-oauth-app/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-oauth-app/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0"
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-oauth-device": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-6.1.0.tgz",
+ "integrity": "sha512-FNQ7cb8kASufd6Ej4gnJ3f1QB5vJitkoV1O0/g6e6lUsQ7+VsSNRHRmFScN2tV4IgKA12frrr/cegUs0t+0/Lw==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/oauth-methods": "^4.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-graphql": {
- "version": "0.47.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.0.tgz",
- "integrity": "sha512-Cc8SMf+nLqp0fi8oAnooNEfwZWFnzMiBHCGmDFYqmgjPylyLmi83b+NiTns/rKGwlErpW0AGPt0sMpkbNlzn8w==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-oauth-device/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-oauth-device/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0"
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-oauth-user": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-4.1.0.tgz",
+ "integrity": "sha512-FrEp8mtFuS/BrJyjpur+4GARteUCrPeR/tZJzD8YourzoVhRics7u7we/aDcKv+yywRNwNi/P4fRi631rG/OyQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-oauth-device": "^6.1.0",
+ "@octokit/oauth-methods": "^4.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/types": "^13.0.0",
+ "btoa-lite": "^1.0.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-hapi": {
- "version": "0.45.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.1.tgz",
- "integrity": "sha512-VH6mU3YqAKTePPfUPwfq4/xr049774qWtfTuJqVHoVspCLiT3bW+fCQ1toZxt6cxRPYASoYaBsMA3CWo8B8rcw==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-oauth-user/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-oauth-user/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/core": "^1.8.0",
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0"
- },
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-token": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
+ "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
+ "license": "MIT",
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-http": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.57.1.tgz",
- "integrity": "sha512-ThLmzAQDs7b/tdKI3BV2+yawuF09jF111OFsovqT1Qj3D8vjwKBwhi/rDE5xethwn4tSXtZcJ9hBsVAlWFQZ7g==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/auth-unauthenticated": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-5.0.1.tgz",
+ "integrity": "sha512-oxeWzmBFxWd+XolxKTc4zr+h3mt+yofn4r7OfoIkR/Cj/o70eEGmPsFbueyJE2iBAGpjgTnEOKM3pnuEGVmiqg==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/core": "1.30.1",
- "@opentelemetry/instrumentation": "0.57.1",
- "@opentelemetry/semantic-conventions": "1.28.0",
- "forwarded-parse": "2.1.2",
- "semver": "^7.5.2"
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^12.0.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/api-logs": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.1.tgz",
- "integrity": "sha512-I4PHczeujhQAQv6ZBzqHYEUiggZL4IdSMixtVD3EYqbdrjujE7kRfI5QohjlPoJm8BvenoW5YaTMWRrbpot6tg==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/core": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz",
+ "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "@octokit/auth-token": "^4.0.0",
+ "@octokit/graphql": "^7.1.0",
+ "@octokit/request": "^8.4.1",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.0.0",
+ "before-after-hook": "^2.2.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/instrumentation": {
- "version": "0.57.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz",
- "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/core/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/core/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/api-logs": "0.57.1",
- "@types/shimmer": "^1.2.0",
- "import-in-the-middle": "^1.8.1",
- "require-in-the-middle": "^7.1.1",
- "semver": "^7.5.2",
- "shimmer": "^1.2.1"
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/endpoint": {
+ "version": "9.0.6",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
+ "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": {
- "version": "1.28.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
- "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=14"
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/endpoint/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/endpoint/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@opentelemetry/instrumentation-ioredis": {
- "version": "0.47.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.0.tgz",
- "integrity": "sha512-4HqP9IBC8e7pW9p90P3q4ox0XlbLGme65YTrA3UTLvqvo4Z6b0puqZQP203YFu8m9rE/luLfaG7/xrwwqMUpJw==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/graphql": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz",
+ "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/redis-common": "^0.36.2",
- "@opentelemetry/semantic-conventions": "^1.27.0"
+ "@octokit/request": "^8.4.1",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-kafkajs": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.0.tgz",
- "integrity": "sha512-LB+3xiNzc034zHfCtgs4ITWhq6Xvdo8bsq7amR058jZlf2aXXDrN9SV4si4z2ya9QX4tz6r4eZJwDkXOp14/AQ==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/graphql/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/graphql/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0"
- },
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/oauth-authorization-url": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-6.0.2.tgz",
+ "integrity": "sha512-CdoJukjXXxqLNK4y/VOiVzQVjibqoj/xHgInekviUJV73y/BSIcwvJ/4aNHPBPKcPWFnd4/lO9uqRV65jXhcLA==",
+ "license": "MIT",
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-knex": {
- "version": "0.44.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.0.tgz",
- "integrity": "sha512-SlT0+bLA0Lg3VthGje+bSZatlGHw/vwgQywx0R/5u9QC59FddTQSPJeWNw29M6f8ScORMeUOOTwihlQAn4GkJQ==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/oauth-methods": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-4.1.0.tgz",
+ "integrity": "sha512-4tuKnCRecJ6CG6gr0XcEXdZtkTDbfbnD5oaHBmLERTjTMZNi2CbfEHZxPU41xXLDG4DfKf+sonu00zvKI9NSbw==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0"
+ "@octokit/oauth-authorization-url": "^6.0.2",
+ "@octokit/request": "^8.3.1",
+ "@octokit/request-error": "^5.1.0",
+ "@octokit/types": "^13.0.0",
+ "btoa-lite": "^1.0.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-koa": {
- "version": "0.47.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.0.tgz",
- "integrity": "sha512-HFdvqf2+w8sWOuwtEXayGzdZ2vWpCKEQv5F7+2DSA74Te/Cv4rvb2E5So5/lh+ok4/RAIPuvCbCb/SHQFzMmbw==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/oauth-methods/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/oauth-methods/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/core": "^1.8.0",
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0"
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/openapi-types": {
+ "version": "20.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz",
+ "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/plugin-enterprise-compatibility": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-compatibility/-/plugin-enterprise-compatibility-4.1.0.tgz",
+ "integrity": "sha512-a8QehVu9Iy4k+m2XgG2rrF4m9vhlRIaefOMr0yJzgQCt4KpiTj5mZVrzSwagyOovkJdD0yDolQazBQZqPWTFSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^12.0.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-lru-memoizer": {
- "version": "0.44.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.0.tgz",
- "integrity": "sha512-Tn7emHAlvYDFik3vGU0mdwvWJDwtITtkJ+5eT2cUquct6nIs+H8M47sqMJkCpyPe5QIBJoTOHxmc6mj9lz6zDw==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/plugin-paginate-rest": {
+ "version": "11.4.4-cjs.2",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz",
+ "integrity": "sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0"
+ "@octokit/types": "^13.7.0"
},
"engines": {
- "node": ">=14"
+ "node": ">= 18"
},
"peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "@octokit/core": "5"
}
},
- "node_modules/@opentelemetry/instrumentation-mongodb": {
- "version": "0.51.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.51.0.tgz",
- "integrity": "sha512-cMKASxCX4aFxesoj3WK8uoQ0YUrRvnfxaO72QWI2xLu5ZtgX/QvdGBlU3Ehdond5eb74c2s1cqRQUIptBnKz1g==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@opentelemetry/instrumentation-mongoose": {
- "version": "0.46.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.0.tgz",
- "integrity": "sha512-mtVv6UeaaSaWTeZtLo4cx4P5/ING2obSqfWGItIFSunQBrYROfhuVe7wdIrFUs2RH1tn2YYpAJyMaRe/bnTTIQ==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/plugin-rest-endpoint-methods": {
+ "version": "13.3.2-cjs.1",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz",
+ "integrity": "sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/core": "^1.8.0",
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0"
+ "@octokit/types": "^13.8.0"
},
"engines": {
- "node": ">=14"
+ "node": ">= 18"
},
"peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "@octokit/core": "^5"
}
},
- "node_modules/@opentelemetry/instrumentation-mysql": {
- "version": "0.45.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.0.tgz",
- "integrity": "sha512-tWWyymgwYcTwZ4t8/rLDfPYbOTF3oYB8SxnYMtIQ1zEf5uDm90Ku3i6U/vhaMyfHNlIHvDhvJh+qx5Nc4Z3Acg==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0",
- "@types/mysql": "2.15.26"
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/plugin-retry": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.1.0.tgz",
+ "integrity": "sha512-WrO3bvq4E1Xh1r2mT9w6SDFg01gFmP81nIG77+p/MqW1JeXXgL++6umim3t6x0Zj5pZm3rXAN+0HEjmmdhIRig==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^13.0.0",
+ "bottleneck": "^2.15.3"
},
"engines": {
- "node": ">=14"
+ "node": ">= 18"
},
"peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "@octokit/core": "5"
}
},
- "node_modules/@opentelemetry/instrumentation-mysql2": {
- "version": "0.45.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.0.tgz",
- "integrity": "sha512-qLslv/EPuLj0IXFvcE3b0EqhWI8LKmrgRPIa4gUd8DllbBpqJAvLNJSv3cC6vWwovpbSI3bagNO/3Q2SuXv2xA==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/plugin-retry/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/plugin-retry/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0",
- "@opentelemetry/sql-common": "^0.40.1"
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/plugin-throttling": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz",
+ "integrity": "sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^12.2.0",
+ "bottleneck": "^2.15.3"
},
"engines": {
- "node": ">=14"
+ "node": ">= 18"
},
"peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "@octokit/core": "^5.0.0"
}
},
- "node_modules/@opentelemetry/instrumentation-nestjs-core": {
- "version": "0.44.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.44.0.tgz",
- "integrity": "sha512-t16pQ7A4WYu1yyQJZhRKIfUNvl5PAaF2pEteLvgJb/BWdd1oNuU1rOYt4S825kMy+0q4ngiX281Ss9qiwHfxFQ==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/request": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
+ "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0"
+ "@octokit/endpoint": "^9.0.6",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-pg": {
- "version": "0.50.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.50.0.tgz",
- "integrity": "sha512-TtLxDdYZmBhFswm8UIsrDjh/HFBeDXd4BLmE8h2MxirNHewLJ0VS9UUddKKEverb5Sm2qFVjqRjcU+8Iw4FJ3w==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/request-error": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
+ "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/core": "^1.26.0",
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "1.27.0",
- "@opentelemetry/sql-common": "^0.40.1",
- "@types/pg": "8.6.1",
- "@types/pg-pool": "2.0.6"
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/semantic-conventions": {
- "version": "1.27.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz",
- "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=14"
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/request-error/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@opentelemetry/instrumentation-redis-4": {
- "version": "0.46.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.0.tgz",
- "integrity": "sha512-aTUWbzbFMFeRODn3720TZO0tsh/49T8H3h8vVnVKJ+yE36AeW38Uj/8zykQ/9nO8Vrtjr5yKuX3uMiG/W8FKNw==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/request/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "license": "MIT"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/request/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/redis-common": "^0.36.2",
- "@opentelemetry/semantic-conventions": "^1.27.0"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@opentelemetry/instrumentation-tedious": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.0.tgz",
- "integrity": "sha512-9zhjDpUDOtD+coeADnYEJQ0IeLVCj7w/hqzIutdp5NqS1VqTAanaEfsEcSypyvYv5DX3YOsTUoF+nr2wDXPETA==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/types": {
+ "version": "12.6.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz",
+ "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/instrumentation": "^0.57.0",
- "@opentelemetry/semantic-conventions": "^1.27.0",
- "@types/tedious": "^4.0.14"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "@octokit/openapi-types": "^20.0.0"
}
},
- "node_modules/@opentelemetry/instrumentation-undici": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.0.tgz",
- "integrity": "sha512-vm+V255NGw9gaSsPD6CP0oGo8L55BffBc8KnxqsMuc6XiAD1L8SFNzsW0RHhxJFqy9CJaJh+YiJ5EHXuZ5rZBw==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/webhooks": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-12.3.2.tgz",
+ "integrity": "sha512-exj1MzVXoP7xnAcAB3jZ97pTvVPkQF9y6GA/dvYC47HV7vLv+24XRS6b/v/XnyikpEuvMhugEXdGtAlU086WkQ==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/core": "^1.8.0",
- "@opentelemetry/instrumentation": "^0.57.0"
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/webhooks-methods": "^4.1.0",
+ "@octokit/webhooks-types": "7.6.1",
+ "aggregate-error": "^3.1.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.7.0"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/redis-common": {
- "version": "0.36.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz",
- "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@octokit/webhooks-methods": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-4.1.0.tgz",
+ "integrity": "sha512-zoQyKw8h9STNPqtm28UGOYFE7O6D4Il8VJwhAtMHFt2C4L0VQT1qGKLeefUOqHNs1mNRYSadVv7x0z8U2yyeWQ==",
+ "license": "MIT",
"engines": {
- "node": ">=14"
+ "node": ">= 18"
}
},
- "node_modules/@opentelemetry/resources": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz",
- "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@probot/get-private-key": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@probot/get-private-key/-/get-private-key-1.2.1.tgz",
+ "integrity": "sha512-ejh5fK4d0zJES+3aR2IiD8+afuzgpe4Nr3UzTSKbBVU8+u8R/nVCQJawJ5s3QilzgXFftjYkGxZFvXkZ0+u4wA==",
+ "license": "ISC"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@probot/octokit-plugin-config": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@probot/octokit-plugin-config/-/octokit-plugin-config-2.0.1.tgz",
+ "integrity": "sha512-aWQYzPY2xiKscTVTKveghtbglqZ+W4eBLIdK1C/cNiFIofy3AxKogWgEZj29PjIe5ZRYx0sRHAPc/pkcXyOmTQ==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/core": "1.30.1",
- "@opentelemetry/semantic-conventions": "1.28.0"
+ "js-yaml": "^4.1.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.10.0"
- }
- },
- "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/semantic-conventions": {
- "version": "1.28.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
- "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=14"
+ "@octokit/core": ">=5"
}
},
- "node_modules/@opentelemetry/sdk-trace-base": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz",
- "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/@probot/pino": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@probot/pino/-/pino-3.0.0.tgz",
+ "integrity": "sha512-2pLi8gIzDI5NEbu24SOBXqflTc3o95StJE6+jiw3R3n4i3B5hCJjlzCB2j3OETeohtCTuDSc//GuGPyDfZehWg==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/core": "1.30.1",
- "@opentelemetry/resources": "1.30.1",
- "@opentelemetry/semantic-conventions": "1.28.0"
+ "@sentry/node": "^8.0.0",
+ "pino-pretty": "^13.0.0",
+ "pump": "^3.0.0",
+ "split2": "^4.0.0"
},
- "engines": {
- "node": ">=14"
+ "bin": {
+ "pino-probot": "bin/cli.js"
},
- "peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/semantic-conventions": {
- "version": "1.28.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
- "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/before-after-hook": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
+ "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/dotenv": {
+ "version": "16.6.1",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz",
+ "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==",
+ "license": "BSD-2-Clause",
"engines": {
- "node": ">=14"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
}
},
- "node_modules/@opentelemetry/semantic-conventions": {
- "version": "1.30.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.30.0.tgz",
- "integrity": "sha512-4VlGgo32k2EQ2wcCY3vEU28A0O13aOtHz3Xt2/2U5FAh9EfhD6t6DqL5Z6yAnRCntbTFDU4YfbpyzSlHNWycPw==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/lru-cache": {
+ "name": "@wolfy1339/lru-cache",
+ "version": "11.0.2-patch.1",
+ "resolved": "https://registry.npmjs.org/@wolfy1339/lru-cache/-/lru-cache-11.0.2-patch.1.tgz",
+ "integrity": "sha512-BgYZfL2ADCXKOw2wJtkM3slhHotawWkgIRRxq4wEybnZQPjvAp71SPX35xepMykTw8gXlzWcWPTY31hlbnRsDA==",
+ "license": "ISC",
"engines": {
- "node": ">=14"
+ "node": "18 >=18.20 || 20 || >=22"
}
},
- "node_modules/@opentelemetry/sql-common": {
- "version": "0.40.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz",
- "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/octokit-auth-probot": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/octokit-auth-probot/-/octokit-auth-probot-2.0.2.tgz",
+ "integrity": "sha512-/6eQQZ7CpGXRiczT4BoGcRZCixczJKjb5anfZbC+bkN1B4oyayvarwR6FrklRLuC81izHqgvbdX7E/F+0Iw+tw==",
+ "license": "ISC",
"dependencies": {
- "@opentelemetry/core": "^1.1.0"
+ "@octokit/auth-app": "^6.1.4",
+ "@octokit/auth-token": "^4.0.0",
+ "@octokit/auth-unauthenticated": "^5.0.1",
+ "@octokit/types": "^12.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
},
"peerDependencies": {
- "@opentelemetry/api": "^1.1.0"
+ "@octokit/core": ">=5"
}
},
- "node_modules/@prisma/instrumentation": {
- "version": "5.22.0",
- "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-5.22.0.tgz",
- "integrity": "sha512-LxccF392NN37ISGxIurUljZSh1YWnphO34V5a0+T7FVQG2u9bhAXRTJpgmQ3483woVhkraQZFF7cbRrpbw/F4Q==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/pino": {
+ "version": "9.14.0",
+ "resolved": "https://registry.npmjs.org/pino/-/pino-9.14.0.tgz",
+ "integrity": "sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/api": "^1.8",
- "@opentelemetry/instrumentation": "^0.49 || ^0.50 || ^0.51 || ^0.52.0 || ^0.53.0",
- "@opentelemetry/sdk-trace-base": "^1.22"
+ "@pinojs/redact": "^0.4.0",
+ "atomic-sleep": "^1.0.0",
+ "on-exit-leak-free": "^2.1.0",
+ "pino-abstract-transport": "^2.0.0",
+ "pino-std-serializers": "^7.0.0",
+ "process-warning": "^5.0.0",
+ "quick-format-unescaped": "^4.0.3",
+ "real-require": "^0.2.0",
+ "safe-stable-stringify": "^2.3.1",
+ "sonic-boom": "^4.0.1",
+ "thread-stream": "^3.0.0"
+ },
+ "bin": {
+ "pino": "bin.js"
}
},
- "node_modules/@prisma/instrumentation/node_modules/@opentelemetry/api-logs": {
- "version": "0.53.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz",
- "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/pino-abstract-transport": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz",
+ "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/api": "^1.0.0"
- },
- "engines": {
- "node": ">=14"
+ "split2": "^4.0.0"
}
},
- "node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation": {
- "version": "0.53.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz",
- "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==",
- "license": "Apache-2.0",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/pino-http": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/pino-http/-/pino-http-10.5.0.tgz",
+ "integrity": "sha512-hD91XjgaKkSsdn8P7LaebrNzhGTdB086W3pyPihX0EzGPjq5uBJBXo4N5guqNaK6mUjg9aubMF7wDViYek9dRA==",
+ "license": "MIT",
"dependencies": {
- "@opentelemetry/api-logs": "0.53.0",
- "@types/shimmer": "^1.2.0",
- "import-in-the-middle": "^1.8.1",
- "require-in-the-middle": "^7.1.1",
- "semver": "^7.5.2",
- "shimmer": "^1.2.1"
+ "get-caller-file": "^2.0.5",
+ "pino": "^9.0.0",
+ "pino-std-serializers": "^7.0.0",
+ "process-warning": "^5.0.0"
+ }
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/probot": {
+ "version": "13.4.7",
+ "resolved": "https://registry.npmjs.org/probot/-/probot-13.4.7.tgz",
+ "integrity": "sha512-/NjxDJ/c/TXLeNs0TRpmYQ825sDQFc/BFJl2vgId2GX/rwS8HcD1dUWpMowvugEWcA6nCgMGJPNSFwKv5B4TZw==",
+ "license": "ISC",
+ "dependencies": {
+ "@octokit/core": "^5.2.2",
+ "@octokit/plugin-enterprise-compatibility": "^4.0.1",
+ "@octokit/plugin-paginate-rest": "11.4.4-cjs.2",
+ "@octokit/plugin-rest-endpoint-methods": "13.3.2-cjs.1",
+ "@octokit/plugin-retry": "^6.0.1",
+ "@octokit/plugin-throttling": "^8.1.3",
+ "@octokit/request": "^8.4.1",
+ "@octokit/types": "^12.3.0",
+ "@octokit/webhooks": "^12.3.2",
+ "@probot/get-private-key": "^1.1.2",
+ "@probot/octokit-plugin-config": "^2.0.1",
+ "@probot/pino": "^3.0.0",
+ "@types/express": "^5.0.1",
+ "bottleneck": "^2.19.5",
+ "commander": "^12.0.0",
+ "deepmerge": "^4.3.1",
+ "dotenv": "^16.3.1",
+ "express": "^5.0.0",
+ "ioredis": "^5.3.2",
+ "js-yaml": "^4.1.0",
+ "lru-cache": "npm:@wolfy1339/lru-cache@^11.0.2-patch.1",
+ "octokit-auth-probot": "^2.0.2",
+ "pino": "^9.0.0",
+ "pino-http": "^10.0.0",
+ "pkg-conf": "^3.1.0",
+ "update-dotenv": "^1.1.1"
},
- "engines": {
- "node": ">=14"
+ "bin": {
+ "probot": "bin/probot.js"
},
- "peerDependencies": {
- "@opentelemetry/api": "^1.3.0"
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@probot/adapter-aws-lambda-serverless": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@probot/adapter-aws-lambda-serverless/-/adapter-aws-lambda-serverless-4.0.3.tgz",
- "integrity": "sha512-0KGFM4TSqcyG3ol9m6Ybgo1MgZmVv+TAD5LYrBkM2X9PFQegf/UDdl9APB9MQjeaFxMFjrbtewLjBPp7TQ4WhQ==",
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/thread-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz",
+ "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==",
+ "license": "MIT",
"dependencies": {
- "@types/aws-lambda": "^8.10.147",
- "lowercase-keys": "^2.0.0",
- "probot": "^13.4.1"
+ "real-require": "^0.2.0"
+ }
+ },
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/universal-github-app-jwt": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.2.0.tgz",
+ "integrity": "sha512-dncpMpnsKBk0eetwfN8D8OUHGfiDhhJ+mtsbMl+7PfW7mYjiH8LIcqRmYMtzYLgSh47HjfdBtrBwIQ/gizKR3g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/jsonwebtoken": "^9.0.0",
+ "jsonwebtoken": "^9.0.2"
}
},
+ "node_modules/@probot/adapter-aws-lambda-serverless/node_modules/universal-user-agent": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
+ "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==",
+ "license": "ISC"
+ },
"node_modules/@probot/get-private-key": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@probot/get-private-key/-/get-private-key-1.1.2.tgz",
- "integrity": "sha512-yVgyCdTyooGX6+czDLkJahEcwgBWZsKH9xbjvjDNVFjY3QtiI/tHRiB3zjgJCQMZehXxv2CFHZQSpWRXdr6CeQ=="
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@probot/get-private-key/-/get-private-key-2.1.1.tgz",
+ "integrity": "sha512-i20LJE0751wWDCiTQmyS6UM65vNWOZMim/DAxIFQWfoPJSBPdFPgNffG1XbTiMfl4et8JCBZWab9ldxDtzhcWw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 18"
+ }
},
"node_modules/@probot/octokit-plugin-config": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@probot/octokit-plugin-config/-/octokit-plugin-config-2.0.1.tgz",
- "integrity": "sha512-aWQYzPY2xiKscTVTKveghtbglqZ+W4eBLIdK1C/cNiFIofy3AxKogWgEZj29PjIe5ZRYx0sRHAPc/pkcXyOmTQ==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@probot/octokit-plugin-config/-/octokit-plugin-config-4.1.0.tgz",
+ "integrity": "sha512-G4uzWzLPBX6EKs6DgabT+ZsTas1OAxRQhaXeLArm6gJl5RVAskfrZ8VEQJNj7XUI91KvayM9C42hMIbrnstBkQ==",
"license": "MIT",
"dependencies": {
- "js-yaml": "^4.1.0"
+ "yaml": "^2.8.1"
},
"engines": {
- "node": ">=18"
+ "node": "^20.18.1 || >= 22"
},
"peerDependencies": {
- "@octokit/core": ">=5"
+ "@octokit/core": ">=7"
}
},
"node_modules/@probot/pino": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@probot/pino/-/pino-3.0.0.tgz",
- "integrity": "sha512-2pLi8gIzDI5NEbu24SOBXqflTc3o95StJE6+jiw3R3n4i3B5hCJjlzCB2j3OETeohtCTuDSc//GuGPyDfZehWg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@probot/pino/-/pino-5.0.1.tgz",
+ "integrity": "sha512-ULNKXY9jewO1/BHME3ZmsP3yHYocJBErT5D5fWxaQnoHNS635mTqBI2NszIGZO/56/i/lRFm+J9gp2NOkM6yjQ==",
"license": "MIT",
"dependencies": {
- "@sentry/node": "^8.0.0",
+ "npx-import-light": "^1.0.0",
"pino-pretty": "^13.0.0",
"pump": "^3.0.0",
"split2": "^4.0.0"
@@ -3483,16 +3529,18 @@
}
},
"node_modules/@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "dev": true
+ "version": "0.27.10",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz",
+ "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@sinonjs/commons": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
"integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"type-detect": "4.0.8"
}
@@ -3502,14 +3550,15 @@
"resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
"integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@sinonjs/commons": "^3.0.0"
}
},
"node_modules/@travi/any": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@travi/any/-/any-3.1.2.tgz",
- "integrity": "sha512-Sg7+3Vw9Nttm24LnRbxdgWDmaNngEkR0cAXDqBRHsv8E2tSmibyQ8YYWvaQC7cTG2JM8RgGGZa4ZbZ8iX9gxhg==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@travi/any/-/any-3.1.3.tgz",
+ "integrity": "sha512-cEMd6zcR+1Ubl9mGJrg5cY9i06Qi3RJG3OBOacpb9j1/c5wcWAGVnrHAqgI1zPLPLTYggfSLwH09UMkg+MkMng==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3527,15 +3576,17 @@
}
},
"node_modules/@types/aws-lambda": {
- "version": "8.10.147",
- "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.147.tgz",
- "integrity": "sha512-nD0Z9fNIZcxYX5Mai2CTmFD7wX7UldCkW2ezCF8D1T5hdiLsnTWDGRpfRYntU6VjTdLQjOvyszru7I1c1oCQew=="
+ "version": "8.10.161",
+ "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.161.tgz",
+ "integrity": "sha512-rUYdp+MQwSFocxIOcSsYSF3YYYC/uUpMbCY/mbO21vGqfrEYvNSoPyKYDj6RhXXpPfS0KstW9RwG3qXh9sL7FQ==",
+ "license": "MIT"
},
"node_modules/@types/babel__core": {
"version": "7.20.5",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
"integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/parser": "^7.20.7",
"@babel/types": "^7.20.7",
@@ -3545,10 +3596,11 @@
}
},
"node_modules/@types/babel__generator": {
- "version": "7.6.8",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
- "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.0.0"
}
@@ -3558,24 +3610,27 @@
"resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
"integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/parser": "^7.1.0",
"@babel/types": "^7.0.0"
}
},
"node_modules/@types/babel__traverse": {
- "version": "7.20.5",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
- "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.20.7"
+ "@babel/types": "^7.28.2"
}
},
"node_modules/@types/body-parser": {
- "version": "1.19.5",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
- "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
+ "version": "1.19.6",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz",
+ "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==",
+ "license": "MIT",
"dependencies": {
"@types/connect": "*",
"@types/node": "*"
@@ -3588,9 +3643,9 @@
"license": "MIT"
},
"node_modules/@types/chance": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/@types/chance/-/chance-1.1.6.tgz",
- "integrity": "sha512-V+pm3stv1Mvz8fSKJJod6CglNGVqEQ6OyuqitoDkWywEODM/eJd1eSuIp9xt6DrX8BWZ2eDSIzbw1tPCUTvGbQ==",
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/@types/chance/-/chance-1.1.7.tgz",
+ "integrity": "sha512-40you9610GTQPJyvjMBgmj9wiDO6qXhbfjizNYod/fmvLSfUUxURAJMTD8tjmbcZSsyYE5iEUox61AAcCjW/wQ==",
"dev": true,
"license": "MIT"
},
@@ -3598,25 +3653,27 @@
"version": "3.4.38",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
"integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/express": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
- "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz",
+ "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==",
+ "license": "MIT",
"dependencies": {
"@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "*"
+ "@types/express-serve-static-core": "^5.0.0",
+ "@types/serve-static": "^2"
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "4.19.0",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz",
- "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz",
+ "integrity": "sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==",
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"@types/qs": "*",
@@ -3629,26 +3686,30 @@
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
"integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/http-errors": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
- "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA=="
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz",
+ "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==",
+ "license": "MIT"
},
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
"integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/istanbul-lib-report": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
"integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/istanbul-lib-coverage": "*"
}
@@ -3658,6 +3719,7 @@
"resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
"integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/istanbul-lib-report": "*"
}
@@ -3666,29 +3728,26 @@
"version": "7.0.15",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/jsonwebtoken": {
- "version": "9.0.9",
- "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.9.tgz",
- "integrity": "sha512-uoe+GxEuHbvy12OUQct2X9JenKM3qAscquYymuQN4fMWG9DBQtykrQEFcAbVACF7qaLw9BePSodUL0kquqBJpQ==",
+ "version": "9.0.10",
+ "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz",
+ "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==",
"license": "MIT",
"dependencies": {
"@types/ms": "*",
"@types/node": "*"
}
},
- "node_modules/@types/mime": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
- "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
- },
"node_modules/@types/ms": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
@@ -3705,11 +3764,12 @@
}
},
"node_modules/@types/node": {
- "version": "20.12.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz",
- "integrity": "sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==",
+ "version": "25.3.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.3.tgz",
+ "integrity": "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==",
+ "license": "MIT",
"dependencies": {
- "undici-types": "~5.26.4"
+ "undici-types": "~7.18.0"
}
},
"node_modules/@types/pg": {
@@ -3733,32 +3793,34 @@
}
},
"node_modules/@types/qs": {
- "version": "6.9.15",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz",
- "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg=="
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz",
+ "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==",
+ "license": "MIT"
},
"node_modules/@types/range-parser": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
- "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+ "license": "MIT"
},
"node_modules/@types/send": {
- "version": "0.17.4",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
- "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz",
+ "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==",
+ "license": "MIT",
"dependencies": {
- "@types/mime": "^1",
"@types/node": "*"
}
},
"node_modules/@types/serve-static": {
- "version": "1.15.7",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
- "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz",
+ "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==",
+ "license": "MIT",
"dependencies": {
"@types/http-errors": "*",
- "@types/node": "*",
- "@types/send": "*"
+ "@types/node": "*"
}
},
"node_modules/@types/shimmer": {
@@ -3771,7 +3833,8 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
"integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/tedious": {
"version": "4.0.14",
@@ -3783,10 +3846,11 @@
}
},
"node_modules/@types/yargs": {
- "version": "17.0.32",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
- "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
+ "version": "17.0.35",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz",
+ "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/yargs-parser": "*"
}
@@ -3795,19 +3859,22 @@
"version": "21.0.3",
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
"integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@ungap/structured-clone": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
- "dev": true
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/@yarnpkg/parsers": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0.tgz",
- "integrity": "sha512-jVZa3njBv6tcOUw34nlUdUM/40wwtm/gnVF8rtk0tA6vNcokqYI8CFU1BZjlpFwUSZaXxYkrtuPE/f2MMFlTxQ==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.3.tgz",
+ "integrity": "sha512-mQZgUSgFurUtA07ceMjxrWkYz8QtDuYkvPlu0ZqncgjopQ0t6CNEo/OSealkmnagSUx8ZD5ewvezUwUuMqutQg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"js-yaml": "^3.10.0",
"tslib": "^2.4.0"
@@ -3821,15 +3888,17 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"sprintf-js": "~1.0.2"
}
},
"node_modules/@yarnpkg/parsers/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -3838,28 +3907,23 @@
"js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "dev": true
- },
"node_modules/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==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
+ "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==",
+ "license": "MIT",
"dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
+ "mime-types": "^3.0.0",
+ "negotiator": "^1.0.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/acorn": {
- "version": "8.14.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
- "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"license": "MIT",
"bin": {
"acorn": "bin/acorn"
@@ -3882,23 +3946,16 @@
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/agent-base": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
- "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
- "dev": true,
- "engines": {
- "node": ">= 14"
- }
- },
"node_modules/aggregate-error": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
"integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "license": "MIT",
"dependencies": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
@@ -3908,10 +3965,11 @@
}
},
"node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -3928,6 +3986,7 @@
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
"integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^0.21.3"
},
@@ -3938,23 +3997,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ansi-escapes/node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"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==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -3964,6 +4012,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -3976,6 +4025,7 @@
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -3987,13 +4037,15 @@
"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-back": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
"integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -4015,23 +4067,21 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
"node_modules/array-includes": {
- "version": "3.1.8",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
- "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",
+ "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "is-string": "^1.0.7"
+ "es-abstract": "^1.24.0",
+ "es-object-atoms": "^1.1.1",
+ "get-intrinsic": "^1.3.0",
+ "is-string": "^1.1.1",
+ "math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -4045,6 +4095,7 @@
"resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
"integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -4061,17 +4112,19 @@
}
},
"node_modules/array.prototype.findlastindex": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
- "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
+ "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
+ "es-abstract": "^1.23.9",
"es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-shim-unscopables": "^1.0.2"
+ "es-object-atoms": "^1.1.1",
+ "es-shim-unscopables": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -4081,15 +4134,16 @@
}
},
"node_modules/array.prototype.flat": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
- "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
+ "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-shim-unscopables": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -4156,11 +4210,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
+ "node_modules/async-function": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
+ "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
},
"node_modules/atomic-sleep": {
"version": "1.0.0",
@@ -4192,6 +4250,7 @@
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
"integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/transform": "^29.7.0",
"@types/babel__core": "^7.1.14",
@@ -4213,6 +4272,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -4228,6 +4288,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -4244,6 +4305,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -4255,13 +4317,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/babel-jest/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -4271,6 +4335,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -4283,6 +4348,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
"integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
"@istanbuljs/load-nyc-config": "^1.0.0",
@@ -4299,6 +4365,7 @@
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
"integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@babel/core": "^7.12.3",
"@babel/parser": "^7.14.7",
@@ -4315,6 +4382,7 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
@@ -4324,6 +4392,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
"integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/template": "^7.3.3",
"@babel/types": "^7.3.3",
@@ -4335,26 +4404,30 @@
}
},
"node_modules/babel-preset-current-node-syntax": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
- "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz",
+ "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-bigint": "^7.8.3",
- "@babel/plugin-syntax-class-properties": "^7.8.3",
- "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-import-attributes": "^7.24.7",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
"@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-top-level-await": "^7.8.3"
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
+ "@babel/plugin-syntax-top-level-await": "^7.14.5"
},
"peerDependencies": {
- "@babel/core": "^7.0.0"
+ "@babel/core": "^7.0.0 || ^8.0.0-0"
}
},
"node_modules/babel-preset-jest": {
@@ -4362,6 +4435,7 @@
"resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
"integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"babel-plugin-jest-hoist": "^29.6.3",
"babel-preset-current-node-syntax": "^1.0.0"
@@ -4374,21 +4448,39 @@
}
},
"node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "license": "MIT"
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz",
+ "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.cjs"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
},
"node_modules/before-after-hook": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
- "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-4.0.0.tgz",
+ "integrity": "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==",
+ "license": "Apache-2.0"
},
"node_modules/binary-extensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -4400,56 +4492,49 @@
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",
+ "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==",
+ "license": "MIT",
"dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
+ "bytes": "^3.1.2",
+ "content-type": "^1.0.5",
+ "debug": "^4.4.3",
+ "http-errors": "^2.0.0",
+ "iconv-lite": "^0.7.0",
+ "on-finished": "^2.4.1",
+ "qs": "^6.14.1",
+ "raw-body": "^3.0.1",
+ "type-is": "^2.0.1"
},
"engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
"node_modules/bottleneck": {
"version": "2.19.5",
"resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz",
- "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw=="
+ "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==",
+ "license": "MIT"
},
"node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
+ "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0"
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
}
},
"node_modules/braces": {
@@ -4457,6 +4542,7 @@
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fill-range": "^7.1.1"
},
@@ -4465,9 +4551,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.23.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
- "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
"dev": true,
"funding": [
{
@@ -4483,11 +4569,13 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001587",
- "electron-to-chromium": "^1.4.668",
- "node-releases": "^2.0.14",
- "update-browserslist-db": "^1.0.13"
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
},
"bin": {
"browserslist": "cli.js"
@@ -4501,6 +4589,7 @@
"resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
"integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"node-int64": "^0.4.0"
}
@@ -4521,13 +4610,15 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/builtin-modules": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
"integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
"dev": true,
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=6"
@@ -4541,6 +4632,7 @@
"resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz",
"integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"semver": "^7.0.0"
}
@@ -4549,6 +4641,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -4573,9 +4666,9 @@
}
},
"node_modules/call-bind-apply-helpers": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
- "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==",
+ "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",
@@ -4586,13 +4679,13 @@
}
},
"node_modules/call-bound": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz",
- "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==",
+ "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": {
- "call-bind-apply-helpers": "^1.0.1",
- "get-intrinsic": "^1.2.6"
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
@@ -4606,6 +4699,7 @@
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -4615,14 +4709,15 @@
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001615",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001615.tgz",
- "integrity": "sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ==",
+ "version": "1.0.30001775",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001775.tgz",
+ "integrity": "sha512-s3Qv7Lht9zbVKE9XoTyRG6wVDCKdtOFIjBGg3+Yhn6JaytuNKPIjBMTMIY1AnOH3seL5mvF+x33oGAyK3hVt3A==",
"dev": true,
"funding": [
{
@@ -4637,13 +4732,15 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ]
+ ],
+ "license": "CC-BY-4.0"
},
"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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -4654,16 +4751,18 @@
}
},
"node_modules/chance": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.11.tgz",
- "integrity": "sha512-kqTg3WWywappJPqtgrdvbA380VoXO2eu9VCV895JgbyHsaErXdyHK9LOZ911OvAk6L0obK7kDk9CGs8+oBawVA==",
- "dev": true
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.13.tgz",
+ "integrity": "sha512-V6lQCljcLznE7tUYUM9EOAnnKXbctE6j/rdQkYOHIWbfGQbrzTsAXNW9CdU5XCo4ArXQCj/rb6HgxPlmGJcaUg==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/char-regex": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
"integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
}
@@ -4673,6 +4772,7 @@
"resolved": "https://registry.npmjs.org/check-engine/-/check-engine-1.14.0.tgz",
"integrity": "sha512-CZZ3UmZKMer4O63yNWit5KLm7FoO69shcdPbkP8Dj4N728jqI7d8YyAigOgKnajVBA7TtaL7BuaMRDXcoYJKxw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"bluebird": "3.7.2",
"colors": "1.4.0",
@@ -4693,6 +4793,7 @@
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -4717,6 +4818,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -4735,19 +4837,22 @@
"url": "https://github.com/sponsors/sibiraj-s"
}
],
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/cjs-module-lexer": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz",
- "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q=="
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz",
+ "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==",
+ "license": "MIT"
},
"node_modules/clean-stack": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -4757,6 +4862,7 @@
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
@@ -4780,22 +4886,25 @@
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
"integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"iojs": ">= 1.0.0",
"node": ">= 0.12.0"
}
},
"node_modules/collect-v8-coverage": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
- "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
- "dev": true
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz",
+ "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==",
+ "dev": true,
+ "license": "MIT"
},
"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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
@@ -4804,7 +4913,8 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/colorette": {
"version": "2.0.20",
@@ -4817,27 +4927,17 @@
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.1.90"
}
},
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/command-line-usage": {
"version": "6.1.3",
"resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz",
"integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-back": "^4.0.2",
"chalk": "^2.4.2",
@@ -4865,20 +4965,23 @@
"license": "MIT"
},
"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==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz",
+ "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==",
+ "license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"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==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -4887,26 +4990,33 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",
+ "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.6.0"
+ }
},
"node_modules/cosmiconfig": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
- "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz",
+ "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"env-paths": "^2.2.1",
"import-fresh": "^3.3.0",
@@ -4933,6 +5043,7 @@
"resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
"integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"chalk": "^4.0.0",
@@ -4954,6 +5065,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -4969,6 +5081,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -4985,6 +5098,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -4996,13 +5110,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/create-jest/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -5012,6 +5128,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -5034,32 +5151,6 @@
"node": ">= 8"
}
},
- "node_modules/cssstyle": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.3.0.tgz",
- "integrity": "sha512-6r0NiY0xizYqfBvWp1G7WXJ06/bZyrk7Dc6PHql82C/pKGUTKu4yAX4Y8JPamb1ob9nBKuxWzCGTRuGwU3yxJQ==",
- "dev": true,
- "dependencies": {
- "@asamuzakjp/css-color": "^3.1.1",
- "rrweb-cssom": "^0.8.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/data-urls": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
- "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
- "dev": true,
- "dependencies": {
- "whatwg-mimetype": "^4.0.0",
- "whatwg-url": "^14.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
"node_modules/data-view-buffer": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
@@ -5124,11 +5215,12 @@
}
},
"node_modules/debug": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
- "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
+ "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"
@@ -5139,17 +5231,12 @@
}
}
},
- "node_modules/decimal.js": {
- "version": "10.5.0",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz",
- "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==",
- "dev": true
- },
"node_modules/dedent": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz",
- "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==",
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz",
+ "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"babel-plugin-macros": "^3.1.0"
},
@@ -5164,6 +5251,7 @@
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4.0.0"
}
@@ -5172,12 +5260,14 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/deepmerge": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -5187,6 +5277,7 @@
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
@@ -5204,6 +5295,7 @@
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
"integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"define-data-property": "^1.0.1",
"has-property-descriptors": "^1.0.0",
@@ -5216,15 +5308,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
"node_modules/denque": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
@@ -5238,6 +5321,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -5245,22 +5329,15 @@
"node_modules/deprecation": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
- "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
- },
- "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"
- }
+ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
+ "license": "ISC"
},
"node_modules/detect-newline": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
"integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -5270,6 +5347,7 @@
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
"integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
@@ -5279,6 +5357,7 @@
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
"integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"esutils": "^2.0.2"
},
@@ -5287,10 +5366,11 @@
}
},
"node_modules/dotenv": {
- "version": "16.4.7",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
- "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
+ "version": "17.3.1",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz",
+ "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==",
"license": "BSD-2-Clause",
+ "peer": true,
"engines": {
"node": ">=12"
},
@@ -5324,19 +5404,22 @@
"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=="
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.4.754",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.754.tgz",
- "integrity": "sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA==",
- "dev": true
+ "version": "1.5.302",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz",
+ "integrity": "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/emittery": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
"integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -5348,58 +5431,50 @@
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"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==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"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==",
+ "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/entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "dev": true,
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=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==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"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==",
+ "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/es-abstract": {
- "version": "1.23.9",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz",
- "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz",
+ "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5407,18 +5482,18 @@
"arraybuffer.prototype.slice": "^1.0.4",
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
+ "call-bound": "^1.0.4",
"data-view-buffer": "^1.0.2",
"data-view-byte-length": "^1.0.2",
"data-view-byte-offset": "^1.0.1",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
+ "es-object-atoms": "^1.1.1",
"es-set-tostringtag": "^2.1.0",
"es-to-primitive": "^1.3.0",
"function.prototype.name": "^1.1.8",
- "get-intrinsic": "^1.2.7",
- "get-proto": "^1.0.0",
+ "get-intrinsic": "^1.3.0",
+ "get-proto": "^1.0.1",
"get-symbol-description": "^1.1.0",
"globalthis": "^1.0.4",
"gopd": "^1.2.0",
@@ -5430,21 +5505,24 @@
"is-array-buffer": "^3.0.5",
"is-callable": "^1.2.7",
"is-data-view": "^1.0.2",
+ "is-negative-zero": "^2.0.3",
"is-regex": "^1.2.1",
+ "is-set": "^2.0.3",
"is-shared-array-buffer": "^1.0.4",
"is-string": "^1.1.1",
"is-typed-array": "^1.1.15",
- "is-weakref": "^1.1.0",
+ "is-weakref": "^1.1.1",
"math-intrinsics": "^1.1.0",
- "object-inspect": "^1.13.3",
+ "object-inspect": "^1.13.4",
"object-keys": "^1.1.1",
"object.assign": "^4.1.7",
"own-keys": "^1.0.1",
- "regexp.prototype.flags": "^1.5.3",
+ "regexp.prototype.flags": "^1.5.4",
"safe-array-concat": "^1.1.3",
"safe-push-apply": "^1.0.0",
"safe-regex-test": "^1.1.0",
"set-proto": "^1.0.0",
+ "stop-iteration-iterator": "^1.1.0",
"string.prototype.trim": "^1.2.10",
"string.prototype.trimend": "^1.0.9",
"string.prototype.trimstart": "^1.0.8",
@@ -5453,7 +5531,7 @@
"typed-array-byte-offset": "^1.0.4",
"typed-array-length": "^1.0.7",
"unbox-primitive": "^1.1.0",
- "which-typed-array": "^1.1.18"
+ "which-typed-array": "^1.1.19"
},
"engines": {
"node": ">= 0.4"
@@ -5475,32 +5553,33 @@
"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.4"
}
},
"node_modules/es-iterator-helpers": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz",
- "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz",
+ "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==",
"dev": true,
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.6",
+ "es-abstract": "^1.24.1",
"es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.3",
+ "es-set-tostringtag": "^2.1.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.6",
+ "get-intrinsic": "^1.3.0",
"globalthis": "^1.0.4",
"gopd": "^1.2.0",
"has-property-descriptors": "^1.0.2",
"has-proto": "^1.2.0",
"has-symbols": "^1.1.0",
"internal-slot": "^1.1.0",
- "iterator.prototype": "^1.1.4",
+ "iterator.prototype": "^1.1.5",
"safe-array-concat": "^1.1.3"
},
"engines": {
@@ -5508,9 +5587,10 @@
}
},
"node_modules/es-object-atoms": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
- "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "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": {
"es-errors": "^1.3.0"
},
@@ -5535,12 +5615,16 @@
}
},
"node_modules/es-shim-unscopables": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
- "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
+ "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "hasown": "^2.0.0"
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/es-to-primitive": {
@@ -5562,10 +5646,11 @@
}
},
"node_modules/escalade": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -5573,28 +5658,32 @@
"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=="
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "license": "MIT"
},
"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==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/eslint": {
- "version": "8.57.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
- "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.57.0",
- "@humanwhocodes/config-array": "^0.11.14",
+ "@eslint/js": "8.57.1",
+ "@humanwhocodes/config-array": "^0.13.0",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"@ungap/structured-clone": "^1.2.0",
@@ -5640,10 +5729,11 @@
}
},
"node_modules/eslint-compat-utils": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
- "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz",
+ "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==",
"dev": true,
+ "license": "MIT",
"peer": true,
"dependencies": {
"semver": "^7.5.4"
@@ -5674,6 +5764,7 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"engines": {
"node": ">=12.0.0"
},
@@ -5703,6 +5794,7 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"peerDependencies": {
"eslint": "^8.8.0",
"eslint-plugin-react": "^7.28.0"
@@ -5713,6 +5805,7 @@
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
"integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^3.2.7",
"is-core-module": "^2.13.0",
@@ -5724,14 +5817,15 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
},
"node_modules/eslint-module-utils": {
- "version": "2.12.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
- "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz",
+ "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5761,6 +5855,7 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
"integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eslint-utils": "^2.0.0",
"regexpp": "^3.0.0"
@@ -5776,51 +5871,53 @@
}
},
"node_modules/eslint-plugin-es-x": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz",
- "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz",
+ "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==",
"dev": true,
+ "funding": [
+ "https://github.com/sponsors/ota-meshi",
+ "https://opencollective.com/eslint"
+ ],
+ "license": "MIT",
"peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.1.2",
- "@eslint-community/regexpp": "^4.6.0",
- "eslint-compat-utils": "^0.5.0"
+ "@eslint-community/regexpp": "^4.11.0",
+ "eslint-compat-utils": "^0.5.1"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ota-meshi"
- },
"peerDependencies": {
"eslint": ">=8"
}
},
"node_modules/eslint-plugin-import": {
- "version": "2.31.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
- "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
+ "version": "2.32.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz",
+ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@rtsao/scc": "^1.1.0",
- "array-includes": "^3.1.8",
- "array.prototype.findlastindex": "^1.2.5",
- "array.prototype.flat": "^1.3.2",
- "array.prototype.flatmap": "^1.3.2",
+ "array-includes": "^3.1.9",
+ "array.prototype.findlastindex": "^1.2.6",
+ "array.prototype.flat": "^1.3.3",
+ "array.prototype.flatmap": "^1.3.3",
"debug": "^3.2.7",
"doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.12.0",
+ "eslint-module-utils": "^2.12.1",
"hasown": "^2.0.2",
- "is-core-module": "^2.15.1",
+ "is-core-module": "^2.16.1",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
"object.fromentries": "^2.0.8",
"object.groupby": "^1.0.3",
- "object.values": "^1.2.0",
+ "object.values": "^1.2.1",
"semver": "^6.3.1",
- "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimend": "^1.0.9",
"tsconfig-paths": "^3.15.0"
},
"engines": {
@@ -5830,10 +5927,17 @@
"eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
}
},
+ "node_modules/eslint-plugin-import/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/eslint-plugin-import/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5846,6 +5950,7 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
@@ -5855,6 +5960,7 @@
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
"integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"esutils": "^2.0.2"
},
@@ -5863,9 +5969,9 @@
}
},
"node_modules/eslint-plugin-import/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -5880,6 +5986,7 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
@@ -5889,6 +5996,7 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz",
"integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==",
"dev": true,
+ "license": "MIT",
"peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
@@ -5913,10 +6021,18 @@
"eslint": ">=7.0.0"
}
},
+ "node_modules/eslint-plugin-n/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/eslint-plugin-n/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -5925,10 +6041,27 @@
"concat-map": "0.0.1"
}
},
+ "node_modules/eslint-plugin-n/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/eslint-plugin-n/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"peer": true,
@@ -5939,11 +6072,26 @@
"node": "*"
}
},
+ "node_modules/eslint-plugin-n/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "peer": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/eslint-plugin-node": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
"integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eslint-plugin-es": "^3.0.0",
"eslint-utils": "^2.0.0",
@@ -5959,10 +6107,17 @@
"eslint": ">=5.16.0"
}
},
+ "node_modules/eslint-plugin-node/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/eslint-plugin-node/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5971,9 +6126,9 @@
}
},
"node_modules/eslint-plugin-node/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -5988,6 +6143,7 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
@@ -5997,6 +6153,7 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz",
"integrity": "sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -6008,9 +6165,9 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.37.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz",
- "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==",
+ "version": "7.37.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz",
+ "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6024,7 +6181,7 @@
"hasown": "^2.0.2",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
- "object.entries": "^1.1.8",
+ "object.entries": "^1.1.9",
"object.fromentries": "^2.0.8",
"object.values": "^1.2.1",
"prop-types": "^15.8.1",
@@ -6040,10 +6197,17 @@
"eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
}
},
+ "node_modules/eslint-plugin-react/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/eslint-plugin-react/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6056,6 +6220,7 @@
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
"integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"esutils": "^2.0.2"
},
@@ -6064,9 +6229,9 @@
}
},
"node_modules/eslint-plugin-react/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6077,18 +6242,25 @@
}
},
"node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "version": "2.0.0-next.6",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz",
+ "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-core-module": "^2.13.0",
+ "es-errors": "^1.3.0",
+ "is-core-module": "^2.16.1",
+ "node-exports-info": "^1.6.0",
+ "object-keys": "^1.1.1",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
"bin": {
"resolve": "bin/resolve"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -6098,6 +6270,7 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
@@ -6107,6 +6280,7 @@
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
"integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
@@ -6123,6 +6297,7 @@
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
"integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eslint-visitor-keys": "^1.1.0"
},
@@ -6138,6 +6313,7 @@
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
"integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=4"
}
@@ -6147,6 +6323,7 @@
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -6183,6 +6360,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -6193,10 +6371,17 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/eslint/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/eslint/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6209,6 +6394,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -6225,6 +6411,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -6236,13 +6423,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/eslint/node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -6250,19 +6439,54 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/eslint/node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/eslint/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/eslint/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6277,6 +6501,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -6284,18 +6509,45 @@
"node": ">=8"
}
},
+ "node_modules/eslint/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/espree": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
+ "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "acorn": "^8.9.0",
+ "acorn": "^8.15.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
+ "eslint-visitor-keys": "^4.2.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/espree/node_modules/eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"url": "https://opencollective.com/eslint"
@@ -6306,6 +6558,7 @@
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true,
+ "license": "BSD-2-Clause",
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
@@ -6315,10 +6568,11 @@
}
},
"node_modules/esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
+ "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"estraverse": "^5.1.0"
},
@@ -6331,6 +6585,7 @@
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -6343,6 +6598,7 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
@@ -6352,6 +6608,7 @@
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -6372,14 +6629,15 @@
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/eventsource": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-4.0.0.tgz",
- "integrity": "sha512-fvIkb9qZzdMxgZrEQDyll+9oJsyaVvY92I2Re+qK0qEJ+w5s0X3dtz+M0VAPOjP1gtU3iqWyjQ0G3nvd5CLZ2g==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-4.1.0.tgz",
+ "integrity": "sha512-2GuF51iuHX6A9xdTccMTsNb7VO0lHZihApxhvQzJB5A03DvHDd2FQepodbMaztPBmBcE/ox7o2gqaxGhYB9LhQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6404,6 +6662,7 @@
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
"integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^6.0.0",
@@ -6436,6 +6695,7 @@
"resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
"integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/expect-utils": "^29.7.0",
"jest-get-type": "^29.6.3",
@@ -6448,72 +6708,48 @@
}
},
"node_modules/express": {
- "version": "4.21.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
- "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
- "license": "MIT",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.3",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.7.1",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.3.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.3",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.12",
- "proxy-addr": "~2.0.7",
- "qs": "6.13.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
+ "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "^2.0.0",
+ "body-parser": "^2.2.1",
+ "content-disposition": "^1.0.0",
+ "content-type": "^1.0.5",
+ "cookie": "^0.7.1",
+ "cookie-signature": "^1.2.1",
+ "debug": "^4.4.0",
+ "depd": "^2.0.0",
+ "encodeurl": "^2.0.0",
+ "escape-html": "^1.0.3",
+ "etag": "^1.8.1",
+ "finalhandler": "^2.1.0",
+ "fresh": "^2.0.0",
+ "http-errors": "^2.0.0",
+ "merge-descriptors": "^2.0.0",
+ "mime-types": "^3.0.0",
+ "on-finished": "^2.4.1",
+ "once": "^1.4.0",
+ "parseurl": "^1.3.3",
+ "proxy-addr": "^2.0.7",
+ "qs": "^6.14.0",
+ "range-parser": "^1.2.1",
+ "router": "^2.2.0",
+ "send": "^1.1.0",
+ "serve-static": "^2.2.0",
+ "statuses": "^2.0.1",
+ "type-is": "^2.0.1",
+ "vary": "^1.1.2"
},
"engines": {
- "node": ">= 0.10.0"
+ "node": ">= 18"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/express"
}
},
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
"node_modules/fast-content-type-parse": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-3.0.0.tgz",
@@ -6527,31 +6763,34 @@
"type": "opencollective",
"url": "https://opencollective.com/fastify"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/fast-copy": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz",
- "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-4.0.2.tgz",
+ "integrity": "sha512-ybA6PDXIXOXivLJK/z9e+Otk7ve13I4ckBvGO5I2RRmBU1gMHLVDJYEuJYhGwez7YNlYji2M2DvVU+a9mSFDlw==",
"license": "MIT"
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-glob": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.2",
"merge2": "^1.3.0",
- "micromatch": "^4.0.4"
+ "micromatch": "^4.0.8"
},
"engines": {
"node": ">=8.6.0"
@@ -6562,6 +6801,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -6573,22 +6813,15 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
- },
- "node_modules/fast-redact": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz",
- "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-safe-stringify": {
"version": "2.1.1",
@@ -6597,10 +6830,11 @@
"license": "MIT"
},
"node_modules/fastq": {
- "version": "1.17.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
+ "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"reusify": "^1.0.4"
}
@@ -6610,6 +6844,7 @@
"resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
"integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"bser": "2.1.1"
}
@@ -6619,6 +6854,7 @@
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
"integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"flat-cache": "^3.0.4"
},
@@ -6631,6 +6867,7 @@
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -6639,48 +6876,32 @@
}
},
"node_modules/finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz",
+ "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==",
+ "license": "MIT",
"dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "debug": "^4.4.0",
+ "encodeurl": "^2.0.0",
+ "escape-html": "^1.0.3",
+ "on-finished": "^2.4.1",
+ "parseurl": "^1.3.3",
+ "statuses": "^2.0.1"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": ">= 18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -6692,11 +6913,24 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "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/flat-cache": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
"integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"flatted": "^3.2.9",
"keyv": "^4.5.3",
@@ -6707,42 +6941,33 @@
}
},
"node_modules/flatted": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
- "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
- "dev": true
- },
- "node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.4.tgz",
+ "integrity": "sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "is-callable": "^1.1.3"
- }
+ "license": "ISC"
},
- "node_modules/form-data": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
- "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+ "node_modules/for-each": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "es-set-tostringtag": "^2.1.0",
- "hasown": "^2.0.2",
- "mime-types": "^2.1.12"
+ "is-callable": "^1.2.7"
},
"engines": {
- "node": ">= 6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -6754,18 +6979,20 @@
"license": "MIT"
},
"node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
+ "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
+ "license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.8"
}
},
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/fsevents": {
"version": "2.3.3",
@@ -6773,6 +7000,7 @@
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -6785,6 +7013,7 @@
"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"
}
@@ -6815,15 +7044,27 @@
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
"integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
"dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/generator-function": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz",
+ "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -6832,22 +7073,23 @@
"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-intrinsic": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz",
- "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==",
+ "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.1",
+ "call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
+ "es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
- "get-proto": "^1.0.0",
+ "get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
@@ -6865,6 +7107,7 @@
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
"integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.0.0"
}
@@ -6887,6 +7130,7 @@
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz",
"integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -6899,6 +7143,7 @@
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
"integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -6925,10 +7170,11 @@
}
},
"node_modules/get-tsconfig": {
- "version": "4.7.3",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz",
- "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==",
+ "version": "4.13.6",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz",
+ "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==",
"dev": true,
+ "license": "MIT",
"peer": true,
"dependencies": {
"resolve-pkg-maps": "^1.0.0"
@@ -6941,7 +7187,9 @@
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dev": true,
+ "license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -6962,6 +7210,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.3"
},
@@ -6969,10 +7218,17 @@
"node": ">=10.13.0"
}
},
+ "node_modules/glob/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/glob/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6981,9 +7237,9 @@
}
},
"node_modules/glob/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6994,15 +7250,13 @@
}
},
"node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
+ "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
"dev": true,
- "dependencies": {
- "type-fest": "^0.20.2"
- },
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -7013,6 +7267,7 @@
"resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
"integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"define-properties": "^1.2.1",
"gopd": "^1.0.1"
@@ -7039,13 +7294,15 @@
"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=="
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC"
},
"node_modules/graphemer": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/has-bigints": {
"version": "1.1.0",
@@ -7065,6 +7322,7 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -7074,6 +7332,7 @@
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0"
},
@@ -7114,6 +7373,7 @@
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-symbols": "^1.0.3"
},
@@ -7128,6 +7388,7 @@
"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"
},
@@ -7145,98 +7406,75 @@
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
- },
- "node_modules/html-encoding-sniffer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
- "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"dev": true,
- "dependencies": {
- "whatwg-encoding": "^3.1.1"
- },
- "engines": {
- "node": ">=18"
- }
+ "license": "ISC"
},
"node_modules/html-escaper": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+ "license": "MIT",
"dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
},
"engines": {
"node": ">= 0.8"
- }
- },
- "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==",
- "dev": true,
- "dependencies": {
- "agent-base": "^7.1.0",
- "debug": "^4.3.4"
},
- "engines": {
- "node": ">= 14"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/http-status-codes": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz",
"integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==",
- "dev": true
- },
- "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==",
"dev": true,
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
+ "license": "MIT"
},
"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==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=10.17.0"
}
},
"node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
+ "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
+ "license": "MIT",
"dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
"node": ">=0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/ignore": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
@@ -7245,13 +7483,15 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
"integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -7264,9 +7504,9 @@
}
},
"node_modules/import-in-the-middle": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.13.1.tgz",
- "integrity": "sha512-k2V9wNm9B+ysuelDTHjI9d5KPc4l8zAZTGqj+pcynvWkypZd857ryzN8jNC7Pg2YZXNMJcHRPpaDyCBbNyVRpA==",
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.15.0.tgz",
+ "integrity": "sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==",
"license": "Apache-2.0",
"dependencies": {
"acorn": "^8.14.0",
@@ -7276,10 +7516,11 @@
}
},
"node_modules/import-local": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
- "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
+ "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"pkg-dir": "^4.2.0",
"resolve-cwd": "^3.0.0"
@@ -7294,11 +7535,22 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/import-meta-resolve": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz",
+ "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.8.19"
}
@@ -7307,6 +7559,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -7315,7 +7568,9 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
"dev": true,
+ "license": "ISC",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -7324,7 +7579,8 @@
"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/internal-slot": {
"version": "1.1.0",
@@ -7342,12 +7598,12 @@
}
},
"node_modules/ioredis": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.5.0.tgz",
- "integrity": "sha512-7CutT89g23FfSa8MDoIFs2GYYa0PaNiW/OrT+nRyjRXHDZd17HmIgy+reOQ/yhh72NznNjGuS8kbCAcA4Ro4mw==",
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.10.0.tgz",
+ "integrity": "sha512-HVBe9OFuqs+Z6n64q09PQvP1/R4Bm+30PAyyD4wIEqssh3v9L21QjCVk4kRLucMBcDokJTcLjsGeVRlq/nH6DA==",
"license": "MIT",
"dependencies": {
- "@ioredis/commands": "^1.1.1",
+ "@ioredis/commands": "1.5.1",
"cluster-key-slot": "^1.1.0",
"debug": "^4.3.4",
"denque": "^2.1.0",
@@ -7369,6 +7625,7 @@
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "license": "MIT",
"engines": {
"node": ">= 0.10"
}
@@ -7394,15 +7651,17 @@
"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=="
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "license": "MIT"
},
"node_modules/is-async-function": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz",
- "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
+ "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
"dev": true,
"license": "MIT",
"dependencies": {
+ "async-function": "^1.0.0",
"call-bound": "^1.0.3",
"get-proto": "^1.0.1",
"has-tostringtag": "^1.0.2",
@@ -7436,6 +7695,7 @@
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -7444,13 +7704,13 @@
}
},
"node_modules/is-boolean-object": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz",
- "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
+ "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.2",
+ "call-bound": "^1.0.3",
"has-tostringtag": "^1.0.2"
},
"engines": {
@@ -7465,6 +7725,7 @@
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
"integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
"dev": true,
+ "license": "MIT",
"peer": true,
"dependencies": {
"builtin-modules": "^3.3.0"
@@ -7544,6 +7805,7 @@
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -7569,6 +7831,7 @@
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -7578,19 +7841,21 @@
"resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
"integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/is-generator-function": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
- "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz",
+ "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.3",
- "get-proto": "^1.0.0",
+ "call-bound": "^1.0.4",
+ "generator-function": "^2.0.0",
+ "get-proto": "^1.0.1",
"has-tostringtag": "^1.0.2",
"safe-regex-test": "^1.1.0"
},
@@ -7606,6 +7871,7 @@
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -7626,17 +7892,32 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-node-process": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz",
"integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
@@ -7663,15 +7944,16 @@
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/is-potential-custom-element-name": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
- "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
- "dev": true
+ "node_modules/is-promise": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
+ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
+ "license": "MIT"
},
"node_modules/is-regex": {
"version": "1.2.1",
@@ -7726,6 +8008,7 @@
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -7798,13 +8081,13 @@
}
},
"node_modules/is-weakref": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz",
- "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
+ "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.2"
+ "call-bound": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
@@ -7841,22 +8124,25 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/istanbul-lib-coverage": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
"integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=8"
}
},
"node_modules/istanbul-lib-instrument": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz",
- "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
+ "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@babel/core": "^7.23.9",
"@babel/parser": "^7.23.9",
@@ -7873,6 +8159,7 @@
"resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
"integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^4.0.0",
@@ -7887,6 +8174,7 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -7896,6 +8184,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -7908,6 +8197,7 @@
"resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
"integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"debug": "^4.1.1",
"istanbul-lib-coverage": "^3.0.0",
@@ -7918,10 +8208,11 @@
}
},
"node_modules/istanbul-reports": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
- "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz",
+ "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"html-escaper": "^2.0.0",
"istanbul-lib-report": "^3.0.0"
@@ -7953,6 +8244,7 @@
"resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
"integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/core": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -7979,6 +8271,7 @@
"resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
"integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"execa": "^5.0.0",
"jest-util": "^29.7.0",
@@ -7993,6 +8286,7 @@
"resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
"integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/expect": "^29.7.0",
@@ -8024,6 +8318,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8039,6 +8334,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8055,6 +8351,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8066,13 +8363,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-circus/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8082,6 +8381,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8094,6 +8394,7 @@
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
"integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/core": "^29.7.0",
"@jest/test-result": "^29.7.0",
@@ -8127,6 +8428,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8142,6 +8444,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8158,6 +8461,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8169,13 +8473,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-cli/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8185,6 +8491,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8197,6 +8504,7 @@
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
"integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.11.6",
"@jest/test-sequencer": "^29.7.0",
@@ -8242,6 +8550,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8257,6 +8566,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8273,6 +8583,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8284,13 +8595,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-config/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8300,6 +8613,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8312,6 +8626,7 @@
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
"integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
"diff-sequences": "^29.6.3",
@@ -8327,6 +8642,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8342,6 +8658,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8358,6 +8675,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8369,13 +8687,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-diff/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8385,6 +8705,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8397,6 +8718,7 @@
"resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
"integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"detect-newline": "^3.0.0"
},
@@ -8409,6 +8731,7 @@
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
"integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"chalk": "^4.0.0",
@@ -8425,6 +8748,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8440,6 +8764,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8456,6 +8781,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8467,13 +8793,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-each/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8483,6 +8811,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8495,6 +8824,7 @@
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
"integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/fake-timers": "^29.7.0",
@@ -8512,6 +8842,7 @@
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
"integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
@@ -8521,6 +8852,7 @@
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
"integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/graceful-fs": "^4.1.3",
@@ -8546,6 +8878,7 @@
"resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-16.0.0.tgz",
"integrity": "sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"mkdirp": "^1.0.4",
"strip-ansi": "^6.0.1",
@@ -8561,6 +8894,7 @@
"resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
"integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"jest-get-type": "^29.6.3",
"pretty-format": "^29.7.0"
@@ -8574,6 +8908,7 @@
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
"integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
"jest-diff": "^29.7.0",
@@ -8589,6 +8924,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8604,6 +8940,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8620,6 +8957,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8631,13 +8969,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-matcher-utils/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8647,6 +8987,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8659,6 +9000,7 @@
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
"integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.12.13",
"@jest/types": "^29.6.3",
@@ -8679,6 +9021,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8694,6 +9037,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8710,6 +9054,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8721,13 +9066,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-message-util/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8737,6 +9084,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8749,6 +9097,7 @@
"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
"integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/node": "*",
@@ -8763,6 +9112,7 @@
"resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
"integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
},
@@ -8780,6 +9130,7 @@
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
"integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
@@ -8789,6 +9140,7 @@
"resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
"integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
@@ -8809,6 +9161,7 @@
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
"integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"jest-regex-util": "^29.6.3",
"jest-snapshot": "^29.7.0"
@@ -8822,6 +9175,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8837,6 +9191,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8853,6 +9208,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8864,13 +9220,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-resolve/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8880,6 +9238,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8892,6 +9251,7 @@
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
"integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/console": "^29.7.0",
"@jest/environment": "^29.7.0",
@@ -8924,6 +9284,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8939,6 +9300,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8955,6 +9317,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8966,13 +9329,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-runner/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8982,6 +9347,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8994,6 +9360,7 @@
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
"integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/fake-timers": "^29.7.0",
@@ -9027,6 +9394,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -9042,6 +9410,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -9058,6 +9427,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -9069,13 +9439,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-runtime/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -9085,6 +9457,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -9097,6 +9470,7 @@
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
"integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.11.6",
"@babel/generator": "^7.7.2",
@@ -9128,6 +9502,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -9143,6 +9518,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -9159,6 +9535,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -9170,13 +9547,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-snapshot/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -9186,6 +9565,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -9198,6 +9578,7 @@
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
"integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/node": "*",
@@ -9215,6 +9596,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -9230,6 +9612,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -9246,6 +9629,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -9257,13 +9641,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-util/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -9273,6 +9659,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -9285,6 +9672,7 @@
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
"integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"camelcase": "^6.2.0",
@@ -9302,6 +9690,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -9317,6 +9706,7 @@
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
"integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -9329,6 +9719,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -9345,6 +9736,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -9356,13 +9748,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-validate/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -9372,6 +9766,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -9384,6 +9779,7 @@
"resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
"integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/test-result": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -9403,6 +9799,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -9418,6 +9815,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -9434,6 +9832,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -9445,13 +9844,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/jest-watcher/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -9461,6 +9862,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -9473,6 +9875,7 @@
"resolved": "https://registry.npmjs.org/jest-when/-/jest-when-3.7.0.tgz",
"integrity": "sha512-aLbiyxmtksijcrKFir7n+t+XPbqSLV01eDkRyX28WM4VgA/iSc3mG8R8O2evDtOAa6SefrJiTIt/rTqqyrwVZg==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"jest": ">= 25"
}
@@ -9482,6 +9885,7 @@
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
"integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"jest-util": "^29.7.0",
@@ -9497,6 +9901,7 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -9506,6 +9911,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -9529,22 +9935,14 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/js-yaml": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz",
- "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/puzrin"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/nodeca"
- }
- ],
+ "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"
},
@@ -9552,98 +9950,72 @@
"js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/jsdom": {
- "version": "26.0.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.0.0.tgz",
- "integrity": "sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==",
- "dev": true,
- "dependencies": {
- "cssstyle": "^4.2.1",
- "data-urls": "^5.0.0",
- "decimal.js": "^10.4.3",
- "form-data": "^4.0.1",
- "html-encoding-sniffer": "^4.0.0",
- "http-proxy-agent": "^7.0.2",
- "https-proxy-agent": "^7.0.6",
- "is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.16",
- "parse5": "^7.2.1",
- "rrweb-cssom": "^0.8.0",
- "saxes": "^6.0.0",
- "symbol-tree": "^3.2.4",
- "tough-cookie": "^5.0.0",
- "w3c-xmlserializer": "^5.0.0",
- "webidl-conversions": "^7.0.0",
- "whatwg-encoding": "^3.1.1",
- "whatwg-mimetype": "^4.0.0",
- "whatwg-url": "^14.1.0",
- "ws": "^8.18.0",
- "xml-name-validator": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "canvas": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "canvas": {
- "optional": true
- }
- }
- },
"node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"dev": true,
+ "license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
},
"engines": {
- "node": ">=4"
+ "node": ">=6"
}
},
"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==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "license": "MIT"
},
"node_modules/json-parse-even-better-errors": {
"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==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/json-with-bigint": {
+ "version": "3.5.7",
+ "resolved": "https://registry.npmjs.org/json-with-bigint/-/json-with-bigint-3.5.7.tgz",
+ "integrity": "sha512-7ei3MdAI5+fJPVnKlW77TKNKwQ5ppSzWvhPuSuINT/GYW9ZOC1eRKOuhV9yHG5aEsUPj9BBx5JIekkmoLHxZOw==",
+ "license": "MIT"
},
"node_modules/json5": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
+ "license": "MIT",
"bin": {
"json5": "lib/cli.js"
},
@@ -9656,6 +10028,7 @@
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"universalify": "^2.0.0"
},
@@ -9664,12 +10037,12 @@
}
},
"node_modules/jsonwebtoken": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
- "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz",
+ "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==",
"license": "MIT",
"dependencies": {
- "jws": "^3.2.2",
+ "jws": "^4.0.1",
"lodash.includes": "^4.3.0",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
@@ -9690,6 +10063,7 @@
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
"integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-includes": "^3.1.6",
"array.prototype.flat": "^1.3.1",
@@ -9701,23 +10075,23 @@
}
},
"node_modules/jwa": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
+ "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
"license": "MIT",
"dependencies": {
- "buffer-equal-constant-time": "1.0.1",
+ "buffer-equal-constant-time": "^1.0.1",
"ecdsa-sig-formatter": "1.0.11",
"safe-buffer": "^5.0.1"
}
},
"node_modules/jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz",
+ "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==",
"license": "MIT",
"dependencies": {
- "jwa": "^1.4.1",
+ "jwa": "^2.0.1",
"safe-buffer": "^5.0.1"
}
},
@@ -9726,6 +10100,7 @@
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"json-buffer": "3.0.1"
}
@@ -9735,6 +10110,7 @@
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -9744,6 +10120,7 @@
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
"integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -9753,6 +10130,7 @@
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
"integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
@@ -9765,49 +10143,19 @@
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/load-json-file": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
- "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
- "dependencies": {
- "graceful-fs": "^4.1.15",
- "parse-json": "^4.0.0",
- "pify": "^4.0.1",
- "strip-bom": "^3.0.0",
- "type-fest": "^0.3.0"
- },
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-7.0.1.tgz",
+ "integrity": "sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==",
+ "license": "MIT",
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/load-json-file/node_modules/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
- "dependencies": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/load-json-file/node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/load-json-file/node_modules/type-fest": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
- "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
- "engines": {
- "node": ">=6"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/locate-path": {
@@ -9815,6 +10163,7 @@
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -9830,6 +10179,7 @@
"resolved": "https://registry.npmjs.org/lockfile-lint/-/lockfile-lint-4.14.1.tgz",
"integrity": "sha512-NW0Tk1qfldhbhJWQENYQWANdmlanXKxvTJYRYKn56INYjaP2M07Ua2SJYkUMS+ZbYwxDzul/C6pDsV/NEXrl+A==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"cosmiconfig": "^9.0.0",
"debug": "^4.3.4",
@@ -9849,6 +10199,7 @@
"resolved": "https://registry.npmjs.org/lockfile-lint-api/-/lockfile-lint-api-5.9.2.tgz",
"integrity": "sha512-3QhxWxl3jT9GcMxuCnTsU8Tz5U6U1lKBlKBu2zOYOz/x3ONUoojEtky3uzoaaDgExcLqIX0Aqv2I7TZXE383CQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@yarnpkg/parsers": "^3.0.0-rc.48.1",
"debug": "^4.3.4",
@@ -9863,6 +10214,7 @@
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -9877,9 +10229,9 @@
}
},
"node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
+ "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q=="
},
"node_modules/lodash.defaults": {
"version": "4.2.0",
@@ -9933,7 +10285,8 @@
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.once": {
"version": "4.1.1",
@@ -9946,6 +10299,7 @@
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
@@ -9957,6 +10311,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
"integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -9966,6 +10321,7 @@
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"yallist": "^3.0.2"
}
@@ -9975,6 +10331,7 @@
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
"integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"semver": "^7.5.3"
},
@@ -9990,6 +10347,7 @@
"resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
"integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"tmpl": "1.0.5"
}
@@ -10004,11 +10362,12 @@
}
},
"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==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
+ "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
+ "license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.8"
}
},
"node_modules/memorystream": {
@@ -10021,9 +10380,13 @@
}
},
"node_modules/merge-descriptors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
- "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz",
+ "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
@@ -10032,13 +10395,15 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
@@ -10047,15 +10412,8 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/mersenne-twister/-/mersenne-twister-1.1.0.tgz",
"integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==",
- "dev": true
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "engines": {
- "node": ">= 0.6"
- }
+ "dev": true,
+ "license": "MIT"
},
"node_modules/micromatch": {
"version": "4.0.8",
@@ -10071,34 +10429,29 @@
"node": ">=8.6"
}
},
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
"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==",
+ "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": ">= 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==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
+ "license": "MIT",
"dependencies": {
- "mime-db": "1.52.0"
+ "mime-db": "^1.54.0"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/mimic-fn": {
@@ -10106,20 +10459,21 @@
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/minimatch": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
- "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
- "license": "ISC",
+ "version": "10.2.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
+ "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "brace-expansion": "^5.0.2"
},
"engines": {
- "node": "20 || >=22"
+ "node": "18 || 20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -10129,6 +10483,7 @@
"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"
}
@@ -10138,6 +10493,7 @@
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
+ "license": "MIT",
"bin": {
"mkdirp": "bin/cmd.js"
},
@@ -10146,26 +10502,29 @@
}
},
"node_modules/module-details-from-path": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz",
- "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz",
+ "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==",
"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/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
+ "dev": true,
+ "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==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
+ "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -10174,15 +10533,17 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/nock": {
- "version": "14.0.2",
- "resolved": "https://registry.npmjs.org/nock/-/nock-14.0.2.tgz",
- "integrity": "sha512-jDUBpCNY7KLyOF2FTiT4mLRxV2kpjo4YrcGtv3IMCIwqFKxOQFrmeXefvuEiWvS3ApPWQHAkakkkVpoOrDNCVg==",
+ "version": "14.0.11",
+ "resolved": "https://registry.npmjs.org/nock/-/nock-14.0.11.tgz",
+ "integrity": "sha512-u5xUnYE+UOOBA6SpELJheMCtj2Laqx15Vl70QxKo43Wz/6nMHXS7PrEioXLjXAwhmawdEMNImwKCcPhBJWbKVw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@mswjs/interceptors": "^0.38.0",
+ "@mswjs/interceptors": "^0.41.0",
"json-stringify-safe": "^5.0.1",
"propagate": "^2.0.0"
},
@@ -10191,93 +10552,84 @@
}
},
"node_modules/node-cron": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-3.0.3.tgz",
- "integrity": "sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-4.2.1.tgz",
+ "integrity": "sha512-lgimEHPE/QDgFlywTd8yTR61ptugX3Qer29efeyWw2rv259HtGBNn1vZVmp8lB9uo9wC0t/AT4iGqXxia+CJFg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/node-exports-info": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz",
+ "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "uuid": "8.3.2"
+ "array.prototype.flatmap": "^1.3.3",
+ "es-errors": "^1.3.0",
+ "object.entries": "^1.1.9",
+ "semver": "^6.3.1"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/node-exports-info/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
}
},
"node_modules/node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
"integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/node-releases": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
- "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
- "dev": true
+ "version": "2.0.27",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
+ "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/nodemon": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz",
- "integrity": "sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==",
+ "version": "3.1.14",
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.14.tgz",
+ "integrity": "sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chokidar": "^3.5.2",
"debug": "^4",
"ignore-by-default": "^1.0.1",
- "minimatch": "^3.1.2",
+ "minimatch": "^10.2.1",
"pstree.remy": "^1.1.8",
"semver": "^7.5.3",
"simple-update-notifier": "^2.0.0",
"supports-color": "^5.5.0",
- "touch": "^3.1.0",
- "undefsafe": "^2.0.5"
- },
- "bin": {
- "nodemon": "bin/nodemon.js"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/nodemon"
- }
- },
- "node_modules/nodemon/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/nodemon/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/nopt": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
- "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
- "dev": true,
- "dependencies": {
- "abbrev": "1"
+ "touch": "^3.1.0",
+ "undefsafe": "^2.0.5"
},
"bin": {
- "nopt": "bin/nopt.js"
+ "nodemon": "bin/nodemon.js"
},
"engines": {
- "node": "*"
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/nodemon"
}
},
"node_modules/normalize-package-data": {
@@ -10285,6 +10637,7 @@
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"hosted-git-info": "^2.1.4",
"resolve": "^1.10.0",
@@ -10297,6 +10650,7 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver"
}
@@ -10306,6 +10660,7 @@
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -10315,6 +10670,7 @@
"resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
"integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.1",
"chalk": "^2.4.1",
@@ -10335,10 +10691,17 @@
"node": ">= 4"
}
},
+ "node_modules/npm-run-all/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/npm-run-all/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10364,9 +10727,9 @@
}
},
"node_modules/npm-run-all/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -10381,6 +10744,7 @@
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
"integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -10390,6 +10754,7 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver"
}
@@ -10399,6 +10764,7 @@
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"shebang-regex": "^1.0.0"
},
@@ -10411,6 +10777,7 @@
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
"integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -10420,6 +10787,7 @@
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -10432,6 +10800,7 @@
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
"integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-key": "^3.0.0"
},
@@ -10439,17 +10808,18 @@
"node": ">=8"
}
},
- "node_modules/nwsapi": {
- "version": "2.2.20",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz",
- "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==",
- "dev": true
+ "node_modules/npx-import-light": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/npx-import-light/-/npx-import-light-1.0.0.tgz",
+ "integrity": "sha512-OgOY4wh4tfj6G7nKYobbpYg2yhYH/19dz/ZRzcOGN+rP3wjLHTRb6ZMM5UshLu4gbDdwwZ8VX2fXBr4krsYHzQ==",
+ "license": "ISC"
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -10459,14 +10829,15 @@
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 6"
}
},
"node_modules/object-inspect": {
- "version": "1.13.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
- "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -10480,6 +10851,7 @@
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
}
@@ -10506,14 +10878,16 @@
}
},
"node_modules/object.entries": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
- "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz",
+ "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
+ "es-object-atoms": "^1.1.1"
},
"engines": {
"node": ">= 0.4"
@@ -10524,6 +10898,7 @@
"resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
"integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -10542,6 +10917,7 @@
"resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
"integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -10571,20 +10947,21 @@
}
},
"node_modules/octokit": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/octokit/-/octokit-5.0.3.tgz",
- "integrity": "sha512-+bwYsAIRmYv30NTmBysPIlgH23ekVDriB07oRxlPIAH5PI0yTMSxg5i5Xy0OetcnZw+nk/caD4szD7a9YZ3QyQ==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/octokit/-/octokit-5.0.5.tgz",
+ "integrity": "sha512-4+/OFSqOjoyULo7eN7EA97DE0Xydj/PW5aIckxqQIoFjFwqXKuFCvXUJObyJfBF9Khu4RL/jlDRI9FPaMGfPnw==",
+ "license": "MIT",
"dependencies": {
- "@octokit/app": "^16.0.1",
- "@octokit/core": "^7.0.2",
- "@octokit/oauth-app": "^8.0.1",
+ "@octokit/app": "^16.1.2",
+ "@octokit/core": "^7.0.6",
+ "@octokit/oauth-app": "^8.0.3",
"@octokit/plugin-paginate-graphql": "^6.0.0",
- "@octokit/plugin-paginate-rest": "^13.0.0",
- "@octokit/plugin-rest-endpoint-methods": "^16.0.0",
- "@octokit/plugin-retry": "^8.0.1",
- "@octokit/plugin-throttling": "^11.0.1",
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0",
+ "@octokit/plugin-paginate-rest": "^14.0.0",
+ "@octokit/plugin-rest-endpoint-methods": "^17.0.0",
+ "@octokit/plugin-retry": "^8.0.3",
+ "@octokit/plugin-throttling": "^11.0.3",
+ "@octokit/request-error": "^7.0.2",
+ "@octokit/types": "^16.0.0",
"@octokit/webhooks": "^14.0.0"
},
"engines": {
@@ -10592,213 +10969,23 @@
}
},
"node_modules/octokit-auth-probot": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/octokit-auth-probot/-/octokit-auth-probot-2.0.1.tgz",
- "integrity": "sha512-HzOJ4EPC5OJN6oZEoKTMYtqUQ2ZSKHmDWbLHfFB7JYpho9Zb+aJmDfRShd5a/eGvmIzbZ0NRIWjmnvspDp8JAQ==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/octokit-auth-probot/-/octokit-auth-probot-4.2.2.tgz",
+ "integrity": "sha512-fxJ8iIu030wh6wSCpT586IIH77+qLCLv0Jofx55aNotNC+8NN6MClE4EU0+3Fez6CRSyYa1RzIh1WcryEBjgRg==",
"license": "ISC",
"dependencies": {
- "@octokit/auth-app": "^6.1.3",
- "@octokit/auth-token": "^4.0.0",
- "@octokit/auth-unauthenticated": "^5.0.1",
- "@octokit/types": "^12.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@octokit/core": ">=5"
- }
- },
- "node_modules/octokit/node_modules/@octokit/auth-token": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-6.0.0.tgz",
- "integrity": "sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==",
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/octokit/node_modules/@octokit/core": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.2.tgz",
- "integrity": "sha512-ODsoD39Lq6vR6aBgvjTnA3nZGliknKboc9Gtxr7E4WDNqY24MxANKcuDQSF0jzapvGb3KWOEDrKfve4HoWGK+g==",
- "dependencies": {
+ "@octokit/auth-app": "^8.1.2",
"@octokit/auth-token": "^6.0.0",
- "@octokit/graphql": "^9.0.1",
- "@octokit/request": "^10.0.2",
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0",
- "before-after-hook": "^4.0.0",
- "universal-user-agent": "^7.0.0"
- },
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/octokit/node_modules/@octokit/endpoint": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.0.tgz",
- "integrity": "sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==",
- "dependencies": {
- "@octokit/types": "^14.0.0",
- "universal-user-agent": "^7.0.2"
- },
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/octokit/node_modules/@octokit/graphql": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-9.0.1.tgz",
- "integrity": "sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==",
- "dependencies": {
- "@octokit/request": "^10.0.2",
- "@octokit/types": "^14.0.0",
- "universal-user-agent": "^7.0.0"
- },
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/octokit/node_modules/@octokit/openapi-types": {
- "version": "25.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.1.0.tgz",
- "integrity": "sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA=="
- },
- "node_modules/octokit/node_modules/@octokit/plugin-paginate-graphql": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-6.0.0.tgz",
- "integrity": "sha512-crfpnIoFiBtRkvPqOyLOsw12XsveYuY2ieP6uYDosoUegBJpSVxGwut9sxUgFFcll3VTOTqpUf8yGd8x1OmAkQ==",
- "engines": {
- "node": ">= 20"
- },
- "peerDependencies": {
- "@octokit/core": ">=6"
- }
- },
- "node_modules/octokit/node_modules/@octokit/plugin-paginate-rest": {
- "version": "13.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-13.0.0.tgz",
- "integrity": "sha512-nPXM3wgil9ONnAINcm8cN+nwso4QhNB13PtnlRFkYFHCUIogcH9DHak/StQYcwkkjuc7pUluLG1AWZNscgvH7Q==",
- "dependencies": {
- "@octokit/types": "^14.0.0"
- },
- "engines": {
- "node": ">= 20"
- },
- "peerDependencies": {
- "@octokit/core": ">=6"
- }
- },
- "node_modules/octokit/node_modules/@octokit/plugin-rest-endpoint-methods": {
- "version": "16.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-16.0.0.tgz",
- "integrity": "sha512-kJVUQk6/dx/gRNLWUnAWKFs1kVPn5O5CYZyssyEoNYaFedqZxsfYs7DwI3d67hGz4qOwaJ1dpm07hOAD1BXx6g==",
- "dependencies": {
- "@octokit/types": "^14.1.0"
- },
- "engines": {
- "node": ">= 20"
- },
- "peerDependencies": {
- "@octokit/core": ">=6"
- }
- },
- "node_modules/octokit/node_modules/@octokit/plugin-retry": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-8.0.1.tgz",
- "integrity": "sha512-KUoYR77BjF5O3zcwDQHRRZsUvJwepobeqiSSdCJ8lWt27FZExzb0GgVxrhhfuyF6z2B2zpO0hN5pteni1sqWiw==",
- "dependencies": {
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0",
- "bottleneck": "^2.15.3"
+ "@octokit/auth-unauthenticated": "^7.0.3",
+ "@octokit/types": "^16.0.0"
},
"engines": {
- "node": ">= 20"
+ "node": "^20.17 || >=22"
},
"peerDependencies": {
"@octokit/core": ">=7"
}
},
- "node_modules/octokit/node_modules/@octokit/plugin-throttling": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-11.0.1.tgz",
- "integrity": "sha512-S+EVhy52D/272L7up58dr3FNSMXWuNZolkL4zMJBNIfIxyZuUcczsQAU4b5w6dewJXnKYVgSHSV5wxitMSW1kw==",
- "dependencies": {
- "@octokit/types": "^14.0.0",
- "bottleneck": "^2.15.3"
- },
- "engines": {
- "node": ">= 20"
- },
- "peerDependencies": {
- "@octokit/core": "^7.0.0"
- }
- },
- "node_modules/octokit/node_modules/@octokit/request": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.2.tgz",
- "integrity": "sha512-iYj4SJG/2bbhh+iIpFmG5u49DtJ4lipQ+aPakjL9OKpsGY93wM8w06gvFbEQxcMsZcCvk5th5KkIm2m8o14aWA==",
- "dependencies": {
- "@octokit/endpoint": "^11.0.0",
- "@octokit/request-error": "^7.0.0",
- "@octokit/types": "^14.0.0",
- "fast-content-type-parse": "^3.0.0",
- "universal-user-agent": "^7.0.2"
- },
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/octokit/node_modules/@octokit/request-error": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.0.0.tgz",
- "integrity": "sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==",
- "dependencies": {
- "@octokit/types": "^14.0.0"
- },
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/octokit/node_modules/@octokit/types": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.1.0.tgz",
- "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==",
- "dependencies": {
- "@octokit/openapi-types": "^25.1.0"
- }
- },
- "node_modules/octokit/node_modules/@octokit/webhooks": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-14.0.0.tgz",
- "integrity": "sha512-IZV4vg/s1pqIpCs86a0tp5FQ/O94DUaqksMdNrXFSaE037TXsB+fIhr8OVig09oEx3WazVgE6B2U+u7/Fvdlsw==",
- "dependencies": {
- "@octokit/openapi-webhooks-types": "11.0.0",
- "@octokit/request-error": "^7.0.0",
- "@octokit/webhooks-methods": "^6.0.0"
- },
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/octokit/node_modules/@octokit/webhooks-methods": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-6.0.0.tgz",
- "integrity": "sha512-MFlzzoDJVw/GcbfzVC1RLR36QqkTLUf79vLVO3D+xn7r0QgxnFoLZgtrzxiQErAjFUOdH6fas2KeQJ1yr/qaXQ==",
- "engines": {
- "node": ">= 20"
- }
- },
- "node_modules/octokit/node_modules/before-after-hook": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-4.0.0.tgz",
- "integrity": "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ=="
- },
- "node_modules/octokit/node_modules/universal-user-agent": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz",
- "integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A=="
- },
"node_modules/on-exit-leak-free": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz",
@@ -10812,6 +10999,7 @@
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "license": "MIT",
"dependencies": {
"ee-first": "1.1.1"
},
@@ -10823,6 +11011,7 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "license": "ISC",
"dependencies": {
"wrappy": "1"
}
@@ -10832,6 +11021,7 @@
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mimic-fn": "^2.1.0"
},
@@ -10847,6 +11037,7 @@
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
"integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
@@ -10863,7 +11054,8 @@
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz",
"integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/own-keys": {
"version": "1.0.1",
@@ -10888,6 +11080,7 @@
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -10903,6 +11096,7 @@
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -10917,15 +11111,33 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
+ "node_modules/package-config": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/package-config/-/package-config-5.0.0.tgz",
+ "integrity": "sha512-GYTTew2slBcYdvRHqjhwaaydVMvn/qrGC323+nKclYioNSLTDUM/lGgtGTgyHVtYcozb+XkE8CNhwcraOmZ9Mg==",
+ "license": "MIT",
+ "dependencies": {
+ "find-up-simple": "^1.0.0",
+ "load-json-file": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"callsites": "^3.0.0"
},
@@ -10938,6 +11150,7 @@
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.0.0",
"error-ex": "^1.3.1",
@@ -10951,22 +11164,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/parse5": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz",
- "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==",
- "dev": true,
- "dependencies": {
- "entities": "^4.5.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -10976,6 +11178,7 @@
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -10985,6 +11188,7 @@
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -10994,6 +11198,7 @@
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -11001,13 +11206,31 @@
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "license": "MIT"
},
"node_modules/path-to-regexp": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
- "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
- "license": "MIT"
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.1.tgz",
+ "integrity": "sha512-fvU78fIjZ+SBM9YwCknCvKOUKkLVqtWDVctl0s7xIqfmfb38t2TT4ZU2gHm+Z8xGwgW+QWEU3oQSAzIbo89Ggw==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
"node_modules/pg-int8": {
"version": "1.0.1",
@@ -11019,9 +11242,9 @@
}
},
"node_modules/pg-protocol": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.1.tgz",
- "integrity": "sha512-gjTHWGYWsEgy9MsY0Gp6ZJxV24IjDqdpTW7Eh0x+WfJLFsm/TJx1MzL6T0D88mBvkpxotCQ6TwW6N+Kko7lhgQ==",
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.12.0.tgz",
+ "integrity": "sha512-uOANXNRACNdElMXJ0tPz6RBM0XQ61nONGAwlt8da5zs/iUOOCLBQOHSXnrC6fMsvtjxbOJrZZl5IScGv+7mpbg==",
"license": "MIT"
},
"node_modules/pg-types": {
@@ -11052,6 +11275,7 @@
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.6"
},
@@ -11064,6 +11288,7 @@
"resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz",
"integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==",
"dev": true,
+ "license": "MIT",
"bin": {
"pidtree": "bin/pidtree.js"
},
@@ -11072,91 +11297,106 @@
}
},
"node_modules/pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=4"
}
},
"node_modules/pino": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/pino/-/pino-9.6.0.tgz",
- "integrity": "sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==",
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/pino/-/pino-10.3.1.tgz",
+ "integrity": "sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==",
"license": "MIT",
"dependencies": {
+ "@pinojs/redact": "^0.4.0",
"atomic-sleep": "^1.0.0",
- "fast-redact": "^3.1.1",
"on-exit-leak-free": "^2.1.0",
- "pino-abstract-transport": "^2.0.0",
+ "pino-abstract-transport": "^3.0.0",
"pino-std-serializers": "^7.0.0",
- "process-warning": "^4.0.0",
+ "process-warning": "^5.0.0",
"quick-format-unescaped": "^4.0.3",
"real-require": "^0.2.0",
"safe-stable-stringify": "^2.3.1",
"sonic-boom": "^4.0.1",
- "thread-stream": "^3.0.0"
+ "thread-stream": "^4.0.0"
},
"bin": {
"pino": "bin.js"
}
},
"node_modules/pino-abstract-transport": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz",
- "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-3.0.0.tgz",
+ "integrity": "sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==",
"license": "MIT",
"dependencies": {
"split2": "^4.0.0"
}
},
"node_modules/pino-http": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/pino-http/-/pino-http-10.4.0.tgz",
- "integrity": "sha512-vjQsKBE+VN1LVchjbfLE7B6nBeGASZNRNKsR68VS0DolTm5R3zo+47JX1wjm0O96dcbvA7vnqt8YqOWlG5nN0w==",
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/pino-http/-/pino-http-11.0.0.tgz",
+ "integrity": "sha512-wqg5XIAGRRIWtTk8qPGxkbrfiwEWz1lgedVLvhLALudKXvg1/L2lTFgTGPJ4Z2e3qcRmxoFxDuSdMdMGNM6I1g==",
"license": "MIT",
"dependencies": {
"get-caller-file": "^2.0.5",
- "pino": "^9.0.0",
+ "pino": "^10.0.0",
"pino-std-serializers": "^7.0.0",
- "process-warning": "^4.0.0"
+ "process-warning": "^5.0.0"
}
},
"node_modules/pino-pretty": {
- "version": "13.0.0",
- "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-13.0.0.tgz",
- "integrity": "sha512-cQBBIVG3YajgoUjo1FdKVRX6t9XPxwB9lcNJVD5GCnNM4Y6T12YYx8c6zEejxQsU0wrg9TwmDulcE9LR7qcJqA==",
+ "version": "13.1.3",
+ "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-13.1.3.tgz",
+ "integrity": "sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==",
"license": "MIT",
"dependencies": {
"colorette": "^2.0.7",
"dateformat": "^4.6.3",
- "fast-copy": "^3.0.2",
+ "fast-copy": "^4.0.0",
"fast-safe-stringify": "^2.1.1",
"help-me": "^5.0.0",
"joycon": "^3.1.1",
"minimist": "^1.2.6",
"on-exit-leak-free": "^2.1.0",
- "pino-abstract-transport": "^2.0.0",
+ "pino-abstract-transport": "^3.0.0",
"pump": "^3.0.0",
- "secure-json-parse": "^2.4.0",
+ "secure-json-parse": "^4.0.0",
"sonic-boom": "^4.0.1",
- "strip-json-comments": "^3.1.1"
+ "strip-json-comments": "^5.0.2"
+ },
+ "bin": {
+ "pino-pretty": "bin.js"
+ }
+ },
+ "node_modules/pino-pretty/node_modules/strip-json-comments": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.3.tgz",
+ "integrity": "sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
},
- "bin": {
- "pino-pretty": "bin.js"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/pino-std-serializers": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz",
- "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz",
+ "integrity": "sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==",
"license": "MIT"
},
"node_modules/pirates": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
+ "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 6"
}
@@ -11165,6 +11405,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz",
"integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==",
+ "license": "MIT",
"dependencies": {
"find-up": "^3.0.0",
"load-json-file": "^5.2.0"
@@ -11177,6 +11418,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "license": "MIT",
"dependencies": {
"locate-path": "^3.0.0"
},
@@ -11184,10 +11426,27 @@
"node": ">=6"
}
},
+ "node_modules/pkg-conf/node_modules/load-json-file": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
+ "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.1.15",
+ "parse-json": "^4.0.0",
+ "pify": "^4.0.1",
+ "strip-bom": "^3.0.0",
+ "type-fest": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/pkg-conf/node_modules/locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "license": "MIT",
"dependencies": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
@@ -11200,6 +11459,7 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -11214,6 +11474,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.0.0"
},
@@ -11221,19 +11482,61 @@
"node": ">=6"
}
},
+ "node_modules/pkg-conf/node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "license": "MIT",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/pkg-conf/node_modules/path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pkg-conf/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"
+ }
+ },
+ "node_modules/pkg-conf/node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
+ "node_modules/pkg-conf/node_modules/type-fest": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
"integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -11246,6 +11549,7 @@
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -11259,6 +11563,7 @@
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -11271,6 +11576,7 @@
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -11286,6 +11592,7 @@
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -11294,9 +11601,9 @@
}
},
"node_modules/possible-typed-array-names": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
- "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
+ "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11313,9 +11620,9 @@
}
},
"node_modules/postgres-bytea": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
- "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz",
+ "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -11347,6 +11654,7 @@
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8.0"
}
@@ -11356,6 +11664,7 @@
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
"integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/schemas": "^29.6.3",
"ansi-styles": "^5.0.0",
@@ -11370,6 +11679,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
"integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -11378,59 +11688,45 @@
}
},
"node_modules/probot": {
- "version": "13.4.4",
- "resolved": "https://registry.npmjs.org/probot/-/probot-13.4.4.tgz",
- "integrity": "sha512-2f/Vqho0rQpTppx4mfuyB1k2xAuAd/qpJaEp7gLjZ6rBr804KiCey6tcGzSBYt/S6O5umdbqQLpfVyh2RsdpyQ==",
+ "version": "14.3.2",
+ "resolved": "https://registry.npmjs.org/probot/-/probot-14.3.2.tgz",
+ "integrity": "sha512-Bprr2KwlVF4Jpb6bnIcfadA4Dtns8nDJxSEEPNy3FhRrtHUYxZGiczReG5Vo6M7t4iS8Kcvek7CDUTTXgkaSBw==",
"license": "ISC",
"dependencies": {
- "@octokit/core": "^5.2.0",
- "@octokit/plugin-enterprise-compatibility": "^4.0.1",
- "@octokit/plugin-paginate-rest": "11.4.4-cjs.2",
- "@octokit/plugin-rest-endpoint-methods": "13.3.2-cjs.1",
- "@octokit/plugin-retry": "^6.0.1",
- "@octokit/plugin-throttling": "^8.1.3",
- "@octokit/request": "^8.4.1",
- "@octokit/types": "^12.3.0",
- "@octokit/webhooks": "^12.0.10",
- "@probot/get-private-key": "^1.1.2",
- "@probot/octokit-plugin-config": "^2.0.1",
- "@probot/pino": "^3.0.0",
- "@types/express": "^4.17.21",
+ "@octokit/core": "^7.0.3",
+ "@octokit/plugin-enterprise-compatibility": "^6.0.1",
+ "@octokit/plugin-paginate-rest": "^14.0.0",
+ "@octokit/plugin-rest-endpoint-methods": "^17.0.0",
+ "@octokit/plugin-retry": "^8.0.1",
+ "@octokit/plugin-throttling": "^11.0.1",
+ "@octokit/request": "^10.0.3",
+ "@octokit/types": "^16.0.0",
+ "@octokit/webhooks": "^14.1.2",
+ "@probot/get-private-key": "^2.1.1",
+ "@probot/octokit-plugin-config": "^4.0.0",
+ "@probot/pino": "^5.0.1",
"bottleneck": "^2.19.5",
- "commander": "^12.0.0",
"deepmerge": "^4.3.1",
- "dotenv": "^16.3.1",
- "express": "^4.21.0",
- "ioredis": "^5.3.2",
- "js-yaml": "^4.1.0",
- "lru-cache": "npm:@wolfy1339/lru-cache@^11.0.2-patch.1",
- "octokit-auth-probot": "^2.0.1",
- "pino": "^9.0.0",
- "pino-http": "^10.0.0",
- "pkg-conf": "^3.1.0",
- "update-dotenv": "^1.1.1"
+ "import-meta-resolve": "^4.1.0",
+ "npx-import-light": "^1.0.0",
+ "octokit-auth-probot": "^4.0.1",
+ "package-config": "^5.0.0",
+ "pino": "^10.0.0",
+ "pino-http": "^11.0.0",
+ "toad-cache": "^3.7.0",
+ "yaml": "^2.8.1"
},
"bin": {
"probot": "bin/probot.js"
},
"engines": {
- "node": ">=18"
- }
- },
- "node_modules/probot/node_modules/lru-cache": {
- "name": "@wolfy1339/lru-cache",
- "version": "11.0.2-patch.1",
- "resolved": "https://registry.npmjs.org/@wolfy1339/lru-cache/-/lru-cache-11.0.2-patch.1.tgz",
- "integrity": "sha512-BgYZfL2ADCXKOw2wJtkM3slhHotawWkgIRRxq4wEybnZQPjvAp71SPX35xepMykTw8gXlzWcWPTY31hlbnRsDA==",
- "license": "ISC",
- "engines": {
- "node": "18 >=18.20 || 20 || >=22"
+ "node": "^20.18.1 || >= 22"
}
},
"node_modules/process-warning": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.1.tgz",
- "integrity": "sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz",
+ "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==",
"funding": [
{
"type": "github",
@@ -11448,6 +11744,7 @@
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
"integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"kleur": "^3.0.3",
"sisteransi": "^1.0.5"
@@ -11461,6 +11758,7 @@
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@@ -11471,13 +11769,15 @@
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/propagate": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz",
"integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
@@ -11486,6 +11786,7 @@
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
"integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "license": "MIT",
"dependencies": {
"forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
@@ -11495,20 +11796,25 @@
}
},
"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=="
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
+ "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
},
"node_modules/pstree.remy": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
"integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/pump": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
- "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz",
+ "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==",
"license": "MIT",
"dependencies": {
"end-of-stream": "^1.1.0",
@@ -11520,6 +11826,7 @@
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -11538,14 +11845,16 @@
"type": "opencollective",
"url": "https://opencollective.com/fast-check"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "version": "6.15.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz",
+ "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==",
+ "license": "BSD-3-Clause",
"dependencies": {
- "side-channel": "^1.0.6"
+ "side-channel": "^1.1.0"
},
"engines": {
"node": ">=0.6"
@@ -11572,7 +11881,8 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/quick-format-unescaped": {
"version": "4.0.4",
@@ -11584,35 +11894,39 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
+ "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
+ "license": "MIT",
"dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
+ "bytes": "~3.1.2",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.7.0",
+ "unpipe": "~1.0.0"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.10"
}
},
"node_modules/react-is": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
"integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/read-pkg": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
"integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"load-json-file": "^4.0.0",
"normalize-package-data": "^2.3.2",
@@ -11627,6 +11941,7 @@
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
"integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.1.2",
"parse-json": "^4.0.0",
@@ -11642,6 +11957,7 @@
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
"integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"error-ex": "^1.3.1",
"json-parse-better-errors": "^1.0.1"
@@ -11650,32 +11966,12 @@
"node": ">=4"
}
},
- "node_modules/read-pkg/node_modules/path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
- "dev": true,
- "dependencies": {
- "pify": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/read-pkg/node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/read-pkg/node_modules/strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -11685,6 +11981,7 @@
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -11727,6 +12024,7 @@
"resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz",
"integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -11780,6 +12078,7 @@
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
"integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -11792,6 +12091,7 @@
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -11811,17 +12111,21 @@
}
},
"node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "license": "MIT",
"dependencies": {
- "is-core-module": "^2.13.0",
+ "is-core-module": "^2.16.1",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
"bin": {
"resolve": "bin/resolve"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -11831,6 +12135,7 @@
"resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
"integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"resolve-from": "^5.0.0"
},
@@ -11843,6 +12148,7 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -11852,6 +12158,7 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -11861,25 +12168,28 @@
"resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
"integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
"dev": true,
+ "license": "MIT",
"peer": true,
"funding": {
"url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
}
},
"node_modules/resolve.exports": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
- "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
+ "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
"dev": true,
+ "license": "MIT",
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
@@ -11889,7 +12199,9 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
"dev": true,
+ "license": "ISC",
"dependencies": {
"glob": "^7.1.3"
},
@@ -11900,11 +12212,21 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/rrweb-cssom": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
- "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
- "dev": true
+ "node_modules/router": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz",
+ "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.4.0",
+ "depd": "^2.0.0",
+ "is-promise": "^4.0.0",
+ "parseurl": "^1.3.3",
+ "path-to-regexp": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
},
"node_modules/run-parallel": {
"version": "1.2.0",
@@ -11925,6 +12247,7 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"dependencies": {
"queue-microtask": "^1.2.2"
}
@@ -11966,7 +12289,8 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/safe-push-apply": {
"version": "1.0.0",
@@ -12015,30 +12339,30 @@
"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/saxes": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
- "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
- "dev": true,
- "dependencies": {
- "xmlchars": "^2.2.0"
- },
- "engines": {
- "node": ">=v12.22.7"
- }
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "license": "MIT"
},
"node_modules/secure-json-parse": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
- "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-4.1.0.tgz",
+ "integrity": "sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
"license": "BSD-3-Clause"
},
"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==",
+ "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -12053,6 +12377,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
@@ -12063,69 +12388,52 @@
"node_modules/semver/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "license": "ISC"
},
"node_modules/send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",
+ "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.4.3",
+ "encodeurl": "^2.0.0",
+ "escape-html": "^1.0.3",
+ "etag": "^1.8.1",
+ "fresh": "^2.0.0",
+ "http-errors": "^2.0.1",
+ "mime-types": "^3.0.2",
+ "ms": "^2.1.3",
+ "on-finished": "^2.4.1",
+ "range-parser": "^1.2.1",
+ "statuses": "^2.0.2"
},
"engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
+ "node": ">= 18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
"node_modules/serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz",
+ "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==",
+ "license": "MIT",
"dependencies": {
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.19.0"
+ "encodeurl": "^2.0.0",
+ "escape-html": "^1.0.3",
+ "parseurl": "^1.3.3",
+ "send": "^1.2.0"
},
"engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/serve-static/node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "engines": {
- "node": ">= 0.8"
+ "node": ">= 18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/set-function-length": {
@@ -12133,6 +12441,7 @@
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
@@ -12150,6 +12459,7 @@
"resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
"integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
@@ -12178,13 +12488,15 @@
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "license": "ISC"
},
"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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"shebang-regex": "^3.0.0"
},
@@ -12197,15 +12509,17 @@
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/shell-quote": {
- "version": "1.8.4",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.4.tgz",
- "integrity": "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz",
+ "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -12295,13 +12609,15 @@
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/simple-update-notifier": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
"integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"semver": "^7.5.3"
},
@@ -12313,27 +12629,28 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/smee-client": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/smee-client/-/smee-client-4.3.1.tgz",
- "integrity": "sha512-4x8Plwtzx/w9N/0TT2tegle6zaDkPnUrPLZUhDt1phUlMMRhlYuSDdEKl0LygZPegsztYd7sWmcYAm8UQ60xQA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/smee-client/-/smee-client-5.0.0.tgz",
+ "integrity": "sha512-OYL8xPr1Tc0iqGohTGqHO/qEvUrPktK0a2Qcb0Uuj+j4KLnH5bsOhOlmpnmdh4zgzL3OwTfodcmkg5fVgiMUHw==",
"dev": true,
"license": "ISC",
"dependencies": {
"eventsource": "^4.0.0",
- "undici": "^7.0.0",
- "validator": "^13.11.0"
+ "undici": "^7.0.0"
},
"bin": {
"smee": "bin/smee.js"
@@ -12343,9 +12660,9 @@
}
},
"node_modules/sonic-boom": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz",
- "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.1.tgz",
+ "integrity": "sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==",
"license": "MIT",
"dependencies": {
"atomic-sleep": "^1.0.0"
@@ -12356,6 +12673,7 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -12365,6 +12683,7 @@
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
"integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -12375,6 +12694,7 @@
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
"integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
@@ -12384,23 +12704,26 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
"integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
- "dev": true
+ "dev": true,
+ "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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.17",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
- "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==",
- "dev": true
+ "version": "3.0.23",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz",
+ "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==",
+ "dev": true,
+ "license": "CC0-1.0"
},
"node_modules/split2": {
"version": "4.2.0",
@@ -12415,13 +12738,15 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/stack-utils": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
"integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"escape-string-regexp": "^2.0.0"
},
@@ -12434,6 +12759,7 @@
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -12501,6 +12827,7 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"dependencies": {
"get-stdin": "^8.0.0",
"minimist": "^1.2.6",
@@ -12511,10 +12838,17 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
+ "node_modules/standard/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/standard/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12527,6 +12861,7 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz",
"integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"builtins": "^5.0.1",
"eslint-plugin-es": "^4.1.0",
@@ -12552,6 +12887,7 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz",
"integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eslint-utils": "^2.0.0",
"regexpp": "^3.0.0"
@@ -12571,6 +12907,7 @@
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
"integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eslint-visitor-keys": "^1.1.0"
},
@@ -12586,6 +12923,7 @@
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
"integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=4"
}
@@ -12595,6 +12933,7 @@
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
"integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eslint-visitor-keys": "^2.0.0"
},
@@ -12613,14 +12952,15 @@
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
"integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=10"
}
},
"node_modules/standard/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -12631,24 +12971,41 @@
}
},
"node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
+ "node_modules/stop-iteration-iterator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
+ "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "internal-slot": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/strict-event-emitter": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz",
"integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/string-length": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
"integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"char-regex": "^1.0.2",
"strip-ansi": "^6.0.0"
@@ -12662,6 +13019,7 @@
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -12704,6 +13062,7 @@
"resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz",
"integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -12774,6 +13133,7 @@
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
"integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -12791,6 +13151,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -12803,6 +13164,7 @@
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
"integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -12812,6 +13174,7 @@
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -12820,6 +13183,8 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -12832,6 +13197,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -12843,6 +13209,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -12850,17 +13217,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/symbol-tree": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
- "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
- "dev": true
- },
"node_modules/table-layout": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz",
"integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-back": "^4.0.1",
"deep-extend": "~0.6.0",
@@ -12876,6 +13238,7 @@
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
"integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"@istanbuljs/schema": "^0.1.2",
"glob": "^7.1.4",
@@ -12885,10 +13248,17 @@
"node": ">=8"
}
},
+ "node_modules/test-exclude/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/test-exclude/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12897,9 +13267,9 @@
}
},
"node_modules/test-exclude/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -12913,46 +13283,34 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/thread-stream": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz",
- "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-4.0.0.tgz",
+ "integrity": "sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==",
"license": "MIT",
"dependencies": {
"real-require": "^0.2.0"
- }
- },
- "node_modules/tldts": {
- "version": "6.1.85",
- "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.85.tgz",
- "integrity": "sha512-gBdZ1RjCSevRPFix/hpaUWeak2/RNUZB4/8frF1r5uYMHjFptkiT0JXIebWvgI/0ZHXvxaUDDJshiA0j6GdL3w==",
- "dev": true,
- "dependencies": {
- "tldts-core": "^6.1.85"
},
- "bin": {
- "tldts": "bin/cli.js"
+ "engines": {
+ "node": ">=20"
}
},
- "node_modules/tldts-core": {
- "version": "6.1.85",
- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.85.tgz",
- "integrity": "sha512-DTjUVvxckL1fIoPSb3KE7ISNtkWSawZdpfxGxwiIrZoO6EbHVDXXUIlIuWympPaeS+BLGyggozX/HTMsRAdsoA==",
- "dev": true
- },
"node_modules/tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -12964,6 +13322,7 @@
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz",
"integrity": "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==",
+ "license": "MIT",
"engines": {
"node": ">=12"
}
@@ -12972,51 +13331,27 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "license": "MIT",
"engines": {
"node": ">=0.6"
}
},
"node_modules/touch": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
- "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
+ "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
"dev": true,
- "dependencies": {
- "nopt": "~1.0.10"
- },
+ "license": "ISC",
"bin": {
"nodetouch": "bin/nodetouch.js"
}
},
- "node_modules/tough-cookie": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
- "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
- "dev": true,
- "dependencies": {
- "tldts": "^6.1.32"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/tr46": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.0.tgz",
- "integrity": "sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==",
- "dev": true,
- "dependencies": {
- "punycode": "^2.3.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
"node_modules/tsconfig-paths": {
"version": "3.15.0",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
"integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/json5": "^0.0.29",
"json5": "^1.0.2",
@@ -13029,6 +13364,7 @@
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"minimist": "^1.2.0"
},
@@ -13041,21 +13377,24 @@
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
- "dev": true
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
},
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
"integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1"
},
@@ -13068,15 +13407,17 @@
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -13085,12 +13426,14 @@
}
},
"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==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz",
+ "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==",
+ "license": "MIT",
"dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
+ "content-type": "^1.0.5",
+ "media-typer": "^1.1.0",
+ "mime-types": "^3.0.0"
},
"engines": {
"node": ">= 0.6"
@@ -13179,6 +13522,7 @@
"resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
"integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -13206,41 +13550,42 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
"integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/undici": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-7.7.0.tgz",
- "integrity": "sha512-tZ6+5NBq4KH35rr46XJ2JPFKxfcBlYNaqLF/wyWIO9RMHqqU/gx/CLB1Y2qMcgB8lWw/bKHa7qzspqCN7mUHvA==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.5.tgz",
+ "integrity": "sha512-3IWdCpjgxp15CbJnsi/Y9TCDE7HWVN19j1hmzVhoAkY/+CJx449tVxT5wZc1Gwg8J+P0LWvzlBzxYRnHJ+1i7Q==",
+ "license": "MIT",
"engines": {
"node": ">=20.18.1"
}
},
"node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
+ "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
+ "license": "MIT"
},
"node_modules/universal-github-app-jwt": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.2.0.tgz",
- "integrity": "sha512-dncpMpnsKBk0eetwfN8D8OUHGfiDhhJ+mtsbMl+7PfW7mYjiH8LIcqRmYMtzYLgSh47HjfdBtrBwIQ/gizKR3g==",
- "license": "MIT",
- "dependencies": {
- "@types/jsonwebtoken": "^9.0.0",
- "jsonwebtoken": "^9.0.2"
- }
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-2.2.2.tgz",
+ "integrity": "sha512-dcmbeSrOdTnsjGjUfAlqNDJrhxXizjAz94ija9Qw8YkZ1uu0d+GoZzyH+Jb9tIIqvGsadUfwg+22k5aDqqwzbw==",
+ "license": "MIT"
},
"node_modules/universal-user-agent": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
- "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ=="
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz",
+ "integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==",
+ "license": "ISC"
},
"node_modules/universalify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
"integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 10.0.0"
}
@@ -13249,14 +13594,15 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/update-browserslist-db": {
- "version": "1.0.14",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.14.tgz",
- "integrity": "sha512-JixKH8GR2pWYshIPUg/NujK3JO7JiqEEUiNArE86NQyrgUuZeTlZQN3xuS/yiV5Kb48ev9K6RqNkaJjXsdg7Jw==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
"dev": true,
"funding": [
{
@@ -13272,9 +13618,10 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "escalade": "^3.1.2",
- "picocolors": "^1.0.0"
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
},
"bin": {
"update-browserslist-db": "cli.js"
@@ -13287,6 +13634,7 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/update-dotenv/-/update-dotenv-1.1.1.tgz",
"integrity": "sha512-3cIC18In/t0X/yH793c00qqxcKD8jVCgNOPif/fGQkFpYMGecM9YAc+kaAKXuZsM2dE9I9wFI7KvAuNX22SGMQ==",
+ "license": "ISC",
"peerDependencies": {
"dotenv": "*"
}
@@ -13296,31 +13644,27 @@
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"punycode": "^2.1.0"
}
},
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "dev": true,
+ "license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/v8-to-istanbul": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz",
- "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==",
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
+ "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.12",
"@types/istanbul-lib-coverage": "^2.0.1",
@@ -13335,118 +13679,47 @@
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
}
},
- "node_modules/validator": {
- "version": "13.11.0",
- "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz",
- "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
"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==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/version-guard": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/version-guard/-/version-guard-1.1.2.tgz",
- "integrity": "sha512-D8d+YxCUpoqtCnQzDxm6SF7DLU3gr2535T4khAtMq4osBahsQnmSxuwXFdrbAdDGG8Uokzfis/jvyeFPdmlc7w==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/version-guard/-/version-guard-1.1.3.tgz",
+ "integrity": "sha512-JwPr6erhX53EWH/HCSzfy1tTFrtPXUe927wdM1jqBBeYp1OM+qPHjWbsvv6pIBduqdgxxS+ScfG7S28pzyr2DQ==",
"dev": true,
+ "license": "0BSD",
"engines": {
"node": ">=0.10.48"
}
},
- "node_modules/w3c-xmlserializer": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
- "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
- "dev": true,
- "dependencies": {
- "xml-name-validator": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
"node_modules/walker": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
"integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"makeerror": "1.0.12"
}
},
- "node_modules/webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "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==",
- "dev": true,
- "dependencies": {
- "iconv-lite": "0.6.3"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/whatwg-encoding/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==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "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==",
- "dev": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/whatwg-url": {
- "version": "14.2.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
- "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
- "dev": true,
- "dependencies": {
- "tr46": "^5.1.0",
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -13525,16 +13798,17 @@
}
},
"node_modules/which-typed-array": {
- "version": "1.1.18",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz",
- "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==",
+ "version": "1.1.20",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz",
+ "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==",
"dev": true,
"license": "MIT",
"dependencies": {
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "for-each": "^0.3.3",
+ "call-bound": "^1.0.4",
+ "for-each": "^0.3.5",
+ "get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-tostringtag": "^1.0.2"
},
@@ -13550,6 +13824,7 @@
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
"integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -13559,6 +13834,7 @@
"resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz",
"integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"reduce-flatten": "^2.0.0",
"typical": "^5.2.0"
@@ -13572,6 +13848,7 @@
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -13589,6 +13866,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -13604,6 +13882,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -13615,18 +13894,21 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "license": "ISC"
},
"node_modules/write-file-atomic": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
"integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"imurmurhash": "^0.1.4",
"signal-exit": "^3.0.7"
@@ -13635,32 +13917,12 @@
"node": "^12.13.0 || ^14.15.0 || >=16.0.0"
}
},
- "node_modules/ws": {
- "version": "8.18.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz",
- "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==",
- "dev": true,
- "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/xdg-basedir": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
"integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -13669,22 +13931,8 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
"integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==",
- "dev": true
- },
- "node_modules/xml-name-validator": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
- "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
"dev": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/xmlchars": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
- "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
- "dev": true
+ "license": "MIT"
},
"node_modules/xtend": {
"version": "4.0.2",
@@ -13700,6 +13948,7 @@
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=10"
}
@@ -13708,13 +13957,30 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/yaml": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz",
+ "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==",
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/eemeli"
+ }
},
"node_modules/yargs": {
"version": "17.7.1",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
"integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -13733,6 +13999,7 @@
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -13742,6 +14009,7 @@
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
diff --git a/package.json b/package.json
index 2c217d6d2..db6bed660 100644
--- a/package.json
+++ b/package.json
@@ -28,17 +28,17 @@
"author": "Yadhav Jayaraman",
"license": "ISC",
"dependencies": {
- "@apidevtools/json-schema-ref-parser": "^12.0.2",
+ "@apidevtools/json-schema-ref-parser": "^14.2.1",
"@probot/adapter-aws-lambda-serverless": "^4.0.3",
"deepmerge": "^4.3.1",
"eta": "^3.5.0",
"js-yaml": "^4.1.0",
- "lodash": "^4.17.21",
- "minimatch": "^10.0.1",
- "node-cron": "^3.0.2",
+ "lodash": "^4.18.1",
+ "minimatch": "^10.2.1",
+ "node-cron": "^4.2.1",
"octokit": "^5.0.2",
- "probot": "^13.4.4",
- "proxy-from-env": "^1.1.0",
+ "probot": "^14.3.2",
+ "proxy-from-env": "^2.1.0",
"undici": "^7.7.0"
},
"devDependencies": {
@@ -58,7 +58,7 @@
"nock": "^14.0.1",
"nodemon": "^3.1.9",
"npm-run-all": "^4.1.5",
- "smee-client": "^4.3.1",
+ "smee-client": "^5.0.0",
"standard": "^17.1.2"
},
"standard": {
@@ -67,10 +67,13 @@
]
},
"engines": {
- "node": ">= 16.0.0"
+ "node": ">= 22.0.0"
},
"jest": {
"testEnvironment": "node",
+ "setupFilesAfterEnv": [
+ "/test/setup.js"
+ ],
"reporters": [
"default",
"jest-junit"
diff --git a/schema/dereferenced/repos.json b/schema/dereferenced/repos.json
new file mode 100644
index 000000000..59bf0a050
--- /dev/null
+++ b/schema/dereferenced/repos.json
@@ -0,0 +1,2845 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "title": "Safe-settings repo-level configuration",
+ "description": "Schema for .github/repos/{repo-name}.yml — repo-level safe-settings override configuration. Settings here are merged on top of org-level and suborg-level settings for the specific repository.",
+ "type": "object",
+ "properties": {
+ "repositories": {
+ "description": "Repository settings",
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the repository."
+ },
+ "description": {
+ "type": "string",
+ "description": "A short description of the repository."
+ },
+ "homepage": {
+ "type": "string",
+ "description": "A URL with more information about the repository."
+ },
+ "private": {
+ "type": "boolean",
+ "description": "Either `true` to make the repository private or `false` to make it public. Default: `false`. \n**Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private.",
+ "default": false
+ },
+ "visibility": {
+ "type": "string",
+ "description": "The visibility of the repository.",
+ "enum": [
+ "public",
+ "private"
+ ]
+ },
+ "security_and_analysis": {
+ "type": "object",
+ "description": "Specify which security and analysis features to enable or disable for the repository.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nFor example, to enable GitHub Advanced Security, use this data in the body of the `PATCH` request:\n`{ \"security_and_analysis\": {\"advanced_security\": { \"status\": \"enabled\" } } }`.\n\nYou can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request.",
+ "nullable": true,
+ "properties": {
+ "advanced_security": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable GitHub Advanced Security for this repository.\nFor more information, see \"[About GitHub Advanced\nSecurity](/github/getting-started-with-github/learning-about-github/about-github-advanced-security).\"\n\nFor standalone Code Scanning or Secret Protection products, this parameter cannot be used.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "code_security": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable GitHub Code Security for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning for this repository. For more information, see \"[About secret scanning](/code-security/secret-security/about-secret-scanning).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_push_protection": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning push protection for this repository. For more information, see \"[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_ai_detection": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning AI detection for this repository. For more information, see \"[Responsible detection of generic secrets with AI](https://docs.github.com/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/generic-secret-detection/responsible-ai-generic-secrets).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_non_provider_patterns": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning non-provider patterns for this repository. For more information, see \"[Supported secret scanning patterns](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_alert_dismissal": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning delegated alert dismissal for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_bypass": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning delegated bypass for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_bypass_options": {
+ "type": "object",
+ "description": "Feature options for secret scanning delegated bypass.\nThis object is only honored when `security_and_analysis.secret_scanning_delegated_bypass.status` is set to `enabled`.\nYou can send this object in the same request as `secret_scanning_delegated_bypass`, or update just the options in a separate request.",
+ "properties": {
+ "reviewers": {
+ "type": "array",
+ "description": "The bypass reviewers for secret scanning delegated bypass.\nIf you omit this field, the existing set of reviewers is unchanged.",
+ "items": {
+ "type": "object",
+ "required": [
+ "reviewer_id",
+ "reviewer_type"
+ ],
+ "properties": {
+ "reviewer_id": {
+ "type": "integer",
+ "description": "The ID of the team or role selected as a bypass reviewer"
+ },
+ "reviewer_type": {
+ "type": "string",
+ "description": "The type of the bypass reviewer",
+ "enum": [
+ "TEAM",
+ "ROLE"
+ ]
+ },
+ "mode": {
+ "type": "string",
+ "description": "The bypass mode for the reviewer",
+ "enum": [
+ "ALWAYS",
+ "EXEMPT"
+ ],
+ "default": "ALWAYS"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "has_issues": {
+ "type": "boolean",
+ "description": "Either `true` to enable issues for this repository or `false` to disable them.",
+ "default": true
+ },
+ "has_projects": {
+ "type": "boolean",
+ "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.",
+ "default": true
+ },
+ "has_wiki": {
+ "type": "boolean",
+ "description": "Either `true` to enable the wiki for this repository or `false` to disable it.",
+ "default": true
+ },
+ "has_pull_requests": {
+ "type": "boolean",
+ "description": "Either `true` to allow pull requests for this repository or `false` to prevent pull requests.",
+ "default": true
+ },
+ "pull_request_creation_policy": {
+ "type": "string",
+ "description": "The policy that controls who can create pull requests for this repository: `all` or `collaborators_only`.",
+ "enum": [
+ "all",
+ "collaborators_only"
+ ]
+ },
+ "is_template": {
+ "type": "boolean",
+ "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.",
+ "default": false
+ },
+ "default_branch": {
+ "type": "string",
+ "description": "Updates the default branch for this repository."
+ },
+ "allow_squash_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.",
+ "default": true
+ },
+ "allow_merge_commit": {
+ "type": "boolean",
+ "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.",
+ "default": true
+ },
+ "allow_rebase_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.",
+ "default": true
+ },
+ "allow_auto_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.",
+ "default": false
+ },
+ "delete_branch_on_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.",
+ "default": false
+ },
+ "allow_update_branch": {
+ "type": "boolean",
+ "description": "Either `true` to always allow a pull request head branch that is behind its base branch to be updated even if it is not required to be up to date before merging, or false otherwise.",
+ "default": false
+ },
+ "use_squash_pr_title_as_default": {
+ "type": "boolean",
+ "description": "Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property is closing down. Please use `squash_merge_commit_title` instead.",
+ "default": false,
+ "deprecated": true
+ },
+ "squash_merge_commit_title": {
+ "type": "string",
+ "enum": [
+ "PR_TITLE",
+ "COMMIT_OR_PR_TITLE"
+ ],
+ "description": "Required when using `squash_merge_commit_message`.\n\nThe default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."
+ },
+ "squash_merge_commit_message": {
+ "type": "string",
+ "enum": [
+ "PR_BODY",
+ "COMMIT_MESSAGES",
+ "BLANK"
+ ],
+ "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."
+ },
+ "merge_commit_title": {
+ "type": "string",
+ "enum": [
+ "PR_TITLE",
+ "MERGE_MESSAGE"
+ ],
+ "description": "Required when using `merge_commit_message`.\n\nThe default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."
+ },
+ "merge_commit_message": {
+ "type": "string",
+ "enum": [
+ "PR_BODY",
+ "PR_TITLE",
+ "BLANK"
+ ],
+ "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."
+ },
+ "archived": {
+ "type": "boolean",
+ "description": "Whether to archive this repository. `false` will unarchive a previously archived repository.",
+ "default": false
+ },
+ "allow_forking": {
+ "type": "boolean",
+ "description": "Either `true` to allow private forks, or `false` to prevent private forks.",
+ "default": false
+ },
+ "web_commit_signoff_required": {
+ "type": "boolean",
+ "description": "Either `true` to require contributors to sign off on web-based commits, or `false` to not require contributors to sign off on web-based commits.",
+ "default": false
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "auto_init": {
+ "description": "Create an initial commit with empty README. Keep this set to true in most cases since many of the policies below cannot be implemented on bare repos",
+ "type": "boolean"
+ },
+ "gitignore_template": {
+ "description": "Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, 'Haskell'.",
+ "type": "string"
+ },
+ "license_template": {
+ "description": "Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, 'mit' or 'mpl-2.0'.",
+ "type": "string"
+ },
+ "topics": {
+ "description": "A list of topics to set on the repository",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "security": {
+ "description": "Settings for Code security and analysis",
+ "type": "object",
+ "properties": {
+ "enableVulnerabilityAlerts": {
+ "type": "boolean"
+ },
+ "enableAutomatedSecurityFixes": {
+ "type": "boolean"
+ }
+ }
+ },
+ "force_create": {
+ "description": "If true, create the repository if it does not already exist.",
+ "type": "boolean"
+ },
+ "template": {
+ "description": "Name of a template repository to use when creating a new repository.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ },
+ "labels": {
+ "description": "Labels: define labels for Issues and Pull Requests",
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "color": {
+ "description": "The hexadecimal color code for the label. If including a `#`, make sure to wrap it with quotes!",
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "oldname": {
+ "description": "Include the old name to rename an existing label",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "exclude": {
+ "description": "Ignore any labels matching these regexes (don't delete them)",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "collaborators": {
+ "description": "Collaborators: give specific users access to any repository.",
+ "type": "array",
+ "items": {
+ "description": "A collaborator entry giving a specific user access to a repository.",
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "permission": {
+ "type": "string",
+ "description": "The permission to grant the collaborator. **Only valid on organization-owned repositories.** We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any.",
+ "default": "push"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "exclude": {
+ "description": "You can exclude a list of repos for this collaborator and all repos except these repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "You can include a list of repos for this collaborator and only those repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ }
+ },
+ "teams": {
+ "description": "Teams",
+ "type": "array",
+ "items": {
+ "description": "A team entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the team."
+ },
+ "description": {
+ "type": "string",
+ "description": "The description of the team."
+ },
+ "maintainers": {
+ "type": "array",
+ "description": "List GitHub usernames for organization members who will become team maintainers.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "repo_names": {
+ "type": "array",
+ "description": "The full name (e.g., \"organization-name/repository-name\") of repositories to add the team to.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "privacy": {
+ "type": "string",
+ "description": "The level of privacy this team should have. The options are: \n**For a non-nested team:** \n * `secret` - only visible to organization owners and members of this team. \n * `closed` - visible to all members of this organization. \nDefault: `secret` \n**For a parent or child team:** \n * `closed` - visible to all members of this organization. \nDefault for child team: `closed`",
+ "enum": [
+ "secret",
+ "closed"
+ ]
+ },
+ "notification_setting": {
+ "type": "string",
+ "description": "The notification setting the team has chosen. The options are: \n * `notifications_enabled` - team members receive notifications when the team is @mentioned. \n * `notifications_disabled` - no one receives notifications. \nDefault: `notifications_enabled`",
+ "enum": [
+ "notifications_enabled",
+ "notifications_disabled"
+ ]
+ },
+ "parent_team_id": {
+ "type": "integer",
+ "description": "The ID of a team to set as the parent team."
+ },
+ "parent_team_slug": {
+ "type": "string",
+ "description": "The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided."
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ },
+ "milestones": {
+ "description": "Milestones: define milestones for Issues and Pull Requests",
+ "type": "array",
+ "items": {
+ "description": "A milestone entry",
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "state": {
+ "description": "The state of the milestone. Either `open` or `closed`",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "branches": {
+ "description": "Branch protection rules",
+ "type": "array",
+ "items": {
+ "description": "A branch protection rule entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "If the name of the branch value is specified as `default`, then the app will create a branch protection rule to apply against the default branch in the repo",
+ "type": "string"
+ },
+ "protection": {
+ "type": "object",
+ "properties": {
+ "required_status_checks": {
+ "type": "object",
+ "description": "Require status checks to pass before merging. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "strict": {
+ "type": "boolean",
+ "description": "Require branches to be up to date before merging."
+ },
+ "contexts": {
+ "type": "array",
+ "deprecated": true,
+ "description": "**Closing down notice**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "checks": {
+ "type": "array",
+ "description": "The list of status checks to require in order to merge into this branch.",
+ "items": {
+ "type": "object",
+ "required": [
+ "context"
+ ],
+ "properties": {
+ "context": {
+ "type": "string",
+ "description": "The name of the required check"
+ },
+ "app_id": {
+ "type": "integer",
+ "description": "The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status."
+ }
+ }
+ }
+ }
+ },
+ "required": [
+ "strict",
+ "contexts"
+ ]
+ },
+ "enforce_admins": {
+ "type": "boolean",
+ "description": "Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable.",
+ "nullable": true
+ },
+ "required_pull_request_reviews": {
+ "type": "object",
+ "description": "Require at least one approving review on a pull request, before merging. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "dismissal_restrictions": {
+ "type": "object",
+ "description": "Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.",
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "dismiss_stale_reviews": {
+ "type": "boolean",
+ "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit."
+ },
+ "require_code_owner_reviews": {
+ "type": "boolean",
+ "description": "Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) review them."
+ },
+ "required_approving_review_count": {
+ "type": "integer",
+ "description": "Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers."
+ },
+ "require_last_push_approval": {
+ "type": "boolean",
+ "description": "Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false`.",
+ "default": false
+ },
+ "bypass_pull_request_allowances": {
+ "type": "object",
+ "description": "Allow specific users, teams, or apps to bypass pull request requirements.",
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "restrictions": {
+ "type": "object",
+ "description": "Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s with push access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s with push access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s with push access",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "users",
+ "teams"
+ ]
+ },
+ "required_linear_history": {
+ "type": "boolean",
+ "description": "Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see \"[Requiring a linear commit history](https://docs.github.com/github/administering-a-repository/requiring-a-linear-commit-history)\" in the GitHub Help documentation."
+ },
+ "allow_force_pushes": {
+ "type": "boolean",
+ "description": "Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation.\"",
+ "nullable": true
+ },
+ "allow_deletions": {
+ "type": "boolean",
+ "description": "Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation."
+ },
+ "block_creations": {
+ "type": "boolean",
+ "description": "If set to `true`, the `restrictions` branch protection settings which limits who can push will also block pushes which create new branches, unless the push is initiated by a user, team, or app which has the ability to push. Set to `true` to restrict new branch creation. Default: `false`."
+ },
+ "required_conversation_resolution": {
+ "type": "boolean",
+ "description": "Requires all conversations on code to be resolved before a pull request can be merged into a branch that matches this rule. Set to `false` to disable. Default: `false`."
+ },
+ "lock_branch": {
+ "type": "boolean",
+ "description": "Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. Default: `false`.",
+ "default": false
+ },
+ "allow_fork_syncing": {
+ "type": "boolean",
+ "description": "Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. Default: `false`.",
+ "default": false
+ }
+ },
+ "required": [
+ "required_status_checks",
+ "enforce_admins",
+ "required_pull_request_reviews",
+ "restrictions"
+ ]
+ }
+ }
+ }
+ },
+ "autolinks": {
+ "description": "Autolinks",
+ "type": "array",
+ "items": {
+ "description": "An autolink reference entry",
+ "type": "object",
+ "properties": {
+ "key_prefix": {
+ "type": "string",
+ "description": "This prefix appended by certain characters will generate a link any time it is found in an issue, pull request, or commit."
+ },
+ "url_template": {
+ "type": "string",
+ "description": "The URL must contain `` for the reference number. `` matches different characters depending on the value of `is_alphanumeric`."
+ },
+ "is_alphanumeric": {
+ "type": "boolean",
+ "default": true,
+ "description": "Whether this autolink reference matches alphanumeric characters. If true, the `` parameter of the `url_template` matches alphanumeric characters `A-Z` (case insensitive), `0-9`, and `-`. If false, this autolink reference only matches numeric characters."
+ }
+ },
+ "required": [
+ "key_prefix",
+ "url_template"
+ ]
+ }
+ },
+ "validator": {
+ "description": "Repository name validation",
+ "type": "object",
+ "properties": {
+ "pattern": {
+ "type": "string"
+ }
+ }
+ },
+ "environments": {
+ "description": "Deployment environments",
+ "type": "array",
+ "items": {
+ "description": "A deployment environment configuration entry",
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the deployment environment",
+ "type": "string"
+ },
+ "wait_timer": {
+ "description": "The amount of time to delay a job after the job is initially triggered (in minutes)",
+ "type": "integer"
+ },
+ "reviewers": {
+ "description": "The people or teams that may review jobs that reference the environment",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The type of reviewer (`User` or `Team`)",
+ "type": "string"
+ },
+ "id": {
+ "description": "The id of the user or team who can review the deployment",
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "deployment_branch_policy": {
+ "description": "The type of deployment branch policy for this environment",
+ "type": "object",
+ "properties": {
+ "protected_branches": {
+ "description": "Whether only protected branches can be deployed to this environment",
+ "type": "boolean"
+ },
+ "custom_branch_policies": {
+ "description": "Whether only branches that match the specified name patterns can deploy to this environment",
+ "type": "boolean"
+ }
+ }
+ },
+ "prevent_self_review": {
+ "description": "Whether or not a user who created the job is prevented from approving their own job",
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ "custom_properties": {
+ "description": "Custom properties",
+ "type": "array",
+ "items": {
+ "description": "A custom property entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "variables": {
+ "description": "Repository or org-level Actions variables",
+ "type": "array",
+ "items": {
+ "description": "An Actions variable entry",
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the variable",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the variable",
+ "type": "string"
+ },
+ "visibility": {
+ "description": "The visibility of the variable. Can be `all`, `private`, or `selected`",
+ "type": "string",
+ "enum": [
+ "all",
+ "private",
+ "selected"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "$defs": {
+ "RepositorySettings": {
+ "description": "Repository settings",
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the repository."
+ },
+ "description": {
+ "type": "string",
+ "description": "A short description of the repository."
+ },
+ "homepage": {
+ "type": "string",
+ "description": "A URL with more information about the repository."
+ },
+ "private": {
+ "type": "boolean",
+ "description": "Either `true` to make the repository private or `false` to make it public. Default: `false`. \n**Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private.",
+ "default": false
+ },
+ "visibility": {
+ "type": "string",
+ "description": "The visibility of the repository.",
+ "enum": [
+ "public",
+ "private"
+ ]
+ },
+ "security_and_analysis": {
+ "type": "object",
+ "description": "Specify which security and analysis features to enable or disable for the repository.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nFor example, to enable GitHub Advanced Security, use this data in the body of the `PATCH` request:\n`{ \"security_and_analysis\": {\"advanced_security\": { \"status\": \"enabled\" } } }`.\n\nYou can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request.",
+ "nullable": true,
+ "properties": {
+ "advanced_security": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable GitHub Advanced Security for this repository.\nFor more information, see \"[About GitHub Advanced\nSecurity](/github/getting-started-with-github/learning-about-github/about-github-advanced-security).\"\n\nFor standalone Code Scanning or Secret Protection products, this parameter cannot be used.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "code_security": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable GitHub Code Security for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning for this repository. For more information, see \"[About secret scanning](/code-security/secret-security/about-secret-scanning).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_push_protection": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning push protection for this repository. For more information, see \"[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_ai_detection": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning AI detection for this repository. For more information, see \"[Responsible detection of generic secrets with AI](https://docs.github.com/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/generic-secret-detection/responsible-ai-generic-secrets).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_non_provider_patterns": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning non-provider patterns for this repository. For more information, see \"[Supported secret scanning patterns](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_alert_dismissal": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning delegated alert dismissal for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_bypass": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning delegated bypass for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_bypass_options": {
+ "type": "object",
+ "description": "Feature options for secret scanning delegated bypass.\nThis object is only honored when `security_and_analysis.secret_scanning_delegated_bypass.status` is set to `enabled`.\nYou can send this object in the same request as `secret_scanning_delegated_bypass`, or update just the options in a separate request.",
+ "properties": {
+ "reviewers": {
+ "type": "array",
+ "description": "The bypass reviewers for secret scanning delegated bypass.\nIf you omit this field, the existing set of reviewers is unchanged.",
+ "items": {
+ "type": "object",
+ "required": [
+ "reviewer_id",
+ "reviewer_type"
+ ],
+ "properties": {
+ "reviewer_id": {
+ "type": "integer",
+ "description": "The ID of the team or role selected as a bypass reviewer"
+ },
+ "reviewer_type": {
+ "type": "string",
+ "description": "The type of the bypass reviewer",
+ "enum": [
+ "TEAM",
+ "ROLE"
+ ]
+ },
+ "mode": {
+ "type": "string",
+ "description": "The bypass mode for the reviewer",
+ "enum": [
+ "ALWAYS",
+ "EXEMPT"
+ ],
+ "default": "ALWAYS"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "has_issues": {
+ "type": "boolean",
+ "description": "Either `true` to enable issues for this repository or `false` to disable them.",
+ "default": true
+ },
+ "has_projects": {
+ "type": "boolean",
+ "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.",
+ "default": true
+ },
+ "has_wiki": {
+ "type": "boolean",
+ "description": "Either `true` to enable the wiki for this repository or `false` to disable it.",
+ "default": true
+ },
+ "has_pull_requests": {
+ "type": "boolean",
+ "description": "Either `true` to allow pull requests for this repository or `false` to prevent pull requests.",
+ "default": true
+ },
+ "pull_request_creation_policy": {
+ "type": "string",
+ "description": "The policy that controls who can create pull requests for this repository: `all` or `collaborators_only`.",
+ "enum": [
+ "all",
+ "collaborators_only"
+ ]
+ },
+ "is_template": {
+ "type": "boolean",
+ "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.",
+ "default": false
+ },
+ "default_branch": {
+ "type": "string",
+ "description": "Updates the default branch for this repository."
+ },
+ "allow_squash_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.",
+ "default": true
+ },
+ "allow_merge_commit": {
+ "type": "boolean",
+ "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.",
+ "default": true
+ },
+ "allow_rebase_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.",
+ "default": true
+ },
+ "allow_auto_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.",
+ "default": false
+ },
+ "delete_branch_on_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.",
+ "default": false
+ },
+ "allow_update_branch": {
+ "type": "boolean",
+ "description": "Either `true` to always allow a pull request head branch that is behind its base branch to be updated even if it is not required to be up to date before merging, or false otherwise.",
+ "default": false
+ },
+ "use_squash_pr_title_as_default": {
+ "type": "boolean",
+ "description": "Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property is closing down. Please use `squash_merge_commit_title` instead.",
+ "default": false,
+ "deprecated": true
+ },
+ "squash_merge_commit_title": {
+ "type": "string",
+ "enum": [
+ "PR_TITLE",
+ "COMMIT_OR_PR_TITLE"
+ ],
+ "description": "Required when using `squash_merge_commit_message`.\n\nThe default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."
+ },
+ "squash_merge_commit_message": {
+ "type": "string",
+ "enum": [
+ "PR_BODY",
+ "COMMIT_MESSAGES",
+ "BLANK"
+ ],
+ "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."
+ },
+ "merge_commit_title": {
+ "type": "string",
+ "enum": [
+ "PR_TITLE",
+ "MERGE_MESSAGE"
+ ],
+ "description": "Required when using `merge_commit_message`.\n\nThe default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."
+ },
+ "merge_commit_message": {
+ "type": "string",
+ "enum": [
+ "PR_BODY",
+ "PR_TITLE",
+ "BLANK"
+ ],
+ "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."
+ },
+ "archived": {
+ "type": "boolean",
+ "description": "Whether to archive this repository. `false` will unarchive a previously archived repository.",
+ "default": false
+ },
+ "allow_forking": {
+ "type": "boolean",
+ "description": "Either `true` to allow private forks, or `false` to prevent private forks.",
+ "default": false
+ },
+ "web_commit_signoff_required": {
+ "type": "boolean",
+ "description": "Either `true` to require contributors to sign off on web-based commits, or `false` to not require contributors to sign off on web-based commits.",
+ "default": false
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "auto_init": {
+ "description": "Create an initial commit with empty README. Keep this set to true in most cases since many of the policies below cannot be implemented on bare repos",
+ "type": "boolean"
+ },
+ "gitignore_template": {
+ "description": "Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, 'Haskell'.",
+ "type": "string"
+ },
+ "license_template": {
+ "description": "Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, 'mit' or 'mpl-2.0'.",
+ "type": "string"
+ },
+ "topics": {
+ "description": "A list of topics to set on the repository",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "security": {
+ "description": "Settings for Code security and analysis",
+ "type": "object",
+ "properties": {
+ "enableVulnerabilityAlerts": {
+ "type": "boolean"
+ },
+ "enableAutomatedSecurityFixes": {
+ "type": "boolean"
+ }
+ }
+ },
+ "force_create": {
+ "description": "If true, create the repository if it does not already exist.",
+ "type": "boolean"
+ },
+ "template": {
+ "description": "Name of a template repository to use when creating a new repository.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ },
+ "LabelSettings": {
+ "description": "Labels: define labels for Issues and Pull Requests",
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "color": {
+ "description": "The hexadecimal color code for the label. If including a `#`, make sure to wrap it with quotes!",
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "oldname": {
+ "description": "Include the old name to rename an existing label",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "exclude": {
+ "description": "Ignore any labels matching these regexes (don't delete them)",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "CollaboratorSettings": {
+ "description": "A collaborator entry giving a specific user access to a repository.",
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "permission": {
+ "type": "string",
+ "description": "The permission to grant the collaborator. **Only valid on organization-owned repositories.** We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any.",
+ "default": "push"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "exclude": {
+ "description": "You can exclude a list of repos for this collaborator and all repos except these repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "You can include a list of repos for this collaborator and only those repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "TeamSettings": {
+ "description": "A team entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the team."
+ },
+ "description": {
+ "type": "string",
+ "description": "The description of the team."
+ },
+ "maintainers": {
+ "type": "array",
+ "description": "List GitHub usernames for organization members who will become team maintainers.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "repo_names": {
+ "type": "array",
+ "description": "The full name (e.g., \"organization-name/repository-name\") of repositories to add the team to.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "privacy": {
+ "type": "string",
+ "description": "The level of privacy this team should have. The options are: \n**For a non-nested team:** \n * `secret` - only visible to organization owners and members of this team. \n * `closed` - visible to all members of this organization. \nDefault: `secret` \n**For a parent or child team:** \n * `closed` - visible to all members of this organization. \nDefault for child team: `closed`",
+ "enum": [
+ "secret",
+ "closed"
+ ]
+ },
+ "notification_setting": {
+ "type": "string",
+ "description": "The notification setting the team has chosen. The options are: \n * `notifications_enabled` - team members receive notifications when the team is @mentioned. \n * `notifications_disabled` - no one receives notifications. \nDefault: `notifications_enabled`",
+ "enum": [
+ "notifications_enabled",
+ "notifications_disabled"
+ ]
+ },
+ "parent_team_id": {
+ "type": "integer",
+ "description": "The ID of a team to set as the parent team."
+ },
+ "parent_team_slug": {
+ "type": "string",
+ "description": "The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided."
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "MilestoneSettings": {
+ "description": "A milestone entry",
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "state": {
+ "description": "The state of the milestone. Either `open` or `closed`",
+ "type": "string"
+ }
+ }
+ },
+ "BranchSettings": {
+ "description": "A branch protection rule entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "If the name of the branch value is specified as `default`, then the app will create a branch protection rule to apply against the default branch in the repo",
+ "type": "string"
+ },
+ "protection": {
+ "type": "object",
+ "properties": {
+ "required_status_checks": {
+ "type": "object",
+ "description": "Require status checks to pass before merging. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "strict": {
+ "type": "boolean",
+ "description": "Require branches to be up to date before merging."
+ },
+ "contexts": {
+ "type": "array",
+ "deprecated": true,
+ "description": "**Closing down notice**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "checks": {
+ "type": "array",
+ "description": "The list of status checks to require in order to merge into this branch.",
+ "items": {
+ "type": "object",
+ "required": [
+ "context"
+ ],
+ "properties": {
+ "context": {
+ "type": "string",
+ "description": "The name of the required check"
+ },
+ "app_id": {
+ "type": "integer",
+ "description": "The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status."
+ }
+ }
+ }
+ }
+ },
+ "required": [
+ "strict",
+ "contexts"
+ ]
+ },
+ "enforce_admins": {
+ "type": "boolean",
+ "description": "Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable.",
+ "nullable": true
+ },
+ "required_pull_request_reviews": {
+ "type": "object",
+ "description": "Require at least one approving review on a pull request, before merging. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "dismissal_restrictions": {
+ "type": "object",
+ "description": "Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.",
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "dismiss_stale_reviews": {
+ "type": "boolean",
+ "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit."
+ },
+ "require_code_owner_reviews": {
+ "type": "boolean",
+ "description": "Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) review them."
+ },
+ "required_approving_review_count": {
+ "type": "integer",
+ "description": "Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers."
+ },
+ "require_last_push_approval": {
+ "type": "boolean",
+ "description": "Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false`.",
+ "default": false
+ },
+ "bypass_pull_request_allowances": {
+ "type": "object",
+ "description": "Allow specific users, teams, or apps to bypass pull request requirements.",
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "restrictions": {
+ "type": "object",
+ "description": "Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s with push access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s with push access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s with push access",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "users",
+ "teams"
+ ]
+ },
+ "required_linear_history": {
+ "type": "boolean",
+ "description": "Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see \"[Requiring a linear commit history](https://docs.github.com/github/administering-a-repository/requiring-a-linear-commit-history)\" in the GitHub Help documentation."
+ },
+ "allow_force_pushes": {
+ "type": "boolean",
+ "description": "Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation.\"",
+ "nullable": true
+ },
+ "allow_deletions": {
+ "type": "boolean",
+ "description": "Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation."
+ },
+ "block_creations": {
+ "type": "boolean",
+ "description": "If set to `true`, the `restrictions` branch protection settings which limits who can push will also block pushes which create new branches, unless the push is initiated by a user, team, or app which has the ability to push. Set to `true` to restrict new branch creation. Default: `false`."
+ },
+ "required_conversation_resolution": {
+ "type": "boolean",
+ "description": "Requires all conversations on code to be resolved before a pull request can be merged into a branch that matches this rule. Set to `false` to disable. Default: `false`."
+ },
+ "lock_branch": {
+ "type": "boolean",
+ "description": "Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. Default: `false`.",
+ "default": false
+ },
+ "allow_fork_syncing": {
+ "type": "boolean",
+ "description": "Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. Default: `false`.",
+ "default": false
+ }
+ },
+ "required": [
+ "required_status_checks",
+ "enforce_admins",
+ "required_pull_request_reviews",
+ "restrictions"
+ ]
+ }
+ }
+ },
+ "AutolinkSettings": {
+ "description": "An autolink reference entry",
+ "type": "object",
+ "properties": {
+ "key_prefix": {
+ "type": "string",
+ "description": "This prefix appended by certain characters will generate a link any time it is found in an issue, pull request, or commit."
+ },
+ "url_template": {
+ "type": "string",
+ "description": "The URL must contain `` for the reference number. `` matches different characters depending on the value of `is_alphanumeric`."
+ },
+ "is_alphanumeric": {
+ "type": "boolean",
+ "default": true,
+ "description": "Whether this autolink reference matches alphanumeric characters. If true, the `` parameter of the `url_template` matches alphanumeric characters `A-Z` (case insensitive), `0-9`, and `-`. If false, this autolink reference only matches numeric characters."
+ }
+ },
+ "required": [
+ "key_prefix",
+ "url_template"
+ ]
+ },
+ "ValidatorSettings": {
+ "description": "Repository name validation",
+ "type": "object",
+ "properties": {
+ "pattern": {
+ "type": "string"
+ }
+ }
+ },
+ "RulesetSettings": {
+ "description": "A ruleset entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the ruleset."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the ruleset",
+ "enum": [
+ "branch",
+ "tag",
+ "push",
+ "repository"
+ ],
+ "default": "branch"
+ },
+ "enforcement": {
+ "type": "string",
+ "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise).",
+ "enum": [
+ "disabled",
+ "active",
+ "evaluate"
+ ]
+ },
+ "bypass_actors": {
+ "type": "array",
+ "description": "The actors that can bypass the rules in this ruleset",
+ "items": {
+ "title": "Repository Ruleset Bypass Actor",
+ "type": "object",
+ "description": "An actor that can bypass rules in a ruleset",
+ "required": [
+ "actor_type"
+ ],
+ "properties": {
+ "actor_id": {
+ "type": "integer",
+ "nullable": true,
+ "description": "The ID of the actor that can bypass a ruleset. Required for `Integration`, `RepositoryRole`, `Team`, and `User` actor types. If `actor_type` is `OrganizationAdmin`, `actor_id` is ignored. If `actor_type` is `DeployKey`, this should be null. `OrganizationAdmin` is not applicable for personal repositories."
+ },
+ "actor_type": {
+ "type": "string",
+ "enum": [
+ "Integration",
+ "OrganizationAdmin",
+ "RepositoryRole",
+ "Team",
+ "DeployKey",
+ "User"
+ ],
+ "description": "The type of actor that can bypass a ruleset."
+ },
+ "bypass_mode": {
+ "type": "string",
+ "description": "When the specified actor can bypass the ruleset. `pull_request` means that an actor can only bypass rules on pull requests. `pull_request` is not applicable for the `DeployKey` actor type. Also, `pull_request` is only applicable to branch rulesets. When `bypass_mode` is `exempt`, rules will not be run for that actor and a bypass audit entry will not be created.",
+ "enum": [
+ "always",
+ "pull_request",
+ "exempt"
+ ],
+ "default": "always"
+ },
+ "name": {
+ "type": "string",
+ "description": "Human-friendly alternative to `actor_id`. The team slug, username, GitHub App slug, or repository role name (resolved using `actor_type`). Cannot be combined with `actor_id`."
+ }
+ }
+ }
+ },
+ "conditions": {
+ "title": "Organization ruleset conditions",
+ "type": "object",
+ "description": "Conditions for an organization ruleset.\nThe branch and tag rulesets conditions object should contain both `repository_name` and `ref_name` properties, or both `repository_id` and `ref_name` properties, or both `repository_property` and `ref_name` properties.\nThe push rulesets conditions object does not require the `ref_name` property.\nFor repository policy rulesets, the conditions object should only contain the `repository_name`, the `repository_id`, or the `repository_property`.",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "repository_name_and_ref_name",
+ "description": "Conditions to target repositories by name and refs by name",
+ "allOf": [
+ {
+ "title": "Repository ruleset conditions for ref names",
+ "type": "object",
+ "description": "Parameters for a repository ruleset ref name condition",
+ "properties": {
+ "ref_name": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Repository ruleset conditions for repository names",
+ "type": "object",
+ "description": "Parameters for a repository name condition",
+ "properties": {
+ "repository_name": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~ALL` to include all repositories.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "protected": {
+ "type": "boolean",
+ "description": "Whether renaming of target repositories is prevented."
+ }
+ }
+ }
+ },
+ "required": [
+ "repository_name"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "object",
+ "title": "repository_id_and_ref_name",
+ "description": "Conditions to target repositories by id and refs by name",
+ "allOf": [
+ {
+ "title": "Repository ruleset conditions for ref names",
+ "type": "object",
+ "description": "Parameters for a repository ruleset ref name condition",
+ "properties": {
+ "ref_name": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Repository ruleset conditions for repository IDs",
+ "type": "object",
+ "description": "Parameters for a repository ID condition",
+ "properties": {
+ "repository_id": {
+ "type": "object",
+ "properties": {
+ "repository_ids": {
+ "type": "array",
+ "description": "The repository IDs that the ruleset applies to. One of these IDs must match for the condition to pass.",
+ "items": {
+ "type": "integer"
+ }
+ }
+ }
+ }
+ },
+ "required": [
+ "repository_id"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "object",
+ "title": "repository_property_and_ref_name",
+ "description": "Conditions to target repositories by property and refs by name",
+ "allOf": [
+ {
+ "title": "Repository ruleset conditions for ref names",
+ "type": "object",
+ "description": "Parameters for a repository ruleset ref name condition",
+ "properties": {
+ "ref_name": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Repository ruleset conditions for repository properties",
+ "type": "object",
+ "description": "Parameters for a repository property condition",
+ "properties": {
+ "repository_property": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "The repository properties and values to include. All of these properties must match for the condition to pass.",
+ "items": {
+ "title": "Repository ruleset property targeting definition",
+ "type": "object",
+ "description": "Parameters for a targeting a repository property",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the repository property to target"
+ },
+ "property_values": {
+ "type": "array",
+ "description": "The values to match for the repository property",
+ "items": {
+ "type": "string"
+ }
+ },
+ "source": {
+ "type": "string",
+ "description": "The source of the repository property. Defaults to 'custom' if not specified.",
+ "enum": [
+ "custom",
+ "system"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "property_values"
+ ]
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "The repository properties and values to exclude. The condition will not pass if any of these properties match.",
+ "items": {
+ "title": "Repository ruleset property targeting definition",
+ "type": "object",
+ "description": "Parameters for a targeting a repository property",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the repository property to target"
+ },
+ "property_values": {
+ "type": "array",
+ "description": "The values to match for the repository property",
+ "items": {
+ "type": "string"
+ }
+ },
+ "source": {
+ "type": "string",
+ "description": "The source of the repository property. Defaults to 'custom' if not specified.",
+ "enum": [
+ "custom",
+ "system"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "property_values"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "required": [
+ "repository_property"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "rules": {
+ "type": "array",
+ "description": "An array of rules within the ruleset.",
+ "items": {
+ "title": "Repository Rule",
+ "type": "object",
+ "description": "A repository rule.",
+ "oneOf": [
+ {
+ "title": "creation",
+ "description": "Only allow users with bypass permission to create matching refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "creation"
+ ]
+ }
+ }
+ },
+ {
+ "title": "update",
+ "description": "Only allow users with bypass permission to update matching refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "update"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "update_allows_fetch_and_merge": {
+ "type": "boolean",
+ "description": "Branch can pull changes from its upstream repository"
+ }
+ },
+ "required": [
+ "update_allows_fetch_and_merge"
+ ]
+ }
+ }
+ },
+ {
+ "title": "deletion",
+ "description": "Only allow users with bypass permissions to delete matching refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "deletion"
+ ]
+ }
+ }
+ },
+ {
+ "title": "required_linear_history",
+ "description": "Prevent merge commits from being pushed to matching refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "required_linear_history"
+ ]
+ }
+ }
+ },
+ {
+ "title": "required_deployments",
+ "description": "Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "required_deployments"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "required_deployment_environments": {
+ "type": "array",
+ "description": "The environments that must be successfully deployed to before branches can be merged.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "required_deployment_environments"
+ ]
+ }
+ }
+ },
+ {
+ "title": "required_signatures",
+ "description": "Commits pushed to matching refs must have verified signatures.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "required_signatures"
+ ]
+ }
+ }
+ },
+ {
+ "title": "pull_request",
+ "description": "Require all commits be made to a non-target branch and submitted via a pull request before they can be merged.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "pull_request"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "allowed_merge_methods": {
+ "type": "array",
+ "description": "Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled.",
+ "items": {
+ "type": "string",
+ "enum": [
+ "merge",
+ "squash",
+ "rebase"
+ ]
+ }
+ },
+ "dismiss_stale_reviews_on_push": {
+ "type": "boolean",
+ "description": "New, reviewable commits pushed will dismiss previous pull request review approvals."
+ },
+ "dismissal_restriction": {
+ "title": "DismissalRestriction",
+ "description": "Specify people, teams, or apps allowed to dismiss pull request reviews.",
+ "type": "object",
+ "properties": {
+ "allowed_actors": {
+ "type": "array",
+ "description": "Specify people, teams, or apps allowed to dismiss pull request reviews.",
+ "items": {
+ "title": "Actor",
+ "description": "An actor allowed to dismiss pull request reviews",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "description": "ID of the actor that can dismiss reviews."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of the actor",
+ "enum": [
+ "User",
+ "Team",
+ "IntegrationInstallation",
+ "RepositoryRole"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ]
+ }
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether to restrict review dismissal to specific actors."
+ }
+ },
+ "required": [
+ "enabled"
+ ]
+ },
+ "require_code_owner_review": {
+ "type": "boolean",
+ "description": "Require an approving review in pull requests that modify files that have a designated code owner."
+ },
+ "require_last_push_approval": {
+ "type": "boolean",
+ "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it."
+ },
+ "required_approving_review_count": {
+ "type": "integer",
+ "description": "The number of approving reviews that are required before a pull request can be merged.",
+ "minimum": 0,
+ "maximum": 10
+ },
+ "required_review_thread_resolution": {
+ "type": "boolean",
+ "description": "All conversations on code must be resolved before a pull request can be merged."
+ },
+ "required_reviewers": {
+ "type": "array",
+ "description": "> [!NOTE]\n> `required_reviewers` is in beta and subject to change.\n\nA collection of reviewers and associated file patterns. Each reviewer has a list of file patterns which determine the files that reviewer is required to review.",
+ "items": {
+ "title": "RequiredReviewerConfiguration",
+ "description": "A reviewing team, and file patterns describing which files they must approve changes to.",
+ "type": "object",
+ "properties": {
+ "file_patterns": {
+ "type": "array",
+ "description": "Array of file patterns. Pull requests which change matching files must be approved by the specified team. File patterns use fnmatch syntax.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "minimum_approvals": {
+ "type": "integer",
+ "description": "Minimum number of approvals required from the specified team. If set to zero, the team will be added to the pull request but approval is optional."
+ },
+ "reviewer": {
+ "title": "Reviewer",
+ "description": "A required reviewing team",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "description": "ID of the reviewer which must review changes to matching files."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of the reviewer",
+ "enum": [
+ "Team"
+ ]
+ },
+ "slug": {
+ "type": "string",
+ "description": "Human-friendly alternative to `id`. The slug of the team that must review changes to matching files. Cannot be combined with `id`."
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ },
+ "required": [
+ "file_patterns",
+ "minimum_approvals",
+ "reviewer"
+ ]
+ }
+ }
+ },
+ "required": [
+ "dismiss_stale_reviews_on_push",
+ "require_code_owner_review",
+ "require_last_push_approval",
+ "required_approving_review_count",
+ "required_review_thread_resolution"
+ ]
+ }
+ }
+ },
+ {
+ "title": "required_status_checks",
+ "description": "Choose which status checks must pass before the ref is updated. When enabled, commits must first be pushed to another ref where the checks pass.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "required_status_checks"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "do_not_enforce_on_create": {
+ "type": "boolean",
+ "description": "Allow repositories and branches to be created if a check would otherwise prohibit it."
+ },
+ "required_status_checks": {
+ "type": "array",
+ "description": "Status checks that are required.",
+ "items": {
+ "title": "StatusCheckConfiguration",
+ "description": "Required status check",
+ "type": "object",
+ "properties": {
+ "context": {
+ "type": "string",
+ "description": "The status check context name that must be present on the commit."
+ },
+ "integration_id": {
+ "type": "integer",
+ "description": "The optional integration ID that this status check must originate from."
+ }
+ },
+ "required": [
+ "context"
+ ]
+ }
+ },
+ "strict_required_status_checks_policy": {
+ "type": "boolean",
+ "description": "Whether pull requests targeting a matching branch must be tested with the latest code. This setting will not take effect unless at least one status check is enabled."
+ }
+ },
+ "required": [
+ "required_status_checks",
+ "strict_required_status_checks_policy"
+ ]
+ }
+ }
+ },
+ {
+ "title": "non_fast_forward",
+ "description": "Prevent users with push access from force pushing to refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "non_fast_forward"
+ ]
+ }
+ }
+ },
+ {
+ "title": "commit_message_pattern",
+ "description": "Parameters to be used for the commit_message_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "commit_message_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "commit_author_email_pattern",
+ "description": "Parameters to be used for the commit_author_email_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "commit_author_email_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "committer_email_pattern",
+ "description": "Parameters to be used for the committer_email_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "committer_email_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "branch_name_pattern",
+ "description": "Parameters to be used for the branch_name_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "branch_name_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "tag_name_pattern",
+ "description": "Parameters to be used for the tag_name_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "tag_name_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "file_path_restriction",
+ "description": "Prevent commits that include changes in specified file and folder paths from being pushed to the commit graph. This includes absolute paths that contain file names.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "file_path_restriction"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "restricted_file_paths": {
+ "type": "array",
+ "description": "The file paths that are restricted from being pushed to the commit graph.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "restricted_file_paths"
+ ]
+ }
+ }
+ },
+ {
+ "title": "max_file_path_length",
+ "description": "Prevent commits that include file paths that exceed the specified character limit from being pushed to the commit graph.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "max_file_path_length"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "max_file_path_length": {
+ "type": "integer",
+ "description": "The maximum amount of characters allowed in file paths.",
+ "minimum": 1,
+ "maximum": 32767
+ }
+ },
+ "required": [
+ "max_file_path_length"
+ ]
+ }
+ }
+ },
+ {
+ "title": "file_extension_restriction",
+ "description": "Prevent commits that include files with specified file extensions from being pushed to the commit graph.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "file_extension_restriction"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "restricted_file_extensions": {
+ "type": "array",
+ "description": "The file extensions that are restricted from being pushed to the commit graph.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "restricted_file_extensions"
+ ]
+ }
+ }
+ },
+ {
+ "title": "max_file_size",
+ "description": "Prevent commits with individual files that exceed the specified limit from being pushed to the commit graph.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "max_file_size"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "max_file_size": {
+ "type": "integer",
+ "description": "The maximum file size allowed in megabytes. This limit does not apply to Git Large File Storage (Git LFS).",
+ "minimum": 1,
+ "maximum": 100
+ }
+ },
+ "required": [
+ "max_file_size"
+ ]
+ }
+ }
+ },
+ {
+ "title": "workflows",
+ "description": "Require all changes made to a targeted branch to pass the specified workflows before they can be merged.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "workflows"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "do_not_enforce_on_create": {
+ "type": "boolean",
+ "description": "Allow repositories and branches to be created if a check would otherwise prohibit it."
+ },
+ "workflows": {
+ "type": "array",
+ "description": "Workflows that must pass for this rule to pass.",
+ "items": {
+ "title": "WorkflowFileReference",
+ "description": "A workflow that must run for this rule to pass",
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "The path to the workflow file"
+ },
+ "ref": {
+ "type": "string",
+ "description": "The ref (branch or tag) of the workflow file to use"
+ },
+ "repository_id": {
+ "type": "integer",
+ "description": "The ID of the repository where the workflow is defined"
+ },
+ "sha": {
+ "type": "string",
+ "description": "The commit SHA of the workflow file to use"
+ }
+ },
+ "required": [
+ "path",
+ "repository_id"
+ ]
+ }
+ }
+ },
+ "required": [
+ "workflows"
+ ]
+ }
+ }
+ },
+ {
+ "title": "code_scanning",
+ "description": "Choose which tools must provide code scanning results before the reference is updated. When configured, code scanning must be enabled and have results for both the commit and the reference being updated.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "code_scanning"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "code_scanning_tools": {
+ "type": "array",
+ "description": "Tools that must provide code scanning results for this rule to pass.",
+ "items": {
+ "title": "CodeScanningTool",
+ "description": "A tool that must provide code scanning results for this rule to pass.",
+ "type": "object",
+ "properties": {
+ "alerts_threshold": {
+ "type": "string",
+ "description": "The severity level at which code scanning results that raise alerts block a reference update. For more information on alert severity levels, see \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels).\"",
+ "enum": [
+ "none",
+ "errors",
+ "errors_and_warnings",
+ "all"
+ ]
+ },
+ "security_alerts_threshold": {
+ "type": "string",
+ "description": "The severity level at which code scanning results that raise security alerts block a reference update. For more information on security severity levels, see \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels).\"",
+ "enum": [
+ "none",
+ "critical",
+ "high_or_higher",
+ "medium_or_higher",
+ "all"
+ ]
+ },
+ "tool": {
+ "type": "string",
+ "description": "The name of a code scanning tool"
+ }
+ },
+ "required": [
+ "alerts_threshold",
+ "security_alerts_threshold",
+ "tool"
+ ]
+ }
+ }
+ },
+ "required": [
+ "code_scanning_tools"
+ ]
+ }
+ }
+ },
+ {
+ "title": "copilot_code_review",
+ "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "copilot_code_review"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "review_draft_pull_requests": {
+ "type": "boolean",
+ "description": "Copilot automatically reviews draft pull requests before they are marked as ready for review."
+ },
+ "review_on_push": {
+ "type": "boolean",
+ "description": "Copilot automatically reviews each new push to the pull request."
+ }
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "name",
+ "enforcement"
+ ]
+ },
+ "EnvironmentsSettings": {
+ "description": "A deployment environment configuration entry",
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the deployment environment",
+ "type": "string"
+ },
+ "wait_timer": {
+ "description": "The amount of time to delay a job after the job is initially triggered (in minutes)",
+ "type": "integer"
+ },
+ "reviewers": {
+ "description": "The people or teams that may review jobs that reference the environment",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The type of reviewer (`User` or `Team`)",
+ "type": "string"
+ },
+ "id": {
+ "description": "The id of the user or team who can review the deployment",
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "deployment_branch_policy": {
+ "description": "The type of deployment branch policy for this environment",
+ "type": "object",
+ "properties": {
+ "protected_branches": {
+ "description": "Whether only protected branches can be deployed to this environment",
+ "type": "boolean"
+ },
+ "custom_branch_policies": {
+ "description": "Whether only branches that match the specified name patterns can deploy to this environment",
+ "type": "boolean"
+ }
+ }
+ },
+ "prevent_self_review": {
+ "description": "Whether or not a user who created the job is prevented from approving their own job",
+ "type": "boolean"
+ }
+ }
+ },
+ "CustomPropertiesSettings": {
+ "description": "A custom property entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ },
+ "VariablesSettings": {
+ "description": "An Actions variable entry",
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the variable",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the variable",
+ "type": "string"
+ },
+ "visibility": {
+ "description": "The visibility of the variable. Can be `all`, `private`, or `selected`",
+ "type": "string",
+ "enum": [
+ "all",
+ "private",
+ "selected"
+ ]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/schema/dereferenced/settings.json b/schema/dereferenced/settings.json
index fd500ae60..4beccd3b5 100644
--- a/schema/dereferenced/settings.json
+++ b/schema/dereferenced/settings.json
@@ -1,8 +1,11 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
+ "title": "Safe-settings org-level configuration",
+ "description": "Schema for .github/settings.yml — org-level safe-settings configuration",
"type": "object",
"properties": {
"repositories": {
+ "description": "Repository settings",
"allOf": [
{
"type": "object",
@@ -316,6 +319,14 @@
"type": "boolean"
}
}
+ },
+ "force_create": {
+ "description": "Force create the repository",
+ "type": "boolean"
+ },
+ "template": {
+ "description": "Name of a template repository to use when creating the repository",
+ "type": "string"
}
}
}
@@ -356,29 +367,11 @@
}
}
},
- "milestones": {
- "description": "Milestones: define milestones for Issues and Pull Requests",
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "state": {
- "description": "The state of the milestone. Either `open` or `closed`",
- "type": "string"
- }
- }
- }
- },
"collaborators": {
"description": "Collaborators: give specific users access to any repository.",
"type": "array",
"items": {
+ "description": "A collaborator entry giving a specific user access to a repository.",
"allOf": [
{
"type": "object",
@@ -419,6 +412,7 @@
"description": "Teams",
"type": "array",
"items": {
+ "description": "A team entry",
"allOf": [
{
"type": "object",
@@ -470,10 +464,32 @@
]
}
},
+ "milestones": {
+ "description": "Milestones: define milestones for Issues and Pull Requests",
+ "type": "array",
+ "items": {
+ "description": "A milestone entry",
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "state": {
+ "description": "The state of the milestone. Either `open` or `closed`",
+ "type": "string"
+ }
+ }
+ }
+ },
"branches": {
"description": "Branch protection rules",
"type": "array",
"items": {
+ "description": "A branch protection rule entry",
+ "type": "object",
"properties": {
"name": {
"description": "If the name of the branch value is specified as `default`, then the app will create a branch protection rule to apply against the default branch in the repo",
@@ -682,25 +698,11 @@
}
}
},
- "custom_properties": {
- "description": "Custom properties",
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "value": {
- "type": "string"
- }
- }
- }
- },
"autolinks": {
"description": "Autolinks",
"type": "array",
"items": {
+ "description": "An autolink reference entry",
"type": "object",
"properties": {
"key_prefix": {
@@ -733,9 +735,10 @@
}
},
"rulesets": {
- "description": "Rulesets",
+ "description": "Rulesets. Org-level only — rulesets defined here apply to the organization and are NOT inherited by suborg or repo override files.",
"type": "array",
"items": {
+ "description": "A ruleset entry",
"type": "object",
"properties": {
"name": {
@@ -1930,6 +1933,2107 @@
]
}
},
+ "environments": {
+ "description": "Deployment environments",
+ "type": "array",
+ "items": {
+ "description": "A deployment environment configuration entry",
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the deployment environment",
+ "type": "string"
+ },
+ "wait_timer": {
+ "description": "The amount of time to delay a job after the job is initially triggered (in minutes)",
+ "type": "integer"
+ },
+ "reviewers": {
+ "description": "The people or teams that may review jobs that reference the environment",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The type of reviewer (`User` or `Team`)",
+ "type": "string"
+ },
+ "id": {
+ "description": "The id of the user or team who can review the deployment",
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "deployment_branch_policy": {
+ "description": "The type of deployment branch policy for this environment",
+ "type": "object",
+ "properties": {
+ "protected_branches": {
+ "description": "Whether only protected branches can be deployed to this environment",
+ "type": "boolean"
+ },
+ "custom_branch_policies": {
+ "description": "Whether only branches that match the specified name patterns can deploy to this environment",
+ "type": "boolean"
+ }
+ }
+ },
+ "prevent_self_review": {
+ "description": "Whether or not a user who created the job is prevented from approving their own job",
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ "custom_properties": {
+ "description": "Custom properties",
+ "type": "array",
+ "items": {
+ "description": "A custom property entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "variables": {
+ "description": "Repository or org-level Actions variables",
+ "type": "array",
+ "items": {
+ "description": "An Actions variable entry",
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the variable",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the variable",
+ "type": "string"
+ },
+ "visibility": {
+ "description": "The visibility of the variable. Can be `all`, `private`, or `selected`",
+ "type": "string",
+ "enum": [
+ "all",
+ "private",
+ "selected"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "$defs": {
+ "RepositorySettings": {
+ "description": "Repository settings",
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the repository."
+ },
+ "description": {
+ "type": "string",
+ "description": "A short description of the repository."
+ },
+ "homepage": {
+ "type": "string",
+ "description": "A URL with more information about the repository."
+ },
+ "private": {
+ "type": "boolean",
+ "description": "Either `true` to make the repository private or `false` to make it public. Default: `false`. \n**Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private.",
+ "default": false
+ },
+ "visibility": {
+ "type": "string",
+ "description": "The visibility of the repository.",
+ "enum": [
+ "public",
+ "private"
+ ]
+ },
+ "security_and_analysis": {
+ "type": "object",
+ "description": "Specify which security and analysis features to enable or disable for the repository.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nFor example, to enable GitHub Advanced Security, use this data in the body of the `PATCH` request:\n`{ \"security_and_analysis\": {\"advanced_security\": { \"status\": \"enabled\" } } }`.\n\nYou can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request.",
+ "nullable": true,
+ "properties": {
+ "advanced_security": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable GitHub Advanced Security for this repository.\nFor more information, see \"[About GitHub Advanced\nSecurity](/github/getting-started-with-github/learning-about-github/about-github-advanced-security).\"\n\nFor standalone Code Scanning or Secret Protection products, this parameter cannot be used.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "code_security": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable GitHub Code Security for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning for this repository. For more information, see \"[About secret scanning](/code-security/secret-security/about-secret-scanning).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_push_protection": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning push protection for this repository. For more information, see \"[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_ai_detection": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning AI detection for this repository. For more information, see \"[Responsible detection of generic secrets with AI](https://docs.github.com/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/generic-secret-detection/responsible-ai-generic-secrets).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_non_provider_patterns": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning non-provider patterns for this repository. For more information, see \"[Supported secret scanning patterns](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_alert_dismissal": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning delegated alert dismissal for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_bypass": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning delegated bypass for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_bypass_options": {
+ "type": "object",
+ "description": "Feature options for secret scanning delegated bypass.\nThis object is only honored when `security_and_analysis.secret_scanning_delegated_bypass.status` is set to `enabled`.\nYou can send this object in the same request as `secret_scanning_delegated_bypass`, or update just the options in a separate request.",
+ "properties": {
+ "reviewers": {
+ "type": "array",
+ "description": "The bypass reviewers for secret scanning delegated bypass.\nIf you omit this field, the existing set of reviewers is unchanged.",
+ "items": {
+ "type": "object",
+ "required": [
+ "reviewer_id",
+ "reviewer_type"
+ ],
+ "properties": {
+ "reviewer_id": {
+ "type": "integer",
+ "description": "The ID of the team or role selected as a bypass reviewer"
+ },
+ "reviewer_type": {
+ "type": "string",
+ "description": "The type of the bypass reviewer",
+ "enum": [
+ "TEAM",
+ "ROLE"
+ ]
+ },
+ "mode": {
+ "type": "string",
+ "description": "The bypass mode for the reviewer",
+ "enum": [
+ "ALWAYS",
+ "EXEMPT"
+ ],
+ "default": "ALWAYS"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "has_issues": {
+ "type": "boolean",
+ "description": "Either `true` to enable issues for this repository or `false` to disable them.",
+ "default": true
+ },
+ "has_projects": {
+ "type": "boolean",
+ "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.",
+ "default": true
+ },
+ "has_wiki": {
+ "type": "boolean",
+ "description": "Either `true` to enable the wiki for this repository or `false` to disable it.",
+ "default": true
+ },
+ "has_pull_requests": {
+ "type": "boolean",
+ "description": "Either `true` to allow pull requests for this repository or `false` to prevent pull requests.",
+ "default": true
+ },
+ "pull_request_creation_policy": {
+ "type": "string",
+ "description": "The policy that controls who can create pull requests for this repository: `all` or `collaborators_only`.",
+ "enum": [
+ "all",
+ "collaborators_only"
+ ]
+ },
+ "is_template": {
+ "type": "boolean",
+ "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.",
+ "default": false
+ },
+ "default_branch": {
+ "type": "string",
+ "description": "Updates the default branch for this repository."
+ },
+ "allow_squash_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.",
+ "default": true
+ },
+ "allow_merge_commit": {
+ "type": "boolean",
+ "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.",
+ "default": true
+ },
+ "allow_rebase_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.",
+ "default": true
+ },
+ "allow_auto_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.",
+ "default": false
+ },
+ "delete_branch_on_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.",
+ "default": false
+ },
+ "allow_update_branch": {
+ "type": "boolean",
+ "description": "Either `true` to always allow a pull request head branch that is behind its base branch to be updated even if it is not required to be up to date before merging, or false otherwise.",
+ "default": false
+ },
+ "use_squash_pr_title_as_default": {
+ "type": "boolean",
+ "description": "Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property is closing down. Please use `squash_merge_commit_title` instead.",
+ "default": false,
+ "deprecated": true
+ },
+ "squash_merge_commit_title": {
+ "type": "string",
+ "enum": [
+ "PR_TITLE",
+ "COMMIT_OR_PR_TITLE"
+ ],
+ "description": "Required when using `squash_merge_commit_message`.\n\nThe default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."
+ },
+ "squash_merge_commit_message": {
+ "type": "string",
+ "enum": [
+ "PR_BODY",
+ "COMMIT_MESSAGES",
+ "BLANK"
+ ],
+ "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."
+ },
+ "merge_commit_title": {
+ "type": "string",
+ "enum": [
+ "PR_TITLE",
+ "MERGE_MESSAGE"
+ ],
+ "description": "Required when using `merge_commit_message`.\n\nThe default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."
+ },
+ "merge_commit_message": {
+ "type": "string",
+ "enum": [
+ "PR_BODY",
+ "PR_TITLE",
+ "BLANK"
+ ],
+ "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."
+ },
+ "archived": {
+ "type": "boolean",
+ "description": "Whether to archive this repository. `false` will unarchive a previously archived repository.",
+ "default": false
+ },
+ "allow_forking": {
+ "type": "boolean",
+ "description": "Either `true` to allow private forks, or `false` to prevent private forks.",
+ "default": false
+ },
+ "web_commit_signoff_required": {
+ "type": "boolean",
+ "description": "Either `true` to require contributors to sign off on web-based commits, or `false` to not require contributors to sign off on web-based commits.",
+ "default": false
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "auto_init": {
+ "description": "Create an initial commit with empty README. Keep this set to true in most cases since many of the policies below cannot be implemented on bare repos",
+ "type": "boolean"
+ },
+ "gitignore_template": {
+ "description": "Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, 'Haskell'.",
+ "type": "string"
+ },
+ "license_template": {
+ "description": "Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, 'mit' or 'mpl-2.0'.",
+ "type": "string"
+ },
+ "topics": {
+ "description": "A list of topics to set on the repository",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "security": {
+ "description": "Settings for Code security and analysis",
+ "type": "object",
+ "properties": {
+ "enableVulnerabilityAlerts": {
+ "type": "boolean"
+ },
+ "enableAutomatedSecurityFixes": {
+ "type": "boolean"
+ }
+ }
+ },
+ "force_create": {
+ "description": "Force create the repository",
+ "type": "boolean"
+ },
+ "template": {
+ "description": "Name of a template repository to use when creating the repository",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ },
+ "LabelSettings": {
+ "description": "Labels: define labels for Issues and Pull Requests",
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "color": {
+ "description": "The hexadecimal color code for the label. If including a `#`, make sure to wrap it with quotes!",
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "oldname": {
+ "description": "Include the old name to rename an existing label",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "exclude": {
+ "description": "Ignore any labels matching these regexes (don't delete them)",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "CollaboratorSettings": {
+ "description": "A collaborator entry giving a specific user access to a repository.",
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "permission": {
+ "type": "string",
+ "description": "The permission to grant the collaborator. **Only valid on organization-owned repositories.** We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any.",
+ "default": "push"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "exclude": {
+ "description": "You can exclude a list of repos for this collaborator and all repos except these repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "You can include a list of repos for this collaborator and only those repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "TeamSettings": {
+ "description": "A team entry",
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "permission": {
+ "type": "string",
+ "description": "The permission to grant the team on this repository. We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository."
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name (or slug) of the team to grant access to the repo.",
+ "type": "string"
+ },
+ "privacy": {
+ "description": "The level of privacy the team should have when it is created by safe-settings. The options are `secret` (visible only to organization owners and members of the team) or `closed` (visible to all members of the organization).",
+ "type": "string",
+ "enum": [
+ "secret",
+ "closed"
+ ]
+ },
+ "external_group": {
+ "description": "The display name of an external IdP group to link to this team.",
+ "type": "string"
+ },
+ "exclude": {
+ "description": "Exclude this team from repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "Apply this team only to repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "MilestoneSettings": {
+ "description": "A milestone entry",
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "state": {
+ "description": "The state of the milestone. Either `open` or `closed`",
+ "type": "string"
+ }
+ }
+ },
+ "BranchSettings": {
+ "description": "A branch protection rule entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "If the name of the branch value is specified as `default`, then the app will create a branch protection rule to apply against the default branch in the repo",
+ "type": "string"
+ },
+ "protection": {
+ "type": "object",
+ "properties": {
+ "required_status_checks": {
+ "type": "object",
+ "description": "Require status checks to pass before merging. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "strict": {
+ "type": "boolean",
+ "description": "Require branches to be up to date before merging."
+ },
+ "contexts": {
+ "type": "array",
+ "deprecated": true,
+ "description": "**Closing down notice**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "checks": {
+ "type": "array",
+ "description": "The list of status checks to require in order to merge into this branch.",
+ "items": {
+ "type": "object",
+ "required": [
+ "context"
+ ],
+ "properties": {
+ "context": {
+ "type": "string",
+ "description": "The name of the required check"
+ },
+ "app_id": {
+ "type": "integer",
+ "description": "The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status."
+ }
+ }
+ }
+ }
+ },
+ "required": [
+ "strict",
+ "contexts"
+ ]
+ },
+ "enforce_admins": {
+ "type": "boolean",
+ "description": "Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable.",
+ "nullable": true
+ },
+ "required_pull_request_reviews": {
+ "type": "object",
+ "description": "Require at least one approving review on a pull request, before merging. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "dismissal_restrictions": {
+ "type": "object",
+ "description": "Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.",
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "dismiss_stale_reviews": {
+ "type": "boolean",
+ "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit."
+ },
+ "require_code_owner_reviews": {
+ "type": "boolean",
+ "description": "Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) review them."
+ },
+ "required_approving_review_count": {
+ "type": "integer",
+ "description": "Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers."
+ },
+ "require_last_push_approval": {
+ "type": "boolean",
+ "description": "Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false`.",
+ "default": false
+ },
+ "bypass_pull_request_allowances": {
+ "type": "object",
+ "description": "Allow specific users, teams, or apps to bypass pull request requirements.",
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "restrictions": {
+ "type": "object",
+ "description": "Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s with push access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s with push access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s with push access",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "users",
+ "teams"
+ ]
+ },
+ "required_linear_history": {
+ "type": "boolean",
+ "description": "Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see \"[Requiring a linear commit history](https://docs.github.com/github/administering-a-repository/requiring-a-linear-commit-history)\" in the GitHub Help documentation."
+ },
+ "allow_force_pushes": {
+ "type": "boolean",
+ "description": "Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation.\"",
+ "nullable": true
+ },
+ "allow_deletions": {
+ "type": "boolean",
+ "description": "Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation."
+ },
+ "block_creations": {
+ "type": "boolean",
+ "description": "If set to `true`, the `restrictions` branch protection settings which limits who can push will also block pushes which create new branches, unless the push is initiated by a user, team, or app which has the ability to push. Set to `true` to restrict new branch creation. Default: `false`."
+ },
+ "required_conversation_resolution": {
+ "type": "boolean",
+ "description": "Requires all conversations on code to be resolved before a pull request can be merged into a branch that matches this rule. Set to `false` to disable. Default: `false`."
+ },
+ "lock_branch": {
+ "type": "boolean",
+ "description": "Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. Default: `false`.",
+ "default": false
+ },
+ "allow_fork_syncing": {
+ "type": "boolean",
+ "description": "Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. Default: `false`.",
+ "default": false
+ }
+ },
+ "required": [
+ "required_status_checks",
+ "enforce_admins",
+ "required_pull_request_reviews",
+ "restrictions"
+ ]
+ }
+ }
+ },
+ "AutolinkSettings": {
+ "description": "An autolink reference entry",
+ "type": "object",
+ "properties": {
+ "key_prefix": {
+ "type": "string",
+ "description": "This prefix appended by certain characters will generate a link any time it is found in an issue, pull request, or commit."
+ },
+ "url_template": {
+ "type": "string",
+ "description": "The URL must contain `` for the reference number. `` matches different characters depending on the value of `is_alphanumeric`."
+ },
+ "is_alphanumeric": {
+ "type": "boolean",
+ "default": true,
+ "description": "Whether this autolink reference matches alphanumeric characters. If true, the `` parameter of the `url_template` matches alphanumeric characters `A-Z` (case insensitive), `0-9`, and `-`. If false, this autolink reference only matches numeric characters."
+ }
+ },
+ "required": [
+ "key_prefix",
+ "url_template"
+ ]
+ },
+ "ValidatorSettings": {
+ "description": "Repository name validation",
+ "type": "object",
+ "properties": {
+ "pattern": {
+ "type": "string"
+ }
+ }
+ },
+ "RulesetSettings": {
+ "description": "A ruleset entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the ruleset."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the ruleset",
+ "enum": [
+ "branch",
+ "tag",
+ "push",
+ "repository"
+ ],
+ "default": "branch"
+ },
+ "enforcement": {
+ "type": "string",
+ "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise).",
+ "enum": [
+ "disabled",
+ "active",
+ "evaluate"
+ ]
+ },
+ "bypass_actors": {
+ "type": "array",
+ "description": "The actors that can bypass the rules in this ruleset",
+ "items": {
+ "title": "Repository Ruleset Bypass Actor",
+ "type": "object",
+ "description": "An actor that can bypass rules in a ruleset",
+ "required": [
+ "actor_type"
+ ],
+ "properties": {
+ "actor_id": {
+ "type": "integer",
+ "nullable": true,
+ "description": "The ID of the actor that can bypass a ruleset. Required for `Integration`, `RepositoryRole`, `Team`, and `User` actor types. If `actor_type` is `OrganizationAdmin`, `actor_id` is ignored. If `actor_type` is `DeployKey`, this should be null. `OrganizationAdmin` is not applicable for personal repositories."
+ },
+ "actor_type": {
+ "type": "string",
+ "enum": [
+ "Integration",
+ "OrganizationAdmin",
+ "RepositoryRole",
+ "Team",
+ "DeployKey",
+ "User"
+ ],
+ "description": "The type of actor that can bypass a ruleset."
+ },
+ "bypass_mode": {
+ "type": "string",
+ "description": "When the specified actor can bypass the ruleset. `pull_request` means that an actor can only bypass rules on pull requests. `pull_request` is not applicable for the `DeployKey` actor type. Also, `pull_request` is only applicable to branch rulesets. When `bypass_mode` is `exempt`, rules will not be run for that actor and a bypass audit entry will not be created.",
+ "enum": [
+ "always",
+ "pull_request",
+ "exempt"
+ ],
+ "default": "always"
+ },
+ "name": {
+ "type": "string",
+ "description": "Human-friendly alternative to `actor_id`. The team slug, username, GitHub App slug, or repository role name (resolved using `actor_type`). Cannot be combined with `actor_id`."
+ }
+ }
+ }
+ },
+ "conditions": {
+ "title": "Organization ruleset conditions",
+ "type": "object",
+ "description": "Conditions for an organization ruleset.\nThe branch and tag rulesets conditions object should contain both `repository_name` and `ref_name` properties, or both `repository_id` and `ref_name` properties, or both `repository_property` and `ref_name` properties.\nThe push rulesets conditions object does not require the `ref_name` property.\nFor repository policy rulesets, the conditions object should only contain the `repository_name`, the `repository_id`, or the `repository_property`.",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "repository_name_and_ref_name",
+ "description": "Conditions to target repositories by name and refs by name",
+ "allOf": [
+ {
+ "title": "Repository ruleset conditions for ref names",
+ "type": "object",
+ "description": "Parameters for a repository ruleset ref name condition",
+ "properties": {
+ "ref_name": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Repository ruleset conditions for repository names",
+ "type": "object",
+ "description": "Parameters for a repository name condition",
+ "properties": {
+ "repository_name": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~ALL` to include all repositories.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "protected": {
+ "type": "boolean",
+ "description": "Whether renaming of target repositories is prevented."
+ }
+ }
+ }
+ },
+ "required": [
+ "repository_name"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "object",
+ "title": "repository_id_and_ref_name",
+ "description": "Conditions to target repositories by id and refs by name",
+ "allOf": [
+ {
+ "title": "Repository ruleset conditions for ref names",
+ "type": "object",
+ "description": "Parameters for a repository ruleset ref name condition",
+ "properties": {
+ "ref_name": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Repository ruleset conditions for repository IDs",
+ "type": "object",
+ "description": "Parameters for a repository ID condition",
+ "properties": {
+ "repository_id": {
+ "type": "object",
+ "properties": {
+ "repository_ids": {
+ "type": "array",
+ "description": "The repository IDs that the ruleset applies to. One of these IDs must match for the condition to pass.",
+ "items": {
+ "type": "integer"
+ }
+ }
+ }
+ }
+ },
+ "required": [
+ "repository_id"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "object",
+ "title": "repository_property_and_ref_name",
+ "description": "Conditions to target repositories by property and refs by name",
+ "allOf": [
+ {
+ "title": "Repository ruleset conditions for ref names",
+ "type": "object",
+ "description": "Parameters for a repository ruleset ref name condition",
+ "properties": {
+ "ref_name": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Repository ruleset conditions for repository properties",
+ "type": "object",
+ "description": "Parameters for a repository property condition",
+ "properties": {
+ "repository_property": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "The repository properties and values to include. All of these properties must match for the condition to pass.",
+ "items": {
+ "title": "Repository ruleset property targeting definition",
+ "type": "object",
+ "description": "Parameters for a targeting a repository property",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the repository property to target"
+ },
+ "property_values": {
+ "type": "array",
+ "description": "The values to match for the repository property",
+ "items": {
+ "type": "string"
+ }
+ },
+ "source": {
+ "type": "string",
+ "description": "The source of the repository property. Defaults to 'custom' if not specified.",
+ "enum": [
+ "custom",
+ "system"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "property_values"
+ ]
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "The repository properties and values to exclude. The condition will not pass if any of these properties match.",
+ "items": {
+ "title": "Repository ruleset property targeting definition",
+ "type": "object",
+ "description": "Parameters for a targeting a repository property",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the repository property to target"
+ },
+ "property_values": {
+ "type": "array",
+ "description": "The values to match for the repository property",
+ "items": {
+ "type": "string"
+ }
+ },
+ "source": {
+ "type": "string",
+ "description": "The source of the repository property. Defaults to 'custom' if not specified.",
+ "enum": [
+ "custom",
+ "system"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "property_values"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "required": [
+ "repository_property"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "rules": {
+ "type": "array",
+ "description": "An array of rules within the ruleset.",
+ "items": {
+ "title": "Repository Rule",
+ "type": "object",
+ "description": "A repository rule.",
+ "oneOf": [
+ {
+ "title": "creation",
+ "description": "Only allow users with bypass permission to create matching refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "creation"
+ ]
+ }
+ }
+ },
+ {
+ "title": "update",
+ "description": "Only allow users with bypass permission to update matching refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "update"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "update_allows_fetch_and_merge": {
+ "type": "boolean",
+ "description": "Branch can pull changes from its upstream repository"
+ }
+ },
+ "required": [
+ "update_allows_fetch_and_merge"
+ ]
+ }
+ }
+ },
+ {
+ "title": "deletion",
+ "description": "Only allow users with bypass permissions to delete matching refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "deletion"
+ ]
+ }
+ }
+ },
+ {
+ "title": "required_linear_history",
+ "description": "Prevent merge commits from being pushed to matching refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "required_linear_history"
+ ]
+ }
+ }
+ },
+ {
+ "title": "required_deployments",
+ "description": "Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "required_deployments"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "required_deployment_environments": {
+ "type": "array",
+ "description": "The environments that must be successfully deployed to before branches can be merged.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "required_deployment_environments"
+ ]
+ }
+ }
+ },
+ {
+ "title": "required_signatures",
+ "description": "Commits pushed to matching refs must have verified signatures.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "required_signatures"
+ ]
+ }
+ }
+ },
+ {
+ "title": "pull_request",
+ "description": "Require all commits be made to a non-target branch and submitted via a pull request before they can be merged.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "pull_request"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "allowed_merge_methods": {
+ "type": "array",
+ "description": "Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled.",
+ "items": {
+ "type": "string",
+ "enum": [
+ "merge",
+ "squash",
+ "rebase"
+ ]
+ }
+ },
+ "dismiss_stale_reviews_on_push": {
+ "type": "boolean",
+ "description": "New, reviewable commits pushed will dismiss previous pull request review approvals."
+ },
+ "dismissal_restriction": {
+ "title": "DismissalRestriction",
+ "description": "Specify people, teams, or apps allowed to dismiss pull request reviews.",
+ "type": "object",
+ "properties": {
+ "allowed_actors": {
+ "type": "array",
+ "description": "Specify people, teams, or apps allowed to dismiss pull request reviews.",
+ "items": {
+ "title": "Actor",
+ "description": "An actor allowed to dismiss pull request reviews",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "description": "ID of the actor that can dismiss reviews."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of the actor",
+ "enum": [
+ "User",
+ "Team",
+ "IntegrationInstallation",
+ "RepositoryRole"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ]
+ }
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether to restrict review dismissal to specific actors."
+ }
+ },
+ "required": [
+ "enabled"
+ ]
+ },
+ "require_code_owner_review": {
+ "type": "boolean",
+ "description": "Require an approving review in pull requests that modify files that have a designated code owner."
+ },
+ "require_last_push_approval": {
+ "type": "boolean",
+ "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it."
+ },
+ "required_approving_review_count": {
+ "type": "integer",
+ "description": "The number of approving reviews that are required before a pull request can be merged.",
+ "minimum": 0,
+ "maximum": 10
+ },
+ "required_review_thread_resolution": {
+ "type": "boolean",
+ "description": "All conversations on code must be resolved before a pull request can be merged."
+ },
+ "required_reviewers": {
+ "type": "array",
+ "description": "> [!NOTE]\n> `required_reviewers` is in beta and subject to change.\n\nA collection of reviewers and associated file patterns. Each reviewer has a list of file patterns which determine the files that reviewer is required to review.",
+ "items": {
+ "title": "RequiredReviewerConfiguration",
+ "description": "A reviewing team, and file patterns describing which files they must approve changes to.",
+ "type": "object",
+ "properties": {
+ "file_patterns": {
+ "type": "array",
+ "description": "Array of file patterns. Pull requests which change matching files must be approved by the specified team. File patterns use fnmatch syntax.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "minimum_approvals": {
+ "type": "integer",
+ "description": "Minimum number of approvals required from the specified team. If set to zero, the team will be added to the pull request but approval is optional."
+ },
+ "reviewer": {
+ "title": "Reviewer",
+ "description": "A required reviewing team",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "description": "ID of the reviewer which must review changes to matching files."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of the reviewer",
+ "enum": [
+ "Team"
+ ]
+ },
+ "slug": {
+ "type": "string",
+ "description": "Human-friendly alternative to `id`. The slug of the team that must review changes to matching files. Cannot be combined with `id`."
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ },
+ "required": [
+ "file_patterns",
+ "minimum_approvals",
+ "reviewer"
+ ]
+ }
+ }
+ },
+ "required": [
+ "dismiss_stale_reviews_on_push",
+ "require_code_owner_review",
+ "require_last_push_approval",
+ "required_approving_review_count",
+ "required_review_thread_resolution"
+ ]
+ }
+ }
+ },
+ {
+ "title": "required_status_checks",
+ "description": "Choose which status checks must pass before the ref is updated. When enabled, commits must first be pushed to another ref where the checks pass.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "required_status_checks"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "do_not_enforce_on_create": {
+ "type": "boolean",
+ "description": "Allow repositories and branches to be created if a check would otherwise prohibit it."
+ },
+ "required_status_checks": {
+ "type": "array",
+ "description": "Status checks that are required.",
+ "items": {
+ "title": "StatusCheckConfiguration",
+ "description": "Required status check",
+ "type": "object",
+ "properties": {
+ "context": {
+ "type": "string",
+ "description": "The status check context name that must be present on the commit."
+ },
+ "integration_id": {
+ "type": "integer",
+ "description": "The optional integration ID that this status check must originate from."
+ }
+ },
+ "required": [
+ "context"
+ ]
+ }
+ },
+ "strict_required_status_checks_policy": {
+ "type": "boolean",
+ "description": "Whether pull requests targeting a matching branch must be tested with the latest code. This setting will not take effect unless at least one status check is enabled."
+ }
+ },
+ "required": [
+ "required_status_checks",
+ "strict_required_status_checks_policy"
+ ]
+ }
+ }
+ },
+ {
+ "title": "non_fast_forward",
+ "description": "Prevent users with push access from force pushing to refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "non_fast_forward"
+ ]
+ }
+ }
+ },
+ {
+ "title": "commit_message_pattern",
+ "description": "Parameters to be used for the commit_message_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "commit_message_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "commit_author_email_pattern",
+ "description": "Parameters to be used for the commit_author_email_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "commit_author_email_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "committer_email_pattern",
+ "description": "Parameters to be used for the committer_email_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "committer_email_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "branch_name_pattern",
+ "description": "Parameters to be used for the branch_name_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "branch_name_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "tag_name_pattern",
+ "description": "Parameters to be used for the tag_name_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "tag_name_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "file_path_restriction",
+ "description": "Prevent commits that include changes in specified file and folder paths from being pushed to the commit graph. This includes absolute paths that contain file names.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "file_path_restriction"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "restricted_file_paths": {
+ "type": "array",
+ "description": "The file paths that are restricted from being pushed to the commit graph.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "restricted_file_paths"
+ ]
+ }
+ }
+ },
+ {
+ "title": "max_file_path_length",
+ "description": "Prevent commits that include file paths that exceed the specified character limit from being pushed to the commit graph.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "max_file_path_length"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "max_file_path_length": {
+ "type": "integer",
+ "description": "The maximum amount of characters allowed in file paths.",
+ "minimum": 1,
+ "maximum": 32767
+ }
+ },
+ "required": [
+ "max_file_path_length"
+ ]
+ }
+ }
+ },
+ {
+ "title": "file_extension_restriction",
+ "description": "Prevent commits that include files with specified file extensions from being pushed to the commit graph.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "file_extension_restriction"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "restricted_file_extensions": {
+ "type": "array",
+ "description": "The file extensions that are restricted from being pushed to the commit graph.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "restricted_file_extensions"
+ ]
+ }
+ }
+ },
+ {
+ "title": "max_file_size",
+ "description": "Prevent commits with individual files that exceed the specified limit from being pushed to the commit graph.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "max_file_size"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "max_file_size": {
+ "type": "integer",
+ "description": "The maximum file size allowed in megabytes. This limit does not apply to Git Large File Storage (Git LFS).",
+ "minimum": 1,
+ "maximum": 100
+ }
+ },
+ "required": [
+ "max_file_size"
+ ]
+ }
+ }
+ },
+ {
+ "title": "workflows",
+ "description": "Require all changes made to a targeted branch to pass the specified workflows before they can be merged.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "workflows"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "do_not_enforce_on_create": {
+ "type": "boolean",
+ "description": "Allow repositories and branches to be created if a check would otherwise prohibit it."
+ },
+ "workflows": {
+ "type": "array",
+ "description": "Workflows that must pass for this rule to pass.",
+ "items": {
+ "title": "WorkflowFileReference",
+ "description": "A workflow that must run for this rule to pass",
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "The path to the workflow file"
+ },
+ "ref": {
+ "type": "string",
+ "description": "The ref (branch or tag) of the workflow file to use"
+ },
+ "repository_id": {
+ "type": "integer",
+ "description": "The ID of the repository where the workflow is defined"
+ },
+ "sha": {
+ "type": "string",
+ "description": "The commit SHA of the workflow file to use"
+ }
+ },
+ "required": [
+ "path",
+ "repository_id"
+ ]
+ }
+ }
+ },
+ "required": [
+ "workflows"
+ ]
+ }
+ }
+ },
+ {
+ "title": "code_scanning",
+ "description": "Choose which tools must provide code scanning results before the reference is updated. When configured, code scanning must be enabled and have results for both the commit and the reference being updated.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "code_scanning"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "code_scanning_tools": {
+ "type": "array",
+ "description": "Tools that must provide code scanning results for this rule to pass.",
+ "items": {
+ "title": "CodeScanningTool",
+ "description": "A tool that must provide code scanning results for this rule to pass.",
+ "type": "object",
+ "properties": {
+ "alerts_threshold": {
+ "type": "string",
+ "description": "The severity level at which code scanning results that raise alerts block a reference update. For more information on alert severity levels, see \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels).\"",
+ "enum": [
+ "none",
+ "errors",
+ "errors_and_warnings",
+ "all"
+ ]
+ },
+ "security_alerts_threshold": {
+ "type": "string",
+ "description": "The severity level at which code scanning results that raise security alerts block a reference update. For more information on security severity levels, see \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels).\"",
+ "enum": [
+ "none",
+ "critical",
+ "high_or_higher",
+ "medium_or_higher",
+ "all"
+ ]
+ },
+ "tool": {
+ "type": "string",
+ "description": "The name of a code scanning tool"
+ }
+ },
+ "required": [
+ "alerts_threshold",
+ "security_alerts_threshold",
+ "tool"
+ ]
+ }
+ }
+ },
+ "required": [
+ "code_scanning_tools"
+ ]
+ }
+ }
+ },
+ {
+ "title": "copilot_code_review",
+ "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "copilot_code_review"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "review_draft_pull_requests": {
+ "type": "boolean",
+ "description": "Copilot automatically reviews draft pull requests before they are marked as ready for review."
+ },
+ "review_on_push": {
+ "type": "boolean",
+ "description": "Copilot automatically reviews each new push to the pull request."
+ }
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "name",
+ "enforcement"
+ ]
+ },
+ "EnvironmentsSettings": {
+ "description": "A deployment environment configuration entry",
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the deployment environment",
+ "type": "string"
+ },
+ "wait_timer": {
+ "description": "The amount of time to delay a job after the job is initially triggered (in minutes)",
+ "type": "integer"
+ },
+ "reviewers": {
+ "description": "The people or teams that may review jobs that reference the environment",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The type of reviewer (`User` or `Team`)",
+ "type": "string"
+ },
+ "id": {
+ "description": "The id of the user or team who can review the deployment",
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "deployment_branch_policy": {
+ "description": "The type of deployment branch policy for this environment",
+ "type": "object",
+ "properties": {
+ "protected_branches": {
+ "description": "Whether only protected branches can be deployed to this environment",
+ "type": "boolean"
+ },
+ "custom_branch_policies": {
+ "description": "Whether only branches that match the specified name patterns can deploy to this environment",
+ "type": "boolean"
+ }
+ }
+ },
+ "prevent_self_review": {
+ "description": "Whether or not a user who created the job is prevented from approving their own job",
+ "type": "boolean"
+ }
+ }
+ },
+ "CustomPropertiesSettings": {
+ "description": "A custom property entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ },
+ "VariablesSettings": {
+ "description": "An Actions variable entry",
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the variable",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the variable",
+ "type": "string"
+ },
+ "visibility": {
+ "description": "The visibility of the variable. Can be `all`, `private`, or `selected`",
+ "type": "string",
+ "enum": [
+ "all",
+ "private",
+ "selected"
+ ]
+ }
+ }
+ },
"custom_repository_roles": {
"description": "Org-level custom repository roles. Only valid in the org-level settings.yml.",
"type": "array",
diff --git a/schema/dereferenced/suborgs.json b/schema/dereferenced/suborgs.json
new file mode 100644
index 000000000..6e7bb3254
--- /dev/null
+++ b/schema/dereferenced/suborgs.json
@@ -0,0 +1,2879 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "title": "Safe-settings suborg-level configuration",
+ "description": "Schema for .github/suborgs/*.yml — suborg-level safe-settings configuration. Defines which repos belong to the suborg and what settings to apply.",
+ "type": "object",
+ "properties": {
+ "suborgrepos": {
+ "type": "array",
+ "description": "Glob patterns matching repository names. Repos whose names match any pattern are included in this suborg.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "suborgteams": {
+ "type": "array",
+ "description": "Team slugs. Repos that belong to any of these teams are included in this suborg.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "suborgproperties": {
+ "type": "array",
+ "description": "Custom property filters. Repos with matching custom property values are included in this suborg.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "property_name": {
+ "type": "string",
+ "description": "The name of the custom property"
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Accepted values for this property"
+ }
+ }
+ }
+ },
+ "repositories": {
+ "description": "Repository settings. Use force_create to create the repository if it does not exist, and template to specify a template repository to use when creating it.",
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the repository."
+ },
+ "description": {
+ "type": "string",
+ "description": "A short description of the repository."
+ },
+ "homepage": {
+ "type": "string",
+ "description": "A URL with more information about the repository."
+ },
+ "private": {
+ "type": "boolean",
+ "description": "Either `true` to make the repository private or `false` to make it public. Default: `false`. \n**Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private.",
+ "default": false
+ },
+ "visibility": {
+ "type": "string",
+ "description": "The visibility of the repository.",
+ "enum": [
+ "public",
+ "private"
+ ]
+ },
+ "security_and_analysis": {
+ "type": "object",
+ "description": "Specify which security and analysis features to enable or disable for the repository.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nFor example, to enable GitHub Advanced Security, use this data in the body of the `PATCH` request:\n`{ \"security_and_analysis\": {\"advanced_security\": { \"status\": \"enabled\" } } }`.\n\nYou can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request.",
+ "nullable": true,
+ "properties": {
+ "advanced_security": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable GitHub Advanced Security for this repository.\nFor more information, see \"[About GitHub Advanced\nSecurity](/github/getting-started-with-github/learning-about-github/about-github-advanced-security).\"\n\nFor standalone Code Scanning or Secret Protection products, this parameter cannot be used.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "code_security": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable GitHub Code Security for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning for this repository. For more information, see \"[About secret scanning](/code-security/secret-security/about-secret-scanning).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_push_protection": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning push protection for this repository. For more information, see \"[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_ai_detection": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning AI detection for this repository. For more information, see \"[Responsible detection of generic secrets with AI](https://docs.github.com/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/generic-secret-detection/responsible-ai-generic-secrets).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_non_provider_patterns": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning non-provider patterns for this repository. For more information, see \"[Supported secret scanning patterns](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_alert_dismissal": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning delegated alert dismissal for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_bypass": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning delegated bypass for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_bypass_options": {
+ "type": "object",
+ "description": "Feature options for secret scanning delegated bypass.\nThis object is only honored when `security_and_analysis.secret_scanning_delegated_bypass.status` is set to `enabled`.\nYou can send this object in the same request as `secret_scanning_delegated_bypass`, or update just the options in a separate request.",
+ "properties": {
+ "reviewers": {
+ "type": "array",
+ "description": "The bypass reviewers for secret scanning delegated bypass.\nIf you omit this field, the existing set of reviewers is unchanged.",
+ "items": {
+ "type": "object",
+ "required": [
+ "reviewer_id",
+ "reviewer_type"
+ ],
+ "properties": {
+ "reviewer_id": {
+ "type": "integer",
+ "description": "The ID of the team or role selected as a bypass reviewer"
+ },
+ "reviewer_type": {
+ "type": "string",
+ "description": "The type of the bypass reviewer",
+ "enum": [
+ "TEAM",
+ "ROLE"
+ ]
+ },
+ "mode": {
+ "type": "string",
+ "description": "The bypass mode for the reviewer",
+ "enum": [
+ "ALWAYS",
+ "EXEMPT"
+ ],
+ "default": "ALWAYS"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "has_issues": {
+ "type": "boolean",
+ "description": "Either `true` to enable issues for this repository or `false` to disable them.",
+ "default": true
+ },
+ "has_projects": {
+ "type": "boolean",
+ "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.",
+ "default": true
+ },
+ "has_wiki": {
+ "type": "boolean",
+ "description": "Either `true` to enable the wiki for this repository or `false` to disable it.",
+ "default": true
+ },
+ "has_pull_requests": {
+ "type": "boolean",
+ "description": "Either `true` to allow pull requests for this repository or `false` to prevent pull requests.",
+ "default": true
+ },
+ "pull_request_creation_policy": {
+ "type": "string",
+ "description": "The policy that controls who can create pull requests for this repository: `all` or `collaborators_only`.",
+ "enum": [
+ "all",
+ "collaborators_only"
+ ]
+ },
+ "is_template": {
+ "type": "boolean",
+ "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.",
+ "default": false
+ },
+ "default_branch": {
+ "type": "string",
+ "description": "Updates the default branch for this repository."
+ },
+ "allow_squash_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.",
+ "default": true
+ },
+ "allow_merge_commit": {
+ "type": "boolean",
+ "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.",
+ "default": true
+ },
+ "allow_rebase_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.",
+ "default": true
+ },
+ "allow_auto_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.",
+ "default": false
+ },
+ "delete_branch_on_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.",
+ "default": false
+ },
+ "allow_update_branch": {
+ "type": "boolean",
+ "description": "Either `true` to always allow a pull request head branch that is behind its base branch to be updated even if it is not required to be up to date before merging, or false otherwise.",
+ "default": false
+ },
+ "use_squash_pr_title_as_default": {
+ "type": "boolean",
+ "description": "Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property is closing down. Please use `squash_merge_commit_title` instead.",
+ "default": false,
+ "deprecated": true
+ },
+ "squash_merge_commit_title": {
+ "type": "string",
+ "enum": [
+ "PR_TITLE",
+ "COMMIT_OR_PR_TITLE"
+ ],
+ "description": "Required when using `squash_merge_commit_message`.\n\nThe default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."
+ },
+ "squash_merge_commit_message": {
+ "type": "string",
+ "enum": [
+ "PR_BODY",
+ "COMMIT_MESSAGES",
+ "BLANK"
+ ],
+ "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."
+ },
+ "merge_commit_title": {
+ "type": "string",
+ "enum": [
+ "PR_TITLE",
+ "MERGE_MESSAGE"
+ ],
+ "description": "Required when using `merge_commit_message`.\n\nThe default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."
+ },
+ "merge_commit_message": {
+ "type": "string",
+ "enum": [
+ "PR_BODY",
+ "PR_TITLE",
+ "BLANK"
+ ],
+ "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."
+ },
+ "archived": {
+ "type": "boolean",
+ "description": "Whether to archive this repository. `false` will unarchive a previously archived repository.",
+ "default": false
+ },
+ "allow_forking": {
+ "type": "boolean",
+ "description": "Either `true` to allow private forks, or `false` to prevent private forks.",
+ "default": false
+ },
+ "web_commit_signoff_required": {
+ "type": "boolean",
+ "description": "Either `true` to require contributors to sign off on web-based commits, or `false` to not require contributors to sign off on web-based commits.",
+ "default": false
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "auto_init": {
+ "description": "Create an initial commit with empty README. Keep this set to true in most cases since many of the policies below cannot be implemented on bare repos",
+ "type": "boolean"
+ },
+ "gitignore_template": {
+ "description": "Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, 'Haskell'.",
+ "type": "string"
+ },
+ "license_template": {
+ "description": "Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, 'mit' or 'mpl-2.0'.",
+ "type": "string"
+ },
+ "topics": {
+ "description": "A list of topics to set on the repository",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "security": {
+ "description": "Settings for Code security and analysis",
+ "type": "object",
+ "properties": {
+ "enableVulnerabilityAlerts": {
+ "type": "boolean"
+ },
+ "enableAutomatedSecurityFixes": {
+ "type": "boolean"
+ }
+ }
+ },
+ "force_create": {
+ "description": "If true, create the repository if it does not already exist.",
+ "type": "boolean"
+ },
+ "template": {
+ "description": "Name of a template repository to use when creating a new repository.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ },
+ "labels": {
+ "description": "Labels: define labels for Issues and Pull Requests",
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "color": {
+ "description": "The hexadecimal color code for the label. If including a `#`, make sure to wrap it with quotes!",
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "oldname": {
+ "description": "Include the old name to rename an existing label",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "exclude": {
+ "description": "Ignore any labels matching these regexes (don't delete them)",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "collaborators": {
+ "description": "Collaborators: give specific users access to any repository.",
+ "type": "array",
+ "items": {
+ "description": "A collaborator entry giving a specific user access to a repository.",
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "permission": {
+ "type": "string",
+ "description": "The permission to grant the collaborator. **Only valid on organization-owned repositories.** We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any.",
+ "default": "push"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "exclude": {
+ "description": "You can exclude a list of repos for this collaborator and all repos except these repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "You can include a list of repos for this collaborator and only those repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ }
+ },
+ "teams": {
+ "description": "Teams",
+ "type": "array",
+ "items": {
+ "description": "A team entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the team."
+ },
+ "description": {
+ "type": "string",
+ "description": "The description of the team."
+ },
+ "maintainers": {
+ "type": "array",
+ "description": "List GitHub usernames for organization members who will become team maintainers.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "repo_names": {
+ "type": "array",
+ "description": "The full name (e.g., \"organization-name/repository-name\") of repositories to add the team to.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "privacy": {
+ "type": "string",
+ "description": "The level of privacy this team should have. The options are: \n**For a non-nested team:** \n * `secret` - only visible to organization owners and members of this team. \n * `closed` - visible to all members of this organization. \nDefault: `secret` \n**For a parent or child team:** \n * `closed` - visible to all members of this organization. \nDefault for child team: `closed`",
+ "enum": [
+ "secret",
+ "closed"
+ ]
+ },
+ "notification_setting": {
+ "type": "string",
+ "description": "The notification setting the team has chosen. The options are: \n * `notifications_enabled` - team members receive notifications when the team is @mentioned. \n * `notifications_disabled` - no one receives notifications. \nDefault: `notifications_enabled`",
+ "enum": [
+ "notifications_enabled",
+ "notifications_disabled"
+ ]
+ },
+ "parent_team_id": {
+ "type": "integer",
+ "description": "The ID of a team to set as the parent team."
+ },
+ "parent_team_slug": {
+ "type": "string",
+ "description": "The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided."
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ },
+ "milestones": {
+ "description": "Milestones: define milestones for Issues and Pull Requests",
+ "type": "array",
+ "items": {
+ "description": "A milestone entry",
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "state": {
+ "description": "The state of the milestone. Either `open` or `closed`",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "branches": {
+ "description": "Branch protection rules",
+ "type": "array",
+ "items": {
+ "description": "A branch protection rule entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "If the name of the branch value is specified as `default`, then the app will create a branch protection rule to apply against the default branch in the repo",
+ "type": "string"
+ },
+ "protection": {
+ "type": "object",
+ "properties": {
+ "required_status_checks": {
+ "type": "object",
+ "description": "Require status checks to pass before merging. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "strict": {
+ "type": "boolean",
+ "description": "Require branches to be up to date before merging."
+ },
+ "contexts": {
+ "type": "array",
+ "deprecated": true,
+ "description": "**Closing down notice**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "checks": {
+ "type": "array",
+ "description": "The list of status checks to require in order to merge into this branch.",
+ "items": {
+ "type": "object",
+ "required": [
+ "context"
+ ],
+ "properties": {
+ "context": {
+ "type": "string",
+ "description": "The name of the required check"
+ },
+ "app_id": {
+ "type": "integer",
+ "description": "The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status."
+ }
+ }
+ }
+ }
+ },
+ "required": [
+ "strict",
+ "contexts"
+ ]
+ },
+ "enforce_admins": {
+ "type": "boolean",
+ "description": "Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable.",
+ "nullable": true
+ },
+ "required_pull_request_reviews": {
+ "type": "object",
+ "description": "Require at least one approving review on a pull request, before merging. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "dismissal_restrictions": {
+ "type": "object",
+ "description": "Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.",
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "dismiss_stale_reviews": {
+ "type": "boolean",
+ "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit."
+ },
+ "require_code_owner_reviews": {
+ "type": "boolean",
+ "description": "Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) review them."
+ },
+ "required_approving_review_count": {
+ "type": "integer",
+ "description": "Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers."
+ },
+ "require_last_push_approval": {
+ "type": "boolean",
+ "description": "Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false`.",
+ "default": false
+ },
+ "bypass_pull_request_allowances": {
+ "type": "object",
+ "description": "Allow specific users, teams, or apps to bypass pull request requirements.",
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "restrictions": {
+ "type": "object",
+ "description": "Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s with push access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s with push access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s with push access",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "users",
+ "teams"
+ ]
+ },
+ "required_linear_history": {
+ "type": "boolean",
+ "description": "Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see \"[Requiring a linear commit history](https://docs.github.com/github/administering-a-repository/requiring-a-linear-commit-history)\" in the GitHub Help documentation."
+ },
+ "allow_force_pushes": {
+ "type": "boolean",
+ "description": "Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation.\"",
+ "nullable": true
+ },
+ "allow_deletions": {
+ "type": "boolean",
+ "description": "Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation."
+ },
+ "block_creations": {
+ "type": "boolean",
+ "description": "If set to `true`, the `restrictions` branch protection settings which limits who can push will also block pushes which create new branches, unless the push is initiated by a user, team, or app which has the ability to push. Set to `true` to restrict new branch creation. Default: `false`."
+ },
+ "required_conversation_resolution": {
+ "type": "boolean",
+ "description": "Requires all conversations on code to be resolved before a pull request can be merged into a branch that matches this rule. Set to `false` to disable. Default: `false`."
+ },
+ "lock_branch": {
+ "type": "boolean",
+ "description": "Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. Default: `false`.",
+ "default": false
+ },
+ "allow_fork_syncing": {
+ "type": "boolean",
+ "description": "Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. Default: `false`.",
+ "default": false
+ }
+ },
+ "required": [
+ "required_status_checks",
+ "enforce_admins",
+ "required_pull_request_reviews",
+ "restrictions"
+ ]
+ }
+ }
+ }
+ },
+ "autolinks": {
+ "description": "Autolinks",
+ "type": "array",
+ "items": {
+ "description": "An autolink reference entry",
+ "type": "object",
+ "properties": {
+ "key_prefix": {
+ "type": "string",
+ "description": "This prefix appended by certain characters will generate a link any time it is found in an issue, pull request, or commit."
+ },
+ "url_template": {
+ "type": "string",
+ "description": "The URL must contain `` for the reference number. `` matches different characters depending on the value of `is_alphanumeric`."
+ },
+ "is_alphanumeric": {
+ "type": "boolean",
+ "default": true,
+ "description": "Whether this autolink reference matches alphanumeric characters. If true, the `` parameter of the `url_template` matches alphanumeric characters `A-Z` (case insensitive), `0-9`, and `-`. If false, this autolink reference only matches numeric characters."
+ }
+ },
+ "required": [
+ "key_prefix",
+ "url_template"
+ ]
+ }
+ },
+ "validator": {
+ "description": "Repository name validation",
+ "type": "object",
+ "properties": {
+ "pattern": {
+ "type": "string"
+ }
+ }
+ },
+ "environments": {
+ "description": "Deployment environments",
+ "type": "array",
+ "items": {
+ "description": "A deployment environment configuration entry",
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the deployment environment",
+ "type": "string"
+ },
+ "wait_timer": {
+ "description": "The amount of time to delay a job after the job is initially triggered (in minutes)",
+ "type": "integer"
+ },
+ "reviewers": {
+ "description": "The people or teams that may review jobs that reference the environment",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The type of reviewer (`User` or `Team`)",
+ "type": "string"
+ },
+ "id": {
+ "description": "The id of the user or team who can review the deployment",
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "deployment_branch_policy": {
+ "description": "The type of deployment branch policy for this environment",
+ "type": "object",
+ "properties": {
+ "protected_branches": {
+ "description": "Whether only protected branches can be deployed to this environment",
+ "type": "boolean"
+ },
+ "custom_branch_policies": {
+ "description": "Whether only branches that match the specified name patterns can deploy to this environment",
+ "type": "boolean"
+ }
+ }
+ },
+ "prevent_self_review": {
+ "description": "Whether or not a user who created the job is prevented from approving their own job",
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ "custom_properties": {
+ "description": "Custom properties",
+ "type": "array",
+ "items": {
+ "description": "A custom property entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "variables": {
+ "description": "Repository or org-level Actions variables",
+ "type": "array",
+ "items": {
+ "description": "An Actions variable entry",
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the variable",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the variable",
+ "type": "string"
+ },
+ "visibility": {
+ "description": "The visibility of the variable. Can be `all`, `private`, or `selected`",
+ "type": "string",
+ "enum": [
+ "all",
+ "private",
+ "selected"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "$defs": {
+ "RepositorySettings": {
+ "description": "Repository settings. Use force_create to create the repository if it does not exist, and template to specify a template repository to use when creating it.",
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the repository."
+ },
+ "description": {
+ "type": "string",
+ "description": "A short description of the repository."
+ },
+ "homepage": {
+ "type": "string",
+ "description": "A URL with more information about the repository."
+ },
+ "private": {
+ "type": "boolean",
+ "description": "Either `true` to make the repository private or `false` to make it public. Default: `false`. \n**Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private.",
+ "default": false
+ },
+ "visibility": {
+ "type": "string",
+ "description": "The visibility of the repository.",
+ "enum": [
+ "public",
+ "private"
+ ]
+ },
+ "security_and_analysis": {
+ "type": "object",
+ "description": "Specify which security and analysis features to enable or disable for the repository.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nFor example, to enable GitHub Advanced Security, use this data in the body of the `PATCH` request:\n`{ \"security_and_analysis\": {\"advanced_security\": { \"status\": \"enabled\" } } }`.\n\nYou can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request.",
+ "nullable": true,
+ "properties": {
+ "advanced_security": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable GitHub Advanced Security for this repository.\nFor more information, see \"[About GitHub Advanced\nSecurity](/github/getting-started-with-github/learning-about-github/about-github-advanced-security).\"\n\nFor standalone Code Scanning or Secret Protection products, this parameter cannot be used.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "code_security": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable GitHub Code Security for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning for this repository. For more information, see \"[About secret scanning](/code-security/secret-security/about-secret-scanning).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_push_protection": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning push protection for this repository. For more information, see \"[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_ai_detection": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning AI detection for this repository. For more information, see \"[Responsible detection of generic secrets with AI](https://docs.github.com/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/generic-secret-detection/responsible-ai-generic-secrets).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_non_provider_patterns": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning non-provider patterns for this repository. For more information, see \"[Supported secret scanning patterns](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).\"",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_alert_dismissal": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning delegated alert dismissal for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_bypass": {
+ "type": "object",
+ "description": "Use the `status` property to enable or disable secret scanning delegated bypass for this repository.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Can be `enabled` or `disabled`."
+ }
+ }
+ },
+ "secret_scanning_delegated_bypass_options": {
+ "type": "object",
+ "description": "Feature options for secret scanning delegated bypass.\nThis object is only honored when `security_and_analysis.secret_scanning_delegated_bypass.status` is set to `enabled`.\nYou can send this object in the same request as `secret_scanning_delegated_bypass`, or update just the options in a separate request.",
+ "properties": {
+ "reviewers": {
+ "type": "array",
+ "description": "The bypass reviewers for secret scanning delegated bypass.\nIf you omit this field, the existing set of reviewers is unchanged.",
+ "items": {
+ "type": "object",
+ "required": [
+ "reviewer_id",
+ "reviewer_type"
+ ],
+ "properties": {
+ "reviewer_id": {
+ "type": "integer",
+ "description": "The ID of the team or role selected as a bypass reviewer"
+ },
+ "reviewer_type": {
+ "type": "string",
+ "description": "The type of the bypass reviewer",
+ "enum": [
+ "TEAM",
+ "ROLE"
+ ]
+ },
+ "mode": {
+ "type": "string",
+ "description": "The bypass mode for the reviewer",
+ "enum": [
+ "ALWAYS",
+ "EXEMPT"
+ ],
+ "default": "ALWAYS"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "has_issues": {
+ "type": "boolean",
+ "description": "Either `true` to enable issues for this repository or `false` to disable them.",
+ "default": true
+ },
+ "has_projects": {
+ "type": "boolean",
+ "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.",
+ "default": true
+ },
+ "has_wiki": {
+ "type": "boolean",
+ "description": "Either `true` to enable the wiki for this repository or `false` to disable it.",
+ "default": true
+ },
+ "has_pull_requests": {
+ "type": "boolean",
+ "description": "Either `true` to allow pull requests for this repository or `false` to prevent pull requests.",
+ "default": true
+ },
+ "pull_request_creation_policy": {
+ "type": "string",
+ "description": "The policy that controls who can create pull requests for this repository: `all` or `collaborators_only`.",
+ "enum": [
+ "all",
+ "collaborators_only"
+ ]
+ },
+ "is_template": {
+ "type": "boolean",
+ "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.",
+ "default": false
+ },
+ "default_branch": {
+ "type": "string",
+ "description": "Updates the default branch for this repository."
+ },
+ "allow_squash_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.",
+ "default": true
+ },
+ "allow_merge_commit": {
+ "type": "boolean",
+ "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.",
+ "default": true
+ },
+ "allow_rebase_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.",
+ "default": true
+ },
+ "allow_auto_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.",
+ "default": false
+ },
+ "delete_branch_on_merge": {
+ "type": "boolean",
+ "description": "Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.",
+ "default": false
+ },
+ "allow_update_branch": {
+ "type": "boolean",
+ "description": "Either `true` to always allow a pull request head branch that is behind its base branch to be updated even if it is not required to be up to date before merging, or false otherwise.",
+ "default": false
+ },
+ "use_squash_pr_title_as_default": {
+ "type": "boolean",
+ "description": "Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property is closing down. Please use `squash_merge_commit_title` instead.",
+ "default": false,
+ "deprecated": true
+ },
+ "squash_merge_commit_title": {
+ "type": "string",
+ "enum": [
+ "PR_TITLE",
+ "COMMIT_OR_PR_TITLE"
+ ],
+ "description": "Required when using `squash_merge_commit_message`.\n\nThe default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."
+ },
+ "squash_merge_commit_message": {
+ "type": "string",
+ "enum": [
+ "PR_BODY",
+ "COMMIT_MESSAGES",
+ "BLANK"
+ ],
+ "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."
+ },
+ "merge_commit_title": {
+ "type": "string",
+ "enum": [
+ "PR_TITLE",
+ "MERGE_MESSAGE"
+ ],
+ "description": "Required when using `merge_commit_message`.\n\nThe default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."
+ },
+ "merge_commit_message": {
+ "type": "string",
+ "enum": [
+ "PR_BODY",
+ "PR_TITLE",
+ "BLANK"
+ ],
+ "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."
+ },
+ "archived": {
+ "type": "boolean",
+ "description": "Whether to archive this repository. `false` will unarchive a previously archived repository.",
+ "default": false
+ },
+ "allow_forking": {
+ "type": "boolean",
+ "description": "Either `true` to allow private forks, or `false` to prevent private forks.",
+ "default": false
+ },
+ "web_commit_signoff_required": {
+ "type": "boolean",
+ "description": "Either `true` to require contributors to sign off on web-based commits, or `false` to not require contributors to sign off on web-based commits.",
+ "default": false
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "auto_init": {
+ "description": "Create an initial commit with empty README. Keep this set to true in most cases since many of the policies below cannot be implemented on bare repos",
+ "type": "boolean"
+ },
+ "gitignore_template": {
+ "description": "Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, 'Haskell'.",
+ "type": "string"
+ },
+ "license_template": {
+ "description": "Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, 'mit' or 'mpl-2.0'.",
+ "type": "string"
+ },
+ "topics": {
+ "description": "A list of topics to set on the repository",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "security": {
+ "description": "Settings for Code security and analysis",
+ "type": "object",
+ "properties": {
+ "enableVulnerabilityAlerts": {
+ "type": "boolean"
+ },
+ "enableAutomatedSecurityFixes": {
+ "type": "boolean"
+ }
+ }
+ },
+ "force_create": {
+ "description": "If true, create the repository if it does not already exist.",
+ "type": "boolean"
+ },
+ "template": {
+ "description": "Name of a template repository to use when creating a new repository.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ },
+ "LabelSettings": {
+ "description": "Labels: define labels for Issues and Pull Requests",
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "color": {
+ "description": "The hexadecimal color code for the label. If including a `#`, make sure to wrap it with quotes!",
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "oldname": {
+ "description": "Include the old name to rename an existing label",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "exclude": {
+ "description": "Ignore any labels matching these regexes (don't delete them)",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "CollaboratorSettings": {
+ "description": "A collaborator entry giving a specific user access to a repository.",
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "permission": {
+ "type": "string",
+ "description": "The permission to grant the collaborator. **Only valid on organization-owned repositories.** We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any.",
+ "default": "push"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "exclude": {
+ "description": "You can exclude a list of repos for this collaborator and all repos except these repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "You can include a list of repos for this collaborator and only those repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "TeamSettings": {
+ "description": "A team entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the team."
+ },
+ "description": {
+ "type": "string",
+ "description": "The description of the team."
+ },
+ "maintainers": {
+ "type": "array",
+ "description": "List GitHub usernames for organization members who will become team maintainers.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "repo_names": {
+ "type": "array",
+ "description": "The full name (e.g., \"organization-name/repository-name\") of repositories to add the team to.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "privacy": {
+ "type": "string",
+ "description": "The level of privacy this team should have. The options are: \n**For a non-nested team:** \n * `secret` - only visible to organization owners and members of this team. \n * `closed` - visible to all members of this organization. \nDefault: `secret` \n**For a parent or child team:** \n * `closed` - visible to all members of this organization. \nDefault for child team: `closed`",
+ "enum": [
+ "secret",
+ "closed"
+ ]
+ },
+ "notification_setting": {
+ "type": "string",
+ "description": "The notification setting the team has chosen. The options are: \n * `notifications_enabled` - team members receive notifications when the team is @mentioned. \n * `notifications_disabled` - no one receives notifications. \nDefault: `notifications_enabled`",
+ "enum": [
+ "notifications_enabled",
+ "notifications_disabled"
+ ]
+ },
+ "parent_team_id": {
+ "type": "integer",
+ "description": "The ID of a team to set as the parent team."
+ },
+ "parent_team_slug": {
+ "type": "string",
+ "description": "The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided."
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "MilestoneSettings": {
+ "description": "A milestone entry",
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "state": {
+ "description": "The state of the milestone. Either `open` or `closed`",
+ "type": "string"
+ }
+ }
+ },
+ "BranchSettings": {
+ "description": "A branch protection rule entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "If the name of the branch value is specified as `default`, then the app will create a branch protection rule to apply against the default branch in the repo",
+ "type": "string"
+ },
+ "protection": {
+ "type": "object",
+ "properties": {
+ "required_status_checks": {
+ "type": "object",
+ "description": "Require status checks to pass before merging. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "strict": {
+ "type": "boolean",
+ "description": "Require branches to be up to date before merging."
+ },
+ "contexts": {
+ "type": "array",
+ "deprecated": true,
+ "description": "**Closing down notice**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "checks": {
+ "type": "array",
+ "description": "The list of status checks to require in order to merge into this branch.",
+ "items": {
+ "type": "object",
+ "required": [
+ "context"
+ ],
+ "properties": {
+ "context": {
+ "type": "string",
+ "description": "The name of the required check"
+ },
+ "app_id": {
+ "type": "integer",
+ "description": "The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status."
+ }
+ }
+ }
+ }
+ },
+ "required": [
+ "strict",
+ "contexts"
+ ]
+ },
+ "enforce_admins": {
+ "type": "boolean",
+ "description": "Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable.",
+ "nullable": true
+ },
+ "required_pull_request_reviews": {
+ "type": "object",
+ "description": "Require at least one approving review on a pull request, before merging. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "dismissal_restrictions": {
+ "type": "object",
+ "description": "Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.",
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s with dismissal access",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "dismiss_stale_reviews": {
+ "type": "boolean",
+ "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit."
+ },
+ "require_code_owner_reviews": {
+ "type": "boolean",
+ "description": "Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) review them."
+ },
+ "required_approving_review_count": {
+ "type": "integer",
+ "description": "Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers."
+ },
+ "require_last_push_approval": {
+ "type": "boolean",
+ "description": "Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false`.",
+ "default": false
+ },
+ "bypass_pull_request_allowances": {
+ "type": "object",
+ "description": "Allow specific users, teams, or apps to bypass pull request requirements.",
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s allowed to bypass pull request requirements.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "restrictions": {
+ "type": "object",
+ "description": "Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable.",
+ "nullable": true,
+ "properties": {
+ "users": {
+ "type": "array",
+ "description": "The list of user `login`s with push access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "teams": {
+ "type": "array",
+ "description": "The list of team `slug`s with push access",
+ "items": {
+ "type": "string"
+ }
+ },
+ "apps": {
+ "type": "array",
+ "description": "The list of app `slug`s with push access",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "users",
+ "teams"
+ ]
+ },
+ "required_linear_history": {
+ "type": "boolean",
+ "description": "Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see \"[Requiring a linear commit history](https://docs.github.com/github/administering-a-repository/requiring-a-linear-commit-history)\" in the GitHub Help documentation."
+ },
+ "allow_force_pushes": {
+ "type": "boolean",
+ "description": "Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation.\"",
+ "nullable": true
+ },
+ "allow_deletions": {
+ "type": "boolean",
+ "description": "Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation."
+ },
+ "block_creations": {
+ "type": "boolean",
+ "description": "If set to `true`, the `restrictions` branch protection settings which limits who can push will also block pushes which create new branches, unless the push is initiated by a user, team, or app which has the ability to push. Set to `true` to restrict new branch creation. Default: `false`."
+ },
+ "required_conversation_resolution": {
+ "type": "boolean",
+ "description": "Requires all conversations on code to be resolved before a pull request can be merged into a branch that matches this rule. Set to `false` to disable. Default: `false`."
+ },
+ "lock_branch": {
+ "type": "boolean",
+ "description": "Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. Default: `false`.",
+ "default": false
+ },
+ "allow_fork_syncing": {
+ "type": "boolean",
+ "description": "Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. Default: `false`.",
+ "default": false
+ }
+ },
+ "required": [
+ "required_status_checks",
+ "enforce_admins",
+ "required_pull_request_reviews",
+ "restrictions"
+ ]
+ }
+ }
+ },
+ "AutolinkSettings": {
+ "description": "An autolink reference entry",
+ "type": "object",
+ "properties": {
+ "key_prefix": {
+ "type": "string",
+ "description": "This prefix appended by certain characters will generate a link any time it is found in an issue, pull request, or commit."
+ },
+ "url_template": {
+ "type": "string",
+ "description": "The URL must contain `` for the reference number. `` matches different characters depending on the value of `is_alphanumeric`."
+ },
+ "is_alphanumeric": {
+ "type": "boolean",
+ "default": true,
+ "description": "Whether this autolink reference matches alphanumeric characters. If true, the `` parameter of the `url_template` matches alphanumeric characters `A-Z` (case insensitive), `0-9`, and `-`. If false, this autolink reference only matches numeric characters."
+ }
+ },
+ "required": [
+ "key_prefix",
+ "url_template"
+ ]
+ },
+ "ValidatorSettings": {
+ "description": "Repository name validation",
+ "type": "object",
+ "properties": {
+ "pattern": {
+ "type": "string"
+ }
+ }
+ },
+ "RulesetSettings": {
+ "description": "A ruleset entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the ruleset."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the ruleset",
+ "enum": [
+ "branch",
+ "tag",
+ "push",
+ "repository"
+ ],
+ "default": "branch"
+ },
+ "enforcement": {
+ "type": "string",
+ "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise).",
+ "enum": [
+ "disabled",
+ "active",
+ "evaluate"
+ ]
+ },
+ "bypass_actors": {
+ "type": "array",
+ "description": "The actors that can bypass the rules in this ruleset",
+ "items": {
+ "title": "Repository Ruleset Bypass Actor",
+ "type": "object",
+ "description": "An actor that can bypass rules in a ruleset",
+ "required": [
+ "actor_type"
+ ],
+ "properties": {
+ "actor_id": {
+ "type": "integer",
+ "nullable": true,
+ "description": "The ID of the actor that can bypass a ruleset. Required for `Integration`, `RepositoryRole`, `Team`, and `User` actor types. If `actor_type` is `OrganizationAdmin`, `actor_id` is ignored. If `actor_type` is `DeployKey`, this should be null. `OrganizationAdmin` is not applicable for personal repositories."
+ },
+ "actor_type": {
+ "type": "string",
+ "enum": [
+ "Integration",
+ "OrganizationAdmin",
+ "RepositoryRole",
+ "Team",
+ "DeployKey",
+ "User"
+ ],
+ "description": "The type of actor that can bypass a ruleset."
+ },
+ "bypass_mode": {
+ "type": "string",
+ "description": "When the specified actor can bypass the ruleset. `pull_request` means that an actor can only bypass rules on pull requests. `pull_request` is not applicable for the `DeployKey` actor type. Also, `pull_request` is only applicable to branch rulesets. When `bypass_mode` is `exempt`, rules will not be run for that actor and a bypass audit entry will not be created.",
+ "enum": [
+ "always",
+ "pull_request",
+ "exempt"
+ ],
+ "default": "always"
+ },
+ "name": {
+ "type": "string",
+ "description": "Human-friendly alternative to `actor_id`. The team slug, username, GitHub App slug, or repository role name (resolved using `actor_type`). Cannot be combined with `actor_id`."
+ }
+ }
+ }
+ },
+ "conditions": {
+ "title": "Organization ruleset conditions",
+ "type": "object",
+ "description": "Conditions for an organization ruleset.\nThe branch and tag rulesets conditions object should contain both `repository_name` and `ref_name` properties, or both `repository_id` and `ref_name` properties, or both `repository_property` and `ref_name` properties.\nThe push rulesets conditions object does not require the `ref_name` property.\nFor repository policy rulesets, the conditions object should only contain the `repository_name`, the `repository_id`, or the `repository_property`.",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "repository_name_and_ref_name",
+ "description": "Conditions to target repositories by name and refs by name",
+ "allOf": [
+ {
+ "title": "Repository ruleset conditions for ref names",
+ "type": "object",
+ "description": "Parameters for a repository ruleset ref name condition",
+ "properties": {
+ "ref_name": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Repository ruleset conditions for repository names",
+ "type": "object",
+ "description": "Parameters for a repository name condition",
+ "properties": {
+ "repository_name": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~ALL` to include all repositories.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "protected": {
+ "type": "boolean",
+ "description": "Whether renaming of target repositories is prevented."
+ }
+ }
+ }
+ },
+ "required": [
+ "repository_name"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "object",
+ "title": "repository_id_and_ref_name",
+ "description": "Conditions to target repositories by id and refs by name",
+ "allOf": [
+ {
+ "title": "Repository ruleset conditions for ref names",
+ "type": "object",
+ "description": "Parameters for a repository ruleset ref name condition",
+ "properties": {
+ "ref_name": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Repository ruleset conditions for repository IDs",
+ "type": "object",
+ "description": "Parameters for a repository ID condition",
+ "properties": {
+ "repository_id": {
+ "type": "object",
+ "properties": {
+ "repository_ids": {
+ "type": "array",
+ "description": "The repository IDs that the ruleset applies to. One of these IDs must match for the condition to pass.",
+ "items": {
+ "type": "integer"
+ }
+ }
+ }
+ }
+ },
+ "required": [
+ "repository_id"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "object",
+ "title": "repository_property_and_ref_name",
+ "description": "Conditions to target repositories by property and refs by name",
+ "allOf": [
+ {
+ "title": "Repository ruleset conditions for ref names",
+ "type": "object",
+ "description": "Parameters for a repository ruleset ref name condition",
+ "properties": {
+ "ref_name": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Repository ruleset conditions for repository properties",
+ "type": "object",
+ "description": "Parameters for a repository property condition",
+ "properties": {
+ "repository_property": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "The repository properties and values to include. All of these properties must match for the condition to pass.",
+ "items": {
+ "title": "Repository ruleset property targeting definition",
+ "type": "object",
+ "description": "Parameters for a targeting a repository property",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the repository property to target"
+ },
+ "property_values": {
+ "type": "array",
+ "description": "The values to match for the repository property",
+ "items": {
+ "type": "string"
+ }
+ },
+ "source": {
+ "type": "string",
+ "description": "The source of the repository property. Defaults to 'custom' if not specified.",
+ "enum": [
+ "custom",
+ "system"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "property_values"
+ ]
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "The repository properties and values to exclude. The condition will not pass if any of these properties match.",
+ "items": {
+ "title": "Repository ruleset property targeting definition",
+ "type": "object",
+ "description": "Parameters for a targeting a repository property",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the repository property to target"
+ },
+ "property_values": {
+ "type": "array",
+ "description": "The values to match for the repository property",
+ "items": {
+ "type": "string"
+ }
+ },
+ "source": {
+ "type": "string",
+ "description": "The source of the repository property. Defaults to 'custom' if not specified.",
+ "enum": [
+ "custom",
+ "system"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "property_values"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "required": [
+ "repository_property"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "rules": {
+ "type": "array",
+ "description": "An array of rules within the ruleset.",
+ "items": {
+ "title": "Repository Rule",
+ "type": "object",
+ "description": "A repository rule.",
+ "oneOf": [
+ {
+ "title": "creation",
+ "description": "Only allow users with bypass permission to create matching refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "creation"
+ ]
+ }
+ }
+ },
+ {
+ "title": "update",
+ "description": "Only allow users with bypass permission to update matching refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "update"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "update_allows_fetch_and_merge": {
+ "type": "boolean",
+ "description": "Branch can pull changes from its upstream repository"
+ }
+ },
+ "required": [
+ "update_allows_fetch_and_merge"
+ ]
+ }
+ }
+ },
+ {
+ "title": "deletion",
+ "description": "Only allow users with bypass permissions to delete matching refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "deletion"
+ ]
+ }
+ }
+ },
+ {
+ "title": "required_linear_history",
+ "description": "Prevent merge commits from being pushed to matching refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "required_linear_history"
+ ]
+ }
+ }
+ },
+ {
+ "title": "required_deployments",
+ "description": "Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "required_deployments"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "required_deployment_environments": {
+ "type": "array",
+ "description": "The environments that must be successfully deployed to before branches can be merged.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "required_deployment_environments"
+ ]
+ }
+ }
+ },
+ {
+ "title": "required_signatures",
+ "description": "Commits pushed to matching refs must have verified signatures.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "required_signatures"
+ ]
+ }
+ }
+ },
+ {
+ "title": "pull_request",
+ "description": "Require all commits be made to a non-target branch and submitted via a pull request before they can be merged.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "pull_request"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "allowed_merge_methods": {
+ "type": "array",
+ "description": "Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled.",
+ "items": {
+ "type": "string",
+ "enum": [
+ "merge",
+ "squash",
+ "rebase"
+ ]
+ }
+ },
+ "dismiss_stale_reviews_on_push": {
+ "type": "boolean",
+ "description": "New, reviewable commits pushed will dismiss previous pull request review approvals."
+ },
+ "dismissal_restriction": {
+ "title": "DismissalRestriction",
+ "description": "Specify people, teams, or apps allowed to dismiss pull request reviews.",
+ "type": "object",
+ "properties": {
+ "allowed_actors": {
+ "type": "array",
+ "description": "Specify people, teams, or apps allowed to dismiss pull request reviews.",
+ "items": {
+ "title": "Actor",
+ "description": "An actor allowed to dismiss pull request reviews",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "description": "ID of the actor that can dismiss reviews."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of the actor",
+ "enum": [
+ "User",
+ "Team",
+ "IntegrationInstallation",
+ "RepositoryRole"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ]
+ }
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether to restrict review dismissal to specific actors."
+ }
+ },
+ "required": [
+ "enabled"
+ ]
+ },
+ "require_code_owner_review": {
+ "type": "boolean",
+ "description": "Require an approving review in pull requests that modify files that have a designated code owner."
+ },
+ "require_last_push_approval": {
+ "type": "boolean",
+ "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it."
+ },
+ "required_approving_review_count": {
+ "type": "integer",
+ "description": "The number of approving reviews that are required before a pull request can be merged.",
+ "minimum": 0,
+ "maximum": 10
+ },
+ "required_review_thread_resolution": {
+ "type": "boolean",
+ "description": "All conversations on code must be resolved before a pull request can be merged."
+ },
+ "required_reviewers": {
+ "type": "array",
+ "description": "> [!NOTE]\n> `required_reviewers` is in beta and subject to change.\n\nA collection of reviewers and associated file patterns. Each reviewer has a list of file patterns which determine the files that reviewer is required to review.",
+ "items": {
+ "title": "RequiredReviewerConfiguration",
+ "description": "A reviewing team, and file patterns describing which files they must approve changes to.",
+ "type": "object",
+ "properties": {
+ "file_patterns": {
+ "type": "array",
+ "description": "Array of file patterns. Pull requests which change matching files must be approved by the specified team. File patterns use fnmatch syntax.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "minimum_approvals": {
+ "type": "integer",
+ "description": "Minimum number of approvals required from the specified team. If set to zero, the team will be added to the pull request but approval is optional."
+ },
+ "reviewer": {
+ "title": "Reviewer",
+ "description": "A required reviewing team",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "description": "ID of the reviewer which must review changes to matching files."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of the reviewer",
+ "enum": [
+ "Team"
+ ]
+ },
+ "slug": {
+ "type": "string",
+ "description": "Human-friendly alternative to `id`. The slug of the team that must review changes to matching files. Cannot be combined with `id`."
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ },
+ "required": [
+ "file_patterns",
+ "minimum_approvals",
+ "reviewer"
+ ]
+ }
+ }
+ },
+ "required": [
+ "dismiss_stale_reviews_on_push",
+ "require_code_owner_review",
+ "require_last_push_approval",
+ "required_approving_review_count",
+ "required_review_thread_resolution"
+ ]
+ }
+ }
+ },
+ {
+ "title": "required_status_checks",
+ "description": "Choose which status checks must pass before the ref is updated. When enabled, commits must first be pushed to another ref where the checks pass.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "required_status_checks"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "do_not_enforce_on_create": {
+ "type": "boolean",
+ "description": "Allow repositories and branches to be created if a check would otherwise prohibit it."
+ },
+ "required_status_checks": {
+ "type": "array",
+ "description": "Status checks that are required.",
+ "items": {
+ "title": "StatusCheckConfiguration",
+ "description": "Required status check",
+ "type": "object",
+ "properties": {
+ "context": {
+ "type": "string",
+ "description": "The status check context name that must be present on the commit."
+ },
+ "integration_id": {
+ "type": "integer",
+ "description": "The optional integration ID that this status check must originate from."
+ }
+ },
+ "required": [
+ "context"
+ ]
+ }
+ },
+ "strict_required_status_checks_policy": {
+ "type": "boolean",
+ "description": "Whether pull requests targeting a matching branch must be tested with the latest code. This setting will not take effect unless at least one status check is enabled."
+ }
+ },
+ "required": [
+ "required_status_checks",
+ "strict_required_status_checks_policy"
+ ]
+ }
+ }
+ },
+ {
+ "title": "non_fast_forward",
+ "description": "Prevent users with push access from force pushing to refs.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "non_fast_forward"
+ ]
+ }
+ }
+ },
+ {
+ "title": "commit_message_pattern",
+ "description": "Parameters to be used for the commit_message_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "commit_message_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "commit_author_email_pattern",
+ "description": "Parameters to be used for the commit_author_email_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "commit_author_email_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "committer_email_pattern",
+ "description": "Parameters to be used for the committer_email_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "committer_email_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "branch_name_pattern",
+ "description": "Parameters to be used for the branch_name_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "branch_name_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "tag_name_pattern",
+ "description": "Parameters to be used for the tag_name_pattern rule",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "tag_name_pattern"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "How this rule appears when configuring it."
+ },
+ "negate": {
+ "type": "boolean",
+ "description": "If true, the rule will fail if the pattern matches."
+ },
+ "operator": {
+ "type": "string",
+ "description": "The operator to use for matching.",
+ "enum": [
+ "starts_with",
+ "ends_with",
+ "contains",
+ "regex"
+ ]
+ },
+ "pattern": {
+ "type": "string",
+ "description": "The pattern to match with."
+ }
+ },
+ "required": [
+ "operator",
+ "pattern"
+ ]
+ }
+ }
+ },
+ {
+ "title": "file_path_restriction",
+ "description": "Prevent commits that include changes in specified file and folder paths from being pushed to the commit graph. This includes absolute paths that contain file names.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "file_path_restriction"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "restricted_file_paths": {
+ "type": "array",
+ "description": "The file paths that are restricted from being pushed to the commit graph.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "restricted_file_paths"
+ ]
+ }
+ }
+ },
+ {
+ "title": "max_file_path_length",
+ "description": "Prevent commits that include file paths that exceed the specified character limit from being pushed to the commit graph.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "max_file_path_length"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "max_file_path_length": {
+ "type": "integer",
+ "description": "The maximum amount of characters allowed in file paths.",
+ "minimum": 1,
+ "maximum": 32767
+ }
+ },
+ "required": [
+ "max_file_path_length"
+ ]
+ }
+ }
+ },
+ {
+ "title": "file_extension_restriction",
+ "description": "Prevent commits that include files with specified file extensions from being pushed to the commit graph.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "file_extension_restriction"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "restricted_file_extensions": {
+ "type": "array",
+ "description": "The file extensions that are restricted from being pushed to the commit graph.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "restricted_file_extensions"
+ ]
+ }
+ }
+ },
+ {
+ "title": "max_file_size",
+ "description": "Prevent commits with individual files that exceed the specified limit from being pushed to the commit graph.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "max_file_size"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "max_file_size": {
+ "type": "integer",
+ "description": "The maximum file size allowed in megabytes. This limit does not apply to Git Large File Storage (Git LFS).",
+ "minimum": 1,
+ "maximum": 100
+ }
+ },
+ "required": [
+ "max_file_size"
+ ]
+ }
+ }
+ },
+ {
+ "title": "workflows",
+ "description": "Require all changes made to a targeted branch to pass the specified workflows before they can be merged.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "workflows"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "do_not_enforce_on_create": {
+ "type": "boolean",
+ "description": "Allow repositories and branches to be created if a check would otherwise prohibit it."
+ },
+ "workflows": {
+ "type": "array",
+ "description": "Workflows that must pass for this rule to pass.",
+ "items": {
+ "title": "WorkflowFileReference",
+ "description": "A workflow that must run for this rule to pass",
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "The path to the workflow file"
+ },
+ "ref": {
+ "type": "string",
+ "description": "The ref (branch or tag) of the workflow file to use"
+ },
+ "repository_id": {
+ "type": "integer",
+ "description": "The ID of the repository where the workflow is defined"
+ },
+ "sha": {
+ "type": "string",
+ "description": "The commit SHA of the workflow file to use"
+ }
+ },
+ "required": [
+ "path",
+ "repository_id"
+ ]
+ }
+ }
+ },
+ "required": [
+ "workflows"
+ ]
+ }
+ }
+ },
+ {
+ "title": "code_scanning",
+ "description": "Choose which tools must provide code scanning results before the reference is updated. When configured, code scanning must be enabled and have results for both the commit and the reference being updated.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "code_scanning"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "code_scanning_tools": {
+ "type": "array",
+ "description": "Tools that must provide code scanning results for this rule to pass.",
+ "items": {
+ "title": "CodeScanningTool",
+ "description": "A tool that must provide code scanning results for this rule to pass.",
+ "type": "object",
+ "properties": {
+ "alerts_threshold": {
+ "type": "string",
+ "description": "The severity level at which code scanning results that raise alerts block a reference update. For more information on alert severity levels, see \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels).\"",
+ "enum": [
+ "none",
+ "errors",
+ "errors_and_warnings",
+ "all"
+ ]
+ },
+ "security_alerts_threshold": {
+ "type": "string",
+ "description": "The severity level at which code scanning results that raise security alerts block a reference update. For more information on security severity levels, see \"[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels).\"",
+ "enum": [
+ "none",
+ "critical",
+ "high_or_higher",
+ "medium_or_higher",
+ "all"
+ ]
+ },
+ "tool": {
+ "type": "string",
+ "description": "The name of a code scanning tool"
+ }
+ },
+ "required": [
+ "alerts_threshold",
+ "security_alerts_threshold",
+ "tool"
+ ]
+ }
+ }
+ },
+ "required": [
+ "code_scanning_tools"
+ ]
+ }
+ }
+ },
+ {
+ "title": "copilot_code_review",
+ "description": "Request Copilot code review for new pull requests automatically if the author has access to Copilot code review and their premium requests quota has not reached the limit.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "copilot_code_review"
+ ]
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "review_draft_pull_requests": {
+ "type": "boolean",
+ "description": "Copilot automatically reviews draft pull requests before they are marked as ready for review."
+ },
+ "review_on_push": {
+ "type": "boolean",
+ "description": "Copilot automatically reviews each new push to the pull request."
+ }
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "name",
+ "enforcement"
+ ]
+ },
+ "EnvironmentsSettings": {
+ "description": "A deployment environment configuration entry",
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the deployment environment",
+ "type": "string"
+ },
+ "wait_timer": {
+ "description": "The amount of time to delay a job after the job is initially triggered (in minutes)",
+ "type": "integer"
+ },
+ "reviewers": {
+ "description": "The people or teams that may review jobs that reference the environment",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The type of reviewer (`User` or `Team`)",
+ "type": "string"
+ },
+ "id": {
+ "description": "The id of the user or team who can review the deployment",
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "deployment_branch_policy": {
+ "description": "The type of deployment branch policy for this environment",
+ "type": "object",
+ "properties": {
+ "protected_branches": {
+ "description": "Whether only protected branches can be deployed to this environment",
+ "type": "boolean"
+ },
+ "custom_branch_policies": {
+ "description": "Whether only branches that match the specified name patterns can deploy to this environment",
+ "type": "boolean"
+ }
+ }
+ },
+ "prevent_self_review": {
+ "description": "Whether or not a user who created the job is prevented from approving their own job",
+ "type": "boolean"
+ }
+ }
+ },
+ "CustomPropertiesSettings": {
+ "description": "A custom property entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ },
+ "VariablesSettings": {
+ "description": "An Actions variable entry",
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name of the variable",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the variable",
+ "type": "string"
+ },
+ "visibility": {
+ "description": "The visibility of the variable. Can be `all`, `private`, or `selected`",
+ "type": "string",
+ "enum": [
+ "all",
+ "private",
+ "selected"
+ ]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/schema/repos.json b/schema/repos.json
new file mode 100644
index 000000000..3a7c51301
--- /dev/null
+++ b/schema/repos.json
@@ -0,0 +1,324 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "title": "Safe-settings repo-level configuration",
+ "description": "Schema for .github/repos/{repo-name}.yml — repo-level safe-settings override configuration. Settings here are merged on top of org-level and suborg-level settings for the specific repository.",
+ "type": "object",
+ "properties": {
+ "repositories": {
+ "$ref": "#/$defs/RepositorySettings"
+ },
+ "labels": {
+ "$ref": "#/$defs/LabelSettings"
+ },
+ "collaborators": {
+ "description": "Collaborators: give specific users access to any repository.",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/CollaboratorSettings"
+ }
+ },
+ "teams": {
+ "description": "Teams",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/TeamSettings"
+ }
+ },
+ "milestones": {
+ "description": "Milestones: define milestones for Issues and Pull Requests",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/MilestoneSettings"
+ }
+ },
+ "branches": {
+ "description": "Branch protection rules",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/BranchSettings"
+ }
+ },
+ "autolinks": {
+ "description": "Autolinks",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/AutolinkSettings"
+ }
+ },
+ "validator": {
+ "$ref": "#/$defs/ValidatorSettings"
+ },
+ "environments": {
+ "description": "Deployment environments",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/EnvironmentsSettings"
+ }
+ },
+ "custom_properties": {
+ "description": "Custom properties",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/CustomPropertiesSettings"
+ }
+ },
+ "variables": {
+ "description": "Repository or org-level Actions variables",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/VariablesSettings"
+ }
+ }
+ },
+ "$defs": {
+ "RepositorySettings": {
+ "description": "Repository settings",
+ "allOf": [
+ {
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1repos~1{owner}~1{repo}/patch/requestBody/content/application~1json/schema"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "auto_init": {
+ "description": "Create an initial commit with empty README. Keep this set to true in most cases since many of the policies below cannot be implemented on bare repos",
+ "type": "boolean"
+ },
+ "gitignore_template": {
+ "description": "Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, 'Haskell'.",
+ "type": "string"
+ },
+ "license_template": {
+ "description": "Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, 'mit' or 'mpl-2.0'.",
+ "type": "string"
+ },
+ "topics": {
+ "description": "A list of topics to set on the repository",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "security": {
+ "description": "Settings for Code security and analysis",
+ "type": "object",
+ "properties": {
+ "enableVulnerabilityAlerts": {
+ "type": "boolean"
+ },
+ "enableAutomatedSecurityFixes": {
+ "type": "boolean"
+ }
+ }
+ },
+ "force_create": {
+ "description": "If true, create the repository if it does not already exist.",
+ "type": "boolean"
+ },
+ "template": {
+ "description": "Name of a template repository to use when creating a new repository.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ },
+ "LabelSettings": {
+ "description": "Labels: define labels for Issues and Pull Requests",
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "color": {
+ "description": "The hexadecimal color code for the label. If including a `#`, make sure to wrap it with quotes!",
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "oldname": {
+ "description": "Include the old name to rename an existing label",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "exclude": {
+ "description": "Ignore any labels matching these regexes (don't delete them)",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "CollaboratorSettings": {
+ "description": "A collaborator entry giving a specific user access to a repository.",
+ "allOf": [
+ {
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1repos~1{owner}~1{repo}~1collaborators~1{username}/put/requestBody/content/application~1json/schema"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "exclude": {
+ "description": "You can exclude a list of repos for this collaborator and all repos except these repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "You can include a list of repos for this collaborator and only those repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "TeamSettings": {
+ "description": "A team entry",
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1orgs~1{org}~1teams/post/requestBody/content/application~1json/schema"
+ },
+ "MilestoneSettings": {
+ "description": "A milestone entry",
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "state": {
+ "description": "The state of the milestone. Either `open` or `closed`",
+ "type": "string"
+ }
+ }
+ },
+ "BranchSettings": {
+ "description": "A branch protection rule entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "If the name of the branch value is specified as `default`, then the app will create a branch protection rule to apply against the default branch in the repo",
+ "type": "string"
+ },
+ "protection": {
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1repos~1{owner}~1{repo}~1branches~1{branch}~1protection/put/requestBody/content/application~1json/schema"
+ }
+ }
+ },
+ "AutolinkSettings": {
+ "description": "An autolink reference entry",
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1repos~1{owner}~1{repo}~1autolinks/post/requestBody/content/application~1json/schema"
+ },
+ "ValidatorSettings": {
+ "description": "Repository name validation",
+ "type": "object",
+ "properties": {
+ "pattern": {
+ "type": "string"
+ }
+ }
+ },
+ "RulesetSettings": {
+ "description": "A ruleset entry",
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1orgs~1{org}~1rulesets/post/requestBody/content/application~1json/schema"
+ },
+ "EnvironmentsSettings": {
+ "description": "A deployment environment configuration entry",
+ "type": "object",
+ "required": ["name"],
+ "properties": {
+ "name": {
+ "description": "The name of the deployment environment",
+ "type": "string"
+ },
+ "wait_timer": {
+ "description": "The amount of time to delay a job after the job is initially triggered (in minutes)",
+ "type": "integer"
+ },
+ "reviewers": {
+ "description": "The people or teams that may review jobs that reference the environment",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The type of reviewer (`User` or `Team`)",
+ "type": "string"
+ },
+ "id": {
+ "description": "The id of the user or team who can review the deployment",
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "deployment_branch_policy": {
+ "description": "The type of deployment branch policy for this environment",
+ "type": "object",
+ "properties": {
+ "protected_branches": {
+ "description": "Whether only protected branches can be deployed to this environment",
+ "type": "boolean"
+ },
+ "custom_branch_policies": {
+ "description": "Whether only branches that match the specified name patterns can deploy to this environment",
+ "type": "boolean"
+ }
+ }
+ },
+ "prevent_self_review": {
+ "description": "Whether or not a user who created the job is prevented from approving their own job",
+ "type": "boolean"
+ }
+ }
+ },
+ "CustomPropertiesSettings": {
+ "description": "A custom property entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ },
+ "VariablesSettings": {
+ "description": "An Actions variable entry",
+ "type": "object",
+ "required": ["name", "value"],
+ "properties": {
+ "name": {
+ "description": "The name of the variable",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the variable",
+ "type": "string"
+ },
+ "visibility": {
+ "description": "The visibility of the variable. Can be `all`, `private`, or `selected`",
+ "type": "string",
+ "enum": ["all", "private", "selected"]
+ }
+ }
+ }
+ }
+}
diff --git a/schema/settings.json b/schema/settings.json
index 2580ecff1..71eec48a2 100644
--- a/schema/settings.json
+++ b/schema/settings.json
@@ -1,11 +1,88 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
+ "title": "Safe-settings org-level configuration",
+ "description": "Schema for .github/settings.yml — org-level safe-settings configuration",
"type": "object",
"properties": {
"repositories": {
+ "$ref": "#/$defs/RepositorySettings"
+ },
+ "labels": {
+ "$ref": "#/$defs/LabelSettings"
+ },
+ "collaborators": {
+ "description": "Collaborators: give specific users access to any repository.",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/CollaboratorSettings"
+ }
+ },
+ "teams": {
+ "description": "Teams",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/TeamSettings"
+ }
+ },
+ "milestones": {
+ "description": "Milestones: define milestones for Issues and Pull Requests",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/MilestoneSettings"
+ }
+ },
+ "branches": {
+ "description": "Branch protection rules",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/BranchSettings"
+ }
+ },
+ "autolinks": {
+ "description": "Autolinks",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/AutolinkSettings"
+ }
+ },
+ "validator": {
+ "$ref": "#/$defs/ValidatorSettings"
+ },
+ "rulesets": {
+ "description": "Rulesets. Org-level only — rulesets defined here apply to the organization and are NOT inherited by suborg or repo override files.",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/RulesetSettings"
+ }
+ },
+ "environments": {
+ "description": "Deployment environments",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/EnvironmentsSettings"
+ }
+ },
+ "custom_properties": {
+ "description": "Custom properties",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/CustomPropertiesSettings"
+ }
+ },
+ "variables": {
+ "description": "Repository or org-level Actions variables",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/VariablesSettings"
+ }
+ }
+ },
+ "$defs": {
+ "RepositorySettings": {
+ "description": "Repository settings",
"allOf": [
{
- "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2022-11-28.json#/paths/~1repos~1{owner}~1{repo}/patch/requestBody/content/application~1json/schema"
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1repos~1{owner}~1{repo}/patch/requestBody/content/application~1json/schema"
},
{
"type": "object",
@@ -40,12 +117,20 @@
"type": "boolean"
}
}
+ },
+ "force_create": {
+ "description": "Force create the repository",
+ "type": "boolean"
+ },
+ "template": {
+ "description": "Name of a template repository to use when creating the repository",
+ "type": "string"
}
}
}
]
},
- "labels": {
+ "LabelSettings": {
"description": "Labels: define labels for Issues and Pull Requests",
"type": "object",
"properties": {
@@ -80,160 +165,210 @@
}
}
},
- "milestones": {
- "description": "Milestones: define milestones for Issues and Pull Requests",
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "state": {
- "description": "The state of the milestone. Either `open` or `closed`",
- "type": "string"
+ "CollaboratorSettings": {
+ "description": "A collaborator entry giving a specific user access to a repository.",
+ "allOf": [
+ {
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1repos~1{owner}~1{repo}~1collaborators~1{username}/put/requestBody/content/application~1json/schema"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "exclude": {
+ "description": "You can exclude a list of repos for this collaborator and all repos except these repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "You can include a list of repos for this collaborator and only those repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
}
}
- }
+ ]
},
- "collaborators": {
- "description": "Collaborators: give specific users access to any repository.",
- "type": "array",
- "items": {
- "allOf": [
- {
- "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2022-11-28.json#/paths/~1repos~1{owner}~1{repo}~1collaborators~1{username}/put/requestBody/content/application~1json/schema"
- },
- {
- "type": "object",
- "properties": {
- "username": {
+ "TeamSettings": {
+ "description": "A team entry",
+ "allOf": [
+ {
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1orgs~1{org}~1teams~1{team_slug}~1repos~1{owner}~1{repo}/put/requestBody/content/application~1json/schema"
+ },
+ {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name (or slug) of the team to grant access to the repo.",
+ "type": "string"
+ },
+ "privacy": {
+ "description": "The level of privacy the team should have when it is created by safe-settings. The options are `secret` (visible only to organization owners and members of the team) or `closed` (visible to all members of the organization).",
+ "type": "string",
+ "enum": [
+ "secret",
+ "closed"
+ ]
+ },
+ "external_group": {
+ "description": "The display name of an external IdP group to link to this team.",
+ "type": "string"
+ },
+ "exclude": {
+ "description": "Exclude this team from repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "Apply this team only to repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
"type": "string"
- },
- "exclude": {
- "description": "You can exclude a list of repos for this collaborator and all repos except these repos would have this collaborator",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "include": {
- "description": "You can include a list of repos for this collaborator and only those repos would have this collaborator",
- "type": "array",
- "items": {
- "type": "string"
- }
}
}
}
- ]
+ }
+ ]
+ },
+ "MilestoneSettings": {
+ "description": "A milestone entry",
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "state": {
+ "description": "The state of the milestone. Either `open` or `closed`",
+ "type": "string"
+ }
}
},
- "teams": {
- "description": "Teams",
- "type": "array",
- "items": {
- "allOf": [
- {
- "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2022-11-28.json#/paths/~1orgs~1{org}~1teams~1{team_slug}~1repos~1{owner}~1{repo}/put/requestBody/content/application~1json/schema"
- },
- {
+ "BranchSettings": {
+ "description": "A branch protection rule entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "If the name of the branch value is specified as `default`, then the app will create a branch protection rule to apply against the default branch in the repo",
+ "type": "string"
+ },
+ "protection": {
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1repos~1{owner}~1{repo}~1branches~1{branch}~1protection/put/requestBody/content/application~1json/schema"
+ }
+ }
+ },
+ "AutolinkSettings": {
+ "description": "An autolink reference entry",
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1repos~1{owner}~1{repo}~1autolinks/post/requestBody/content/application~1json/schema"
+ },
+ "ValidatorSettings": {
+ "description": "Repository name validation",
+ "type": "object",
+ "properties": {
+ "pattern": {
+ "type": "string"
+ }
+ }
+ },
+ "RulesetSettings": {
+ "description": "A ruleset entry",
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1orgs~1{org}~1rulesets/post/requestBody/content/application~1json/schema"
+ },
+ "EnvironmentsSettings": {
+ "description": "A deployment environment configuration entry",
+ "type": "object",
+ "required": ["name"],
+ "properties": {
+ "name": {
+ "description": "The name of the deployment environment",
+ "type": "string"
+ },
+ "wait_timer": {
+ "description": "The amount of time to delay a job after the job is initially triggered (in minutes)",
+ "type": "integer"
+ },
+ "reviewers": {
+ "description": "The people or teams that may review jobs that reference the environment",
+ "type": "array",
+ "items": {
"type": "object",
- "required": [
- "name"
- ],
"properties": {
- "name": {
- "description": "The name (or slug) of the team to grant access to the repo.",
- "type": "string"
- },
- "privacy": {
- "description": "The level of privacy the team should have when it is created by safe-settings. The options are `secret` (visible only to organization owners and members of the team) or `closed` (visible to all members of the organization).",
- "type": "string",
- "enum": [
- "secret",
- "closed"
- ]
- },
- "external_group": {
- "description": "The display name of an external IdP group to link to this team.",
+ "type": {
+ "description": "The type of reviewer (`User` or `Team`)",
"type": "string"
},
- "exclude": {
- "description": "Exclude this team from repos whose names match one of these glob patterns.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "include": {
- "description": "Apply this team only to repos whose names match one of these glob patterns.",
- "type": "array",
- "items": {
- "type": "string"
- }
+ "id": {
+ "description": "The id of the user or team who can review the deployment",
+ "type": "integer"
}
}
}
- ]
- }
- },
- "branches": {
- "description": "Branch protection rules",
- "type": "array",
- "items": {
- "properties": {
- "name": {
- "description": "If the name of the branch value is specified as `default`, then the app will create a branch protection rule to apply against the default branch in the repo",
- "type": "string"
- },
- "protection": {
- "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2022-11-28.json#/paths/~1repos~1{owner}~1{repo}~1branches~1{branch}~1protection/put/requestBody/content/application~1json/schema"
+ },
+ "deployment_branch_policy": {
+ "description": "The type of deployment branch policy for this environment",
+ "type": "object",
+ "properties": {
+ "protected_branches": {
+ "description": "Whether only protected branches can be deployed to this environment",
+ "type": "boolean"
+ },
+ "custom_branch_policies": {
+ "description": "Whether only branches that match the specified name patterns can deploy to this environment",
+ "type": "boolean"
+ }
}
+ },
+ "prevent_self_review": {
+ "description": "Whether or not a user who created the job is prevented from approving their own job",
+ "type": "boolean"
}
}
},
- "custom_properties": {
- "description": "Custom properties",
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "value": {
- "type": "string"
- }
+ "CustomPropertiesSettings": {
+ "description": "A custom property entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
}
}
},
- "autolinks": {
- "description": "Autolinks",
- "type": "array",
- "items": {
- "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2022-11-28.json#/paths/~1repos~1{owner}~1{repo}~1autolinks/post/requestBody/content/application~1json/schema"
- }
- },
- "validator": {
- "description": "Repository name validation",
+ "VariablesSettings": {
+ "description": "An Actions variable entry",
"type": "object",
+ "required": ["name", "value"],
"properties": {
- "pattern": {
+ "name": {
+ "description": "The name of the variable",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the variable",
"type": "string"
+ },
+ "visibility": {
+ "description": "The visibility of the variable. Can be `all`, `private`, or `selected`",
+ "type": "string",
+ "enum": ["all", "private", "selected"]
}
}
},
- "rulesets": {
- "description": "Rulesets",
- "type": "array",
- "items": {
- "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2022-11-28.json#/paths/~1orgs~1{org}~1rulesets/post/requestBody/content/application~1json/schema"
- }
- },
"custom_repository_roles": {
"description": "Org-level custom repository roles. Only valid in the org-level settings.yml.",
"type": "array",
diff --git a/schema/suborgs.json b/schema/suborgs.json
new file mode 100644
index 000000000..3a3c79def
--- /dev/null
+++ b/schema/suborgs.json
@@ -0,0 +1,358 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "title": "Safe-settings suborg-level configuration",
+ "description": "Schema for .github/suborgs/*.yml — suborg-level safe-settings configuration. Defines which repos belong to the suborg and what settings to apply.",
+ "type": "object",
+ "properties": {
+ "suborgrepos": {
+ "type": "array",
+ "description": "Glob patterns matching repository names. Repos whose names match any pattern are included in this suborg.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "suborgteams": {
+ "type": "array",
+ "description": "Team slugs. Repos that belong to any of these teams are included in this suborg.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "suborgproperties": {
+ "type": "array",
+ "description": "Custom property filters. Repos with matching custom property values are included in this suborg.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "property_name": {
+ "type": "string",
+ "description": "The name of the custom property"
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Accepted values for this property"
+ }
+ }
+ }
+ },
+ "repositories": {
+ "$ref": "#/$defs/RepositorySettings"
+ },
+ "labels": {
+ "$ref": "#/$defs/LabelSettings"
+ },
+ "collaborators": {
+ "description": "Collaborators: give specific users access to any repository.",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/CollaboratorSettings"
+ }
+ },
+ "teams": {
+ "description": "Teams",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/TeamSettings"
+ }
+ },
+ "milestones": {
+ "description": "Milestones: define milestones for Issues and Pull Requests",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/MilestoneSettings"
+ }
+ },
+ "branches": {
+ "description": "Branch protection rules",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/BranchSettings"
+ }
+ },
+ "autolinks": {
+ "description": "Autolinks",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/AutolinkSettings"
+ }
+ },
+ "validator": {
+ "$ref": "#/$defs/ValidatorSettings"
+ },
+ "environments": {
+ "description": "Deployment environments",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/EnvironmentsSettings"
+ }
+ },
+ "custom_properties": {
+ "description": "Custom properties",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/CustomPropertiesSettings"
+ }
+ },
+ "variables": {
+ "description": "Repository or org-level Actions variables",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/VariablesSettings"
+ }
+ }
+ },
+ "$defs": {
+ "RepositorySettings": {
+ "description": "Repository settings. Use force_create to create the repository if it does not exist, and template to specify a template repository to use when creating it.",
+ "allOf": [
+ {
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1repos~1{owner}~1{repo}/patch/requestBody/content/application~1json/schema"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "auto_init": {
+ "description": "Create an initial commit with empty README. Keep this set to true in most cases since many of the policies below cannot be implemented on bare repos",
+ "type": "boolean"
+ },
+ "gitignore_template": {
+ "description": "Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, 'Haskell'.",
+ "type": "string"
+ },
+ "license_template": {
+ "description": "Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, 'mit' or 'mpl-2.0'.",
+ "type": "string"
+ },
+ "topics": {
+ "description": "A list of topics to set on the repository",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "security": {
+ "description": "Settings for Code security and analysis",
+ "type": "object",
+ "properties": {
+ "enableVulnerabilityAlerts": {
+ "type": "boolean"
+ },
+ "enableAutomatedSecurityFixes": {
+ "type": "boolean"
+ }
+ }
+ },
+ "force_create": {
+ "description": "If true, create the repository if it does not already exist.",
+ "type": "boolean"
+ },
+ "template": {
+ "description": "Name of a template repository to use when creating a new repository.",
+ "type": "string"
+ }
+ }
+ }
+ ]
+ },
+ "LabelSettings": {
+ "description": "Labels: define labels for Issues and Pull Requests",
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "color": {
+ "description": "The hexadecimal color code for the label. If including a `#`, make sure to wrap it with quotes!",
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "oldname": {
+ "description": "Include the old name to rename an existing label",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "exclude": {
+ "description": "Ignore any labels matching these regexes (don't delete them)",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "CollaboratorSettings": {
+ "description": "A collaborator entry giving a specific user access to a repository.",
+ "allOf": [
+ {
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1repos~1{owner}~1{repo}~1collaborators~1{username}/put/requestBody/content/application~1json/schema"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "exclude": {
+ "description": "You can exclude a list of repos for this collaborator and all repos except these repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "You can include a list of repos for this collaborator and only those repos would have this collaborator",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "TeamSettings": {
+ "description": "A team entry",
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1orgs~1{org}~1teams/post/requestBody/content/application~1json/schema"
+ },
+ "MilestoneSettings": {
+ "description": "A milestone entry",
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "state": {
+ "description": "The state of the milestone. Either `open` or `closed`",
+ "type": "string"
+ }
+ }
+ },
+ "BranchSettings": {
+ "description": "A branch protection rule entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "If the name of the branch value is specified as `default`, then the app will create a branch protection rule to apply against the default branch in the repo",
+ "type": "string"
+ },
+ "protection": {
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1repos~1{owner}~1{repo}~1branches~1{branch}~1protection/put/requestBody/content/application~1json/schema"
+ }
+ }
+ },
+ "AutolinkSettings": {
+ "description": "An autolink reference entry",
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1repos~1{owner}~1{repo}~1autolinks/post/requestBody/content/application~1json/schema"
+ },
+ "ValidatorSettings": {
+ "description": "Repository name validation",
+ "type": "object",
+ "properties": {
+ "pattern": {
+ "type": "string"
+ }
+ }
+ },
+ "RulesetSettings": {
+ "description": "A ruleset entry",
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1orgs~1{org}~1rulesets/post/requestBody/content/application~1json/schema"
+ },
+ "EnvironmentsSettings": {
+ "description": "A deployment environment configuration entry",
+ "type": "object",
+ "required": ["name"],
+ "properties": {
+ "name": {
+ "description": "The name of the deployment environment",
+ "type": "string"
+ },
+ "wait_timer": {
+ "description": "The amount of time to delay a job after the job is initially triggered (in minutes)",
+ "type": "integer"
+ },
+ "reviewers": {
+ "description": "The people or teams that may review jobs that reference the environment",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The type of reviewer (`User` or `Team`)",
+ "type": "string"
+ },
+ "id": {
+ "description": "The id of the user or team who can review the deployment",
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "deployment_branch_policy": {
+ "description": "The type of deployment branch policy for this environment",
+ "type": "object",
+ "properties": {
+ "protected_branches": {
+ "description": "Whether only protected branches can be deployed to this environment",
+ "type": "boolean"
+ },
+ "custom_branch_policies": {
+ "description": "Whether only branches that match the specified name patterns can deploy to this environment",
+ "type": "boolean"
+ }
+ }
+ },
+ "prevent_self_review": {
+ "description": "Whether or not a user who created the job is prevented from approving their own job",
+ "type": "boolean"
+ }
+ }
+ },
+ "CustomPropertiesSettings": {
+ "description": "A custom property entry",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ },
+ "VariablesSettings": {
+ "description": "An Actions variable entry",
+ "type": "object",
+ "required": ["name", "value"],
+ "properties": {
+ "name": {
+ "description": "The name of the variable",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value of the variable",
+ "type": "string"
+ },
+ "visibility": {
+ "description": "The visibility of the variable. Can be `all`, `private`, or `selected`",
+ "type": "string",
+ "enum": ["all", "private", "selected"]
+ }
+ }
+ }
+ }
+}
diff --git a/script/build-schema b/script/build-schema
index 68b59dd20..951f3bc76 100755
--- a/script/build-schema
+++ b/script/build-schema
@@ -1,7 +1,8 @@
#!/usr/bin/env node
const $RefParser = require('@apidevtools/json-schema-ref-parser')
-const fs = require('node:fs/promises');
+const fs = require('node:fs/promises')
+const path = require('node:path')
// Safe-settings lets users reference ruleset bypass actors and required
// reviewers by name instead of numeric id. GitHub's published schema only
@@ -42,15 +43,58 @@ const augmentRulesetAliases = (node) => {
for (const value of Object.values(node)) {
if (value && typeof value === 'object') augmentRulesetAliases(value)
}
-};
+}
-(async () => {
- const schema = await fs.readFile('schema/settings.json', 'utf-8').then(JSON.parse)
+const schemas = [
+ { src: 'schema/settings.json', dest: 'schema/dereferenced/settings.json' },
+ { src: 'schema/suborgs.json', dest: 'schema/dereferenced/suborgs.json' },
+ { src: 'schema/repos.json', dest: 'schema/dereferenced/repos.json' }
+]
- await $RefParser.dereference(schema)
+;(async () => {
+ await fs.mkdir('schema/dereferenced', { recursive: true })
- augmentRulesetAliases(schema)
+ // Find the GitHub API spec URL from the schema files.
+ // The URL in the schema files is the single source of truth for which version is used.
+ const specUrlPattern = /(https:\/\/raw\.githubusercontent\.com\/github\/rest-api-description[^#"]+api\.github\.com[^#"]*\.json)/
+ let specUrl
+ for (const { src } of schemas) {
+ const match = (await fs.readFile(src, 'utf8')).match(specUrlPattern)
+ if (match) { specUrl = match[1]; break }
+ }
- await fs.mkdir('schema/dereferenced', { recursive: true })
- await fs.writeFile('schema/dereferenced/settings.json', JSON.stringify(schema, null, 2))
+ if (!specUrl) {
+ console.error('Could not find GitHub API spec URL in schema files.')
+ process.exit(1)
+ }
+
+ // Pre-dereference the spec so all internal $refs (e.g. #/components/schemas/...)
+ // are resolved before it is used as an external reference target.
+ console.log(`Fetching ${specUrl} ...`)
+ const resolvedSpec = await $RefParser.dereference(specUrl)
+
+ const githubApiResolver = {
+ order: 1,
+ canRead: /\/descriptions\/api\.github\.com\/api\.github\.com/,
+ read: () => resolvedSpec
+ }
+
+ let hasErrors = false
+ for (const { src, dest } of schemas) {
+ try {
+ const dereferenced = await $RefParser.dereference(path.resolve(src), {
+ resolve: { githubApi: githubApiResolver }
+ })
+ // Inject name-based aliases (bypass_actors[].name, reviewer.slug) that
+ // safe-settings supports but the published GitHub schema does not.
+ augmentRulesetAliases(dereferenced)
+ await fs.writeFile(dest, JSON.stringify(dereferenced, null, 2))
+ console.log(`Dereferenced ${src} → ${dest}`)
+ } catch (err) {
+ console.error(`Error dereferencing ${src}: ${err.message}`)
+ hasErrors = true
+ }
+ }
+
+ if (hasErrors) process.exit(1)
})().catch(console.error)
diff --git a/test/setup.js b/test/setup.js
new file mode 100644
index 000000000..3bb75c781
--- /dev/null
+++ b/test/setup.js
@@ -0,0 +1,14 @@
+/* eslint-disable no-undef */
+// Fail tests that produce unexpected console.error output.
+// This ensures that caught-but-logged errors in production code don't
+// silently slip through the test suite (e.g. TypeError inside a catch block
+// that logs via this.log.error = console.error).
+beforeEach(() => {
+ jest.spyOn(console, 'error').mockImplementation((...args) => {
+ throw new Error(`Unexpected console.error call in test: ${args.join(' ')}`)
+ })
+})
+
+afterEach(() => {
+ jest.restoreAllMocks()
+})
diff --git a/test/unit/index.test.js b/test/unit/index.test.js
index feae42d95..3b61afdd7 100644
--- a/test/unit/index.test.js
+++ b/test/unit/index.test.js
@@ -1,3 +1,4 @@
+jest.mock('probot', () => ({ Probot: class Probot {} }))
const { Probot } = require('probot')
const plugin = require('../../index')
diff --git a/test/unit/lib/plugins/archive.test.js b/test/unit/lib/plugins/archive.test.js
index 9aa690442..0ed0f38d1 100644
--- a/test/unit/lib/plugins/archive.test.js
+++ b/test/unit/lib/plugins/archive.test.js
@@ -10,9 +10,11 @@ describe('Archive Plugin', () => {
beforeEach(() => {
github = {
- repos: {
- get: jest.fn(),
- update: jest.fn().mockReturnValue({ data: {} })
+ rest: {
+ repos: {
+ get: jest.fn(),
+ update: jest.fn().mockReturnValue({ data: {} })
+ }
}
}
repo = { owner: 'test-owner', repo: 'test-repo' }
@@ -23,19 +25,19 @@ describe('Archive Plugin', () => {
describe('getRepo', () => {
it('returns repository data when found', async () => {
const mockData = { archived: false }
- github.repos.get.mockResolvedValue({ data: mockData })
+ github.rest.repos.get.mockResolvedValue({ data: mockData })
archive = new Archive(false, github, repo, settings, log)
const result = await archive.getRepo()
expect(result).toEqual(mockData)
- expect(github.repos.get).toHaveBeenCalledWith({
+ expect(github.rest.repos.get).toHaveBeenCalledWith({
owner: repo.owner,
repo: repo.repo
})
})
it('returns null when repo not found and no archive state defined', async () => {
- github.repos.get.mockRejectedValue({ status: 404 })
+ github.rest.repos.get.mockRejectedValue({ status: 404 })
archive = new Archive(false, github, repo, settings, log)
const result = await archive.getRepo()
@@ -44,7 +46,7 @@ describe('Archive Plugin', () => {
it('throws error for non-404 errors', async () => {
const error = { status: 500 }
- github.repos.get.mockRejectedValue(error)
+ github.rest.repos.get.mockRejectedValue(error)
archive = new Archive(false, github, repo, settings, log)
await expect(archive.getRepo()).rejects.toEqual(error)
@@ -55,7 +57,7 @@ describe('Archive Plugin', () => {
it('returns NopCommand when nop is true', async () => {
archive = new Archive(true, github, repo, settings, log)
const mockEndpoint = { method: 'PATCH', url: '/repos/{owner}/{repo}' }
- github.repos.update.endpoint = jest.fn().mockReturnValue(mockEndpoint)
+ github.rest.repos.update.endpoint = jest.fn().mockReturnValue(mockEndpoint)
const result = await archive.updateRepoArchiveStatus(true)
expect(result).toBeInstanceOf(NopCommand)
@@ -65,7 +67,7 @@ describe('Archive Plugin', () => {
archive = new Archive(false, github, repo, settings, log)
await archive.updateRepoArchiveStatus(true)
- expect(github.repos.update).toHaveBeenCalledWith({
+ expect(github.rest.repos.update).toHaveBeenCalledWith({
owner: repo.owner,
repo: repo.repo,
archived: true
@@ -97,7 +99,7 @@ describe('Archive Plugin', () => {
})
it('returns empty results when no archive changes needed', async () => {
- github.repos.get.mockResolvedValue({
+ github.rest.repos.get.mockResolvedValue({
data: { archived: false }
})
settings.archived = false
@@ -108,14 +110,14 @@ describe('Archive Plugin', () => {
})
it('archives repo when shouldArchive is true', async () => {
- github.repos.get.mockResolvedValue({
+ github.rest.repos.get.mockResolvedValue({
data: { archived: false }
})
settings.archived = true
const results = await archive.sync()
expect(results).toHaveLength(1)
- expect(github.repos.update).toHaveBeenCalledWith({
+ expect(github.rest.repos.update).toHaveBeenCalledWith({
owner: repo.owner,
repo: repo.repo,
archived: true
diff --git a/test/unit/lib/plugins/autolinks.test.js b/test/unit/lib/plugins/autolinks.test.js
index 10413cc1a..02829daa0 100644
--- a/test/unit/lib/plugins/autolinks.test.js
+++ b/test/unit/lib/plugins/autolinks.test.js
@@ -13,10 +13,12 @@ describe('Autolinks', () => {
beforeEach(() => {
github = {
- repos: {
- listAutolinks: jest.fn().mockResolvedValue([]),
- createAutolink: jest.fn().mockResolvedValue(),
- deleteAutolink: jest.fn().mockResolvedValue()
+ rest: {
+ repos: {
+ listAutolinks: jest.fn().mockResolvedValue([]),
+ createAutolink: jest.fn().mockResolvedValue(),
+ deleteAutolink: jest.fn().mockResolvedValue()
+ }
}
}
})
@@ -35,7 +37,7 @@ describe('Autolinks', () => {
{ key_prefix: 'NEW_ALPHA-TRUE-', url_template: 'https://test/', is_alphanumeric: true }
])
- github.repos.listAutolinks.mockResolvedValueOnce({
+ github.rest.repos.listAutolinks.mockResolvedValueOnce({
data: [
{ id: '1', key_prefix: 'SAME-', url_template: 'https://test/', is_alphanumeric: true },
{ id: '2', key_prefix: 'REMOVE-', url_template: 'https://test/', is_alphanumeric: true },
@@ -50,97 +52,97 @@ describe('Autolinks', () => {
})
return plugin.sync().then(() => {
- expect(github.repos.createAutolink).toHaveBeenCalledWith({
+ expect(github.rest.repos.createAutolink).toHaveBeenCalledWith({
key_prefix: 'ADD-',
url_template: 'https://test/',
is_alphanumeric: true,
...repo
})
- expect(github.repos.deleteAutolink).toHaveBeenCalledWith({
+ expect(github.rest.repos.deleteAutolink).toHaveBeenCalledWith({
autolink_id: '2',
...repo
})
- expect(github.repos.deleteAutolink).toHaveBeenCalledWith({
+ expect(github.rest.repos.deleteAutolink).toHaveBeenCalledWith({
autolink_id: '3',
...repo
})
- expect(github.repos.createAutolink).toHaveBeenCalledWith({
+ expect(github.rest.repos.createAutolink).toHaveBeenCalledWith({
key_prefix: 'NEW_URL-',
url_template: 'https://new-url/',
is_alphanumeric: true,
...repo
})
- expect(github.repos.deleteAutolink).not.toHaveBeenCalledWith({
+ expect(github.rest.repos.deleteAutolink).not.toHaveBeenCalledWith({
autolink_id: '4',
...repo
})
- expect(github.repos.createAutolink).not.toHaveBeenCalledWith({
+ expect(github.rest.repos.createAutolink).not.toHaveBeenCalledWith({
key_prefix: 'SAME_ALPHA-UNDEFINED-',
url_template: 'https://test/',
is_alphanumeric: true,
...repo
})
- expect(github.repos.deleteAutolink).not.toHaveBeenCalledWith({
+ expect(github.rest.repos.deleteAutolink).not.toHaveBeenCalledWith({
autolink_id: '5',
...repo
})
- expect(github.repos.createAutolink).not.toHaveBeenCalledWith({
+ expect(github.rest.repos.createAutolink).not.toHaveBeenCalledWith({
key_prefix: 'SAME_ALPHA-FALSE-',
url_template: 'https://test/',
is_alphanumeric: false,
...repo
})
- expect(github.repos.deleteAutolink).not.toHaveBeenCalledWith({
+ expect(github.rest.repos.deleteAutolink).not.toHaveBeenCalledWith({
autolink_id: '6',
...repo
})
- expect(github.repos.createAutolink).not.toHaveBeenCalledWith({
+ expect(github.rest.repos.createAutolink).not.toHaveBeenCalledWith({
key_prefix: 'SAME_ALPHA-TRUE-',
url_template: 'https://test/',
is_alphanumeric: true,
...repo
})
- expect(github.repos.deleteAutolink).toHaveBeenCalledWith({
+ expect(github.rest.repos.deleteAutolink).toHaveBeenCalledWith({
autolink_id: '7',
...repo
})
- expect(github.repos.createAutolink).toHaveBeenCalledWith({
+ expect(github.rest.repos.createAutolink).toHaveBeenCalledWith({
key_prefix: 'NEW_ALPHA-UNDEFINED-',
url_template: 'https://test/',
is_alphanumeric: true,
...repo
})
- expect(github.repos.deleteAutolink).toHaveBeenCalledWith({
+ expect(github.rest.repos.deleteAutolink).toHaveBeenCalledWith({
autolink_id: '8',
...repo
})
- expect(github.repos.createAutolink).toHaveBeenCalledWith({
+ expect(github.rest.repos.createAutolink).toHaveBeenCalledWith({
key_prefix: 'NEW_ALPHA-FALSE-',
url_template: 'https://test/',
is_alphanumeric: false,
...repo
})
- expect(github.repos.deleteAutolink).toHaveBeenCalledWith({
+ expect(github.rest.repos.deleteAutolink).toHaveBeenCalledWith({
autolink_id: '9',
...repo
})
- expect(github.repos.createAutolink).toHaveBeenCalledWith({
+ expect(github.rest.repos.createAutolink).toHaveBeenCalledWith({
key_prefix: 'NEW_ALPHA-TRUE-',
url_template: 'https://test/',
is_alphanumeric: true,
...repo
})
- expect(github.repos.deleteAutolink).toHaveBeenCalledTimes(5)
- expect(github.repos.createAutolink).toHaveBeenCalledTimes(5)
+ expect(github.rest.repos.deleteAutolink).toHaveBeenCalledTimes(5)
+ expect(github.rest.repos.createAutolink).toHaveBeenCalledTimes(5)
})
})
})
diff --git a/test/unit/lib/plugins/branches.test.js b/test/unit/lib/plugins/branches.test.js
index ac33888ce..f6aa2d0ac 100644
--- a/test/unit/lib/plugins/branches.test.js
+++ b/test/unit/lib/plugins/branches.test.js
@@ -17,19 +17,21 @@ describe('Branches', () => {
beforeEach(() => {
github = {
- repos: {
- get: jest.fn().mockResolvedValue({
- data: {
- default_branch: 'main'
- }
- }),
- getBranchProtection: jest.fn().mockResolvedValue({
- data: {
- enforce_admins: { enabled: false }
- }
- }),
- updateBranchProtection: jest.fn().mockImplementation(() => Promise.resolve('updateBranchProtection')),
- deleteBranchProtection: jest.fn().mockImplementation(() => Promise.resolve('deleteBranchProtection'))
+ rest: {
+ repos: {
+ get: jest.fn().mockResolvedValue({
+ data: {
+ default_branch: 'main'
+ }
+ }),
+ getBranchProtection: jest.fn().mockResolvedValue({
+ data: {
+ enforce_admins: { enabled: false }
+ }
+ }),
+ updateBranchProtection: jest.fn().mockImplementation(() => Promise.resolve('updateBranchProtection')),
+ deleteBranchProtection: jest.fn().mockImplementation(() => Promise.resolve('deleteBranchProtection'))
+ }
}
}
})
@@ -53,7 +55,7 @@ describe('Branches', () => {
)
return plugin.sync().then(() => {
- expect(github.repos.updateBranchProtection).toHaveBeenCalledWith({
+ expect(github.rest.repos.updateBranchProtection).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
branch: 'master',
@@ -65,6 +67,7 @@ describe('Branches', () => {
required_pull_request_reviews: {
require_code_owner_reviews: true
},
+ restrictions: null,
headers: { accept: 'application/vnd.github.hellcat-preview+json,application/vnd.github.luke-cage-preview+json,application/vnd.github.zzzax-preview+json' }
})
})
@@ -80,8 +83,8 @@ describe('Branches', () => {
)
return plugin.sync().then(() => {
- expect(github.repos.updateBranchProtection).not.toHaveBeenCalled()
- expect(github.repos.deleteBranchProtection).toHaveBeenCalledWith({
+ expect(github.rest.repos.updateBranchProtection).not.toHaveBeenCalled()
+ expect(github.rest.repos.deleteBranchProtection).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
branch: 'master'
@@ -100,8 +103,8 @@ describe('Branches', () => {
)
return plugin.sync().then(() => {
- expect(github.repos.updateBranchProtection).not.toHaveBeenCalled()
- expect(github.repos.deleteBranchProtection).toHaveBeenCalledWith({
+ expect(github.rest.repos.updateBranchProtection).not.toHaveBeenCalled()
+ expect(github.rest.repos.deleteBranchProtection).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
branch: 'master'
@@ -120,8 +123,8 @@ describe('Branches', () => {
)
return plugin.sync().then(() => {
- expect(github.repos.updateBranchProtection).not.toHaveBeenCalled()
- expect(github.repos.deleteBranchProtection).toHaveBeenCalledWith({
+ expect(github.rest.repos.updateBranchProtection).not.toHaveBeenCalled()
+ expect(github.rest.repos.deleteBranchProtection).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
branch: 'master'
@@ -140,8 +143,8 @@ describe('Branches', () => {
)
return plugin.sync().then(() => {
- expect(github.repos.updateBranchProtection).not.toHaveBeenCalled()
- expect(github.repos.deleteBranchProtection).toHaveBeenCalledWith({
+ expect(github.rest.repos.updateBranchProtection).not.toHaveBeenCalled()
+ expect(github.rest.repos.deleteBranchProtection).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
branch: 'master'
@@ -159,8 +162,8 @@ describe('Branches', () => {
)
return plugin.sync().then(() => {
- expect(github.repos.updateBranchProtection).not.toHaveBeenCalled()
- expect(github.repos.deleteBranchProtection).not.toHaveBeenCalled()
+ expect(github.rest.repos.updateBranchProtection).not.toHaveBeenCalled()
+ expect(github.rest.repos.deleteBranchProtection).not.toHaveBeenCalled()
})
})
})
@@ -180,7 +183,8 @@ describe('Branches', () => {
)
return plugin.sync().then(() => {
- expect(github.repos.updateBranchProtection).toHaveBeenCalledWith({
+
+ expect(github.rest.repos.updateBranchProtection).toHaveBeenCalledWith(expect.objectContaining({
owner: 'bkeepers',
repo: 'test',
branch: 'main',
@@ -188,21 +192,103 @@ describe('Branches', () => {
strict: true,
contexts: []
},
+ // Existing enforce_admins should be preserved from GitHub
+ enforce_admins: false,
+ restrictions: null,
headers: { accept: 'application/vnd.github.hellcat-preview+json,application/vnd.github.luke-cage-preview+json,application/vnd.github.zzzax-preview+json' }
+ }))
+ })
+ })
+ })
+
+ describe('when existing protection has restrictions', () => {
+ it('preserves restrictions from GitHub when config omits them', () => {
+ github.rest.repos.getBranchProtection = jest.fn().mockResolvedValue({
+ data: {
+ enforce_admins: { enabled: true },
+ required_status_checks: {
+ strict: false,
+ contexts: ['ci-check'],
+ checks: []
+ },
+ restrictions: {
+ url: 'https://api.github.com/...',
+ users: [{ login: 'user1' }, { login: 'user2' }],
+ teams: [{ slug: 'team-a' }],
+ apps: [{ slug: 'app-bot' }]
+ }
+ }
+ })
+
+ // Config only specifies enforce_admins, omits restrictions
+ const plugin = configure([{
+ name: 'main',
+ protection: {
+ enforce_admins: false
+ }
+ }])
+
+ return plugin.sync().then(() => {
+ expect(github.rest.repos.updateBranchProtection).toHaveBeenCalledWith(
+ expect.objectContaining({
+ owner: 'bkeepers',
+ repo: 'test',
+ branch: 'main',
+ enforce_admins: false,
+ // Existing restrictions should be preserved from GitHub
+ restrictions: {
+ users: ['user1', 'user2'],
+ teams: ['team-a'],
+ apps: ['app-bot']
+ },
+ // Existing required_status_checks should be preserved from GitHub
+ required_status_checks: {
+ strict: false,
+ contexts: ['ci-check'],
+ checks: []
+ }
+ })
+ )
+ })
+ })
+
+ it('normalizes restrictions and defaults missing arrays when preserving from GitHub', () => {
+ github.rest.repos.getBranchProtection = jest.fn().mockResolvedValue({
+ data: {
+ enforce_admins: { enabled: true },
+ restrictions: {
+ url: 'https://api.github.com/...',
+ users: [{ login: 'user1' }]
+ }
+ }
+ })
+
+ const plugin = configure([{
+ name: 'main',
+ protection: {
+ enforce_admins: false
+ }
+ }])
+
+ return plugin.sync().then(() => {
+ const payload = github.rest.repos.updateBranchProtection.mock.calls[0][0]
+ expect(payload.restrictions).toEqual({
+ users: ['user1'],
+ teams: [],
+ apps: []
})
+ expect(payload.restrictions.url).toBeUndefined()
})
})
})
describe('when {{EXTERNALLY_DEFINED}} is present in "required_status_checks" and status checks exist in GitHub', () => {
it('it retains the status checks from GitHub', () => {
- github.repos.getBranchProtection = jest.fn().mockResolvedValue({
+ github.rest.repos.getBranchProtection = jest.fn().mockResolvedValue({
data: {
enforce_admins: { enabled: false },
- protection: {
- required_status_checks: {
- contexts: ['check-1', 'check-2']
- }
+ required_status_checks: {
+ contexts: ['check-1', 'check-2']
}
}
})
@@ -219,7 +305,8 @@ describe('Branches', () => {
)
return plugin.sync().then(() => {
- expect(github.repos.updateBranchProtection).toHaveBeenCalledWith({
+
+ expect(github.rest.repos.updateBranchProtection).toHaveBeenCalledWith(expect.objectContaining({
owner: 'bkeepers',
repo: 'test',
branch: 'main',
@@ -227,8 +314,10 @@ describe('Branches', () => {
strict: true,
contexts: ['check-1', 'check-2']
},
+ enforce_admins: false,
+ restrictions: null,
headers: { accept: 'application/vnd.github.hellcat-preview+json,application/vnd.github.luke-cage-preview+json,application/vnd.github.zzzax-preview+json' }
- })
+ }))
})
})
})
@@ -248,7 +337,7 @@ describe('Branches', () => {
]
)
- when(github.repos.getBranchProtection)
+ when(github.rest.repos.getBranchProtection)
.calledWith(expect.objectContaining({
branch: 'other'
})).mockResolvedValue({
@@ -258,13 +347,15 @@ describe('Branches', () => {
})
return plugin.sync().then(() => {
- expect(github.repos.updateBranchProtection).toHaveBeenCalledTimes(2)
+ expect(github.rest.repos.updateBranchProtection).toHaveBeenCalledTimes(2)
- expect(github.repos.updateBranchProtection).toHaveBeenLastCalledWith({
+ expect(github.rest.repos.updateBranchProtection).toHaveBeenLastCalledWith({
owner: 'bkeepers',
repo: 'test',
branch: 'other',
enforce_admins: false,
+ required_status_checks: null,
+ restrictions: null,
headers: { accept: 'application/vnd.github.hellcat-preview+json,application/vnd.github.luke-cage-preview+json,application/vnd.github.zzzax-preview+json' }
})
})
@@ -278,10 +369,10 @@ describe('Branches', () => {
}
beforeEach(() => {
- github.repos.updateBranchProtection.endpoint = jest.fn().mockImplementation(params => {
+ github.rest.repos.updateBranchProtection.endpoint = jest.fn().mockImplementation(params => {
return { url: 'updateBranchProtection', body: params }
})
- github.repos.deleteBranchProtection.endpoint = jest.fn().mockImplementation(params => {
+ github.rest.repos.deleteBranchProtection.endpoint = jest.fn().mockImplementation(params => {
return { url: 'deleteBranchProtection', body: params }
})
})
@@ -309,7 +400,7 @@ describe('Branches', () => {
describe('when branch protection does not exist yet', () => {
it('labels the NopCommand as an add', () => {
- github.repos.getBranchProtection = jest.fn().mockRejectedValue({ status: 404 })
+ github.rest.repos.getBranchProtection = jest.fn().mockRejectedValue({ status: 404 })
const plugin = configureNop(
[{
name: 'master',
diff --git a/test/unit/lib/plugins/collaborators.test.js b/test/unit/lib/plugins/collaborators.test.js
index 359dd4614..f01007953 100644
--- a/test/unit/lib/plugins/collaborators.test.js
+++ b/test/unit/lib/plugins/collaborators.test.js
@@ -10,13 +10,15 @@ describe('Collaborators', () => {
beforeEach(() => {
github = {
- repos: {
- listInvitations: jest.fn().mockResolvedValue([]),
- deleteInvitation: jest.fn().mockResolvedValue(),
- updateInvitation: jest.fn().mockResolvedValue(),
- listCollaborators: jest.fn().mockResolvedValue([]),
- removeCollaborator: jest.fn().mockResolvedValue(),
- addCollaborator: jest.fn().mockResolvedValue()
+ rest: {
+ repos: {
+ listInvitations: jest.fn().mockResolvedValue([]),
+ deleteInvitation: jest.fn().mockResolvedValue(),
+ updateInvitation: jest.fn().mockResolvedValue(),
+ listCollaborators: jest.fn().mockResolvedValue([]),
+ removeCollaborator: jest.fn().mockResolvedValue(),
+ addCollaborator: jest.fn().mockResolvedValue()
+ }
}
}
})
@@ -30,7 +32,7 @@ describe('Collaborators', () => {
{ username: 'DIFFERENTcase', permission: 'push' }
])
- github.repos.listCollaborators.mockResolvedValueOnce({
+ github.rest.repos.listCollaborators.mockResolvedValueOnce({
data: [
{ login: 'bkeepers', permissions: { admin: true, push: true, pull: true } },
{ login: 'updated-permission', permissions: { admin: false, push: false, pull: true } },
@@ -40,29 +42,29 @@ describe('Collaborators', () => {
})
return plugin.sync().then(() => {
- expect(github.repos.addCollaborator).toHaveBeenCalledWith({
+ expect(github.rest.repos.addCollaborator).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
username: 'added-user',
permission: 'push'
})
- expect(github.repos.addCollaborator).toHaveBeenCalledWith({
+ expect(github.rest.repos.addCollaborator).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
username: 'updated-permission',
permission: 'push'
})
- expect(github.repos.addCollaborator).toHaveBeenCalledTimes(2)
+ expect(github.rest.repos.addCollaborator).toHaveBeenCalledTimes(2)
- expect(github.repos.removeCollaborator).toHaveBeenCalledWith({
+ expect(github.rest.repos.removeCollaborator).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
username: 'removed-user'
})
- expect(github.repos.removeCollaborator).toHaveBeenCalledTimes(1)
+ expect(github.rest.repos.removeCollaborator).toHaveBeenCalledTimes(1)
})
})
})
diff --git a/test/unit/lib/plugins/custom_properties.test.js b/test/unit/lib/plugins/custom_properties.test.js
index 6afc8228b..55fbbf740 100644
--- a/test/unit/lib/plugins/custom_properties.test.js
+++ b/test/unit/lib/plugins/custom_properties.test.js
@@ -15,23 +15,23 @@ describe('CustomProperties', () => {
beforeEach(() => {
github = {
paginate: jest.fn(),
- rest: {
- repos: {
- getCustomPropertiesValues: jest.fn(),
- createOrUpdateCustomPropertiesValues: jest.fn()
- }
- }
+ request: jest.fn()
}
log = { debug: jest.fn(), error: console.error }
})
describe('Custom Properties plugin', () => {
- it('should normalize entries when be instantiated', () => {
+ it('should normalize entries when instantiated', () => {
const plugin = configure([{ name: 'Test', value: 'test' }])
expect(plugin.entries).toEqual([{ name: 'test', value: 'test' }])
})
+ it('should normalize entries with property_name when instantiated', () => {
+ const plugin = configure([{ property_name: 'ent-ownership', value: 'expert-services' }])
+ expect(plugin.entries).toEqual([{ name: 'ent-ownership', value: 'expert-services' }])
+ })
+
it('should fetch and normalize custom properties successfully', async () => {
const mockResponse = [
{ property_name: 'Test1', value: 'value1' },
@@ -44,7 +44,7 @@ describe('CustomProperties', () => {
const result = await plugin.find()
expect(github.paginate).toHaveBeenCalledWith(
- github.rest.repos.getCustomPropertiesValues,
+ 'GET /repos/{owner}/{repo}/properties/values',
{
owner,
repo,
@@ -58,6 +58,24 @@ describe('CustomProperties', () => {
])
})
+ it('should normalize paginated custom properties when property name shape differs', async () => {
+ const mockResponse = [
+ { name: 'Owner', value: 'My Team' },
+ { property_name: 'Criticality', value: 'High' },
+ { value: 'ignored' }
+ ]
+
+ github.paginate.mockResolvedValue(mockResponse)
+
+ const plugin = configure()
+ const result = await plugin.find()
+
+ expect(result).toEqual([
+ { name: 'owner', value: 'My Team' },
+ { name: 'criticality', value: 'High' }
+ ])
+ })
+
it('should sync', async () => {
const mockResponse = [
{ property_name: 'no-change', value: 'no-change' },
@@ -77,14 +95,14 @@ describe('CustomProperties', () => {
return plugin.sync().then(() => {
expect(github.paginate).toHaveBeenCalledWith(
- github.rest.repos.getCustomPropertiesValues,
+ 'GET /repos/{owner}/{repo}/properties/values',
{
owner,
repo,
per_page: 100
}
)
- expect(github.rest.repos.createOrUpdateCustomPropertiesValues).not.toHaveBeenCalledWith({
+ expect(github.request).not.toHaveBeenCalledWith('PATCH /repos/{owner}/{repo}/properties/values', {
owner,
repo,
properties: [
@@ -94,7 +112,7 @@ describe('CustomProperties', () => {
}
]
})
- expect(github.rest.repos.createOrUpdateCustomPropertiesValues).toHaveBeenCalledWith({
+ expect(github.request).toHaveBeenCalledWith('PATCH /repos/{owner}/{repo}/properties/values', {
owner,
repo,
properties: [
@@ -104,7 +122,7 @@ describe('CustomProperties', () => {
}
]
})
- expect(github.rest.repos.createOrUpdateCustomPropertiesValues).toHaveBeenCalledWith({
+ expect(github.request).toHaveBeenCalledWith('PATCH /repos/{owner}/{repo}/properties/values', {
owner,
repo,
properties: [
@@ -114,7 +132,7 @@ describe('CustomProperties', () => {
}
]
})
- expect(github.rest.repos.createOrUpdateCustomPropertiesValues).toHaveBeenCalledWith({
+ expect(github.request).toHaveBeenCalledWith('PATCH /repos/{owner}/{repo}/properties/values', {
owner,
repo,
properties: [
@@ -129,7 +147,7 @@ describe('CustomProperties', () => {
// const plugin = configure([{ name: 'Test', value: 'test' }])
// await plugin.update({ name: 'test', value: 'old' }, { name: 'test', value: 'test' })
- // expect(github.rest.repos.createOrUpdateCustomPropertiesValues).toHaveBeenCalledWith({
+ // expect(github.request).toHaveBeenCalledWith('PATCH /repos/{owner}/{repo}/properties/values', {
// owner,
// repo,
// properties: [
diff --git a/test/unit/lib/plugins/labels.test.js b/test/unit/lib/plugins/labels.test.js
index 71eaf2c8b..1d1bd51b1 100644
--- a/test/unit/lib/plugins/labels.test.js
+++ b/test/unit/lib/plugins/labels.test.js
@@ -12,18 +12,20 @@ describe('Labels', () => {
beforeEach(() => {
github = {
paginate: jest.fn().mockImplementation(() => Promise.resolve()),
- repos: {
- get: jest.fn().mockImplementation(() => Promise.resolve({}))
- },
- issues: {
- listLabelsForRepo: {
- endpoint: {
- merge: jest.fn().mockImplementation(() => {})
- }
+ rest: {
+ repos: {
+ get: jest.fn().mockImplementation(() => Promise.resolve({}))
},
- createLabel: jest.fn().mockImplementation(() => Promise.resolve()),
- deleteLabel: jest.fn().mockImplementation(() => Promise.resolve()),
- updateLabel: jest.fn().mockImplementation(() => Promise.resolve())
+ issues: {
+ listLabelsForRepo: {
+ endpoint: {
+ merge: jest.fn().mockImplementation(() => {})
+ }
+ },
+ createLabel: jest.fn().mockImplementation(() => Promise.resolve()),
+ deleteLabel: jest.fn().mockImplementation(() => Promise.resolve()),
+ updateLabel: jest.fn().mockImplementation(() => Promise.resolve())
+ }
}
}
log = { debug: jest.fn(), error: console.error }
@@ -48,14 +50,14 @@ describe('Labels', () => {
])
return plugin.sync().then(() => {
- expect(github.issues.deleteLabel).toHaveBeenCalledWith({
+ expect(github.rest.issues.deleteLabel).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
name: 'delete-me',
headers: { accept: 'application/vnd.github.symmetra-preview+json' }
})
- expect(github.issues.createLabel).toHaveBeenCalledWith({
+ expect(github.rest.issues.createLabel).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
name: 'added',
@@ -63,7 +65,7 @@ describe('Labels', () => {
headers: { accept: 'application/vnd.github.symmetra-preview+json' }
})
- expect(github.issues.updateLabel).toHaveBeenCalledWith({
+ expect(github.rest.issues.updateLabel).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
current_name: 'update-me',
@@ -73,7 +75,7 @@ describe('Labels', () => {
headers: { accept: 'application/vnd.github.symmetra-preview+json' }
})
- expect(github.issues.updateLabel).toHaveBeenCalledWith({
+ expect(github.rest.issues.updateLabel).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
current_name: 'new-color',
@@ -83,7 +85,7 @@ describe('Labels', () => {
headers: { accept: 'application/vnd.github.symmetra-preview+json' }
})
- expect(github.issues.updateLabel).toHaveBeenCalledWith({
+ expect(github.rest.issues.updateLabel).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
current_name: 'new-description',
@@ -93,9 +95,9 @@ describe('Labels', () => {
headers: { accept: 'application/vnd.github.symmetra-preview+json' }
})
- expect(github.issues.deleteLabel).toHaveBeenCalledTimes(1)
- expect(github.issues.updateLabel).toHaveBeenCalledTimes(3)
- expect(github.issues.createLabel).toHaveBeenCalledTimes(1)
+ expect(github.rest.issues.deleteLabel).toHaveBeenCalledTimes(1)
+ expect(github.rest.issues.updateLabel).toHaveBeenCalledTimes(3)
+ expect(github.rest.issues.createLabel).toHaveBeenCalledTimes(1)
})
})
@@ -122,14 +124,14 @@ describe('Labels', () => {
})
return plugin.sync().then(() => {
- expect(github.issues.deleteLabel).toHaveBeenCalledWith({
+ expect(github.rest.issues.deleteLabel).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
name: 'delete-me',
headers: { accept: 'application/vnd.github.symmetra-preview+json' }
})
- expect(github.issues.updateLabel).toHaveBeenCalledWith({
+ expect(github.rest.issues.updateLabel).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
current_name: 'update-me',
@@ -139,9 +141,9 @@ describe('Labels', () => {
headers: { accept: 'application/vnd.github.symmetra-preview+json' }
})
- expect(github.issues.deleteLabel).toHaveBeenCalledTimes(1)
- expect(github.issues.updateLabel).toHaveBeenCalledTimes(1)
- expect(github.issues.createLabel).toHaveBeenCalledTimes(1)
+ expect(github.rest.issues.deleteLabel).toHaveBeenCalledTimes(1)
+ expect(github.rest.issues.updateLabel).toHaveBeenCalledTimes(1)
+ expect(github.rest.issues.createLabel).toHaveBeenCalledTimes(1)
})
})
})
diff --git a/test/unit/lib/plugins/milestones.test.js b/test/unit/lib/plugins/milestones.test.js
index 93cde7db4..ebbac3ddd 100644
--- a/test/unit/lib/plugins/milestones.test.js
+++ b/test/unit/lib/plugins/milestones.test.js
@@ -10,15 +10,17 @@ describe.skip('Milestones', () => {
beforeEach(() => {
github = {
paginate: jest.fn().mockImplementation(() => Promise.resolve()),
- issues: {
- listMilestonesForRepo: {
- endpoint: {
- merge: jest.fn().mockImplementation(() => {})
- }
- },
- createMilestone: jest.fn().mockImplementation(() => Promise.resolve()),
- deleteMilestone: jest.fn().mockImplementation(() => Promise.resolve()),
- updateMilestone: jest.fn().mockImplementation(() => Promise.resolve())
+ rest: {
+ issues: {
+ listMilestones: {
+ endpoint: {
+ merge: jest.fn().mockImplementation(() => {})
+ }
+ },
+ createMilestone: jest.fn().mockImplementation(() => Promise.resolve()),
+ deleteMilestone: jest.fn().mockImplementation(() => Promise.resolve()),
+ updateMilestone: jest.fn().mockImplementation(() => Promise.resolve())
+ }
}
}
})
@@ -41,19 +43,19 @@ describe.skip('Milestones', () => {
await plugin.sync()
- expect(github.issues.deleteMilestone).toHaveBeenCalledWith({
+ expect(github.rest.issues.deleteMilestone).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
milestone_number: 1
})
- expect(github.issues.createMilestone).toHaveBeenCalledWith({
+ expect(github.rest.issues.createMilestone).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
title: 'added'
})
- expect(github.issues.updateMilestone).toHaveBeenCalledWith({
+ expect(github.rest.issues.updateMilestone).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
title: 'new-description',
@@ -61,7 +63,7 @@ describe.skip('Milestones', () => {
milestone_number: 2
})
- expect(github.issues.updateMilestone).toHaveBeenCalledWith({
+ expect(github.rest.issues.updateMilestone).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
title: 'new-state',
@@ -69,9 +71,9 @@ describe.skip('Milestones', () => {
milestone_number: 4
})
- expect(github.issues.deleteMilestone).toHaveBeenCalledTimes(1)
- expect(github.issues.updateMilestone).toHaveBeenCalledTimes(2)
- expect(github.issues.createMilestone).toHaveBeenCalledTimes(1)
+ expect(github.rest.issues.deleteMilestone).toHaveBeenCalledTimes(1)
+ expect(github.rest.issues.updateMilestone).toHaveBeenCalledTimes(2)
+ expect(github.rest.issues.createMilestone).toHaveBeenCalledTimes(1)
})
})
})
diff --git a/test/unit/lib/plugins/repository.test.js b/test/unit/lib/plugins/repository.test.js
index fc4c453b0..75b1199fc 100644
--- a/test/unit/lib/plugins/repository.test.js
+++ b/test/unit/lib/plugins/repository.test.js
@@ -2,14 +2,16 @@ const Repository = require('../../../../lib/plugins/repository')
describe('Repository', () => {
const github = {
- repos: {
- get: jest.fn().mockResolvedValue({
- data: {
- topics: []
- }
- }),
- update: jest.fn().mockResolvedValue(),
- replaceAllTopics: jest.fn().mockResolvedValue()
+ rest: {
+ repos: {
+ get: jest.fn().mockResolvedValue({
+ data: {
+ topics: []
+ }
+ }),
+ update: jest.fn().mockResolvedValue(),
+ replaceAllTopics: jest.fn().mockResolvedValue()
+ }
}
}
const log = jest.fn()
@@ -34,7 +36,7 @@ describe('Repository', () => {
topics: []
})
return plugin.sync().then(() => {
- expect(github.repos.update).toHaveBeenCalledWith({
+ expect(github.rest.repos.update).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
name: 'test',
@@ -49,7 +51,7 @@ describe('Repository', () => {
name: 'new-name'
})
return plugin.sync().then(() => {
- expect(github.repos.update).toHaveBeenCalledWith({
+ expect(github.rest.repos.update).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
name: 'new-name',
@@ -64,7 +66,7 @@ describe('Repository', () => {
})
return plugin.sync().then(() => {
- expect(github.repos.replaceAllTopics).toHaveBeenCalledWith({
+ expect(github.rest.repos.replaceAllTopics).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
names: ['foo', 'bar'],
diff --git a/test/unit/lib/plugins/rulesets.test.js b/test/unit/lib/plugins/rulesets.test.js
index 609750e42..15a9fee64 100644
--- a/test/unit/lib/plugins/rulesets.test.js
+++ b/test/unit/lib/plugins/rulesets.test.js
@@ -3,7 +3,7 @@
const { when } = require('jest-when')
const Rulesets = require('../../../../lib/plugins/rulesets')
const version = {
- 'X-GitHub-Api-Version': '2022-11-28'
+ 'X-GitHub-Api-Version': '2026-03-10'
}
const repo_conditions = {
ref_name: {
@@ -95,12 +95,14 @@ describe('Rulesets', () => {
beforeEach(() => {
github = {
- repos: {
- get: jest.fn().mockResolvedValue({
- data: {
- default_branch: 'main'
- }
- })
+ rest: {
+ repos: {
+ get: jest.fn().mockResolvedValue({
+ data: {
+ default_branch: 'main'
+ }
+ })
+ }
},
request: jest.fn().mockImplementation(() => Promise.resolve('request')),
}
@@ -952,12 +954,12 @@ describe('Rulesets', () => {
}
it('resolves a Team bypass actor name to actor_id and strips the alias', async () => {
- github.teams = { getByName: jest.fn().mockResolvedValue({ data: { id: 42 } }) }
+ github.rest.teams = { getByName: jest.fn().mockResolvedValue({ data: { id: 42 } }) }
const plugin = configure([bypassRuleset({ name: 'my-team', actor_type: 'Team' })], 'org')
await plugin.resolveNamesToIds()
- expect(github.teams.getByName).toHaveBeenCalledWith({ org: 'jitran', team_slug: 'my-team' })
+ expect(github.rest.teams.getByName).toHaveBeenCalledWith({ org: 'jitran', team_slug: 'my-team' })
expect(plugin.rulesets[0].bypass_actors[0]).toEqual({ actor_id: 42, actor_type: 'Team', bypass_mode: 'always' })
expect(plugin.rulesets[0].bypass_actors[0].name).toBeUndefined()
})
@@ -1014,19 +1016,19 @@ describe('Rulesets', () => {
})
it('resolves a reviewer slug to id and strips the alias', async () => {
- github.teams = { getByName: jest.fn().mockResolvedValue({ data: { id: 555 } }) }
+ github.rest.teams = { getByName: jest.fn().mockResolvedValue({ data: { id: 555 } }) }
const plugin = configure([reviewerRuleset({ slug: 'reviewers', type: 'Team' })], 'org')
await plugin.resolveNamesToIds()
const reviewer = plugin.rulesets[0].rules[0].parameters.required_reviewers[0].reviewer
- expect(github.teams.getByName).toHaveBeenCalledWith({ org: 'jitran', team_slug: 'reviewers' })
+ expect(github.rest.teams.getByName).toHaveBeenCalledWith({ org: 'jitran', team_slug: 'reviewers' })
expect(reviewer).toEqual({ id: 555, type: 'Team' })
expect(reviewer.slug).toBeUndefined()
})
it('caches repeated lookups so each name resolves with a single API call', async () => {
- github.teams = { getByName: jest.fn().mockResolvedValue({ data: { id: 42 } }) }
+ github.rest.teams = { getByName: jest.fn().mockResolvedValue({ data: { id: 42 } }) }
const plugin = configure([
{
name: 'Multi',
@@ -1043,18 +1045,18 @@ describe('Rulesets', () => {
await plugin.resolveNamesToIds()
- expect(github.teams.getByName).toHaveBeenCalledTimes(1)
+ expect(github.rest.teams.getByName).toHaveBeenCalledTimes(1)
expect(plugin.rulesets[0].bypass_actors.map(a => a.actor_id)).toEqual([42, 42])
})
it('leaves numeric actor_id untouched and makes no lookup (backward compatible)', async () => {
- github.teams = { getByName: jest.fn() }
+ github.rest.teams = { getByName: jest.fn() }
github.request = jest.fn()
const plugin = configure([bypassRuleset({ actor_id: 234, actor_type: 'Team' })], 'org')
await plugin.resolveNamesToIds()
- expect(github.teams.getByName).not.toHaveBeenCalled()
+ expect(github.rest.teams.getByName).not.toHaveBeenCalled()
expect(github.request).not.toHaveBeenCalled()
expect(plugin.rulesets[0].bypass_actors[0]).toEqual({ actor_id: 234, actor_type: 'Team', bypass_mode: 'always' })
})
@@ -1077,14 +1079,14 @@ describe('Rulesets', () => {
it('throws a clear error when a team slug cannot be resolved', async () => {
const notFound = new Error('Not Found')
notFound.status = 404
- github.teams = { getByName: jest.fn().mockRejectedValue(notFound) }
+ github.rest.teams = { getByName: jest.fn().mockRejectedValue(notFound) }
const plugin = configure([bypassRuleset({ name: 'ghost-team', actor_type: 'Team' })], 'org')
await expect(plugin.resolveNamesToIds()).rejects.toThrow(/Unable to resolve Team slug 'ghost-team'/)
})
it('sync sends the resolved actor_id to the API', async () => {
github.paginate = jest.fn().mockResolvedValue([])
- github.teams = { getByName: jest.fn().mockResolvedValue({ data: { id: 42 } }) }
+ github.rest.teams = { getByName: jest.fn().mockResolvedValue({ data: { id: 42 } }) }
const postCalls = []
github.request = jest.fn().mockImplementation((route, body) => {
if (route.startsWith('POST')) postCalls.push({ route, body })
diff --git a/test/unit/lib/plugins/teams.test.js b/test/unit/lib/plugins/teams.test.js
index 5e46a3654..6015ea36d 100644
--- a/test/unit/lib/plugins/teams.test.js
+++ b/test/unit/lib/plugins/teams.test.js
@@ -15,7 +15,7 @@ describe('Teams', () => {
const org = 'bkeepers'
function configure (config) {
- const log = { debug: jest.fn(), error: console.error, warn: console.warn }
+ const log = { debug: jest.fn(), error: jest.fn(), warn: console.warn }
const errors = []
return new Teams(undefined, github, { owner: 'bkeepers', repo: 'test' }, config, log, errors)
}
@@ -30,19 +30,21 @@ describe('Teams', () => {
}
return []
}),
- teams: {
- create: jest.fn().mockResolvedValue(),
- getByName: jest.fn(),
- addOrUpdateRepoPermissionsInOrg: jest.fn().mockResolvedValue()
- },
- repos: {
- listTeams: jest.fn().mockResolvedValue({
- data: [
- { id: unchangedTeamId, slug: unchangedTeamName, permission: 'push' },
- { id: removedTeamId, slug: removedTeamName, permission: 'push' },
- { id: updatedTeamId, slug: updatedTeamName, permission: 'pull' }
- ]
- })
+ rest: {
+ teams: {
+ create: jest.fn().mockResolvedValue(),
+ getByName: jest.fn(),
+ addOrUpdateRepoPermissionsInOrg: jest.fn().mockResolvedValue()
+ },
+ repos: {
+ listTeams: jest.fn().mockResolvedValue({
+ data: [
+ { id: unchangedTeamId, slug: unchangedTeamName, permission: 'push' },
+ { id: removedTeamId, slug: removedTeamName, permission: 'push' },
+ { id: updatedTeamId, slug: updatedTeamName, permission: 'pull' }
+ ]
+ })
+ }
},
request: Object.assign(jest.fn().mockResolvedValue(), { endpoint: jest.fn().mockReturnValue({ url: 'endpoint-stub', body: {} }) })
}
@@ -56,7 +58,7 @@ describe('Teams', () => {
{ name: addedTeamName, permission: 'pull' }
])
- when(github.teams.getByName)
+ when(github.rest.teams.getByName)
.defaultResolvedValue({})
.calledWith({ org: 'bkeepers', team_slug: addedTeamName })
.mockResolvedValue({ data: { id: addedTeamId } })
@@ -75,7 +77,7 @@ describe('Teams', () => {
}
)
- expect(github.teams.addOrUpdateRepoPermissionsInOrg).toHaveBeenCalledWith({
+ expect(github.rest.teams.addOrUpdateRepoPermissionsInOrg).toHaveBeenCalledWith({
org,
team_id: addedTeamId,
team_slug: addedTeamName,
@@ -115,7 +117,7 @@ describe('Teams', () => {
]
beforeEach(() => {
- github.repos.listTeams.mockResolvedValue({ data: repoTeams })
+ github.rest.repos.listTeams.mockResolvedValue({ data: repoTeams })
})
function expectTeamDeleted (teamSlug) {
@@ -164,7 +166,7 @@ describe('Teams', () => {
.calledWith(organizationRoleTeamsRoute, { org, role_id: securityManagerRoleId })
.mockResolvedValue({ teams: [{ slug: securityManagerTeamName, name: 'Security Managers' }] })
- when(github.teams.getByName)
+ when(github.rest.teams.getByName)
.defaultResolvedValue({})
.calledWith({ org, team_slug: addedTeamName })
.mockResolvedValue({ data: { id: addedTeamId } })
@@ -193,8 +195,8 @@ describe('Teams', () => {
await plugin.sync()
- expect(github.teams.getByName).not.toHaveBeenCalledWith({ org, team_slug: securityManagerTeamName })
- expect(github.teams.addOrUpdateRepoPermissionsInOrg).not.toHaveBeenCalled()
+ expect(github.rest.teams.getByName).not.toHaveBeenCalledWith({ org, team_slug: securityManagerTeamName })
+ expect(github.rest.teams.addOrUpdateRepoPermissionsInOrg).not.toHaveBeenCalled()
expect(github.request).not.toHaveBeenCalledWith(
'PUT /orgs/:owner/teams/:team_slug/repos/:owner/:repo',
expect.objectContaining({ team_slug: securityManagerTeamName })
@@ -221,7 +223,7 @@ describe('Teams', () => {
expect(Array.isArray(result)).toBe(true)
const flattened = result.flat(Infinity)
expect(flattened.some(c => c && c.type === 'INFO' && /security manager team/i.test(JSON.stringify(c)))).toBe(true)
- expect(github.teams.addOrUpdateRepoPermissionsInOrg).not.toHaveBeenCalled()
+ expect(github.rest.teams.addOrUpdateRepoPermissionsInOrg).not.toHaveBeenCalled()
})
it.each(roleFailureStatuses)('skips deletions when organization role lookup fails with %s', async status => {
@@ -277,7 +279,7 @@ describe('Teams', () => {
it('matches configured team names to existing slugs without add or remove churn', async () => {
const formattedTeamName = 'Platform & Security!'
- github.repos.listTeams.mockResolvedValue({
+ github.rest.repos.listTeams.mockResolvedValue({
data: [{ id: unchangedTeamId, slug: 'platform-security', name: formattedTeamName, permission: 'push' }]
})
@@ -287,12 +289,12 @@ describe('Teams', () => {
await plugin.sync()
- expect(github.teams.getByName).not.toHaveBeenCalled()
+ expect(github.rest.teams.getByName).not.toHaveBeenCalled()
expectNoTeamsDeleted()
})
it('matches security manager team names against repository team slugs', async () => {
- github.repos.listTeams.mockResolvedValue({
+ github.rest.repos.listTeams.mockResolvedValue({
data: [{ id: securityManagerTeamId, slug: securityManagerTeamName, permission: 'admin' }]
})
@@ -312,9 +314,9 @@ describe('Teams', () => {
it('uses normalized team slugs when adding configured team names', async () => {
const formattedTeamName = 'Platform & Security!'
- github.repos.listTeams.mockResolvedValue({ data: [] })
+ github.rest.repos.listTeams.mockResolvedValue({ data: [] })
- when(github.teams.getByName)
+ when(github.rest.teams.getByName)
.calledWith({ org, team_slug: 'platform-security' })
.mockResolvedValue({ data: { id: addedTeamId, slug: 'platform-security' } })
@@ -324,7 +326,7 @@ describe('Teams', () => {
await plugin.sync()
- expect(github.teams.addOrUpdateRepoPermissionsInOrg).toHaveBeenCalledWith({
+ expect(github.rest.teams.addOrUpdateRepoPermissionsInOrg).toHaveBeenCalledWith({
org,
team_id: addedTeamId,
team_slug: 'platform-security',
@@ -362,7 +364,7 @@ describe('Teams', () => {
describe('filtering teams by include/exclude', () => {
beforeEach(() => {
- github.repos.listTeams.mockResolvedValue({ data: [] })
+ github.rest.repos.listTeams.mockResolvedValue({ data: [] })
})
it('does not add a team when the repo matches an exclude glob', async () => {
@@ -372,7 +374,7 @@ describe('Teams', () => {
await plugin.sync()
- expect(github.teams.addOrUpdateRepoPermissionsInOrg).not.toHaveBeenCalled()
+ expect(github.rest.teams.addOrUpdateRepoPermissionsInOrg).not.toHaveBeenCalled()
})
it('does not add a team when the repo is not in an include glob', async () => {
@@ -382,11 +384,11 @@ describe('Teams', () => {
await plugin.sync()
- expect(github.teams.addOrUpdateRepoPermissionsInOrg).not.toHaveBeenCalled()
+ expect(github.rest.teams.addOrUpdateRepoPermissionsInOrg).not.toHaveBeenCalled()
})
it('adds a team when the repo matches an include glob', async () => {
- when(github.teams.getByName)
+ when(github.rest.teams.getByName)
.calledWith({ org, team_slug: addedTeamName })
.mockResolvedValue({ data: { id: addedTeamId } })
@@ -396,7 +398,7 @@ describe('Teams', () => {
await plugin.sync()
- expect(github.teams.addOrUpdateRepoPermissionsInOrg).toHaveBeenCalledWith({
+ expect(github.rest.teams.addOrUpdateRepoPermissionsInOrg).toHaveBeenCalledWith({
org,
team_id: addedTeamId,
team_slug: addedTeamName,
@@ -453,7 +455,7 @@ describe('Teams', () => {
})
it('looks up the group id by name and PATCHes the team link', async () => {
- when(github.teams.getByName)
+ when(github.rest.teams.getByName)
.defaultResolvedValue({})
.calledWith({ org, team_slug: addedTeamName })
.mockResolvedValue({ data: { id: addedTeamId } })
@@ -538,7 +540,7 @@ describe('Teams', () => {
})
it('paginates the external-groups list only once per org across multiple syncs sharing the github client', async () => {
- when(github.teams.getByName)
+ when(github.rest.teams.getByName)
.defaultResolvedValue({})
.calledWith({ org, team_slug: addedTeamName })
.mockResolvedValue({ data: { id: addedTeamId } })
diff --git a/test/unit/lib/settings.test.js b/test/unit/lib/settings.test.js
index 133ae7531..55b4ecf3f 100644
--- a/test/unit/lib/settings.test.js
+++ b/test/unit/lib/settings.test.js
@@ -1,5 +1,5 @@
/* eslint-disable no-undef */
-const { Octokit } = require('@octokit/core')
+class Octokit {}
const Settings = require('../../../lib/settings')
const yaml = require('js-yaml')
// jest.mock('../../../lib/settings', () => {
@@ -52,8 +52,10 @@ repository:
topics:
- frontend
`).toString('base64');
- mockOctokit.repos = {
- getContent: jest.fn().mockResolvedValue({ data: { content } })
+ mockOctokit.rest = {
+ repos: {
+ getContent: jest.fn().mockResolvedValue({ data: { content } })
+ }
}
mockOctokit.request = {
@@ -310,8 +312,10 @@ repository:
Settings.fileCache = {};
stubContext = {
octokit: {
- repos: {
- getContent: jest.fn()
+ rest: {
+ repos: {
+ getContent: jest.fn()
+ }
},
request: jest.fn(),
paginate: jest.fn()
@@ -334,7 +338,7 @@ repository:
// Given
const filePath = 'path/to/file.yml';
const content = Buffer.from('key: value').toString('base64');
- jest.spyOn(settings.github.repos, 'getContent').mockResolvedValue({
+ jest.spyOn(settings.github.rest.repos, 'getContent').mockResolvedValue({
data: { content },
headers: { etag: 'etag123' }
});
@@ -355,14 +359,14 @@ repository:
const filePath = 'path/to/file.yml';
const content = Buffer.from('key: value').toString('base64');
Settings.fileCache[`${mockRepo.owner}/${filePath}`] = { etag: 'etag123', data: { content } };
- jest.spyOn(settings.github.repos, 'getContent').mockRejectedValue({ status: 304 });
+ jest.spyOn(settings.github.rest.repos, 'getContent').mockRejectedValue({ status: 304 });
// When
const result = await settings.loadYaml(filePath);
// Then
expect(result).toEqual({ key: 'value' });
- expect(settings.github.repos.getContent).toHaveBeenCalledWith(
+ expect(settings.github.rest.repos.getContent).toHaveBeenCalledWith(
expect.objectContaining({ headers: { 'If-None-Match': 'etag123' } })
);
});
@@ -373,7 +377,7 @@ repository:
const content = Buffer.from('key: value').toString('base64');
const wrongContent = Buffer.from('wrong: content').toString('base64');
Settings.fileCache['another-org/path/to/file.yml'] = { etag: 'etag123', data: { wrongContent } };
- jest.spyOn(settings.github.repos, 'getContent').mockResolvedValue({
+ jest.spyOn(settings.github.rest.repos, 'getContent').mockResolvedValue({
data: { content },
headers: { etag: 'etag123' }
});
@@ -388,7 +392,7 @@ repository:
it('should return null when the file path is a folder', async () => {
// Given
const filePath = 'path/to/folder';
- jest.spyOn(settings.github.repos, 'getContent').mockResolvedValue({
+ jest.spyOn(settings.github.rest.repos, 'getContent').mockResolvedValue({
data: []
});
@@ -402,7 +406,7 @@ repository:
it('should return null when the file is a symlink or submodule', async () => {
// Given
const filePath = 'path/to/symlink';
- jest.spyOn(settings.github.repos, 'getContent').mockResolvedValue({
+ jest.spyOn(settings.github.rest.repos, 'getContent').mockResolvedValue({
data: { content: null }
});
@@ -416,7 +420,7 @@ repository:
it('should handle 404 errors gracefully and return null', async () => {
// Given
const filePath = 'path/to/nonexistent.yml';
- jest.spyOn(settings.github.repos, 'getContent').mockRejectedValue({ status: 404 });
+ jest.spyOn(settings.github.rest.repos, 'getContent').mockRejectedValue({ status: 404 });
// When
const result = await settings.loadYaml(filePath);
@@ -428,7 +432,7 @@ repository:
it('should throw an error for non-404 exceptions when not in nop mode', async () => {
// Given
const filePath = 'path/to/error.yml';
- jest.spyOn(settings.github.repos, 'getContent').mockRejectedValue(new Error('Unexpected error'));
+ jest.spyOn(settings.github.rest.repos, 'getContent').mockRejectedValue(new Error('Unexpected error'));
// When / Then
await expect(settings.loadYaml(filePath)).rejects.toThrow('Unexpected error');
@@ -438,7 +442,7 @@ repository:
// Given
const filePath = 'path/to/error.yml';
settings.nop = true;
- jest.spyOn(settings.github.repos, 'getContent').mockRejectedValue(new Error('Unexpected error'));
+ jest.spyOn(settings.github.rest.repos, 'getContent').mockRejectedValue(new Error('Unexpected error'));
jest.spyOn(settings, 'appendToResults');
// When
@@ -1089,8 +1093,8 @@ repository:
it('28. base-config filtering preserves org-rulesets informational NopCommands', async () => {
stubContext.payload.repository = { owner: { login: 'test' }, name: 'safe-settings' }
stubContext.payload.check_run = { id: 123, check_suite: { pull_requests: [{ number: 456 }] } }
- stubContext.octokit.checks = { update: jest.fn().mockResolvedValue({}) }
- stubContext.octokit.issues = { createComment: jest.fn().mockResolvedValue({}) }
+ stubContext.octokit.rest.checks = { update: jest.fn().mockResolvedValue({}) }
+ stubContext.octokit.rest.issues = { createComment: jest.fn().mockResolvedValue({}) }
const settings = new Settings(true, stubContext, mockRepo, {
rulesets: [{ name: 'managed', enforcement: 'disabled' }]
@@ -1113,8 +1117,8 @@ repository:
await settings.handleResults()
- expect(stubContext.octokit.checks.update).toHaveBeenCalled()
- const summary = stubContext.octokit.checks.update.mock.calls[0][0].output.summary
+ expect(stubContext.octokit.rest.checks.update).toHaveBeenCalled()
+ const summary = stubContext.octokit.rest.checks.update.mock.calls[0][0].output.summary
expect(summary).toMatch(/Informational messages/)
expect(summary).toMatch(/suppressed by additive_plugins/)
})
@@ -1463,7 +1467,7 @@ repository:
teams: [{ name: 'core', permission: 'push' }]
})).toString('base64')
- stubContext.octokit.repos.getContent = jest.fn().mockImplementation((params) => {
+ stubContext.octokit.rest.repos.getContent = jest.fn().mockImplementation((params) => {
if (params.ref === 'prev-sha') {
return Promise.resolve({ data: { content: previousContent } })
}
@@ -1502,7 +1506,7 @@ repository:
teams: [{ name: 'core', permission: 'push' }]
})).toString('base64')
- stubContext.octokit.repos.getContent = jest.fn().mockImplementation((params) => {
+ stubContext.octokit.rest.repos.getContent = jest.fn().mockImplementation((params) => {
if (params.ref === 'prev-sha') {
return Promise.resolve({ data: { content: previousContent } })
}
@@ -1537,7 +1541,7 @@ repository:
teams: [{ name: 'core', permission: 'push' }]
})).toString('base64')
- stubContext.octokit.repos.getContent = jest.fn().mockImplementation((params) => {
+ stubContext.octokit.rest.repos.getContent = jest.fn().mockImplementation((params) => {
if (params.ref === 'prev-sha') {
return Promise.resolve({ data: { content: previousContent } })
}
@@ -1571,7 +1575,7 @@ repository:
teams: [{ name: 'core', permission: 'push' }]
})).toString('base64')
- stubContext.octokit.repos.getContent = jest.fn().mockImplementation((params) => {
+ stubContext.octokit.rest.repos.getContent = jest.fn().mockImplementation((params) => {
if (params.ref === 'prev-sha') {
return Promise.resolve({ data: { content: previousContent } })
}
@@ -1603,7 +1607,7 @@ repository:
suborgrepos: ['repo-a', 'repo-b']
})).toString('base64')
- stubContext.octokit.repos.getContent = jest.fn().mockResolvedValue({
+ stubContext.octokit.rest.repos.getContent = jest.fn().mockResolvedValue({
data: { content: previousContent }
})
@@ -1630,7 +1634,7 @@ repository:
})
it('handles 404 gracefully when previous file does not exist', async () => {
- stubContext.octokit.repos.getContent = jest.fn().mockRejectedValue(
+ stubContext.octokit.rest.repos.getContent = jest.fn().mockRejectedValue(
Object.assign(new Error('Not Found'), { status: 404 })
)
diff --git a/test/unit/lib/settingsGenerator.test.js b/test/unit/lib/settingsGenerator.test.js
index 6feef5c34..9da7f5280 100644
--- a/test/unit/lib/settingsGenerator.test.js
+++ b/test/unit/lib/settingsGenerator.test.js
@@ -117,19 +117,21 @@ describe('intersectConfigs', () => {
describe('SettingsGenerator extractors', () => {
it('repository() selects only configurable fields', async () => {
const github = {
- repos: {
- get: jest.fn().mockResolvedValue({
- data: {
- id: 1,
- node_id: 'x',
- name: 'test',
- description: 'desc',
- has_issues: true,
- stargazers_count: 99,
- topics: ['a', 'b'],
- default_branch: 'main'
- }
- })
+ rest: {
+ repos: {
+ get: jest.fn().mockResolvedValue({
+ data: {
+ id: 1,
+ node_id: 'x',
+ name: 'test',
+ description: 'desc',
+ has_issues: true,
+ stargazers_count: 99,
+ topics: ['a', 'b'],
+ default_branch: 'main'
+ }
+ })
+ }
}
}
const generator = makeGenerator(github)
From eba28b4e550c1206827030e551eaab41a915f052 Mon Sep 17 00:00:00 2001
From: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Date: Tue, 11 Aug 2026 19:02:23 -0400
Subject: [PATCH 84/93] build(deps): bump js-yaml, qs, shell-quote (incorporate
PR #1001) (#1050)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
PR #1001 (dependabot npm_and_yarn group) bumped js-yaml 4.1.1->4.2.0,
qs 6.15.0->6.15.2, and shell-quote 1.8.3->1.8.4. These were not yet
present in this branch. Rather than merging the dependabot merge commit
(baac44d) — which pulls in the entire divergent pre-probot-14.3.2 tree
and conflicts massively — the updates were applied surgically via
`npm update` against the current probot 14.3.2 lockfile, resolving to
equal-or-newer semver-compatible versions that fully cover PR #1001:
js-yaml 4.1.1 -> 4.3.1
qs 6.15.0 -> 6.15.3
shell-quote 1.8.3 -> 1.10.0
plus related transitive bumps (js-yaml 3.14.2->3.15.1, side-channel).
Validated: unit/integration suite (344 passing; the 7 probot-ESM/Jest
suites fail pre-existing from the probot 14.3.2 migration, unrelated),
lockfile-lint clean, npm ls clean, and full live smoke-test (181 pass).
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
---
package-lock.json | 68 +++++++++++++++++++++++++----------------------
1 file changed, 36 insertions(+), 32 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index c2e8c601f..f9bafb209 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -791,11 +791,10 @@
}
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
- "version": "3.14.2",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
- "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
+ "version": "3.15.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz",
+ "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -3894,11 +3893,10 @@
}
},
"node_modules/@yarnpkg/parsers/node_modules/js-yaml": {
- "version": "3.14.2",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
- "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
+ "version": "3.15.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz",
+ "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -9939,10 +9937,19 @@
"license": "MIT"
},
"node_modules/js-yaml": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
- "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
- "license": "MIT",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz",
+ "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/puzrin"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/nodeca"
+ }
+ ],
"dependencies": {
"argparse": "^2.0.1"
},
@@ -11849,12 +11856,12 @@
"license": "MIT"
},
"node_modules/qs": {
- "version": "6.15.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz",
- "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==",
- "license": "BSD-3-Clause",
+ "version": "6.15.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz",
+ "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==",
"dependencies": {
- "side-channel": "^1.1.0"
+ "es-define-property": "^1.0.1",
+ "side-channel": "^1.1.1"
},
"engines": {
"node": ">=0.6"
@@ -12515,11 +12522,10 @@
}
},
"node_modules/shell-quote": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz",
- "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz",
+ "integrity": "sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -12534,14 +12540,13 @@
"license": "BSD-2-Clause"
},
"node_modules/side-channel": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
- "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
- "license": "MIT",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz",
+ "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==",
"dependencies": {
"es-errors": "^1.3.0",
- "object-inspect": "^1.13.3",
- "side-channel-list": "^1.0.0",
+ "object-inspect": "^1.13.4",
+ "side-channel-list": "^1.0.1",
"side-channel-map": "^1.0.1",
"side-channel-weakmap": "^1.0.2"
},
@@ -12553,13 +12558,12 @@
}
},
"node_modules/side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
- "license": "MIT",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
+ "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
"dependencies": {
"es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
+ "object-inspect": "^1.13.4"
},
"engines": {
"node": ">= 0.4"
From da2bf48f11f2e28c19c0b5e082d912ef9d663edc Mon Sep 17 00:00:00 2001
From: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Date: Tue, 11 Aug 2026 19:22:02 -0400
Subject: [PATCH 85/93] feat(repository): add CREATE_DEFAULT_BRANCH flag to
create default branch instead of renaming
When repository.default_branch is configured and differs from the repo's
current default branch, safe-settings renames the current default branch.
With CREATE_DEFAULT_BRANCH=true, if the configured branch does not exist,
safe-settings instead creates a new branch off the current default and
promotes it to default, leaving the existing default branch untouched.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
---
README.md | 4 +
.../github-settings/1. repository-settings.md | 2 +-
lib/env.js | 1 +
lib/plugins/repository.js | 50 +++++++++-
test/unit/lib/plugins/repository.test.js | 91 ++++++++++++++++++-
5 files changed, 144 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 4419722c8..29cf6aea0 100644
--- a/README.md
+++ b/README.md
@@ -859,6 +859,10 @@ You can pass environment variables; the easiest way to do it is via a `.env` fil
```
BLOCK_REPO_RENAME_BY_HUMAN=true
```
+1. Create the configured `default_branch` instead of renaming the current one using `CREATE_DEFAULT_BRANCH` (default is `false`). By default, when `repository.default_branch` is configured and differs from the repo's current default branch, `safe-settings` renames the current default branch to the configured name. When `CREATE_DEFAULT_BRANCH=true`, if the configured `default_branch` does not exist, `safe-settings` instead creates a new branch off the current default branch and sets it as the default, leaving the existing default branch untouched (no rename). If the configured branch already exists, it is simply set as the default. For e.g.
+ ```
+ CREATE_DEFAULT_BRANCH=true
+ ```
### Runtime Settings
diff --git a/docs/github-settings/1. repository-settings.md b/docs/github-settings/1. repository-settings.md
index 4d7fc0785..ced66f3f0 100644
--- a/docs/github-settings/1. repository-settings.md
+++ b/docs/github-settings/1. repository-settings.md
@@ -226,7 +226,7 @@ repository:
|
|
default_branch boolean
-Updates the default branch for this repository.
+Updates the default branch for this repository. By default, if the configured branch differs from the current default branch, safe-settings renames the current default branch. Set the CREATE_DEFAULT_BRANCH=true environment variable to instead create the configured branch (off the current default) and promote it, without renaming the existing default branch.
|
```yaml
diff --git a/lib/env.js b/lib/env.js
index 94c0ea742..2c861486d 100644
--- a/lib/env.js
+++ b/lib/env.js
@@ -6,5 +6,6 @@ module.exports = {
CREATE_PR_COMMENT: process.env.CREATE_PR_COMMENT || 'true',
CREATE_ERROR_ISSUE: process.env.CREATE_ERROR_ISSUE || 'true',
BLOCK_REPO_RENAME_BY_HUMAN: process.env.BLOCK_REPO_RENAME_BY_HUMAN || 'false',
+ CREATE_DEFAULT_BRANCH: process.env.CREATE_DEFAULT_BRANCH === 'true',
FULL_SYNC_NOP: process.env.FULL_SYNC_NOP === 'true'
}
diff --git a/lib/plugins/repository.js b/lib/plugins/repository.js
index 3333225d2..5276df202 100644
--- a/lib/plugins/repository.js
+++ b/lib/plugins/repository.js
@@ -3,6 +3,7 @@
const ErrorStash = require('./errorStash')
const NopCommand = require('../nopcommand')
const MergeDeep = require('../mergeDeep')
+const env = require('../env')
const ignorableFields = [
'id',
'node_id',
@@ -179,7 +180,7 @@ module.exports = class Repository extends ErrorStash {
// If the old branch was renamed github will find the branch with the oldname the branch but the ref doesn't exist
// So we'd have to rename it back to the oldname
if (res.data.name !== newname) {
- return this.renameBranch(oldname, newname, resArray)
+ return this.createOrRenameBranch(oldname, newname, resArray)
} else {
const parms = {
owner: this.settings.owner,
@@ -195,13 +196,58 @@ module.exports = class Repository extends ErrorStash {
}
}).catch(e => {
if (e.status === 404) {
- return this.renameBranch(oldname, newname, resArray)
+ return this.createOrRenameBranch(oldname, newname, resArray)
} else {
this.logError(`Error ${JSON.stringify(e)}`)
}
})
}
+ // Decide how to reconcile a missing default branch based on the
+ // CREATE_DEFAULT_BRANCH feature flag. When enabled, a new branch is created
+ // off the current default branch and promoted to default, leaving the existing
+ // default branch untouched. When disabled (default), the current default branch
+ // is renamed (the historical behavior).
+ createOrRenameBranch (oldname, newname, resArray) {
+ if (env.CREATE_DEFAULT_BRANCH) {
+ return this.createDefaultBranch(oldname, newname, resArray)
+ }
+ return this.renameBranch(oldname, newname, resArray)
+ }
+
+ createDefaultBranch (oldname, newname, resArray) {
+ this.log.debug(`Branch ${newname} does not exist. Creating it from the current default branch ${oldname} and making it the default`)
+ return this.github.repos.getBranch({
+ owner: this.settings.owner,
+ repo: this.settings.repo,
+ branch: oldname
+ }).then((res) => {
+ const sha = res.data.commit.sha
+ const createRefParms = {
+ owner: this.settings.owner,
+ repo: this.settings.repo,
+ ref: `refs/heads/${newname}`,
+ sha
+ }
+ const updateParms = {
+ owner: this.settings.owner,
+ repo: this.settings.repo,
+ default_branch: newname
+ }
+ if (this.nop) {
+ resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.git.createRef.endpoint(createRefParms), `Create default branch ${newname} from ${oldname}`))
+ resArray.push(new NopCommand(this.constructor.name, this.repo, this.github.repos.update.endpoint(updateParms), `Set default branch to ${newname}`))
+ return Promise.resolve(resArray)
+ }
+ this.log.info(`Creating branch ${newname} from ${oldname} (${sha}) and setting it as the default branch`)
+ return this.github.git.createRef(createRefParms).then(() => {
+ return this.github.repos.update(updateParms)
+ })
+ }).catch(e => {
+ this.logError(`Error creating default branch ${newname} from ${oldname}: ${JSON.stringify(e)}`)
+ })
+ }
+
renameBranch (oldname, newname, resArray) {
this.log.error(`Branch ${newname} does not exist. So renaming the current default branch ${oldname} to ${newname}`)
const parms = {
diff --git a/test/unit/lib/plugins/repository.test.js b/test/unit/lib/plugins/repository.test.js
index fc4c453b0..43d4ec0df 100644
--- a/test/unit/lib/plugins/repository.test.js
+++ b/test/unit/lib/plugins/repository.test.js
@@ -1,4 +1,5 @@
const Repository = require('../../../../lib/plugins/repository')
+const env = require('../../../../lib/env')
describe('Repository', () => {
const github = {
@@ -8,13 +9,19 @@ describe('Repository', () => {
topics: []
}
}),
+ getBranch: jest.fn().mockResolvedValue({ data: { name: 'main', commit: { sha: 'abc123' } } }),
update: jest.fn().mockResolvedValue(),
+ renameBranch: jest.fn().mockResolvedValue(),
replaceAllTopics: jest.fn().mockResolvedValue()
+ },
+ git: {
+ createRef: jest.fn().mockResolvedValue()
}
}
const log = jest.fn()
log.debug = jest.fn()
log.error = jest.fn()
+ log.info = jest.fn()
function configure (config) {
const nop = false
@@ -58,7 +65,7 @@ describe('Repository', () => {
})
})
- it.only('syncs topics', () => {
+ it('syncs topics', () => {
const plugin = configure({
topics: ['foo', 'bar']
})
@@ -75,4 +82,86 @@ describe('Repository', () => {
})
})
})
+
+ describe('default_branch reconciliation', () => {
+ const originalFlag = env.CREATE_DEFAULT_BRANCH
+
+ beforeEach(() => {
+ jest.clearAllMocks()
+ github.repos.get.mockResolvedValue({
+ data: {
+ name: 'test',
+ default_branch: 'master',
+ topics: []
+ }
+ })
+ })
+
+ afterEach(() => {
+ env.CREATE_DEFAULT_BRANCH = originalFlag
+ })
+
+ describe('when CREATE_DEFAULT_BRANCH is disabled (default)', () => {
+ beforeEach(() => {
+ env.CREATE_DEFAULT_BRANCH = false
+ })
+
+ it('renames the current default branch when the configured branch is missing', () => {
+ github.repos.getBranch.mockRejectedValueOnce({ status: 404 })
+ const plugin = configure({ default_branch: 'main' })
+ return plugin.sync().then(() => {
+ expect(github.repos.renameBranch).toHaveBeenCalledWith({
+ owner: 'bkeepers',
+ repo: 'test',
+ branch: 'master',
+ new_name: 'main'
+ })
+ expect(github.git.createRef).not.toHaveBeenCalled()
+ })
+ })
+ })
+
+ describe('when CREATE_DEFAULT_BRANCH is enabled', () => {
+ beforeEach(() => {
+ env.CREATE_DEFAULT_BRANCH = true
+ })
+
+ it('creates the branch off the current default and promotes it without renaming', () => {
+ // First getBranch call (for the configured branch) 404s; the second
+ // (for the current default) returns its SHA.
+ github.repos.getBranch
+ .mockRejectedValueOnce({ status: 404 })
+ .mockResolvedValueOnce({ data: { name: 'master', commit: { sha: 'deadbeef' } } })
+ const plugin = configure({ default_branch: 'main' })
+ return plugin.sync().then(() => {
+ expect(github.git.createRef).toHaveBeenCalledWith({
+ owner: 'bkeepers',
+ repo: 'test',
+ ref: 'refs/heads/main',
+ sha: 'deadbeef'
+ })
+ expect(github.repos.update).toHaveBeenCalledWith({
+ owner: 'bkeepers',
+ repo: 'test',
+ default_branch: 'main'
+ })
+ expect(github.repos.renameBranch).not.toHaveBeenCalled()
+ })
+ })
+
+ it('only sets the default branch when the configured branch already exists', () => {
+ github.repos.getBranch.mockResolvedValueOnce({ data: { name: 'main', commit: { sha: 'abc123' } } })
+ const plugin = configure({ default_branch: 'main' })
+ return plugin.sync().then(() => {
+ expect(github.git.createRef).not.toHaveBeenCalled()
+ expect(github.repos.renameBranch).not.toHaveBeenCalled()
+ expect(github.repos.update).toHaveBeenCalledWith({
+ owner: 'bkeepers',
+ repo: 'test',
+ default_branch: 'main'
+ })
+ })
+ })
+ })
+ })
})
From 59b9ad9319a3427b48552a00fb2bba32a77bee16 Mon Sep 17 00:00:00 2001
From: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Date: Tue, 11 Aug 2026 20:18:15 -0400
Subject: [PATCH 86/93] fix(repository): propagate createDefaultBranch errors
instead of swallowing them
Re-throw after logging in createDefaultBranch so a failed branch creation or
default-branch update stops the sync flow and is recorded, instead of allowing
sync to continue and potentially report success. Adds a regression test.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
---
lib/plugins/repository.js | 1 +
test/unit/lib/plugins/repository.test.js | 13 +++++++++++++
2 files changed, 14 insertions(+)
diff --git a/lib/plugins/repository.js b/lib/plugins/repository.js
index 5276df202..9f7cee759 100644
--- a/lib/plugins/repository.js
+++ b/lib/plugins/repository.js
@@ -245,6 +245,7 @@ module.exports = class Repository extends ErrorStash {
})
}).catch(e => {
this.logError(`Error creating default branch ${newname} from ${oldname}: ${JSON.stringify(e)}`)
+ throw e
})
}
diff --git a/test/unit/lib/plugins/repository.test.js b/test/unit/lib/plugins/repository.test.js
index 43d4ec0df..75587fed1 100644
--- a/test/unit/lib/plugins/repository.test.js
+++ b/test/unit/lib/plugins/repository.test.js
@@ -162,6 +162,19 @@ describe('Repository', () => {
})
})
})
+
+ it('propagates errors when branch creation fails instead of swallowing them', () => {
+ github.git.createRef.mockRejectedValueOnce({ status: 422, message: 'boom' })
+ const errors = []
+ const plugin = new Repository(false, github, { owner: 'bkeepers', repo: 'test' }, { default_branch: 'main' }, 1, log, errors)
+ const resArray = []
+ return expect(plugin.createDefaultBranch('master', 'main', resArray)).rejects.toEqual({ status: 422, message: 'boom' }).then(() => {
+ // The failure is recorded rather than silently swallowed, and the
+ // default branch is never updated when branch creation fails.
+ expect(errors).toHaveLength(1)
+ expect(github.repos.update).not.toHaveBeenCalled()
+ })
+ })
})
})
})
From 8f75cab26989a6c7c856754027e8871893dada04 Mon Sep 17 00:00:00 2001
From: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Date: Tue, 11 Aug 2026 20:19:08 -0400
Subject: [PATCH 87/93] docs: correct default_branch type label from boolean to
string
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
---
docs/github-settings/1. repository-settings.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/github-settings/1. repository-settings.md b/docs/github-settings/1. repository-settings.md
index ced66f3f0..c0cdbc1e5 100644
--- a/docs/github-settings/1. repository-settings.md
+++ b/docs/github-settings/1. repository-settings.md
@@ -225,7 +225,7 @@ repository:
|
|
- default_branch boolean
+default_branch string
Updates the default branch for this repository. By default, if the configured branch differs from the current default branch, safe-settings renames the current default branch. Set the CREATE_DEFAULT_BRANCH=true environment variable to instead create the configured branch (off the current default) and promote it, without renaming the existing default branch.
|
From eefc5eb78a3ca046459a4b65ccb17b5acc11ef8c Mon Sep 17 00:00:00 2001
From: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Date: Mon, 17 Aug 2026 18:18:45 -0400
Subject: [PATCH 88/93] Incorporate 1004 changes (#1056)
* Incorporate 1004 changes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---
helm/safe-settings/README.md | 1 +
helm/safe-settings/templates/deployment.yaml | 3 +++
helm/safe-settings/values.yaml | 2 ++
3 files changed, 6 insertions(+)
diff --git a/helm/safe-settings/README.md b/helm/safe-settings/README.md
index 97cd5b01b..d9c181d0e 100644
--- a/helm/safe-settings/README.md
+++ b/helm/safe-settings/README.md
@@ -37,6 +37,7 @@ A Helm chart for Kubernetes
| nodeSelector | object | `{}` | |
| podAnnotations | object | `{}` | |
| podSecurityContext | object | `{}` | |
+| priorityClassName | string | `""` | Priority class name for the pod. |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| securityContext.allowPrivilegeEscalation | bool | `false` | |
diff --git a/helm/safe-settings/templates/deployment.yaml b/helm/safe-settings/templates/deployment.yaml
index cf75673ec..cefc562bf 100644
--- a/helm/safe-settings/templates/deployment.yaml
+++ b/helm/safe-settings/templates/deployment.yaml
@@ -77,3 +77,6 @@ spec:
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
+ {{- if .Values.priorityClassName }}
+ priorityClassName: {{ .Values.priorityClassName | quote }}
+ {{- end }}
diff --git a/helm/safe-settings/values.yaml b/helm/safe-settings/values.yaml
index 99ffa497f..907c3110a 100644
--- a/helm/safe-settings/values.yaml
+++ b/helm/safe-settings/values.yaml
@@ -118,6 +118,8 @@ tolerations: []
affinity: {}
+priorityClassName: ""
+
deploymentConfig:
restrictedRepos:
# You can exclude certain repos from safe-settings processing
From e442bd3921578096513fec9bb9b48b296aad8d23 Mon Sep 17 00:00:00 2001
From: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Date: Tue, 18 Aug 2026 13:18:23 -0400
Subject: [PATCH 89/93] Incorporate 1060 changes (#1063)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
package-lock.json | 74 +++++++++++++++++++++++------------------------
1 file changed, 37 insertions(+), 37 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index f9bafb209..03059ad9b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -641,9 +641,9 @@
"license": "MIT"
},
"node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
- "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -698,9 +698,9 @@
"license": "MIT"
},
"node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
- "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4524,15 +4524,15 @@
"license": "MIT"
},
"node_modules/brace-expansion": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
- "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
+ "version": "5.0.9",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz",
+ "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==",
"license": "MIT",
"dependencies": {
"balanced-match": "^4.0.2"
},
"engines": {
- "node": "18 || 20 || >=22"
+ "node": "20 || >=22"
}
},
"node_modules/braces": {
@@ -5933,9 +5933,9 @@
"license": "MIT"
},
"node_modules/eslint-plugin-import/node_modules/brace-expansion": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
- "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6028,9 +6028,9 @@
"peer": true
},
"node_modules/eslint-plugin-n/node_modules/brace-expansion": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
- "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -6113,9 +6113,9 @@
"license": "MIT"
},
"node_modules/eslint-plugin-node/node_modules/brace-expansion": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
- "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6203,9 +6203,9 @@
"license": "MIT"
},
"node_modules/eslint-plugin-react/node_modules/brace-expansion": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
- "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6377,9 +6377,9 @@
"license": "MIT"
},
"node_modules/eslint/node_modules/brace-expansion": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
- "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7224,9 +7224,9 @@
"license": "MIT"
},
"node_modules/glob/node_modules/brace-expansion": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
- "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10706,9 +10706,9 @@
"license": "MIT"
},
"node_modules/npm-run-all/node_modules/brace-expansion": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
- "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12850,9 +12850,9 @@
"license": "MIT"
},
"node_modules/standard/node_modules/brace-expansion": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
- "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13260,9 +13260,9 @@
"license": "MIT"
},
"node_modules/test-exclude/node_modules/brace-expansion": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
- "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
"dev": true,
"license": "MIT",
"dependencies": {
From 955cadf2cfdea50157620cf1f107890c6df7013e Mon Sep 17 00:00:00 2001
From: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Date: Tue, 18 Aug 2026 18:21:34 -0400
Subject: [PATCH 90/93] Incorporate 1009 changes (#1062)
* Incorporate 1009 changes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Align repo/suborg TeamSettings schema with team repository permissions
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
---
schema/dereferenced/repos.json | 182 +++++++++++++++----------------
schema/dereferenced/suborgs.json | 182 +++++++++++++++----------------
schema/repos.json | 44 +++++++-
schema/suborgs.json | 44 +++++++-
4 files changed, 262 insertions(+), 190 deletions(-)
diff --git a/schema/dereferenced/repos.json b/schema/dereferenced/repos.json
index 59bf0a050..c1619fb84 100644
--- a/schema/dereferenced/repos.json
+++ b/schema/dereferenced/repos.json
@@ -413,57 +413,54 @@
"type": "array",
"items": {
"description": "A team entry",
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "The name of the team."
- },
- "description": {
- "type": "string",
- "description": "The description of the team."
- },
- "maintainers": {
- "type": "array",
- "description": "List GitHub usernames for organization members who will become team maintainers.",
- "items": {
- "type": "string"
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "permission": {
+ "type": "string",
+ "description": "The permission to grant the team on this repository. We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository."
+ }
}
},
- "repo_names": {
- "type": "array",
- "description": "The full name (e.g., \"organization-name/repository-name\") of repositories to add the team to.",
- "items": {
- "type": "string"
+ {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name (or slug) of the team to grant access to the repo.",
+ "type": "string"
+ },
+ "privacy": {
+ "description": "The level of privacy the team should have when it is created by safe-settings. The options are `secret` (visible only to organization owners and members of the team) or `closed` (visible to all members of the organization).",
+ "type": "string",
+ "enum": [
+ "secret",
+ "closed"
+ ]
+ },
+ "external_group": {
+ "description": "The display name of an external IdP group to link to this team.",
+ "type": "string"
+ },
+ "exclude": {
+ "description": "Exclude this team from repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "Apply this team only to repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
}
- },
- "privacy": {
- "type": "string",
- "description": "The level of privacy this team should have. The options are: \n**For a non-nested team:** \n * `secret` - only visible to organization owners and members of this team. \n * `closed` - visible to all members of this organization. \nDefault: `secret` \n**For a parent or child team:** \n * `closed` - visible to all members of this organization. \nDefault for child team: `closed`",
- "enum": [
- "secret",
- "closed"
- ]
- },
- "notification_setting": {
- "type": "string",
- "description": "The notification setting the team has chosen. The options are: \n * `notifications_enabled` - team members receive notifications when the team is @mentioned. \n * `notifications_disabled` - no one receives notifications. \nDefault: `notifications_enabled`",
- "enum": [
- "notifications_enabled",
- "notifications_disabled"
- ]
- },
- "parent_team_id": {
- "type": "integer",
- "description": "The ID of a team to set as the parent team."
- },
- "parent_team_slug": {
- "type": "string",
- "description": "The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided."
}
- },
- "required": [
- "name"
]
}
},
@@ -1244,57 +1241,54 @@
},
"TeamSettings": {
"description": "A team entry",
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "The name of the team."
- },
- "description": {
- "type": "string",
- "description": "The description of the team."
- },
- "maintainers": {
- "type": "array",
- "description": "List GitHub usernames for organization members who will become team maintainers.",
- "items": {
- "type": "string"
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "permission": {
+ "type": "string",
+ "description": "The permission to grant the team on this repository. We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository."
+ }
}
},
- "repo_names": {
- "type": "array",
- "description": "The full name (e.g., \"organization-name/repository-name\") of repositories to add the team to.",
- "items": {
- "type": "string"
+ {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name (or slug) of the team to grant access to the repo.",
+ "type": "string"
+ },
+ "privacy": {
+ "description": "The level of privacy the team should have when it is created by safe-settings. The options are `secret` (visible only to organization owners and members of the team) or `closed` (visible to all members of the organization).",
+ "type": "string",
+ "enum": [
+ "secret",
+ "closed"
+ ]
+ },
+ "external_group": {
+ "description": "The display name of an external IdP group to link to this team.",
+ "type": "string"
+ },
+ "exclude": {
+ "description": "Exclude this team from repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "Apply this team only to repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
}
- },
- "privacy": {
- "type": "string",
- "description": "The level of privacy this team should have. The options are: \n**For a non-nested team:** \n * `secret` - only visible to organization owners and members of this team. \n * `closed` - visible to all members of this organization. \nDefault: `secret` \n**For a parent or child team:** \n * `closed` - visible to all members of this organization. \nDefault for child team: `closed`",
- "enum": [
- "secret",
- "closed"
- ]
- },
- "notification_setting": {
- "type": "string",
- "description": "The notification setting the team has chosen. The options are: \n * `notifications_enabled` - team members receive notifications when the team is @mentioned. \n * `notifications_disabled` - no one receives notifications. \nDefault: `notifications_enabled`",
- "enum": [
- "notifications_enabled",
- "notifications_disabled"
- ]
- },
- "parent_team_id": {
- "type": "integer",
- "description": "The ID of a team to set as the parent team."
- },
- "parent_team_slug": {
- "type": "string",
- "description": "The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided."
}
- },
- "required": [
- "name"
]
},
"MilestoneSettings": {
diff --git a/schema/dereferenced/suborgs.json b/schema/dereferenced/suborgs.json
index 6e7bb3254..b75780ff3 100644
--- a/schema/dereferenced/suborgs.json
+++ b/schema/dereferenced/suborgs.json
@@ -447,57 +447,54 @@
"type": "array",
"items": {
"description": "A team entry",
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "The name of the team."
- },
- "description": {
- "type": "string",
- "description": "The description of the team."
- },
- "maintainers": {
- "type": "array",
- "description": "List GitHub usernames for organization members who will become team maintainers.",
- "items": {
- "type": "string"
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "permission": {
+ "type": "string",
+ "description": "The permission to grant the team on this repository. We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository."
+ }
}
},
- "repo_names": {
- "type": "array",
- "description": "The full name (e.g., \"organization-name/repository-name\") of repositories to add the team to.",
- "items": {
- "type": "string"
+ {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name (or slug) of the team to grant access to the repo.",
+ "type": "string"
+ },
+ "privacy": {
+ "description": "The level of privacy the team should have when it is created by safe-settings. The options are `secret` (visible only to organization owners and members of the team) or `closed` (visible to all members of the organization).",
+ "type": "string",
+ "enum": [
+ "secret",
+ "closed"
+ ]
+ },
+ "external_group": {
+ "description": "The display name of an external IdP group to link to this team.",
+ "type": "string"
+ },
+ "exclude": {
+ "description": "Exclude this team from repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "Apply this team only to repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
}
- },
- "privacy": {
- "type": "string",
- "description": "The level of privacy this team should have. The options are: \n**For a non-nested team:** \n * `secret` - only visible to organization owners and members of this team. \n * `closed` - visible to all members of this organization. \nDefault: `secret` \n**For a parent or child team:** \n * `closed` - visible to all members of this organization. \nDefault for child team: `closed`",
- "enum": [
- "secret",
- "closed"
- ]
- },
- "notification_setting": {
- "type": "string",
- "description": "The notification setting the team has chosen. The options are: \n * `notifications_enabled` - team members receive notifications when the team is @mentioned. \n * `notifications_disabled` - no one receives notifications. \nDefault: `notifications_enabled`",
- "enum": [
- "notifications_enabled",
- "notifications_disabled"
- ]
- },
- "parent_team_id": {
- "type": "integer",
- "description": "The ID of a team to set as the parent team."
- },
- "parent_team_slug": {
- "type": "string",
- "description": "The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided."
}
- },
- "required": [
- "name"
]
}
},
@@ -1278,57 +1275,54 @@
},
"TeamSettings": {
"description": "A team entry",
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "The name of the team."
- },
- "description": {
- "type": "string",
- "description": "The description of the team."
- },
- "maintainers": {
- "type": "array",
- "description": "List GitHub usernames for organization members who will become team maintainers.",
- "items": {
- "type": "string"
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "permission": {
+ "type": "string",
+ "description": "The permission to grant the team on this repository. We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository."
+ }
}
},
- "repo_names": {
- "type": "array",
- "description": "The full name (e.g., \"organization-name/repository-name\") of repositories to add the team to.",
- "items": {
- "type": "string"
+ {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name (or slug) of the team to grant access to the repo.",
+ "type": "string"
+ },
+ "privacy": {
+ "description": "The level of privacy the team should have when it is created by safe-settings. The options are `secret` (visible only to organization owners and members of the team) or `closed` (visible to all members of the organization).",
+ "type": "string",
+ "enum": [
+ "secret",
+ "closed"
+ ]
+ },
+ "external_group": {
+ "description": "The display name of an external IdP group to link to this team.",
+ "type": "string"
+ },
+ "exclude": {
+ "description": "Exclude this team from repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "Apply this team only to repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
}
- },
- "privacy": {
- "type": "string",
- "description": "The level of privacy this team should have. The options are: \n**For a non-nested team:** \n * `secret` - only visible to organization owners and members of this team. \n * `closed` - visible to all members of this organization. \nDefault: `secret` \n**For a parent or child team:** \n * `closed` - visible to all members of this organization. \nDefault for child team: `closed`",
- "enum": [
- "secret",
- "closed"
- ]
- },
- "notification_setting": {
- "type": "string",
- "description": "The notification setting the team has chosen. The options are: \n * `notifications_enabled` - team members receive notifications when the team is @mentioned. \n * `notifications_disabled` - no one receives notifications. \nDefault: `notifications_enabled`",
- "enum": [
- "notifications_enabled",
- "notifications_disabled"
- ]
- },
- "parent_team_id": {
- "type": "integer",
- "description": "The ID of a team to set as the parent team."
- },
- "parent_team_slug": {
- "type": "string",
- "description": "The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided."
}
- },
- "required": [
- "name"
]
},
"MilestoneSettings": {
diff --git a/schema/repos.json b/schema/repos.json
index 3a7c51301..9db88ce53 100644
--- a/schema/repos.json
+++ b/schema/repos.json
@@ -190,7 +190,49 @@
},
"TeamSettings": {
"description": "A team entry",
- "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1orgs~1{org}~1teams/post/requestBody/content/application~1json/schema"
+ "allOf": [
+ {
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1orgs~1{org}~1teams~1{team_slug}~1repos~1{owner}~1{repo}/put/requestBody/content/application~1json/schema"
+ },
+ {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name (or slug) of the team to grant access to the repo.",
+ "type": "string"
+ },
+ "privacy": {
+ "description": "The level of privacy the team should have when it is created by safe-settings. The options are `secret` (visible only to organization owners and members of the team) or `closed` (visible to all members of the organization).",
+ "type": "string",
+ "enum": [
+ "secret",
+ "closed"
+ ]
+ },
+ "external_group": {
+ "description": "The display name of an external IdP group to link to this team.",
+ "type": "string"
+ },
+ "exclude": {
+ "description": "Exclude this team from repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "Apply this team only to repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
},
"MilestoneSettings": {
"description": "A milestone entry",
diff --git a/schema/suborgs.json b/schema/suborgs.json
index 3a3c79def..241d98392 100644
--- a/schema/suborgs.json
+++ b/schema/suborgs.json
@@ -224,7 +224,49 @@
},
"TeamSettings": {
"description": "A team entry",
- "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1orgs~1{org}~1teams/post/requestBody/content/application~1json/schema"
+ "allOf": [
+ {
+ "$ref": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.2026-03-10.json#/paths/~1orgs~1{org}~1teams~1{team_slug}~1repos~1{owner}~1{repo}/put/requestBody/content/application~1json/schema"
+ },
+ {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "The name (or slug) of the team to grant access to the repo.",
+ "type": "string"
+ },
+ "privacy": {
+ "description": "The level of privacy the team should have when it is created by safe-settings. The options are `secret` (visible only to organization owners and members of the team) or `closed` (visible to all members of the organization).",
+ "type": "string",
+ "enum": [
+ "secret",
+ "closed"
+ ]
+ },
+ "external_group": {
+ "description": "The display name of an external IdP group to link to this team.",
+ "type": "string"
+ },
+ "exclude": {
+ "description": "Exclude this team from repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "include": {
+ "description": "Apply this team only to repos whose names match one of these glob patterns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ ]
},
"MilestoneSettings": {
"description": "A milestone entry",
From dc1a2c926cb4b94e43160c8229f82d4601f34b6b Mon Sep 17 00:00:00 2001
From: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Date: Tue, 18 Aug 2026 21:16:35 -0400
Subject: [PATCH 91/93] Resolve PR #990 merge conflicts and fix js-yaml
empty-document regression (#1066)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Handle multiple config changes in a PR or Push event and process them as a batch (#888)
* handle multiple changes as a batch
* Update index.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update index.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* depup files in a push
* Update index.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* moved the dedup logic
* Update index.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* build(deps): bump undici from 7.7.0 to 7.16.0 (#881)
Bumps [undici](https://github.com/nodejs/undici) from 7.7.0 to 7.16.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.7.0...v7.16.0)
---
updated-dependencies:
- dependency-name: undici
dependency-version: 7.16.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump node-cron from 3.0.3 to 4.2.1 (#865)
Bumps [node-cron](https://github.com/merencia/node-cron) from 3.0.3 to 4.2.1.
- [Release notes](https://github.com/merencia/node-cron/releases)
- [Commits](https://github.com/merencia/node-cron/compare/v3.0.3...v4.2.1)
---
updated-dependencies:
- dependency-name: node-cron
dependency-version: 4.2.1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps): bump @apidevtools/json-schema-ref-parser (#882)
Bumps [@apidevtools/json-schema-ref-parser](https://github.com/APIDevTools/json-schema-ref-parser) from 12.0.2 to 14.2.1.
- [Release notes](https://github.com/APIDevTools/json-schema-ref-parser/releases)
- [Commits](https://github.com/APIDevTools/json-schema-ref-parser/compare/v12.0.2...v14.2.1)
---
updated-dependencies:
- dependency-name: "@apidevtools/json-schema-ref-parser"
dependency-version: 14.2.1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps): bump minimatch from 10.0.1 to 10.0.3 (#883)
Bumps [minimatch](https://github.com/isaacs/minimatch) from 10.0.1 to 10.0.3.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v10.0.1...v10.0.3)
---
updated-dependencies:
- dependency-name: minimatch
dependency-version: 10.0.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps-dev): bump eslint-plugin-import from 2.31.0 to 2.32.0 (#884)
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.31.0 to 2.32.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.31.0...v2.32.0)
---
updated-dependencies:
- dependency-name: eslint-plugin-import
dependency-version: 2.32.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* ci(deps): bump docker/login-action from 3.5.0 to 3.6.0 (#885)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/184bdaa0721073962dff0199f1fb9940f07167d1...5e57cd118135c172c3672efd75eb46360885c0ef)
---
updated-dependencies:
- dependency-name: docker/login-action
dependency-version: 3.6.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* ci(deps): bump actions/setup-node from 4 to 6 (#890)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v6)
---
updated-dependencies:
- dependency-name: actions/setup-node
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps): bump js-yaml in the npm_and_yarn group across 1 directory (#894)
Bumps the npm_and_yarn group with 1 update in the / directory: [js-yaml](https://github.com/nodeca/js-yaml).
Updates `js-yaml` from 4.1.0 to 4.1.1
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 4.1.1
dependency-type: direct:production
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* ci(deps): bump docker/metadata-action from 5.8.0 to 5.10.0 (#897)
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.8.0 to 5.10.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/c1e51972afc2121e065aed6d45c65596fe445f3f...c299e40c65443455700f0fdfc63efafe5b349051)
---
updated-dependencies:
- dependency-name: docker/metadata-action
dependency-version: 5.10.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* ci(deps): bump actions/checkout from 4 to 6 (#898)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* ci(deps): bump docker/setup-qemu-action from 3.6.0 to 3.7.0 (#899)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/29109295f81e9208d7d86ff1c6c12d2833863392...c7c53464625b32c7a7e944ae62b3e17d2b600130)
---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
dependency-version: 3.7.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps): bump the npm_and_yarn group across 1 directory with 2 updates (#904)
Bumps the npm_and_yarn group with 2 updates in the / directory: [jws](https://github.com/brianloveswords/node-jws) and [validator](https://github.com/validatorjs/validator.js).
Updates `jws` from 3.2.2 to 3.2.3
- [Release notes](https://github.com/brianloveswords/node-jws/releases)
- [Changelog](https://github.com/auth0/node-jws/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianloveswords/node-jws/compare/v3.2.2...v3.2.3)
Updates `validator` from 13.11.0 to 13.15.26
- [Release notes](https://github.com/validatorjs/validator.js/releases)
- [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/validatorjs/validator.js/compare/13.11.0...13.15.26)
---
updated-dependencies:
- dependency-name: jws
dependency-version: 3.2.3
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: validator
dependency-version: 13.15.26
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump qs in the npm_and_yarn group across 1 directory (#912)
Bumps the npm_and_yarn group with 1 update in the / directory: [qs](https://github.com/ljharb/qs).
Updates `qs` from 6.13.0 to 6.14.1
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.13.0...v6.14.1)
---
updated-dependencies:
- dependency-name: qs
dependency-version: 6.14.1
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump qs in the npm_and_yarn group across 1 directory (#913)
Bumps the npm_and_yarn group with 1 update in the / directory: [qs](https://github.com/ljharb/qs).
Updates `qs` from 6.13.0 to 6.14.1
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.13.0...v6.14.1)
---
updated-dependencies:
- dependency-name: qs
dependency-version: 6.14.1
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump octokit from 5.0.3 to 5.0.5 (#905)
Bumps [octokit](https://github.com/octokit/octokit.js) from 5.0.3 to 5.0.5.
- [Release notes](https://github.com/octokit/octokit.js/releases)
- [Commits](https://github.com/octokit/octokit.js/compare/v5.0.3...v5.0.5)
---
updated-dependencies:
- dependency-name: octokit
dependency-version: 5.0.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump smee-client from 4.3.1 to 5.0.0 (#906)
Bumps [smee-client](https://github.com/probot/smee-client) from 4.3.1 to 5.0.0.
- [Release notes](https://github.com/probot/smee-client/releases)
- [Commits](https://github.com/probot/smee-client/compare/v4.3.1...v5.0.0)
---
updated-dependencies:
- dependency-name: smee-client
dependency-version: 5.0.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps-dev): bump @eslint/eslintrc from 3.3.1 to 3.3.3 (#908)
Bumps [@eslint/eslintrc](https://github.com/eslint/eslintrc) from 3.3.1 to 3.3.3.
- [Release notes](https://github.com/eslint/eslintrc/releases)
- [Changelog](https://github.com/eslint/eslintrc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslintrc/compare/v3.3.1...eslintrc-v3.3.3)
---
updated-dependencies:
- dependency-name: "@eslint/eslintrc"
dependency-version: 3.3.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* ci(deps): bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (#909)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.11.1 to 3.12.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/e468171a9de216ec08956ac3ada2f0791b6bd435...8d2750c68a42422c14e847fe6c8ac0403b4cbd6f)
---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
dependency-version: 3.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps): bump undici in the npm_and_yarn group across 1 directory (#921)
Bumps the npm_and_yarn group with 1 update in the / directory: [undici](https://github.com/nodejs/undici).
Updates `undici` from 7.16.0 to 7.18.2
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.16.0...v7.18.2)
---
updated-dependencies:
- dependency-name: undici
dependency-version: 7.18.2
dependency-type: direct:production
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* ci(deps): bump docker/login-action from 3.6.0 to 3.7.0 (#924)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/5e57cd118135c172c3672efd75eb46360885c0ef...c94ce9fb468520275223c153574b00df6fe4bcc9)
---
updated-dependencies:
- dependency-name: docker/login-action
dependency-version: 3.7.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps): bump the npm_and_yarn group across 1 directory with 2 updates (#927)
Bumps the npm_and_yarn group with 2 updates in the / directory: [lodash](https://github.com/lodash/lodash) and @isaacs/brace-expansion.
Updates `lodash` from 4.17.21 to 4.17.23
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)
Updates `@isaacs/brace-expansion` from 5.0.0 to 5.0.1
---
updated-dependencies:
- dependency-name: lodash
dependency-version: 4.17.23
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: "@isaacs/brace-expansion"
dependency-version: 5.0.1
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [WIP] Upgrade project to support Node.js 22 and 24 (#939)
* Initial plan
* Upgrade Node.js to 22 and 24 (last 2 LTS versions)
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
* Fix Dependabot CI: correct actor check from `dependabot` to `dependabot[bot]` (#940)
* Initial plan
* Initial plan for fixing CI workflow test
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
* Fix Dependabot actor check in node-ci.yml workflow
The `if` condition used `'dependabot'` but Dependabot's actual GitHub
actor username is `'dependabot[bot]'`. This caused the test job to run
for Dependabot PRs when it should be skipped, resulting in npm install
failures due to ESLint 10 peer dependency conflicts.
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
* Refactor advanced CodeQL workflow steps (#941)
* Added support for proxy servers in all execution environments (#917)
* Added support for proxy servers in all execution environments
* Update index.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* build(deps): bump probot from 13.4.4 to 14.2.4 (#907)
* build(deps): bump probot from 13.4.4 to 14.2.4
Bumps [probot](https://github.com/probot/probot) from 13.4.4 to 14.2.4.
- [Release notes](https://github.com/probot/probot/releases)
- [Commits](https://github.com/probot/probot/compare/v13.4.4...v14.2.4)
---
updated-dependencies:
- dependency-name: probot
dependency-version: 14.2.4
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
* Fix test suite failures caused by ESM-only `@octokit/core` and `probot` dependencies (#938)
* Initial plan
* Initial plan for fixing failing test suites
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
* Fix failing test suites caused by ESM-only dependencies
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
* Update minimatch dependency version to 10.2.1
* Fix devcontainer configuration and update dependencies (#942)
* fix devcontainer
* Update .devcontainer/Dockerfile
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update .devcontainer/Dockerfile
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update .devcontainer/devcontainer.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: prevent race conditions by creating new objects for repository configurations (#943)
* fix: prevent race conditions by creating new objects for repository configurations
Signed-off-by: Jan Bronicki
* Update lib/plugins/repository.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Signed-off-by: Jan Bronicki
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Change helm defaults to be more newcomer friendly (#919)
* Updated container port to match the port exposed by the application inside the container
* Added examples for common environment variables
* Changed validators to be examples in comments to avoid needing to override
* Changed min replica count to 1 for more cost effective defaults
* Updated min replica default in docs
* Updated service port default in docs
* Updated validator defaults in docs
* Updated restricted repos include default in docs
* Update helm/safe-settings/values.yaml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update helm/safe-settings/values.yaml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Updated README to match the new default value
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: add HOST=0.0.0.0 env to Dockerfile for probot v14 compatibility (#948)
Agent-Logs-Url: https://github.com/github/safe-settings/sessions/6a4f5799-ea1f-4900-a659-b492dbdf5cfc
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
* fix: migrate all octokit API calls to .rest namespace for probot v14 compatibility (#949)
* fix: override NODE_ENV=development in functional test and add retry logic
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/safe-settings/sessions/97b10121-f26e-44c0-86e6-3ede047fe176
* fix: add --fail to curl and || true to docker logs in functional test
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/safe-settings/sessions/97b10121-f26e-44c0-86e6-3ede047fe176
* fix: migrate all octokit API calls to .rest namespace for probot v14 compatibility and revert Dockerfile ENV HOST
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/safe-settings/sessions/179c9d77-8ca0-4098-9017-8a255df170f9
* Update lib/plugins/repository.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: address review feedback - NopCommand repo arg, milestones mock, teams test error propagation
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/safe-settings/sessions/d9420b15-2cca-40a3-a30b-869df73487f1
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add HOST environment variable to Dockerfile (#950)
* docs: add troubleshooting section for Docker build and runtime issues (#951)
* build(deps): bump undici in the npm_and_yarn group across 1 directory (#947)
Bumps the npm_and_yarn group with 1 update in the / directory: [undici](https://github.com/nodejs/undici).
Updates `undici` from 7.22.0 to 7.24.1
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.22.0...v7.24.1)
---
updated-dependencies:
- dependency-name: undici
dependency-version: 7.24.1
dependency-type: direct:production
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps-dev): bump brace-expansion
Bumps the npm_and_yarn group with 1 update in the / directory: [brace-expansion](https://github.com/juliangruber/brace-expansion).
Updates `brace-expansion` from 1.1.12 to 1.1.13
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.12...v1.1.13)
---
updated-dependencies:
- dependency-name: brace-expansion
dependency-version: 1.1.13
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
* build(deps): bump proxy-from-env from 1.1.0 to 2.0.0 (#934)
Bumps [proxy-from-env](https://github.com/Rob--W/proxy-from-env) from 1.1.0 to 2.0.0.
- [Release notes](https://github.com/Rob--W/proxy-from-env/releases)
- [Commits](https://github.com/Rob--W/proxy-from-env/compare/v1.1.0...v2.0.0)
---
updated-dependencies:
- dependency-name: proxy-from-env
dependency-version: 2.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* ci(deps): bump docker/build-push-action from 6.18.0 to 6.19.2 (#935)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.18.0 to 6.19.2.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/263435318d21b8e681c14492fe198d362a7d2c83...10e90e3645eae34f1e60eeb005ba3a3d33f178e8)
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-version: 6.19.2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps): bump path-to-regexp (#953)
Bumps the npm_and_yarn group with 1 update in the / directory: [path-to-regexp](https://github.com/pillarjs/path-to-regexp).
Updates `path-to-regexp` from 8.3.0 to 8.4.0
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v8.3.0...v8.4.0)
---
updated-dependencies:
- dependency-name: path-to-regexp
dependency-version: 8.4.0
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump the npm_and_yarn group across 1 directory with 2 updates (#954)
Bumps the npm_and_yarn group with 2 updates in the / directory: [path-to-regexp](https://github.com/pillarjs/path-to-regexp) and [yaml](https://github.com/eemeli/yaml).
Updates `path-to-regexp` from 8.3.0 to 8.4.0
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v8.3.0...v8.4.0)
Updates `yaml` from 2.8.2 to 2.8.3
- [Release notes](https://github.com/eemeli/yaml/releases)
- [Commits](https://github.com/eemeli/yaml/compare/v2.8.2...v2.8.3)
---
updated-dependencies:
- dependency-name: path-to-regexp
dependency-version: 8.4.0
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: yaml
dependency-version: 2.8.3
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* Remove non-deterministic `npm install -g npm` from devcontainer Dockerfile (#956)
* Initial plan
* Fix alert #129: Remove non-deterministic npm install from devcontainer Dockerfile
Agent-Logs-Url: https://github.com/github/safe-settings/sessions/0af97764-5b14-4195-ad8a-6b8adf723453
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
* Fix typo in devcontainer Dockerfile comment (Intall -> Install)
Agent-Logs-Url: https://github.com/github/safe-settings/sessions/0af97764-5b14-4195-ad8a-6b8adf723453
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
* Pin Dockerfile base image to SHA256 digest (#957)
* Initial plan
* Pin Docker base image to SHA256 digest to fix alert #128
Agent-Logs-Url: https://github.com/github/safe-settings/sessions/afcb39cb-64ea-43c7-8b49-200dd166ad5f
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
* Use `npm ci` instead of `npm install` in CI workflow (#958)
* Initial plan
* Replace npm install with npm ci in node-ci.yml workflow
Agent-Logs-Url: https://github.com/github/safe-settings/sessions/4460185b-428a-48f4-a8b9-471226ccbf58
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: decyjphr <57544838+decyjphr@users.noreply.github.com>
* Replace npm install with npm ci in workflow (#960)
* Replace npm install with npm ci in workflow
* Replace npm install with npm ci in workflow
* Bug/issue 465 (#970)
* fix: apply org-level settings before loading repository configurations
* fix: enhance descriptions and add new properties for security features in settings.json
* fix: update description for deprecated squash-merge commit title property in settings.json
* Update api endpoint version
* Add JSON schemas for safe-settings configuration at repo, org, and suborg levels
- Introduced `repos.json` schema for repository-level safe-settings overrides.
- Updated `settings.json` schema to include additional properties for org-level configurations.
- Created `suborgs.json` schema for suborg-level safe-settings configuration.
- Enhanced the build script to dereference all schemas and handle errors during the process.
* chores: fix branches tests
* fix(build-schema): enhance schema dereferencing with GitHub API spec
* Update docs/github-settings/5. branch-protection.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update index.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix(schema): simplify description for force_create property
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Bug/issue 842 (#928)
* fix: apply org-level settings before loading repository configurations
* fix: enhance descriptions and add new properties for security features in settings.json
* fix: update description for deprecated squash-merge commit title property in settings.json
* test: update branch protection tests to handle null restrictions and enforce_admins
* fix: normalize branch protection restrictions and preserve existing settings
* fix: update GitHub API calls to use the correct namespace for branch protection methods
---------
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* Fix custom_properties diffing when config uses `property_name` (#978)
* Initial plan
* Handle alternate custom property name shapes in normalize
* Add explicit object guard in custom property normalization
* Support property_name in custom_properties config entries
* Polish custom properties test descriptions
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
* fix(variables): add noop mode support (#926)
* feat(variables): add noop mode support
- Add noop mode support to Variables plugin add/remove/update methods
- Return NopCommand instead of making API calls when nop=true
- Add comprehensive tests for noop mode behavior
Signed-off-by: Kyle Harding
* refactor(variables): align with Diffable contract pattern
Refactor Variables plugin to match the single-item Diffable contract
used by labels, milestones, and other plugins. The previous update()
reimplemented sync() logic internally; now each method handles one item
and lets Diffable.sync() orchestrate iteration.
- Simplify update() from 90-line array-diffing to single-item PATCH
- Simplify changed() from JSON.stringify comparison to value check
- Remove getChanged(), lodash dependency, .then(res=>res) no-ops
- Match labels.js nop return pattern: Promise.resolve([NopCommand])
- Fix inconsistent toUpperCase() between add/remove/update
- Let errors propagate to Diffable.sync() instead of swallowing
- Normalize find() to strip API metadata fields (created_at, etc.)
Co-Authored-By: Claude Opus 4.6 (1M context)
Signed-off-by: Kyle Harding
---------
Signed-off-by: Kyle Harding
Co-authored-by: Claude Opus 4.6 (1M context)
* fix: update lodash to ^4.18.1 to fix code injection vulnerability (#992)
Resolve Dependabot alert #116 - lodash vulnerable to Code Injection
via `_.template` imports key names. Updated from ^4.17.21 to ^4.18.1.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* build(deps): bump uuid in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [uuid](https://github.com/uuidjs/uuid).
Updates `uuid` from 8.3.2 to 14.0.0
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/uuidjs/uuid/compare/v8.3.2...v14.0.0)
---
updated-dependencies:
- dependency-name: uuid
dependency-version: 14.0.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
* Bug/archived repo (#991)
* fix: apply org-level settings before loading repository configurations
* fix: enhance descriptions and add new properties for security features in settings.json
* fix: update description for deprecated squash-merge commit title property in settings.json
* fix issue with archived repos
---------
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps): bump the npm_and_yarn group across 1 directory with 3 updates
Bumps the npm_and_yarn group with 3 updates in the / directory: [js-yaml](https://github.com/nodeca/js-yaml), [qs](https://github.com/ljharb/qs) and [shell-quote](https://github.com/ljharb/shell-quote).
Updates `js-yaml` from 4.1.1 to 4.2.0
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/commits)
Updates `qs` from 6.15.0 to 6.15.2
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.15.0...v6.15.2)
Updates `shell-quote` from 1.8.3 to 1.8.4
- [Changelog](https://github.com/ljharb/shell-quote/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/shell-quote/compare/v1.8.3...v1.8.4)
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 4.2.0
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: qs
dependency-version: 6.15.2
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: shell-quote
dependency-version: 1.8.4
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
* Initial plan
* feat: add priorityClassName support to Helm chart
* Add include/exclude repo filters to team settings
Team entries are filtered by the same Diffable include/exclude logic that
collaborators use, but unlike collaborators those keys were never part of the
TeamSettings schema or documented, so editors and linters can't validate them.
Mirror the CollaboratorSettings allOf pattern to declare include and exclude on
TeamSettings, document both in the teams guide with examples, add a sample, and
cover the filter path with unit tests. No runtime changes.
* build(deps-dev): bump flatted from 3.3.4 to 3.4.4 (#1055)
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.4 to 3.4.4.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.4...v3.4.4)
---
updated-dependencies:
- dependency-name: flatted
dependency-version: 3.4.4
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump undici in the npm_and_yarn group across 1 directory (#1058)
Bumps the npm_and_yarn group with 1 update in the / directory: [undici](https://github.com/nodejs/undici).
Updates `undici` from 7.24.5 to 7.29.0
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.24.5...v7.29.0)
---
updated-dependencies:
- dependency-name: undici
dependency-version: 7.29.0
dependency-type: direct:production
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump shell-quote from 1.8.4 to 1.10.0 (#1057)
Bumps [shell-quote](https://github.com/ljharb/shell-quote) from 1.8.4 to 1.10.0.
- [Changelog](https://github.com/ljharb/shell-quote/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/shell-quote/compare/v1.8.4...v1.10.0)
---
updated-dependencies:
- dependency-name: shell-quote
dependency-version: 1.10.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps): bump js-yaml in the npm_and_yarn group across 1 directory (#1059)
Bumps the npm_and_yarn group with 1 update in the / directory: [js-yaml](https://github.com/nodeca/js-yaml).
Updates `js-yaml` from 4.2.0 to 4.3.1
- [Changelog](https://github.com/nodeca/js-yaml/blob/4.3.1/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.2.0...4.3.1)
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 4.3.1
dependency-type: direct:production
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps-dev): bump brace-expansion (#1060)
Bumps the npm_and_yarn group with 1 update in the / directory: [brace-expansion](https://github.com/juliangruber/brace-expansion).
Updates `brace-expansion` from 1.1.13 to 1.1.18
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.13...v1.1.18)
---
updated-dependencies:
- dependency-name: brace-expansion
dependency-version: 1.1.18
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
* build(deps): bump body-parser (#1061)
Bumps the npm_and_yarn group with 1 update in the / directory: [body-parser](https://github.com/expressjs/body-parser).
Updates `body-parser` from 2.2.2 to 2.3.0
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/v2.2.2...v2.3.0)
---
updated-dependencies:
- dependency-name: body-parser
dependency-version: 2.3.0
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fix GHSA-52cp-r559-cp3m: resolve transitive js-yaml via jest and lockfile-lint upgrades (#1064)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Signed-off-by: dependabot[bot]
Signed-off-by: Jan Bronicki
Signed-off-by: Kyle Harding
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Tyler Ohlsen
Co-authored-by: Jan Bronicki
Co-authored-by: Brett Logan
Co-authored-by: Madis Kõosaar
Co-authored-by: Kyle Harding
Co-authored-by: Claude Opus 4.6 (1M context)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: neatcoder <28711376+neatcoder@users.noreply.github.com>
---
index.js | 14 ++-
lib/plugins/variables.js | 1 -
lib/settings.js | 7 +-
package-lock.json | 137 ++++++++++++++++----------
package.json | 6 +-
test/unit/lib/plugins/archive.test.js | 50 ++++++++++
6 files changed, 153 insertions(+), 62 deletions(-)
diff --git a/index.js b/index.js
index 8b1305ebe..d4c588424 100644
--- a/index.js
+++ b/index.js
@@ -8,6 +8,14 @@ const NopCommand = require('./lib/nopcommand')
const SettingsGenerator = require('./lib/settingsGenerator')
const AppOctokitClient = require('./lib/appOctokitClient')
const env = require('./lib/env')
+const { getProxyForUrl } = require('proxy-from-env')
+const { setGlobalDispatcher, ProxyAgent } = require('undici')
+
+const baseUrl = env.GHE_HOST ? `${env.GHE_PROTOCOL || 'https'}://${env.GHE_HOST}` : 'https://api.github.com'
+const proxyAddress = getProxyForUrl(baseUrl)
+if (proxyAddress) {
+ setGlobalDispatcher(new ProxyAgent(proxyAddress))
+}
let deploymentConfig
@@ -589,7 +597,7 @@ module.exports = (robot, { getRouter }, Settings = require('./lib/settings')) =>
repo: env.ADMIN_REPO,
path: oldPath,
headers: {
- 'X-GitHub-Api-Version': '2022-11-28'
+ 'X-GitHub-Api-Version': '2026-03-10'
}
})
let content = Buffer.from(repofile.data.content, 'base64').toString()
@@ -603,7 +611,7 @@ module.exports = (robot, { getRouter }, Settings = require('./lib/settings')) =>
repo: env.ADMIN_REPO,
path: newPath,
headers: {
- 'X-GitHub-Api-Version': '2022-11-28'
+ 'X-GitHub-Api-Version': '2026-03-10'
}
})
} catch (error) {
@@ -618,7 +626,7 @@ module.exports = (robot, { getRouter }, Settings = require('./lib/settings')) =>
message: `Repo Renamed and safe-settings renamed the file from ${payload.changes.repository.name.from} to ${payload.repository.name}`,
sha: repofile.data.sha,
headers: {
- 'X-GitHub-Api-Version': '2022-11-28'
+ 'X-GitHub-Api-Version': '2026-03-10'
}
})
robot.log.debug(`Created a new setting file ${newPath}`)
diff --git a/lib/plugins/variables.js b/lib/plugins/variables.js
index 292c9b1b2..470a34718 100644
--- a/lib/plugins/variables.js
+++ b/lib/plugins/variables.js
@@ -6,7 +6,6 @@ module.exports = class Variables extends Diffable {
super(...args)
if (this.entries) {
- // Force all names to uppercase to avoid comparison issues.
this.entries.forEach((variable) => {
variable.name = variable.name.toUpperCase()
})
diff --git a/lib/settings.js b/lib/settings.js
index e36ee07c7..84325ca62 100644
--- a/lib/settings.js
+++ b/lib/settings.js
@@ -2025,7 +2025,7 @@ class Settings {
// Copilot code review would recoommend using object assign but that would cause the error
let repoConfig = this.config.repository
if (repoConfig) {
- repoConfig = Object.assign(repoConfig, { name: repo.repo, org: repo.owner })
+ repoConfig = Object.assign({}, repoConfig, { name: repo.repo, org: repo.owner })
}
const subOrgConfig = this.getSubOrgConfig(repo.repo)
@@ -2041,7 +2041,8 @@ class Settings {
if (subOrgConfig) {
let suborgRepoConfig = subOrgConfig.repository
if (suborgRepoConfig) {
- suborgRepoConfig = Object.assign(suborgRepoConfig, { name: repo.repo, org: repo.owner })
+ // Create a new object to avoid mutating the shared subOrgConfig.repository
+ suborgRepoConfig = Object.assign({}, suborgRepoConfig, { name: repo.repo, org: repo.owner })
repoConfig = this.mergeDeep.mergeDeep({}, repoConfig, suborgRepoConfig)
}
}
@@ -2556,7 +2557,7 @@ class Settings {
this.log.debug(` In getRepoConfigMap ${JSON.stringify(this.repo)}`)
// GitHub getContent api has a hard limit of returning 1000 entries without
// any pagination. They suggest to use Tree api.
- // https://docs.github.com/en/rest/repos/contents?apiVersion=2022-11-28#get-repository-content
+ // https://docs.github.com/en/rest/repos/contents?apiVersion=2026-03-10#get-repository-content
// get /repos directory sha to use in the getTree api
const repo = { owner: this.repo.owner, repo: env.ADMIN_REPO }
diff --git a/package-lock.json b/package-lock.json
index 03059ad9b..918767080 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -32,10 +32,10 @@
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.6.0",
"http-status-codes": "^2.2.0",
- "jest": "^29.5.0",
- "jest-junit": "^16.0.0",
+ "jest": "^29.7.0",
+ "jest-junit": "^17.0.0",
"jest-when": "^3.5.2",
- "lockfile-lint": "^4.14.0",
+ "lockfile-lint": "^4.14.1",
"nock": "^14.0.1",
"nodemon": "^3.1.9",
"npm-run-all": "^4.1.5",
@@ -771,7 +771,6 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"sprintf-js": "~1.0.2"
}
@@ -3887,7 +3886,6 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"sprintf-js": "~1.0.2"
}
@@ -4494,21 +4492,34 @@
"license": "MIT"
},
"node_modules/body-parser": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",
- "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz",
+ "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==",
"license": "MIT",
"dependencies": {
"bytes": "^3.1.2",
- "content-type": "^1.0.5",
+ "content-type": "^2.0.0",
"debug": "^4.4.3",
- "http-errors": "^2.0.0",
- "iconv-lite": "^0.7.0",
+ "http-errors": "^2.0.1",
+ "iconv-lite": "^0.7.2",
"on-finished": "^2.4.1",
- "qs": "^6.14.1",
- "raw-body": "^3.0.1",
- "type-is": "^2.0.1"
+ "qs": "^6.15.2",
+ "raw-body": "^3.0.2",
+ "type-is": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/body-parser/node_modules/content-type": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz",
+ "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -6556,7 +6567,6 @@
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true,
- "license": "BSD-2-Clause",
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
@@ -6939,9 +6949,9 @@
}
},
"node_modules/flatted": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.4.tgz",
- "integrity": "sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==",
+ "version": "3.4.4",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz",
+ "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==",
"dev": true,
"license": "ISC"
},
@@ -8872,19 +8882,19 @@
}
},
"node_modules/jest-junit": {
- "version": "16.0.0",
- "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-16.0.0.tgz",
- "integrity": "sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==",
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-17.0.0.tgz",
+ "integrity": "sha512-RYWCkq4j59gUXj5DsgbIE7xFBZzu1gtibPhyjSjMmGaOTLnqlXhg7x9zuGCwgbCuMAyoyvk0Mi8wSrRR5uOeLA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"mkdirp": "^1.0.4",
"strip-ansi": "^6.0.1",
- "uuid": "^8.3.2",
+ "uuid": "^14.0.0",
"xml": "^1.0.1"
},
"engines": {
- "node": ">=10.12.0"
+ "node": ">=20.0.0"
}
},
"node_modules/jest-leak-detector": {
@@ -9950,6 +9960,7 @@
"url": "https://github.com/sponsors/nodeca"
}
],
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -11698,7 +11709,6 @@
"version": "14.3.2",
"resolved": "https://registry.npmjs.org/probot/-/probot-14.3.2.tgz",
"integrity": "sha512-Bprr2KwlVF4Jpb6bnIcfadA4Dtns8nDJxSEEPNy3FhRrtHUYxZGiczReG5Vo6M7t4iS8Kcvek7CDUTTXgkaSBw==",
- "license": "ISC",
"dependencies": {
"@octokit/core": "^7.0.3",
"@octokit/plugin-enterprise-compatibility": "^6.0.1",
@@ -11856,12 +11866,12 @@
"license": "MIT"
},
"node_modules/qs": {
- "version": "6.15.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz",
- "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==",
+ "version": "6.15.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.2.tgz",
+ "integrity": "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==",
+ "license": "BSD-3-Clause",
"dependencies": {
- "es-define-property": "^1.0.1",
- "side-channel": "^1.1.1"
+ "side-channel": "^1.1.0"
},
"engines": {
"node": ">=0.6"
@@ -12526,6 +12536,7 @@
"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz",
"integrity": "sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -12540,13 +12551,14 @@
"license": "BSD-2-Clause"
},
"node_modules/side-channel": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz",
- "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
- "object-inspect": "^1.13.4",
- "side-channel-list": "^1.0.1",
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
"side-channel-map": "^1.0.1",
"side-channel-weakmap": "^1.0.2"
},
@@ -12558,12 +12570,13 @@
}
},
"node_modules/side-channel-list": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
- "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
- "object-inspect": "^1.13.4"
+ "object-inspect": "^1.13.3"
},
"engines": {
"node": ">= 0.4"
@@ -12742,8 +12755,7 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true,
- "license": "BSD-3-Clause"
+ "dev": true
},
"node_modules/stack-utils": {
"version": "2.0.6",
@@ -13430,17 +13442,34 @@
}
},
"node_modules/type-is": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz",
- "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz",
+ "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==",
"license": "MIT",
"dependencies": {
- "content-type": "^1.0.5",
+ "content-type": "^2.0.0",
"media-typer": "^1.1.0",
"mime-types": "^3.0.0"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">= 18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/type-is/node_modules/content-type": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz",
+ "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/typed-array-buffer": {
@@ -13558,9 +13587,9 @@
"license": "MIT"
},
"node_modules/undici": {
- "version": "7.24.5",
- "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.5.tgz",
- "integrity": "sha512-3IWdCpjgxp15CbJnsi/Y9TCDE7HWVN19j1hmzVhoAkY/+CJx449tVxT5wZc1Gwg8J+P0LWvzlBzxYRnHJ+1i7Q==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz",
+ "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==",
"license": "MIT",
"engines": {
"node": ">=20.18.1"
@@ -13654,13 +13683,17 @@
}
},
"node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.0.tgz",
+ "integrity": "sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==",
"dev": true,
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
"license": "MIT",
"bin": {
- "uuid": "dist/bin/uuid"
+ "uuid": "dist-node/bin/uuid"
}
},
"node_modules/v8-to-istanbul": {
diff --git a/package.json b/package.json
index db6bed660..be427e6ea 100644
--- a/package.json
+++ b/package.json
@@ -51,10 +51,10 @@
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.6.0",
"http-status-codes": "^2.2.0",
- "jest": "^29.5.0",
- "jest-junit": "^16.0.0",
+ "jest": "^29.7.0",
+ "jest-junit": "^17.0.0",
"jest-when": "^3.5.2",
- "lockfile-lint": "^4.14.0",
+ "lockfile-lint": "^4.14.1",
"nock": "^14.0.1",
"nodemon": "^3.1.9",
"npm-run-all": "^4.1.5",
diff --git a/test/unit/lib/plugins/archive.test.js b/test/unit/lib/plugins/archive.test.js
index 0ed0f38d1..a60eafac4 100644
--- a/test/unit/lib/plugins/archive.test.js
+++ b/test/unit/lib/plugins/archive.test.js
@@ -93,6 +93,56 @@ describe('Archive Plugin', () => {
})
})
+ describe('getState', () => {
+ it('getState when repo is already archived and desired state is not set returns isArchived true shouldArchive false shouldUnarchive false', async () => {
+ // Arrange
+ github.rest.repos.get.mockResolvedValue({ data: { archived: true } })
+ archive = new Archive(false, github, repo, {}, log)
+
+ // Act
+ const result = await archive.getState()
+
+ // Assert
+ expect(result).toEqual({
+ isArchived: true,
+ shouldArchive: false,
+ shouldUnarchive: false
+ })
+ })
+
+ it('getState when repo is not archived and desired state is not set returns isArchived false shouldArchive false shouldUnarchive false', async () => {
+ // Arrange
+ github.rest.repos.get.mockResolvedValue({ data: { archived: false } })
+ archive = new Archive(false, github, repo, {}, log)
+
+ // Act
+ const result = await archive.getState()
+
+ // Assert
+ expect(result).toEqual({
+ isArchived: false,
+ shouldArchive: false,
+ shouldUnarchive: false
+ })
+ })
+
+ it('getState when repo is archived and desired state is false returns isArchived true shouldArchive false shouldUnarchive true', async () => {
+ // Arrange
+ github.rest.repos.get.mockResolvedValue({ data: { archived: true } })
+ archive = new Archive(false, github, repo, { archived: false }, log)
+
+ // Act
+ const result = await archive.getState()
+
+ // Assert
+ expect(result).toEqual({
+ isArchived: true,
+ shouldArchive: false,
+ shouldUnarchive: true
+ })
+ })
+ })
+
describe('sync', () => {
beforeEach(() => {
archive = new Archive(false, github, repo, settings, log)
From d74312815f3e23d91f312336d85b9852fc4f05ec Mon Sep 17 00:00:00 2001
From: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Date: Tue, 18 Aug 2026 21:31:41 -0400
Subject: [PATCH 92/93] Normalize team_slug in external_group linking (teams
plugin)
syncExternalGroup used the raw config `name` as `team_slug` when calling
the external-groups endpoints. A display name (e.g. "Platform & Security!")
is not a valid team slug and 404s against those endpoints. Normalize with
`normalizeTeamIdentifier`, matching how the rest of the plugin builds
`team_slug` (getByName, toParams), and add a regression test covering a
display-name team.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 2daa416c-8f2a-4fb2-a41d-b3a0a1062e1a
---
lib/plugins/teams.js | 9 +++++++--
test/unit/lib/plugins/teams.test.js | 29 +++++++++++++++++++++++++++++
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/lib/plugins/teams.js b/lib/plugins/teams.js
index 2762d53a6..9cdad6265 100644
--- a/lib/plugins/teams.js
+++ b/lib/plugins/teams.js
@@ -332,9 +332,14 @@ module.exports = class Teams extends Diffable {
return
}
+ // The external-groups endpoints key on the GitHub team slug, not the
+ // display name. Normalize (as done elsewhere in this plugin, e.g. getByName
+ // and toParams) so display names like "Platform & Security!" don't 404.
+ const teamSlug = this.normalizeTeamIdentifier(attrs.name)
+
const linkParams = {
org: this.repo.owner,
- team_slug: attrs.name,
+ team_slug: teamSlug,
group_id: groupId
}
@@ -354,7 +359,7 @@ module.exports = class Teams extends Diffable {
try {
const current = await this.github.request(`GET ${teamExternalGroupsEndpoint}`, {
org: this.repo.owner,
- team_slug: attrs.name
+ team_slug: teamSlug
})
const currentGroups = (current && current.data && current.data.groups) || []
if (currentGroups.some(g => g.group_id === groupId)) {
diff --git a/test/unit/lib/plugins/teams.test.js b/test/unit/lib/plugins/teams.test.js
index 6015ea36d..5d122665c 100644
--- a/test/unit/lib/plugins/teams.test.js
+++ b/test/unit/lib/plugins/teams.test.js
@@ -479,6 +479,35 @@ describe('Teams', () => {
expect(plugin.hasChanges).toBe(true)
})
+ it('normalizes a display-name team to its slug when linking the external group', async () => {
+ // Regression: syncExternalGroup previously used the raw config name as
+ // team_slug, so a display name like "Platform & Security!" 404'd against
+ // the external-groups endpoints. It must be normalized to "platform-security".
+ const displayName = 'Platform & Security!'
+ const expectedSlug = 'platform-security'
+
+ when(github.rest.teams.getByName)
+ .defaultResolvedValue({})
+ .calledWith({ org, team_slug: expectedSlug })
+ .mockResolvedValue({ data: { id: addedTeamId } })
+
+ const plugin = configure([
+ { name: displayName, permission: 'pull', external_group: externalGroupName }
+ ])
+
+ await plugin.sync()
+
+ // Idempotency GET and the PATCH must both target the normalized slug.
+ expect(github.request).toHaveBeenCalledWith(
+ 'GET /orgs/{org}/teams/{team_slug}/external-groups',
+ { org, team_slug: expectedSlug }
+ )
+ expect(github.request).toHaveBeenCalledWith(
+ 'PATCH /orgs/{org}/teams/{team_slug}/external-groups',
+ { org, team_slug: expectedSlug, group_id: externalGroupId }
+ )
+ })
+
it('skips the PATCH when the team is already linked to the same group', async () => {
github.request = jest.fn().mockImplementation((endpoint, params) => {
if (endpoint === 'GET /orgs/{org}/teams/{team_slug}/external-groups') {
From 9620c1de04f30b50eacf29f5371030b1665b2abc Mon Sep 17 00:00:00 2001
From: Yadhav Jayaraman <57544838+decyjphr@users.noreply.github.com>
Date: Thu, 20 Aug 2026 15:26:10 -0400
Subject: [PATCH 93/93] feat(logging): add info-level logging for applied
configuration changes (#1068)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When safe-settings applies changes to repositories, users need visibility into what actions are being taken without enabling debug logging. This change adds informational log messages when changes are applied, while keeping detailed diffs at debug level.
The info messages indicate:
- Which plugin is applying changes (branches, repository settings, topics, labels, etc.)
- Which repository is being modified
- That detailed diffs are available at debug level
This improves operational visibility and makes it easier to track configuration changes in production environments without overwhelming logs with detailed diffs.
Co-authored-by: Tomas Dabašinskas
---
lib/plugins/branches.js | 2 ++
lib/plugins/diffable.js | 2 ++
lib/plugins/repository.js | 10 ++++++++--
test/unit/lib/plugins/autolinks.test.js | 2 +-
test/unit/lib/plugins/branches.test.js | 16 ++++++++++++++--
test/unit/lib/plugins/collaborators.test.js | 2 +-
test/unit/lib/plugins/custom_properties.test.js | 2 +-
test/unit/lib/plugins/environments.test.js | 4 ++--
test/unit/lib/plugins/labels.test.js | 4 +++-
test/unit/lib/plugins/repository.test.js | 2 ++
test/unit/lib/plugins/rulesets.test.js | 1 +
test/unit/lib/plugins/teams.test.js | 2 +-
test/unit/lib/plugins/variables.test.js | 2 +-
13 files changed, 39 insertions(+), 12 deletions(-)
diff --git a/lib/plugins/branches.js b/lib/plugins/branches.js
index ec3ab7c79..927439c10 100644
--- a/lib/plugins/branches.js
+++ b/lib/plugins/branches.js
@@ -79,6 +79,8 @@ module.exports = class Branches extends ErrorStash {
this.log.debug(`There are changes for branch ${JSON.stringify(params)}\n ${JSON.stringify(changes)} \n Branch protection will be applied`)
if (this.nop) {
resArray.push(new NopCommand(this.constructor.name, this.repo, null, results))
+ } else {
+ this.log.info(`Applying branch protection changes to ${params.branch} branch of ${this.repo.owner}/${this.repo.repo} (the diff is logged at debug level)`)
}
Object.assign(params, requiredBranchProtectionDefaults, this.reformatAndReturnBranchProtection(structuredClone(result.data)), Overrides.removeOverrides(overrides, branch.protection, result.data), { headers: previewHeaders })
diff --git a/lib/plugins/diffable.js b/lib/plugins/diffable.js
index 1b5774160..d611ae039 100644
--- a/lib/plugins/diffable.js
+++ b/lib/plugins/diffable.js
@@ -92,6 +92,8 @@ module.exports = class Diffable extends ErrorStash {
} else {
if (this.nop) {
resArray.push(new NopCommand(this.constructor.name, this.repo, null, results, 'INFO'))
+ } else {
+ this.log.info(`Applying ${this.constructor.name} changes to ${this.repo.owner}/${this.repo.repo} (the diff is logged at debug level)`)
}
}
diff --git a/lib/plugins/repository.js b/lib/plugins/repository.js
index ca769264e..2627b39c4 100644
--- a/lib/plugins/repository.js
+++ b/lib/plugins/repository.js
@@ -88,11 +88,11 @@ module.exports = class Repository extends ErrorStash {
// const results = JSON.stringify(changes, null, 2)
const results = { msg: `${this.constructor.name} settings changes`, additions: changes.additions, modifications: changes.modifications, deletions: changes.deletions }
- this.log.debug(`Result of comparing repo for changes = ${results}`)
+ this.log.debug(`Result of comparing repo for changes = ${JSON.stringify(results)}`)
// const topicResults = JSON.stringify(topicChanges, null, 2)
const topicResults = { msg: `${this.constructor.name} settings changes for topics`, additions: topicChanges.additions, modifications: topicChanges.modifications, deletions: topicChanges.deletions }
- this.log.debug(`Result of comparing topics for changes source ${JSON.stringify(resp.data.topics)} target ${JSON.stringify(this.topics)} = ${topicResults}`)
+ this.log.debug(`Result of comparing topics for changes source ${JSON.stringify(resp.data.topics)} target ${JSON.stringify(this.topics)} = ${JSON.stringify(topicResults)}`)
if (this.nop && changes.hasChanges) {
resArray.push(new NopCommand('Repository', this.repo, null, results))
@@ -102,10 +102,16 @@ module.exports = class Repository extends ErrorStash {
}
const promises = []
if (topicChanges.hasChanges) {
+ if (!this.nop) {
+ this.log.info(`Applying topic changes to ${this.repo.owner}/${this.repo.repo} (the diff is logged at debug level)`)
+ }
promises.push(this.updatetopics(resp.data, resArray))
}
if (changes.hasChanges) {
this.log.debug('There are repo changes')
+ if (!this.nop) {
+ this.log.info(`Applying repository settings changes to ${this.repo.owner}/${this.repo.repo} (the diff is logged at debug level)`)
+ }
let updateDefaultBranchPromise = Promise.resolve()
if (this.settings.default_branch && (resp.data.default_branch !== this.settings.default_branch)) {
this.log.debug('There is a rename of the default branch')
diff --git a/test/unit/lib/plugins/autolinks.test.js b/test/unit/lib/plugins/autolinks.test.js
index 02829daa0..9d5d61f0b 100644
--- a/test/unit/lib/plugins/autolinks.test.js
+++ b/test/unit/lib/plugins/autolinks.test.js
@@ -5,7 +5,7 @@ describe('Autolinks', () => {
let github
function configure (config) {
- const log = { debug: jest.fn(), error: console.error }
+ const log = { debug: jest.fn(), info: jest.fn(), error: console.error }
const nop = false
const errors = []
return new Autolinks(nop, github, repo, config, log, errors)
diff --git a/test/unit/lib/plugins/branches.test.js b/test/unit/lib/plugins/branches.test.js
index f6aa2d0ac..065ac5a1c 100644
--- a/test/unit/lib/plugins/branches.test.js
+++ b/test/unit/lib/plugins/branches.test.js
@@ -8,6 +8,7 @@ describe('Branches', () => {
const log = jest.fn()
log.debug = jest.fn()
log.error = jest.fn()
+ log.info = jest.fn()
function configure (config) {
const nop = false
@@ -73,6 +74,19 @@ describe('Branches', () => {
})
})
+ it('logs the applied branch protection change at info level', () => {
+ const plugin = configure(
+ [{
+ name: 'master',
+ protection: { enforce_admins: true }
+ }]
+ )
+
+ return plugin.sync().then(() => {
+ expect(log.info).toHaveBeenCalledWith(expect.stringContaining('Applying branch protection changes to master branch of bkeepers/test'))
+ })
+ })
+
describe('when the "protection" config is empty object', () => {
it('removes branch protection', () => {
const plugin = configure(
@@ -183,7 +197,6 @@ describe('Branches', () => {
)
return plugin.sync().then(() => {
-
expect(github.rest.repos.updateBranchProtection).toHaveBeenCalledWith(expect.objectContaining({
owner: 'bkeepers',
repo: 'test',
@@ -305,7 +318,6 @@ describe('Branches', () => {
)
return plugin.sync().then(() => {
-
expect(github.rest.repos.updateBranchProtection).toHaveBeenCalledWith(expect.objectContaining({
owner: 'bkeepers',
repo: 'test',
diff --git a/test/unit/lib/plugins/collaborators.test.js b/test/unit/lib/plugins/collaborators.test.js
index f01007953..135876423 100644
--- a/test/unit/lib/plugins/collaborators.test.js
+++ b/test/unit/lib/plugins/collaborators.test.js
@@ -4,7 +4,7 @@ describe('Collaborators', () => {
let github
function configure (config) {
- const log = { debug: jest.fn(), error: console.error }
+ const log = { debug: jest.fn(), info: jest.fn(), error: console.error }
return new Collaborators(undefined, github, { owner: 'bkeepers', repo: 'test' }, config, log)
}
diff --git a/test/unit/lib/plugins/custom_properties.test.js b/test/unit/lib/plugins/custom_properties.test.js
index 55fbbf740..123270bcd 100644
--- a/test/unit/lib/plugins/custom_properties.test.js
+++ b/test/unit/lib/plugins/custom_properties.test.js
@@ -18,7 +18,7 @@ describe('CustomProperties', () => {
request: jest.fn()
}
- log = { debug: jest.fn(), error: console.error }
+ log = { debug: jest.fn(), info: jest.fn(), error: console.error }
})
describe('Custom Properties plugin', () => {
diff --git a/test/unit/lib/plugins/environments.test.js b/test/unit/lib/plugins/environments.test.js
index 31fbb1cdf..7eaa22d0a 100644
--- a/test/unit/lib/plugins/environments.test.js
+++ b/test/unit/lib/plugins/environments.test.js
@@ -10,7 +10,7 @@ describe('Environments Plugin test suite', () => {
const PrimaryEnvironmentNamesBeingTested = ['wait-timer_environment', 'wait-timer_2_environment', 'reviewers_environment', 'prevent-self-review_environment', 'deployment-branch-policy_environment', 'deployment-branch-policy-custom_environment', 'deployment-branch-policy-custom_environment_legacy', 'variables_environment', 'deployment-protection-rules_environment', 'new_environment', 'old_environment']
const EnvironmentNamesForTheNewEnvironmentsTest = ['new-wait-timer', 'new-reviewers', 'new-prevent-self-review', 'new-deployment-branch-policy', 'new-deployment-branch-policy-custom', 'new-deployment-branch-policy-custom-legacy', 'new-variables', 'new-deployment-protection-rules']
const AllEnvironmentNamesBeingTested = PrimaryEnvironmentNamesBeingTested.concat(EnvironmentNamesForTheNewEnvironmentsTest)
- const log = { debug: jest.fn(), error: console.error }
+ const log = { debug: jest.fn(), info: jest.fn(), error: console.error }
const errors = []
function fillEnvironment (attrs) {
@@ -1409,7 +1409,7 @@ describe('nopifyRequest', () => {
github = {
request: jest.fn(() => Promise.resolve(true))
};
- plugin = new Environments(undefined, github, { owner: org, repo }, [], { debug: jest.fn(), error: console.error }, []);
+ plugin = new Environments(undefined, github, { owner: org, repo }, [], { debug: jest.fn(), info: jest.fn(), error: console.error }, []);
});
it('should make a request when nop is false', async () => {
diff --git a/test/unit/lib/plugins/labels.test.js b/test/unit/lib/plugins/labels.test.js
index 1d1bd51b1..3f6ebe9d6 100644
--- a/test/unit/lib/plugins/labels.test.js
+++ b/test/unit/lib/plugins/labels.test.js
@@ -28,7 +28,7 @@ describe('Labels', () => {
}
}
}
- log = { debug: jest.fn(), error: console.error }
+ log = { debug: jest.fn(), info: jest.fn(), error: console.error }
})
describe('sync', () => {
@@ -50,6 +50,8 @@ describe('Labels', () => {
])
return plugin.sync().then(() => {
+ expect(log.info).toHaveBeenCalledWith(expect.stringContaining('Applying Labels changes to bkeepers/test'))
+
expect(github.rest.issues.deleteLabel).toHaveBeenCalledWith({
owner: 'bkeepers',
repo: 'test',
diff --git a/test/unit/lib/plugins/repository.test.js b/test/unit/lib/plugins/repository.test.js
index f3b041150..3ade857b3 100644
--- a/test/unit/lib/plugins/repository.test.js
+++ b/test/unit/lib/plugins/repository.test.js
@@ -50,6 +50,7 @@ describe('Repository', () => {
description: 'Hello World!',
mediaType: { previews: ['nebula-preview'] }
})
+ expect(log.info).toHaveBeenCalledWith(expect.stringContaining('Applying repository settings changes to bkeepers/test'))
})
})
@@ -81,6 +82,7 @@ describe('Repository', () => {
previews: ['mercy']
}
})
+ expect(log.info).toHaveBeenCalledWith(expect.stringContaining('Applying topic changes to bkeepers/test'))
})
})
})
diff --git a/test/unit/lib/plugins/rulesets.test.js b/test/unit/lib/plugins/rulesets.test.js
index 15a9fee64..5c172825c 100644
--- a/test/unit/lib/plugins/rulesets.test.js
+++ b/test/unit/lib/plugins/rulesets.test.js
@@ -86,6 +86,7 @@ describe('Rulesets', () => {
let github
const log = jest.fn()
log.debug = jest.fn()
+ log.info = jest.fn()
log.error = jest.fn()
function configure (config, scope = 'repo', noop = false) {
diff --git a/test/unit/lib/plugins/teams.test.js b/test/unit/lib/plugins/teams.test.js
index 5d122665c..98bb2821c 100644
--- a/test/unit/lib/plugins/teams.test.js
+++ b/test/unit/lib/plugins/teams.test.js
@@ -15,7 +15,7 @@ describe('Teams', () => {
const org = 'bkeepers'
function configure (config) {
- const log = { debug: jest.fn(), error: jest.fn(), warn: console.warn }
+ const log = { debug: jest.fn(), info: jest.fn(), error: jest.fn(), warn: console.warn }
const errors = []
return new Teams(undefined, github, { owner: 'bkeepers', repo: 'test' }, config, log, errors)
}
diff --git a/test/unit/lib/plugins/variables.test.js b/test/unit/lib/plugins/variables.test.js
index 91c06239b..ca0cb3a83 100644
--- a/test/unit/lib/plugins/variables.test.js
+++ b/test/unit/lib/plugins/variables.test.js
@@ -8,7 +8,7 @@ describe('Variables', () => {
const repo = 'test'
function configure (nop = false, entries = [{ name: 'test', value: 'test' }]) {
- const log = { debug: jest.fn(), error: console.error }
+ const log = { debug: jest.fn(), info: jest.fn(), error: console.error }
const errors = []
return new Variables(nop, github, { owner: org, repo }, entries, log, errors)
}
| | | | | | | |